尽管 Kerberos 在幕后运作,其与系统的无缝集成使得大多数用户或管理员几乎意识不到它的存在。
什么是 Kerberos?它是如何运作的?
如果你需要登录才能访问电子邮件或其他在线资源,那么你很可能正在通过 Kerberos 系统进行身份验证。
Kerberos 是一种安全身份验证机制,旨在确保设备、系统和网络之间的安全通信。其主要目标是保护你的数据和登录凭据,使其免受潜在的黑客攻击。
包括 Microsoft Windows、Apple macOS、FreeBSD 和 Linux 在内的所有主流操作系统都支持 Kerberos。
Kerberos 采用五级安全模型,其中包含双向身份验证和对称密钥加密。验证用户身份后,授权用户便可以登录系统。
它结合了中央数据库和加密技术来验证用户和服务的合法性。Kerberos 服务器会先验证用户身份,然后再允许他们访问服务。如果验证成功,用户将获得一个票据,可以使用该票据来访问所需的服务。
简而言之,Kerberos 依靠“票据”来实现用户之间的安全通信。 Kerberos 协议利用密钥分发中心 (KDC) 在客户端和服务器之间建立连接。
当使用 Kerberos 协议时,服务器会收到来自客户端的请求。随后,服务器会返回一个包含令牌的响应。客户端再向服务器请求票据和服务。
Kerberos 是确保跨系统数据安全传输的重要方法。它由麻省理工学院 (MIT) 在 1980 年开发,旨在解决不安全的网络连接问题,现在已广泛应用于各种系统中。
本文将深入探讨 Kerberos 的优势、实际应用、工作原理以及其安全性。
Kerberos 身份验证的优势
在庞大的分布式计算环境中,Kerberos 作为一种网络身份验证协议,确保了计算机系统之间安全地相互识别和通信。
Kerberos 采用密钥加密技术,旨在为客户端/服务器应用程序提供强大的身份验证。该协议为应用程序安全奠定了基础,通常与 SSL/TLS 加密结合使用。
作为一种广泛使用的身份验证协议,Kerberos 具有许多优势,这使得它对中小型企业和大型公司都极具吸引力。
首先,Kerberos 非常可靠。它已经经受了各种复杂的攻击测试,并且被证明能够抵御这些攻击。此外,Kerberos 易于设置、使用,并且可以集成到多种系统中。
独特的优势:
- Kerberos 采用的独特票据系统可以实现更快速的身份验证。
- 服务和客户端可以相互验证。
- 由于时间戳的限制,身份验证周期非常安全。
- 满足现代分布式系统的需求。
- 当票据的时间戳仍然有效时,可以重复使用,从而避免用户为了访问其他资源而必须重新输入登录信息。
- 多重密钥、第三方授权和加密技术提供了卓越的安全性。
Kerberos 的安全性如何?
我们已经了解了 Kerberos 采用了安全的身份验证过程。本节将讨论攻击者如何可能破坏 Kerberos 的安全性。
Kerberos 安全协议已经使用了多年。例如,自 Windows 2000 发布以来,Microsoft Windows 就将 Kerberos 作为标准身份验证机制。
Kerberos 身份验证服务采用密钥加密、密码术和受信任的第三方身份验证来成功保护传输过程中的敏感数据。
为了增强安全性,最新版本的 Kerberos 5 使用高级加密标准 (AES),以确保更安全的通信并防止数据泄露。
美国政府采用 AES 是因为它在保护其机密信息方面特别有效。
然而,有人认为没有哪个平台是完全安全的,Kerberos 也不例外。尽管 Kerberos 被认为是安全的,企业仍必须不断检查其潜在的攻击面,以防止被黑客利用。
由于其广泛应用,黑客会不断寻找基础设施中的安全漏洞。
以下是一些可能发生的常见攻击:
- 金票攻击:这是最具破坏性的攻击之一。在这种攻击中,攻击者会利用 Kerberos 票据来劫持真正用户的密钥分发服务。这种攻击主要针对拥有 Active Directory (AD) 的 Windows 环境,因为 AD 具有访问控制权限。
- 银票攻击:伪造的服务身份验证票据称为银票。黑客可以通过破解计算机账户密码,并利用它构造虚假的身份验证票据来生成银票。
- 票据传递攻击:通过生成虚假的 TGT,攻击者构造一个伪造的会话密钥,并将其作为合法的凭证展示。
- 哈希传递攻击:这种策略需要获取用户的 NTLM 密码哈希值,然后传递哈希值进行 NTLM 身份验证。
- Kerberoasting:这种攻击旨在通过滥用 Kerberos 协议,为具有 servicePrincipalName (SPN) 值的 Active Directory 用户账户(例如服务账户)收集密码哈希值。
Kerberos 风险缓解
以下缓解措施有助于防止 Kerberos 攻击:
- 采用现代软件,能够全天候监控网络并实时识别漏洞。
- 最小权限原则:规定只有那些用户、账户和计算机进程才能拥有他们完成工作所必需的访问权限。通过这样做,可以阻止对服务器(主要是 KDC 服务器和其他域控制器)的未授权访问。
- 解决软件漏洞,包括零日漏洞。
- 运行本地安全授权子系统服务 (LSASS) 的保护模式:LSASS 托管包括 NTLM 身份验证和 Kerberos 在内的各种插件,并负责为用户提供单点登录服务。
- 强身份验证:设定密码创建标准。管理账户、本地账户和服务账户需要使用强密码。
- 拒绝服务 (DoS) 攻击:攻击者可以通过使用身份验证请求来重载 KDC,从而发起拒绝服务攻击。为了防止攻击和平衡负载,KDC 应该部署在防火墙之后,并且应该部署额外的冗余 KDC。
Kerberos 协议流程中的步骤是什么?
Kerberos 体系结构主要由处理所有 Kerberos 操作的四个基本元素组成:
- 身份验证服务器 (AS):Kerberos 身份验证过程从身份验证服务器开始。客户端必须先使用用户名和密码登录到 AS 以建立其身份。完成此操作后,AS 将用户名发送给 KDC,然后 KDC 发出 TGT。
- 密钥分发中心 (KDC):其作用是在身份验证服务器 (AS) 和票据授予服务 (TGS) 之间充当联络人,中继来自 AS 的消息并发布 TGT,随后将其传递给 TGS 进行加密。
- 票据授予票据 (TGT):TGT 是加密的,其中包含有关允许客户端访问哪些服务、授权访问的时限以及用于通信的会话密钥的信息。
- 票据授予服务 (TGS):TGS 是拥有 TGT 的客户端和网络中的各种服务之间的屏障。然后,TGS 会在验证服务器和客户端共享的 TGT 后建立会话密钥。
以下是 Kerberos 身份验证的逐步流程:
- 用户登录
- 客户端请求授予票据的服务器。
- 服务器检查用户名。
- 授权后,服务器返回客户的票据。
- 客户端获取 TGS 会话密钥。
- 客户端请求服务器访问服务。
- 服务器检查服务。
- 服务器获取 TGS 会话密钥。
- 服务器创建服务会话密钥。
- 客户端接收服务会话密钥。
- 客户联系服务。
- 服务解密信息。
- 服务检查请求。
- 服务向客户端进行身份验证。
- 客户端确认服务。
- 客户端和服务交互。
使用 Kerberos 的实际应用有哪些?
在基于互联网的现代互联工作环境中,Kerberos 的价值更高,因为它在单点登录 (SSO) 方面表现出色。
Microsoft Windows 目前使用 Kerberos 身份验证作为其标准授权方法。Apple OS、FreeBSD、UNIX 和 Linux 也支持 Kerberos。
此外,它已成为所有平台上网站和单点登录应用程序的标准。Kerberos 提高了互联网及其用户的安全性,同时允许用户在不损害安全性的情况下在线和在办公室执行更多操作。
流行的操作系统和软件程序已经内置了 Kerberos,它已成为 IT 基础设施的重要组成部分。它是 Microsoft Windows 的标准授权技术。
它使用强大的加密技术和第三方票据授权,使得黑客更难访问公司网络。组织可以通过 Kerberos 使用互联网,而不必担心会危及其安全性。
Kerberos 最著名的应用是 Microsoft Active Directory,它控制域并执行用户身份验证,作为 Windows 2000 及更高版本中包含的标准目录服务。
苹果、美国国家航空航天局、谷歌、美国国防部和全国各地的机构都是比较知名的用户。
以下是一些具有内置或可访问 Kerberos 支持的系统示例:
- 亚马逊网络服务
- 谷歌云
- 惠普 Unix
- IBM 高级交互主管
- 微软天青
- Microsoft Windows 服务器和 AD
- 甲骨文
- OpenBSD
其他资源
结论
Kerberos 是用于保护客户端-服务器连接的最广泛使用的身份验证方法。Kerberos 是一种对称密钥身份验证机制,可提供数据完整性、机密性和双向用户身份验证。
它是 Microsoft Active Directory 的基础,并且已经发展成为各种攻击者的攻击目标之一。
接下来,您可以查看用于监控 Active Directory 运行状况的工具。