![有了 X.500 目录和 PKI,为什么要使用 Kerberos?](https://linux22.com/image/713689/%E6%9C%89%E4%BA%86%20X.500%20%E7%9B%AE%E5%BD%95%E5%92%8C%20PKI%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E4%BD%BF%E7%94%A8%20Kerberos%EF%BC%9F.png)
我知道Kerberos 可以使用 PKI公钥基础设施提供加密和身份验证,Kerberos 的设计重点是身份验证,而非加密,微软实施Kerberos KDC “使用 Active Directory 作为其帐户数据库”,并且 Active Directory 允许您使用证书代替密码。所以如果您正在使用 X.500 目录和 PKI,为什么要使用 Kerberos?您不能将 X.500 保留用于非 Kerberos 任务(例如,使用 memberOf 进行组成员身份查找)并用 PKI 替换 Kerberos 吗?
答案1
Kerberos 协议使用强加密技术,以便客户端可以通过不安全的网络连接向服务器证明其身份(反之亦然)。
AD DS 提供其他服务作为 Kerberos 的替代方案。LDAP 身份验证很常见,您提到了 x509 证书。
答案2
传统上,工业环境中的身份管理基于目录服务 (DS) X.500 标准。DS 提供不同类型安全主体的分层目录:用户、组、计算机、服务器以及您知道的网络内的其他实体。Windows Active Directory (AD) 将 DS、PKI 和其他系统作为单一基础设施实现。AD 使用 Kerberos 协议通过单点登录原则控制网络边界内、用户和计算机等实体之间的身份验证和访问。AD 中的 SSO 意味着一旦主体通过身份验证,它就会使用特殊票证多次或多个服务访问服务。PKINIT 扩展旨在在 AD 基础设施内链接 Kerberos 和 PKI。PKINIT 主要用于允许用户使用智能卡作为 AD 中的登录方式。但据我所知,AD 中的其他实体并不使用证书通过 Kerberos 进行身份验证。
您不能仅用 PKI 替换 Kerberos,因为 Kerberos 被设计为所有类型主体(而不仅仅是用户)之间的 SSO 身份验证协议。PKI 不是为此而设计的。PKI 更多地用于信任、完整性、文档签名。