Harte Nüsse - Verschlüsselungsverfahren und ihre Anwendungen

Angriffe in der Praxis

Inhaltsverzeichnis

Moderne, gut untersuchte Algorithmen bieten in der Regel kaum praktisch ausnutzbare Schwächen. Angreifer werden daher an anderer Stelle ansetzen, zum Beispiel beim kryptographischen Protokoll, der Schlüsselwahl, der zu kurzen Passphrase zur Absicherung privater Schlüssel und so weiter. Ein lehrreiches Beispiel für einen Protokollangriff lieferte eine Attacke auf OpenPGP, wie in [2, 7.1.4] beschrieben. Private Schlüssel werden bei PGP und GnuPG im CFB-Modus chiffriert (Cipher Feedback), bei dem man ähnlich wie beim erwähnten OFB-Modus (Output-Feedback) leicht bestimmte Bits umklappen kann, genauer: Ein in den Rechner eingedrungener Angreifer ändert ein Bit im verschlüsselten Secret Key und weiß, welches Bit sich nach Dechiffrierung beim Klartext ändern wird. Wer mit einem solchen „gestörten“ Schlüssel signiert, hat verloren: Aus der falschen Signatur lässt sich der private Schlüssel berechnen. Der Angriff wurde möglich, weil die Designer von OpenPGP nur CRC-Prüfsummen implementierten, deren Verhalten bei solchen Störungen vorhersagbar ist. Die Attacke ist sehr eng mit dem Algorithmus selbst verquickt und nutzt kryptanalytische Erkenntnisse aus. Ähnliche Effekte hätte übrigens ein Bitfehler bei der Berechnung digitaler Signaturen. Die Software sollte Letztere also immer nochmals auf Korrektheit prüfen.

Besonders hinterhältig sind so genannte Seitenangriffe auf Smartcards, bei denen die Taktzeiten zur Chiffrierung untergeschobener Klartexte gemessen werden (timing attack) oder auch der zeitliche Verlauf des Stromverbrauchs (DPA = differential power attack). Nicht nur die Smartcard-Hersteller, sondern ebenso die Algorithmendesigner müssen an diese Möglichkeiten denken.

Angesichts der beschriebenen Schwierigkeiten sollte es klar sein, dass man mit Eigenentwicklungen den Angreifern eine Freude macht. Kryptanalytiker sind Mathematiker, und wer ihnen widerstehen will, muss ihr Handwerkszeug kennen und beherrschen. Ein Blick in ein „echtes“ Kryptographiebuch wie [4] oder noch besser in CRYPTO-Proceedings aus der LNCS-Reihe des Springer-Verlages zeigt, welches Niveau dazu erforderlich ist.

Doch auch gute Kenntnis gängiger Methoden reicht nicht: Eigene erfolgreiche Kryptanalysen sind Voraussetzung, um einen guten Algorithmus beziehungsweise ein sicheres kryptographisches Protokoll überhaupt entwickeln zu können. Sichere Kryptographie beruht auf mathematisch anspruchsvollen Überlegungen - ein Mathematikstudium ist fast schon ein Muss für seriöse Kryptologen. Zudem muss gutes Verständnis über Computer und Software vorhanden sein, damit keine Implementierungsfehler passieren. Aber auch von den mathematischen und technischen Schwierigkeiten ganz abgesehen, sollte man sich bei der Entwicklung eines Krypto-Algorithmus die Frage stellen, ob es wirklich nötig ist, das Rad ein zweites Mal zu erfinden. Der bekannte Kryptograph Schneier schreibt in seinem lesenswerten „Memo to the Amateur Cipher Designer“ [9]: „Es ist leicht, einen Algorithmus zu entwerfen, den man selbst nicht knacken kann. Schwierig wird es, wenn ihn auch andere nicht knacken können sollen. Und selbst bei einem guten Algorithmus muss sich sein Designer die Frage gefallen lassen, welche Vorzüge dieser zum Beispiel gegenüber AES oder Twofish haben soll.“

[1] Bruce Schneier: Angewandte Kryptographie, Addison-Wesley 1996

[2] Dr. Reinhard Wobst: Abenteuer Kryptologie, Addison-Wesley 2000

[3] Friedrich L. Bauer: Kryptologie - Methoden und Maximen (2. Auflage), Springer New York 1994

[4] Douglas Stinson: Cryptography - Theory and Practice, CRC Press 1995

[5] EFF: Cracking DES, O’Reilly 1998

[6] Dr. Reinhard Wobst: Mythos Quantencomputer, UNIX/open 2/02, S. 28-30 und 3/02, S. 22-24

[7] Dr. Reinhard Wobst: AES unter Beschuss, c't 21/02, S. 38

[8] Dr. Reinhard Wobst: Von DES zu AES, iX 10/01, S. 92-96

[9] Bruce Schneier: Memo to the Amateur Cipher Designer

[10] Kryptanalyse von RC4