Die Hacker kommen Angriffsszenarien auf Smart-Card-ICs

Wer „sichere“ Smart-Cards bauen möchte, muss sich mit den möglichen Angriffs-Szenarien der Hacker auseinandersetzen. Diese können durch Manipulationen an der Hardware oder Software erfolgen. Im folgenden sind einige gebräuchliche Software-Attacken aufgezeigt.

Die meisten Angriffsbeispiele auf Smart-Cards setzen voraus, dass für einige oder alle Teile des Angriffs bestimmte Hardware-Attacken ausgeführt werden. Es steht jedoch außer Zweifel, dass viele relevante Angriffe auch ausschließlich auf die Software erfolgen können. Am Anfang solcher Angriffe steht häufig eine Analyse des Quellcodes.

Allgemein ist zu betonen, dass die meisten Software-Attacken ihren Ursprung in Fehlern (Bugs) im Designer oder in der Implementierung des TOE ("Target of Attack") haben. In diesen Fällen hat der Fehler meist zur Folge, dass die Anforderungen einer oder mehrerer Vorschriften der ADV-Familie nicht erfüllt werden (z. B. ADV_IMP.1.2E: Der Prüfer hat festzustellen, dass die am wenigsten abstrakte TSF-Repräsentation eine präzise und umfassende Instanziierung der funktionalen Voraussetzungen für die TOE-Sicherheit darstellt). Ein Fehler dieser Art hat demnach zur Folge, dass das TOE die Evaluierung nicht besteht (in der Regel dürfte eine Abänderung des TOE zum Beheben des Fehlers erforderlich sein).

In einigen anderen Fällen reicht die Spezifikation eines Designs möglicherweise nicht aus, um die Sicherheitsvorgaben des TOE zu erfüllen (wenn beispielsweise eine Protokollspezifikation kritische Schwachstellen enthält). Auch hier wird das TOE die Evaluierung nicht bestehen).

In diesem Abschnitt wird deshalb eine Reihe von Angriffsschritten aufgeführt, mit deren Hilfe sich Softwarefehler aufdecken lassen. Es werden allerdings keine Beispiele für Angriffspotenziale angegeben, denn beim Aufdecken irgendwelcher Fehler müssen diese ohnehin korrigiert werden, wenn das TOE die Evaluierung bestehen soll.

Im folgenden Text wird davon ausgegangen, dass zunächst eine Attacke zum Einholen von Informationen ausgeführt wird. Wir stellen dazu fünf spezifische Angriffstechniken vor, die Schwachstellen in der Software ausnutzen können:

  • Editieren von Befehlen
  • Direkte Protokollangriffe
  • Man-in-the-Middle-Attacken
  • Replay-Attacken
  • Pufferüberläufe

Die Angriffe sind logischer Natur, und die Testumgebung besteht aus einem an einen PC angeschlossenen Smartcard-Leser. Auf dem PC laufen eine Kommunikationssoftware, ein Protokoll-Analyser sowie einige Entwicklungswerkzeuge zum Modifizieren der Kommunikation. Diese Ausstattung wird als Standard-Equipment angesehen, denn die Tools sind als Freeware im Internet erhältlich und lassen sich recht einfach an die Anforderungen eines Angreifers anpassen.

Zur Ausführung von Angriffen dieser Art muss folgendes vorhanden sein:

  • Eine Möglichkeit, Nachrichtensequenzen abzuhören (Lesegerät, Traffic Analyser)
  • Eine Möglichkeit zum Erstellen von Nachrichten (Informationen über das externe API, Mustergenerator)
  • Eine Möglichkeit zum unerkannten Unterbrechen von Nachrichten (protokollabhängig).

Das Einrichten einer Testumgebung und das Identifizieren eines Angriffs ist recht einfach, denn die Tools sind standardmäßig und die Befehle entsprechen häufig dem ISO-Standard und sind daher allgemein bekannt. Wird ein proprietärer Befehlssatz verwendet, ist zur Interpretation der Kommunikation etwas mehr Fachwissen erforderlich. Dies dürfte dennoch meist eher unkompliziert sein, und das Prinzip "Sicherheit durch Verborgenheit" kann kaum als wirksamer Schutz vor diesen Angriffen angesehen werden.

Einholen von Informationen

Kommunikationsprotokolle sind von ihrem Wesen her stets anfällig gegen das Heraussickern von Informationen, denn schließlich sind sie für die Übertragung von Informationen konzipiert. Der hier behandelte Angriffstyp unternimmt den Versuch zur Nutzung der Protokolle auf eine vom Entwickler nicht vorgesehene Art und Weise, indem zunächst Informationen eingeholt und anschließend die Kommunikation so abgewandelt wird, dass der Zugriff auf geheime Daten und andere Ressourcen möglich ist.

Der eigentliche Angriff ist in der Regel nicht-invasiv und hat das Ziel, Informationen über die von der Smartcard unterstützten Kommunikationsbefehle zu erlangen oder aus Nachrichtensequenzen Informationen zu extrahieren, die sich für andere Angriffe nutzen lassen. Hierbei wird davon ausgegangen, dass diese Informationen nicht in den Designdokumenten enthalten sind, sondern dass es sich um undokumentierte Reaktionen auf Befehle handelt. Diese Informationen können den Angreifer anschließend in die Lage versetzen, die Interaktion zu modifizieren oder Informationen (z. B. Anwenderdaten oder Schlüssel) mithilfe von Schwachstellen in der Software-Implementierung offenzulegen. Dieser Angriffsschritt ist normalerweise keine vollständige Attacke, mit der bereits geheime Daten aufgedeckt werden, auch wenn dies in bestimmten Fällen möglich sein kann.

Resultat dieses Angriffsschritts ist vielmehr das Einholen von Informationen über die Arbeitsweise des TOE, verbunden mit einer möglichen Offenlegung geheimer Daten (die Offenlegung geheimer Daten auf diese Weise dürfte normalerweise als hinreichend gravierende Schwachstelle angesehen werden, die eine erfolgreiche Evaluierung des TOE ausschließt). Mit einer Analyse der gesammelten Daten wird überprüft, ob sich diese als Basis für einen Angriff mit einem der anderen in diesem Dokument beschriebenen Mechanismen eignen, um dem TOE geheime Daten zu entlocken. Den Erfolg seiner Attacke kann der Angreifer feststellen, indem er die Antworten der Smartcard während der Kommunikation auswertet.