Einführung

Dies wird eine kurze Exkursion ins Land der Chipkarten und der möglichen Alternativen. Wie Chipkarten funktionieren, wie sicher sie sind und welche Unterschiede es gibt. Jeder wird schon mal eine Chipkarte in Form von einer Telefonkarte, Handykarte (SIM), Krankenversichertenkarte, Zugangskarte oder Geldkarte in der Hand gehabt haben. Die Einsatzgebiete sind wie die Chpkartentypen sehr weit gestreut. Die Leistungsdaten der kleinen Plastikkarten hängen stark vom geplanten Einsatz ab. Zunächst sind Chipkarten nichts anderes als kleine Plastikkarten mit integrierten Schaltkreis. Diese können rein passiv als Speicher für Informationen fungieren oder auch aktiv mit Prozessor (CPU) für komplexere Aufgaben. Die Kartenabmessungen sind nach ISO 7816 normiert, damit diese in die entsprechenden notwendigen Kartenlesegeräte passen.

Einsatzgebiete

Die Einsatzgebiete sind so groß, dass wir hier nur einen Teil der Möglichkeiten zeigen können:

  • Telefonkarten - einfache Einweg-Speicherchipkarten.
  • Handykarten (SIM-Karte) - komplexe Prozessorchipkarte, die vom Mobilfunkanbieter mit den notwendigen Daten personalisiert ist, damit der Anwender damit telefonieren kann.
  • Krankenversichertenkarte - einfache Speicherchipkarte mit einem grundlegenden Datensatz, der Patientendaten der Krankenversicherung beinhaltet.
  • Zugangs- oder Zutrittskarte - können Speicherchipkarten oder auch Prozessorchipkarten sein.
  • Geldkarte - komplexe Prozessorchipkarte, mit der auch "Bargeld" auf den Chip geladen werden kann.
  • Signatur- oder Verschlüsselungskarte - komplexe Prozessorchipkarte, mit der Authentifikationen ausgeführt und Signatur- oder Verschlüsselungsvorgänge ausgeführt werden können.

Das praktische an den Karten ist, dass man sie leicht bei sich tragen kann und auch recht robust gegen Umwelteinflüsse oder mechanische Beanspruchung sind. Ein Problem bei häufiger Anwendung (stecken und ziehen vom Kartenleser) ist, dass die Kontakte beschädigt werden und korrodieren oder keinen einwandfreien Kontakt mehr im Kartenleser haben. Für diesen Zweck wurden später Kontaktlose Chipkarten (RFIDs) auf den Markt gebracht, die keine mechanische Kontakteinheit mehr verwenden. Diese Karten sind zum Teil gar nicht mehr sichtbar mit einem Chip versehen und werden über einen sogenannten RFID Kartenleser (Funk mit Induktion für Stromversorgung) angesprochen.

Prozessorchipkarten können auch einfach als Schlüssel (Sicherheitstoken) beim Zugang am PC (Logon) oder für die Verschlüsselung von Daten eingesetzt werden. Die Verschlüsselungssoftware der Firma abylonsoft - Dr. Thomas Klabunde!  unterstütz neben einfachen Passwortschutz auch Schlüsselkarten (z. B. EC-Karte) oder USB-Sticks als Schlüssel. Weitere Infos zum Einsatz und Support von Chipkarte finden sie hier!

Typen und Unterschiede

Im Vorfeld wurden schon Typen von Chipkarten genannt. Die folgende Liste zeigt die grundlegenden Unterschiede:

  • Speicherchipkarte
    Die Speicherchipkarte ist die einfachste Ausführung einer Chipkarte, die nur aus einem Speicher besteht. Je nach Einsatz kann dieser Speicher nur gelesen oder gelesen und beschrieben werden. Diese Karte ist nur für einfachste Aufgaben ausgelegt und kann nicht die komplexen Vorgänge einer Prozessorchipkarte ausführen.
    Erhältlich als kontaktbehaftete oder kontaktlose RFID-Chipkarte!
  • Prozessorchipkarte
    Im Gegensatz zur Speicherchipkarte verfügt die Prozessorchipkarte über eine CPU, RAM und einem Betriebssystem (COS), mit dem komplexere Aufgaben ausgeführt werden können. Prozessorchipkarten können mittels eines kryptografischen Authentifikationsverfahrens gegen unbefugten Zugriff gesperrt werden. Neben der reinen Authentifikation mittels PIN kann mit diesen Karten auch signiert (digital unterschrieben) und verschlüsselt werden.
    Erhältlich als kontaktbehaftete oder kontaktlose RFID-Chipkarte!

Speicherchipkarten sind vergleichbar mit einfachen Speicher-USB-Sticks. Jedoch lassen sich nicht ansatzweise soviel Daten wie auf einem USB-Stick speichern. Der Speicher ist meist auf einige Kilobytes begrenzt. Das reicht aber für einfache Personalisierungsdaten aus.
Prozessorchipkarten sind dagegen wie kleine Computer mit eigenem Betriebssystem (z. B.: BasicCard, CombOS, CardOS, JCOP, MTCOS, MultOS, SECCOS, Sicrypt, STARCOS, TCOS) und dem entsprechenden Befehlssatz PDU und APDU für die Kommunikation mit der Karte.


Die folgende Abbildung zeigt den internen schematischen Aufbau einer Speicherchipkarte: Schaubild Speicherchipkarte


Die folgende Abbildung zeigt den internen schematischen Aufbau einer Prozessorchipkarte: Schaubild Prozessorchipkarte

Hardware für Chipkarten

Um mit einer Chipkarte überhaupt arbeiten zu können, sind die entsprechenden passenden Lesegeräte notwendig. Bei Handys ist das Lesegerät direkt verbaut, wo die SIM-Karten reingeschoben wird. Fest verbaute Chipkartenleser finden sich auch in PCs und Laptops.

Unabhängig davon, muss die Chipkarte vom Protokoll, Art und Type (wie Kommuniziere ich mit dem Leser) zum Kartenleser passen. Einen RFID-Chipkarten (Funkkarte) mit einem kontaktbehafteten Kartenleser zu verwenden macht keinen Sinn. Des weiteren muss der Kartenleser auch die notwendigen Treiber mitbringen, damit vom PC und dessen Betriebssystem auf den Kartenleser und Karte zugegriffen werden kann. Die meisten Hersteller bieten zu ihren Kartenlesern die notwendigen Treiber komfortable in einem Setup mit, sodass diese sich einfach unter Windows installieren lassen. Besonders günstig ist es, wenn die Hersteller direkt in Windows die PC/SC-Schnittstelle unterstützten, weil sehr viele APPs diese Schnittstelle für die Kommunikation mit den Chipkarten verwenden. Eine Chipkarte mit passenden Lesegerät, Treiber und PC/SC-Schnittstelle für den Windows-PC lässt kein Auge trocken und bietet alles notwendige an.

Die Firma abylonsoft bietet für interessierte Nutzer diverse Chipkarten und Chipkartenleser (kontaktbehaftet oder RFID) für diverse Protokolle an, die auch mit ihrer Software zusammenarbeiten. Hier gibt es Packetangebote für abylon LOGON, um sich mittels einer Chipkarte an den PC anzumelden. Für weitere Infos besuchen sie bitte die Hardwareangebote der Firma abylonsoft - Dr. Thomas Klabunde.

Technische Details und Sicherheit

