Tls
如何為 TLS AES_128_CBC_SHA 計算 HMAC
RFC 5246 定義通用分組密碼如下:
結構 { 不透明 IV
$$ SecurityParameters.record_iv_length $$;
block-ciphered struct { opaque content[TLSCompressed.length]; opaque MAC[SecurityParameters.mac_length]; uint8 padding[GenericBlockCipher.padding_length]; uint8 padding_length; }; } GenericBlockCipher;
MAC 的生成如第 6.2.3.1 節所述。
HMAC 是否涵蓋 IV、padding 和 padding_length 欄位?
HMAC 是否涵蓋 IV、padding 和 padding_length 欄位?
如 6.2.3.1 所述,對於流密碼和分組密碼,
The MAC is generated as: MAC(MAC_write_key, seq_num + TLSCompressed.type + TLSCompressed.version + TLSCompressed.length + TLSCompressed.fragment);
也就是說,MAC 是在明文上完成的(如果你不進行壓縮,那就是 TLSCompressed.fragment )。TLS 標頭已添加,但未進行其他修改。因此,它不包括 IV、padding 或 padding_length。