Расшифруйте трафик SSL с помощью инструмента командной строки openssl 9

329
David B

После того, как было указано, что клиент запрашивает расширенный главный секрет, я также отвечаю, что расшифровываю главный секрет, как если бы мы не использовали расширенный главный секрет, как определено. I RFC7627 Я изменил кодировку на своем сервере, чтобы ответить обратно, чтобы не использовать расширенный мастер-секрет и пробежал мою схему, описанную в моих предыдущих статьях часть 6, часть 7 и последняя часть 8

Выполнив тот же процесс, что и набросок с расширенным главным секретом, не отправляемый сервером, я расшифровал зашифрованное сообщение о рукопожатии. Я верю правильно, поскольку вижу (14) клиента завершенным и надлежащим заполнением

$cat encmsg.bin | openssl aes-256-cbc -d -K $key -iv $iv -nopad |xxd 0000000: 1400 000c a5de 1f35 2324 e871 be46 82a0 .......5#$.q.F.. 0000010: a1a0 d659 86b6 1c7f 043d d548 9a62 1e9d ...Y.....=.H.b.. 0000020: 23c6 f8d5 0b0b 0b0b 0b0b 0b0b 0b0b 0b0b #............... 

Для подтверждения концепции я хочу пропустить проверку подтвержденного завершенного для клиента и перейти непосредственно к ответу с моим сообщением о завершении сервера. Я верю, чтобы рассчитать это, я хочу кормить OpenSSL, как я был где

данные =

handshake_messages All of the data from all messages in this handshake (not including any HelloRequest messages) up to, but not including, this message. This is only data visible at the handshake layer and does not include record layer headers 

Но я немного запутался в этом, потому что RFC также говорит в том же разделе:

 The value handshake_messages includes all handshake messages starting at ClientHello up to, but not including, this Finished message. 

Я считаю, что это исключило бы первые 5 байтов 16 03 03 00 ?? Я хотел бы увидеть заголовок, и хотя приветственные сообщения указывают на протокол рукопожатия, они также исключены, поэтому я бы включил в свой журнал wireshark: сертификат, обмен ключами клиента и зашифрованное сообщение рукопожатия (но, поскольку я немного запутался, это может начаться с clienthello, а также включают serverhello в основном все до этого момента, за исключением записей заголовка)

затем вызов OpenSSL

seed = "server finished"+data (data=above)  key = master secret openssl dgst -sha256 -mac hmac -macopt hexkey:$key <seed -binary >a1 

Это тогда зашифровано и отправлено назад, поскольку мое сообщение шифрования рукопожатия моего сервера правильно?

0

0 ответов на вопрос

Похожие вопросы