我使用wireshark观看了几个SSL3.0流量并解密了客户端和客户端之间传输的消息。服务器
我刚才发现的很奇怪:
AFAIK,用于计算客户端发送的加密密钥,MAC和加密算法,以及客户端发送的应用程序数据完全相同。
但是,当我使用相同的客户端写入密钥来加密客户端完成(从MasterSecret派生)来加密应用程序数据时,我得到的结果与客户端(firefox)计算的结果不同。
奇怪的行为也发生在服务器上:我可以使用server-write-key(从MasterSecret派生)成功解密“服务器完成”消息,但无法解密来自服务器的任何其他加密消息。
那么,你能否告诉我客户端写入密钥&服务器写密钥? 客户端和服务器在发送“已完成”消息后是否更改了写密钥?
PS:我强迫客户端(Firefox)使用SSL V3.0,cipherSuite = TLS_RSA_WITH_RC4_128_MD5
答案 0 :(得分:3)
我自己找到了答案:我使用的RC4函数没有保存密码状态,而SSL流密码则需要。我已经使用了RC4课程并解决了问题!