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