Tls

如何為 TLS AES_128_CBC_SHA 計算 HMAC

  • October 22, 2017

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。

引用自:https://crypto.stackexchange.com/questions/52447