SSL/TLS - Überblick-Overview

SSL/TLS: Überblick und Historie einschließlich bemerkenswerter Bedrohungen

IT-Sicherheit

SSL/TLS: Überblick und Historie einschließlich bemerkenswerter Bedrohungen

Transport Layer Security (TLS), besser bekannt unter dem Namen SSL, ist ein Protokoll zur Verschlüsselung der Netzwerkkommunikation. Ob wir uns dessen bewusst sind oder nicht, wir verwenden SSL/TLS jedes Mal, wenn wir unseren Browser öffnen. Die Eigentümer und Betreiber von Websites sind verpflichtet, die Daten ihrer Nutzer zu schützen, indem sie für die gesamte Internetkommunikation eine starke Verschlüsselung integrieren.

Der Aufbau einer TLS-verschlüsselten Kommunikation schützt nicht nur private Daten vor Abhörern, sondern stellt auch fest, ob die Daten während der Übertragung gestört oder verändert wurden. Was allerdings noch wichtiger ist: Die Sicherheit, dass die andere Partei, mit der Sie kommunizieren auch tatsächlich diejenige ist, die sie vorgibt zu sein.

Zertifikate

Dieses Vertrauen wird durch den Austausch von Zertifikaten zwischen Ihrem Computer, dem Server und einer vertrauenswürdigen dritten Partei, der Zertifizierungsstelle (CA), hergestellt. Ihr Browser verfügt über eine vordefinierte Liste von CAs, die als vertrauenswürdige Quellen für die Überprüfung bekannt sind. Damit das Zertifikat eines Servers von Ihrem Computer akzeptiert wird, muss es von einer dieser vertrauenswürdigen Zertifizierungsstellen digital signiert werden. Dies geschieht unbemerkt im Hintergrund als Teil des TLS-Handshakes (siehe unten).

Für die meisten Menschen ist der einzige Hinweis darauf, dass sie TLS-Verschlüsselung verwenden, das Schloss-Symbol in der Adressleiste des Browsers. Ein weiterer Hinweis ist, dass das Protokoll in der Adressleiste https:// lautet, im Gegensatz zu http:// für ungesicherte Kommunikation, aber die meisten modernen Browser blenden dies standardmäßig aus, so dass es jetzt weniger offensichtlich ist.

Wenn Sie auf das Schloss klicken, erhalten Sie weitere Informationen über die Sicherheit und können das öffentliche Zertifikat des Webservers einsehe:

  • Basiszertifikate verifizieren eine einzelne Domäne. Erweiterungen des Zertifikats erweitern die Überprüfungsmöglichkeiten.
  • Subject Alternate Name (SAN)-Zertifikate bieten eine Überprüfung für eine Liste von mehreren Domains.
  • Wildcard-Zertifikate verifizieren alle Unterdomänen einer Domäne. *.site.co.uk wäre gültig für www.site.co.uk, blog.site.co.uk und weitere noch zu bestimmende.site.co.uk Unterdomänen.
  • Extended Validation (EV)-Zertifikate gehen über die Überprüfung der Domäne oder der Organisation hinaus. EV-Zertifikate verifizieren die juristische Person des Zertifikatsinhabers.

Schlüssel

Das Zertifikat des Webservers enthält den öffentlichen Schlüssel des Webservers. Dieser öffentliche Schlüssel bildet zusammen mit dem privaten Schlüssel des Webservers ein asymmetrisches Schlüsselpaar. Was mit dem öffentlichen Schlüssel gesichert wird, kann nur mit dem privaten Schlüssel entschlüsselt werden und umgekehrt. Dies ist entscheidend für den Aufbau von Vertrauen durch den Nachweis von Identitäten.

Die Zertifizierungsstellen verwenden ihren privaten Schlüssel, um dem Zertifikat eine digitale Signatur/Verschlüsselung hinzuzufügen, die jeder mit dem öffentlichen Schlüssel der Zertifizierungsstelle entsichern kann. Da nur die Zertifizierungsstelle Zugang zu diesem privaten Schlüssel hat, beweist dies, dass die Zertifizierungsstelle den Inhalt überprüft hat.

Die asymmetrische Verschlüsselung mit öffentlichem und privatem Schlüssel wird auch während des Handshakes zwischen Client und Server verwendet, um einen Sitzungsschlüssel zu erstellen und auszutauschen.

TLS-Handshake

Wenn ein Client die Kommunikation mit einem Server aufnimmt, sendet er eine CLIENT HELLO-Nachricht. Diese enthält die URL der gewünschten Website, die TLS-Versionen und eine Liste der verfügbaren Chiffren sowie einige Zufallsdaten, die für die Erzeugung des Sitzungsschlüssels verwendet werden sollen.

Der Server antwortet mit einer SERVER HELLO-Nachricht, die die gewählte TLS-Version und die vom Server gewählte Chiffre sowie einige Zufallsdaten enthält, die für die Erzeugung des Sitzungsschlüssels verwendet werden sollen. Wenn es keine Gemeinsamkeiten zwischen den Versionen oder Chiffren gibt, die Client und Server zur Verfügung stehen, endet die Kommunikation hier erfolglos.

