Frage

Ich habe eine kleine Verwirrung über SSL-Handshake zwischen Browser und Server in einem typischen https Web-Szenario:

Was ich bisher verstanden, dass im Prozess des SSL-Handshake, Client (Browser in diesem Fall) verschlüsselt einen zufällig ausgewählten symmetrischen Schlüssel mit dem öffentlichen Schlüssel (Zertifikat vom Server empfängt). Dies wird an den Server zurückgesendet, Server entschlüsselt (symmetrische Schlüssel) mit dem privaten Schlüssel. Dieser symmetrische Schlüssel wird nun während des Restes der Sitzung zum Verschlüsseln / Entschlüsseln der Nachrichten an beiden Enden eingesetzt. Einer der wichtigsten Gründe, dies zu tun, ist eine schnellere Verschlüsselung mit symmetrischen Schlüsseln gegeben.

Fragen

1) Wie Browser auswählen und generiert diese „zufällig“ ausgewählt symmetrischen Schlüssel?

2) Do-Entwickler (oder / und Browser-Benutzer) hat die Kontrolle über diesen Mechanismus der symmetrischen Schlüssel zu erzeugen?

War es hilfreich?

Lösung

Hier ist eine sehr gute Beschreibung wie HTTPS Verbindungsaufbau funktioniert. Ich werde Zusammenfassung geben, wie Sitzungsschlüssel von beiden Seiten (Client und Server) erworben wird, ist dieser Prozess als „ein Schlüsselvereinbarungsprotokoll“ bekannt ist, hier, wie es funktioniert:

  1. Der Client erzeugt den 48-Byte „pre-master secret“ Zufallswert.
  2. Die Client-Pads diese Bytes mit Zufallsdaten um die Eingabe zu machen gleich 128 Bytes.
  3. Der Client verschlüsselt sie mit dem Server den öffentlichen Schlüssel und sendet sie an den Server.
  4. Dann Hauptschlüssel von beiden Seiten in folgenden Weise hergestellt:

    master_secret = PRF(
       pre_master_secret, 
       "master secret", 
       ClientHello.random + ServerHello.random
    )
    
  

Die PRF ist die „Pseudo-Zufalls-Funktion“, die auch in der definiert ist   und spec ist ziemlich clever. Es verbindet das Geheimnis, das ASCII-Label, und   die Samen Daten, die wir geben, indem die Schlüssel-Hash der Nachricht unter Verwendung von   Authentication Code (HMAC) Versionen von MD5 und SHA-1-Hash   Funktionen. Die Hälfte des Eingangs mit jeder Hashfunktion gesendet. Es ist   klug, weil es ist ziemlich beständig, selbst im Angesicht Angriff von   Schwächen bei der MD5 und SHA-1. Dieser Prozess kann Feedback über sich selbst und   Iterierte immer so viele Bytes zu erzeugen, wie wir brauchen.

     

Nach diesem Verfahren erhält man eine 48 Byte „master secret“.

Andere Tipps

Zitiert aus diesem großen Video-on-Netzwerk-Video, Minute 01.18.07

  

Nun wo Sie Zufälligkeit auf Ihrem Computer erhalten, weil Ihre   Computer ist ein determinis Gerät?

     

Nun sammelt es Entropien wie Maus Hubbewegungen, Ihren Schlüssel   Hubbewegungen und der Zeitpunkt der Festplatte, versucht, es zu sammeln   dass alle Zufälligkeit aus dem Universum in einen Zug, so dass es nur für zufällige Schlüssel erzeugen kann eine Verbindung [diese session] . Und wenn das Zufälligkeit gebrochen und seine oft passiert   in den letzten 30 Jahren, dann keines dieser Werke. Wenn der Gegner kann   Figur, was Ihre Zufälligkeit kann dann sie Ihre Schlüssel erraten. So gut Zufälligkeit verwenden.

Hinweis: Die Schlüssel werden erstellt pro Sitzung .

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