Dies ist eine alte Version des Dokuments!
IV. Asymmetrische Kryptographie
1. Nachteile des Schlüsseltauschs nach Diffie-Hellman
Die bisher betrachteten Verschlüsselungsverfahren waren alle symmetrisch: für die Verschlüsselung wird derselbe Schlüssel verwendet wie für die Entschlüsselung. Es ist deshalb entscheidend, dass dieser Schlüssel nur Alice und Bob bekannt ist und dass Eve nicht die Möglichkeit erhält, den Schlüssel herauszufinden.
Mit der Methode von Diffie-Hellman haben wir eine Methode kennengelernt, wie Alice und Bob einen Schlüssel erstellen können, ohne dass es Eve möglich ist, diesen Schlüssel herauszufinden.
Das Schlüsseltauschverfahren hatte gewisse Nachteile
- Alice und Bob müssen beide zum Zeitpunkt des Schlüsseltausches „online“ sein, da die Zahlen $g, p, \alpha$ und $\beta$ ausgetauscht werden mussten. Vor allem, wenn Alice in Amerika und Bob in Europa oder Asien ansässig waren, war dies aufgrund der Zeitverschiebung recht kompliziert.
- Man ist nie ganz sicher, ob die Meldung von Eve nicht abgefangen und verändert wurde, d.h. es stellt sich auch das Problem der Authentifizierung. Eve könnte bei der Reinform des Diffie-Hellman-Verfahrens eine Man-In-The-Middle-Attacke ausführen.
2. Idee von Whitefield Diffie zur asymmetrischen Verschlüsselung
Whitefield Diffie hatte eine Idee, wie man von der symmetrischen Verschlüsselung wegkommen könnte und formulierte die Idee der asymmetrischen Verschlüsselung, welche die moderne Kryptografie revolutionieren sollte. Auch hier gibt es Gedankenexperimente, welche die Grundlage für spätere mathematische Verschlüsselungen bildeten:
Angenommen Alice hat einen Koffer und ein Schloss mit einem passenden Schlüssel. Bob hat seinerseits einen Koffer, ein Schloss und einen passenden Schlüssel. Wie können sie sicher eine Meldung austauschen?
- Alice steckt das Geheimnis in den Koffer, schliesst diesen mit dem Schloss ab und schickt ihn an Bob. Eve sieht den Koffer zwar, kann ihn jedoch nicht öffnen. Auch Bob ist es nicht möglich, den Koffer zu öffnen. Er nimmt sein persönliches Schloss, verschliesst den Koffer damit noch einmal und schickt ihn zurück an Alice. Unterwegs sieht Eve den Koffer den zwei Schlössern, doch sie kann ihn natürlich nicht öffnen. Bei Alice angekommen, entnimmt diese ihr Schloss vom Koffer und schickt ihn erneut an Bob. Dieser kann nun sein Schloss entfernen und den Inhalt bestaunen.
- Bob schickt sein offenes Schloss an Alice. Diese steckt das Geheimnis in ihren Koffer und schliesst ihn mit dem Schloss von Bob ab. Nun kann weder sie noch Eve den Koffer öffnen. Doch nachdem Bob den Koffer erhalten hat, kann er das Schloss mit seinem Schlüssel öffnen.
Vor allem das zweite Gedankenexperiment zeigt das Prinzip der asymmetrischen Verschlüsselung auf: Für die Verschlüsselung wird nicht derselbe Schlüssel verwendet wie für die Entschlüsselung.
Asymmetrische Verschlüsseung
Bei der Asymmetrischen Verschlüsselung gibt es einen öffentlichen Schlüssel, mit welchem Nachrichten verschlüsselt werden können, und einen privaten Schlüssel, mit dem verschlüsselte Nachrichten wieder entschlüsselt werden können. Mithilfe des öffentlichen Schlüssels kann weder die Nachricht entschlüsselt, noch der private Schlüssel herausgefunden werden.
Das aktuell am häufigsten eingesetzte asymmetrische Verschlüsselungsverfahren ist das RSA-Verfahren, welches darauf beruht, dass man sehr einfach zwei sehr grosse Primzahlen multiplizieren kann, dass es aber fast unmöglich ist, das Produkt zweier sehr grossen Primzahlen wieder zu faktorisieren. Auch der Diffie-Hellman-Schlüsseltausch ist in gewisser Weise ein asymmetrisches Verfahren, da ja Alice und Bob einen öffentlichen Schlüssel austauschen (g,p) und jeder seinen eigenen privaten Schlüssel für sich behält (A,B). Hier geht es jedoch nicht um die Verschlüsselung, sondern um die Erzeugung eines Schlüssels.
Die Asymmetrische Kryptographie ist oft sehr rechenintensiv und daher nicht geeignet, um grosse Datenmengen zu verschlüsseln. Mit ihr kann man aber beispielsweise sicher ein Passwort für ein symmetrisches Verfahren übermitteln (statt Diffie-Hellman) oder sich auch gegenüber von Drittpersonen authentifizieren.
3. Digitale Signatur mithilfe von Asymmetrischer Kryptographie
Neben dem sicheren Verschlüsseln einer Nachricht interessiert man sich oft auch für die Integrität und die Authentizität einer Nachricht.
Integrität bedeutet: Die Nachricht wurde unterwegs nicht durch eine Drittperson (Eve) verändert.
Authentizität bedeutet: die Nachricht stammt tatsächlich vom vorgegebenen Absender. D.h. Eve kann nicht Nachrichten im Namen von Alice oder Bob verschicken.
Mithilfe der Public-Key-Kryptographie kann sowohl das Problem der Integrität, als auch dasjenige der Authentizität gelöst werden. Vom Prinzip her läuft dies folgendermassen:
Alice berechnet z.B. mit SHA256 den Hash-Wert ihrer Nachricht und verschlüsselt diesen mit ihrem privaten Schlüssel (Signatur) und fügt diesen und auch den unverschlüsselten Text zu ihrer Nachricht hinzu. Nun kann jeder mit dem öffentlichen Schlüssel von Alice den Hash entschlüsseln und dadurch prüfen, ob die Nachricht von Alice denselben Hashwert generiert. Dadurch ist sichergestellt, dass die Nachricht tatsächlich von Alice stammt (nur ihr öffentlicher Schlüssel entschlüsselt den Hashwert korrekt) und dass die Nachricht nicht verändert wurde (sonst würde der Hashwert nicht übereinstimmen).
Das Ganze funktioniert, da die Ver- bzw. Entschlüsselung reziprok ist, d.h. wenn man eine Nachricht mit dem öffentlichen Schlüssel verschlüsselt, kann man sie nur durch den privaten Schlüssel entschlüsseln und wenn eine Nachricht mit dem privaten Schlüssel verschlüsselt wird, kann man sie nur durch den öffentlichen Schlüssel entschlüsseln.
4. Zertifizierungsstellen (Certificate Authorities) und Zertifizierungsketten
Wie wird die Authentizität ganz konkret garantiert?
5. Konkrete Verschlüsselung im Internet (SSL/TLS)
Was passiert nun konkret, wenn man sich im Internet bewegt und sensible Daten ausgetauscht werden sollen? Egal ob es sich um Kreditkartennummer, Passwörter, persönliche Daten in einem Onlineshop, E-Banking etc. handelt, sollten die Daten unbedingt verschlüsselt werden, da sie durchaus von Dritten „angezapft“ und gelesen werden können.
An der Internetadresse ist leicht zu erkennen, ob der Datenaustausch verschlüsselt oder unverschlüsselt passiert, denn die Internetadresse wechselt von http (Hypertext Transfer Protocol) auf https (Hypertext Transfer Protocol Secure). Zudem ist links neben der Internetadresse ein Symbol mit einem geschlossenen Schloss zu sehen. Betrachten wir z.B. den Aufruf der Seite Instagram:
Der Client (mein Browser z.B. Google Chrome/Safari/Firefox) verbindet sich mit dem Server von Instagram und sendet ein sogenanntes „Client Hello“. Dies ist eine Startmeldung, die dem Server zu verstehen gibt, dass sich jemand mit ihm verschlüsselt „unterhalten will“. Nun müssen sich Chrome und der Instagram-Server darauf verständigen, welche Verschlüsselungsmethode und welcher Schlüssel verwendet werden. Theoretisch könnte der Server einfach seinen öffentlichen Schlüssel senden und der Client verschlüsselt die gesamten Daten mit diesem öffentlichen Schlüssel und schickt sie dem Server, doch bei grösseren Datenmengen ist dies ineffizient, da es aufwändig ist, viele Daten mit dem RSA-Verfahren auszutauschen.
Es wird daher von beiden Seiten ein symmetrisches Verfahren verwendet, welches zunächst abgemacht wird (früher DES, heute AES, 3DES, Idea und RC4). Welches Verfahren verwendet wird, hängt davon ab, welche Verschlüsselung der Client und der Server beherrschen. Bevor aber symmetrisch verschlüsselt werden kann, muss zunächst ein Schlüssel (Session-Key) ausgetauscht werden. Dieser Schlüsseltausch geschieht mit dem RSA- oder mit dem Diffie-Hellman Verfahren. Sobald beiden Parteien den Schlüssel haben wird der gesamte Nachrichtenverkehr mit diesem Schlüssel verschlüsselt und bei jeder Neuverbindung wird ein neuer Schlüssel gewählt.
Damit der Client sicher ist, dass er tatsächlich mit Instagram verbunden ist, schickt der Server noch ein Zertifikat, welches als Digitale Signatur dient. Dieses Zertifikat ist ausserdem bei einer Zertifizierungsstelle registriert, sodass man sicher ist, dass der entsprechende private Schlüssel auch tatsächlich Instagram gehört.
Aufgabe
- Was ist der grosse Unterschied zwischen einem symmetrischen und einem asymmetrischen Verschlüsselungssystem?
- Was versteht man unter Integrität und Authentizität?
- Wie kann man mit der Public-Key Kryptographie (z.B. RSA) eine digitale Unterschrift realisieren?
- Warum benötigt man eine unabhängige Zertifizierungsstelle?
- Klicke in Google Chrome bei einer gesicherten Verbindung rechts oben auf die drei Punkte und dann auf „Weitere Tools“→„Entwicklertools“. Nun kannst du unter „Security“ sehen, ob und wie deine Verbindung gesichert ist. ECDHE_RSA bedeutet z.B., dass (Elliptic-Curve)Diffie Hellman für den Schlüsseltausch und RSA für die Authentifizierung verwendet wird. AES_256 ist eine Spezifikation für die verwendete symmetrische Verschlüsselung.
Hier sieht man, welche Verschlüsselungsverfahren der Browser beherrscht. Die Abkürzungen enthalten sowohl die Methode, wie der Schlüssel ausgetauscht wird, als auch welche Symmetrische Verschlüsselung danach verwendet wird. Z.B. ECDHE = Elliptic Curve Diffie-Hellman (Schlüsseltausch) Komplette Informationen z.B hier: https://ciphersuite.info/cs/TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256/
