kerberos 只加密身份验证还是加密所有客户端通信?

does kerberos encrypt only the authentication or all client communications?

kerberos 是只加密身份验证过程还是加密所有客户端通信?

我的印象是它就像是 LAN 的 VPN。

以便所有 LAN 通信都被加密。就像所有互联网通信都使用 VPN 加密一样。

问候 奥布里

Kerberos 是一种分布式服务,通常用于 secure authentication only. It does neither ensure that a user has the required permissions to access a resource (that would be Authorization) however it may be used to encrypt arbitrary data. As per RFC 3961 "Encryption and Checksum Specifications" which extends and correct aspects of RFC 1510 Kerberos 协议提供机密性和完整性服务。

虽然 Kerberos 可用于加密在许多情况下经过身份验证的对等方之间传递的信息,但它仅执行身份验证步骤。因此,您会发现 Kerberos 被用作安全环境中的组件,以确保与处理授权和安全传输的其他组件和协议的安全身份验证。

最后,这在很大程度上取决于您的使用情况来确定使用 Kerberos 或其他协议作为传输协议之间的权衡是否对您有意义。

虽然 Kerberos 协议可用于在大多数平台上提供加密服务,但 Microsoft 没有提供执行此目录的机制。相反,可以使用 GSSAPI 来调用这些服务。

例如,Active Directory 使用 Kerberos 确保消息完整性。

同样,您可以使用例如TLS 或 IPsec 在线路上加密您的数据并将其与 Kerberos 结合以进行身份​​验证。但同样,这是另一个执行实际传输加密并仅使用 Kerberos 作为身份验证组件的协议。

Kerberos 能够很好地加密客户端和服务器之间的流量,但具体取决于应用程序中 kerberos 的使用方式,它可能会或可能不会使用 kerberos 会话密钥来加密流量。

kerberos 协议提供了交换会话密钥的方法,该密钥可用于在初始身份验证交换后加密消息流量。加密消息交换通常是实际使用 GSSAPI 的协议的默认设置。参见 gss_wrap documentation

GSSAPI 是一个广义的 API,用于安全网络应用程序。 Kerberos 是 GSSAPI 下最常用的驱动程序。

如果应用程序不使用 GSSAPI,或本机 kerberos 消息传递库,则可能使用 TLS 来加密流量或流量未加密。

Kerberos 消息加密旨在支持相对长期存在的基于 tcp 的 client/server 应用程序(想想 telnet 或 ssh)。 API 并不总能很好地映射到当前应用程序的架构方式。 Kerberos 支持通常在应用程序构建完成后才得到很好的支持 并且仅用于身份验证。