55

我试图了解 SSL 和 Kerberos 身份验证之间的实际区别是什么,以及为什么有时我同时拥有 SSL 流量和 Kerberos。或者 Kerberos 是否以任何方式使用 SSL?

任何人都可以帮忙吗?谢谢!

4

7 回答 7

40

SSL 使用公钥加密:

  1. 您(或您的浏览器)有一个公钥/私钥对
  2. 服务器也有一个公钥/私钥
  3. 您生成一个对称会话密钥
  4. 您使用服务器的公钥加密并将此加密的会话密钥发送到服务器。
  5. 服务器使用其私钥解密加密的会话密钥。
  6. 您和服务器开始使用对称会话密钥进行通信(主要是因为对称密钥更快)。

Kerberos 不使用公钥加密。它使用受信任的第 3 方。这是一个草图:

  1. 你们(服务器和客户端)都向受信任的第 3 方(通过秘密)证明您的身份。
  2. 当您想使用服务器时,您检查并查看服务器是否值得信赖。同时,服务器会检查您是否值得信赖。现在,相互确定对方的身份。您可以与服务器通信。2
于 2008-09-21T20:06:44.547 回答
37

虽然KerberosSSL都是协议,但 Kerberos 是身份验证协议,而 SSL 是加密协议。Kerberos 通常使用UDP, SSL 使用(大部分时间)TCP。SSL 身份验证通常通过检查嵌入在称为X.509 证书的东西中的服务器和客户端的RSAECDSA密钥来完成。您已通过证书和相应的密钥进行身份验证。使用 Kerberos,您可以通过密码或其他方式进行身份验证。例如,在域中使用时,Windows 使用 Kerberos 。

请记住:SSL 的最新版本称为传输层安全性 TLS。

于 2008-09-21T19:11:52.277 回答
29

简而言之,Kerberos 是一种协议,用于通过受信任的第三方为客户端和服务器建立相互身份信任或身份验证,而 SSL 确保仅对服务器进行身份验证,并且只有在其公钥已经建立的情况下通过另一个渠道值得信赖。两者都提供服务器和客户端之间的安全通信。

更正式(但没有进入数学证明),给定客户端C、服务器S和CS都信任的第三方T :

在 Kerbeos 身份验证之后,确定:

  • C认为S是它打算联系的人
  • S相信C就是它声称的那个人
  • C认为它与S有安全连接
  • C认为S认为它与C有安全连接
  • S认为它与C有安全连接
  • S认为C认为它与S有安全连接

另一方面,SSL 仅确定:

  • C认为S是它打算联系的人
  • C认为它与S有安全连接
  • S认为它与C有安全连接

显然,Kerberos 建立了更强大、更完整的信任关系。

此外,为了通过 SSL建立S的身份, C需要关于S的先验知识,或者一种外部方式来确认这种信任。对于大多数人的日常使用,它以根证书的形式出现,并缓存S的证书以供将来交叉引用。

如果没有这些先验知识,SSL 很容易受到中间人攻击,其中第三方可以通过使用 2 个独立的安全通道将它们之间的通信中继到CS来假装SC。为了破坏 Kerberos 身份验证,窃听者必须伪装成TSC。但是请注意,根据 Kerberos 的目标,信任集仍然没有中断,因为根据前提条件“ CS信任T ”,最终状态仍然是正确的。

最后,正如评论中所指出的,Kerberos 可以并且已经被扩展为使用类似 SSL 的机制来建立CT之间的初始安全连接。

于 2008-10-27T07:53:16.390 回答
4

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.

于 2017-07-26T14:30:24.907 回答
3

简短的回答:SSL 和 Kerberos 都使用加密,但 SSL 使用在会话期间不变的密钥,而 Kerberos 使用多个密钥来加密客户端和客户端之间的通信。

在 SSL 中,加密由通信的两端直接处理,而在 Kerberos 中,加密密钥由客户端和服务器之间的第三方(某种中介)提供。

于 2008-09-21T16:55:56.033 回答
2

来自http://web.mit.edu/kerberos/:Kerberos 由 MIT 创建,作为这些网络安全问题的解决方案。Kerberos 协议使用强加密,因此客户端可以通过不安全的网络连接向服务器证明其身份(反之亦然)。在客户端和服务器使用 Kerberos 证明他们的身份之后,他们还可以加密所有通信,以确保他们开展业务时的隐私和数据完整性。

同时: SSL 用于通过公钥加密建立服务器<-->服务器认证。

于 2015-02-03T15:58:04.707 回答
2

来自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 中描述用户权限和管理策略。

于 2016-04-14T09:21:03.183 回答