Drucken

 

Smartcards: Physikalische Sicherheit

Da eine Smartcard normalerweise nicht in einer sicheren Umgebung aufbewahrt wird und relativ leicht in die Hände eines Angreifers gelangen kann, müssen Sicherheitsmaßnahmen gegen die Analyse und Manipulation des Controllers getroffen werden. Smartcards enthalten unter Umständen extrem wertvolle und sensible Daten. Vom Missbrauch einer Chipkarten verspricht sich ein Angreifer mitunter einen beachtlichen Gewinn, so dass er bereit ist, entsprechend große Geldsummen in den Angriff zu investieren. Smartcards müssen also so gestaltet sein, dass auch mit sehr hohem technischen Aufwand keine Analyse möglich ist.

Der folgende Text gibt einen Überblick über wesentliche Angriffsmöglichkeiten und Gegenmaßnahmen. Es kann sich im Ernstfall lohnen, wenn bei der Wahl einer Smartcard die enthaltenen Sicherheitsfunktionen und entsprechende Zertifikate berücksichtigt wurden.


Passive Angriffe
Das Ausspionieren oder Manipulieren von Daten, ohne physikalische Änderungen an der Smartcard vorzunehmen, wird als passiver Angriff (non-invasive attack) bezeichnet. Typische passive Angriffe sind Änderungen der Umgebungstemparatur, des Taktsignals und der Versorgungsspannung, um die Funktionsweise des Controllers zu beeinträchtigen oder Speicherzellen in einen bestimmten Zustand zu versetzen. Temparatur- und Spannungsschwankungen wirken sich unter anderem auf Schreiboperationen im EEPROM-Speicher aus. Zum Beispiel ist es möglich, das Sicherheitsbit des PIC 16C84-Mikrocontrollers zu löschen, indem die Vcc-Spannung auf Vpp - 0,5 V gesetzt wird. Einige Zusfallszahlengeneratoren erzeugen in erhöhtem Maße den Wert 1, wenn die Versorgungsspannung leicht gesenkt wird.

Um derartige Manipulationen zu erkennen, sind Smartcards mit Temparatur-, Frequenz- und Spannungssensoren ausgestattet. Diese Mikrosensoren werden Watchdogs (Wachhunde) genannt. Bei der Überschreitung bestimmter Spannungs- oder Temparaturgrenzen lösen sie einen Reset aus oder machen die Karte unbrauchbar. Allerdings wird die Robustheit des Controllers durch derartige Sensoren eingeschränkt. Z. B. können Bauelemente während der instabilen Phase nach dem Einschalten Schwankungen der Taktfrequenz verursachen und dadurch Fehlalarme auslösen.

Es folgen einige Beispiele für passive Angriffe, die durch Watchdogs und andere Sicherheitsmaßnahmen abgewehrt werden können.

  • Übertaktung: Bei leicht überhöhter Taktfrequenz können hin und wieder Fehler auftreten, die eine Analyse der Funktionsweise des Controllers vereinfachen.
  • Untertaktung: Durch die Verringerung der Taktfrequenz wird das Abhören des Controller-Busses vereinfacht. Die hohen Taktfrequenzen moderner Smartcards machen ein Abhören ansonsten fast unmöglich.
  • Aufzeichnen von Strom- und Spannungskennlinien: Die Kommandos unterscheiden sich teilweise in ihrem Stromverbrauch. Durch das Aufzeichnen von Spannungsschwankungen lassen sich Befehlsfolgen rekonstruieren. Um dies zu verhindern, werden die Kommandos möglichst so implementiert, dass sie gleich viel Strom verbrauchen. Teilweise werden zusätzliche nichtfunktionale Befehle ausgeführt, um die Stromaufnahme konsant zu halten.
  • Aufzeichnen und Analysieren von Befehlsfolgen: Das Mitschneiden von Befehlsfolgen kann durch zufällige Änderungen der Taktfrequenz erschwert werden. Eine weitere Maßnahme ist das Multithreading mit zufälliger Ressourcenzuweisung (randomized multithreading). Dabei werden mehrere Befehlsfolgen parallel ausgeführt, die den Prozessor abwechselnd unterschiedlich lange nutzen. Aus der tatsächlich ausgeführten Befehlsfolge kann der Programmablauf nur sehr schwer rekonstruiert werden.
  • Auslesen von Speicherzellen: Zum Auslesen eines kompletten Speicherbausteines müssen alle einzelnen Speicherzellen nacheinander adressiert werden. Dazu wird häufig der Programmzähler verwendet. Durch die Limitierung dieses Zählers läßt sich ein derartiger Angriff verhindern.