Hier kommen für interessierte Nutzer noch ein paar technische Details über Speicher- und Prozessorchipkarten:

  • Sicherheit
    Wenn es sich um eine einfach Speicherchipkarte handelt, ist diese gegen Manipulation oder Auslesen nicht besonders gesichert. Dies ist häufig in diesen Fällen aber auch nicht notwendig.
    Anders sieht es bei Prozessorchipkarten aus, wo die Sicherheit sehr wichtig ist. Dies betrifft zum Beispiel bei einer Signaturkarte den privaten Schlüssel (geheim), dass dieser nicht einfach ausgelesen werden kann. Die Sicherheit übernimmt hier das Betriebssystem, was sicherheitskritische Funktionen erst nach korrekter PIN und Authentifikation bereitstellt. Sicher gibt es Möglichkeiten auch eine Prozessorchipkarte zu knacken, aber dies ist extrem Aufwendig und können sich nur Leute mit viel Geld und einer guten Infrastruktur leisten.
  • Speicher
    Als Festwertspeicher werden EPROMS und EEPROMS für Programme und Daten verwendet. Diese EEPROM-Zellen können mindestens 10.000 mal umgeladen werden. Die Prozessorchipkarten enthalten daneben noch einige hundert Bytes an RAM. Der Festwertspeicher ist logisch in mehrere Bereiche aufgeteilt. Neben einem Common Data Field (CDF), das z.B. Name, Geburtsdatum, Kartennummer enthält, gibt es ein oder mehrere Applikation Data Fields (ADF). Diese enthalten Programme und Daten für jeweils eine Kartenapplikation.
    Die Speicherelemente von Chipkarten sind so realisiert, dass der Speicher nicht mit Elektronenmikroskopen ausgelesen werden kann. Ferner ist es praktisch unmöglich einen in die Plastikkarte eingebetteten Chip herauszulösen, ohne ihn dabei zu zerstören.
  • Zugriffslogik
    Durch eine Zugriffslogik wird der Zugriff auf einzelne Datenbereiche geregelt. So kann für Datenfelder bestimmt werden, welche Applikation (oder welche Stelle) die Daten lesen, ändern oder neuschreiben darf (Speicherschutz). Diese Zugriffslogik kann festverdrahtet oder im Betriebssystem implementiert sein.
  • Betriebssystem
    Prozessorchipkarten enthalten ein elementares Betriebssystem (COS). Es ist für Teile des Speicherschutzes zuständig und kann Standardfunktionen anbieten. Hauptaufgabe ist die Realisation der Kommunikationsprotokolle sowie die Auswahl und der Zugriff auf die verschiedenen Kartenanwendungen bei Multifunktionskarten.
  • Standardfunktionen
    Ein Satz von Standardfunktionen (v.a.: Kryptoverfahren, Kommunikations- und Authentifizierungsmethoden) soll die Erstellung von Chipkartenapplikationen erleichtern. Ein Problem heutiger Chipkarten ist das Fehlen echter Zufallsgeneratoren, wie sie für Kryptoverfahren benötigt werden.
  • Herstellung und Personalisierung
    Im allgemeinen wird jede Phase von einer auf die jeweilige Arbeit spezialisierten Firma durchgeführt. Beim Herstellen der Halbleiter ist insbesondere bei Karten mit festverdrahteter Sicherheitslogik auf eine gute Betriebsinterne Sicherheit zu achten. Damit ein korrekter Endtest durchgeführt werden kann, muss der komplette Speicher frei zugänglich sein. Erst nach dem Endtest wird der Chip durch einen Transportcode gesichert. Danach ist der Zugriff auf den Kartenspeicher nur für berechtigte Stellen, die den Transportcode kennen, möglich. Ein Diebstahl fabrikneuer Halbleiter bleibt damit ohne Folgen. Berechtigte Stellen können Personalisieren bzw. Kartenausgeber sein. Für das Einbetten und Bedrucken sind keine weiteren Sicherungsfunktionen notwendig. Die betreffenden Firmen brauchen den Transportcode nicht zu kennen. Im allgemeinen überträgt nicht der Kartenhersteller sondern die ausgebende Stelle (z.B. Bank) die personenspezifischen Daten in die Karte. Diesen Vorgang nennt man Personalisierung. Für sie ist die Kenntnis des Transportcodes notwendig. Das Ausgeben der Karte, also der Transport von der ausgebenden Stelle zum Karteninhaber, stellt ein eigenes Sicherheitsproblem dar. Wirklich sicher ist eigentlich nur die persönliche Ausgabe an den Karteninhaber gegen Unterschrift und Vorlage des Personalausweises. Ein Versand per Post ist zwar oft wirtschaftlicher aber auch ziemlich unsicher. Ein Problem ist auch das Übermitteln der PIN an den Karteninhaber, hier muss die gleiche Sorgfalt wie für die Karte gelten.
  • Normungen
    • ISO 7810-7813 - Normen für Identifikationskarten (Plastikkarten): Physikalische Eigenschaften, Hochprägung, Magnetstreifen, Aufzeichnungstechnik, Lage der Elemente, Nummernsystematik
    • ISO 7816-1,2 - Physikalische Eigenschaften von Chipkarten, Abmessungen und Lage der Kontakte
    • ISO 7816-3 - Elektrische Eigenschaften der Kontakte, Kommunikationsprotokolle ISO 7816-4 (vorl.) Kommunikationsinhalte, Datenstruktur der Chipkarte, Sicherheitsarchitektur, Zugriffsmechanismen
    • ISO 7816-5 - (vorl.) Aufbau von Applikationen, Wahl und Ausführung von Applikationen, Registrierung von Applikationen (Nummernsystematik)
    • ETSI/GSM 11.11 - Standard für das digitale Mobilfunknetz GSM (D-Netz) Damit sind insbesondere alle OSI-Schichten von der Physical-Layer bis zur Application-Layer genormt. Der Normungsvorgang ging weltweit sehr schnell vor sich, dies dokumentiert das große Interesse an Chipkarten. Durch die Normung sind bereits heute zukunftssichere Chipkartenanwendungen möglich. [2] Wichtig ist dies vor allem für die Multifunktionskarten.

Chipkarten Operations System (COS) PDUs und APDUs

Die Chipkarten / Smartcards verfügen alle über ein Betriebssystem (COS), dass für die Kommunikation unbedingt notwendig ist (vgl. DOS, Linux oder Windows bei PCs)) Das Betriebssystem ist die Grundlage für die grundlegenden Ein- / Ausgabeoperationen. Je nach Kartentype und Hersteller ist der Befehlssatz mehr oder weniger umfangreich. An dieser Stelle können wir nur einen kurzen Einblick in die Befehlssätze (PDUs) und deren Aufbau geben. Die Kommunikation mit der Chipkarte über den Kartenleser kann dabei über eine CT32-API (veraltet) oder am besten über die PS/SC-Schnittstelle ausgeführt werden.

COS-Kurzübersicht

Abkürzungen:

ATR Answer to reset
CHV Card Holder Verification - PIN/Passphrase
DF Dedicated file
EF Elementary file
MF Master file (also EF)
FCI File control information

Aufbau einer CAPDU (Command Application Protocol Data Unit):

CAPDU CLA INS P1 P2 Lc Data Le
Bezeichnung ClassByte InstructionByte Parameter1 Parameter2 Legnth of Command DataField Length of expected data
Bedeutung Kommando - Klasse Kommando - Prozedur Befehls - Optionen Befehls - Optionen Länge des Datnfelds Daten max. Länge der Antwortdaten

Aufbau einer RAPDU (ResponseApplicationProtocolDataUnit):

RAPDU Data SW1 SW2
Bezeichnung DataField Statusbyte1 Statusbyte2
Bedeutung Antwortdaten des Kommandos Byte1 des Statusworts Byte2 des Statusworts

