ROCA - Unsichere RSA-Schlüssel von Infineon

Gespeichert von Matthias Heinz am Mi, 18.10.2017 - 17:46

In den letzten Tagen ist durch KRACK eine meiner Meinung nach viel schwerwiegendere Sicherheitslücke untergegangen. Bei ROCA handelt es sich um einen Fehler in der RSA-Bibliothek von Infineon, welche auf vielen Sicherheitschips zum Einsatz kommt. Diese werden unter anderem genutzt auf Smartcards, USB-Dongles und in eingebetteten Systemen. Der Fehler steckt in dem Teil, der für die Erzeugung von Schlüssel zuständig ist und sorgt dafür, dass aus dem öffentlichen Schlüssel der private zurückgerechnet werden kann.

Hintergrund: RSA ist ein asymetrisches Verschlüsselungsverfahren. Dabei wird ein öffentlicher und ein privater Schlüssel generiert. Der öffentliche Schlüssel kann, wie sein Name schon sagt, eigentlich bedenkenlos veröffentlicht werden. Er wird auch benutzt, um Nachrichten an den Besitzer des Schlüssels zu verschlüsseln. Der private Schlüssel muss aber unter allen Umständen geheim gehalten werden, denn er erlaubt es die Nachrichten zu entschlüsseln. Wird der RSA-Schlüssel zur Authentifizierung benutzt, zum Beispiel in Hochsicherheitsanwendungen, kann ein kompromitierter geheimer Schlüssel dazu genutzt werden sich unbefugt an solchen Systemen anzumelden. Auch Update-Funktionen, die auf RSA basieren, zum Beispiel in eingebetteten Systemen, könnten so unbefugt Updates untergeschoben werden.

Die Grundlage von RSA bildet das Faktorisierungsproblem. Das besagt, dass das Produkt aus zwei Primzahlen zwar leicht zu berechnen ist, aber es schwer ist die Faktoren aus einer großen Zahl zu berechnen. Als Beispiel: Die Zahlen 13 und 29 sind Primzahlen. Das Produkt daraus ist 377. Das ist leicht zu berechnen. Aber was sind die Faktoren aus 943? Ich kann es verraten, es sind 23 und 41. Systematisch dafür die Lösung zu finden geht aber nur durch Ausprobieren. Und je größer die Zahlen sind, um so schwieriger wird das Verfahren. RSA macht noch mehr, aber das ist die Grundlage dafür, dass es funktioniert. Tiefergreifende Informationen gibt es in der Wikipedia.

Das Problem bei ROCA ist nun, dass sich aus dem öffentlichen Schlüssel der private in relativ kurzer Zeit berechnen lässt. Das sollte nicht passieren und ist ein Fehler, wie das Schlüsselpaar generiert wird.

Wer den Verdacht hegt oder weiß, dass sein RSA-Schlüssel von einem Infineon-Chip generiert wurde, sollte seinen öffentlichen Schlüssel dringend daraufhin überprüfen, wenn möglich ein Update einspielen und einen neuen Schlüssel erzeugen. Schlüssel, die von externen Programmen, wie zum Beispiel gnupg erzeugt und in eine Smartcard geladen wurden sind nicht anfällig. Auch lange Schlüssel mit 4096 Bit, die von der Infineon-Bibliothek erzeugt wurden, gelten bisher noch als sicher, jedoch ist es nur eine Frage der Zeit, bis genug Rechenleistung zur Verfügung steht, um diese ebenfalls anzugreifen.

Weiterführende Links: