Im heutigen Teil dieser Serie begeben wir uns auf eine Archäologische Expedition in die Frühzeit des Internets. Genauer gesagt reisen wir ins das Jahr 1994 nach Mountain View in Kalifornien. Den dort wurde in den Büroräumen der Netscape Corporation die allerste Version des heutigen TLS Standards, SSL Version 1.0, entwickelt.
SSL-Version 1.0: Ein Entwurf im Jahre 1994
Heute schauen wir uns an wie die erste Version des heutigen SSL und TLS Standards entwickelt und veröffentlicht wurde. In diesem Fall handelt es sich wirklich um eine Art archäologische Expedition, den leider sind über die Jahre nicht viele detaillierte Informationen über die Programmierung von SSL und dessen Sicherheit übergeblieben. Immerhin handelt es sich dabei um eine Zeit in der auch das private Internet noch in seinen Kinderschuhen steckt. So reden wir weltweit von 16 Millionen Internetnutzern. Das klingt im ersten Moment recht viel aber man sollte im Hinterkopf haben, das wir heute von 69 Millionen Nutzern allein in Deutschland und 3,26 Milliarden weltweit reden.
Aus der Idee des S-HTTP entwickelten also die späteren Firefox Entwickler bei Netscape nun ihr eigenes Projekt. Sie wollten ein Protocol entwickeln, dass auf einer Netzwerkschicht unterhalb der Anwendungsschicht eine Verschlüsselte Verbindung aufbaut. So entwickelten sie mit dem Secure Socket Layer einer „Netzwerkschicht“ überhalb der TCP/IP Protokolle aber immer noch unterhalb von HTTP. Die Entwicklung von SSL Version 1.0 wurde nun durch Netscape gegen Mitte 1994 fertiggestellt und intern weiter zur Kontrolle weitergegeben.
Kryptographie ist inhärent Komplex und so auch SSL Version 1.0
Leider fehlten vielen der Entwicklern bei Netscape zu diesem Zeitpunkt viele Jahre der Erfahrung bei der Entwicklung von Kryptografischen Protokollen und Verfahren und daher fanden sich ein paar Grundlegende Fehler in SSL Version 1.0 vor. Allgemein wollen wir hier noch einmal anmerken, dass die Entwicklung von Verschlüsselungsverfahren sowie deren Programmierung nur von einigen wenigen Profis wirklich verlässlich durchgeführt werden kann. Als kleine Daumenformal sollten Sie sich einfach folgendes merken:
Bei Produkten oder Dienstleistungen mit eigenen Verschlüsselungen geht immer etwas schief, daher sollten diese gemieden werden. Insgesamt wurden in SSL Version 1.0 zwei kritische Sicherheitsprobleme festgestellt welche es Netscape unmöglich machten SSL in dem damaligen Zustand zu veröffentlichen.
Geschichte der SSL Schwachstellen: Fehlende Sequenz-Nummer
Einer der beiden großen Konzeptionellen Fehler der ersten SSL Version waren fehlende Sequenz Nummern. Eine Nachricht welche über das Internet verschickt wurde besteht immer aus mehreren kleineren Paketen. Diese werden beim Empfänger wieder zu einer ganzen Nachricht zusammengesetzt. Nun fehlten der ersten Version von SSL die Sequenz-Nummern, was bedeutet das Pakete beliebig oft versendet und empfangen werden können ohne das der Empfänger dieses erkennen kann. So eine Art von Protokollschwachstelle nennt sich Replay Angriff.
Einen Replay Angriff kann man sich so vorstellen, ein Benutzer meldet sich mit seinem Passwort und Benutzernamen über eine mit SSL verschlüsselte Verbindung auf einer Webseite an. Ein Angreifer der diesen Benutzer belauscht, kann in diesem Fall das Passwort und den Benutzernamen nicht mitlesen da beides verschlüsselt ist. Das Problem bei einem Replay Angriff ist aber das Angreifer die Daten auch nicht mitlesen muss, er schneidet einfach alles mit was der normale Benutzer sendet und sendet genau das selbe noch einmal. Die Webseite kann aufgrund der fehlenden Sequenznummern nicht erkennen, das sich schon jemand mit genau den selben Anfragen und Daten angemeldet hat und loggt somit den Angreifer ein.
Geschichte der SSL Schwachstellen: Fehlender Schutz der Datenintegrität
Im ersten Teil unserer Serie haben wir bereits über die Schutzziele von TLS und SSL gesprochen. Eins davon war die Integrität. Dies bedeutet das sich er Empfänger sicher sein kann, das die erhaltenen Daten bei der Übertragung nicht verändert worden sind. Im Fall von SSL Version 1.0 gab es leider ein paar Probleme bei dem Einsatz der dafür nötigen Signaturverfahren im Zusammenspiel mit der Verschlüsselung RC4. Wodurch es einem Angreifer möglich war gezielt teile von Nachrichten zu manipulieren ohne das der Empfänger dieses feststellen konnte.
Ein Angreifer welcher sich also im selben W-Lan oder Netzwerk befand wie das Opfer konnte also gezielt Teile von Nachrichten austauschen, so hätte dieser beim Onlinebanking über SSL Version 1.0 gezielt die Kontonummer manipulieren können. Dadurch hätte das Opfer seine Überweisung an den Angreifer gesendet ohne dies zu merken.
Aufgrund der oben beschriebenen Schwachstellen kam es nie zu einer Veröffentlichung der ersten Version von Secure Socket Layer(SSL). Dennoch arbeitete Netscape weiter fieberhaft an ihrem Protocol zur Absicherung von HTTP Verbindungen und veröffentlichte noch im selben Jahr (Ende 1994) eine neue Version: SSL – Version 2.0.