Das Format jeder ICCAnweisung und Antwort muss sich an obiger Tabelle orientieren!

COS-Kommando INS/InstructionByte Bedeutung
select 0xA4 Öffnen einer Applikation und/oder Datei
read binary 0xB0 Daten aus der Chipkarte auslesen
update binary 0xD6 Daten in die Chipkarte schreiben
read record 0xB2 Daten in Form von Records lesen
update record 0xDC Daten in Form von Records schreiben
create file 0xE0 Datei auf der Chipkarte anlegen
delete file 0xE4 Datei auf der Chipkarte löschen
verify 0x20 PIN oder Password prüfen
change pin 0x24 PIN oder Password ändern
unblock pin 0x2C Fehlbedienungszähler (FBZ) mit PUK zurücksetzen
null pin - -
internal authentication (ICC gegenüber Host) 0x88 Authentisierung der ICC gegenüber dem Host
ask random (Karte liefert Zufallszahl) 0x84 Zufallszahl von der ICC anfordern
external authentication (Host gegenüber ICC) 0x82 Authentisierung des Host gegenüber der ICC
close application 0xAC Schließen einer Applikation und/oder Datei
get session key 0x52 DES oder DES3-SessionKey lesen
signature (Digitale Signatur) 0x54 Daten mit der ICC signieren/verschlüsseln
crypt (Symmetrische und asymmetrische Verschlüsselung) 0x56 Daten mit der ICC verschlüsseln
get response 0xC0 -
set key (Schlüsselauswahl) 0xA8 TransferSchlüssel definieren
erase binary 0x0E -
manage channel 0x70 -
envelope 0xC2 -
get data 0xCA -
put data 0xDA -
append record 0xE2 -

Darüberhinaus existieren weitere COS-Kommandos, die stellenweise absichtlich vom Hersteller nicht dokumentiert sind. Diese nicht dokumentierten Kommandos betreffen häufig die Sicherheitsfunktionen der Chipkarte. Jedoch kann jeder Interessierte diese Kommandos im gewissen Rahmen mit der Methode "Try and Error!" herausfiltern.

Liste der möglichen StatusbytesSW1 / SW2:

Code Bedeutung
90 00 No further qualification - command successful - Bei asyncronen Karten
90 01 command successful - Bei syncronen Karten
61 xx SW2indicates the number of response bytes still available. Use GET RESPONSEto access this data.
62 xx Warning - state unchanged
62 00 Warning - no information provided
62 81 Warning - part of returned data may be corrupt
62 82 Warning - end of file/record reached (bad cmd)
62 83 Warning - selected file invalidated
62 84 Warning - bad file control information format
63 xx Warning - state unchanged
63 00 Warning - no information provided
63 81 Warning - file filled up with last write
63 C x Warning - counter value is x
64 xx Error - state unchanged
65 xx Error - state changed
65 00 Error - no information provided
65 81 Error - memory failure
66 xx Security Error
67 00 Check Error - wrong length
68 xx Check Error - CLA function not supported
68 00 Check Error - no information provided
68 81 Check Error - logical channel not supported
68 82 Check Error - secure messaging not supported
69 xx Check Error - command not allowed
69 00 Check Error - no information provided
69 81 Check Error - command incompatible with file structure
69 82 Check Error - security status not satisfied
69 83 Check Error - authentication method blocked
69 84 Check Error - referenced data invalidated
69 85 Check Error - conditions of use not satisfied
69 86 Check Error - command not allowed (no current EF)
69 87 Check Error - expected SM data objects missing
69 88 Check Error - SM data objects incorrect
6A xx Check Error - wrong parameters
6A 00 Check Error - no information provided
6A 80 Check Error - incorrect parameters in data field
6A 81 Check Error - function not supported
6A 82 Check Error - file not found
6A 83 Check Error - record not found
6A 84 Check Error - not enough memory space in the file
6A 85 Check Error - Lc inconsistant with TLV structure
6A 86 Check Error - inconsistant parameters P1-P2
6A 87 Check Error - Lc inconsistant with P1-P2
6A 88 Check Error - referenced data not found
6B 00 Check Error - wrong parameters
6C xx Check Error - wrong length - xxis the correct length
6D 00 Check Error - instruction code not supported or invalid
6E 00 Check Error - Class not supported
6F 00 Check Error - no precise diagnosis

Angriffe

Allgemein

Welche Bestandteile beinhaltet die Chipkarte?

Eine typische Chipkarte besteht aus einem 8 Bit Mikroprozessor mit einem ROM, EEPROM und RAM. Dabei sind die Schlüsseldaten im EEPROM abgelegt.

Wie wird nun eine Speicherzelle gelöscht?

Für das Löschen einer Speicherzelle ist eine relativ hohe Spannung notwendig. Fehlt diese Spannung beim programmieren (z. B. Unterbrechung), dann werden die Daten im Speicher nicht gelöscht. Die alten Chipkarten erhielten die notwendige Programmierspannung über einen speziellen Anschluss vom Host. Diese Schwäche wurde jedoch von Hackern genutzt, um z. B. beim PayTV den Chip bei der Initialisierung der Kanäle zu manipulieren. Dabei wurde einfach der Anschluss der Programmierspannung durch Abkleben oder Einbau einer Diode im Decoder zum Chip isoliert. Dieser Fehler wurde jedoch erkannt und die neuen Karten generieren heute die benötigte Programmierspannung von 12V aus der normalen Versorgungsspannung von 5V. Die geschieht mit einem Oszillator und einem Dioden/Kondensatornetzwerk die auf der Chipkarte enthalten sind. Dies erschwärt den Angriff enorm, der nur noch mit speziellen Geräten (Laser, Ultraschall, gebündelter Ionenstrahl) durchgeführt werden kann.  

Non-invasive attacks

Wie läuft diese Form des Angriffs ab?

Der EEPROM einer Chipkarte reagiert empfindlich auf ungewöhnliche Temperaturen und Spannungen während des Beschreibens (z. B. der PIC16C84 Mikrokontroller). So kann unter anderem das wiederholte Schreiben auf das Sicherheitsbit durch langsames absenken der VCC zur VPP - 0.5V dieses zurücksetzen, ohne die Daten zu löschen. 

Beim Sicherheitsprozessor DS5000 kann ein kleiner Abfall der Spannung zum Zurücksetzen des Sicherheitsbits führen, ohne die Daten zu löschen.

Aus diesem Gründen haben einige Sicherheitsprozessoren Sensoren die einen Reset auslösen, falls die Spannung sinkt oder andere Umgebungseinstellungen nicht in Ordnung sind. Jedoch führt jeder Sensor zu einem Rückgang der Robustheit. Zum Beispiel gibt es ein Smartcard Prozessorfamilie welche einen Sensor für zu geringen Prozessortakt besitzen. Dadurch soll ein Einzelschrittangriff verhindern werden. Da jedoch durch das Ein- und Ausschalten der Karte die Frequenzen instabil sind, bis sich die Schaltkreise stabilisiert haben, kam es immer wieder zu Fehlalarmen. Daraufhin wurde dieses Feature vom Betriebssystem nicht mehr ausgenützt. Es liegt nun in der Hand des Anwendungsprogrammierers ob er dieses Sicherheit wieder implementiert. Da auch einige von den Programmieren die Zuverlässigkeit nicht gefährden wollten, gibt es viele Karten die den Einzelschrittmodus straflos zulassen.

Aus ähnlichen Gründen wurden die Unter- und Überspannungssenoren so konstruiert, dass sie bei sehr schnellen Spannungsschwankungen nicht ansprechen. Deshalb können schnelle Signale von verschiedener Art die Schutzmechanismen übergehen, ohne das die geschützten Daten zerstört werden. Diese Art der Angriffe sind bekannt für eine große Anzahl von Geräten.

