Hi
Es haben sich bestimmt viele schon gefragt,wann Premiere eigentlich
wieder offen ist bzw wie weit die Hacker sind.Damit man verstehen kann,
was man so braucht,bzw welche Angriffe auf so eine Smartcard möglich
sind,wie die Hersteller ihre Smartcards schützen,der sollte sich unten aufgeführtes mal zu gemüte führen.
Angriffsarten
Wir unterscheiden zwei Arten von Angriffen. Die aktiven Angriffe (invasive attacs), bei
denen die Karte zerstört wird und die passiven Angriffe (non- invasive attacs), bei denen nur
auf die Karte zugegriffen wird, ohne sie zu zerstören.
Aktive Angriffe
Zuerst müssen wir den Chip extrahieren. Dazu erhitzen wir das Plastik bis es flexibel wird
und entfernen den Chip durch biegen der Karte. Mit Salpetersäure bei 60° C wird nun das
Epoxidharz entfernt. Anschließend wird der Chip mit Aceton im Ultraschallbad gewaschen
und optional in deionisiertem Wasser mit Isopropanol gebadet.
Nun könne wir die restliche Drähte mit Pinzetten entfernen, den Chip in ein Test Package
kleben und per Hand mit Drähten verbinden um Tests auszuführen, oder wir beginnen mit der
Layout Reconstruction.
Layout- Reconstruction
Mit einer CCD Kamera in einem optischen Microskop werden Bilder von der Chipoberfläche
gemacht. Dadurch eirhalten wir mehrere Meter große Karten des Chips. Wichtige Strukturen
können so schnell erkannt werden.
Tiefere Schichten können nur erkannt werden, wenn das Siliziumoxid von den
Metallleitungen entfernt wird. Dafür wird der Chip für ein paar Sekunden in ein
Ultraschallbad mit Flusssäure gelegt.
Einen Standart Chip könnten wir eventuell jetzt schon identifizieren und die nötigen Buslines
und Funktionsmodule manipulieren.
Einige Karten haben Cryptographic Hardware, was das Rekonstruieren schwierig macht.
Mit semiautomatic image processing können wichtige Teile des Prozessors in ein paar Tagen
nachgebildet werden.
Mit optical reconstuction techniqes können wir die Daten des ROMS sichbar machen und
disassemblieren.
Manual Microprobing
Wichtigstes Werkzeug für aktive Angriffe ist eine microprobing workstation.
Das ist ein Mikroskop mit 8mm zwischen Chip und Linse und kleinen Ärmchen, die mit
Präzision im mirkometerbereich mit sehr dünnen Nadeln Kontakte zur karte herstellen, ohne
sie zu zerstören.
Der Chip wird jetzt über einen Verstärker mit einem Prozessor verbunden, der alle wichtigen
Operationen mitschreibt, oder ausführt.
Vorher müssen wir aber noch eine Schicht entfernen (Passivation Layer).
Der UV, oder green Laser macht so kleine Löcher, dass eine einzige Bus- line freigelegt
werden kann.
Der Preis einer microprobing workstation liegt bei mehreren 10 000 Euronen,also nicht gerade billig.:greets (17):
Man kann nicht alle Informationen direkt auslesen. Deshalb muss man die Datenbusse
überwachen. Da es sehr schwer ist alle Datenbusse zu überwachen, nehmen wir immer nur
zwei, oder vier Proben und kombinieren sie hinterher.
Dabei wiederholen wir immer die gleiche Transaktion
Particle Beam
Der Beam macht nur 5-10 nm große Löcher. Damit lassen sich selbst einzelne Transistoren
erreichen. Durch Injektion von Metallgas in ein solches Loch lassen sich neue Kontakte
machen.
EBT: Partikelbeam mit Volt Kontrast- Funktion zum Überwachen von Datenleitungen.
Ein EBT läuft mit Taktraten bis zu mehreren GHz. Um alle Leitungen einer Smartcart
gleichzeitig aufnehmen zu können muss die Smartcard auf unter 100 kHz getaktet werden.
Gegenmaßnahmen
low frequency alarm
Ein Sensorregistriert, wenn die Karte untertaktet wird und zerstört sie.
Test Kanäle zerstören
Jeder Chip wird nach der Herstellung über Kanäle getestet, die Angreifer
später ausnutzen können. Diese Kanäle sollten unzugänglich gemacht
werden.
Verwirrendes Layout
Das Layout der Karte sollte nicht einfach zu erkennen sein. Man kann das Erkennen
von Karten z.B. durch mehrere Schichten, Chryptohardware, oder Teile des Chips schwierig
machen, die nur zur Verwirrung da sind und keinen praktischen Nutzen haben.
Passive Angriffe
Die passiven Angriffe oder non- invasive Attacks Zeichnen sich dadurch aus, dass hierbei die
Karte nicht zerstört werden muss. Jedoch muss die Karte im Besitz des Angreifers sein, da
solche Angriffe meist einige Zeit benötigen
Glitch Attacks
Glitch Attacks versuchen mit Hilfe von der Änderung der Stromversorgung, Taktfrequenz
oder Temperatur dafür zu sorgen, dass Fehlfunktionen erzeugt werden. Diese Fehlfunktionen
sollen nun bewirken, dass einige FlipFlops in einem falschen Zustand verweilen. Mit diesem
Angriff sollen bedingte Sprungbefehle oder deren Überwachung umgangen werden. Dies
kann die Auswirkung haben, dass gewisse Zeilen von Code in einer Abarbeitungsreihenfolge
nicht bearbeitet werden, wodurch es natürlich zu Sicherheitslücken kommen kann. Weiter
können auch Schleifen verlängert werden, da z.B. der Zähler nicht dekrementiert wird, so dass
man mehr Speicher Auslesen kann, als eigentlich vorgesehen war. Natürlich können auch
Schleifen verkürzt werden, wodurch Chiffrierfunktionen einfacher werden können, da z.B.
der Schlüssel viel kleiner wird.
Um gegen diese Angriffe gesichert zu sein, haben die meisten heutigen SmartCards Sensoren
auf der Karte, welche die ganze Zeit die Temperatur, Stromzufuhr und den Takt kontrollieren
und sobald ein Sensor Alarm meldet, wird die Karte außer Betrieb gesetzt.
Random Seed Attack
Dieser Angriff funktioniert auf Karten, welche für die Erzeugung von Quasi-Zufallszahlen
den DES Algorithmus verwenden, da hierbei die alte Zufallszahl als Eingabe für die
Berechnung der neuen Zufallszahl benötigt wird. Aus diesem Grunde muss die Zufallszahl im
EEPROM gespeichert werden. Dieser Speichervorgang erfolgt in zwei Schritten, im ersten
Schritt wird der Speicherbereich der Zufallszahl auf 000 gesetzt. Im folgenden Schritt wird
dann die neu erzeugte Zufallszahl ins EEPROM geschrieben. Nun besteht die Möglichkeit,
dass man nach dem ersten Schritt die Stromzufuhr unterbricht, wodurch dann die Zufallszahl
für die neue Berechnung immer 000 sein kann. Da man nun die Eingabe des DES weiss, hat
man schon mal einen guten Ausgangspunkt um mit Hilfe einer Replay Attacke die
Funktionsweise des gesamten Kryptoalgorithmus herauszufinden.
Als Schutz vor solchen Angriffen gibt es zwei Möglichkeiten, zum einen wird der Bereich,
der durch die Stromunterbrechung betroffen war protokolliert und in den folgenden
Operationen nicht mehr verwendet. Die andere Möglichkeit besteht darin, dass man vor einer
Transaktion die Daten sichert und falls nun die Transaktion unterbrochen wird, hat man die
Möglichkeit den alten Zustand wieder herzustellen. Dies führt aber zu schlechterer
Performanz und einem erhöhten Speicherverbrauch.
Timing Attacks
Als Grundlage für Timing Attacks steht die Annahme, dass alle Operationen einen
sogenannten FootStep haben, also eine gewisse Spannung und Zeit benötigen, so dass jede
Funktion mit Eingabe identifizierbar ist. Als Beispiel für Timing Attacks soll nun der Angriff
auf eine Schlechte Implementation einer PIN-Überprüfung dienen. Bei dieser PINÜberprüfung
bricht der Algorithmus sofort ab, sobald er die erste falsche Zahl im PIN
feststellt. Hierdurch besteht zumindest die Möglichkeit, dass man herausfindet bei welcher
Zahl abgebrochen wird und man weiss, dass die Vorhergehenden richtig waren. Durch dieses
Wissen grenzt sich natürlich der Bereich der möglichen PINs sehr stark ein.
Um solche Angriffe zu verhindern, werden so genannte Dummy-Funktionen eingefügt, die
eigentlich nichts machen, jedoch Operationen simulieren, wodurch es dem Angreifer
unmöglich oder zumindest schwer gemacht werden soll, einzelne Funktionen zu
unterscheiden. Weiter wird es auch unmöglich gemacht herauszufinden an welcher Stelle ein
Algorithmus abbricht, da er, egal ob die Eingabe richtig oder falsch ist, immer nach der
gleichen Zeit abbricht.
Differential Fault Analysis
Für diesen Angriff benötigt man eine eigentlich nur sehr schwer zu erfüllende Voraussetzung,
und zwar soll der Angreifer die Möglichkeit haben bewusst jedem einzelnen bit im EEPROM
einen Wert zuzuordnen. Weiterhin besteht auch noch die Annahme, dass jede Funktion einen
FootStep hat, also jede Operation identifizierbar ist, Anhand der Stromverbrauchskurve. Der
erste Schritt des Angriffes ist, dass der Angreifer eine Operation ausführt, bei der der
Schlüssel benötigt wird und gleichzeitig den Stromverbrauch aufzeichnet. Danach setzt er
einfach ein bit des Schlüssels auf 0 und führt die selbe Operation noch mal aus. Wenn das
Ergebnis beider Operationen nun gleich sind, so weiss der Angreifer, dass diese Stelle des
Schlüssels eine Null ist, falls das Ergebnis abweicht, war die Stelle eine 1. Auf diese Art und
Weise lässt sich nun der gesamte Schlüssel herausfinden.
Vor diesem Angriff gibt es eigentlich keinen wirklich geeigneten Schutz, jedoch muss man
sagen, dass die Annahme, dass ein Angreifer jedes einzelne bit ändern könnte kaum erfüllt
werden kann.
Single Power Analysis
Bei der Single Power Analysis wird wieder verwendet, dass jede Operation einen
sogenannten FootStep besitzt. Des weiteren benötigen wir eine Operation, bei der jedes bit
des Schlüssels nach dem anderen abgearbeitet wird, wie dies z.B. bei einem Parity-Check der
Fall wäre. Nun wird bei der Verwendung des Schlüssels die Spannungskurve aufgenommen.
Da wir wissen, dass jetzt jedes bit einzeln mit der gleichen Funktion bearbeitet wurde, sehen
wir in der Kurve wann immer die gleiche Zahl verarbeitet wurde, jedoch wissen wir jetzt noch
nicht, welches nun die Einsen und welches die Nullen sind, jedoch gibt es jetzt nur noch zwei
Möglichkeiten für den Schlüssel.
Dieser Angriff lässt sich nur schwer verhindern, ausser es wird versucht niemals den
Schlüssel bitweise zu verarbeiten.
Also liebe angehenden Smartcards-Hackers:christmas1:
Also,wenn man sich das mal alles durchgelesen hat,merkt mann schnell,das das hacken von Smartcards
kein Thema für jemanden ist,wo mann mal schnell einsteigen kann.Auch was alles an Ausrüstung benötigt
wird,ist nicht für nen Appel und ein Ei zu haben.Auch,wenn der Chip z.b.
freigelegt ist,ist ein Reinraum von Vorteil,ich schätze,ich brauche niemanden zu sagen,
was passiert,wenn Staub auf einen Microkontoler nieder prasselt.Aber vielleicht gibt es ja hier im Board ein Zebra
das die Kohle hat(wenn ja,bitte PM an mich).
DonMartin.