2017-02-27

Die deutsche Verschlüsselungsmaschine Enigma aus dem zweiten Weltkrieg. (Symbolbild) CC BY-SA 2.0 flickr/Tim Gage

Edward W. Felten, Direktor des Center for Information Technology Policy an der Princeton University, USA, hat kürzlich allgemein verständlich erklärt, wie Verschlüsselung grundsätzlich funktioniert. Die Übersetzung von Lennart basiert auf dem stetig aktualisierten „Nuts and Bolts of Encryption: A Primer for Policymakers“ (PDF). Der Text steht unter der CC BY 4.0 Lizenz.

Diese Handreichung bietet eine einfache Einführung in Verschlüsselung, wie sie in modernen Systemen implementiert wird, in einer Detailtiefe, die für politische Diskussionen geeignet ist. Es wird kein Vorwissen zu Verschlüsselung oder Datensicherheit vorausgesetzt.

Verschlüsselung wird in zwei Hauptszenarien verwendet. Verschlüsselte Speicherung ermöglicht, dass Daten auf einem Gerät gespeichert werden – die Verschlüsselung schützt dabei die Daten, sollte ein böswilliger Akteur Zugang zum Gerät erhalten. Verschlüsselte Kommunikation erlaubt es, dass Daten von einem Akteur zu einem anderen übertragen werden können, oft über ein Netzwerk – hier schützt die Verschlüsselung die Daten, sollte ein böswilliger Akteur während der Übertragung Zugang zu ihnen erhalten. Verschlüsselung wird in diesen beiden Szenarien etwas unterschiedlich genutzt, sodass es sinnvoll ist, sie separat zu präsentieren. Wir werden zunächst verschlüsselte Speicher besprechen, weil sie einfacher sind.

Wir betonen, dass die hier beschriebenen Ansätze keine detaillierten Beschreibungen eines bestimmten vorhandenen Systems sind, sondern allgemeine Beschreibungen, wie moderne Systeme typischerweise funktionieren. Jeweilige Produkte und Standards setzen die Details unterschiedlich um, ähneln einander aber im Groben in der hier behandelten Detailtiefe.

Verschlüsselte Speicherung

Angenommen, die Benutzerin Alice möchte Daten auf einem Gerät speichern. Das könnte ein Smartphone in ihrem Besitz sein oder ein von einem Dienstanbieter betriebener Speicherserver. Alice erzeugt einen geheimen Schlüssel, den nur sie kennt, und sie benutzt den geheimen Schlüssel, um die Daten zu verschlüsseln. Die Verschlüsselung schützt die Vertraulichkeit der Daten, sodass ein böswilliger Akteur, der Zugriff auf das Gerät erhält, aber den geheimen Schlüssel nicht kennt, den Inhalt von Alices Daten nicht auslesen kann. Die Verschlüsselung schützt auch die Integrität der Daten, sodass ein böswilliger Akteur, der Zugriff zum Gerät erlangt, aber den geheimen Schlüssel nicht kennt, die Daten nicht verfälschen kann, ohne dass Alice feststellt, dass diese manipuliert wurden.

Die Verschlüsselung auf einem Gerät wie einem Smartphone funktioniert typischerweise wie unten dargestellt. Ein Geräteschlüssel, einzigartig für Alices spezifisches Telefon, ist in das Telefon eingebaut, wenn das Telefon hergestellt wird. Darüber hinaus gibt Alice einen geheimen Passcode ein, wenn sie das Telefon entsperrt. Der Geräteschlüssel und der Passcode werden durch kryptografische Mittel kombiniert, um einen Speicherschlüssel zu erstellen, der zur Verschlüsselung von Daten verwendet wird. Von diesem Zeitpunkt an, wann immer eine App Daten speichern möchte, werden die Daten mit dem Speicherschlüssel verschlüsselt, bevor die Daten im Speicher abgelegt werden. Immer, wenn eine App Daten aus dem Speicher abrufen möchte, werden die Daten entschlüsselt, bevor sie an die App zurückgegeben werden. Wenn das System Daten entschlüsselt, prüft es sie zudem auf Manipulationen.

Weil alle Daten verschlüsselt sind, bevor sie in den Speicher gelegt werden, kann ein böswilliger Akteur, der das Gerät stiehlt, die Daten von Alice nicht wiederherstellen, ohne Alices geheimen Schlüssel zu kennen. Noch kann ein solcher Akteur die Daten von Alice ohne Erkennung manipulieren.

