什么是Kerberos?Kerberos如何工作以及Kerberos身份验证?


你使用Microsoft Windows/Active Directory或Amazon Web Services (AWS)吗?那么你可能一直在不知不觉中使用Kerberos!

本文探讨了什么是Kerberos以及它是如何工作的。

Kerberos及其组件

Kerberos是一种用于计算机网络安全的安全或身份验证协议。Kerberos由麻省理工学院在20世纪80年代为Athena项目开发,此后已应用于许多操作系统和网络。

Kerberos与三个参与者一起工作,并使用密钥分发中心(KDC)作为客户端和互联网之间的第三方授权者/中间体。此路由器可防止对专用网络的访问,并通过Kerberos的对称密钥加密进一步增强安全性。由于Active Directory域服务(ADDS)上的大多数域控制器(DC)/网络服务器都需要并允许进行主机访问身份验证,因此Kerberos得到了广泛的应用。

Kerberos身份验证

在了解身份验证过程之前,必须了解这三个参与者的功能。

  • 客户端/用户 – 客户端代表用户请求访问,然后将其传输到应用程序服务器(AS)。

  • 应用程序服务器  托管用户想要访问的服务或资源。

  • 密钥分发中心(KDC)  由三个子部分组成,分别处理身份验证、授权和计费,即

    • 身份验证服务器(AS)

    • Kerberos数据库(KDB)–存储已验证用户的详细信息,例如ID和密码。

    • 票据授予服务器(TGS)–用户和目标服务之间的连接链接。

Kerberos身份验证工作流程

这些是Kerberos验证连接的广泛阶段。

阶段1 – 客户端向KDC中的AS请求分配票据授予票据(TGT)。

阶段2  AS运行用户的凭据,例如用户ID和网络地址。AS在集中式Kerberos数据库中找到已验证用户的详细信息作为值。验证值后,AS使用客户端的密码哈希生成一个秘密客户端密钥,该密钥由会话密钥(SK1)加密,并包含TGT(其中包含客户端ID、域地址、时间戳、SK1和票据的生存期)。AS同时还会生成一个秘密TGS密钥。

阶段3 – 客户端接收秘密用户密钥,解密TGT和SK1,并将身份验证器发送到TGS。

阶段4  KDC使用TGS秘密密钥解密并获取TGT和SK1。TGS将身份验证器与用户凭据匹配,并验证时间戳的有效性。如果一切正常,KDC将创建一个加密的服务票据,其中包含下一个会话密钥(SK2)。SK2还发送到网络服务以验证用户的请求。

阶段5  客户端解密服务票据后,将收到SK2和身份验证器。然后将其发送到目标服务器。

阶段6  最后,目标服务器使用SK2验证所有客户端详细信息和服务票据身份验证器。目标服务器向客户端发送消息以确认相互身份验证,从而授予安全连接。

Kerberos加密是如何发生的?

创建新帐户时,您需要提供不同的用户名和密码。用户名和Kerberos版本号组合在一起创建一个称为“salt”的唯一字符串,以最大限度地提高随机性。秘密密钥需要在客户端和目标服务之间共享,当匹配时,即可访问。

Kerberos的优缺点

以下是此协议的一些优点和缺点

优点

  • 单点登录和访问控制− Kerberos只需要单点登录,之后续期不需要重复输入信息。单点登录对于用户访问和管理员(例如在企业中)更容易执行安全策略。

  • 相互/共享和可重用身份验证− 用户和服务相互验证,因此双方都能确保对方已获验证。

    此外,一旦用户经过验证,身份验证在票据生命周期内是持久的,并且在此期间无需再次提供个人信息。

  • 简单的透明性− 只维护客户端名称和时间戳的简单日志,以便轻松进行审核和确保透明性。

  • 通用的安全系统− Kerberos在其安全机制中使用了多种防护功能。这些功能包括加密、每个实体的加密秘密密钥和第三方身份验证(多因素身份验证)。密码永远不会存储或通过网络发送,只使用密码哈希,这使得模拟变得更加困难。

  • 受限票据生命周期− TGS发行的票据仅在特定时间段内有效,之后管理员将取消对目标服务器的所有访问尝试。

缺点

  • 严格的同步− 客户端、KDC和主机站点必须在相同的时间和日期可用并配置,以防止票据生命周期过期。Kerberos确实提供了大约5分钟的时间余量,之后由于中继攻击,必须重复此过程。

  • 集群托管− 同时访问多个域需要同时复制服务器,否则所有访问请求都会失败。每个客户端/设备和网络服务器都需要其自己的主机名和秘密密钥作为标识符。重叠或重复会导致登录问题。

  • 集中式系统− Kerberos是一个集中式协议,因此单点攻击可以关闭整个系统,这使得辅助/备份身份验证机制成为必要。

  • 节点兼容性− 所有设备、网络服务和操作系统都必须与Kerberos兼容。双方都必须能够读取和解析NetBIOS和DNS地址,因为这些是最常用的Kerberos SPN,并且它们需要访问处理Kerberos流量的TCP和UDP 88端口。

结论

在可预见的未来,Kerberos不会消失。它仍然可靠,并继续有效地保护用户免受未经授权的攻击。尽管技术和网络犯罪有所发展,Kerberos 仍然存在至今。许多大型公司,如微软和苹果,在其操作系统中都内置了Kerberos。此外,每个操作系统都可以使用Kerberos作为其基础身份验证协议并自定义其软件安全性。

更新于:2022年12月15日

1000+ 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告