Seitenkanalattacke

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Die von dem amerikanischen Kryptologen Paul C. Kocher 1996 bekannt gemachte Seitenkanalattacke (englisch side channel attack), auch Seitenkanalangriff, bezeichnet eine kryptoanalytische Methode, die die physische Implementierung eines Kryptosystems in einem Gerät (z. B. einer Chipkarte, eines Security-Tokens oder eines Hardware-Sicherheitsmoduls) oder in einer Software ausnutzt. Dabei wird nicht das kryptographische Verfahren selbst, sondern nur eine bestimmte Implementierung angegriffen, d. h. andere Implementierungen können von dem Angriff unberührt bleiben.

Das Prinzip beruht darauf, ein kryptographisches Gerät bei der Ausführung der kryptologischen Algorithmen zu beobachten und Korrelationen zwischen den beobachteten Daten und dem verwendeten Schlüssel zu finden. Diese charakteristische Information kann durch die Analyse der Laufzeit des Algorithmus, des Energieverbrauchs des Prozessors während der Berechnungen oder der elektromagnetischen Ausstrahlung gewonnen werden. Aktive, invasive Angriffe bestehen darin, in das Gerät einzugreifen und Fehler bei der Ausführung des kryptologischen Algorithmus einzubringen.

Beispiele für Seitenkanäle[Bearbeiten]

Rechenzeitangriff (timing attack)[Bearbeiten]

Die von Paul Kocher 1996 entdeckten Timing Attacks messen die Rechenzeit des implementierten kryptographischen Verfahrens für verschiedene (in der Regel vom Angreifer gewählte) Eingaben. Kryptosysteme benötigen leicht unterschiedliche Ausführzeiten, um unterschiedliche Eingaben zu verarbeiten. Diese Charakteristiken bei der Performance sind sowohl vom Schlüssel als auch von den Eingabedaten (Klar- oder Chiffretexte) abhängig. Durch die Laufzeitanalyse kann der Schlüssel nach und nach rekonstruiert werden.

Timing Attacks sind sowohl gegen Chipkarten als auch gegen Software-Implementierungen (z. B. [1]) veröffentlicht worden.

Nutzung des Speichers[Bearbeiten]

Wenn sich Prozesse auf einem Rechner Speicherbereiche teilen, können sie aus der Nutzung des Speichers durch den anderen Prozess auf die durchgeführten Operationen schließen. Ein entsprechender Angriff gegen OpenSSL nutzte die gemeinsame Nutzung des Level-1-Cache beim Hyper-Threading des Pentium 4 aus (siehe [2]).

Simple Power Analysis SPA[Bearbeiten]

Simple Power Analysis ist eine Methode, bei der der Energieverbrauch eines Mikroprozessors während kryptographischer Berechnungen direkt aufgezeichnet wird. Der Energieverbrauch variiert abhängig von den jeweils ausgeführten Mikroprozessorbefehlen. Er gibt somit Aufschluss über die ausgeführten Operationen sowie über den Schlüssel.

Eine Spur ist eine Menge von Energieverbrauchsmessungen, die von einer kryptologischen Operation erhalten wurden. Der Vergleich von Spuren entdeckt Muster wie etwa DES-Runden oder RSA-Operationen. Unterschiede in den Spuren liefern Rückschlüsse auf den Schlüssel.

Differential Power Analysis DPA[Bearbeiten]

Differential Power Analysis vergleicht Spuren, indem sie zusätzlich zur SPA-Technik statistische Methoden einsetzt.

Bug Attacks[Bearbeiten]

Ein neuartiger Angriff ist der Bug-Angriff, der Rechenfehler in fehlerhaften Mikroprozessoren ausnutzt (etwa Pentium-FDIV-Bug).[1]

Elektromagnetische Abstrahlung[Bearbeiten]

Die von einem Rechner oder Gerät bei Berechnungen erzeugten elektromagnetischen Felder lassen sich oft noch in einiger Entfernung messen und erlauben ebenfalls Rückschlüsse auf die durchgeführten Operationen. Diese Angriffe sind als Van-Eck-Phreaking oder TEMPEST bekannt.

Schallanalyse[Bearbeiten]

