Wichtige Zusammenfassung Flashcards
Was sind die drei Schritte beim Analysieren eines Seitenkanals?
- Viele Messungen durchführen (Eingabe kann oft kontrolliert werden)
- Qualität der Messreihe bewerten (geringe Varianz ist wichtig)
- Kenngrößen aus der Messreihe ableiten und verwenden
Erkläre den Effekt von CMOS Schaltungen auf den Stromverbrauch.
CMOS Schaltungen verbrauchen Strom beim Umschalten. Mehr Umschalten bedeutet mehr Stromverbrauch. Die Operationen korrelieren mit dem Stromverbrauch, wodurch Operationen durch Strommessung identifiziert werden können.
Was ist der Hauptunterschied zwischen SPA und DPA?
Simple Power Analysis (SPA) nutzt eine oder wenige Messungen und sucht nach Mustern. Differential Power Analysis (DPA) verwendet statistische Methoden auf vielen Messungen.
Wie funktioniert ein Rowhammer Angriff?
Durch schnelle Zugriffe auf DRAM-Zeilen können Bits in benachbarten Zeilen kippen. Der Effekt ist unvorhersehbar aber reproduzierbar. Kann genutzt werden um z.B. Zugriffsrechte zu ändern.
Was sind mögliche Auswirkungen eines Bit-Flips durch Rowhammer?
- Superuser-Bit in Pagetable flippen
- NX-Bit ändern
- Bits in SSH/GPG-Schlüsseln ändern
- Servername in sources.list ändern
Warum ist Montgomery Multiplikation effizient?
Sie vermeidet teure Divisionen durch den Modulus, indem sie stattdessen durch eine Zweierpotenz (R) teilt. Division durch R ist ein einfacher Shift.
Wie berechnet man den Maximum Likelihood Score bei Template Attacks?
Score = Summe der Log-Wahrscheinlichkeiten der Traces für jede Klasse. Alternative: negativer Mahalanobis-Abstand: -√((x-μ)ᵀΣ⁻¹(x-μ))
Was ist der Unterschied zwischen virtuell und physisch indizierten Caches?
Virtuell indizierte Caches nutzen virtuelle Adressen für den Zugriff, physisch indizierte nutzen physische Adressen. L1 ist meist VIPT (virtuell indiziert, physisch getagged), L2 ist PIPT.
Wie funktioniert Branch Prediction?
Die CPU versucht den Ausgang von Verzweigungen vorherzusagen um Pipeline-Stalls zu vermeiden. Nutzt Branch Target Buffer (BTB) für Sprungziele und Pattern History Table (PHT) für Entscheidungen.
Was ist ein 2-Bit Saturating Counter?
Ein Automat mit 4 Zuständen zur Branch Prediction. Zustände sind strongly/weakly taken/not taken. Zustandsübergänge basieren auf tatsächlichem Verhalten der Verzweigung.
Wie funktioniert die Complex TLB-Addressing Function?
Eine Hashfunktion die bestimmt, in welchem Cache-Set eine Adresse gespeichert wird. Details sind oft nicht öffentlich, können aber rekonstruiert werden.
Was sind die Komponenten eines Last Level Cache (LLC)?
- Aufgeteilt in Slices (einer pro CPU-Kern)
- Slices verbunden durch Ringbus
- Inklusiv (enthält Inhalt von L1/L2)
- Physisch indiziert und getagged
Erkläre Software Prefetching Befehle.
PREFETCHT0: In alle Cache-Level laden
PREFETCHT1: In L2 und höher laden
PREFETCHT2: In L3 und höher laden
PREFETCHNTA: In non-temporal Cache laden
Was sind die wichtigsten Register bei der x86-64 Adressübersetzung?
CR3: Enthält physische Adresse der Page Map Level 4 (PML4)
RIP: Instruction Pointer
RSP: Stack Pointer
RBP: Base Pointer
Wie werden Page Tables traversiert?
- CR3 zeigt auf PML4
- Oberste 9 Bits der virtuellen Adresse -> PML4 Eintrag
- Nächste 9 Bits -> PML3 Eintrag
- Nächste 9 Bits -> PML2 Eintrag
- Nächste 9 Bits -> PML1 Eintrag
- Letzte 12 Bits sind Offset
Was bedeutet ASLR?
Address Space Layout Randomization - Zufällige Anordnung von Programmsegmenten im virtuellen Adressraum als Schutz gegen Exploits.
Wie erkennt man Seitenkanalresistenz in der Praxis?
Durch statistische Tests wie:
- Korrelationsanalyse
- T-Test
- Chi-Quadrat-Test
- Varianzanalyse
Was sind typische Angriffsziele bei Smartcards?
- PIN Verifikation
- Kryptographische Schlüssel
- Authentifizierungsprotokolle
- Zufallszahlengeneratoren
Welche Faktoren beeinflussen die Qualität von Power Traces?
- Messequipment (Oszilloskop, Probes)
- Sampling Rate
- Signal-Rausch-Verhältnis
- Umgebungsbedingungen
- Triggering
Was ist der Unterschied zwischen synchronen und asynchronen Traces?
Synchrone Traces haben feste Zeitpunkte für Operationen, asynchrone können zeitlich verschoben sein. Asynchrone Traces erschweren die Analyse.
Wie kann man Traces synchronisieren?
- Hardware Trigger nutzen
- Markante Muster erkennen
- Kreuzkorrelation zwischen Traces
- Dynamic Time Warping
Was sind Points of Interest (POI) bei Template Attacks?
Zeitpunkte in Traces die stark mit der verarbeiteten Information korrelieren. Werden durch Methoden wie CPA, SOST, SOSD, SNR identifiziert.
Erkläre den Begriff ‘Cache Set’
Eine Gruppe von Cache-Lines in die eine bestimmte Adresse geladen werden kann. Bei 8-way set associative Cache hat jedes Set 8 mögliche Positionen.
Was ist der Unterschied zwischen Cache Hit und Cache Miss?
Cache Hit: Daten sind im Cache (schneller Zugriff)
Cache Miss: Daten müssen aus dem Hauptspeicher geladen werden (langsamer Zugriff)
Wie berechnet man die Cache-Set Nummer?
Bei Directly Mapped Cache:
(Adresse»_space; log2(Line Size)) % Anzahl Sets
Was sind die Vorteile von Template Attacks?
- Sehr effektiv wenn gute Profile erstellt werden können
- Braucht weniger Traces in der Angriffsphase
- Kann auch bei Gegenmaßnahmen noch funktionieren
- Scores können vorberechnet werden
Wie funktioniert Cache Replacement bei vollem Cache?
Abhängig von der Policy:
- Random: Zufällige Line wird ersetzt
- LRU: Am längsten nicht genutzte Line
- FIFO: Älteste Line
- PLRU: Pseudo-LRU (Approximation)
Was ist der Unterschied zwischen virtuellen und physischen Adressen?
Virtuelle Adressen sind prozessspezifisch und werden durch MMU in physische Adressen übersetzt. Physische Adressen sind die tatsächlichen Speicheradressen.
Wie groß ist eine typische Cache Line?
Moderne x86 CPUs verwenden meist 64 Byte Cache Lines. Dies ist ein Kompromiss zwischen Speicheroverhead und Lokalitätsausnutzung.
Was bedeutet Cache Coherency?
Verschiedene Caches müssen konsistente Daten haben. Wird durch Protokolle wie MESI sichergestellt:
Modified, Exclusive, Shared, Invalid
Wie funktioniert das MESI Protokoll?
- Modified: Line wurde geändert
- Exclusive: Line nur in diesem Cache
- Shared: Line in mehreren Caches
- Invalid: Line ungültig