SSL/TLS Wie du mit Hilfe des https Protokolls Daten sicher über das Internet überträgst.

Keylearnings:

  • Was ist SSL bzw. TLS?
  • Was hat es mit dem https Protokoll auf sich?
  • Was ist der Unterschied zwischen symmetrischer und asymmetrischer Verschlüsselung?
  • Was eine Man in the middle Attack?
  • Was ist ein SSL/TLS Handshake?

Anna und Maren. Beste Freundinnen!

Jeden morgen treffe ich die beiden im Bus auf dem Weg zur Arbeit. Sie unterhalten sich immer angeregt. Besonders Montags, wenn sie am Wochenende in der Disko waren.

Doch diesen Montag fingen Sie plötzlich an miteinander zu tuscheln. Ich habe die beiden kaum noch verstehen können. Nur einige Wortfetzen, Markus, „so ein Idiot“, „ach Mausi“, „vergiss es einfach“ und „lecker Hugo“.

Also wenn ihr mich fragt. Ich glaube da hat es am Wochenende ordentlich gekracht.

Aber natürlich! Das geht mich nun wirklich nichts an. Kein Wunder also, dass die beiden anfingen miteinander zu flüstern.

In der gleichen Situation wie Anna und Maren, sind auch zwei Rechner, die sich über das Internet miteinander unterhalten.

Genau wie ein Bus, ist auch das Internet ein öffentlicher Platz, in welchem es möglich ist Teilnehmer zu belauschen.

Und auch hier werden sensible Informationen ausgetauscht, die nicht für jedermann bestimmt sind. Man denke hier beispielsweise an Bankdaten oder an die Aktivitäten auf einer Singlebörse.

Daher benötigen wir auch im Internet die Möglichkeit in einen Vertrauensmodus wechseln zukönnen. Und genau dafür gibt es das https Protokoll, welches wir uns in diesem Artikel genauer ansehen wollen.

HTTPS das sichere http Protokoll

Sobald du im Internet eine sichere Verdbindung aufbaust, wird nicht mehr das normale http Protokoll verwendet sondern auf das sichere https Protokoll umgeschaltet. Und tatsächlich steht das an http angehängte „s“ für secure. Somit ist https die Abkürzung für Hypertext Transfer Protocol Secure.

In deinem Browser erkennst du dies durch das kleine Schlosssymbol in der Menüleiste.

Anders wie im Bus bei Anna und Maren haben wir im Internet natürlich keine Möglichkeit Daten leise zu übertragen.

Die einzige Möglichkeit Daten geheim zu halten ist die Verwendung von mathematischen Verschlüsselungsverfahren.  Das Gebiet, welches sich mit solchen Verfahren beschäftigt heißt Kryptografie.

Man in the Middle

Ein Lauschangriff wie bei Anna und Maren wird in Computernetzwerken über eine sogenannte Man in the middle Attacke durchgeführt.

Bei dieser Art von Angriff hängt sich eine dritte Person (der Mann in der Mitte) in den zwischen zwei Kommunikationspartnern bestehenden Kommunikationskanal ein und kann auf diese Weise mithören.

In unserem Anna und Maren Beispiel, bin also ich und jeder andere, der das Gespräch der beiden belauscht hat, der Man in the middle gewesen.

Leider ist das alles im Internet noch viel schlimmer. Das reine abhören der übermittelten Daten ist der harmlose Fall.

Bei einem Gespräch im Bus handelt es sich um eine Broadcast Versendung, d.h. jeder Zuhörer bekommt zeitgleich die gleichen Informationen.

Wohingegen in einem Computernetzwerk die Daten wie bei der Post von Punkt zu Punkt, genauer von einem Server zum anderen, übertragen werden. Daher sprechen wir auch von Datenpaketen.

Man in the middle

Unser Man in the middle übernimmt hier die Rolle eines weiteren Übertragungspunkt was zur Folge hat, dass er zu einem Zeitpunkt tatsächlich in den Besitz der Daten kommt und somit diese nicht nur lesen, sondern noch viel schlimmer sogar verändern also manipulieren kann.

Damit hat unser Man in the middle, nennen wir ihn Oskar, die Macht die besten Freundinnen Anna und Maren zu erbitternden Feinden werden zu lassen.

Daher müssen wir folgende Frage klären.

Was bedeutet eigentlich sicher?

