Ich versuche, eine pcap-Datei zu entschlüsseln. Diese pcap-Datei enthält eine Erfassung eines HLS-verschlüsselten Videostreams. Das pcap enthält TLSv1.2-Pakete.Nicht-RSA TLS1.2 Paketentschlüsselung
Im Folgenden sind einige Informationen aus der PCAP-Datei
Server Hallo Nachricht Cipher Suite:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384.
EC Diffie-Hellman-Server Params: pubkey (1)
Das Zertifikat Statusmeldung:
Signatur Hash Algorithm Hash: SHA256
Signatur Hash-Algorithmus Signatur: ECDSA
Client Key Exchange Nachricht
EC Diffie-Hellman-Server Params: pubkey (2)
Ich versuchte this Wireshark SSL decryption tutorial zu folgen. Aber es scheint, dass es nur für RSA-Verschlüsselungen funktioniert. Ich habe eine Weile geforscht und this discussion gefunden. Ich zitiere einen Auszug aus dieser Diskussion:
Es ist ein wichtiger Parameter in dem Sinne: Entschlüsselung einer passiv Sitzung aufgezeichnet (mit einer Kopie des Server privaten Schlüssels) funktioniert nur, wenn der Schlüsselaustausch war vom Typ RSA oder statische DH; mit "DHE" und "ECDHE" Cipher Suites, Sie werden nicht in der Lage sein, eine solche Sitzung zu entschlüsseln, auch mit Kenntnis des privaten Schlüssels des Servers. In diesem Fall müssen Sie entweder auf das Verhandlungs „master secret“, oder den Server privaten Schlüssel verwenden aktiv die Verbindung des
Es abzufangen bemerkenswert, dass ich den Client privaten Schlüssel verfügen. In meinem Fall ist der Client FFmpeg Video Streamer (FFplay). Ich habe mir auch die TLS v1.2 RFC angesehen.
Meine Frage:
Ist es möglich, eine Entschlüsselung in diesem Szenario zu tun? Wenn ja, was muss ich tun?
Wird die Entschlüsselung mit dem privaten Schlüssel des Clients oder mit dem pre_shared_master (d. H. Diffie-Hellman) durchgeführt?
Pre-Shared-Secret wäre erforderlich. Was ist ein Clientschlüssel? Ist es der private Schlüssel eines Zertifikats? Es wird nur zur Authentifizierung verwendet. –
Danke für Ihre Antwort wirklich zu schätzen! Wenn das Pre-Shared-Secret benötigt wird, dann sind es die öffentlichen Diffie-Hellman-Schlüssel? Es ist nicht wirklich klar im RFC (https://tools.ietf.org/html/rfc5246#section-8.1.2). Der private Schlüssel des Clients (FFmpeg-Schlüssel) befindet sich in (https://github.com/FFmpeg/FFmpeg/blob/415f907ce8dcca87c9e7cfdc954b92df399d3d80/libavformat/tests/rtmpdh.c)..Es ist eine 256 lange Zeichenfolge statisch const char * private_key –