Schnelle Spannungs- und Taktänderungen können ebenso bei einigen Prozessoren genützt werden um einzelne Befehle decodieren zu können. Jeder Transistor und seine Anschlüsse erscheinen nach außen, wie ein RC Element mit einer charakteristischen Zeitverzögerung. Der maximal mögliche Takt ist durch das Element bestimmt, das die längste Verzögerung aufweist. In ähnlicher Weise hat jedes Flipflop ein Zeitfenster (einige Picosekunden) in dem es die Eingangsspannung sammelt und den Ausgang entsprechend schaltet. Dieses Fenster ist durch seinen internen Aufbau bestimmt. Die Größe des Fensters ist bleibt jedoch für ein Gerät bei einer bestimmten Temperatur und einer gegebenen Spannung immer gleich.

Wird nun ein viel kürzerer Taktpuls als der normale oder eine sich sehr schnell ändernde Eingangsspannung angelegt, so betrifft dies nur die Transistoren innerhalb des Prozessors. Durch Veränderung der Parameter werden vom dem Prozessor eine Vielzahl von verschiedenen, unterschiedlichen Befehlen ausgeführt. Dies können auch Befehle sein, welchen vom Mikroprogramm nicht unterstützt werden. Obwohl man die Eigenschaften des jeweils ausgeführten Befehls nicht kennt, kann man relativ einfach eine systematische Suche ausführen.

Eine typische Prozedur innerhalb eines Sicherheitsprozessors ist eine Schleife, welche den begrenzten Inhalt eines Speichers auf den seriellen Port ausgibt:

  1. b = answer_address
  2. a = answer_length
  3. if (a == 0) goto 8
  4. trnasmit (*b)
  5. b = b + 1
  6. a = a – 1
  7. goto 3
  8. ...

Man kann nun nach einer Eingangseinstellung suchen bei der der Programmzeiger wie gewöhnlich erhöht wird, und der Befehl in Zeile 3 ausführt oder die Schleifenvariable in Zeile 6 zu einem beliebigen Wert erniedrigt.

Die richtige Eingangseinstellung finden bedeutet, das diese exakt wiederholt werden können. D.h. alle Signale die gesendet und empfangen werden, müssen zeitlich exakt nach dem Reset eines Tests ausgeführt werden. Es wird solange getestet, bis ein Byte an den Ausgang gesendet wird. Die Wiederholung mit denselben Einstellungen führt dazu, dass der gesamte Speicher ausgegeben wird. Wenn man Glück hat befindet sich der gesuchte Schlüssel darin.

Ausgabeschleifen sind nicht die einzigen Angriffsziele. Andere prüfen Passwörter, Zugriffsrechte und Protokollantworten, bei denen eine Veränderung einer einzelnen Anweisung den gesamten Schutz zusammenbrechen lässt.

Physical attacks

Wie läuft diese Form des Angriffs ab?

Physikalische Attacken auf Mikrokontroller sind meistens einfach. Zum Beispiel kann das Sicherheitsbit auf einigen Geräten mit EPROM, mittels UV Licht das auf die Sicherheitsbitzelle gerichtet wird, zurückgesetzt werden. Voraussetzung ist hierfür ein genügend großer Abstand der Zelle vom Rest des Speichers.

Aktuelle Smartcards sind schwieriger anzugreifen, jedoch nicht viel schwieriger. Sie haben generell nur einen leichten Schutz um den direkten Zugriff auf das Silizium zu verhindern. Ein Manager einer Herstellerfirma behauptete, dass von den Kunden keine Nachfrage nach verbesserten Methoden besteht. Deswegen sind meistens nur ein kapazitiver- oder ein optischer Sensor, der das Vorhandensein der Schutzschicht überprüft, vorhanden. Die vorher besprochenen Nachteile die durch zusätzliche Sensoren entstehen in Bezug auf die Zuverlässigkeit, veranlasst einige Programmierer auf diese Features zu verzichten. Falls diese jedoch implementiert sind, so können die Sensoren relativ leicht gefunden und übergangen werden.

Der typische Chipmodul besteht aus einer dünnen Kunststoffschicht auf der beidseitig auf einem Quadratzentimeter die Kontakte angebracht sind. Die auf der fertigen Karte sichtbare Seite schließt den Kontakt mit dem Kartenleser, die andere Seite ist mittels dünner Aluminium- oder Golddrähten mit der Siliziumschicht verbunden. Die Chipseite ist mit einer Epoxyd-Harz bedeckt. Dieses Chipmodul wird schließlich in die Karte eingegossen welche durch entsprechende ISO Normen festgelegt sind.

Den Chip zu entfernen ist leicht. Zuerst mit einem scharfen Messer die hintere Chipabdeckung aus Kunststoff solange entfernen, bis die Epoxyd-Harz sichtbar wird. Danach einige Tropfen von Salpetersäure ("fuming nitric acid", >98% HNO3) auf das Harz aufgetragen. Danach einige Minuten warten bis das Harz sich aufzulösen beginnt. Der Prozess kann beschleunigt werden, indem die Säure mit einem Infrarotstrahler angewärmt wird. Bevor zuviel Harz aufgelöst wird und der Rest angegriffen wird, die Karte in einem Azeton Bad von dem restlichen Harz und der Salpetersäure befreien. Diese Prozedur wird fünf bis zehnmal wiederholt, bis die Siliziumoberfläche freigelegt ist. Der Chip kann dann gewaschen werden und ist noch voll funktionsfähig, außer einer der Anschlussdrähte wurde beschädigt.

Funktionstest mit Pay-TV Karten und vorausbezahlte Telefonkarten haben gezeigt, dass die EEPROM-Inhalte durch die Säure nicht beschädigt wurden. Es sind keine höheren Chemiekenntnisse als die des Chemieunterrichts notwendig. Die Ausrüstung ist leicht zu bekommen. Einige Studenten haben diesen Versuch bereits erfolgreich wiederholt. Salpetersäure ist eine aggressive Säure. Sie muss mit großer Vorsicht verwendet werden. Vor allem wenn gleichzeitig mit leicht entzündlichen Materialien wie mit Azeton hantiert wird. Es greift jedoch nicht die Silizium oder Goldoberflächen des Chips an. Die Aluminiumflächen oxidieren lediglich leicht. Das Azeton ist ebenfalls geeignet, da es bereits bei der Herstellung der Chip zum Reinigen der Oberflächen verwendet wird.

Es gibt auch kommerzielle Maschinen, die die Chips von ihrer Oberfläche mit einem HNO 3Dampfstrahl befreien können. Dieser Strahl entfernt nicht nur die Abdeckung sondern gleichzeitig die Lösungsreste. Durch diese Methode werden die Abdeckschichten besser entfernt, jedoch verbrauchen die Maschine eine große Menge an Säure und müssen nach dem Gebrauch gesäubert werden. Deshalb werden die Chips sogar in professionellen Labors nach der zuerst geschilderten Methode extrahiert, solange es sich nur um ein paar Exemplare handelt.

