2017-12-29 28 views
2

I roh SSL/TLS-Daten, um entschlüsseln möchte und speichern Sie etwas in der Zukunft zu beweisen, ich denke, es wird besser sein, wenn ich es an einem Beispiel beschreiben:Verwendung und Dekodieren rohe SSL Daten als Beweis

1) Es gibt einen Remote-REST-Endpunkt, auf den über SSL zugegriffen werden kann und der nützliche Daten bereitstellt. Dieser Endpunkt wird von Dritten kontrolliert und ich habe keine Kontrolle darüber.

2) Ich gebe eine GET-Anforderung an diesen Endpunkt und speichern Sie den rohen SSL-Datenverkehr der Antwort in einer Datei und dann dem entschlüsselten ssl Verkehr in einer anderen Datei

3) Zusätzlich zu speichern i das SSL-Zertifikat dieses Endpunkts in einer separaten Datei (ich denke, diese Operation würde nur einmal durchgeführt werden)

Wenn ich richtig verstehe, wenn ich alle Daten aus den Schritten oben und in der Zukunft habe, wenn eine andere dritte Partei mich nach einem Beweis dafür fragt Es gab bestimmte Daten auf dem Remote-Server zu irgendeinem Zeitpunkt in der Vergangenheit konnte ich:

1) Pres Entpacken Sie sie mit dem Zertifikat, das ich gespeichert habe (Schritt 3). Da dieses Zertifikat von einer bekannten Stelle unterzeichnet wird, ist es fast keine Chance, dass ich es

schmieden könnte

2) präsentiert sie mit den RAW-SSL-Daten zusammen mit einer Art und Weise zu dekodieren das Zertifikat über

3 verwendet wird) In den decodierten REST-Response-Headern sollte auch die Remote-Server-Zeit vorhanden sein.

Deshalb, wenn ich mich nicht irre, könnte ich mit fast keinem Zweifel beweisen, dass es irgendwann in der Vergangenheit bestimmte Daten auf dem Server der Gegenstelle gab, auch wenn der entfernte Server selbst nicht mehr existiert betriebsbereit.

Daher kann ich rohe SSL-Daten verwenden, um zu beweisen, dass etwas auf dem entfernten Server in der Vergangenheit existierte. Und es besteht kaum eine Chance, dass jemand diesen Anspruch in Frage stellt, weil das Schmieden der Antwortdaten oder Header dazu führen würde, dass ich die SSL-Verschlüsselung durchbrechen könnte.

Gibt es eine Möglichkeit, solche Szenarien zu automatisieren? Ich meine, gibt es eine Möglichkeit, rohe SSL-Daten in einer Form aufzuzeichnen, die später leicht entschlüsselt werden könnte?

Ich habe versucht mit Firefox/Chrome Browser zusammen mit den sslkeylog Dateien und schnüffeln den Verkehr mit Wireshark - es funktioniert tatsächlich, aber gibt es eine Möglichkeit, es mit einer Art von REST-Bibliothek seit der Verwendung von Firefox und die Aufnahme von SSL-Schlüssel zu automatisieren Die Zeit kann mühsam sein - es kann notwendig sein, tausende dieser Anfragen pro Stunde zu speichern, und es wäre ein Vollzeitjob, außerdem bin ich nicht sicher, ob es einen Weg gibt, zu beweisen, dass diese in ssskeylog-Dateien gespeicherten Schlüssel tatsächlich übereinstimmen das Zertifikat des Remote-Servers ...

+2

Die Technologie, nach der Sie suchen, wird als digitale Signatur bezeichnet. Ihr gegenwärtiger Ansatz ist weder geeignet noch machbar. – EJP

Antwort

1

Nein, Sie können nicht beweisen, dass der Server die Daten gesendet hat. Beispielsweise können Sie mit TLS_RSA_WITH_AES_256_CBC_SHA256 als Cipher-Suite alle Daten von beiden Seiten in einer gesamten TLS-Sitzung fälschen, ohne den Server zu kontaktieren. Und die Serverseite kann auch eine solche Fälschung erzeugen. Wie von EJP angemerkt, ist das einzige, was Sie nicht fälschen können, Daten, die signiert sind. Bei RSA-Chiffren sind die Zertifikate nur signiert, aber sie ändern sich nicht und sind nicht kryptografisch an eine TLS-Sitzung gebunden.

Andere Verschlüsselungen können einige signierte Handshake-Daten enthalten, aber TLS wurde nicht entwickelt, um eine Nichtabstreitbarkeit zu bieten, so dass ich bezweifle, dass dies durch Zufall geschieht.

+0

Sie haben Recht und ich habe meine Antwort gelöscht. Alles, was zum Erstellen gefälschter Anwendungsdaten benötigt wird, ist das Master-Geheimnis, das dem Client bekannt ist. Daher kann der Client beliebige Daten fälschen und behaupten, dass der Server diese gesendet hat. –

+0

Danke Stefan, ich wusste, du würdest entweder deine Antwort löschen oder mir sagen, warum ich falsch lag. In diesem Fall hätte ich meine Antwort gelöscht. –

+0

Danke für die Antwort. Also ich nehme an, es gibt keine Möglichkeit zu beweisen, dass die Daten von einem bestimmten Server stammen, wenn es nicht die Daten signiert und nur TLS verwendet? – Pma