我试图了解SSL和Kerberos身份验证之间的实际区别是什么,以及为什么有时我同时拥有SSL流量和Kerberos.或者Kerberos以任何方式使用SSL?
有人可以帮忙吗?谢谢!
虽然Kerberos和SSL都是协议,但Kerberos是一种身份验证协议,但SSL是一种加密协议.Kerberos使用UDP,SSL使用(大多数时候)TCP.SSL身份验证通常通过检查服务器和客户端的RSA或ECDSA密钥来完成,这些密钥嵌入在称为X.509证书的内容中.您已通过证书和相应密钥进行身份验证.使用Kerberos,您可以通过密码或其他方式进行身份验证.例如,Windows在域中使用时使用Kerberos.
相关说明:最新版本的SSL称为传输层安全性的TLS.
SSL使用公钥加密:
您(或您的浏览器)有一个公钥/私钥对
服务器也有公钥/私钥
您生成对称会话密钥
您使用服务器的公钥进行加密,并将此加密的会话密钥发送到服务器.
服务器使用其私钥解密加密的会话密钥.
您和服务器开始使用对称会话密钥进行通信(主要是因为对称密钥更快).
Kerberos不使用公钥加密.它使用受信任的第三方.这是一个草图:
您(服务器和客户端)都向受信任的第三方证明您的身份(通过秘密).
如果要使用服务器,请检查并确定服务器是否值得信任.同时,服务器检查您是否值得信赖.现在,相互保证彼此的身份.您可以与服务器通信.2
简而言之,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伪装成S和C两者.但是请注意,根据Kerberos的目标,信任集仍然是不间断的,因为根据前提条件" C和S信任T " ,结束状态仍然是正确的.
最后,正如评论中指出的那样,Kerberos可以并且已经扩展为使用类似SSL的机制来建立C和T之间的初始安全连接.