Neue Angriffsmethoden gefährden ChipkartensicherheitMit dem zunehmenden Einsatz von Chipkarten für digitale Signaturen, Identifizierungsverfahren und elektronisches Geld muß mit einer starken Zunahme von Angriffen auf die Kartensicherheit gerechnet werden. In diesem Beitrag soll ein kurzer Abriß über einige neuere kryptoanalytische Techniken gegen chipkartenbasierte Systeme gegeben werden. Da diese Angriffe erst in den letzten anderthalb Jahren publiziert wurden, haben sie bisher noch keinen Einzug in die Literatur gefunden. Aus diesem Grunde komme ich auch nicht umhin, an einigen Stellen die für die Analyse nötige Mathematik darzustellen. Allerdings habe ich mich bemüht, auch für die normalen Anwender und Produzenten Sicherheitsanalysen und Gegenmaßnahmen verständlich darzustellen.Kryptographische Vorteile von ChipkartenChipkarten bieten im Vergleich zu nicht intelligenten Speichermedien einige große praktische Vorteile. Sie sind handlich und können daher vom Benutzer in seinem persönlichen Bereich gehalten werden. Von noch größerer Bedeutung ist diese Eigenschaft, wenn man sie auf der Algorithmenebene betrachtet. Da modernere Chipkarten meist über einen eigenen Cryptprozessor verfügen, können die sicherheitsrelevanten Berechnungen mit dem privaten Schlüssel direkt auf der Karte durchgeführt werden. Keine geheimen Informationen verlassen somit die Karte. Die Schlüsselinformationen selbst befinden sich in einem besonders geschützten Kartenbereich. Um eine umfassende Sicherheitsanalyse vorzunehmen, müssen also neben den Algorithmen auch die physikalischen und protokolltechnischen Schutzmaßnahmen evaluiert werden.Sicherheit von AlgorithmenDie Kryptographie hat in den letzten 20 Jahren, insbesondere nach der Veröffentlichung von DES, derartige Fortschritte gemacht, daß selbst einige in der akademischen Welt als schwach geltende Verfahren (z.B. FEAL, 2DES) unter Praxisbedingungen wohl nicht gebrochen werden können. Das in der Kryptographie verbreitete übersteigerte Sicherheitsdenken (Adi Shamir: "RSA for Paranoids") ist allerdings angesichts der Tatsache, daß der kryptoanalytische Hauptgegner, der amerikanische Supergeheimdienst NSA weltweit der größte Arbeitgeber für Mathematiker ist, wohl die realistischste Sicherheitsbetrachtung. So stehen selbst nach öffentlich zugänglichen Daten viele der schnellsten Computer der Welt bei den amerikanischen Codeknackern (siehe z.B. Dongarra, Meuer, Strohmeier, Top500, http://parallel.rz.uni-mannheim.de/top500/top500.list.html). Wenn es am 17. Juni 1997 der Internet-Kryptogemeinde - zufällig wurde der richtige Schlüssel sogar auf einem Pentium 90 gefunden - gelang, DES durch ein vollständiges Absuchen des Schlüsselraumes zu brechen, ist es eigentlich nur die Frage, wie schnell selbst einer mittelgroßen Firma dies auch gelingen könnte.Wer allerdings heute RSA (mit ausreichender Schlüssellänge >= 1024 Bit), IDEA oder Tripple-DES (mit drei unabhängigen Schlüsseln) verwendet, braucht sich um die Algorithmensicherheit bis auf weiteres keine allzu großen Sorgen machen. Allerdings beruht diese relativ hohe praktische Sicherheit nicht auf beweisbarer Mathematik, sondern auf dem berechtigten Vertrauen in die Fähigkeiten der im nichtgeheimdienstlichen Bereiche forschenden Mathematiker. Die Verfahren, die "geheim" gehalten werden, bieten diesen Schutz durch die öffentliche Analyse durch tausende kluge Köpfe nicht. Daher ist von ihrem Einsatz grundsätzlich und nachdrücklich abzuraten! Ratschlag für Anwender: Verwenden Sie öffentlich bekannte und lange Zeit getestete Verfahren! Einfaches DES ist unsicher! Angriffe gegen die ImplemtierungAus den oben genannten Gründen ist also ein Umgehungsangriff meist die erfolgreichste Methode Geheimnisse zu erlangen. Bruce Schneier zitiert einen Geheimdienstmitarbeiter mit den drastischen Worten: "Es ist weit leichter Knochen zu brechen, als Algorithmen". In der Praxis sind solche Methoden wegen verbreiteten Implementierungsfehlern in der Regel meist unnötig. So zielten auch die beiden aufsehenerregenden Angriffe auf das im Netscape-Browser enthaltene SSL-Sicherheits-Protokoll beispielsweise entweder auf die zu geringe Schlüssellänge (u.a. Damien Doligez) oder auf einen schlampig implementierten Zufallsgenerator (Goldberg & Wagner).Ratschlag für Anwender: Verlassen sie sich nicht nur auf die angegebenen Algorithmen, sondern prüfen Sie auch die Implementierung! Alle im folgenden beschriebenen Verfahren haben gemeinsam, daß nicht der eigentliche kryptographische Algorithmus oder Implementierungsfehler, sondern eine korrekte Implementierung Ziel des Angriffes ist. Das Schwergewicht der Betrachtung werde ich auf das meistverbreitete und relativ leicht erklärbare RSA-Verfahren legen. Die meisten Techniken lassen sich jedoch recht einfach verallgemeinern. Kurzbeschreibung RSADer RSA-Algorithmus wurde 1978 Ron Rivest, Adi Shamir und Leonhard Adleman vorgeschlagen und gehört zu den asymmetrischen Public-Key-Verfahren. Er ist recht einfach zu implementieren und kann sowohl zur Verschlüsselung als auch zum Erzeugen von Signaturen verwendet werden.Seine Sicherheit beruht auf der Beobachtung, daß es praktisch sehr schwierig ist, die Primfaktoren einer großen Zahl zu bestimmen. BezeichnungenM zu unterschreibende NachrichtE RSA-Signatur N RSA Modulus (öffentlich bekannt) p, q Primfaktoren von N(=pq)
d geheimer Schlüssel mit Bitlänge w: Zur Signatur einer Nachricht M wird M mit dem geheimen Schlüssel d potenziert: E = Md mod NEe = Mde mod N = M mod N Beschleunigung mit dem Chinesischen Reste-SatzDer zeitaufwendigste Teil beim RSA-Verfahren ist die modulare Exponentation der Nachricht M."Operationen mit dem privaten Schlüssel lassen sich mit Hilfe des Chinesischen Restsatzes beschleunigen... Die zusätzlichen Zahlen lassen sich einfach aus dem privaten und öffentlichen Schlüssel berechnen" (Bruce Schneier, Angewandte Kryptographie, S.535) beziehungsweise b = 0 mod p und b= 1 mod q Diese Zahlen müssen nur einmal bestimmt und können im voraus berechnet werden. Anschließend werden die Werte Ep:=mc mod pEq:=md mod qE = (aEp+bEq) mod NOffensichtlich ist dieses Verfahren effizienter als die direkte Exponentiation modulo N, da hier die Operationen mit deutlich kleineren Zahlen durchgeführt werden können. Werden beispielsweise p und q in annähernd gleicher Größe gewählt halbiert sich ungefähr die Länge der Zwischenergebnisse. Dies ist natürlich für Chipkarten mit beschränktem Speicherplatz von ganz besonderem Vorteil. Die Signaturzeit wird nach Angaben der Hersteller mindestens halbiert. (Rein mathematisch betrachtet dürfte der Beschleunigungsfaktor eher im Bereich von 4 liegen.) FAMEX Bits, 512, 768, 1024, 2048 Straightforward (ms), 140, 410, 805, 18200 Chinese Remainder (ms), 56, 164, 322, 2156 (Framex ist für 1024-Bit-Schlüssel optimiert) Aber auch die RSAREF-Referenzimplementierung
von RSASDI und PGP verwenden das CRT.
Angriffsmethoden gegen Chipkarten
Wir beginnen mit einer Methode ohne physikalische Angriffe auf die Karte. Die Timing Attack von Paul KocherDas gewählte Szenario ist dabei, daß der Angreifer die Zeit für die kryptographischen Operationen messen kann. Diese Voraussetzung ist insbesondere bei der Analyse von Chipkarten gegeben. Betrachten wir exemplarisch das RSA-Verfahren. Bekanntlich wird die Verschlüsselung bzw. die digitale Signatur durch modulare Exponentiation erreicht. Ein weitverbreitetes Verfahren hierfür istsquare-and-multiplyr[0] := 1;s[0] := 1;(* es sei d der geheimer Exponent mit Bitlänge w *)FOR k = 0 TO w-1 DOBEGINIF (k.Bit von d) = 1 THENr[k] = (s[k] * m) mod n (* Multipliziere *)ELSEr[k] = s[k] mod n; (* Multipliziere nicht *)s[k+1] = SQR (r[k2]) mod n; (* Quadriere *)END;ModularExp:=r[w-1]; (* Ergebnis *) Offensichtlich verlängert sich die Rechenzeit mit jedem 1-Bit im Exponenten d (Hamming-Gewicht). Dies fällt insbesondere auch deshalb stark ins Gewicht, da auf den meisten Hardwareplattformen die Quadrierung deutlich schneller als eine normale Multiplikation durchgeführt werden kann. Durch diese Messungen und einige statistische Überlegungen konnte Kocher Informationen über den Schlüssel erlangen. Als Beispiel gibt er an, daß auf einem Pentium 120 mit einer RSAREF-Implementierung ein Angriff auf einen 512-Bit Modulus mit einem geheimen 256 Bit Exponenten ungefähr 2000 Verschlüsselungen vonnöten sind um eine erfolgreichen Angriff durchzuführen (Bitkorrelation von über 95%). Dies ist vor allem auch deshalb interessant, weil sehr viele (Un-)Sicherheitsprodukte aus Exportgründen die bekanntermaßen nicht ausreichende 512-Bit Schlüssellänge für die "Nicht-US-Version" verwenden (z.B. Netscape). RSA-Implementierungen, die den oben vorgestellten Chinesischen Rest-Satz zur Beschleunigung der Berechnung verwenden, können durch eine Modifikation des Angriffes sogar noch effektiver attackiert werden. Hierzu wählt man eine Nachricht M in der vermuteten Größe eines der Faktoren (z. B. die Quadratwurzel aus N). Durch die Dauer der Division von M durch p kann festgestellt werden, ob M größer oder kleiner als p ist. Auch andere Verschlüsselungsverfahren, insbesondere auch symmetrische Verfahren (wie DES oder IDEA), mit unterschiedlichem Zeitverbrauch für die kryptographischen Basisoperationen sind gefährdet. So ergeben sich bei einigen Implementierungen statistisch auswertbare Differenzen beispielsweise für Rotationen (RC5, SPEED) und Tabellenzugriffe (DES, Blowfish, SEAL). RSASDI-GegenstrategieNur zwei Tage später am 11. Dezember 1995 reagierte die RSA-Data Security Inc, die Hüterin der RSA-Patente, mit einer Presseerklärung. Neben der üblichen Höflichkeitsformel, daß Kochers Idee als "academically interesting" bezeichnet wurde, schlug man auch zwei Gegenstrategien vor.Neben dem trivialen Vorschlag, die Ergebnisse erst nach der "worst time" bekannt zu geben, wurde vorgeschlagen, die benötigte Zeit durch die Verwendung einer Zufallszahl r zu Verschleiern (Blinding). Diese von David Chaum erfundene Technik findet in vielen Bereichen, wie zum Beispiel bei digitalen Geldprotokollen (ecash), Verwendung. Statt der normalen RSA-Verschlüsselung m = cd mod n sollte einfach m= r-1(cre)d mod n berechnet werden. Hierdurch soll es dem Angreifer unmöglich ("impossible") gemacht werden, die Zeitabweichungen zu verwerten. Der zusätzliche Aufwand wird von RSASDI mit 10-20% beziffert. So erfreulich die schnelle Reaktion, so typisch war auch das bekannte Abwägen von Sicherheit und finanziellem Aufwand. Im Orginal (http://www.rsa.com/rsaqa.htm): " Q: Will this require a software change for manufacturers?A: RSA recommends that its customers add "blinding" to their implementations as soon as is practical, however, because the described attack is as yet only theoretical, most manufacturers can probably safely wait to make the necessary modifications in the next regular release of their software." Also wie üblich erkannte Sicherheitslücken erst mit der nächsten Release schließen? Auch hier sollten die Kunden sehr genau prüfen, ob sie dies akzeptieren können. Ohnehin löst laut Kocher auch dies das Problem nicht grundsätzlich. Der Angreifer kann nämlich durch eine größere Zahl von Messungen versuchen, das zugesetzte Rauschen zu kompensieren. Erst wenn genug "random noise" hinzugefügt wird, ist ein praktischer Angriff nicht mehr zu fürchten. Anwender-Tips: Fragen Sie nach Maßnahmen gegen die Timing-Attack! Beachten Sie: Ein starker Zufallsgenerator ist ein schwieriges Problem! Der Bellcore AngriffDan Boneh, Richard Lipton und Richard DeMillo unterschrieben zunächst einen vorgegebenen Text mit dem RSA-Signatur-Verfahren. Anschließend wiederholten sie die Prozedur, wobei sie allerdings durch physikalischen "Streß", die Autoren schlagen beispielsweise Hitze oder Mikrowellen vor, Bitfehler während der Verschlüsselung erzeugten. Durch Vergleich des korrekt unterschriebenen Textes mit dem gestört unterschriebenen Text können mit einem mathematischen Modell direkt Rückschlüsse auf den RSA-Schlüssel gezogen werden. Wegen der besonderen Brisanz möchte ich den Angriff auf die sehr häufig verwendete RSA(CRT)-Implementierung besonders ausführlich darstellen. "One Strike and You're out"Implementierungen, welche den Chinesischen Reste-Satz zur Beschleunigung der Berechnungen verwenden, erwiesen sich dabei als besonders anfällig. Arjen Lensta zeigte, daß durch eine einzige fehlerhafte RSA-Unterschrift mit hoher Wahrscheinlichkeit der RSA-Modulus faktorisiert und damit beliebige Nachrichten gefälscht werden können. Mit dem selben Ansatz kann ebenfalls das auf modularen Quadratwurzeln beruhende Rabin-Schema gebrochen werden.Wegen der höchsten Brisanz dieses Problemes möchte ich an diesem Punkt einige mathematische Zusammenhänge und konkrete Implementierungsprobleme beleuchten. Bei Implementierungen mit dem CRT berechnet man wie oben gezeigt Ep:=mc mod p und Eq:=md mod q und bildet dann E = (aEp+bEq) mod N. Gehen wir nun davon aus, daß sich ein beliebiger Bitfehler entweder bei der Berechnung von Ep oder von Eq ereignet. Dies ist, da die Berechnungen von Ep und Eq der zeitlich aufwendigste Teil des Signaturvorganges sind, im übrigen auch eine sehr realistische Annahme für die Praxis. Boneh, DeMillo und Lipton zeigten, daß dann eine korrekte und eine fehlerhafte Unterschrift ausreichen, um N mit sehr hoher Wahrscheinlichkeit zu faktorisieren. Es sei E die korrekte Unterschrift und gelte oBdA für die fehlerhafte Unterschrift F F=E mod q und F <> E mod p Somit gilt E-F=a(Ep-Fp) Falls nun (E-F) kein Vielfaches von N ist, was sehr unwahrscheinlich ist, folgt dann für den Größten Gemeinsamen Teiler GGT(E-F,N)=q Anlaß zu noch größerer Sorge bietet eine Verbesserung von Arje Lenstra. Lenstra ist übrigens nicht nur promovierter Mathematiker und einer der führenden Faktorisierungsforscher , sondern auch Gründer der US-Hackervereinigung digicrime (http://www.digicrime.com). Eine einzige fehlerhafte Unterschrift einer bekannten Nachricht kann zur Faktorisierung von n genutzt werden. Mit den obigen Bezeichnungen gilt, für den höchst wahrscheinlichen Fall, daß N kein Teiler von (M-Fe) ist, GGT(M-Fe,N)=q wobei e der zur Überprüfung
der Signatur benötigte öffentliche Schlüssel e ist.
Somit ist N faktorisiert werden. Der Aufwand hierzu ist mit einer Potenzierung
mit dem öffentlichen Exponenten, einer Addition und einer GGT-Bildung
geradezu unglaublich gering. Der geheime Schlüssel d ist anschließend
leicht bestimmbar - der kryptographische Super-GAU. Dabei wird ein möglicher
Angreifer durch das Verifizieren der Unterschrift direkt auf den Fehler
aufmerksam gemacht.
Anwender Warnung Unmodifiziertes RSA/CRT nicht mehr verwenden! EINE durch Hardwarefehler unkorrekte
RSA-Unterschrift führt mit fast 100%-iger Sicherheit zur Aufdeckung
des geheimen RSA-Schlüssels. Der "Angreifer" bekommt die Möglichkeit
direkt angezeigt, und die Berechnung ist trivial.
Da Hardwarefehler auch ohne Manipulationen auftreten, sind insbesondere Zertifizierungsstellen mit einer hohen Unterschriftenrate höchst gefährdet. GegenmaßnahmenAußerdem möchte ich nochmals darauf hinweisen, daß, wegen der angenommenen Angriffssituation, sich der Angreifer eine beliebige Anzahl von Zufallszahlen verschaffen kann. Ohne zusätzliche Zufallshardware habe ich hier kein gutes Gefühl. Die prinzipiellste Gegenmaßnahme ist sicherlich das mehrmalige Durchführen der Signatur mit anschließendem Vergleich der Ergebnisse. Dies würde für viele Anwendungen erhebliche Performanceprobleme mit sich bringen. Ein besserer Ansatz ist das direkte Verifizieren der Signatur vor der Ausgabe mit dem eigenen öffentlichen Schlüssel. Dies benötigt bei geschickt gewähltem e (z.B. 2^{16}+1) weniger Rechenzeit, und außerdem gibt es einige interessante neuere Vorschläge zum schnellen Testen von Unterschriften (Shamir et al). Angriffe auf weitere VerfahrenAngriffe auf Implementierungen ohne den Chinesischen Reste-Satz wurden von den Bellcore Wissenschaftlern ebenfalls diskutiert. Allerdings benötigen diese mehrere fehlerhafte Signaturen. Auch die häufig angewendeten Identifikationsverfahren Fiat-Feige-Shamir (beruht auf dem modularen Quadratwurzelproblem) und Schnorr (beruht auf dem Diskrete Logarithmusproblem) konnten mit nur wenigen fehlerhaften Ausgaben geknackt werden. Bei Authentifizierungsprotokollen wie Fiat-Feige-Shamir, sollte der interne daher Status mit Prüfbits (z.B. CRC) gesichert werden.Angriffe auf symmetrische VerfahrenObgleich Bellcore zunächst versicherte, daß dieser Angriff symmetrische Verfahren nicht gefährden würde (siehe Kopie http://www.informatik.uni-mannheim.de/~rweis/rgp/dfa/facts.html - die Originalquelle ist vom Bellcore-Server verschwunden... ) übertrugen Adi Shamir und Eli Biham die Methode auch auf das DES-Verfahren. Shamir und Biham, die schon Anfang der 90er mit der differentiellen Kryptoanalyse zahlreiche Blockchiffrierer knacken konnten, verallgemeinerten den Angriff auch auf andere symmetrische Verfahren (u.a. Tripple-DES und IDEA) und konnten sogar zeigen, daß selbst Chipkarten mit unbekanntem Verschlüsselungsverfahren (Stichwort: Clipper) gefährdet sind. Auf der Eurocrypt '97 kündigte Shamir eine weitere Verbesserung an, welche in Kürze auf der Crypto '97 vorgestellt werden wird.Aktuelle Stellungnahme der BundesregierungDeutscher Bundestag Drucksache 13/7753, 13. Wahlperiode, 22.05.97 Antwort der Bundesregierung auf die Kleine Anfrage des Abgeordneten Dr. Manuel Kiper und der Fraktion BÜNDIS90/DIE GRÜNEN, Drs. 13/ 7594 " Lage der IT-Sicherheit in Deutschland ... 51 .Welcher Sicherheitswert kann nach Auffassung der Bundesregierung Verschlüsselungsverfahren zugemessen werden, bei denen der Schlüssel auf Chipkarten gespeichert ist und damit die Analyse durch die "Differential Fault Analysis" erlauben? Bis heute ist nicht nachgewiesen worden, daß eine "Differential Fault Analysis" - bei unbezweifelbarer theoretischer Machbarkeit - tatsächlich durchgeführt werden kann. Sie erfordert im übrigen auch, daß der Schlüssel nicht nur auf der Chipkarte gespeichert ist, sondern dort auch verarbeitet wird. Ferner kann diese Analysetechnik durch entsprechend redundante Systemarchitektur weitgehend blockiert werden. " Wie so häufig beantworten offizielle Stellen Anfragen zu Sicherheitsproblemen unbefriedigend oder schlicht und einfach falsch. Sehen wir davon ab, daß die konkrete "Machbarkeit" der Differential Fault Analysis natürlich schon gezeigt wurde (u.a. von der Telekom). Von großen Fachverstand der Bundesregierung zeugt auch die Bemerkung, daß für den diskutierten Angriff eine Verarbeitung des Schlüssels auf der Chipkarte nötig ist. Sehr richtig. Wenn der Schlüssel außerhalb der Karte verarbeitet wird, reicht das einfaches Abhören der Kommunikation natürlich zum Abfangen des Schlüssels völlig aus. Die interne Verarbeitung der Schlüssel ist ja wie oben erwähnt ein besonderer Sicherheitsvorteil der Chipkarten. Anwendertip: Vertrauen Sie bei der Bewertung von IT-Sicherheit nicht (nur) auf das Urteil staatlicher Stellen. Angriffe mit physikalischer GewaltBeim ersten Ansatz wird ein Angriff gegen den Prozessorcounter mittels Änderung der Taktfrequenz durchgeführt. Viele Prozessoren überspringen durch diese Störung Instruktionen und die entstehende Ausgabe ist in der Regel einfacher zu kryptoanalysieren. Die Autoren schlagen in der Veröffentlichung "Improved Differential Fault Analysis" beispielsweise die einfache Erhöhung der Clockfrequenz von 5MHz auf 20MHz vor. Eine farbig bebilderte Bastelanleitung hierzu ist unter http://www.cl.cam.ac.uk/users/rja14/tamper.htmlzu finden. Der zweite Angriff nutzt aus, daß in vielen Systemen es leichter ist Bits zu setzen, als sie auszulesen. So können durch Überschreiben des ROMs (ROM Override Attack) die verwendeten Algorithmen gezielt geschwächt werden. ZusammenfassungEine Verteufelung der Chipkarten ist allerdings genausowenig am Platze. Erstens können die meisten Angriffstechniken ebenso auf Softwareimplementierungen angewendet werden, und zweitens sind die am Anfang des Artikels erwähnten Vorteile nicht betroffen. Auch ist es trotz aller noch so ausgefeilten Techniken weit einfacher Software, als in Silizium gebrannte Hardware zu manipulieren. Anwendertip: Sicherheitsprobleme und neue kryptoanalytischen Ansätzte verbreiten sich in sekundenschnelle über das Internet. Informieren Sie sich dort, mögliche Angreifer tun dies sicherlich. Relevante Adressen: news.sci.crypt, Autor: Rüdiger
Weis
Zusammenfassend: Chipkarten bieten angesichts der neuen Attacken zwar immer noch gute, allerdings eben keine perfekte Sicherheit. |