Die Kommunikation über digitale Kanäle in Form einer Textnachricht oder aber bei der Verwendung von Webbrowsern, gehört zum Alltag und ist heutzutage nicht mehr wegzudenken. Nutzer greifen häufig auf Kommunikationsmittel zurück, deren Verbindungen als sicher gelten, weil die Daten verschlüsselt versendet werden und vertrauen dieser Verschlüsselung. Fast jeder kennt es: Das Vorhängeschloss, das im Browser angezeigt wird und für eine sichere Verschlüsselung der transportierten Daten steht.
Was aber, wenn dieser vermeintlich sichere und sogar verschlüsselte Datenaustausch im Nachhinein entschlüsselt werden könnte?
Angreifer könnten schon heute mit Hilfe von Tools den gesamten Datenverkehr einer Kommunikation mitschneiden und aufbewahren. Zwar könnten Angreifer mit den verschlüsselten Daten erst einmal nichts anfangen, jedoch zu einem späteren Zeitpunkt in der Lage sein, in den Besitz des Langzeitschlüssels zu gelangen und somit die gesamte Kommunikation im Nachhinein entschlüsseln.
Ein Problem kann also genau dann entstehen, wenn die gesamte sichere Kommunikation lediglich von einem Schlüssel verschlüsselt wird und dieser in die Hände eines Angreifers gerät. Ziele zur Verbesserung der Sicherheit sollten also sein,
- zu verhindern, dass Angreifer überhaupt in den Besitz des Schlüssels gelangen und
- die Kommunikation langfristig zu schützen, für den Fall, dass ein Angreifer doch den Schlüssel bekommt.
In diesem Blogbeitrag wird die Funktionsweise des Konzepts der Perfect Forward Secrecy genauer beleuchtet, welches bei diesem Problem ansetzt.
Grundlegendes zur Verschlüsselung
Zu Anfang beginnen wir mit einem Beispiel, das jeder kennt: dem Surfen im Internet. Während des Datenverkehrs, der entsteht, wenn ein Nutzer auf eine Website zugreift, die HTTPS verwendet, wird die Sicherheit der Verschlüsselung durch das Transport Layer Security (TLS) Protokoll gewährleistet. TLS nutzt sowohl asymmetrische als auch symmetrische kryptografische Verfahren. Nachdem sich die zwei Kommunikationspartner – Websitebesucher und Webserver – authentifiziert haben, folgt während des initialen „TLS-Handshakes“ die „Einigung“ auf einen Schlüssel für die symmetrische Verschlüsselung. Mit diesem Schlüssel kann der eigentliche Datenverkehr zwischen beiden dann verschlüsselt stattfinden. Die Verschlüsselung erfolgt auf Basis einer symmetrischen Verschlüsselung – nutzt also genau einen Schlüssel.
In der Praxis wird dafür häufig der Verschlüsselungsalgorithmus Advanced Encryption Standard (AES) verwendet. Dieser ist heutzutage Stand der Technik und wird bspw. auch noch in den USA für staatliche Dokumente mit höchster Geheimhaltungsstufe verwendet.
Auch wenn derzeit davon ausgegangen wird, dass AES nur unter wirklich erheblichem Aufwand gebrochen werden könnte, gilt die hypothetische Annahme, dass auch AES im Laufe der Zeit unter Verwendung von ausreichenden Ressourcen gebrochen werden kann – z. B. wenn die Leistungsfähigkeit von Computern in den nächsten Jahren oder Jahrzehnten exponentiell steigt. Der heute sichere Schlüssel könnte dann vielleicht geknackt werden und etwaige mitgeschnittene Daten der Vergangenheit wären in der Zukunft dann lesbar.
Genau an dem Punkt setzt das Konzept der Perfect Forward Secrecy an und ergänzt die Transportverschlüsselung um eine zusätzliche Sicherheitsfunktionalität.
Der Lösungsansatz von Perfect Forward Secrecy
Perfect Forward Secrecy löst das Problem über die Erzeugung mehrerer temporärer Sitzungsschlüssel (session key). Statt der Verwendung eines Schlüssels, wie bei symmetrischer Verschlüsselung üblich, sollen nun über den Verlauf der Kommunikation mehrere kurzlebige Schlüssel verwendet werden, um jeweils die einzelnen Sitzungen zu verschlüsseln. Zeitpunkte für das Verwenden eines neuen Sitzungsschlüssels können bspw. das erneute Laden einer Website oder jeder einzelne neue Verbindungsaufbau sein.
Sofern bei einer mit Perfect Forward Secrecy abgesicherten Verbindung ein Angreifer in den Besitz des Schlüssels kommt, kann dieser nur einen Teil der Kommunikation entschlüsseln.
Wie funktioniert das?
Wie bereits dargestellt, funktioniert der Aufbau einer HTTPS-Verbindung im Internet durch eine Kombination aus asymmetrischer und symmetrischer Verschlüsselung. Bei der asymmetrischen Verschlüsselung kommt dabei ein privater Schlüssel zur Anwendung. Der private Schlüssel dient bei der Verwendung technischer Varianten mit Perfect Forward Secrecy nun gewissermaßen auch als Langzeitschlüssel. Die temporären Schlüssel (engl. ephemeral keys, das bedeutet vergänglich oder flüchtig) werden während der Schlüsseleinigung unabhängig von beiden Kommunikationspartnern selbst „errechnet“. Der große Vorteil dabei ist: Diese kurzzeitigen Schlüssel müssen gar nicht übertragen werden. Denn sie werden, wie bereits dargestellt, von jedem Kommunikationspartner berechnet. Das führt dazu, dass sie nie direkt über das Internet übertragen werden müssen.
Technisch steckt einiges dahinter: Der Austausch bzw. die Einigung auf die Schlüssel findet über spezielle Formen des Diffie-Hellman-Verfahrens statt. In der Praxis wird dies durch TLS ab der Version 1.2 gewährleistet. Diese Version nutzt das sog. Ephemeral Diffie-Hellman (DHE) oder das „Elliptic Curve Diffie-Hellman“-Verfahren zum Schlüsselaustausch. Beide unterstützen das Perfect Forward Secrecy Konzept.
Perfect Forward Secrecy „sorgt“ gewissermaßen dafür, den Prozess der Schlüsselerzeugung der kurzlebigen session keys neu anzustoßen. Jedes Mal, wenn einer der kurzlebigen Schlüssel abläuft, stößt Perfect Forward Secrecy nun ein neuen Diffie-Hellmann-Prozess an, um neue unabhängige Schlüssel zu erzeugen. Als ephemeral werden die Schlüssel bezeichnet, weil sie gewissermaßen flüchtig sind und nicht abgespeichert werden. Als weitere Vorgabe werden diese Schlüssel nach jedem neuem Diffie-Hellmann-Prozess zwingend gelöscht und nie in darauffolgenden Sitzungen erneut verwendet.
Zusätzlich gilt noch die Voraussetzung, dass die kryptografischen Schlüssel unabhängig voneinander erzeugt werden müssen. Es soll Angreifern nicht möglich sein mit Hilfe eines erlangten Schlüssels, Rückschlüsse auf den neu erzeugten Schlüssel zu ziehen.
Nachteile von Perfect Forward Secrecy
Die Nutzung von Perfect Forward Secrecy hat allerdings im Vergleich zur symmetrischen Verschlüsselung den Nachteil, dass die Kommunikation deutlich aufwändiger, d. h. rechenintensiver, ist. So müssen Serverbetreiber in der Praxis mit bis zu 30 % mehr Last rechnen.
Anwendungsbeispiele
Es finden sich viele Anwendungsbeispiele von Herstellern, die bei der Auswahl der Protokolle diejenigen verwenden, die auch Perfect Forward Secrecy unterstützen. Anwendung findet das Verfahren u. a. in dem Protokoll IPSec. Es wird aber auch bei alltäglichen Anwendungen genutzt, die den meisten Lesern bekannt sein dürfen: Der Messenger Threema bspw. hat Perfect Forward Secrecy als Standard auf der Transportschicht etabliert. Google hat die eigenen Server bereits seit dem Jahr 2011 für den Schlüsselaustausch mit Perfect Forward Secrecy eingerichtet und aktuelle Versionen der gängigen Browser, wie Chrome oder Firefox, unterstützen die Verwendung von Perfect Forward Secrecy ebenfalls seit ca. einem Jahrzehnt.
Fazit
Perfect Forward Secrecy bietet den Nutzern eine weitere Schicht an Sicherheit, um für den Fall eines kompromittierten Schlüssels die Kommunikation im Internet auch im Nachhinein zu schützen. In der Praxis erschwert es Angreifern, die mitgeschnittene Kommunikation vollständig zu entschlüsseln. Das Bundesamt für Sicherheit in der Informationstechnik (BSI) empfiehlt bereits seit dem Jahr 2013 TLS in der Version 1.2 mit Perfect Forward Secrecy als Mindeststandard für Behörden.
Aktuell ist laut dem BSI sogar die Verwendung von TLS in der Version 1.3 mit Verwendung von Perfect Forward Secrecy empfohlen.