小学生之间的信任:Kerberos认证协议详解
Kerberos认证可能令人望而生畏,但它是任何IT专业人员都需要理解的重要协议,在信息安全领域尤其关键。虽然你可能不常听到Kerberos,但很可能听说过它最大的实现:Windows Active Directory。自Windows 2000以来,Kerberos一直是域内用户的默认网络认证协议。在实践中,Kerberos允许网络认证在不将用户密码或密码哈希值放到网络上的情况下进行。这样做可以保护用户免受各种可能捕获用户凭据的窃听攻击。
守护地狱的三头犬
选择最可怕的吉祥物是有原因的
关于Kerberos的一个混淆来源是其不同的实现。在20世纪80年代,MIT发明了Kerberos认证协议。到20世纪90年代,该协议的第4版成为IETF标准,微软开始将其自己的版本实现到Windows 2000中。2005年,MIT协议的第5版取代了之前的IETF标准。截至目前,微软Kerberos遵循IETF标准的第5版;然而,微软做了一些小的更改。
MIT设计的Kerberos是一个认证协议。然而,当微软实现Kerberos时,他们选择向协议添加授权系统。可以想象,这些授权系统一直受到持续攻击。主要地,这些系统在域控制器的后渗透利用中被使用,以获得对网络资源的进一步访问。
虽然该协议可能看起来令人不知所措,但其核心概念简单到小学生都可以利用。事实上,他们确实这样做了。
你的第一次暗恋
想象一下,你在课间休息时看到你的暗恋对象和他们的好朋友。你真的很想邀请你的暗恋对象和你一起去吃冰淇淋,但你鼓不起勇气去问。幸运的是,你之前和他们的朋友说过话,所以你等他们暂时分开。这样你就可以单独和你们共同的朋友交谈。就在你开始和他们说话时,上课铃响了,你被迫进入教室。糟糕!你的朋友告诉你,他们会在上课时给你传纸条,这样你们可以继续谈话。
上课开始后,你收到来自你暗恋对象共同朋友的纸条,问你想谈什么。
童年纸条:传递的秘密比对称密钥加密还多
你告诉他们这是关于你的暗恋对象,你希望他们帮你邀请你的暗恋对象。你的朋友没有直接帮你邀请,而是想出了一个聪明的办法。你的朋友说他们写了一封有说服力的信给你的暗恋对象,但你必须自己递纸条。还有一个条件:你不能看纸条。你的朋友告诉你,如果你看了,他们会故意搞砸整件事。你犹豫了,但最终你还是同意了计划。你认为这会奏效,因为你的暗恋对象通常信任你们共同的朋友。
虽然你仍然需要和你的暗恋对象说话,但现在你可以随意把纸条放在他们的桌子上,而不必提起这个话题。总比没有好,你想。
在你把纸条放在他们的桌子上后,你到外面等待他们的回应。突然,你的暗恋对象从门口出来,问你最喜欢哪种冰淇淋。纸条起作用了!看来你的朋友成功帮你建立了联系!
让我们回顾一下:
- 你开始公开和你的朋友交谈。
- 你的朋友给你一张纸条,这样你可以继续和他们交谈。
- 你请你的朋友帮你邀请你的暗恋对象。
- 他们没有直接帮你邀请,而是为你写了一张纸条。
- 你为你的暗恋对象留下了纸条。
- 你的暗恋对象信任你们共同朋友的意见,开始读纸条。
- 你的暗恋对象考虑和你一起去吃冰淇淋。
- 你的暗恋对象决定和你一起去吃冰淇淋!
表面上,Kerberos的工作原理就像这些陷入爱河的小学生。在这个场景中,你是用户,域控制器是你的朋友,所需的服务是你的暗恋对象。
- 用户请求本地域控制器公开交谈。
- 域控制器给用户一个密钥,这样用户可以继续与它交谈。
- 用户请求域控制器访问服务。
- 域控制器创建一张纸条让用户交给服务。
- 用户将域控制器的纸条交给服务。
- 服务信任域控制器纸条的内容。
- 服务将用户的信息与域控制器的纸条进行匹配。
- 服务认证用户!
虽然这个解释对于该主题的粗略概述已经足够,但深入理解该主题需要进一步解释。在互联网上搜索了几个小时、观看视频和阅读论文后,我找到了一些我强烈推荐的资源。
Microsoft TechNet的《Kerberos版本5认证协议工作原理》
如果你想埋头苦干,微软在2009年的TechNet文章中详细介绍了其版本的Kerberos。该文章与指定协议的RFC有一两步之遥,但它很好地解释了微软为了加速操作或提供授权设施而修改协议的地方。此外,它还提供了认证过程的逐步解释。
SANS的《瞄准Kerberos:金票、银票、MITM等》
SANS对微软Kerberos的解释继续令人印象深刻。毫无疑问,SANS提供了对微软Kerberos协议实现的最佳功能解释,特别偏向安全专业人员。除了解释认证过程,文章还涉及当前可用于微软Kerberos实现的漏洞利用(Overpass the Hash、金票、银票和MITM攻击)。
Skip Duckwall和Benjamin Delpy的《滥用Kerberos》视频和PDF
Duckwall和Delpy深入探讨了与微软Kerberos认证相关的漏洞。Benjamin Delpy编写的用于域控制器后渗透利用的工具Mimikatz在整个演示中进行了演示。虽然这是一个很棒的演示,但我建议先阅读SANS文章,因为该演讲展示了上述SANS帖子中提到的几乎所有漏洞利用的工作演示。
总的来说,Kerberos虽然令人不知所措,但可以通过退一步从更高层次来看待它而变得简单。一旦你理解了该协议的基础知识,作为信息技术专业人员,你将获得大量知识。有了Kerberos的知识,系统管理员可以开始保护他们的网络,安全专业人员可以开始学习该协议固有的漏洞。
毕竟,没有必要害怕那只又大又坏的狗。