Die Sicherheit der Daten auf dem Gerät hängt letztlich von zwei Schlüsseln ab. Die Verwendung des Geräteschlüssels sorgt dafür, dass Daten nur auf Alices spezifischem Telefon entschlüsselt werden können. Ebenso ist das Telefon in der Regel physisch „gehärtet“, sodass es für einen böswilligen Akteur sehr schwierig ist, den Geräteschlüssel zu extrahieren. Die Verwendung von Alices Passcode stellt sicher, dass Alice ausdrücklich handeln muss – indem sie ihren Passcode eingibt – um die Entschlüsselung oder die autorisierte Änderung der Daten zu ermöglichen.

Wenn Alice das Telefon sperrt oder wenn das Telefon Strom verliert, werden Alices Passcode und der Speicherschlüssel vom Telefon gelöscht. Zu diesem Zeitpunkt enthält das Telefon nicht mehr die Schlüsselinformationen, die es ermöglichen würden, gespeicherte Informationen wiederherzustellen oder nicht nachweisbar zu manipulieren. Entschlüsselung und Manipulation sind nicht möglich, da der Speicherschlüssel nicht vorhanden ist. Der Speicherschlüssel kann nicht neu erstellt werden, da Alices Passcode nicht vorhanden ist. Nur die Eingabe von Alices Passcode kann die Entschlüsselung und die autorisierte Änderung der Daten wieder gestatten.

Jedoch sind diese Schutzmaßnahmen umsonst, wenn ein bösartiger Akteur den Passcode von Alice erraten kann. In der Praxis wählen Benutzer oft Passcodes, die leicht von einem Computer erraten werden können, der eine große Anzahl von Versuchen sehr schnell ausprobieren kann. Ein sicheres System muss zusätzlich eine Verteidigung gegen die versuchte und wiederholte Eingabe von Passwörtern haben. In der Regel bedeutet dies für das System, dass es eine Verzögerung nach einem fehlgeschlagenen Versuch, den Passcode einzugeben, auferlegt und dass das System komplett stoppt, Passcode-Eingabeversuche nach einer bestimmten Anzahl von Fehlversuchen zu akzeptieren. Dies wird Passcode-Erraten unmöglich machen, es sei denn, Alice wählt einen außergewöhnlich schwachen Passcode wie 0000 oder ihren Geburtstag.

Verschlüsselte Kommunikation

Verschlüsselte Kommunikation funktioniert anders.

Angenommen, zwei Benutzer, Alice und Bob, wollen einander eine Reihe von Nachrichten senden. Sie wollen Verschlüsselung nutzen, um die Vertraulichkeit der Nachrichten zu schützen (sodass niemand sonst den Inhalt der Nachrichten kennen kann) sowie die Integrität der Nachrichten (sodass niemand sonst die Nachrichten manipulieren kann, ohne ertappt zu werden); und sie wollen Verschlüsselung verwenden, um sich gegenseitig zu authentifizieren (sodass beide wissen, dass sie nicht mit einem Betrüger kommunizieren).

Für die verschlüsselte Kommunikation erzeugt jeder Akteur einen Langzeit-Identitätsschlüssel, den er geheim hält. Ein Akteur kann seinen Langzeit-Identitätsschlüssel verwenden, um seine Identität gegenüber anderen Akteuren zu beweisen.

Wie unten dargestellt, arbeitet die verschlüsselte Kommunikation in zwei Phasen. In der ersten Phase, dem Handshake, tauschen die beiden Akteure eine Reihe von speziell konstruierten Nachrichten aus. Wenn alles gut geht, hat der erste Handshake zwei Ergebnisse: Jeder Akteur bekommt die Bestätigung der Identität des anderen (das heißt, der andere Akteur ist die echte Alice oder der echte Bob und kein Betrüger), und Alice und Bob vereinbaren einen geheimen Sitzungsschlüssel, der nur den beiden bekannt ist. Die Details, wie das erste Handshake-Verfahren diese Ergebnisse erhält, sind komplex, aber nicht direkt relevant für die grundsätzliche Diskussion.

Nachdem der erste Handshake abgeschlossen ist, können Alice und Bob fortfahren, einander Nachrichten zu senden. Wenn Alice eine Nachricht an Bob senden möchte, verschlüsselt sie diese Nachricht mit dem Sitzungsschlüssel und sendet die resultierenden verschlüsselten Daten an Bob. Bob verwendet den Sitzungsschlüssel, um die Nachricht zu entschlüsseln, wodurch die ursprüngliche Nachricht wiederhergestellt wird. Dies bestätigt, dass es keine Manipulation gab, während die Nachricht übertragen wurde.

