Mit dem Beobachten der Nachrichtensequenzen lässt sich folgendes erzielen:
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:
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.