Forschern ist es gelungen, den geheimen RSA-Schlüssel eines RSA SecurID 800 Tokens in nur 13 Minuten zu ermitteln. Der von den Kryptologen Bardou, Focardi, Kawamoto, Simionato, Steel und Tsay in dem Forschungsbericht "Efficient Padding Oracle Attacks on Cryptographic Hardware" beschriebene Angriff ist prinzipiell nicht neu. Doch indem sie die seit über zehn Jahren bekannte "1 Million Message Attack" um ein Vielfaches verbesserten, wurde der oft als "praktisch nicht durchführbar" heruntergespielte Bleichenbacher-Angriff real.

Das Token RSA SecurID 800 ist eines von mindestens 5 anfälligen Produkten.

Ähnlich anfällig sind laut dem Bericht unter anderem die Tokens Aladdin eTokenPro, iKey 2032 von SafeNet, Gematos CyberFlex und Siemens CardOS. Solche Tokens werden vor allem für eine Zweifaktor-Authentifizierung in Umgebungen mit hohen Sicherheitsanforderungen eingesetzt. Weil es nicht möglich sein sollte, den geheimen Schlüssel aus einem solchen Token zu extrahieren, bietet es auch dann noch Schutz, wenn etwa der Rechner kompromittiert wurde, mit dem es eingesetzt wird.

Der Angriff ist eine "Padding Oracle Attacke" – ein Spezialfall eines adaptive chosen-ciphertext Angriffs. Er beruht darauf, dass die Verschlüsselung immer in Blöcken fester Länge erfolgt und der letzte Block in der Regel auf diese Länge aufgefüllt werden muss (das ist das Padding). Nimmt man nun eine korrekt verschlüsselte Nachricht und manipuliert das Padding, wird die Entschlüsselungsfunktion in der Regel bemerken, dass das Padding ungültig ist und eine Fehlermeldung ausgeben oder sich zumindest anders verhalten als bei einem gültigen Padding (das ist das "Orakel"). Nur in ganz seltenen Fällen erhält man zufällig ein gültiges Padding. Mit genügend dieser Zufallstreffer kann man dann den für die Verschlüsselung genutzten geheimen Schlüssel ermitteln.

Für diese Angriffe anfällige Formen des Paddings spezifiziert der Standard RSA-PKCS#1v1.5, den viele Hersteller trotz dieser seit Jahren bekannten Probleme immer noch einsetzen. Der Kryptograph Matthew Green fordert deshalb dazu auf, dieses schwache Verfahren endlich auszumustern und stattdessen auf das deutlich bessere RSA-OAEP umzustellen, das in PKCS#1 ab Version 2 eingesetzt wird. "Das ist eure letzte Warnung" erklärt er, an die Hersteller von Krypto-Systemen gerichtet.

Update 26.6. 18:30: Es handelt sich nicht um die weit verbreiteten Tokens, die nur zur Erzeugung von One Time Passwords dienen, sondern um hybride USB-Tokens, die zusätzlich dazu dienen, Zertifikate und die dazu gehörigen Schlüssel sicher zu speichern. Ein Angriff könnte etwa so ablaufen, dass ein Trojaner über eine Backup-Funktion des APIs eine verschlüsselte Kopie eines geheimen Schlüssels anfordert. Diesen Cipher-Text manipuliert er dann und versucht ihn zu re-importieren – befragt also das Padding-Orakel. Nach im Mittel weniger als 10 000 Versuchen kann er den Key entschlüsseln und letztlich vom vermeintlich sicheren Token stehlen. Allerdings wurde dieser Angriff nicht wie zunächst oben konstatiert um den Faktor 1000 sondern lediglich von 215 000 auf 9400 Versuche beschleunigt.

2. Update 27.6. 16:40: RSA hat mittlerweile Stellung bezogen. Insbesondere ist es demnach nicht möglich, durch diesen Angriff einen auf dem Token gespeicherten, geheimen RS-Schlüssel zu kompromittieren. Siehe dazu: RSA erklärt seine Tokens für sicher (ju)