Articles

Seitenkanalangriff

Da Seitenkanalangriffe auf der Beziehung zwischen Informationen beruhen, die über einen Seitenkanal gesendet (durchgesickert) werden, und den geheimen Daten, Gegenmaßnahmen lassen sich in zwei Hauptkategorien einteilen: (1) die Freisetzung solcher Informationen eliminieren oder reduzieren und (2) die Beziehung zwischen den durchgesickerten Informationen und den geheimen Daten beseitigen, das heißt, die durchgesickerten Informationen unabhängig oder vielmehr unkorreliert zu den geheimen Daten machen, typischerweise durch irgendeine Form der Randomisierung des Chiffretextes, der die Daten auf eine Weise transformiert, die rückgängig gemacht werden kann, nachdem die kryptografische Operation (z. B. Entschlüsselung) abgeschlossen ist.

Unter der ersten Kategorie sind jetzt Displays mit spezieller Abschirmung zur Verringerung elektromagnetischer Emissionen und zur Verringerung der Anfälligkeit für Sturmangriffe im Handel erhältlich. Die Konditionierung und Filterung von Stromleitungen kann dazu beitragen, Stromüberwachungsangriffe abzuschrecken, obwohl solche Maßnahmen vorsichtig angewendet werden müssen, da selbst sehr kleine Korrelationen bestehen bleiben und die Sicherheit beeinträchtigen können. Physische Gehäuse können das Risiko einer schleichenden Installation von Mikrofonen (zur Abwehr akustischer Angriffe) und anderen Mikroüberwachungsgeräten (gegen CPU-Leistungsaufnahme oder Wärmebildangriffe) verringern.

Eine weitere Gegenmaßnahme (noch in der ersten Kategorie) besteht darin, den emittierten Kanal mit Rauschen zu stören. Zum Beispiel kann eine zufällige Verzögerung hinzugefügt werden, um Timing-Angriffe abzuschrecken, obwohl Gegner diese Verzögerungen kompensieren können, indem sie mehrere Messungen mitteln (oder allgemeiner mehr Messungen in der Analyse verwenden). Mit zunehmendem Rauschen im Seitenkanal muss der Gegner mehr Messungen sammeln.Eine weitere Gegenmaßnahme unter der ersten Kategorie ist die Verwendung von Sicherheitsanalysesoftware, um bestimmte Klassen von Seitenkanalangriffen zu identifizieren, die während der Entwurfsphase der zugrunde liegenden Hardware selbst gefunden werden können. Timing-Angriffe und Cache-Angriffe sind beide durch bestimmte im Handel erhältliche Sicherheitsanalysesoftwareplattformen identifizierbar, die Tests zur Identifizierung der Angriffs-Sicherheitsanfälligkeit selbst sowie zur Wirksamkeit der Architekturänderung zur Umgehung der Sicherheitsanfälligkeit ermöglichen. Die umfassendste Methode, um diese Gegenmaßnahme einzusetzen, besteht darin, einen sicheren Entwicklungslebenszyklus für Hardware zu erstellen, der die Nutzung aller verfügbaren Sicherheitsanalyseplattformen in ihren jeweiligen Phasen des Hardware-Entwicklungslebenszyklus umfasst.

Bei Timing-Angriffen gegen Ziele, deren Rechenzeiten in diskrete Taktzyklen quantisiert werden, besteht eine wirksame Gegenmaßnahme darin, die Software isochron zu gestalten, d.h. in einer exakt konstanten Zeit unabhängig von geheimen Werten zu laufen. Dies macht Timing-Angriffe unmöglich. Solche Gegenmaßnahmen können in der Praxis schwierig zu implementieren sein, da sogar einzelne Anweisungen auf einigen CPUs ein variables Timing haben können.Eine partielle Gegenmaßnahme gegen einfache Power-Attacken, nicht aber differenzielle Power-Analyse-Attacken, besteht darin, die Software so zu gestalten, dass sie im „Program Counter Security Model“ „PC-sicher“ ist. In einem PC-Secure-Programm hängt der Ausführungspfad nicht von geheimen Werten ab. Mit anderen Worten, alle bedingten Zweige hängen nur von öffentlichen Informationen ab.(Dies ist eine restriktivere Bedingung als isochroner Code, aber eine weniger restriktive Bedingung als verzweigungsfreier Code.) Obwohl Multiplikationsoperationen auf praktisch allen CPUs mehr Leistung als NOP benötigen, verhindert die Verwendung eines konstanten Ausführungspfads, dass solche operationsabhängigen Leistungsunterschiede (Leistungsunterschiede bei der Auswahl eines Zweigs gegenüber einem anderen) geheime Informationen verlieren.Auf Architekturen, bei denen die Befehlsausführungszeit nicht datenabhängig ist, ist ein PC-Secure-Programm auch immun gegen Timing-Angriffe.

Eine andere Möglichkeit, wie Code nicht isochron sein kann, besteht darin, dass moderne CPUs einen Speichercache haben: der Zugriff auf selten verwendete Informationen verursacht eine große Zeitstrafe, die einige Informationen über die Häufigkeit der Verwendung von Speicherblöcken aufdeckt. Kryptografischer Code, der Cache-Angriffen widerstehen soll, versucht, Speicher nur auf vorhersehbare Weise zu verwenden (z. B. nur auf die Eingabe-, Ausgabe- und Programmdaten zuzugreifen und dies nach einem festen Muster zu tun). Beispielsweise müssen datenabhängige Tabellensuchen vermieden werden, da der Cache anzeigen könnte, auf welchen Teil der Nachschlagetabelle zugegriffen wurde.

