📜  Kerberos 和 NTLM 之间的区别(1)

📅  最后修改于: 2023-12-03 15:02:30.463000             🧑  作者: Mango

Kerberos 和 NTLM 之间的区别

介绍

Kerberos 和 NTLM 都是在 Windows 系统中常用的身份验证协议,用于保护网络通信系统。虽然它们的目标相似,但它们的实现方法有所不同。

Kerberos

Kerberos 是一种使用对称密钥加密方法进行身份验证的网络协议。其基本操作流程如下:

  1. 用户向 Kerberos 认证服务器发送一个认证请求。
  2. Kerberos 认证服务器向用户发送一张 "票据",其中包含了一个 "服务票据 (service ticket)" 和一个 "身份验证票据 (authentication ticket)"。
  3. 用户向该网络服务发送服务票据和身份验证票据。
  4. 该网络服务收到票据后,向 Kerberos 服务器进行验证。如果票据被验证通过,用户将被认证并被授权访问该服务。

Kerberos 有以下特点:

  • 安全性高,适用于多服务器环境。
  • 支持跨域身份验证。
  • 理论上支持访问控制列表。
  • 与 Windows 操作系统集成较好,但不支持其他操作系统。
NTLM

NTLM 是一种基于 Windows 操作系统的身份验证协议,最初用于支持 Windows 和 LAN Manager 网络环境。其基本操作流程如下:

  1. 用户向服务器发送一个身份验证请求。
  2. 服务器向客户端发送一个 "随机数 (nonce)"。
  3. 客户端用该非对称加密的随机数对用户的密码进行加密,并将结果发送回服务器。
  4. 服务器用其自己的密码对该随机数进行加密,并与客户端加密结果进行比较。如果密码相同,则用户被认证并被授权访问该服务。

NTLM 有以下特点:

  • 安全性不如 Kerberos,容易遭受中间人攻击。
  • 仅适用于单服务器环境。
  • 可以通过访问控制列表进行访问控制。
区别

Kerberos 和 NTLM 两者的主要区别在于:

  • 安全性:Kerberos 相对于 NTLM 更加安全。
  • 跨域身份验证:只有 Kerberos 支持跨域身份验证。
  • 应用场景:Kerberos 适用于多服务器环境,而 NTLM 只适用于单服务器环境。
  • 访问控制:Kerberos 只支持理论上的访问控制,而 NTLM 可以通过访问控制列表进行访问控制。

需要注意的是,为了进行 Kerberos 认证,需要配置域名服务器和 SPN(Service Principal Name)服务;而为了进行 NTLM 认证,则需要调整本地策略设置。