我正在研究SSL以及在服务器和客户端计算机之间建立加密连接所涉及的一些步骤。
我了解服务器密钥和证书已发送到浏览器,并且正在计算密码,就像他们在以下视频中所说:
http://www.youtube.com/watch?v=iQsKdtjwtYI
大约5点22分,他们谈到了一个主密码,它被计算为以加密的方式开始说话。
我现在的问题是:在连接实际加密(握手阶段)之前,服务器和客户端之间的所有通信都可以被数据包嗅探器嗅探。那么是否可以嗅探加密密钥或用于建立安全连接的其他数据?
答案 0 :(得分:3)
从Wikipedia summary开始,我认为您感兴趣的关键部分是:
客户端使用ClientKeyExchange消息进行响应,该消息可能是 包含PreMasterSecret,公钥或什么都没有。 (再次,这 取决于所选的密码。)此PreMasterSecret已加密 使用服务器证书的公钥。
这就是公钥如此重要的原因。如果你使用了错误的公钥,你就很容易受到中间人攻击。
在出现虚假SSL证书问题时(例如DigiNotar),见证合理的担心。
答案 1 :(得分:2)
秘密密钥本身根本不传输,因此无法被嗅探。它在两端独立计算。它的计算材料称为PreMasterSecret,它使用服务器证书的公钥加密。因此,除非服务器的私钥被泄露,否则密钥既不会被嗅探也不会被独立计算。