web-dev-qa-db-ja.com

TLS1.2 AES 128 CBC暗号化データサイズ

TLS_RSA_WITH_AES_128_CBC_SHAなどのTLS暗号は、データを 表示 として送信することを知っています。私の理解では、暗号文mustはブロックサイズの倍数である必要があります。この場合は16バイトです。ただし、Wiresharkからの以下の出力を見ると、混乱しています。

暗号化されたアプリケーションデータの先頭からIVに対応する16バイトを引くと、100バイトの暗号文が残ります。これは明らかにnot 16の倍数です。何がわからないのですか?

[〜#〜] edit [〜#〜]:上記のリンクの構造体の構造に基づいて、MACは暗号化の前に平文に追加されたため、暗号文に含まれていました。

Wireshark Output

5
user3452345224

TLS_RSA_WITH_AES_128_CBC_SHAの最後のSHAは、(とりわけ)すべてのパケットにHMAC-SHA-1タグがあり、データが改ざんされていないことを確認することも意味します。これはSHA-1のダイジェスト長であるため、長さは20バイトです。つまり、116バイトのうち、最後の20バイトがこのタグであり、96 = 6倍の16の純粋な暗号文(AES-CBC)バイトが残り、最初の16バイトはCBCモードに必要なIVであり、最後ですが、ここには実際のアプリケーションデータの約4〜5ブロックがあります。

4
Henno Brandsma