Eine Analyse der Betriebsgeräusche eines Computers, mithilfe günstiger Mikrophone, kann zur Extraktion von RSA-Schlüsseln verwendet werden.[2] Nadeldrucker erzeugen Geräusche, die Rückschlüsse auf die gedruckten Zeichen zulassen. Nach einer Lernphase und Kenntnis des Kontexts ist eine Texterkennung besser als 70 % erreichbar.[3]

Beispiele für aktive Angriffe[Bearbeiten]

Reaktion auf falsche Eingaben[Bearbeiten]

Manche kryptographische Implementierungen reagieren auf falsche Eingaben unterschiedlich, abhängig davon, an welcher Stelle der Verarbeitung ein Fehler auftritt. Die Art der Reaktionen liefert einem Angreifer daher bereits Informationen über den verwendeten geheimen Schlüssel. Ein solcher Angriff wurde z. B. gegen weit verbreitete Implementierungen von SSL veröffentlicht.[4]

Glitch-Attack[Bearbeiten]

Glitch-Attack ist eine Methode, um einen Kryptoprozessor zu kompromittieren, indem man die Ausführung von Maschinenbefehlen unterbricht. Der Angreifer beobachtet die bei der Programmausführung abgegebenen Signale. Genau in dem Augenblick, in dem eine Vergleich- oder Sprunganweisung ausgeführt wird, fügt er eine Störung zu, die die Befehlsausführung blockiert. Auf diese Weise könnte man z. B. eine kritische Authentifizierungsroutine umgehen. Auf diesem Wege wurde bei der XBOX 360 der Bootloader „ausgetrickst“.[5]

Differential Fault Analysis (DFA)[Bearbeiten]

Differential Fault Analysis ist eine Methode, eine kryptographische Einheit zu untersuchen, indem man ihr Fehler zufügt. Das wird meistens durch Veränderung der Spannung, Manipulation der Systemuhr oder Strahlung erzeugt. Der Eingriff kann zu vier Ergebnissen führen: kein Effekt, falsche Resultate, was ausgenutzt werden kann, keine Antwort, physikalische Zerstörung. Bei diesem Angriff wird derselbe Klartext, der unbekannt sein kann, zweimal verschlüsselt: einmal unter regulären Bedingungen und einmal unter Testbedingungen. Die beiden Chiffretexte werden dann verglichen. Bitdifferenzen liefern Rückschlüsse auf z. B. das RSA-Signaturschema.

Gegenmaßnahmen[Bearbeiten]

Gegenmaßnahmen wirken spezifisch gegen eine odere mehrere Angriffsformen. Dazu zählen: Laufzeitglättung durch konstante Codeausführung, (Einfügen von Redundanzen, um Maschinenbefehle datenunabhängig auszuführen, Vermeiden von bedingten Sprüngen), physikalisches Shielding gegen EM-Abstrahlungen, Einfügen von Rauschen (Code Obfuscation, Gatter Obfuscation, Signalrauschen, etc.).

Literatur[Bearbeiten]

  • National Computer Security Center: A Guide to understandig Covert Channels
  • Paul Kocher: Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems. Proc Int Cryptol Conf, Volume 1109 of Lecture Notes in Computer Science, Springer 1996, p. 104–113. ISBN 3-540-61512-1
  • Paul Kocher, Joshua Jaffe, Benjamin Jun: Differential Power Analysis (PDF-Datei; 217 kB), Volume 1666 of Lecture Notes in Computer Science, Springer 1999, p. 388–397.

Einzelnachweise[Bearbeiten]

  1. Eli Biham, Yaniv Carmeli, Adi Shamir: Bug Attacks. CRYPTO 2008, LNCS 5157, S. 221–240, Springer, 2008
  2. RSA Key Extraction via Low-Bandwidth Acoustic Cryptanalysis
  3. Backes et al: Acoustic Side-Channel Attacks on Printers (PDF-Datei; 827 kB)
  4. PDF bei eprint.iacr.org
  5. gligli: The Xbox 360 reset glitch hack. 2011, abgerufen am 21. Februar 2012 (englisch): „We found that by sending a tiny reset pulse to the processor while it is slowed down does not reset it but instead changes the way the code runs“