RFC 5246 TLS 1.2: errore di esempio di padding?

1

Da RFC 5246 , pagina 22:

Example: If the block length is 8 bytes, the content length
(TLSCompressed.length) is 61 bytes, and the MAC length is 20 bytes,
then the length before padding is 82 bytes (this does not include the
IV.  Thus, the padding length modulo 8 must be equal to 6 in order to
make the total length an even multiple of 8 bytes (the block length).
The padding length can be 6, 14, 22, and so on, through 254.  If the
padding length were the minimum necessary, 6, the padding would be 6
bytes, each containing the value 6.  Thus, the last 8 octets of the
GenericBlockCipher before block encryption would be xx 06 06 06 06 06
06 06, where xx is the last octet of the MAC.

Quindi, 61+20=82 , gli ultimi 8 ottetti contengono il sette% di06? Ho frainteso qualcosa? O un documento così importante contiene errori?

    
posta Zergatul 04.06.2017 - 01:36
fonte

1 risposta

3

Il documento è corretto, xx è l'ultimo ottetto del MAC, seguito da sei volte il 06 ottetto come riempimento, seguito dall'ottetto di lunghezza ( 06 ). L'ultimo ottetto di lunghezza non fa parte del padding.

Vedi la definizione di GenericBlockCipher in sezione 6.2.3.2 di RFC 5246 :

struct {
    opaque 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;
    
risposta data 04.06.2017 - 02:47
fonte

Leggi altre domande sui tag