Я пытаюсь расшифровать файл pcap. Этот файл pcap содержит захват зашифрованного видео потока HLS. Pcap содержит пакеты TLSv1.2.Non-RSA TLS1.2 Расшифровка пакетов
Ниже приведены некоторые данные из файла PCAP
сервера Привет сообщение Cipher Suite:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384.
EC сервер Диффи-Хеллмана Params: Публичных (1)
Состояние сертификата сообщение:
Подпись Hash Algorithm Hash: SHA256
Подпись Hash Algorithm Подпись: ECDSA
Клиентский обменный код
EC Диффи-Хеллмана сервера Params: Публичных (2)
Я пытался следовать this Wireshark SSL decryption tutorial. Но похоже, что он работает только для шифрования RSA. Я искал какое-то время и нашел this discussion. Я цитирую отрывок из этой дискуссии:
Существует очень важный параметр для ума: дешифрование пассивно записанной сессии (с копией секретного ключа сервера) работает только тогда, когда обмена ключей был типа RSA или статический DH; с наборами «DHE» и «ECDHE» , вы не сможете расшифровать такой сеанс, даже с знаниями секретного ключа сервера. В этом случае вам нужно будет либо переговоров «главный секрет», или использовать серверную частный ключ активно перехватывать соединительном
сведению это достойно, что у меня есть секретный ключ клиента. В моем случае клиентом является видеопоток FFmpeg (FFplay). Я также посмотрел на TLS v1.2 RFC.
Мой вопрос:
Можно ли сделать расшифровку в этом случае? Если да, что мне нужно сделать для этого?
Выполняется ли дешифрование с использованием закрытого ключа клиента или с использованием pre_shared_master (т. Е. Diffie-Hellman)?
Необходим предварительный общий секрет. Что такое клиентский ключ? Это личный ключ сертификата? Он используется только для аутентификации. –
Спасибо за ваш ответ, действительно оцените! Если необходим общий секрет, то это ключи от Диффи-Хеллмана? В RFC это не совсем ясно (https://tools.ietf.org/html/rfc5246#section-8.1.2). Закрытый ключ клиента (ключ FFmpeg) находится в (https://github.com/FFmpeg/FFmpeg/blob/415f907ce8dcca87c9e7cfdc954b92df399d3d80/libavformat/tests/rtmpdh.c)..It является 256 длинной строкой static const char * private_key –