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

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

常见问题解答条目(以及请求函数Kerberos 本身 (https://www.kerberos.org/doc/) 指出,预身份验证解决了 Kerberos 初始实现中的一个弱点,该弱点使其容易受到离线字典攻击。

常见问题解答中指出:

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

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

答案1

当您不强制执行预身份验证时,攻击者可以直接发送虚拟身份验证请求。KDC 将返回加密的 TGT,攻击者可以强行将其离线。除了单个 TGT 请求外,您将在 KDC 日志中看不到任何内容。

当您强制执行时间戳预认证时,攻击者无法直接向 KDC 索要加密材料以进行离线暴力破解。攻击者必须使用密码加密时间戳并将其提供给 KDC。是的,他可以反复执行此操作,但每次他未通过预认证时,您都会看到 KDC 日志条目。

因此,时间戳预认证可以防止主动攻击者。但它无法防止被动攻击者嗅探客户端发送到 KDC 的加密时间戳消息。如果攻击者可以嗅探到该完整数据包,他就可以强行将其离线。

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

答案2

我找到了一篇论文(通过 RC4-HMAC 加密类型分析提取 Kerberos 密码) 上的 IEEE Xplore 中与此有些相关的内容。它们似乎暗示,如果捕获了预认证数据包,情况也没什么不同。

如果攻击者能够捕获预认证数据包并想要窃取有效用户的身份,则攻击者需要执行 KDC 执行的程序。攻击者需要使用约定的加密类型中的解密程序,并尝试针对捕获的数据运行不同的密码。如果成功,则攻击者拥有用户的密码。

相关内容