Entschlüsseln Sie den SSL-Datenverkehr mit dem Befehlszeilenprogramm openssl 7

484
David B

Generieren des Hauptgeheimnisses / Schlüssels Ich folgte den in meinem Shell-Skript beschriebenen Schritten. Ich bestätigte, dass ich die Daten korrekt weitergebe, indem ich diese Schritte mehrmals manuell eingebe (manuelle Eingabe von $ key), und letztendlich erreiche ich in diesem Fall das gleiche Ergebnis / die gleichen Daten

Schlüssel = entschlüsselter Vorhauptschlüssel aus dem vorherigen Schritt

03033ab0d673caefc4a9f6d35cf51d349815d67a09ac454f11dfb9741c96001a 66a3e82f688b82138403018384cf35f2 

mseed.key = "master secret" + client.random + server.random Die Datei ist eine binäre Datei, wenn ich den Hexdump xxd -p mseed.key verwende, damit Sie die Daten sehen können:

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 

nur so bin ich klar, dass diese randoms auch die unix-zeit enthalten (richtig?)

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 

Der nächste Schritt ist:

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 

Gefolgt von der Extraktion des Master-Geheimnisses

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

master_secret an dieser Stelle

$cat master_secret.hex ee45b637f95ddf3b3bf51661cdf4e07bdd63a67f2d2df776322992b3fd871fe4ba38debcd7179bf4 ef8b8bb814fe4544d 

Aus meinem Wireshark-Protokoll habe ich den Client während des Gesprächs zufällig extrahiert und als Binärdatei crnd.bin gespeichert

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

Anschließend fange ich die Serverzeit und zufällige Bytes ein und speichere sie als srnd.bin

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

Dave, zu diesem Zeitpunkt bin ich überrascht, was ich vermissen könnte. Ich glaube nicht, dass mir etwas wie eine Null in einer Variablen fehlt, oder etwas, das ich akribisch durch die Daten und Schritte gegangen bin, und sehe nicht, was mir fehlen könnte. Sehen Sie bei diesen Schritten etwas? Vielen Dank

0
Ihre "cat master_secret.hex" zeigt am Ende einen streunenden Charakter "d". das macht es 97 Hexits (48 und ein halbes Byte), und der korrekte Längenwert, den ich berechne, endet nach "4544". Aber die Befehle, die Sie anzeigen, sollten dies nicht verursacht haben. Ich frage mich, ob dies tatsächlich ein Artefakt der Anzeige einer Datei ohne Zeilenumbruch in Ihrer Umgebung ist (Shell? Terminal?). Übrigens, wenn Sie _use_ diesen Wert mit der Shell-Befehlsersetzung `$ (cat master)` (oder der älteren Entsprechung mit Backticks) verwenden, müssen Sie die Zeilenumbrüche nicht selbst entfernen. dass _automatically_ nachfolgende Zeilenumbrüche entfernt. dave_thompson_085 vor 6 Jahren 0
Shoot master_secret.hex hat das nicht leid. ee45b637f95ddf3b3bf51661cdf4e07bdd63a67f2d2df776322992b3fd871fe4ba38debcd7179bf4 ef8b8bb814fe4544d Ich habe versehentlich zu viel geschnitten, obwohl "d" tatsächlich Teil meiner Aufforderung ist David B vor 6 Jahren 0
Da das von Ihnen erwähnte "d" -Problem eigentlich nicht in meinen Daten enthalten ist, habe ich die letzten meiner Schritte und die nachfolgenden Daten, die ich verwende, [hier] (https://superuser.com/questions/1347869/decrypt-ssl-traffic) veröffentlicht -with-the-openssl-command-line-tool-8) (Ich warte immer noch auf meinen Systemadministrator, um die Verbindung mit openssl und den Protokollen einzurichten.) David B vor 6 Jahren 0

0 Antworten auf die Frage