Entschlüsseln Sie SSL-Verkehr mit dem OpenSSL-Befehlszeilentool 7

Entschlüsseln Sie SSL-Verkehr mit dem OpenSSL-Befehlszeilentool 7

Beim Generieren des Master-Geheimnisses/-Schlüssels habe ich die in meinem Shell-Skript beschriebenen Schritte befolgt. Ich habe überprüft, ob ich die Daten korrekt an das Skript übergebe, indem ich diese Schritte mehrmals manuell eingegeben habe ($key manuell eingegeben) und bin in diesem Fall letztendlich zum gleichen Ergebnis/zu den gleichen Daten gekommen

Schlüssel = entschlüsselter Pre-Master-Schlüssel aus dem vorherigen Schritt

03033ab0d673caefc4a9f6d35cf51d349815d67a09ac454f11dfb9741c96001a
66a3e82f688b82138403018384cf35f2

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

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 damit ich das richtig verstehe, diese Zufallszahlen enthalten auch das Unix-Zeitpräfix (richtig?)

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

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

Anschließend wird das Master-Secret extrahiert

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-Log habe ich den Client-Zufallswert während der Konversation 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 erfasse ich die Serverzeit und zufällige Bytes 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, an diesem Punkt bin ich ratlos, was ich übersehen haben könnte. Ich glaube nicht, dass ich etwas wie eine Null in einer Variable oder so übersehen habe. Ich habe die Daten und Schritte sorgfältig durchgesehen und sehe nicht, was ich übersehen haben könnte. Fällt Ihnen bei diesen Schritten etwas auf? Danke

verwandte Informationen