Der Server antwortet dann mit dem SERVER-ZERTIFIKAT, das der Client bei der Zertifizierungsstelle verifizieren und den öffentlichen Schlüssel des Servers wie oben beschrieben bereitstellen muss.

Nach dem Austausch der temporären öffentlichen Schlüssel decodiert jede Seite den temporären öffentlichen Schlüssel der anderen Seite mit ihrem eigenen temporären privaten Schlüssel, wodurch ein symmetrischer Sitzungsschlüssel entsteht; jede Seite verwendet denselben Schlüssel für die Verschlüsselung/Entschlüsselung.

Um sicherzustellen, dass der Prozess nicht manipuliert wurde, sendet der Client eine HANDSHAKE FINISHED-Nachricht, die einen verschlüsselten Hash aller bisherigen Nachrichten enthält.
Der Server antwortet mit seinem eigenen HANDSHAKE FINISHED zusammen mit dem Verifikationshash

Der Client kann nun beginnen, verschlüsselte Daten zu senden…

Chiffren

Wie bereits erwähnt, handelt es sich bei TLS um ein Protokoll für den Austausch von verschlüsselten Mitteilungen. Die eigentliche Verschlüsselung wird durch Algorithmen erreicht, die als Chiffren bezeichnet werden. Jeder Webserver und jeder Browser hat seine eigene Liste der verfügbaren Chiffren, und jede TLS-Version hat auch eine Liste der starken und schwachen Chiffren.

Viele Browser und Webserver lassen standardmäßig nur starke Verschlüsselungen zu. Die kryptografische Stärke wird in Bits gemessen, wie bei der 128-Bit- oder 256-Bit-Verschlüsselung. Das bedeutet, dass es 2128 bzw. 2256 mögliche Schlüssel gibt. 2128 ist 3,40e38 oder 340 Undezillionen. Der schnellste Supercomputer, der 2019 gemeldet wurde, kann 1014 Schlüssel pro Sekunde berechnen. Um alle möglichen Schlüssel mit roher Gewalt zu überprüfen, würde man 1,07e17 Jahre brauchen.

Zum Vergleich: Das Alter des Universums beträgt 1,38e10 Jahre. Es ist auch erwähnenswert, dass die 256-Bit-Verschlüsselung nicht doppelt so stark ist wie die 128-Bit-Verschlüsselung, die 129-Bit-Verschlüsselung wäre. Die 256-Bit-Verschlüsselung ist 2128-mal so stark wie die 128-Bit-Verschlüsselung, und es würde 2128-mal länger dauern, jeden Schlüssel zu überprüfen. Realistischerweise kann man jedoch davon ausgehen, dass man in etwa der Hälfte dieser Zeit auf den richtigen Schlüssel stößt.

Bedrohungen für TLS

Angesichts des enormen Aufwands, der mit dem Brute-Forcing dieser Verschlüsselung verbunden ist, suchen Angreifer stattdessen nach anderen Schwachstellen in den beteiligten Algorithmen oder Protokollen. Es wurde eine Reihe bedeutender Schwachstellen entdeckt, die die Sicherheit der TLS-Kommunikation schwächen oder aufheben. Hier einige der bekanntesten Schwachstellen:

BEAST (Browser Exploit Against SSL TLS)
Ein Angriff gegen TLS v 1.0 und ältere SSL-Versionen. Mit BEAST kann ein „Man-in-the-Middle“ der TLS-Kommunikation versuchen, einen Chiffrierblock Byte für Byte zu knacken. Jeder Block ist 16 Byte lang, normalerweise würde dies 25616 (2128) dauern, aber BEAST erlaubt es dem Angreifer, ein Byte nach dem anderen zu manipulieren. Dadurch wird die Komplexität für jedes Byte auf 256 reduziert. BEAST ist technologisch komplex; es setzt voraus, dass der Angreifer bereits in der Lage ist, Man-in-the-Middle-Angriffe auszuführen, und funktioniert nur bei sehr vorhersehbarem Klartext, wie html-Code.

CRIME (Compression Ration Info-Leak Made Easy)
CRIME nutzt die Datenkompressionstechniken in SSL/TLS aus. Indem der Browser eines Benutzers gezwungen wird, zunehmend redundante Informationen zu senden, und die daraus resultierende Größe der Anfrage beobachtet wird, weiß der Angreifer, wann er ein Byte richtig erraten hat.

Heartbleed
Heartbleed ist ein Seitenkanalangriff auf die beliebte openssl-Bibliothek, die in den meisten Webservern verwendet wird. Betroffen waren die Versionen 1.0.1 bis 1.0.1f. Durch den Heartbleed-Angriff wurden Informationen, die zu diesem Zeitpunkt im Speicher des Servers gespeichert waren, entwendet. Dadurch konnten kryptografische Schlüssel und andere sensible Daten entwendet werden.