Frage

nähte es, dass, wenn das HTTPS-Protokoll verwenden, übertragen Pakete zwischen Browser und Web-Server sind alle verschlüsselt. Und die ganze Browser hat seine Kommunikationssitzung unterstützen mit Web-Server so Zertifikate genannt wird.

Also ich denke, es ist klar, dass wir die gleichen Zertifikate zu entschlüsseln Pakete verwenden können, dass bei der Anmeldung von HTTPS-Site von Wireshark erfaßt.

gegoogelt I, und finden einige Tutorials, sagte der private Schlüssel sollte geliefert werden, was ich unmöglich und unpraktische denken.

BTW. das folgende Shell-Befehl get-Zertifikat von Host gibt es Werkzeuge, um den öffentlichen Schlüssel zu erhalten?

echo QUIT | openssl s_client -connect <site>:443 | sed -ne '/BEGIN CERT/,/END CERT/p'

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Nein, man kann nicht entschlüsseln HTTPS / SSL-Sitzungen von einem Netzwerk zu erfassen, auch wenn Sie die Zertifikate zu tun haben. Das ist der springende Punkt bei der Public Key Cryptography , auf dem SSL basiert.

Was haben Sie in Ihrem Browser Schlüssel-Store ist die Zertifikate, die die Gültigkeit des öffentlichen Schlüssels des Servers überprüfen werden. Die genannten öffentlichen Schlüssel zugänglich sind, aber sie können nicht verwendet werden, um die Sitzungspakete zu entschlüsseln, da der Verschlüsselungsalgorithmus nicht symmetrisch ist.

Sie müßten die privat Schlüssel des Server , um eine SSL-Sitzung und in normalen Situationen descrypt es ziemlich schwierig ist, diejenigen zu erwerben.

Siehe auch Wikipedia-Artikel über TLS für weitere Informationen.

EDIT:

Ich werde einige weitere Informationen in Laie Begriffe hinzufügen, vor allem aus den beiden Links oben, abgezockt, um die Dinge ein wenig klarer.

Public Key Cryptography basiert auf asymmetrischen Verschlüsselungsalgorithmen. Diejenigen beinhalten zwei Tasten, anstatt ein, ein öffentlicher Schlüssel und ein privater Schlüssel. Diese beiden Tasten bestehen, die ein Schlüsselpaar . Unter der Annahme ein hinreichend starker Algorithmus, was auch immer mit dem öffentlichen Schlüssel verschlüsselt ist, kann nur mit der privaten und umgekehrt verschlüsselt werden. Der öffentliche Schlüssel ist allgemein zugänglich zu „jeder“, während die privaten Schlüssel sicher aufbewahrt und nur von seinem Besitzer verwendet. Wie funktioniert diese Hilfe?

  • Der Server verfügt über ein Schlüsselpaar, das aus einer Welt lesbar öffentlichen Schlüssels besteht und sicher gespeichert (und nicht zugänglich für jeden, aber der Server selbst) private Schlüssel.

  • Der Client verwendet den Server öffentliche -Taste einen ziemlich langen Zufallsschlüssel für einen symmetrischen Algorithmus zu Beginn jeder verschlüsselten Sitzung zu verschlüsseln. Dieser Schlüssel wird an den Server gesendet.

  • Da die symmetrischen Schlüssel wie diese verschlüsselt ist, kann es nur entschlüsselt werden, um den Server mit privaten drücken. Das bedeutet, dass es nicht von einem erfassten Netzstrom extrahiert werden, und da ist es für den Rest der Sitzung verwendet, kann weder eine der Informationen, die später übertragen wird.

  • Der Server verwendet seinen privaten Schlüssel die Sitzung symmetrischen Schlüssel abzurufen und alles ist gut.

Ist es das? Es ist nach wie vor ein Problem in dem obigen Schema! Wie erhält der Client den öffentlichen Schlüssel des Servers? Genauer gesagt, wie weiß es, dass es richtig mit dem Server spricht, und einige Gauner nicht, die sich in der Mitte einfügen verwaltet (siehe Man in the Middle-Angriff )?

Der Kunde kann möglicherweise nicht jeden einzelnen öffentlichen Schlüssel kennen - es gibt Millionen von ihnen. Es wird sie von den Servern abgerufen hat und dann irgendwie sicherstellen, dass sie gehören zu dem Server sie interessiert sind.

