使用对称加密密钥时SSL的奇怪行为?

van*_*con 8 encryption ssl

我使用wireshark来观察几个SSL3.0流量并解密客户端和服务器之间传输的消息.

而我刚才发现的很奇怪:

AFAIK,用于计算客户端发送的客户端完成和应用程序数据的加密密钥,MAC和加密算法完全相同.

但是,当我使用相同的客户端写入密钥来加密客户端完成(源自MasterSecret)来加密应用程序数据时,我得到的结果与客户端(firefox)计算的结果不同.

奇怪的行为也发生在服务器上:我可以使用server-write-key(从MasterSecret派生)成功解密"服务器完成"消息,但无法解密来自服务器的任何其他加密消息.

那么,你能告诉我client-write-key和server-write-key发生了什么?客户端和服务器在发送"已完成"消息后是否更改了其写密钥?

PS:我强迫客户端(Firefox)使用SSL V3.0,cipherSuite = TLS_RSA_WITH_RC4_128_MD5

van*_*con 3

我自己找到了答案:我使用的函数 RC4 没有保存密码状态,而 SSL 流密码需要保存密码状态。我使用了 RC4 类并解决了问题!