Kerberos的预身份验证如何提高安全性?


11

FAQ条目(以及RFC本身)指出,预身份验证解决了Kerberos初始实现中的一个弱点,该弱点使其容易受到脱机字典攻击。

常见问题解答状态:

预身份验证的最简单形式称为PA-ENC-TIMESTAMP。这只是使用用户密钥加密的当前时间戳。

如果攻击者设法嗅探包含此预认证数据的数据包,这是否也容易受到字典攻击?我有密文,我知道原始的时间戳-这种情况有什么不同?


我参加聚会有点晚了:)。我认为假设攻击者具有原始时间戳是不正确的。这是“已知密文”攻击,而不是“已知明文”攻击,否则会很有趣。我们不能假设攻击者同时拥有明文和密文,因为他也知道算法,所以这里面临的挑战是什么?也许我在这里错过了什么……
Ashkan

在完成我之前的评论后,重新考虑此问题后,我想到了一个想法,如果我们假设攻击为“已知明文”攻击(意味着攻击者知道确切的时间戳),那么您是正确的,预身份验证步骤确实可以不能提供额外的安全性,因为他可以尝试可能的不安全选择的密码并找到密钥,否则,它会这样做。所以我想知道这是哪种类型的攻击?
阿什坎

Answers:


16

当您不执行预身份验证时,攻击者可以直接发送虚拟请求进行身份验证。KDC将返回加密的TGT,攻击者可以将其离线破解。除了对TGT的单个请求之外,您在KDC日志中什么也看不到。

当您强制执行时间戳记预身份验证时,攻击者无法直接向KDC请求加密的材料以使暴力破解脱机。攻击者必须使用密码对时间戳进行加密,并将其提供给KDC。是的,他可以一遍又一遍地执行此操作,但是每次他的预身份验证失败时,您都会看到一个KDC日志条目。

因此,时间戳记预认证可防止活动的攻击者。它不能防止被动攻击者将客户端的加密时间戳消息嗅探到KDC。如果攻击者可以嗅探到完整的数据包,则可以将其离线蛮行。

缓解此问题的方法包括使用长密码和良好的密码轮换策略以使离线强制暴力变得不可行,或使用PKINIT(http://www.ietf.org/rfc/rfc4556.txt


+1感谢您指出主动攻击者和被动攻击者之间的区别。
Harvey Kwok

请注意,这个细节完整的文章出现在2014年在这里:social.technet.microsoft.com/wiki/contents/articles/...
马丁塞拉诺

5

我在IEEE Xplore上找到了一篇与此相关的论文(通过RC4-HMAC加密类型分析提取Kerberos密码)。他们似乎暗示,如果捕获到预身份验证数据包,则没有什么不同。

如果攻击者能够捕获预身份验证数据包并希望获得有效用户的身份,则攻击者将需要执行KDC执行的过程。攻击者将需要使用商定的加密类型中的解密程序,并尝试对捕获的数据运行不同的密码。如果成功,则攻击者拥有用户的密码。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.