我读过许多关于Kerberos的文章,其中大多数提到服务器响应客户机的最后一步是可选的:
我想知道为什么最后一步是可选的。为了安全目的,标识应用程序服务器标识不是必需的吗?
发布于 2016-11-13 04:14:21
在客户端和应用程序服务之间的Kerberos身份验证过程中,存在一定程度的相互身份验证。除非服务具有与Kerberos主体相关联的密钥,否则服务不应该能够解密服务票证。如果它不能解密服务票证,那么它就不应该访问有关用户主体的信息,它需要正确地对该用户进行身份验证并创建会话。
现在,我设想能够模拟合法服务的恶意主机可以假装它能够解密服务票证,并为任何与它联系的用户创建一个通用会话。在某些情况下--例如访问所有员工都有权限的内部网站--用户可能不清楚他们没有在适当的上下文中进行身份验证。在其他情况下--比如访问个人文件共享--应该很快就能清楚地看到,该服务没有用户期望的数据,而且是伪造的。
Kerberos相互身份验证过程向客户端证明,它是在使用正确的服务原则,而不是假设会话是具有有效服务的。
默认情况下没有启用相互身份验证,部分原因可能是攻击者很难成功地欺骗客户端,使其认为恶意服务是有效服务(例如,通过DNS欺骗),然后实际受益于此欺骗。此外,消除身份验证过程中的相互认证步骤也是一个小的性能好处。
https://security.stackexchange.com/questions/142478
复制相似问题