In dem Dokumentationssatz für dieses Produkt wird die Verwendung inklusiver Sprache angestrebt. Für die Zwecke dieses Dokumentationssatzes wird Sprache als „inklusiv“ verstanden, wenn sie keine Diskriminierung aufgrund von Alter, körperlicher und/oder geistiger Behinderung, Geschlechtszugehörigkeit und -identität, ethnischer Identität, sexueller Orientierung, sozioökonomischem Status und Intersektionalität impliziert. Dennoch können in der Dokumentation stilistische Abweichungen von diesem Bemühen auftreten, wenn Text verwendet wird, der in Benutzeroberflächen der Produktsoftware fest codiert ist, auf RFP-Dokumentation basiert oder von einem genannten Drittanbieterprodukt verwendet wird. Hier erfahren Sie mehr darüber, wie Cisco inklusive Sprache verwendet.
Cisco hat dieses Dokument maschinell übersetzen und von einem menschlichen Übersetzer editieren und korrigieren lassen, um unseren Benutzern auf der ganzen Welt Support-Inhalte in ihrer eigenen Sprache zu bieten. Bitte beachten Sie, dass selbst die beste maschinelle Übersetzung nicht so genau ist wie eine von einem professionellen Übersetzer angefertigte. Cisco Systems, Inc. übernimmt keine Haftung für die Richtigkeit dieser Übersetzungen und empfiehlt, immer das englische Originaldokument (siehe bereitgestellter Link) heranzuziehen.
Dieses Dokument beschreibt die grundlegenden Konzepte des Secure Sockets Layer (SSL)-Protokolls und enthält eine Beispieltransaktion und Paketerfassung.
Die grundlegende Dateneinheit in SSL ist ein Datensatz. Jeder Datensatz besteht aus einem Datensatz-Header mit 5 Byte, gefolgt von Daten.
Typ | Version | Länge | ||
T | VH | VL | LH | LL |
In SSL gibt es vier Datensatztypen:
Die Datensatzversion ist ein 16-Bit-Wert und in der Netzwerkreihenfolge formatiert.
Hinweis: Für SSL Version 3 (SSLv3) ist die Version 0x0300. Für Transport Layer Security Version 1 (TLSv1) ist die Version 0x0301. Die Cisco Adaptive Security Appliance (ASA) unterstützt nicht SSL Version 2 (SSLv2), die die Version 0x0002 oder eine Version von TLS größer als TLSv1 verwendet.
Die Datensatzlänge ist ein 16-Byte-Wert und wird in der Netzwerkreihenfolge formatiert.
Theoretisch bedeutet dies, dass ein einzelner Datensatz bis zu 65.535 (2^16-1) Byte lang sein kann. Der TLSv1 RFC2246 gibt an, dass die maximale Länge 16.383 (2^14-1) Byte beträgt. Microsoft-Produkte (Microsoft Internet Explorer und Internet Information Services) überschreiten diese Grenzen.
In diesem Abschnitt werden die vier Typen von SSL-Datensätzen beschrieben.
Handshake-Datensätze enthalten eine Reihe von Nachrichten, die zum Handshake verwendet werden. Dies sind die Meldungen und ihre Werte:
Im einfachen Fall werden Handshake-Datensätze nicht verschlüsselt. Ein Handshake-Datensatz, der eine fertige Nachricht enthält, wird jedoch immer verschlüsselt, wie es immer nach einem Change Cipher Spec (CCS)-Datensatz geschieht.
CCS-Datensätze werden verwendet, um auf eine Änderung der kryptografischen Verschlüsselung hinzuweisen. Unmittelbar nach dem CCS-Datensatz werden alle Daten mit der neuen Verschlüsselung verschlüsselt. CCS-Datensätze werden möglicherweise verschlüsselt oder nicht verschlüsselt. In einer einfachen Verbindung mit einem Handshake wird der CCS-Datensatz nicht verschlüsselt.
Mithilfe von Warndatensätzen wird dem Peer mitgeteilt, dass eine Bedingung aufgetreten ist. Einige Warnmeldungen sind Warnungen, während andere schwerwiegend sind und die Verbindung zum Ausfall führen. Warnmeldungen können verschlüsselt sein oder nicht, und sie können während eines Handshakes oder während der Datenübertragung auftreten. Es gibt zwei Arten von Warnmeldungen:
Diese Datensätze enthalten die tatsächlichen Anwendungsdaten. Diese Nachrichten werden von der Datensatzschicht übertragen und sind je nach aktuellem Verbindungsstatus fragmentiert, komprimiert und verschlüsselt.
In diesem Abschnitt wird eine Beispieltransaktion zwischen dem Client und dem Server beschrieben.
Wenn ein SSL-Client und -Server mit der Kommunikation beginnen, vereinbaren sie eine Protokollversion, wählen Verschlüsselungsalgorithmen aus, authentifizieren sich optional gegenseitig und verwenden Verschlüsselungstechniken für öffentliche Schlüssel, um gemeinsam genutzte Geheimnisse zu generieren. Diese Prozesse werden im Handshake-Protokoll ausgeführt. Zusammenfassend sendet der Client eine Client Hello-Nachricht an den Server, die mit einer Server Hello-Meldung reagieren muss, oder es tritt ein schwerwiegender Fehler auf, und die Verbindung schlägt fehl. Der Client Hello und der Server Hello dienen zur Einrichtung von Funktionen zur Erhöhung der Sicherheit zwischen dem Client und dem Server.
Client-Hello
Der Client Hello sendet diese Attribute an den Server:
Hinweis: Die Server-IP-Adresse in den Erfassungen lautet 10.0.0.2, die Client-IP-Adresse 10.0.0.1.
ServerHello
Der Server sendet diese Attribute an den Client zurück:
Für Anforderungen zur Wiederaufnahme einer SSL-Sitzung:
Server Hello Fertig
Die Meldung Server Hello Done (ServerHello-Fertig) wird vom Server gesendet, um das Ende des Serverbetriebs und der zugehörigen Nachrichten anzugeben. Nachdem er diese Nachricht gesendet hat, wartet der Server auf eine Client-Antwort. Nach Erhalt der Meldung Server Hello Done (ServerHello abgeschlossen) überprüft der Client, ob der Server ggf. ein gültiges Zertifikat bereitgestellt hat, und ob die Parameter Server Hello akzeptiert werden können.
Serverzertifikat, Server Key Exchange und Zertifikatsanforderung (optional)
Client-Zertifikat (optional)
Dies ist die erste Meldung, die der Client sendet, nachdem er eine "Server Hello Done"-Nachricht erhält. Diese Meldung wird nur gesendet, wenn der Server ein Zertifikat anfordert. Wenn kein geeignetes Zertifikat verfügbar ist, sendet der Client stattdessen eine no_certificate-Warnung. Diese Warnung ist nur eine Warnung. Wenn eine Client-Authentifizierung erforderlich ist, kann der Server jedoch mit einer schwerwiegenden Handshake-Fehlermeldung reagieren. Client-DH-Zertifikate müssen mit den vom Server angegebenen DH-Parametern übereinstimmen.
Client Key Exchange
Der Inhalt dieser Nachricht hängt vom Algorithmus des öffentlichen Schlüssels ab, der zwischen den Meldungen Client Hello und Server Hello ausgewählt wurde. Der Client verwendet entweder einen durch den Rivest-Shamir-Addleman (RSA)-Algorithmus verschlüsselten Vormaster-Schlüssel oder DH für die Schlüsselvereinbarung und Authentifizierung. Wenn RSA für die Serverauthentifizierung und den Schlüsselaustausch verwendet wird, wird ein 48-Byte-Pre_master_secret vom Client generiert, unter dem öffentlichen Serverschlüssel verschlüsselt und an den Server gesendet. Der Server verwendet den privaten Schlüssel, um den pre_master_secret zu entschlüsseln. Beide Parteien konvertieren dann den pre_master_secret in den master_secret.
Zertifikatüberprüfung (optional)
Wenn der Client ein Zertifikat mit Signierbarkeit sendet, wird eine digital signierte Certificate Verify-Nachricht gesendet, um das Zertifikat explizit zu überprüfen.
Cipher-Spec-Meldungen ändern
Die Nachricht "Cipher Spec ändern" wird vom Client gesendet, und der Client kopiert die ausstehende Cipher Spec (die neue) in die aktuelle Cipher Spec (die vorher verwendete Cipher Spec). Das Protokoll "Cipher Spec ändern" existiert, um Übergänge in Verschlüsselungsstrategien zu signalisieren. Das Protokoll besteht aus einer einzelnen Nachricht, die verschlüsselt und unter der aktuellen (nicht ausstehenden) Cipher-Spez komprimiert wird. Die Nachricht wird sowohl vom Client als auch vom Server gesendet, um den Empfänger darüber zu informieren, dass nachfolgende Datensätze unter den zuletzt ausgehandelten Cipher Spec und Schlüsseln geschützt sind. Beim Empfang dieser Nachricht kopiert der Empfänger den ausstehenden Lesezustand in den aktuellen Zustand. Der Client sendet nach dem Austausch von Handshake-Schlüsseln und (falls zutreffend) Zertifikatsüberprüfungsmeldungen eine Change Cipher Spec-Nachricht, und der Server sendet eine Nachricht, nachdem er die vom Client erhaltene Schlüsselaustauschmeldung erfolgreich verarbeitet hat. Wenn eine vorherige Sitzung wiederhergestellt wird, wird nach den Hello-Nachrichten die Meldung Change Cipher Spec (Spezifikation ändern) gesendet. In den Captures werden die Nachrichten Client Exchange, Change Cipher und Beendet als eine einzige Nachricht vom Client gesendet.
Abgeschlossene Nachrichten
Eine Fertig gestellte Nachricht wird immer sofort nach einer Change Cipher Spec Nachricht gesendet, um zu überprüfen, ob der Schlüsselaustausch- und Authentifizierungsprozess erfolgreich war. Die "Fertig gestellt"-Nachricht ist das erste geschützte Paket mit den zuletzt ausgehandelten Algorithmen, Schlüsseln und Geheimnissen. Es ist keine Bestätigung der fertig gestellten Nachricht erforderlich. Die Parteien können sofort nach dem Senden der fertigen Nachricht mit dem Versenden verschlüsselter Daten beginnen. Empfänger von fertig gestellten Nachrichten müssen überprüfen, ob der Inhalt korrekt ist.