- Side channel attack
-
Die von dem US-amerikanischen Kryptologen Paul C. Kocher 1996 bekannt gemachte Seitenkanalattacke (engl. side channel attack) bezeichnet eine kryptoanalytische Methode, die die physikalische 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 abhängigen, d. h. manipuliertem Schlüssel zu finden. Diese charakteristische Information kann durch die Analyse der Laufzeit des Algorithmus, den Energieverbrauch des Prozessors während der Berechnungen oder der elektromagnetischen Ausstrahlung gewonnen werden.
Moderne kryptographische Geräte sind aus Halbleiter-Schaltelementen aufgebaut, die wiederum aus Transistoren bestehen. Zuerst werden die Metallschichten chemisch abgetragen. Die freiliegenden Leitungen werden nach außen geführt. Um den Energieverbrauch zu messen wird ein geringer Widerstand (etwa 50 Ohm) in Serie geschaltet. Die Spannungsdifferenz über dem Widerstand geteilt durch den Widerstandswert ergibt den Strom. Der Stromfluß kann über ein Oszilloskop visualisiert werden. Aktive, invasive Angriffe bestehen darin, in das Gerät einzugreifen und Fehler bei der Ausführung des kryptologischen Algorithmus einzubringen.
Inhaltsverzeichnis
Beispiele für Seitenkanäle
Timing Attack
Die verbrauchte Rechenzeit. 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
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
Der Stromverbrauch bei der Berechnung. 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 Aufschluß ü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
Differential Power Analysis vergleicht Spuren, indem sie zusätzlich zur SPA-Technik statistische Methoden einsetzt.
Reaktion auf falsche Eingaben
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 [3].
Glitch-Attack
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.
Differential Fault Analysis DFA
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.
Bug Attacks
Ein neuartiger Angriff ist der Bug-Angriff, der Rechenfehler in fehlerhaften Mikroprozessoren ausnutzt (etwa Pentium-FDIV-Bug).[1]
elektromagnetische Abstrahlung
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.
Gegenmaßnahmen
Gegenmaßnahmen sind: Signalreduktion durch konstante Codeausführung, (Einfügen von Redundanzen, um Maschinenbefehle datenunabhängig auszuführen, Vermeiden von bedingten Sprüngen, physikalisches Shielding etc.), Einfügen von Rauschen (Code Obfuscation, Gatter Obfuscation, Signalrauschen, etc.)
Literatur
- 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, Volume 1666 of Lecture Notes in Computer Science, Springer 1999, p. 388–397.
Einzelnachweise
- ↑ Bug Attacks, Biham, E., Carmeli, Y., Shamir, A., CRYPTO 2008, LNCS 5157, S. 221–240, Springer, 2008
Wikimedia Foundation.