Die Hacker kommen

Angriffsszenarien auf Smart-Card-ICs

15. Juni 2010, 13:02 Uhr | Frank Riemenschneider
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Beschreibung der Angriffsschritte

Es können 2 hoch 16 Werte kommuniziert werden.
Vom Entwickler definierte Teilmenge in Bezug auf den Befehlssatz nach ISO/EMV-Definition und alle möglichen Werte (65536).
© Common Criteria

Mit dem Beobachten der Nachrichtensequenzen lässt sich folgendes erzielen:

  • Einholen von Informationen über ein unbekanntes Protokoll (z. B. mit nicht offengelegter Interface-Spezifikation), um Vorbereitungen für eine Attacke zu treffen
  • Einholen von Informationen über unbekannte interne Strukturen eines Produkts (meist Datenstrukturen der Software) als Vorbereitung für einen Angriff
  • Offenlegung von Informationen, Schlüsseln oder Sicherheitsattributen im Zuge von Import‑ oder Export-Operationen
  • Aufzeichnen der Produktaktivität oder des Anwenderverhaltens (beispielsweise für eine Replay-Attacke).

Die Gesamtzahl der Werte, die eine Smartcard mit typischen Protokollen wie ISO 7816 T=1 kommunizieren kann, ist 216. Dies entspricht 65.536 verschiedenen Kommandos, von denen die ISO eine Teilmenge als gültige Befehle definiert hat. Aus dieser ISO-Menge legt der jeweilige Entwickler wiederum eine Teilmenge fest und dokumentiert diese Befehle als gültige Anweisungen für die betreffende Karte.

Ein T=1-Testplan sollte die folgenden Tests umfassen:

  • Eine Grobmethode, die alle Werte außerhalb der von der ISO definierten Teilmenge ausprobiert und die Reaktion der Karte prüft (inopportunes Verhalten).
  • Eine weitere Grobmethode, die alle Werte der ISO-Teilmenge, die nicht zur entwicklerdefinierten Teilmenge gehören, ausprobiert und ihre Reaktion prüft (Suche nach nicht dokumentierten Befehlen).
  • Ausprobieren aller vom Entwickler dokumentierten Befehle und Prüfung der entsprechenden Reaktionen.
  • Beeinflussung der Kommunikation durch Senden von Befehlen in veränderten Sequenzen.
  • Unterbrechung der vom System oder vom Produkt kommenden Nachrichten.

Attacken, die nicht dokumentierte Befehle oder Editierbefehle verwenden, sind zwar nah miteinander verwandt, aber dennoch als separate Angriffe einzustufen. Das Herausfinden nicht dokumentierter oder nicht definierter Befehle ist eine unkomplizierte Grobmethode. Der Angreifer arbeitet hier schlicht die gesamte ISO-definierte Befehlspalette ab, um zu prüfen, ob die Karte auf eine oder mehrere Instruktionen antworten, bei denen sie dies eigentlich nicht dürfte.

Da sich die Suche nach undokumentierten Befehlen weitgehend standardisieren und automatisieren lässt, dürfte sie kaum mehr als einen Tag dauern. Sobald alle Varianten von Klasse, Instruktion, Parameter 1 und Parameter 2 aufgezeichnet sind, analysiert der Angreifer, ob sich irgendwo Ansatzpunkte für eine Attacke finden lassen. Wird eine interessante Antwort erkannt, schreibt der Angreifer ein Script, das die ermittelte Schwachstelle nutzt. Dies lässt sich ebenfalls mit einer Überprüfung des Quellcodes machen.

Ob ein undokumentierter Befehl einen Angriffspunkt darbietet, hängt von der Qualität der Software (Separierung von Ausführungsbereichen) und der Art des aufgedeckten Befehls ab.

Editieren von Befehlen

Das Editieren von Befehlen stellt einen Angriffsschritt dar, mit dem der Angreifer versucht, Befehle während der Kommunikationssequenz zu modifizieren und daraufhin zu prüfen, ob die Karte in unerwarteter Weise reagiert (diese Befehle müssen nicht unbedingt in der Schnittstellen-Spezifikation enthalten sein, sondern können auch durch Beobachtung von Befehlssequenzen oder eine Befehlssuche der oben beschriebenen Art aufgedeckt worden sein). Diese Angriffsschritte können Schwachstellen zu Tage fördern und nutzbar machen (z. B. kann durch Editieren zuvor beobachteter Nachrichten ein zu langer Parameter übertragen werden, um eine Pufferüberlauf-Attacke zu starten). Ebenso lassen sich auf diese Weise Timing-Unterschiede ermitteln, die Hilfestellung beim Reverse Engineering der Software leisten können.

Je nach den Sicherheitsmechanismen des API und der Art der Nachricht kann sich das Fälschen einer Nachricht (gegenseitige Authentifizierung, sicherer Kanal, MAC, Chiffrierung, Session Key) einfach oder komplex gestalten. Doch wie bereits erwähnt: wird ein Angriff dieser Art festgestellt, wird dies in der Regel zum Nichtbestehen der Evaluierung führen.


  1. Angriffsszenarien auf Smart-Card-ICs
  2. Beschreibung der Angriffsschritte
  3. Direkte Protokollangriffe
  4. Umgehung von Authentifizierung oder Zugangskontrolle

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu NXP Semiconductor Netherlands B.V.