Eine andere Angriffsmöglichkeit besteht darin, über Spannungsänderungen oder elektrische Felder kurzzeitige Fehlfunktionen (glitches) zu verursachen. Dadurch lassen sich z. B. während des Programmablaufes einige Befehle durch bestimmte andere ersetzen. Besonders interessant ist die Manipulation von bedingten Sprunganweisungen, die beim Testen der Authentizität einer Signatur o. ä. verwendet werden. Durch die Erhöhung der oberen Grenze des Adresszählers bei der Ausgabe kann unter Umständen der Speicherbereich nach dem Ausgabepuffer gelesen werden. Ein weiteres Beispiel ist die Verkürzung von Schleifen in kryptografischen Algorithmen, um die Verschlüsselung zu vereinfachen. Es ist auch möglich, Werte während der Übertragung zwischen Prozessorregistern und Speichermodulen zu manipulieren.


Aktive Angriffe
Bei aktiven Angriffen (invasive attacks) wird der Controller aus der Smartcard entfernt. Sie können nur mit hohem Aufwand in entsprechend ausgestatteten Speziallabors durchgeführt werden.


Das Herauslösen des Mikrocontrollers
Nachdem die Karte erhitzt wurde, kann der Controller herausgelöst werden. Einige Controller lassen sich sogar mit einem Messer aus der Karte entfernen. Anschließend wird der Chip mit erwärmter konzentrierter Salpetersäure (>98%) vom Epoxidharz befreit und in einem Ultraschallbad mit Aceton gereinigt. Seine Kontaktflächen können nun mit den Anschlüssen einer Analyse- oder Manipulationsumgebung verbunden werden. Zum Reinigen sind auch Geräte geeignet, die den Chip mit einem Salpetersäure-Dampfstrahl behandeln.


Reverse Engineering
Die Analyse und Rekonstruktion des Funktionsprinzips des Chips wird als Reverse Engineering bezeichnet. Mit einem UV- oder Elektronenmikroskop und einer CCD-Kamera kann die Oberfläche des Controllers abgebildet werden. Auf den stark vergrößerten Bildern sind die Module und Datenleitungen erkennbar. Um die inneren Strukturen der Bauelemente sichtbar zu machen, wird die Metalloberfläche entfernt. Dazu werden die Siliziumoxid-Bahnen mit Flusssäure (HF) in einem Ultraschallbad aufgelöst. Moderne Security Controller sind besonders kompliziert aufgebaut, um die optische Analyse der Architektur zu erschweren. Ausserdem vermeiden es die Hersteller, ähnliche oder standardisierte Anordnungen zu verwenden. Ein Angreifer muss unter Umständen große Teile der Architektur auf Transistorebene rekonstruieren, um das Funktionsprinzip des Controllers zu verstehen. Optische oder kapazitive Sensoren können zur Überwachung der Existenz der Schutzschicht eingesetzt werden.

Die Analyse von modernen Controllern, die aus mehreren Metallschichten bestehen, erfordert einen noch höheren Aufwand. Wenn die Dichte der Bauelemente die Wellenlänge des sichtbaren Lichtes unterschreitet, kann das Reverse Engineering nicht mehr mit optischen Mikroskopen durchgeführt werden.

