什么是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作为其基础身份验证协议并自定义其软件安全性。