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

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

Генерируя главный секрет/ключ, я следовал шагам, описанным в моем скрипте оболочки. Я проверил, что я передаю данные правильно, вручную введя эти шаги несколько раз (введя $key вручную), и в конечном итоге я пришел к тому же результату/данным в этом случае

ключ = расшифрованный предварительный главный ключ из предыдущего шага

03033ab0d673caefc4a9f6d35cf51d349815d67a09ac454f11dfb9741c96001a
66a3e82f688b82138403018384cf35f2

mseed.key = "master secret" + client.random + server.random Файл является двоичным, когда я использую hexdump xxd -p mseed.key, поэтому вы можете увидеть данные:

6d617374657220736563726574 5b689404b500456eef2f1a79ec782eb3ee
aac3a8d7c02ae03c8426f363b18a33 5b6894043bb1289e158b0278ef66dc
53c9fa71e75e900739af2657cd4476ec1e

Note: the spaces are not in the data I added those manually to make it clear

клиент.random xxd -p crnd.bin

5b689404b500456eef2f1a79ec782eb3eeaac3a8d7c02ae03c8426f363b1
8a33

сервер.random xxd - srnd.bin

5b6894043bb1289e158b0278ef66dc53c9fa71e75e900739af2657cd4476
ec1e

просто чтобы было ясно, эти случайные числа также включают префикс времени unix (верно?)

key=${1} #passed to shell script 
openssl dgst -sha256 -mac hmac -macopt hexkey:$key <mseed.key -binary >a1
openssl dgst -sha256 -mac hmac -macopt hexkey:$key <a1 -binary >a2
openssl dgst -sha256 -mac hmac -macopt hexkey:$key <a2 -binary >a3
openssl dgst -sha256 -mac hmac -macopt hexkey:$key <a3 -binary >a4

Следующий шаг:

cat a1 mseed.key | openssl dgst -sha256 -mac hmac -macopt hexkey:$key -binary >k1
cat a2 mseed.key | openssl dgst -sha256 -mac hmac -macopt hexkey:$key -binary >k2
cat a3 mseed.key | openssl dgst -sha256 -mac hmac -macopt hexkey:$key -binary >k3   
cat a4 mseed.key | openssl dgst -sha256 -mac hmac -macopt hexkey:$key -binary >k4

После этого извлекается главный секрет

cat k1 k2 | head -c48 | xxd -p -c48 > master_secret.hex
truncate -s-1 master_secret.hex

master_secret на данный момент

$cat master_secret.hex
ee45b637f95ddf3b3bf51661cdf4e07bdd63a67f2d2df776322992b3fd871fe4ba38debcd7179bf4
ef8b8bb814fe4544d

Из моего журнала Wireshark я извлек случайный клиентский код во время разговора и сохранил его как двоичный файл crnd.bin

Random: 5b689404b500456eef2f1a79ec782eb3eeaac3a8d7c02ae0...
    GMT Unix Time: Aug  6, 2018 14:31:32.000000000 Eastern Daylight Time
    Random Bytes: b500456eef2f1a79ec782eb3eeaac3a8d7c02ae03c8426f3...

Затем я фиксирую время сервера и случайные байты и сохраняю их как srnd.bin

Random: 5b6894043bb1289e158b0278ef66dc53c9fa71e75e900739...
    GMT Unix Time: Aug  6, 2018 14:31:32.000000000 Eastern Daylight Time
    Random Bytes: 3bb1289e158b0278ef66dc53c9fa71e75e900739af2657cd...

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

Связанный контент