Eine neuartige Angriffsmethode verwendet FIB-Workstations (FIB: focused ion beam), deren Preis mehrere hunderttausend Euro beträgt. Mit fokussierten Strahlen aus Galliumionen können Strukturen in der Größenordnung von 5 nm in die Chipoberfläche gefräst werden. Auf diese Weise lassen sich die einzelnen Schichten abtragen und das Innere des Chips freilegen. Mit einem speziellen platinbasierten Gas, das mit dem Ionenstrahl auf die Chipfläche aufgebracht wird, lassen sich neue Kontakte herstellen. Eine andere Möglichkeit besteht darin, die Unterseite des Controllers abzutragen und so an die Kontakte der Transistoren zu gelangen.


Das Abhören des Busses
Das Abhören von Bussignalen ermöglicht das Aufzeichnen von Daten und Befehlssequenzen. Die Untersuchung einzelner Leitungen oder Speicherzellen wird als Microprobing (probe: Sonde, Tastgerät) bezeichnet. Derartige Angriffe erfordern den Einsatz eines Spezialgerätes, das Microprobing-Workstation genannt wird. Der Controller wird unter einem Mikroskop mit einer haarförmigen elastischen Sonde von ca. 10 μm Durchmesser untersucht. Auf diese Weise kann elektrischer Kontakt hergestellt werden, ohne die feinen Strukturen des Chips zu zerstören.

Die Leiterbahnen sind mit einer Passivationsschicht (z. B. aus Siliziumoxid) bedeckt, um sie vor Umwelteinflüssen und Ionenmigration zu schützen. Sie kann beispielsweise mit einem Laserschneider entfernt werden. Dazu werden die Leiterbahnen mit einem UV-Laser, der auf dem Kamerastativ des Mikroskops angebracht ist, beschossen. Auf diese Weise werden kleine Stellen der Busleitungen freigelegt. Die Haarsonde kann nun auf dem entstandenen Loch positioniert werden, um das Bussignal abzuhören.

Das Reverse Engineering und das Abhören des Controller-Busses kann durch eine komplizierte Anordnung der Busleitungen (bus scrambling) erschwert werden. Außerdem verwenden viele Hersteller nicht-standardisierte Befehlssätze.


Das Auslesen von Speicherinhalten
ROM-Bausteine enthalten zwar keine Signaturschlüssel oder ähnliche sensible Daten. Allerdings sind für viele andere Angriffe Kenntnisse über Betriebssystem-Routinen und Anwendungsprogramme notwendig, die im ROM gespeichert sind. Die einzelnen Bits eines ROM-Bausteins sind in einer Diffusionsschicht gespeichert. Nachdem die oberen Schichten des Chips mit Flusssäure abgelöst wurden, kann das Bitmuster gelesen werden. Einige ROM-Module verwenden eine Technologie, bei der die Schwellenspannung von Transistoren verändert werden. Zur Analyse derartiger Bausteine ist zusätzlich eine dotierungsabhängige Ätzung notwendig.

Eine andere Möglichkeit ist das Abhören des Ausgangsverstärkers von EEPROM-Bausteinen. Dazu kann ein von IBM entwickeltes Verfahren verwendet werden. Dabei wird ein Kristall aus Lithiumniobat über dem Bauelement platziert. Mit einem UV-Laser kann das Potential der Verstärkereinheit gemessen werden, da die Brechungszahl des Lithiumniobats von der Stärke des umgebenden Feldes abhängt. Ein möglicher Schutz vor derartigen Angriffen ist eine feste Verbindung des Siliziums mit der Schutzschicht, so dass bei deren Entfernung das Bauelement zerstört wird.


Fazit
Die vorgestellten Angriffsveruche wurden in hochspezialisierten Labors durchgeführt, um eventuelle Schwachstellen aufzudecken. Die gewonnenen Ergebnisse werden bei der Entwicklung neuer Controller und Karten berücksichtigt. Sie können sich also darauf verlassen, dass die sensiblen Daten auf Ihrer Signaturkarte nicht in falsche Hände gelangen.