首先,我很抱歉,鉴于有这么多相关的帖子,我又提出了一个关于这个问题的问题。在阅读了他们和相关网站之后,我仍然不清楚其中的几点。
我必须说,网上的大部分信息都是如此模糊。在解释和挥手上有这么多的漏洞。我猜是很少人知道实际的机制吗?
发布于 2013-11-12 06:09:31
你遗漏了几步。其中之一是到目前为止,服务器在整个握手过程中发送一个数字签名,并使用其私钥签名。只有服务器可以使用自己的证书来完成这一任务。没有其他人的。客户端使用发送的证书中的公钥验证数字签名。这证明服务器拥有证书。它还证明了服务器是发送所有其他握手消息的同一个实体。
顺便说一句,你的第三步是虚构的。根本不发送会话密钥。它是在两端独立计算的。
编辑您的答案上的注释:
服务器(从JoesGoods)从CA获得证书?
通常是通过互联网浏览器。
这能被劫持吗?
不超过任何其他安全SSL会话。
证书是“签名”的
对,是这样。
这意味着其中的一部分是使用CA的私钥加密的。
不是的。是你捏造的。
特别是拥有web服务器信息的位(JoesGoods的服务器信息)
不是的。是你捏造的。
整个证书都是用CA的私钥签名的,这并不意味着“加密”。
Bob的浏览器通过安全套接字连接到服务器,并发送一个"hello“数据包。
此时套接字并不安全。只是纯文本而已。
服务器将其公钥和证书发送给Bob。
不是的。服务器发送其证书。公钥已经在证书中。
浏览器检查the服务器(JoesGoods)是否与证书签名部分中的内容匹配
整个证书都是签名的。客户端检查它连接到的服务器是否与证书的subjectDN匹配。
key服务器的公钥也用CA的私钥签名
因为它在证书里。否则,就没有其他办法可以做到这一点。这就是为什么它不是单独发送的,也是为什么整个证书被签名,而不仅仅是你喜欢的部分。
浏览器使用步骤(2)中包含的key服务器的公钥向key服务器(JoesGoods)发送客户端密钥交换包。
这部分与密码套件有关。您所描述的适用于RSA密码套件。迪夫-赫尔曼是一个不同的故事,并有扩大的空间,包括其他人。
此客户端密钥用于生成对称密钥以执行交换的其余部分。这个客户端密钥被称为“预选密钥”,是一个随机密钥。由于对称密钥是使用该密钥创建的,因此我想知道为什么不直接发送对称密钥本身,因为此时连接已经加密和验证。
因为这样就没那么安全了。
这些步骤中也有一些是不正常的。
当这些步骤已经在RFC 2246中完全指定时,我真的不明白非正式地列举所有这些步骤的意义。已经有足够的错误信息在互联网上传播,比如这件未经维护的废话。
https://stackoverflow.com/questions/19921716
复制相似问题