Um von einer sicheren Kommunikation sprechen zu dürfen müssen wir drei Dinge sicherstellen.

  1. Privatsphäre: Unsere Daten sollen nur von dazu berechtigten Personen gelesen werden können. Das erreichen wir mit Hilfe der Kryptographie.
  2. Integrität: Wir müssen sicherstellen, dass die Daten so bei uns ankommen wie sie der Absender versendet hat. Also gegen Manipulation absichern. Das können wir mit Hilfe eines sogenannten Hashwerts erreichen, den man sich als eine Art Fingerabdruck vorstellen kann. Unterschiedliche Daten haben verschiedene Fingerabdrücke also verschiedene Hashwerte. Daher können wir mit Hilfe eines Hashwerts leicht überprüfen, ob Daten manipuliert wurden.
  3. Vertrautheit: Es muss sichergestellt werden, dass die Kommunikation unter vertrauten Partnern stattfindet. Anders als im Bus kann man im Internet seinem Kommunikationspartner nicht ins Gesicht sehen. Der Kommunikationspartner muss sich ausweisen. Nur so können wir sicher sein, dass wir auch mit demjenigen Sprechen, mit dem wir erwarten zu sprechen.  Dies können wir mit Hilfe von digitalen Zertifikaten sicherstellen.

Die gute Nachricht ist! All das leistet das https Protokoll. Und die noch bessere Nachricht ist! Wir werden uns im folgenden im Detail ansehen wie es das macht.

Wichtigste Zutat hierfür ist SSL (Socket Secure Layer) bzw. TLS (Transport Layer Security).

Hierbei verfolgen SSL und TLS das gleiche Ziel wobei TLS allerdings die modernere Variante ist.

Was ist SSL bzw. TLS?

Um TLS/SSL zu verstehen, wollen wir uns im folgenden ansehen was passiert, sobald du eine Internetseite mit https aufrufst.

Oder noch besser! Schauen wir es uns bei Franka an.

Franka möchte dieses Jahr schick in den Winterurlaub fahren und sich dafür im Internet einen flammneuen Lenkschlitten bestellen. Die Rechnung möchte Sie über eine Überweisung bezahlen, die sie über ihren Onlinebanking-Account durchführt.

SSL TLS HTTPS

Dazu muss sich Franka mit ihren Einlogdaten Benutzernamen und PIN, den sogenannten Credentials, in ihrem Onlinebanking Account anmelden.

Die Credentials sind die ersten Daten, welche wir sicher zum Server der Bank transpotieren müssen.

Während des Überweisungsvorgangs müssen aber noch eine ganze Reihe weiterer sensibler Daten, wie Kontonummer oder Zahlbetrag, zwischen Frankas Computer und dem Server der Bank ausgetauscht werden.

Wir müssen also unbedingt verhindern, dass Oskar, unser Man in the middle, die Daten in die Hand bekommt, unbemerkt manipuliert und so die Überweisung auf sein Konto umleitet.

Also wie bekommen wir die Daten auf sicherem Weg zur Bank und wie kann uns die Bank Daten auf sichere Weise zurücksenden?

So geht sichere Datenübertragung

Machen wir es zunächst auf die altmodische Art. Ganz ohne dieses Internet und ohne SSL bzw. TLS.

Franka, hat kein Auto und die Busbetriebe streiken. Sie hat also keine Möglichkeit die Daten persönlich vorbeizubringen. Daher schickt sie einen Booten, dem sie selbstverständlich keinen Nanomilimeter vertraut und überhaupt lauern auf dem Weg zwischen Frank und der Bank jede Menge Ganoven, die nur darauf warten Frankas Daten in die Hände zu bekommen.

Aber sie ist nicht auf den Kopf gefallen und erinnert sich an den Aktenkoffer mit Zahlenschloss, der verstaubt im Keller steht. Ein Geschenk von ihrem Freund Max zum 24 Geburtstag. Heute ist Franka 37 und Max ist weg. Aber gut das der Koffer nicht im Müll gelandet ist.

Hierin deponiert sie die Bankdokumente und verschickt den gesamten Koffer verschlossen an die Bank.

SSL TLS HTTPS

Nur an eine wichtige Kleinigkeit hat Franka nicht gedacht. Wie bekommt die Bank den Koffer wieder auf?

Kein Problem! Sie schickt den Zahlencode des Koffers in einem eigenen Umschlag gesondert zur Bank.

SSL TLS HTTPS

Klar ein gewisses Risiko, aber Sie baut darauf, dass die auf dem Weg lauernden Ganoven, den Zahlencode nicht den bei der Bank bereits angekommenen Aktenkoffer zuordnen können.

Sobald der Umschlag mit dem Zahlencode bei der Bank angekommen ist, haben beide miteinander kommunizierenden Parteien, also Franka und die Bank, den Zahlencode vorliegen und können den Aktenkoffer öffnen.

Die Bank kann jetzt den Aktenkoffer mit dem Zahlencode öffnen, Frankas Dokumente entnehmen und eine entsprechende Antwort in dem verschlossenen Aktenkoffer sicher zurücksenden.

SSL TLS HTTPS

Symmetrische und asymmetrische Verschlüsselung

