З моїх попередніх публікацій, частина 1 , частина 2 , частина 3 і частина 4, я вважаю, що я обчислив / розшифрував все правильно і готовий спробувати розшифрувати зашифроване клієнтом повідомлення рукостискання. Я застряг на наступному кроці, як тільки у мене є всі ключі. Я читав і досліджував це пару днів і просто застряг.
Дотримуючись вказівок з моїх попередніх постів, які я придумав
20 bytes for a client MAC key: 64666eafe1cbd51f2e2b50799b40f6007c3dc56f
20 bytes for a server MAC key: e0aac1312d35b5e8b6bf9af6ecf07e1dff27c784
32 bytes client encryption key:
4bf20108190203c4210ff9df6c4eb6e907ddd1f49646ab4b243c80a6ae9b4808
32 bytes for a server encryption key:
ca94445e3d771d3e06b71ee0deb4c1879986c4c6a4b78bf1c3c1083a6ddce9ff
Моє зашифроване повідомлення про рукостискання клієнта:
Hex. FILE SIZE: 40
ADDRESS 000 001 002 003 004 005 006 007 ASCII
===============================================================================
00000000 09A 01B 0F3 06B 078 06C 03B 059 ~Z ^[ -s k x l ; Y
00000008 085 061 07C 076 0AF 0D9 085 0D6 ~E a | v -/ -Y ~E -V
00000010 08F 0FD 0AF 06D 09F 01A 025 0EF ~O -} -/ m ~_ ^Z % -o
00000018 040 015 097 002 0B5 0AD 0EF 040 @ ^U ~W ^B -5 -- -o @
00000020 02B 0DB 051 096 0CE 076 0A9 03F + -[ Q ~V -N v -) ?
00000028 0D7 030 049 03A 0CC 0F9 029 044 -W 0 I : -L -y ) D
00000030 07F 0A9 0C6 0F1 017 02D 06B 040 ^? -) -F -q ^W - k @
00000038 035 0F5 057 08E 0BF 0E9 05C 06D 5 -u W ~N -? -i \ m
00000040
Я вважаю, що мені потрібно скористатися варіантом openssl end -d -K, але спотикаючись тут між RFC та Google, щоб знайти рішення / приклад, який чітко пояснює це. Хтось знає, як / якщо я можу це зробити в командному рядку в openssl? Дякую
Оновлення. Я не впевнений, чому / як я не помітив у RFC 7.4.9 PRF(master_secret, finished_label, Hash(handshake_messages))
Я ввійшов у систему всіх повідомлень про рукостискання, може хтось пояснить, як я можу імітувати це за допомогою просто командного рядка openssl з даними, які я захопив / розшифрував до цього моменту.? Схоже, що хеш повідомлень рукостискання - це те, що мені потрібно виконати до цього розділу 5 RFC. Я припускаю, що я збираюся використовувати master_secret, який я створив, я не впевнений, яке насіння для цього має використовувати Opensl шлях Я раніше цим користувався. Я не бачу, що для цього хешу існує мітка, зв'язана, тому я просто використовую всі повідомлення про рукостискання до цього моменту, об'єднані разом? Багато кроків я втрачаю там, де перебуваю. Дякую
openssl dgst -sha256 -mac hmac -macopt hexkey:$key <seed -binary >a1