Artikel weiterleiten
Artikel editieren
Druckansicht
FAQ #146

Was ist SSL und wann sollte ein Zertifikat genutzt werden?

Was ist SSL?

 

Verschlüsselung

SSL (Secure Sockets Layer) ist ein Verschlüsselungsprotokoll zur Datenübertragung. SSL wurde zwischenzeitlich durch das Nachfolgeprotokoll TLS (Transport Layer Security) abgelöst. Jedoch hat sich die Bezeichnung TLS im allgemeinen Sprachgebrauch bisher nicht durchgesetzt. Daher wird in diesem Artikel Abkürzung SSL für beide Bezeichnungen verwendet, sofern nicht explizit auf neuere Versionen Bezug genommen wird. Grundsätzlich bietet SSL die folgenden Leistungsmerkmale:

  • Vertraulichkeit der Daten durch symmetrische Verschlüsselung mit Session-Keys
  • Die Integrität der Daten (eigenes Prüfsummenverfahren)
  • Authentifizierungsmöglichkeit (meist des Servers)

Im ISO/OSI-Schichtenmodell der Datenkommunikation residiert SSL zwischen der Transportschicht (TCP oder UDP) und den Anwendungen (HTTP, POP3 oder SMTP). Die Anwendung reicht die Daten, anstatt sie direkt an die Transportschicht zu übergeben, also zunächst an den Secure Sockets Layer weiter. Die Implementierung als Layer ermöglicht den grundsätzlichen Einsatz von kryptographischen Verfahren, ohne eine Änderung an der Transport- oder Anwendungsschicht durchführen zu müssen. Erst nach Verschlüsselung werden die Daten an die Transportschicht, beziehungsweise nach der Entschlüsselung an die Anwendungsschicht übergeben. Damit bietet SSL eine abgesicherte Ende-zu-Ende-Kommunikation.

 

Grundsätzlich bietet SSL dabei Schlüssel-Austauschverfahren, eine symmetrische Verschlüsselung sowie die Berechnung einer kryptographischen Prüfsumme an. Für jede dieser Möglichkeiten lassen sich verschiedene Verfahren nutzen, etwa RSA oder Diffie-Hellmann für den Schlüsselaustausch, DES, Triple DES und AES für die Verschlüsselung sowie MD5 und SHA für die Prüfsumme.

 

Beim Aufbau einer SSL-Verbindung generiert der Client einen zufälligen Schlüssel (Session Key), der für die Dauer der Verbindung zur Verschlüsselung genutzt wird. Damit die SSL-Verbindung nicht abgehört werden kann, muss zunächst dieser Session Key auf einem sicheren Weg zum Server übertragen werden. Um dies zu gewährleisten, wird der Session Key seinerseits mit einem Public Key Verfahren, meist RSA, verschlüsselt. Dazu präsentiert der Server seinen öffentlichen RSA-Schlüssel; der Client verschlüsselt damit den Session Key und übermittelt das Ergebnis wieder dem Server. Erst danach wird die eigentliche Datenkommunikation aufgenommen.

 

Merkmale der sicheren Datenübertragung

  • Ver- und Entschlüsselung finden nur an den beiden Endpunkten statt
  • Es werden ausschließlich Session-Keys verwendet
  • Die Aushandlung der Session-Keys erfolgt ebenfalls verschlüsselt
  • Die verwendeten Kryptografieverfahren gelten als mächtig
  • Datenintegrität durch Prüfsummenverfahren

Authentifizierung

Wesentlich für die Sicherheit des beschriebenen Verfahrens ist die Authentizität des öffentlichen Schlüssels des Servers. Ein potenzieller Angreifer könnte in einem Täuschungsversuch einen eigenen öffentlichen RSA-Schlüssel anbieten und auch im weiteren die Rolle des "echten" Servers übernehmen. Die Kommunikation würde dann zwar verschlüsselt stattfinden, der Angreifer könnte jedoch mit Hilfe des ihm nun bekannten Session Key den Inhalt ermitteln.

 

Um derartige Täuschungsversuche zu erschweren, trägt der öffentliche Schlüssel des Servers zusätzliche Informationen, die seine Identität (Name des Servers, Organisation, die den Server betreibt, ...) beschreiben. Die Integrität dieser Informationen ist durch eine digitale Signatur geschützt; alles zusammen wird als X.509-Zertifikat bezeichnet. Dieses Zertifikat wird von einer Certificate Authority (CA), einer Zertifizierungsstelle, nach der Prüfung der Identität des Server-Betreibers ausgestellt.

 

Ein WWW-Browser kann den öffentlichen Schlüssel eines ihm unbekannten WWW-Servers als authentisch erkennen, wenn er die digitale Signatur der CA verifizieren kann. Dazu benötigt er den öffentlichen Schlüssel der CA. Die öffentlichen Schlüssel einiger kommerzieller CAs sind den Standard-Browsern bereits bekannt; Zertifikate von WWW-Servern, die von diesen CAs signiert sind, werden daher unmittelbar akzeptiert. Die Listen der von den Browsern akzeptierten und vorinstallierten CAs kann in den Einstellungen des Browsers eingesehen (und geändert) werden.

 

Bietet ein Server einen Public Key an, dessen Signatur nicht durch eine ihm bekannte CA verifiziert wird, so wird der Browser die über HTTPS angeforderte Seite erst nach einer Warnung oder nach manuellem Import des öffentlichen Schlüssels der unbekannten CA anzeigen.

 

Frühere Einschränkungen

In früheren Versionen von SSL war es nicht möglich pro Kombination aus IP-Adresse und Port mehr als ein Zertifikat zu verwenden. Dies führte beispielsweise dazu, dass bei einem Webserver zur Verwendung unterschiedlicher Zertifikate entsprechend mehrere IP-Adressen erforderlich waren. Dieser Umstand lag darin begründet, dass Nutzdaten von Protokollen höherer Schichten, wie beispielsweise die Übermittlung des Servernamens über das HTML-Protokoll erst nach Abschluss des SSL-Handshakes, bei dem das Zertifikat bereits ausgetauscht wird, übermittelt werden. Durch die TLS-Erweiterung Server Name Indikation (SNI) wurde dieses Problem behoben. SNI erlaubt die Übermittlung des Servernamens bereits während des Handshakes, vor der Übermittlung des Zertifikats. Dies geschieht dann jedoch unverschlüsselt.

 

Informationsquellen:

http://de.wikipedia.org/wiki/Transport_Layer_Security

 

 

SSL-Zertifikate müssen mittlerweile standardmäßig vergeben werden, da die Browser sonst das Anzeigen der Inhalte verweigern oder eine Warnung aussprechen.

Sichere Website mit SSL!

Sichern Sie hier Ihre Website durch die Verwendung von SSL.

SSL verwenden

×
War dieser Artikel hilfreich?    Ja / Nein