Beide Parteien verwenden also den selben Schlüssel (Zahlencode) um an die geheime Information im verschlossenen Koffer zu gelangen. Daher sprechen wir in diesem Fall von einer symmetrischen Verschlüsselung.

Da es eine symmetrische Verschlüsselung gibt liegt der Verdacht nach einer asymmetrischen Verschlüsselung auf der Hand, und diese wollen wir uns im folgenden genauer ansehen.

Grundidee bei asymmetrischen Verschlüsselungsverfahren ist, dass es zwei Schlüssel gibt. Einen privaten, den man gut unter Verschluss halten sollte und einen öffentlichen, auf den jeder Zugreifen kann.

Mit dem öffentlichen Schlüssel (public key) können wir unseren Koffer lediglich abschließen wohingegen der private Schlüssel (private key)  nur zum öffnen des Koffers geeignet ist.

Da es mit einem Schlüssel, mit dem man nur abschließen kann, unmöglich ist Geheimnisse zu stehlen, können wir den public key ungeschützt in der Welt verteilen.

Und so funktioniert das ganze:

Damit Franka und ihre Bank miteinander kommunizieren können, benötigen wir insgesamt vier Schlüssel. Sowohl die Bank als auch Franka benötigen jeweils einen privaten und einen öffentlichen Schlüssel.

Im ersten Schritt legt Franka das an die Bank zu versendete Dokument in einen Aktenkoffer den sie mit Hilfe des public keys der Bank verschließt. Dieser Aktenkoffer kann nur mit dem private Key der Bank, den diese sicher in ihren Tresorräumen aufbewahren muss, geöffnet werden. Anschließend schickt Franka den Aktenkoffer an ihre Bank.

Sobald der Koffer angekommen ist, kann dieser mit Hilfe des private key der Bank geöffnet und die von Franka verschickten Dokumente entnommen werden.

Jetzt kann die Bank die Dokumente, welche sie Franka zu kommen lassen möchte, in den Aktenkoffer legen und mit Frankas öffentlichem Schlüssel verschließen. Das Öffnen des Koffers ist nach diesem Schritt nur mit dem (hoffentlich sicher deponierten) private key von Franka möglich.

Nachdem der Koffer bei Franka angekommen ist, kann diese ihn mit ihrem private key öffnen und die Bankunterlagen entnehmen.

Vorteil der asymmetrischen Verschlüsselung ist, dass wir keinen geheimen Schlüssel über einen unsicheren Kanal an unseren Kommunikationspartner senden müssen. Nachteil ist allerdings, dass asymmetrische deutlich teurer d.h. ineffizienter als symmetrische Verfahren sind. Daher verwendet das https Protokoll eine Kombination aus symmetrischer und asymmetrischer Verschlüsselung.

Natürlich können wir keine Aktenkoffer durchs Internet schicken. Die Rolle der Aktenkoffer übernehmen in einer https, SSL bzw. TLS Implementierung mathematische Funktionen.

Jetzt haben wir alles zusammen um TLS bzw. SSL zu erläutern.

Das beste aus beiden Welten

Okay, fassen wir nochmal zusammen. Der große Nachteil bei einer Kommunikation mittels eines symmetrischen Verschlüsselungsverfahren ist, dass wir den vertraulichen privaten Schlüssel einmal über einen unsicheren Weg an unseren Kommunikationspartner übermitteln müssen.

Hierbei besteht die Gefahr, dass unser private key dem Man in the middle Oskar in die Hände fällt.

Die Kommunikation über einen asynchron verschlüsselten Kanal ist hingegen teuer und ineffizient.

Daher verwendet TLS bzw. SSL eine Kombination aus beiden. Den asymmetrisch verschlüsselten Kanal verwenden wir lediglich um den Schlüssel für die symmetrische Verschlüsselung sicher an den Kommunikationspartner zu übertragen.

Der „Aktenkoffer“, der hierfür verwendet wird, ist der sogenannte Diffie Hellman Schlüsseltausch. Hierbei handelt es sich um ein mathematisches Verfahren, dessen Beschreibung den Rahmen dieses Artikels sprengen würde.

Wir beschränken uns daher darauf, den Vorgang exemplarisch mit Hilfe der Aktenkoffer Analogie zu beschreiben.

Franka besitzt einen symmetrischen Schlüssel (den Zahlencode) und einen Aktenkoffer, mit welchem die vertraulichen Dokumente zwischen ihr und der Bank sicher ausgetauscht werden sollen.

Der erste Schritt besteht darin den Zahlencode von Frankas Aktenkoffer sicher an die Bank zu übertragen. Hierfür stellt die Bank ein asymmetrisches Schlüsselpaar und einen Aktenkoffer bereit, der nur mit Hilfe des private keys geöffnet und nur mit Hilfe des public keys geschlossen werden kann.

