Sicherheit im Web und Transportverschlüsselung

Transportverschlüsselung

So sicherst du dich ab

Nicht jedes Deiner Telefonate und jeder Brief, den Du schreibst, enthält Geheimnisse. Dennoch möchtest Du vermutlich nicht, dass jedermann mithört oder mitliest. Genauso solltest Du auf eine sichere Verschlüsselung beim Surfen im Internet achten. Denn es ist schlicht nicht nötig, seine Daten klartextlich zu senden.

Was versteht man unter einer Transportverschlüsselung im Web?

Im HTTP, dem Standardprotokoll des Internets, werden Informationen kodiert. Es kann und soll sie aber jeder Empfänger wieder dekodieren. Daher wird in der Kopfzeile, dem Header, mitgeteilt, welcher Zeichensatz verwendet wurde. Häufig ist dies UTF-8. Mit der Information ist es dem empfangenden Client oder Server möglich, die Inhalte korrekt darzustellen.
Gelangen die Daten an den falschen Empfänger, besteht keinerlei Schutz. Um dieses Problem zu vermeiden, wurde das HTTPS-Protokoll entwickelt. Die Erweiterung in der Abkürzung steht für Secure und kennzeichnet, dass es sich um eine sichere, verschlüsselte Verbindung handelt. Die Abkürzung HTTPS steht insgesyamt für “Hypertext Transfer Protocol Secure”.
Unter Verschlüsselung versteht man die Chiffrierung eines Inhaltes nach einem vorgegebenen Algorithmus und mit einem vorgegebenen Schlüssel. In der einfachsten Form könnte man die Zeichen um eine vereinbarte Anzahl an Stellen im Zeichensatz verschieben. Der Schlüssel wäre in diesem Fall die Zahl, um wie viele Buchstaben rotiert wird. Der “Algorithmus” wäre die Rechenoperation: Stelle plus oder minus Schlüsselwert.
Zu unterscheiden sind symmetrische und asymmetrische Verfahren. Bei den symmetrischen Verschlüsselungsalgorithmen wird der identische Schlüssel zum En- und Dekodieren verwendet. Asymmetrischen Algorithmen verwenden einen öffentlichen und einen privaten Schlüssel. Die Besonderheit hierbei ist, dass Inhalte, die mit einem der beiden Schlüssel chiffriert wurden nur mit dem jeweils anderen dechiffriert werden können.
Beide Verfahren haben Vor- und Nachteile. Bei symmetrischer Verschlüsselung muss der Schlüssel zwischen unbekannten Teilnehmern sicher getauscht werden können. Eine unverschlüsselte Übertragung scheidet natürlich aus. Dafür ist das Verfahren schnell und robust gegen Angriffe.
Asymmetrische Verschlüsselung ist tendenziell langsam(er). Zudem kann nur eine Seite seine Daten wirklich sicher verschlüsseln. Daten, die mit dem privaten Schlüssel enkodiert wurden, können von jedermann mit dem öffentlichen Schlüssel dekodiert werden.
Daher verwendet die Transportverschlüsselung HTTPS ein hybrides Verfahren. Der Schlüsseltausch wird asymmetrisch geschützt. Die weitere Kommunikation wird mit dem sicher getauschten Schlüssel symmetrisch verschlüsselt. Zur Anwendung kommt das Verschlüsselungsprotokoll SSL/TLS, bei dem unterschiedliche Chiffrieralgorithmen genutzt werden können.

Funktionsweise von SSL/TLS

HTTPS wird auch als HTTP over TLS bezeichnet. Dies liegt daran, dass SSL/TLS bereits auf der Transportschicht des OSI-Schichtenmodells ansetzt. Entsprechend steht TLS für die Bezeichnung Transport Layer Security. SSL ist die Abkürzung für Secure Sockets Layer. Die gemeinsame oder synonyme Verwendung der beiden Abkürzungen ist eigentlich nicht korrekt. TLS 1.0 war der Nachfolger von SSL 3.0.
Neben HTTP können andere Protokolle auf dieser sicheren Transportschicht aufsetzen. Dies wird beispielsweise bei der Verschlüsselung von E-Mails für die Protokolle IMAPS/SMTPS und POP3S genutzt.
Basis von TLS sind digitale Zertifikate der Spezifikation X.509. Diese enthalten unter anderem den Namen des Inhabers, also zumeist des Domaineigentümers, und des Ausstellers. Hierfür ist eine Certificate Authority (CA) zuständig. Das Zertifikat hat eine Gültigkeit und enthält den öffentlichen Schlüssel des Servers. Zudem verfügt es über eine Signatur. Anhand des öffentlichen Schlüssels ist diese verifizierbar. Der aufrufende Browser kann abfragen, ob das Zertifikat widerrufen wurde. Hierfür gibt es die Certificate Revocation List (CRL), in die CAs ungültige Zertifikate eintragen sollen.
Der öffentliche Schlüssel wird zudem beim Aufbau der sicheren Verbindung benötigt. Dies ist im Handshake-Protokoll wie folgt festgelegt:

  1. Der Browser sendet “Client-Hello-Nachricht” mit unter anderem der Sitzungs-ID und Prioritätenliste der zu verwendenden Cipher Suite.
  2. Der Server sendet eine “Server-Hello-Nachricht” mit dem Server-Zertifikat.
  3. Der Browser kontrolliert das Zertifikat und verschlüsselt ein Pre-Master-Secret mit dem öffentlichen Schlüssel.
  4. Der Server entschlüsselt es mit seinem privaten Schlüssel, beide Seiten berechnen mit dem vereinbarten Hash-Verfahren den Sitzungsschlüssel (Master-Secret).
  5. Der Sitzungsschlüssel wird für eine symmetrische Verschlüsselung der Kommunikation verwendet.
    In den gängigen Browsern sind Listen vertrauenswürdiger CAs implementiert. Wird das Zertifikat einer unbekannten CA verwendet, geben Browser eine Warnung aus oder verweigern den Verbindungsaufbau. Eine dynamische Überprüfung ist über das Online Certificate Status Protocol (OCSP) möglich. Hierbei handelt es sich um eine ständig aktualisierte Liste, die online vor dem Verbindungsaufbau abgefragt werden kann.
    Über die Datenpakete wird ein Hashwert gebildet, um eine Veränderung auszuschließen. Hierfür wird aus dem Sitzungsschlüssel der Keyed Hash Message Code (HMAC) gebildet.
    Seit 2018 ist die Version TLS 1.3 aktuell und sollte angewendet werden.

