Блок-шифрованный TLS1.0, захваченный из wireshark, не соответствует документу RFC2246 - PullRequest
0 голосов
/ 04 февраля 2020

Я недавно исследую TLS1.0. Я установил sh HTTPS-сервер с самозаверяющей сертификацией и использую openssl для подключения к серверу. Набор шифров - это RSA_AESCBC256_SHA. Затем перехватите пакеты TLS с помощью wireshark. Когда я фиксирую запись приложения, а затем дешифрую ее. Я получил результат, подобный следующему скриншоту.

decrypted hex dump

Я анализирую шестнадцатеричный дамп и делю их на 3, как показано на рисунке ниже.

enter image description here

Красная часть заполнена, зеленая часть заполнена, а синяя - MA C. Проблема в том, что порядок отличается от RFC2246 6.2.3.2, где MA C предшествует заполнению.

block-ciphered struct {
    opaque content[TLSCompressed.length];
    opaque MAC[CipherSpec.hash_size];
    uint8 padding[GenericBlockCipher.padding_length];
    uint8 padding_length;
} GenericBlockCipher
Я считаю, что OpenSSL верен, но не могу объяснить, что результат отличается от RF C. Вы можете помочь? Оригинальный снимок с Wireshark, как показано ниже. orignal wireshark capture
...