Diesen Aktenkoffer sendet die Bank an Franka, welche den Zahlencode ihres eigenen Aktenkoffers in den Koffer der Bank legt, mit dem public key der Bank verschließt und anschließend wieder zurück an den Absender schickt.

SSL TLS HTTPS

Sobald der asymmetrisch verschlossene Aktenkoffer bei der Bank angekommen ist, kann  diese ihren privaten Schlüssel verwenden um den Koffer zu öffnen und den Zahlencode zu entnehmen.

Ab diesem Moment sind beide Kommunikationspartner im besitzt des Zahlencodes von Frankas Aktenkoffer, mit welchem beide Parteien den Koffer sowohl öffnen als auch verschließen können.

Somit können die Dokumente sicher in Frankas Aktenkoffer zwischen ihr und ihrer Bank hin und her versendet werden.

SSL TLS HTTPS

Der SSL TLS Handshake

Nun gut aber wie bereits erwähnt können wir im Internet keine Aktenkoffer versenden. Daher schauen wir uns jetzt an wie diese Prinzipien technisch in TLS bzw. SSL realisiert sind.

Den oben beschriebenen Austausch des Schlüssels zur Kommunikation über den symmetrisch verschlüsselten Kanal nennen wir TLS bzw. SSL  Handshake.

Wie jede angenehme Konversation beginnt auch die Client Server Kommunikation mit einem freundlichen Hello, das beispielsweise der Browser an den Server der Bank sendet.

client Hello

Auf dem Server der Bank ist der private und der public key installiert. Der public key ist in einem sogenannten SSL/TLS Zertifikat integriert. Neben dem public key enthält das Zertifikat auch noch weitere Informationen, wie z.B. die Identität des Servers.

Dieses Zertifikat wird vom Server zusammen mit einem ebenfalls freundlichem Hallo an Frankas Client, beispielsweise ein Internet-Browser oder eine Handy App,  zurückgeschickt. Anhand des Zertifikats kann der Client sicherstellen, dass der Server mit dem er spricht auch wirklich der Bankserver ist.

server hello

Während dieser Hallo Anfrage bzw. Antwort werden auch die zu verwendenden kryptographischen Verschlüsselungs-Algorithmen vereinbart.

Nachdem sich Client und Server begrüßt haben, generiert der Client ein sogenanntes Premaster Secret (PMS), welches er mit dem öffentlichen Schlüssels aus dem Server-Zertifikat verschlüsselt und anschließend an den Banking-Server sendet.

PMS

Das Premaster Secret kann auf dem Banken-Server mit Hilfe des dort vorhandenen privaten Schlüssel entschlüsselt werden.

Da Client und Server während der Begrüßung die zu verwendeten kryptographischen Methoden vereinbart haben, können beide Seiten aus dem Premaster Secret einen symmetrischen Schlüssel generieren, mit welchem ein symmetrisch verschlüsselter Kanal zwischen den beiden Kommunikationspartnern erzeugt wird.

SSL TLS HTTPS

Yep! Genau so funktioniert es! Ich hoffe du hattest Spaß!

Fazit: In diesem Artikel haben wir uns angesehen, wie wir mit Hilfe des https Protokolls sicher über das Internet kommunizieren können. TLS bzw. SSL schützt unsere Nachrichten sicher davor von unbefugte dritten gelesen und/oder manipuliert zu werden.

Ich freue mich auf deine Fragen im Kommentarbereich!

Hat dir der Artikel gefallen? Dann folge uns am besten gleich auf Facebook!

Hallo ich bin Kim und ich möchte ein großer Programmierer werden. Machst du mit?

Kommentare (2)

  • Antworte

    Hallo Kim,
    sehr guter Beitrag und anschaulich gemacht. Jetzt ergeben sich aber dennoch einige Fragen:
    Wie erkenne ich eigentlich ob der Datenaustausch „symetrisch“ oder „asymetrisch“ ist?
    Wo sind dann die Unterschiede im handling?
    Muss ich selber irgendwie ein Zertifikat installieren?
    Muss ich ein Passwort eingeben?
    Wenn ja, woher bekomme ich das Passwort?
    Danke für eine Rückmeldung.

    • Hallo Helmut,

      der größte Unterschied ist die Anzahl der Schlüssel. Bei symmetrischer Verschlüsselung hat sowohl Sender als auch Empfänger den gleichen Schlüssel mit vershlüsselt als auch entschlüsselt wird. Bei asymetrischen Verfahren gibt es einen öffentlichen Schlüssel mit die Nachricht lediglich verschlüsselt werden kann und einen provaten Schlüssel mit dem die Nachricht nur entschlüsselt werden kann.

      Das Zertifikat wir in der Regel auf dem Server installiert und muss durch einen Vertrauensdienst ausgestellt werden.

      Nein, du brauchts kein Passwort

      Viele Grüße
      Kim

Hinterlasse ein Kommentar