PKCS#1-Signaturen / Bleichenbacher Angriff

PKCS#1-Signaturen basieren auf dem RSA-Verschlüsselungsverfahren. Der Angriff von Daniel Bleichenbacher zielt nicht auf das Verschlüsselungsverfahren selbst, sondern auf Implementierungsfehler, die in mehreren RSA-Klassenbibliotheken zu finden waren. Der Angriff wurde 2006 publiziert und seitdem wurde die Spezifikation für die Signaturen verändert und die betroffenen Klassenbibliotheken ausgebessert.

Digitale Signaturen
Digitale Signaturen werden benutzt um die Authentizität von Daten nachzuweisen. Zum Beispiel kann einer Nachricht ein Sender zugeordnet werden.
Die Signaturen basieren auf asymmetrischen Verschlüsselungsverfahren (in diesem Fall das RSA Verfahren). Diese Verfahren verwenden einen öffentlichen (public) und einen privaten (private) Schlüssel, sowie einen sog. Modulus, welcher bei beiden Schlüsseln gleich ist.

Bei der Generierung der Signatur werden nicht die kompletten zu signierenden Daten mit dem privaten Schlüssel verschlüsselt. Es wird zunächst ein Hashwert der Daten gebildet. Dieser Hashwert wird dann mit anderen Daten in ein standardisiertes Format (beschrieben in den PKCS Spezifikationen) gebracht und dann verschlüsselt.
Die erzeugte Signatur kann dann mit der Klartextnachricht an den Empfänger übermittelt werden. Der Verifikationsprozeß auf Empfängerseite beginnt damit, dass zunächst die empfangene Signatur mit dem öffentlichen Schlüssel des Senders entschlüsselt wird. Aus den entschlüsselten Daten wird nun die verwendete Hashfunktion (diese Information befindet sich in den hinzugefügten Daten) und der Hashwert ausgelesen. Aus der mitgesandten Klartextnachricht wird nun ein Hashwert gebildet und mit dem aus der Signatur extrahierten Hashwert verglichen. Stimmen diese überein, gilt die Nachricht als authentisch.

Bleichenbacher Angriff
Der Bleichenbacher Angriff ermöglicht es, unter bestimmten Voraussetzungen, Signaturen zu fälschen. Diese gefälschten Signaturen werden bei fehlerhafter Implementierung, wie in PKCS#1 Version 1.5 beschrieben, als valide anerkannt. Wie bereits oben erwähnt, ist die Spezifikation bearbeitet (aktuell PKCS#1 Version 2.1) und die produktiv eingesetzten Implementierungen sollten diese fehlerhafte Validierung nicht mehr beinhalten.

Angriff mit kürzeren Schlüsseln (Kühn Angriff)
Im Gegensatz zum Bleichenbacher Angriff (3072 Bit lange Schlüssel) zielt der Angriff von Kühn auf kürzere Schlüssel (1024 Bit Länge). Dieser Angriff macht sich die Rechenkraft von Computer zunutze. Hier wird nicht berechnet wie eine gefälschte Signatur aussehen muss, sondern es wird ein Algorithmus durchlaufen, bis das entsprechende Ergebnis generiert ist.