SSL和Kerberos身份验证之间的区别?

Lay*_*yla 45 ssl kerberos traffic netmon

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

有人可以帮忙吗?谢谢!

Kov*_*Bal 32

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

相关说明:最新版本的SSL称为传输层安全性的TLS.

  • 首先,SSL不需要*TCP.它可以在任何传输上运行,只要传输保证传输,并且DTLS是对在UDP上运行的TLS的轻微修改.接下来,SSL不仅允许使用证书,还使用密码,openpgp密钥等进行身份验证. (4认同)

Chr*_*ris 32

SSL使用公钥加密:

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

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

  1. 您(服务器和客户端)都向受信任的第三方证明您的身份(通过秘密).
  2. 如果要使用服务器,请检查并确定服务器是否值得信任.同时,服务器检查您是否值得信赖.现在,相互保证彼此的身份.您可以与服务器通信.2

  • Kerberos可以使用公钥加密作为其会话密钥.该标准从2006年的共享密钥机制扩展到http://www.ietf.org/rfc/rfc4556.txt了解更多详情 (5认同)
  • 我想我在谈论旧的 Kerberos 协议。另一点是区分您如何在 SSL 中为自己担保(通过公钥/私钥),而在 Kerberos 中,即使使用 PKC 作为会话密钥,服务器仍在为您担保。 (2认同)

Yan*_*hao 24

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

更正式的(但不进入数学证明),给予客户Ç,服务器小号,和第三方ŧ这两个Ç小号信任:

在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个独立的安全通道之间的通信Ç小号.为了破坏Kerberos身份验证,窃听者必须将T伪装成SC两者.但是请注意,根据Kerberos的目标,信任集仍然是不间断的,因为根据前提条件" CS信任T " ,结束状态仍然是正确的.

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

  • SSL完全能够使用客户端证书建立客户端的身份. (9认同)
  • 很清楚 SSL 客户端证书如何建立客户端 _machine_ 的身份,但不清楚它们如何建立客户端 _user_ 的身份。例如,如果用户拿起不同的设备,或通过双跳连接到服务。然而,Kerberos 以一种非常低摩擦的方式做到了这一点。 (2认同)

Mar*_*n08 3

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

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