Dies ist, wo eine weitere Funktion von Public Key Cryptography kommt. Zuvor wir den öffentlichen Schlüssel zum Verschlüsseln von Daten verwendet, so dass nur das beabsichtigte Ziel es descrypt könnte. Jetzt wir das Gegenteil tun: Wir verwenden die privat Schlüssel zum Verschlüsseln von Daten, so dass sie nur mit dem öffentlichen Schlüssel entschlüsselt werden können. Im Wesentlichen wir Zeichen die Daten so, dass, wenn dechiffriert mit dem öffentlichen Schlüssel Menschen die Daten wissen, kamen aus dem Server. Wie funktioniert diese Hilfe?

Wenn der Browser installiert ist es eine relativ kleine Anzahl von öffentlichen Schlüsseln hat (allgemein als Zertifikate bezeichnet) vorinstalliert. Diejenigen, gehören in Zertifizierungsstellen (CA), die Einheiten sind (in der Regel Unternehmen wie Verisign, Regierungen oder sogar einige Institutionen), die vertrauenswürdig erachtet werden. Die Zertifizierungsstellen die entsprechenden privaten Schlüssel zu Zeichen andere öffentliche Schlüssel finden Sie im Internet verwenden und so weiter.

Also, wenn der Browser in Kontakt mit einem Server und seinen öffentlichen Schlüssel erhält, sollen diese Schlüssel sipiert mit dem privaten Schlüssel aus einem Zertifikat Paar. Das Zertifikat Paar ebenfalls durch eine andere und so weiter unterzeichnet würde sein, bis kommt der Browser auf einen öffentlichen Schlüssel auf, die mit dem privaten Schlüssel signiert wurden, dass entspricht einen der Root-Zertifikate, die mit ihm vorinstallierten . Sie können eine vorherige Antwort lesen wollen von mir für mehr auf dem Start Zertifikate, oder einfach nur den Wikipedia-Artikel lesen.

Da jeder öffentliche Schlüssel nacheinander unterzeichnet wurde, bis wir einen vertrauenswürdigen Schlüssel erreicht, kann der Client nun sicher sein, dass der Server am anderen Ende der Verbindung ist in der Tat z.B. MyBank.com und nicht, sagt sie, Laptop irgendeinen Verbrechers im nächsten Café-Tisch, die mit der Funkverbindung durcheinander.

Während gibt es schwache SSL-Algorithmen (daher die Folge von SSL-Protokollversionen), in diesen Tagen die Angriffe auf die Implementierungen im Allgemeinen ausgerichtet sind:

  • Mit speziell gestalteter oder ungültigen Zertifikaten den Browser (und seine schwache Umsetzung) zu denken, zu täuschen, dass ein öffentlicher Schlüssel von einer vertrauenswürdigen Instanz signiert ist, wenn es wirklich nicht.

  • Kompromittierung der Integrität der Client-Software (zum Beispiel ein Virus), um die symmetrischen Schlüssel zu erfassen, wenn sie erzeugt werden. In den meisten dieser Fälle ist es jedoch in der Regel einfacher, nur die interessanten Daten zu erfassen, wie sie in den Browser eingegeben werden, beispielsweise durch die Tastaturanschläge wie die Benutzer in ihrer Kreditkartennummer zu erfassen.

  • Kompromiss der Server selbst und stehlen den privaten Schlüssel. Während es als Targeting ahnungslose Kunden nicht so einfach ist, ist es passiert und es hat das Potenzial, eine deutlich größere Anzahl von verschlüsselten Sitzungen zu kompromittieren. Der aktuelle Public Key Infrastructure (PKI) einen ganzen Mechanismus für den Widerruf ist und Deaktivieren von beeinträchtigt oder ansonsten ungültige Schlüssel.

Der letzte Angriff kann besiegt werden, wenn der Kunde einen temporären öffentlichen Schlüssel des eigenen sendet statt einen symmetrischen Schlüssel und verwenden Sie einen asymmetrischen Algorithmus für die gesamte Sitzung. Das würde es unmöglich machen, für einen Angreifer letzte Sitzungen Kompromissen auf den Server des privaten Schlüssel zu stehlen. Diese Technik ist die Grundlage für die Gewährleistung Perfect Forward Secrecy , aber leider nicht alle Server implementieren es noch durch zur Kompatibilität oder Performance-Gründen.

Andere Tipps

thkala ist vor Ort auf. Sie können, vorausgesetzt, Sie MiTM haben, unter gewöhnlichen Umständen ein selbst signiertes Zertifikat an das Opfer übermitteln, für die Sie die privaten Schlüssel haben, dann leitet die Anfragen durch das Opfer an den Zielserver des Servers echtes Zertifikat. Dadurch wird die vicitm ein Zeugnis Warnung aber anzunehmen.

Eine weitere Möglichkeit, Ssl zu besiegen ist durch die SSL-Sitzung Strippen Lookup sslstrip.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top