Die meisten Chips besitzen eine Schicht aus "silicon nitride" (Siliziumnitrid) oder einer "silicon dioxid" (Siliziumdioxid). Diese schützt das Silizium vor Umwelteinflüssen und dem Wandern von Ionen. Diese Schicht wird nicht von der Salpetersäure angegriffen. Labors zur Chipanalyse benutzen deswegen das Verfahren "dry etching with hydrogen fluoride" (trockenes ätzen mit Fluorwasserstoff). Dies ist ein Verfahren, das von Amateuren nicht leicht nachvollzogen werden kann und auch sehr gefährlich ist (Durchdringt rasch die Haut und verursacht tiefe, schlecht heilende Gewebszerstörungen). Dazu wird das trockene Fluorwasserstoffgas auf die Beschichtung des Chips geblasen. Dort verbindet es sich mit Feuchtigkeit zur ätzenden Fluorwasserstoffsäure (Flußsäure) und wandelt das feste Siliziumdioxid zum gasförmigen Siliziumtetrafluorid um (SiO 2+ 2HF <=> SiF 4+ 2H 2O). Dabei wird mit einem hohen Überschuss an hydrophilen Fluorwasserstoffgas gearbeitet, um entstehendes Wasser dem Gleichgewicht zu entziehen und entstehendes Siliziumtetrafluorid zu entfernen. (01.03.2002 - Vielen Dank an 'Sunny' aus München für die Erweiterungen)

Jedoch ist "dry etching" nicht die einzige Methode. Mit "microprobing needles" kann die Schicht an einer Stelle unter der Nadel mittels Ultraschall entfernt werden. Mit "laser cutter microscopes", die in Zellbiologielabors im Einsatz sind, kann die Schicht ebenfalls lokal entfernt werden. Einige Testlabors besitzen eine Konfigurationen von neun "microprobing needles". Mit diesen kann der Kartenbus in Echtzeit ausgelesen werden.

Bevor mit "electron beam tester" gearbeitet werden kann Es ist üblich die Schutzschicht zu entfernen. Da ansonsten Elektronen von der Schicht emittiert werden, die sie dadurch positiv geladen wird und deshalb die Signale auf dem Chip nach wenigen Sekunden überdeckt würden. Nun könnte man denken, dass nur nach "dry etching" mit dem "electron beam tester" gearbeitet werden kann. Versuche haben jedoch gezeigt, dass wenn sich noch Reste der Salpetersäure und des Harzes auf der Oberfläche befinden, das Problem nicht ganz so ernst ist. Vermutlich sind diese Rückstände schwach leitend. Deshalb wurde vorgeschlagen, eine Schicht mit passender Leitfähigkeit auf den Chip aufzutragen, um den Ladungsaufbau verhindern zu können.

Advanced attacks techniques

Wie läuft diese Form des Angriffs ab?

Die oben genannten Methoden wurden von Angreifern erfolgreich durchgeführt. Es folgt eine Beschreibung fortgeschrittenen Techniken, welche in professionell ausgestatteten Labors angewendet wird. Von diesen Labors gibt es paar hundert auf der Welt. Einige von befinden sich in Universitäten (z.B. drei in GB). Dadurch kann es passieren, dass auch normale Angreifer Zugriff auf professionelle Maschinen bekommen.

Es gibt viele Methoden um ein "reverse engineering" durchzuführen. Es wurde ein Verfahren entwickelt, mit dessen die Schutzschicht in einem Arbeitsgang entfernt werden kann. Danach wird ein dünner Film aus Palladium oder Gold aufgebracht. Dieser Film bildet mit dem Siliziummaterial aufgrund des Schottkyeffekts, je nach Dotierung des Untergrunds eine Diode. Diese Dioden können mit den "electron beam tester" erkannt werden. Nach und nach werden die verschiedenen Schichten des Siliziums in einen Computer eingelesen. Dieser kann dann mittels Software das Abbild des Chips mit all seinen Eigenschaften darstellen.

Dieses Verfahren wurde an einen Intel 80386 und einer Anzahl anderer Geräte getestet. Um ein "reverse engineering" am 80386 durchzuführen wurden zwei Wochen, sowie sechs Prozessoren benötigt. Die Ausgabe kann als Maske, Stromplan oder einer Liste der "libary cells", aus dem der Chip besteht, erfolgen.

Ist das Layout des Chips bekannt, dann gibt es eine extrem weit entwickelte Technologie von IBM um diesen Chip während der Ausführung zu Analysieren. Dazu muss die Schutzschicht nicht entfernt werden. Ein Tester platziert ein Kristall aus "lithium niobate" über der Einheit die beobachtet werden soll. Die Brechungszahl dieser Substanz verändert sich je nach der Stärke des angelegten elektrischen Feldes. Mit einem Ultraviolettlaser der durch das Kristall gesendet wird, kann das Potential das darunterliegenden Siliziums gemessen werden. Dieses System kann bei 5 Volt bis 25Mhz eingesetzt werden. Dieses Verfahren kann als Standardverfahren angesehen werden, das professionellen Labors angewendet wird um Schlüssel zu finden. Sollte eine Smartcard angegriffen werden, so müsste die EEPROM Ausgangsverstärker abgetastet werden.

Als Antwort der Chiphersteller wurden nicht die Undurchsichtigkeit oder die Leitfähigkeit des Materials verstärkt, sondern die Verbindung des Deckmaterials mit dem Silizium. Wird das Material entfernt, so wird dabei das Silizium mit zerstört. Die Material ist beim US Militär im Einsatz, jedoch nicht allgemein zugänglich.

Zusätzlich zum besseren Mantel wurde die Chipstruktur verändert. So scheint ein einfache Verbindung ein Transistor zu sein, oder ein NOR mit drei Eingängen arbeitet als NOR mit zwei Eingängen. Jedoch sind Sie nach dem "layer etching" mit der Schottky-Methode zu erkennen.

Eine andere Möglichkeit ist die Komplexität des Chips zu erhöhen und keine Standardbibliotheken beim Design zu verwenden. Jedoch muss der Chip auch noch funktionieren und die nicht standardisierten Bibliotheken können von der Erkennungssoftware auf "gate level" erkannt und vereinigt werden.

Ein Versuch mit mehr System wurde von der US Regierung gestartet. Daraus entstand der Clipper Chip. Dieser besitzt ein brennbares Verbindungssystem. Durch die Verbindungen kann ein Verschlüsselungsalgorithmus, sowie ein langer Geräteschlüssel nach der Fertigung eingebrannt werden. Das Material besteht aus amorphen Silizium um das Mikroskopieren zu erschweren. Außerdem wurde das Material mit einer Vielzahl ("salted") von Oszillatoren versehen die einen Angriff mit elektronischen Sensoren erschweren sollen.

Es ist aber bekannt, dass mindestens ein Chiphersteller diesen Chip bereits kurz nach seinem Erscheinen "reverse engineered" hat. Diese Attacke die den Clipper Chip in Verruf brachte benutzte weniger die physikalischen Methoden sondern mehr Protokollfehler. Darauf wird später zurückgekommen.

Eine andere Methode des "reverse engineering" wird mit einem Infrarotlaser durchgeführt. Dabei wird die Wellenlänge so gewählt, dass das Silizium dafür durchscheinend wird. Dadurch ist es möglich den individuellen Zustand eines Transistors festzustellen.

Es ist bekannt, dass aktive Angreifer auf Kryprosysteme oder Algorithmen erfolgreicher sind als passive. Für "reverse engineering" kann die derselbe Folgerung gezogen werden.

Unter aktives "reverse engineering" wird zum Beispiel die Verwendung eines "focussed ion beam workstation" (IOB) verstanden der von Pay-TV Angreifern angewendet wurde. Diese Maschine kann Verbindungen im "metallisations layer" trennen und neue im "isolation layer" anlegen. Außerdem kann es das Silizium dotieren und Verbindungen zu den tiefsten Schichten des Siliziums anlegen. Diese Anlagen kosten mehrere Millionen Dollar, sie werden jedoch von den Halbleiterherstellern auch vermietet.

