我知道 TLS 密码,例如TLS_RSA_WITH_AES_128_CBC_SHA传输数据,如图所示。据我了解,密文必须是块大小的倍数,在本例中为 16 个字节。但是,当我查看 Wireshark 的以下输出时,我感到很困惑。
从Encrypted Application Data的开头减去IV对应的16个字节后,剩下100个字节的密文,显然不是16的倍数。我不明白什么?
编辑:根据上述链接中结构的结构,我的印象是 MAC 在加密之前附加到明文中,因此包含在密文中。
我知道 TLS 密码,例如TLS_RSA_WITH_AES_128_CBC_SHA传输数据,如图所示。据我了解,密文必须是块大小的倍数,在本例中为 16 个字节。但是,当我查看 Wireshark 的以下输出时,我感到很困惑。
从Encrypted Application Data的开头减去IV对应的16个字节后,剩下100个字节的密文,显然不是16的倍数。我不明白什么?
编辑:根据上述链接中结构的结构,我的印象是 MAC 在加密之前附加到明文中,因此包含在密文中。
最后一个也意味着(SHA除TLS_RSA_WITH_AES_128_CBC_SHA其他外)每个数据包都有一个 HMAC-SHA-1 标签,以确保数据没有被篡改。这有 20 个字节的长度,因为这是 SHA-1 的摘要长度。所以在 116 个字节中,最后 20 个是这个标签,剩下 96 = 6 乘以 16 个纯密文 (AES-CBC) 字节,前 16 个是 CBC 模式所需的 IV,在结束,但我们这里有大约 4 到 5 个实际应用程序数据块。