aus dem Netzwerk Insider September 2021
Das Thema „homomorphe Verschlüsselung“ wurde im Netzwerk-Insider bereits im Zusammenhang mit der Cloud betrachtet ([1], [2]). Eine alltagstaugliche Umsetzung der homomorphen Verschlüsselung für Unternehmen lässt jedoch weiter auf sich warten. Was hat sich hier in den letzten Jahren getan? Gibt es jenseits der reinen Forschung Unternehmen, die an einer alltagstauglichen Umsetzung arbeiten?
Die Antworten auf diese beiden Fragen sind: „einiges“ und „ja“. Zwar sind wir immer noch ein gutes Stück davon entfernt, alles mittels homormorpher Verschlüsselung zu verarbeiten, jedoch sind durchaus Fortschritte sichtbar. Außerdem interessieren sich mittlerweile einige große Firmen für die Technologie, insbesondere IBM und Google.
Homomorphe Verschlüsselung – der heilige Gral der Verschlüsselung
Zunächst wird kurz erläutert, wie eine homomorphe Verschlüsselung funktioniert.
Bei der homomorphen Verschlüsselung wird nicht mit den eigentlichen Daten gearbeitet, sondern mit einer verschlüsselten Version dieser Daten. Als Ergebnis der Verarbeitung erhält man ebenfalls verschlüsselte Daten. Das Tolle an diesem Verfahren: Entschlüsselt man dieses Ergebnis, erhält man das gleiche Ergebnis wie bei der Verarbeitung der unverschlüsselten Daten. Das grundsätzliche Verfahren ist in Abbildung 1 dargestellt.
Ist dies für alle möglichen CPU-Operationen umgesetzt, kann sämtliche Datenverarbeitung ohne die Kenntnis der Eingangsdaten durchgeführt werden. Software besteht grundsätzlich nur aus CPU-Operationen.
Weil bei der Verarbeitung weder die Eingangs- noch die Ausgangsdaten bekannt sein müssen, spielt die Vertrauenswürdigkeit der Infrastruktur eine untergeordnete Rolle. Ein potenzieller Angreifer kann mit den Daten ohne weitere Informationen, insbesondere ohne den Verschlüsselungskey der Daten, nichts anfangen. Damit ist die Vertraulichkeit der Daten immer gewährleistet. Bei der Integrität sieht es etwas anders aus: Die Daten könnten manipuliert werden. Aber ohne Kenntnisse der Eingangsdaten werden die Ausgangsdaten mit großer Wahrscheinlichkeit unsinnig sein und damit fällt die Veränderung der Daten schnell auf.
Das bedeutet aber leider nicht, dass ein Abfluss von unverschlüsselten Daten unmöglich wird, wenn die verarbeitende Software homomorphe Verschlüsselung unterstützt. Es gibt immer noch den Menschen. Denken wir zum Beispiel an klassische Office-Anwendungen: Zwar könnte man in Excel Formeln benutzen, die mit verschlüsselten Daten arbeiten. Aber aus Komfort-Gründen möchte man im selben Dokument sowohl die Eingangsdaten definieren als auch das Ergebnis der Formel sehen. Damit müssen Eingangsdaten und Ergebnis aber wieder im Arbeitsspeicher oder der CPU im Klartext vorliegen, sodass der Sicherheitsgewinn hinfällig ist. Daher beschränkt sich der sinnvolle Einsatz von homomorpher Verschlüsselung auf nicht-interaktive Software, z.B. Simulationen und statistische Berechnungen. Diese Aufgaben werden heute häufig in eine Cloud ausgelagert. Damit wäre die Cloud ein guter Kandidat für den Einsatz homomorpher Verschlüsselung, wie bereits erwähnt ([1], [2]).
So viel zur Theorie. Aber wie sieht es momentan in der Praxis aus?
Aktuelle Umsetzungen von homomorpher Verschlüsselung
Gerade in den letzten Jahren hat sich hier einiges getan. Sowohl IBM [3] als auch Google [4] haben Software-Bibliotheken und Code-Beispiele für den praktischen Einsatz von homomorpher Verschlüsselung veröffentlicht. Der Einsatz ist bei Google und IBM und auch je Use Case unterschiedlich aufwendig und stellt unterschiedliche Anforderungen an die zugrundeliegende Infrastruktur, speziell das Betriebssystem und weitere Software-Bibliotheken. Insgesamt sind beide Lösungen aber gut dokumentiert und ermöglichen einen vergleichsweise einfachen Einstieg in die Materie.
Aber mehr als ein Einstieg ist es leider nicht! Denn einen wichtigen Punkt habe ich bis jetzt außer Acht gelassen: die Performance. Mathematische Operationen im Rahmen von homomorpher Verschlüsselung sind um viele Größenordnungen langsamer als bei der Nutzung von Klartext. Früher handelte es sich um einen Faktor von ca. 100 Millionen. IBM hat seitdem die Performance um ungefähr den Faktor 1.000 verbessert, jedoch reduziert sich die Geschwindigkeit bei Einsatz homomorpher Verschlüsselung weiterhin um einen Faktor von ca. 100.000. Möchte man beispielsweise eine Datenbank komplett homomorph verschlüsselt betreiben, müsste man für eine akzeptable Performance hunderte zusätzliche Server einsetzen. Das ist weder wirtschaftlich noch betrieblich sinnvoll, vom Platz- und Stromverbrauch ganz abgesehen!
Die Performance der Google-Umsetzung ist leider nicht ausreichend dokumentiert, aber auch hier ist weiterhin mit einigen Zehnerpotenzen Verlust zu rechnen. Google selbst sieht die Performance seiner Implementierung noch als großes Hindernis für die weite Verbreitung. Dies wird im entsprechenden Whitepaper [6] auch als einer der Kernpunkte für die Weiterentwicklung angegeben.
Fazit
Es bleibt leider momentan dabei, dass homomorphe Verschlüsselung bevorzugt ein interessanter Forschungsbereich ist. Die Praxistauglichkeit lässt weiter auf sich warten. Ob und wann es jemals eine praxistaugliche Umsetzung geben wird, ist leider nicht abschätzbar. Aber es ist ein aktives Feld, für das erste Unternehmen Interesse zeigen, sodass man zumindest hoffen kann.
Verweise
[1] S. Hoff, „Das Dilemma der Verschlüsselung in der Cloud“, Der Netzwerk Insider, September 2013
[2] S. Hoff, „Verschlüsselung in der Cloud: Licht am Ende des Tunnels“, Der Netzwerk Insider, Oktober 2017
[3] Github: https://github.com/IBM/fhe-toolkit-linux, aufgerufen am 8.8.21
[4] Github: https://github.com/google/fully-homomorphic-encryption, aufgerufen am 8.8.21
[5] S. Gorantala et al., „A General Purpose Transpiler for Fully Homomorphic Encryption“, Juni 2021, https://github.com/google/fully-homomorphic-encryption/blob/main/transpiler/docs/whitepaper.pdf, aufgerufen am 11.8.21