Mit einem solchen Maschine bewaffnet wird der Angriff auf eine Smartcard einfacher und effektiver. Bei einer typischen Attacke werden die meisten Verbindungen zwischen der CPU und den Systembus getrennt. Nur die Verbindungen des EEPROM und die Einheit der CPU ,die den Schreibzugriff steuert bleiben angeschlossen. Zum Beispiel wird der Programmzähler so angeschlossen, dass auf den Speicher im Systemtakt ausgelesen werden kann. Wurde dies ausgeführt kann das EEPROM mit "microprobing needle" oder einer "electro-optical probe" ausgelesen werden.

The Dallas DS5002FP Secure Microcontroller

Man möchte die Chips so klein als möglich machen, da durch die hermetische Abdichtung der Stromverbrauch begrenzt wird, und größere Montagen anfälliger für Fehler sind. Außerdem spielen die Herstellungskosten eine Rolle.

Viele Anwendungen brauchen mehr RAM als auf den Chip passen. Eine etablierte Technik ist die Busverschlüsselung. Dabei beinhaltet die CPU Hardware die in Echtzeit ("on the fly") die externe Adresse und den Datenbus Verschlüsseln kann. Externer RAM beinhaltet nur verschlüsselte Daten an verschlüsselten Adressen. Der geheime Schlüssel ist in einem Batterie gepufferten Register in der CPU gespeichert.

Der Dallas Semiconductor DS5002FP Mikrokontroller benutzt diese Busverschlüsselungsstrategie. Dieser dem Intel 8051 kompatible Prozessor wird in einer Anzahl von Geldterminals und Pay-TV Zugangsdecodern zum Speichern von privaten Schlüsseln und geheimen Verschlüsselungsalgorithmen verwendet. Die im Chip integrierte Firmware ermöglicht es den Anwendern unverschlüsselte Software zu installieren. Diese Software wird im externen Speicher aufbewahrt. Der Schlüssel ist einmalig für jede Karte. Die Karte besitzt einen Selbstzerstörungsanschluß der es erlaubt von Extern den Schlüssel zu löschen. Eine SpezialausführungBreaking des Dallas Chips (DS5002FPM) besitzt eine Metallschicht um Angriffe von "microprobe" abzuhalten.

In Bezug auf die Bedienungsanleitung ist diese Metallschicht ein "komplexer Schicht, verflochtener Drähte mit Strom- und Erdungsanschluss und in Wechselwirkung mit der Verschlüsselung- und Sicherheitslogik. Deswegen ist jeder Versuch diese Schicht zu entfernen oder mit einer Probe sie zu durchdringen mit dem Löschen der Sicherheitsverriegelung, oder dem Verlust der Verschlüsselungsbits verbunden." Zusätzliche Sicherheit ist durch zufällige Dummy-Zugriffe gegeben die auf dem externen Speicherzugreifen. Außerdem werden bei Zugriffen auf 48 Bytes die den Reset- und Interruptvektor enthalten und sich auf dem Chip befinden, Dummy-Zugriffe auf den externen Speicher ausgeführt. Dies soll Verwirrung stiften, da nicht erkannt wird, wann auf den internen Speicher zugegriffen wird.

Die Sicherheitsmerkmale sind auf den ersten Blick sehr beeindruckend und der Hersteller beschreibt ihn als "the most sophisticated security features available in any microcontroller".

Der Chip benützt zwei Algorithmen welchen frei nach DES modelliert sind. Der erste verschlüsselt Adressen und arbeitet auf 15 Bit Blöcken. Der zweite verschlüsselt Daten und arbeitet auf 8 Bit Blöcken. Der Schlüssel des zweiten Algorithmus ist "salted" mit der Adresse des Bytes das verschlüsselt wird. Seine kleine Blockgröße, die ohne Zweifel durch die Byteorientierung des Kontrollers gegeben ist, macht ihn zum Ziel der Angreifer.

Bei näherer Untersuchung zeigt der Algorithmus eine statistische Anfälligkeit, die es erlaubt den Schlüssel mittels DFA zu ermitteln. Warum dies so ist wurde noch nicht ermittelt. Auf jeden Fall gibt es hierfür eine ökonomischen Grund. Je mehr Runden zur Verschlüsselung aufgewendet werden, desto größer muss der Takt oder die Anzahl der Transistoren sein. Weit mehr interessant ist die Anfälligkeit des Busverschlüsselungssystem das unabhängig von der Qualität des Verschlüsselungsalgorithmus ist.

Breaking the Dallas chip

Es wurde ein Verfahren entwickelt und erfolgreich (Kuhn) getestet, dass die Geheimnisse einiger Pay-TV Systeme preisgibt. Außerdem wurde ein Schüssel ermittelt, der von der German Federal Agency for Information Technology Security (BSI) ausgegeben wurde und als Wettbewerb von der ausgeschrieben war. Dieser Angriff benötigte einen normalen PC, eine spezielles Ein/Auslesegerät, das aus Standardelektronik für weniger als US$100 gebaut wurde, und einem Logikanalyser für weniger als US$200. Es wurde in einem Studentenlabor der Universität Erlangen-Nürnberg ausgeführt. Dabei wurden nur übliche Laboreinrichtungen benutzt. Für den Hardware- und Softwareentwurf und deren Implementierung wurden weniger als 3 Monate gebraucht. Nach den Maßstäben von IBM war dies ein Angriff von Class I Gegnern.

Die Idee des Angriffs ist einfach. Sie wurde jedoch von den Entwicklern und Testern des Chips nicht bedacht. Sie wurde "cipher instruction search attack" genannt. Es werden dabei dem Prozessor passend gewählte verschlüsselte Befehle eingegeben und danach überprüft welche unverschlüsselte Befehle aus den Auswirkungen der eingebenen Befehle abgeleitet werden können.

Zum Beispiel:

MOV 90h, #42h

entspricht den Hexziffern 75h 90h 42h. Als Ergebnis wird der Wert 42h auf dem parallelen Port (Adresse 90h) zwei Buszugriffe später ausgeben.

Es wird nun die CPU zurückgesetzt und gewartet bis der angelegte Befehl abgeholt wird. Danach beobachtet die Kontrollsoftware ein paar Takte lang die Reaktion des Prozessors. Danach wird die Prozedur wiederholt. Es kann mit ca. 300 Wiederholungen pro Sekunde die 2 16Eingabekombinationen getestet werden.

Es kann dann zufällige Kombination von zwei Byte auftauchen, bei der das nachfolgende dritte Byte auf den Parallelport über eine bijektive Funktion ausgegeben wird. Es kann nun nach weiteren Tests angenommen werden, dass die zwei ersten Bytes die verschlüsselten Form von 75h und 90h sind. Dadurch kann die Datenbusverschlüsselung des dritten Bytes für eine unbekannte spezifische Adresse ermittelt werden. Es werden einfach alle 2 8Kombinationen des Datenbytes eingeben und die verschlüsselten Werte für einen Speicherplatz in einer Tabelle vermerkt.

Nun wird der Prozess wiederholt, aber mit dem Ziel einen Befehl zu finden der dem "no-operation-command" (NOP) entspricht und von demselben Move-Befehl wie oben gefolgt wird. Dies hat die Folge, dass die Adresse des dritten Move-Befehlsbyte um ein 1 erhöht wird.

