我试图了解 SSL 和 Kerberos 身份验证之间的实际区别是什么,以及为什么有时我同时拥有 SSL 流量和 Kerberos。或者 Kerberos 是否以任何方式使用 SSL?
任何人都可以帮忙吗?谢谢!
SSL 使用公钥加密:
Kerberos 不使用公钥加密。它使用受信任的第 3 方。这是一个草图:
虽然Kerberos和SSL都是协议,但 Kerberos 是身份验证协议,而 SSL 是加密协议。Kerberos 通常使用UDP, SSL 使用(大部分时间)TCP。SSL 身份验证通常通过检查嵌入在称为X.509 证书的东西中的服务器和客户端的RSA或ECDSA密钥来完成。您已通过证书和相应的密钥进行身份验证。使用 Kerberos,您可以通过密码或其他方式进行身份验证。例如,在域中使用时,Windows 使用 Kerberos 。
请记住:SSL 的最新版本称为传输层安全性 TLS。
简而言之,Kerberos 是一种协议,用于通过受信任的第三方为客户端和服务器建立相互身份信任或身份验证,而 SSL 确保仅对服务器进行身份验证,并且只有在其公钥已经建立的情况下通过另一个渠道值得信赖。两者都提供服务器和客户端之间的安全通信。
更正式(但没有进入数学证明),给定客户端C、服务器S和C和S都信任的第三方T :
在 Kerbeos 身份验证之后,确定:
另一方面,SSL 仅确定:
显然,Kerberos 建立了更强大、更完整的信任关系。
此外,为了通过 SSL建立S的身份, C需要关于S的先验知识,或者一种外部方式来确认这种信任。对于大多数人的日常使用,它以根证书的形式出现,并缓存S的证书以供将来交叉引用。
如果没有这些先验知识,SSL 很容易受到中间人攻击,其中第三方可以通过使用 2 个独立的安全通道将它们之间的通信中继到C和S来假装S到C。为了破坏 Kerberos 身份验证,窃听者必须伪装成T对S和C。但是请注意,根据 Kerberos 的目标,信任集仍然没有中断,因为根据前提条件“ C和S信任T ”,最终状态仍然是正确的。
最后,正如评论中所指出的,Kerberos 可以并且已经被扩展为使用类似 SSL 的机制来建立C和T之间的初始安全连接。
In short:
Kerberos usually does not encrypt transferring data, but SSL and TLS do.
"there are no standard APIs for accessing these messages. As of Windows Vista, Microsoft does not provide a mechanism for user applications to produce KRB_PRIV or KRB_SAFE messages." - from http://www.kerberos.org/software/appskerberos.pdf
In opposite, SSL and TLS usually do not transfer and proof Yours Windows domain login name to the server, but Kerberos does.
简短的回答:SSL 和 Kerberos 都使用加密,但 SSL 使用在会话期间不变的密钥,而 Kerberos 使用多个密钥来加密客户端和客户端之间的通信。
在 SSL 中,加密由通信的两端直接处理,而在 Kerberos 中,加密密钥由客户端和服务器之间的第三方(某种中介)提供。
来自http://web.mit.edu/kerberos/:Kerberos 由 MIT 创建,作为这些网络安全问题的解决方案。Kerberos 协议使用强加密,因此客户端可以通过不安全的网络连接向服务器证明其身份(反之亦然)。在客户端和服务器使用 Kerberos 证明他们的身份之后,他们还可以加密所有通信,以确保他们开展业务时的隐私和数据完整性。
同时: SSL 用于通过公钥加密建立服务器<-->服务器认证。
来自https://www.eldos.com/security/articles/7240.php?page=all,
Kerberos 和 TLS 不是可以比较的东西。他们有不同的目标和不同的方法。在我们文章的开头,我们提到了“哪个更好”和“选择什么”等常见问题。前者根本不是问题:如果你以正确的方式使用它,没有什么是更好的,一切都是好的。后一个问题值得认真考虑:选择什么取决于您拥有什么和想要什么。
如果您想在没有人可以读取或篡改的意义上保护您的通信,也许正确的选择是使用 TLS 或其他一些基于它的协议。使用 TLS 保护 HTTP 承载的万维网流量的一个很好的例子是使用 HTTPS。对于安全文件传输,您可以使用 FTPS,并考虑到 SMTP(尽管它代表“简单”邮件传输协议,而不是“安全”)也可能受到 TLS 保护。
另一方面,如果您需要管理用户对服务的访问,您可能需要使用 Kerberos。例如,想象一下,您有多个服务器,如 Web 服务器、FTP、SMTP 和 SQL 服务器,以及可选的其他服务器,所有内容都在一台主机上。一些客户端允许使用 SMTP 和 HTTP,但不允许使用 FTP,其他客户端可能使用 FTP 但无权访问您的数据库。这正是 Kerberos 开始使用时的情况,您只需在 Authentication Server 中描述用户权限和管理策略。