📅  最后修改于: 2023-12-03 15:17:08.250000             🧑  作者: Mango
Kerberos和NTLM都是用于网络认证和授权的协议。Kerberos是一种安全认证协议,而NTLM(NT LAN Manager)是Windows内部维护的一种认证协议。虽然它们都是为了提供安全认证,但在很多方面它们都有所不同。
Kerberos是一种安全认证协议,可以提供可靠的身份验证和保护用户的凭证。Kerberos最大的特点是单点登录(SSO),用户只需要登录一次即可访问网络中的所有资源。 Kerberos使用客户端-服务器模型进行身份验证,需要在多个网络中组织许多服务器。在Kerberos中,实体的认证通过必须具有网络许可(TGT)的票证来完成。失败则需要重新进行TGT请求。Kerberos可以远程请求,但是在安全性方面存在问题。它需要访问认证服务器来获取TGT,如果网络不稳定或认证服务器有攻击者存在,在认证过程中就很容易被拦截或篡改。
NTLM是一种传统认证协议,只与Windows系统相关。它使用MD4散列函数计算哈希密码,hash密码和挑战以及客户机和服务器之间的随机数字被用来计算摘要。在NTLM中,如果服务器不能验证客户机的NTLM凭证,则会拒绝连接。NTLM无法提供单点登录,每个被连接到的网络都需要单独进行登录。 但NTLM适用于少量用户的网络,因为他不需要其他服务器的支持。在安全性方面,它的漏洞已被黑客所曝光。 例如,NTLM 中的挑战的结果从未被标准化,因此无法在其他平台间共享。而且,摘要存在重放攻击的风险。
Kerberos和NTLM都是认证协议,它们都有自己的适用场景。Kerberos适用于大型企业,而NTLM更适用于小型网络。从安全性的角度来看,Kerberos比NTLM更安全,但复杂和繁琐。而NTLM安全性不够好,在大量用户、多个网络环境下容易受到攻击。因此,为了使网络安全更可靠,开发人员应始终选择更安全、更可靠的 Kerberos 认证方式,特别是当处理敏感数据时。