Verschlüsselte Kommunikationssysteme verwenden verschiedene kryptographische Schlüssel für verschiedene Zwecke. Jeder Akteur hat einen Langzeit-Identitätsschlüssel, der in der ersten Handshake-Phase verwendet wird, um die Identität des Akteurs zu authentifizieren und einen ersten Sitzungsschlüssel zu verhandeln. Wenn ein böswilliger Akteur den langfristigen Identitätsschlüssel von Alice herausfindet, würde dies dem Akteur erlauben, sich in Zukunft als Alice auszugeben. Aber es würde keine Entschlüsselung oder Manipulationen von Nachrichten ermöglichen, die in einer nicht-gefälschten Sitzung gesendet wurden.

Sitzungsschlüssel werden verwendet, um einzelne Nachrichten zu schützen, die zwischen den beiden Akteuren hin und her gehen. Wenn ein böswilliger Akteur einen Sitzungsschlüssel herausfindet, kann der böswillige Teilnehmer die mit diesem Sitzungsschlüssel verschlüsselten Nachrichten entschlüsseln oder manipulieren. Es ist üblich, dass Systeme häufig auf neue Sitzungsschlüssel umschalten, um den Schaden zu begrenzen, der aus dem Verlust eines bestimmten Sitzungsschlüssels resultieren könnte. Viele Systeme wechseln zu einem neuen Sitzungsschlüssel für jede Nachricht, sodass der Verlust eines Sitzungsschlüssels nur eine einzige Nachricht kompromittiert. Sobald ein neuer Sitzungsschlüssel gewählt wurde, werden alle Kopien des alten Sitzungsschlüssels gelöscht.

Bei verschlüsselter Kommunikation hängen die Konsequenzen, die daraus erwachsen, wenn ein böswilliger Akteur Zugang zu einem geheimen Schlüssel erhält, davon ab, welcher Schlüssel kompromittiert wird. Ein böswilliger Akteur, der irgendwie Zugang zu einem langfristigen Identitätsschlüssel eines anderen Akteurs erhält, wird in der Lage sein, sich in Zukunft als dieser Akteur auszugeben. Er wird aber nicht in der Lage sein, alte Nachrichten zu entschlüsseln. Ein böswilliger Akteur, die irgendwie Zugriff auf einen Sitzungsschlüssel hat, kann alle Nachrichten entschlüsseln, die mit diesem Sitzungsschlüssel verschlüsselt wurden. Er wird aber nicht in der Lage sein, Nachrichten zu entschlüsseln, die mit älteren oder neueren Sitzungsschlüsseln gesendet wurden. Ebenso wird er nicht in der Lage sein, sich als jemand auszugeben, der er nicht ist. Die Verwendung mehrerer Schlüssel und die Praxis des Wechselns von Sitzungsschlüsseln beschränkt häufig den Schaden, der daraus resultiert, wenn ein bestimmter Schlüssel kompromittiert wurde.

Diskussion: Gemeinsame Stränge in modernen Verschlüsselungspraktiken

Mehrere gemeinsame Diskussionsstränge ziehen sich durch das Design moderner Verschlüsselungsanwendungen:

Verschlüsselung erfüllt mehr, als nur Geheimnisse geheim zu halten. Neben dem Schutz der Vertraulichkeit der Daten schützt sie die Integrität und ermöglicht die Erkennung von unberechtigten Versuchen, die Daten zu manipulieren. In einigen Anwendungen ist die Integrität der Hauptgrund für die Verschlüsselung.

Verschlüsselte Kommunikation erfüllt mehr, als nur die Nachricht selbst vor Entschlüsselung oder Manipulation zu schützen. Sie erlaubt auch den beiden Akteuren, die miteinander kommunizieren, gegenseitig ihre Identitäten zu authentifizieren. In einigen Anwendungen ist die Authentifizierung der Identität und der Quelle der Nachrichten der Hauptgrund für Verschlüsselung.

Informationen werden oft durch das Löschen aller Kopien des Schlüssels geschützt, der verwendet wurde, um die Informationen zu verschlüsseln. Im verschlüsselten Speicher werden der Speicherschlüssel und der Passcode von Alice gelöscht, wenn das Gerät gesperrt ist. Dadurch wird sichergestellt, dass ein böswilliger Akteur die Daten nicht entschlüsseln kann, während das Gerät gesperrt ist und er vollen Zugriff darauf hat. In der verschlüsselten Kommunikation wird der Sitzungsschlüssel gelöscht, der zum Verschlüsseln einer Nachricht verwendet wurde, sobald die Nachricht vom Empfänger entschlüsselt worden ist. So wird sichergestellt, dass ein böswilliger Akteur, der die verschlüsselte Kommunikation aufgezeichnet hat, keinen Erfolg dabei hat, den zur Entschlüsselung notwendigen Schlüssel zu erhalten.

Unterstütze unsere Recherchen und Berichterstattung für Grundrechte und ein freies Internet durch eine Spende.

Show more