Obwohl nun eine Kombination von vier Byte gesucht wird, erhöht sich die Komplexität nicht. Da die Stelle an der das Byte "90h" steht mittels der vorher ermittelten Tabelle korrekt verschlüsselt werden kann, reduziert sich das Problem wieder auf drei Byte bzw. zwei Byte. Das Byte das gesucht wird muss nicht unbedingt ein NOP-Befehl sein. Es genügt einfach eine Sequenz welche sich auf den nachfolgenden Move-Befehl nicht auswirkt. Dadurch werden weniger als 2 16Suchschritte benötigt. In der Regel reichen für den zweiten Suchdurchlauf ca. 2500 Schritte aus.

Dieser Suchprozess wird stetig schneller je mehr Adressen in die Tabelle aufgenommen wurden. Dadurch kann schnell die Verschlüsselungsfunktion von unbekannten, aufeinanderfolgenden Adressen bestimmt werden. Es wird dadurch möglich Befehle zu verschlüsseln und dem Prozessor zu schicken. Mit diesen Befehlen kann auf einfache Weise der Speicher und die Register zu einem der Ein/Ausgabeports geschrieben werden.

Dieser Angriff ist in Wirklichkeit schwieriger als oben beschrieben. Jedoch muss betont werden, dass ein Class I Angreifer die Schutzmaßnahmen eines der besten Prozessoren umgehen konnte, mit einem relativ geringen Aufwand.

Key attacks

Was ist das Ziel der Differentiellen Fehleranalyse?

Im allgemeinen sind nicht die kryptografischen Algorithmen als geknackt zu bezeichnen, sondern die individuellen Implementierungen dieser Algorithmen. Gute Beispiele sind dafür zwei berühmte Angriffe auf das im Netscape-Browserenthaltene SSL-Sicherheitsprotokoll.Der erste Angriff basierte auf die zu geringe Schlüssellänge, der zweite auf einen schlampig implementierten Zufallsgenerator. Ziel der Attacke mittels DFA ist nicht der eigentliche kryptographische Algorithmus oder ein Implementierungsfehler, sondern eine korrekte Implementierung.

Welche Hardwaremodule sind durch DFA bedroht?

Grundsätzlich können alle zur Berechnung kryptographischer Algorithmen eingesetzten Hardwaremodule betroffen sein. Erhöhtes Risiko besteht in jenen Fällen, wo der Angreifer im Besitz eines oder mehrerer zu untersuchenden Hardwaremodule ist. Betroffen sind folglich insbesondere Smart Cards, PCMCIA-Karten, eigenständig verschlüsselnde Kartenlesegeräte, Verschlüsselungskarten bzw. - Prozessoren , u.s.w.

Welche kryptographische Verfahren sind durch DFA bedroht?

Asymmetrische (public key) Kryptoverfahren

- RSA (Rivest-Shamir-Adlemann-Verfahren)

- Faktorisierung großer Integerzahlen

- RSA mit CRT (Chinese Remainder Theorem)

- Beschleunigung mit dem Chinesischen Restsatz

- Fiat-Feige-Shamir-Identifikationsverfahren

- Modulares Quadratwurzelproblem

- Schnorr-Identifikationsverfahren

- Diskretes Logarithmusproblem

Symmetrische (secret key) Kryptoverfahren

- DES (Data Encryption Standard)

- Tripple-DES

- IDEA

Unbekannte Kryptoverfahren

- Reverse Engineering

Differentielle Fehleranalyse und RSA

Die ersten von den Bellcore-Forschern Dan Boneh, Richard Liptonund Richard DeMillohaben ein "known plaintext attack" gegen RSA durchgeführt, d.h. sie haben den Schlüsseltext und den dazugehörigen Klartext verwendet, um den Schlüssel zu ermitteln.

Sie unterschrieben zunächst einen vorgegebenen Text mit dem RSA-Signatur-Verfahren. Anschließend wiederholten sie die Prozedur, wobei sie durch physikalische Einwirkung einen Fehlerhaften Unterschrift produziert haben. Durch Vergleich des korrekt unterschriebenen Textes mit dem gestört unterschriebenen Text konnten sie mit einem mathematischen Modell direkt Rückschlüsse auf den RSA-Schlüssel ziehen.

Dieser Ansatz hat neue Experimente in dieser Richtung nach sich gezogen. Es folgten dann Verbesserungen insbesondere von Arje Lenstra, von Bihamund Shamir, sowie von Andersonund Kuhn.

