简而言之,Kerberos是一种通过可信的第三方为客户端和服务器建立相互身份信任或身份验证的协议,而SSL仅确保服务器的身份验证,并且仅当其公钥已经通过另一个通道被建立为可信时。两者都提供了服务器和客户端之间的安全通信。 更正式地说(但不涉及数学证明),给定一个客户端 C、服务器 S 和一个 C 和 S 都信任的第三方 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很容易受到中间人攻击,在这种攻击中,第三方可以通过使用两个单独的安全通道将 S 与 * C * 之间的通信中继到 C 和 S,从而伪装成 S 与 C。要破坏Kerberos身份验证,窃听者必须伪装成 T 与 S 和 C 进行通信。但是,请注意,根据Kerberos的目标,信任集合仍然未被破坏,因为根据前提条件“C 和 S 信任 T",最终状态仍然正确。 最后,正如在注解中所指出的,Kerberos可以并且已经被扩展为使用类似SSL的机制来建立 C 和 T 之间的初始安全连接。
8条答案
按热度按时间inb24sb21#
SSL使用公钥加密:
1.您(或您的浏览器)拥有公钥/私钥对
1.服务器也有公钥/私钥
1.生成对称会话密钥
1.您使用服务器的公钥进行加密,并将此加密的会话密钥发送到服务器。
1.服务器使用其私钥对加密的会话密钥进行解密。
1.您和服务器开始使用对称会话密钥进行通信(基本上是因为对称密钥速度更快)。
Kerberos不使用公钥加密,而是使用可信任的第三方。
1.您双方(服务器和客户端)向受信任的第三方(通过 secret)证明您的身份。
1.当你想使用服务器时,你要检查服务器是否可信。与此同时,服务器也会检查你是否可信。现在,相互确认对方的身份。你可以与服务器进行通信。2
vdgimpew2#
虽然Kerberos和SSL都是协议,但Kerberos是身份验证协议,而SSL是加密协议,Kerberos通常使用UDP,SSL使用SSL验证 * 通常 * 是通过检查服务器和客户端的RSA或ECDSA密钥来完成的,这些密钥嵌入在称为X.509 certificates的东西中。您可以通过您的证书和相应的密钥进行身份验证。使用Kerberos,您可以通过密码或其他方式进行身份验证。例如,在域中使用Windows uses Kerberos时。
请记住:SSL的最新版本称为TLS,用于传输层安全。
laximzn53#
简而言之,Kerberos是一种通过可信的第三方为客户端和服务器建立相互身份信任或身份验证的协议,而SSL仅确保服务器的身份验证,并且仅当其公钥已经通过另一个通道被建立为可信时。两者都提供了服务器和客户端之间的安全通信。
更正式地说(但不涉及数学证明),给定一个客户端 C、服务器 S 和一个 C 和 S 都信任的第三方 T:
Kerbeos身份验证后,确定:
另一方面,SSL只确定:
显然,Kerberos建立了更强、更完整的信任关系。
此外,为了通过SSL建立 S 的身份,C 需要事先了解 S,或者通过外部方式来确认这种信任。对于大多数人的日常使用,这是以根证书的形式出现的,并缓存 S 的证书以供将来交叉引用。
如果事先不知道这一点,SSL很容易受到中间人攻击,在这种攻击中,第三方可以通过使用两个单独的安全通道将 S 与 * C * 之间的通信中继到 C 和 S,从而伪装成 S 与 C。要破坏Kerberos身份验证,窃听者必须伪装成 T 与 S 和 C 进行通信。但是,请注意,根据Kerberos的目标,信任集合仍然未被破坏,因为根据前提条件“C 和 S 信任 T",最终状态仍然正确。
最后,正如在注解中所指出的,Kerberos可以并且已经被扩展为使用类似SSL的机制来建立 C 和 T 之间的初始安全连接。
lmvvr0a84#
简而言之:
Kerberos通常不加密传输的数据,但SSL和TLS会加密。
“没有用于访问这些消息的标准API。从Windows Vista开始,Microsoft不提供用户应用程序生成KRB_PRIV或KRB_SAFE消息的机制。”- from http://www.kerberos.org/software/appskerberos.pdf
相反,SSL和TLS通常不会将您的Windows域登录名传输和验证到服务器,但Kerberos会。
nwlqm0z15#
简短的回答:SSL和Kerberos都使用加密,但SSL使用的密钥在会话期间保持不变,而Kerberos使用多个密钥来加密客户端和客户端之间的通信。
在SSL中,加密由通信的两端直接处理,而在Kerberos中,加密密钥由客户端和服务器之间的第三方(某种中间体)提供。
iyfjxgzm6#
从http://web.mit.edu/kerberos/开始:Kerberos是MIT为解决这些网络安全问题而创建的。Kerberos协议使用强大的加密技术,以便客户端可以通过不安全的网络连接向服务器证明其身份(反之亦然)。客户端和服务器使用Kerberos证明其身份后,它们还可以加密所有通信,以确保在进行业务时的隐私和数据完整性。
同时:SSL通过公钥加密建立服务器<-->服务器认证。
dfddblmv7#
从https://www.eldos.com/security/articles/7240.php?page=all开始,
Kerberos和TLS不是可以比较的东西,它们有不同的目标和不同的方法。在我们的文章开始我们提到了“哪个更好”和“选择什么”等常见问题。前者根本不是一个问题:如果你用得对,没有什么比这更好,一切都是好的。2后一个问题值得认真考虑:选择什么取决于你拥有什么和你想要什么。
如果你想保护你的通信,使任何人都不能阅读或篡改它,也许正确的选择是使用TLS或其他基于它的协议。一个很好的例子是使用HTTPS来保护HTTP传输的万维网通信。为了保护文件传输,你可以使用FTPS,并考虑到SMTP(虽然它代表“简单”邮件传输协议,而不是“安全”)也可以使用TLS进行保护。
另一方面,如果您需要管理用户对服务的访问,您可能希望使用Kerberos。例如,假设您有多个服务器,如Web服务器、FTP、SMTP和SQL服务器,以及可选的其他服务器,所有服务器都在一台主机上。某些客户端允许使用SMTP和HTTP,但不允许使用FTP。其他人可能使用FTP,但无法访问您的数据库。这正是Kerberos即将使用时的情况,您只需在Authentication Server中描述用户权限和管理策略。
mrphzbgm8#
SSL验证使用证书来向服务器验证您自己,而Kerberos的工作方式完全不同。SSL可以手动导入,并根据客户端和主机中的配置手动添加。而Kerberos是一种不通过网络传输密码的验证。在这里,kerberos KDC服务器不需要与任何服务或主机通信来验证客户端。客户端使用存储在kerberos中的原则与kerberos服务器通信。作为回报,kerberos服务器使用预先存储的其他服务器的keytab提供ticket,在其他服务器中,客户端提供ticket,服务将ticket与自己的keytab进行匹配,并验证客户端。