Andere partielle Gegenmaßnahmen versuchen, die Menge an Informationen zu reduzieren, die aus datenabhängigen Leistungsunterschieden austreten.Einige Operationen verwenden eine Leistung, die mit der Anzahl von 1 Bit in einem geheimen Wert korreliert.Die Verwendung eines Codes mit konstantem Gewicht (z. B. die Verwendung von Fredkin-Gattern oder Dual-Rail-Codierung) kann das Austreten von Informationen über das Hamming-Gewicht des geheimen Werts verringern, obwohl ausnutzbare Korrelationen wahrscheinlich bestehen bleiben, es sei denn, der Abgleich ist perfekt. Dieses „ausgewogene Design“ kann in Software angenähert werden, indem sowohl die Daten als auch ihr Komplement zusammen manipuliert werden.

Mehrere „sichere CPUs“ wurden als asynchrone CPUs gebaut; sie haben keine globale Zeitreferenz. Während diese CPUs Timing- und Leistungsangriffe erschweren sollten, fanden nachfolgende Untersuchungen heraus, dass Timing-Variationen in asynchronen Schaltungen schwerer zu entfernen sind.

Ein typisches Beispiel für die zweite Kategorie (Dekorrelation) ist eine Technik, die als Blendung bekannt ist. Im Falle der RSA-Entschlüsselung mit dem geheimen Exponenten d {\displaystyle d}

d

und dem entsprechenden Verschlüsselungsexponenten e {\displaystyle e}

e

und dem Modul m{\displaystyle m}

m

gilt die Technik wie folgt (der Einfachheit halber wird die modulare Reduktion um m in den Formeln weggelassen): vor dem Entschlüsseln, also vor der Berechnung des Ergebnisses von y d {\displaystyle y^{d}}

y^d

für einen gegebenen Chiffretext y {\displaystyle y}

y

, wählt das System eine Zufallszahl r{\displaystyle r}

r

und verschlüsselt es mit dem öffentlichen Exponenten e {\displaystyle e}

e

, um r e {\displaystyle r^{e}}

r^e

zu erhalten . Dann erfolgt die Entschlüsselung auf dem ⋅ r e {\displaystyle y\cdot r^{e}}

y \cdot r^e

, um ( y \ r e ) d = y d ⋅ r e ⋅ d = y d ⋅ r {\displaystyle {(y\cdot r^{e})}^{d}=y^{d}\cdot r^{e\cdot d}=y^{ d}\cdot r}

{(y \cdot r^e)}^d = y^d \cdot r^{e\cdot d} = y^d \cdot t

. Da das Entschlüsselungssystem r {\displaystyle r}

r

gewählt hat, kann es sein inverses Modulo m {\displaystyle m}

m

berechnen, um den Faktor r{\displaystyle r}

r

im Ergebnis und erhalten y d {\displaystyle y^{d}}

y^d

, das tatsächliche Ergebnis der Entschlüsselung. Bei Angriffen, die das Sammeln von Seitenkanalinformationen aus Operationen mit vom Angreifer kontrollierten Daten erfordern, ist das Blenden eine wirksame Gegenmaßnahme, da die tatsächliche Operation mit einer randomisierten Version der Daten ausgeführt wird, über die der Angreifer keine Kontrolle oder gar kein Wissen hat. Eine allgemeinere Gegenmaßnahme (da sie gegen alle Seitenkanalangriffe wirksam ist) ist die Maskierungsgegenmaßnahme. Das Prinzip der Maskierung besteht darin, einen sensitiven Wert y {\displaystyle y}

y

nicht direkt zu manipulieren, sondern eine Kopie davon zu manipulieren: eine Reihe von Variablen (genannt „Aktien“) und 1 , . . . , y d {\displaystyle y_{1},…,y_{d}}

y_{1},...,y_{d}

so dass y = y 1 ⊕ . . . ⊕ y d {\displaystyle y=y_{1}\oplus …\oplus y_{d}}

{\displaystyle y=y_{1}\oplus ...\oplus y_{d}}

(wobei ⊕ {\displaystyle \oplus }

\oplus

die XOR-Operation ist). Ein Angreifer muss alle Werte der Freigaben wiederherstellen, um aussagekräftige Informationen zu erhalten. Kürzlich wurde White-Box-Modellierung verwendet, um eine generische Gegenmaßnahme auf Schaltkreisebene mit geringem Overhead sowohl gegen EM- als auch gegen Power-Side-Channel-Angriffe zu entwickeln. Um die Auswirkungen der übergeordneten Metallschichten in einem IC, der als effizientere Antennen fungiert, zu minimieren, besteht die Idee darin, den Kryptokern mit einer Signaturunterdrückungsschaltung einzubetten, die lokal innerhalb der untergeordneten Metallschichten verlegt wird und sowohl zur Strom- als auch zur EM-Seitenkanalangriffsimmunität führt.