Arje Lenstra ist nicht nur promovierter Mathematiker und einer der führenden Faktorisierungsforscher, sondern auch Gründer der US-Hackervereinigung "digicrime" (https://www.digicrime.com). Lenstra hat gezeigt, dass durch eine einzigefehlerhafte RSA-Unterschrift mit hoher Wahrscheinlichkeit der RSA-Modulus faktorisiert und damit beliebige Nachrichten gefälscht werden können. Damit ist aus der Differentiellen Fehleranalyse ein "cyphertext only attack" geworden. Bei solchen Angriffen ist nur der Schlüsseltext bekannt und daraus wird der Klartext oder idealerweise der Schlüssel ermittelt.

Differentielle Fehleranalyse und RSA mit CRT

Es reicht eine einzige fehlerhafte RSA-Unterschrift besonders dann, wenn bei der Berechnung der codierten Nachricht das Verfahren des sogenannten Chinesischen Restsatzes angewendet wird.

Implementierungen des RSA-Algorithmus mit CRT sind besonders empfindlich auf die Differentielle Fehleranalyse, deswegen lohnt sich an dieser Stelle einige mathematische Zusammenhänge und konkrete Implementierungsprobleme zu beleuchten.

RSA-Algorithmus

Bezeichnungen:

M - zu unterschreibende Nachricht

E - RSA-Signatur

N - RSA-Modulus (öffentlich bekannt)

p, q - Primfaktoren von N(N = p * q)

e - öffentlicher Schlüssel

d - geheimer Schlüssel

Zur Signatur der Nachricht Mwird Mmit dem geheimen Schlüssel dpotenziert:

E = M^d mod N

Programmiertechnisch wird diese Potenzierung durch sukzessive Multiplikationen und Quadrierungen implementiert:

"square-and-multiply"

s[0] := 1;

(* sei d der geheime Schlüssel mit Bitlänge w *)

FOR k = 0 TO w-1 DO

BEGIN

IF (k.Bit von d) = 1

THEN

r[k] = (s[k] * m) mod n; (* Multipliziere *)

ELSE

r[k] = s[k] mod n; (* Multipliziere nicht *)

s[k+1] = SQR (r[k2]) mod n (* Quadriere *)

END;

ModularExp := r[w-1]; (* Ergebnis *)

Diese modulare Exponentiation ist der zeitaufwendigste Teil beim RSA-Verfahren.

Beschleunigung mit dem Chinesischen Restsatz

Mit der Verwendung des Chinesischen Restsatzes wird die Berechnung der modularen Exponentiation beschleunigt und wird Speicherplatz gespart. Dies ist für Chipkarten mit beschränktem Speicherplatz von ganz besonderem Vorteil. Die Signaturzeit wird nach Angaben der Hersteller mindestens halbiert. (Rein mathematisch betrachtet kann der Beschleunigungsfaktor sogar im Bereich von 4 liegen.)

Es seien p und q die beiden Primfaktoren des Modulus N:

N = p * q

Nach dem Chinesischen Restsatz existieren aund bmit

a= 1 mod pund a= 0 mod qbzw.

b= 0 mod pund b= 1 mod q

Diese Zahlen aund bmüssen nur einmal bestimmt und können im voraus berechnet werden.

Die modulare Exponentiation

E = M^d mod N

wird in zwei einfachere Potenzierungen zerlegt:

Ep := M^b mod p

Eq := M^d mod q

Nun ergibt die einfache Linearkombination

E := (a Ep + b Eq) mod N

eine gültige Signatur.

Mathematisches Modell der Differentiellen Fehleranalyse

Gehen wir nun davon aus, dass sich ein beliebiger Bitfehler entweder bei der Berechnung von Epoder von Eqereignet. Dies ist eine sehr realistische Annahme, weil die Berechnungen von Epund Eqder zeitlich aufwendigste Teil des Signaturverfahrens sind.

Boneh , DeMillound Liptonzeigten, dass dann eine korrekte und eine fehlerhafte Unterschrift ausreichen, um Nmit sehr hoher Wahrscheinlichkeit zu faktorisieren.

Es sei

Edie korrekte Unterschrift und

Fdie fehlerhafte Unterschrift.

Ferner gelte für die fehlerhafte Unterschrift F:

F = E mod qund F <> E mod p

Somit gilt

E – F = a (Ep - Fp)

Falls nun (E - F)kein Vielfaches von Nist , folgt dann für den Größten Gemeinsamen Teiler

GGT (E-F, N) = q

Nach der Verbesserung von Arje Lenstrareicht eine einzige fehlerhafte Unterschrift F.

Mit dem obigen Bezeichnung gilt für den höchst wahrscheinlichen Fall, dass Nkein Teiler von (M - Fe)ist,

GGT ( M-Fe, N ) = q

wobei eder zur Überprüfung der Signatur benötigte öffentliche Schlüssel ist.

Somit ist Nfaktorisiert worden. Der Aufwand hierzu ist mit einer Potenzierung mit dem öffentlichen Schlüssel, einer Addition und einer GGT-Bildung unglaublich gering.

Der geheime Schlüssel dist anschließend leicht bestimmbar. Dabei wird ein möglicher Angreifer durch das Verifizieren der Unterschrift direkt auf den Fehler aufmerksam gemacht.

Der qualitative Unterschied dieser Attacke im Vergleich zu anderen DFA-Angriffen besteht darin, dass der Angreifer in diesem Fall nicht im Besitz einer Karte sein muss, um dann in aller Ruhe offline die benötigten Experimente durchführen zu können.

Es ist folgende Situation denkbar:

Der Anwender steckt seine Karte in einen für ihn nicht sichtbar manipulierten Kartenleser, in dem sich eine Störquelle befindet zwecks Induzierung von Speicherfehler in der Karte. Die Karte berechnet mittels RSA/CRT eine digitale Signatur und sendet das falsche Resultat zu einer Autorisierungstelle. Der Angreifer fängt die fehlerhafte Signatur auf dem Übertragungsweg ab, berechnet in Sekundenbruchteilen den geheimen RSA-Schlüssel, korrigiert mit Hilfe dieses Schlüssels die Signatur und sendet das korrekte Ergebnis zur Autorisierungsstelle weiter. Weder Absender noch Empfänger können so ahnen, dass der geheime RSA-Schlüssel unterwegs geknackt wurde.

Warnung:

RSA mit Chinesischem Restsatz nicht verwenden !!

Differentielle Fehleranalyse und DES

Obwohl Bellcorezunächst versicherte, dass dieser Angriff symmetrische Kryptoverfahren nicht gefährden würde, übertrugen Adi Shamirund Eli Bihamdie Methode auch auf das DES-Verfahren. Der von ihnen beschriebene Angriff benötigt zur Analyse ca. 200 fehlerhaft verschlüsselte Versionen desselben Klartextblocks.

Später hierauf aufbauende Verbesserungen von Ross Andersonund Markus Kuhnermöglichen es im theoretischen Idealfall einen DES-Schlüssel mit weniger als 10 fehlerhaft verschlüsselten Textblöcken zu knacken.

Differentielle Fehleranalyse und unbekannte Kryptoverfahren

Shamir und Bihamhaben sogar gezeigt, dass selbst Chipkarten mit unbekanntem Verschlüsselungsverfahren gefährdet sind.

Der Grad der Anfälligkeit eines Algorithmus hinsichtlich der Reverse Engenieering ist stark von dessen innerer Struktur abhängig.

Gegenmaßnahmen

Zusätzliche aktive und passive Schutzmechanismen auf Hardwareebene sind von Fall zu Fall angebracht, die sind allerdings teuer und nicht für jeden Einsatzzweck durchführbar.

Leichter zu implementieren sind Maßnahmen zur Fehlererkennung bzw. Fehlerberichtigung zwecks Verhinderung einer Weiterverarbeitung nicht korrekter Speicherinhalte.

Eine weitere Empfehlung ist das Unterbinden einer wiederholten Verschlüsselung desselben Klartextblocks. Bei der Implementierung vieler Verschlüsselungsverfahren ist dies bereits systemseitig gewährleistet durch den sog. Random Padding des Klartextes. Random Padding bedeutet, dass unvollständige Datenblöcke mit, von einem Zufallsgenerator erzeugten, Zufallszeichen aufgefüllt werden.

Die prinzipiellste Gegenmaßnahme ist sicherlich das mehrmalige Durchführen der Signatur mit anschließendem Vergleich der Ergebnisse. Dies würde aber 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. z.B. die Richtigkeit der RSA-Unterschrift

E = M^d mod N

kann mit dem eigenen öffentlichen Schlüssel eüberprüft werden, da gilt:

Eê = M^de mod N = M mod N

Solche Vorkehrungen helfen natürlich nur dann, wenn ein Fehler nicht statisch an stets derselben Stelle auftritt, wie z. B. durch Hardwaredefekt.

Zusammenfassung:

Die Differentielle Fehleranalyse stellt eine objektive Erschütterung der bisher oft als unangreifbar dargestellten Chipkartensicherheit dar.

Angesichts der oben aufgeführten, teils unrealistischen Grundvoraussetzungen zum Gelingen der geschilderten DFA-Attacken lässt sich in vielen Fällen Entwarnung geben. Ein DFA-Angriff in der Praxis tatsächlich durchzuführen ist keine leichte Aufgabe. Wenn dann auch noch das Verfahren des Chinesischen Restsatzes nicht mehr angewendet und das Rechenergebnis vor dem Aussenden noch einmal überprüft wird, dürfte die Erfolgschance einer solchen Aktion gegen Null gehen.

Also, die Chipkarten bieten immer noch gute, aber keine perfekte Sicherheit.

Literaturverzeichnis

1. Rüdiger Weis:

- Neue Angriffsmethoden gefährden Chipkartensicherheit

- Differentielle Fehleranalyse gegen Chip-Karten

2. Thilo Zieschang:

- Differentielle Fehleranalyse und Sicherheit von Chipkarten

3. Eli Biham, Adi Shamir:

- Research Announcement:

A New Cryptanalytic Attack on DES (October 18, 1996)

- The nest Stage of Differential Fault Analysis:

How to break completely unknown cryptosystems (October 30, 1996)

- Differential Fault Analysis:

Identifying the Structure of Unknown Ciphers Sealed in Tamper-proof Devices (November 10, 1996)

4. Ross J Anderson, Markus G Kuhn:

- Improved Differential Fault Analysis

5. Bellcore:

- Bellcore Media Advisory (September 27, 1996)

- New Threat Model Breaks Crypto Codes

- Now, Smart Cards Can Leak Secrets (September 25, 1996)

6. Helmuth Lemme:

- Wie sicher sind Chipkarten ?

Quellen

Im Original von: Ross Anderson, Cambridge University, Computer Laboratory, Pembroke Street, Cambridge CB2 3QG, England / Markus Kuhn, COAST Laboratory, Department of Computer Sciences, Purdue University, West Lafayette, IN 47907 U.S.A.