Seitenkanalattacke

Eine Seitenkanalattacke (englisch side-channel attack, sinnhaft übersetzt, aber unüblich: Nebenkanal-Angriff), 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. Um dies zu verhindern, ist eine Seitenkanalanalyse daher Bestandteil der Schwachstellenanalyse in der Common-Criteria-Zertifizierung von Chipkarten und ähnlichen Geräten[1].

Beispiele für SeitenkanäleBearbeiten

Rechenzeitangriff (timing attack)Bearbeiten

Die von Paul C. 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 veröffentlicht worden.[2]

Gemeinsame SpeichernutzungBearbeiten

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. Typische Beispiele:

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 AttacksBearbeiten

Ein Bug-Angriff nutzt fehlerhaft implementierte Funktionen in Mikroprozessoren aus (etwa Pentium-FDIV-Bug).[4]

Elektromagnetische AbstrahlungBearbeiten

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.

SchallanalyseBearbeiten

Eine Analyse der Betriebsgeräusche eines Computers, mithilfe günstiger Mikrophone, kann zur Extraktion von RSA-Schlüsseln verwendet werden.[5]

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.[6]

Beispiele für aktive AngriffeBearbeiten

Reaktion auf falsche EingabenBearbeiten

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.[7]

Glitch-AttackBearbeiten

Glitch-Attack ist eine Methode, um einen Kryptoprozessor zu kompromittieren, indem man die Ausführung von Maschinenbefehlen unterbricht. Für den Fall, dass Prozessoren nach In-order Logik arbeiten, wird das Programm strikt nach Programmreihenfolge abgearbeitet. Haben die Prozessorschaltkreise nun nicht genügend Zeit die Befehle abzuarbeiten kann das zu unterschiedlichem Verhalten führen. Dies wird durch das gezielte, kurzfristige Abschalten der Spannungsversorgung (voltage glitch) oder Einfügen eines Taktpulses (clock glitch) erreicht. Zum Beispiel können Befehle falsch geladen, ungültige Daten weitergereicht oder Instruktionen übersprungen werden. Das genaue Verhalten hängt vom exakten Timing ab.[8]

Ein Angriff kann wie folgt aussehen:

Genau in dem Augenblick, in dem eine Vergleich- oder Sprunganweisung ausgeführt wird, fügt er eine Störung ein, die die Befehlsausführung verändert. Um den Zeitpunkt zu finden, beobachtet der Angreifer externe Signale, die bei der Programmausführung geschaltet werden. Auf diese Weise könnte man z. B. eine kritische Authentifizierungsroutine umgehen. Auf diesem Wege wurde bei der Xbox 360 der Bootloader „ausgetrickst“, so dass beliebiger Code geladen werden konnte. Ziel des Angriffs war es XeLL ausführen zu können.[9]

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ßnahmenBearbeiten

Gegenmaßnahmen wirken spezifisch gegen eine oder mehrere Angriffsformen. Dazu zählen:

Sensoren, die Veränderungen der Betriebsspannung oder des Takts wahrnehmen. Wird eine Veränderung erkannt, kann der Computer sich gezielt ausschalten, geheimes Schlüsselmaterial aus dem Speicher löschen oder ähnliche Verteidigungsmaßnahmen durchführen.

Zur Glättung des Stromverbrauchs können zusätzlich Kondensatoren in die Schaltung eingefügt werden. Dadurch wird die Analyse des zeitlich exakten, fein aufgelösten Stromverbrauchs erschwert, aber die Kondensatoren müssen auch so verbaut sein, dass ein Angreifer sie nicht unbemerkt aus der Schaltung entfernen kann.

Generierung des ausgeführten Maschinencodes nach speziellen Verfahren, so dass die Codeausführung stets dieselbe Laufzeit benötigt, unabhängig von den verarbeiteten Daten. Um das zu erreichen, wird die Menge der nutzbaren Maschinenbefehle stark eingeschränkt. Befehle, die nicht verwendet werden, sind zum Beispiel bedingte Sprungbefehle (da die angesprungenen Codestücke üblicherweise unterschiedliche Laufzeiten haben) oder Divisionen (da die Ausführungszeit von den konkreten Zahlen abhängt). Für den Fall, dass bedingte Sprünge doch notwendig sind, müssen die beiden möglichen Ausführungspfade mit redundantem Code aufgefüllt werden, damit sie gleich lange laufen.

Physikalische Abschirmung gegen elektromagnetische Abstrahlungen, zum Beispiel bei Monitoren.

Die eigentliche Aufgabe des ausgeführten Codes kann durch zusätzlich eingefügte, jedoch an sich nutzlose Codestücke verschleiert werden (Code Obfuscation). Dadurch wird dem Angreifer die Analyse erschwert, sie wird jedoch nicht unmöglich gemacht.

Auf Mikrochips können mit derselben Idee zusätzliche Gatter eingebaut werden, die keine physikalische Funktion haben (Gatter Obfuscation). Insbesondere im Hochfrequenzbereich gibt es Komponenten wie zum Beispiel kleine Metallansammlungen, die auf den ersten Blick nutzlos erscheinen, jedoch als kleine Kondensatoren dienen und dadurch die Gesamtschaltung beeinflussen.

Das Beobachten von physikalischen Signalen kann verschleiert werden, indem zusätzliches Signalrauschen erzeugt wird.

LiteraturBearbeiten

  • National Computer Security Center: A Guide to understanding 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; 217 kB), Volume 1666 of Lecture Notes in Computer Science, Springer 1999, p. 388–397.

EinzelnachweiseBearbeiten

  1. Das ÖFIT-Trendsonar der IT-Sicherheit – Seitenkanalanalyse. Fraunhofer FOKUS Kompetenzzentrum Öffentliche IT, April 2016, abgerufen am 20. Mai 2016.
  2. https://www.heise.de/newsticker/meldung/Sicherheitsluecke-bei-SSL-Bibiliotheken-74999.html
  3. Andreas Stiller: Lauschangriff. Sicherheitsrisiko Hyper-Threading. In: c't. Band 13, Nr. 14, 2005, S. 48 (heise.de [abgerufen am 13. Juni 2019]).
  4. Eli Biham, Yaniv Carmeli, Adi Shamir: Bug Attacks. CRYPTO 2008, LNCS 5157, S. 221–240, Springer, 2008
  5. RSA Key Extraction via Low-Bandwidth Acoustic Cryptanalysis
  6. Backes et al.: Acoustic Side-Channel Attacks on Printers (Memento vom 8. Mai 2012 im Internet Archive) (PDF; 827 kB)
  7. PDF bei eprint.iacr.org
  8. Embedded Security 101. Abgerufen am 31. August 2020 (englisch).
  9. gligli: The Xbox 360 reset glitch hack. August 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“