Anwendungsgebiete von Transportverschlüsselungen

Die Anwendungsgebiete von SSL und TLS sind dadruch, dass es sich um eine Verschlüsselung auf Transport-Layer-Ebene handelt, sehr weitreichend. Viele verschiedene Trafficarten und Protokolle können verschlüsselt übertrage werden. Besonders für den Datenschutz und die Übertragung von Login- oder personenbezogenen Daten ist eine Transportverschlüsselung unabdingbar. Das Zeitalter von Onlineshopping und -banking erfordert zusätzlich die verschlüsselte Übertragung von Zugangsdaten.
Auch für sog. Micropayments, wie sie bei Onlinepsielen, Onlinekäufen oder abstrakten Zahlungsmethoden stattfinden, z.B. bei Big Time Gaming Casinos oder Trustly, ist eine sichere Verschlüsselung unabdingbar, um Datenschutz und -Sicherheit zu gewährleisten

Ein paar weitere Infos zu SSL/TLS

Für die Verschlüsselung sind unterschiedliche Algorithmen verwendbar. SSL/TLS unterstützt beispielsweise für den Schlüsseltausch RSA, Diffie-Hellman und ECDH. Für die symmetrische Verschlüsselung können unter anderem AES, DES, Triple DES, RC4 und Camellia genutzt werden. Für HMAC stehen MD5 und SHA zur Auswahl.
SSL/TLS gilt als sicher. Über die Jahre wurden zwar immer wieder Angriffe bekannt. Auf diese wurde reagiert und bekannt gewordene Lücken in folgenden Versionen geschlossen.
Der sehr berühmt gewordene Heartbleed-Exploit betrifft keine Schwäche in SSL/TLS, sondern einen Implementierungsfehler in OpenSSL. Da dies als Bibliothek standardmäßig in vielen Betriebssystem integriert ist, hatte die Sicherheitslücke derart große Auswirkungen.
Der Fehler basierte darauf, dass zwischen den Kommunikationspartnern regelmäßig Kontrollbits versendet werden. Dies soll, ähnlich einem Herzschlag (“Heartbeat”), garantieren, dass die Verbindung noch existiert. Bei älteren Versionen von OpenSSL erfolgte keine Kontrolle der Menge für die übersandten Bits. Überschritt der Angreifer diese, bekam er im Überhang zufällig im Speicher befindliche Inhalte zurück.
Ein weiteres Hauptanwendungsgebiet von SSL/TLS sind Online-Bezahldienste. Neben dem klassischen Online-Banking, das vermehrt aufkommende Micropayment unterschiedlicher Anbieter. Dies sind Dienste, über die unkompliziert eine Bezahlung von Kleinbeträgen beispielsweise für Online-Einkäufe abgewickelt werden kann.

Fazit und Ausblick

SSL/TLS ist der Standard für verschlüsselte Verbindungen über das Internet. Bewusst oder unbewusst hast Du es heute vermutlich schon mehrfach verwendet. Daten über unverschlüsselte Verbindungen zu versenden ist in der heutigen Zeit keine gute Idee. Daher solltest Du bei der Nutzung jeglicher Protokolle auf das “S” für “Secure” in den Einstellungen achten und auf SSL/TLS setzen.
Die letzte Aktualisierung ist nicht lange her, der Release von TLS-Version 1.4 noch nicht in Sicht.
Ein mögliches Feld der Weiterentwicklung wäre eine Ausdehnung der Kommunikation auf mehr als zwei Teilnehmer. Bislang funktioniert TLS nur für eine Verbindung zwischen zwei Stationen.

Rückmeldungen