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

373
David B

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

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

03033ab0d673caefc4a9f6d35cf51d349815d67a09ac454f11dfb9741c96001a 66a3e82f688b82138403018384cf35f2 

mseed.key = "главный секрет" + 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 

client.random xxd -p crnd.bin

5b689404b500456eef2f1a79ec782eb3eeaac3a8d7c02ae03c8426f363b1 8a33 

server.random xxd - srnd.bin

5b6894043bb1289e158b0278ef66dc53c9fa71e75e900739af2657cd4476 ec1e 

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

key=$ #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... 

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

0
Ваш `cat master_secret.hex` _shows_ блуждающий символ` d` в конце; это делает его 97 гекситами (48 с половиной байтов), и значение правильной длины, которое я вычисляю, заканчивается после `4544 '. Но команды, которые вы показываете, не должны были вызывать это; Мне было бы интересно, если это на самом деле артефакт отображения файла без новой строки в вашей среде (оболочка? Терминал?). Кстати, если вы собираетесь использовать это значение с помощью подстановки команд оболочки `$ (cat master)` (или более старого эквивалента с обратными галочками), вам не нужно удалять перевод строки самостоятельно; это автоматически убирает завершающие символы новой строки. dave_thompson_085 6 лет назад 0
Стрелять master_secret.hex не имеет, что жаль об этом. ee45b637f95ddf3b3bf51661cdf4e07bdd63a67f2d2df776322992b3fd871fe4ba38debcd7179bf4 ef8b8bb814fe4544d Я случайно урезал "d" на самом деле часть моей подсказки David B 6 лет назад 0
Учитывая, что проблема «d», которую вы отметили, на самом деле отсутствует в моих данных, я разместил последний из моих шагов и последующие данные, которые я использую [здесь] (https://superuser.com/questions/1347869/decrypt-ssl-traffic -with-the-openssl-command-line-tool-8) (я все еще жду своего системного администратора, чтобы помочь установить соединение, используя openssl и логи) David B 6 лет назад 0

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

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