Wichtige Zusammenfassung Flashcards

1
Q

Was sind die drei Schritte beim Analysieren eines Seitenkanals?

A
  1. Viele Messungen durchführen (Eingabe kann oft kontrolliert werden)
  2. Qualität der Messreihe bewerten (geringe Varianz ist wichtig)
  3. Kenngrößen aus der Messreihe ableiten und verwenden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Erkläre den Effekt von CMOS Schaltungen auf den Stromverbrauch.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist der Hauptunterschied zwischen SPA und DPA?

A

Simple Power Analysis (SPA) nutzt eine oder wenige Messungen und sucht nach Mustern. Differential Power Analysis (DPA) verwendet statistische Methoden auf vielen Messungen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie funktioniert ein Rowhammer Angriff?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was sind mögliche Auswirkungen eines Bit-Flips durch Rowhammer?

A
  • Superuser-Bit in Pagetable flippen
  • NX-Bit ändern
  • Bits in SSH/GPG-Schlüsseln ändern
  • Servername in sources.list ändern
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Warum ist Montgomery Multiplikation effizient?

A

Sie vermeidet teure Divisionen durch den Modulus, indem sie stattdessen durch eine Zweierpotenz (R) teilt. Division durch R ist ein einfacher Shift.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie berechnet man den Maximum Likelihood Score bei Template Attacks?

A

Score = Summe der Log-Wahrscheinlichkeiten der Traces für jede Klasse. Alternative: negativer Mahalanobis-Abstand: -√((x-μ)ᵀΣ⁻¹(x-μ))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist der Unterschied zwischen virtuell und physisch indizierten Caches?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie funktioniert Branch Prediction?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was ist ein 2-Bit Saturating Counter?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wie funktioniert die Complex TLB-Addressing Function?

A

Eine Hashfunktion die bestimmt, in welchem Cache-Set eine Adresse gespeichert wird. Details sind oft nicht öffentlich, können aber rekonstruiert werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was sind die Komponenten eines Last Level Cache (LLC)?

A
  • Aufgeteilt in Slices (einer pro CPU-Kern)
  • Slices verbunden durch Ringbus
  • Inklusiv (enthält Inhalt von L1/L2)
  • Physisch indiziert und getagged
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Erkläre Software Prefetching Befehle.

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was sind die wichtigsten Register bei der x86-64 Adressübersetzung?

A

CR3: Enthält physische Adresse der Page Map Level 4 (PML4)
RIP: Instruction Pointer
RSP: Stack Pointer
RBP: Base Pointer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wie werden Page Tables traversiert?

A
  1. CR3 zeigt auf PML4
  2. Oberste 9 Bits der virtuellen Adresse -> PML4 Eintrag
  3. Nächste 9 Bits -> PML3 Eintrag
  4. Nächste 9 Bits -> PML2 Eintrag
  5. Nächste 9 Bits -> PML1 Eintrag
  6. Letzte 12 Bits sind Offset
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was bedeutet ASLR?

A

Address Space Layout Randomization - Zufällige Anordnung von Programmsegmenten im virtuellen Adressraum als Schutz gegen Exploits.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Wie erkennt man Seitenkanalresistenz in der Praxis?

A

Durch statistische Tests wie:
- Korrelationsanalyse
- T-Test
- Chi-Quadrat-Test
- Varianzanalyse

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Was sind typische Angriffsziele bei Smartcards?

A
  • PIN Verifikation
  • Kryptographische Schlüssel
  • Authentifizierungsprotokolle
  • Zufallszahlengeneratoren
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Welche Faktoren beeinflussen die Qualität von Power Traces?

A
  • Messequipment (Oszilloskop, Probes)
  • Sampling Rate
  • Signal-Rausch-Verhältnis
  • Umgebungsbedingungen
  • Triggering
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Was ist der Unterschied zwischen synchronen und asynchronen Traces?

A

Synchrone Traces haben feste Zeitpunkte für Operationen, asynchrone können zeitlich verschoben sein. Asynchrone Traces erschweren die Analyse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Wie kann man Traces synchronisieren?

A
  • Hardware Trigger nutzen
  • Markante Muster erkennen
  • Kreuzkorrelation zwischen Traces
  • Dynamic Time Warping
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Was sind Points of Interest (POI) bei Template Attacks?

A

Zeitpunkte in Traces die stark mit der verarbeiteten Information korrelieren. Werden durch Methoden wie CPA, SOST, SOSD, SNR identifiziert.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Erkläre den Begriff ‘Cache Set’

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Was ist der Unterschied zwischen Cache Hit und Cache Miss?

A

Cache Hit: Daten sind im Cache (schneller Zugriff)
Cache Miss: Daten müssen aus dem Hauptspeicher geladen werden (langsamer Zugriff)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Wie berechnet man die Cache-Set Nummer?

A

Bei Directly Mapped Cache:
(Adresse&raquo_space; log2(Line Size)) % Anzahl Sets

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Was sind die Vorteile von Template Attacks?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Wie funktioniert Cache Replacement bei vollem Cache?

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Was ist der Unterschied zwischen virtuellen und physischen Adressen?

A

Virtuelle Adressen sind prozessspezifisch und werden durch MMU in physische Adressen übersetzt. Physische Adressen sind die tatsächlichen Speicheradressen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Wie groß ist eine typische Cache Line?

A

Moderne x86 CPUs verwenden meist 64 Byte Cache Lines. Dies ist ein Kompromiss zwischen Speicheroverhead und Lokalitätsausnutzung.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Was bedeutet Cache Coherency?

A

Verschiedene Caches müssen konsistente Daten haben. Wird durch Protokolle wie MESI sichergestellt:
Modified, Exclusive, Shared, Invalid

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Wie funktioniert das MESI Protokoll?

A
  • Modified: Line wurde geändert
  • Exclusive: Line nur in diesem Cache
  • Shared: Line in mehreren Caches
  • Invalid: Line ungültig
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Welche Informationen enthält ein Cache Tag?

A
  • Physische Adresse der Daten
  • MESI Status Bits
  • Error Correction Codes
  • Weitere Metadaten
33
Q

Was ist Speculative Execution?

A

CPU führt Befehle spekulativ aus bevor klar ist ob sie benötigt werden. Bei falscher Spekulation werden Ergebnisse verworfen.

34
Q

Wie kann man Cache Timing messen?

A
  1. rdtsc vor Zugriff
  2. Zugriff durchführen
  3. rdtsc nach Zugriff
  4. Differenz berechnen
35
Q

Was ist ein Page Fault?

A

Exception wenn auf eine virtuelle Adresse zugegriffen wird die nicht gemappt ist oder keine korrekten Rechte hat.

36
Q

Wie funktioniert Memory Deduplication?

A

Identische Seiten im physischen Speicher werden zusammengelegt um Speicher zu sparen. Kann für Seitenkanalangriffe genutzt werden.

37
Q

Was ist der Unterschied zwischen Code und Data Cache?

A

Code Cache (I-Cache) speichert Instruktionen, ist meist read-only. Data Cache (D-Cache) speichert Daten, erlaubt Lesen und Schreiben.

38
Q

Welche Rolle spielt die Cache Line Size bei Angriffen?

A

Bestimmt die Granularität des Angriffs. Größere Lines bedeuten weniger präzise Angriffe aber auch weniger Overhead.

39
Q

Was sind Hardware Performance Counter?

A

CPU Register die verschiedene Events zählen:
- Cache Misses
- Branch Mispredictions
- Executed Instructions
- Pipeline Stalls

40
Q

Wie kann man HPCs für Angriffserkennung nutzen?

A

Ungewöhnliche Patterns in HPCs können Angriffe anzeigen:
- Hohe Cache Miss Rate
- Viele Flush Operationen
- Ungewöhnliche Branch Patterns

41
Q

Was ist ein Timing Oracle?

A

Ein System das durch unterschiedliche Antwortzeiten Information preisgibt. Basis vieler Seitenkanalangriffe.

42
Q

Wie funktioniert Address Translation Caching?

A

TLBs cachen verschiedene Levels der Page Table:
- PML1E im TLB
- PML2E/PDE Cache
- PML3E/PDPTE Cache
- PML4E Cache

43
Q

Welche CPU Features können für Seitenkanäle genutzt werden?

A
  • Caches (L1/L2/LLC)
  • Branch Prediction
  • TLBs
  • Speculative Execution
  • Out-of-Order Execution
44
Q

Was sind typische Gegenmaßnahmen gegen Timing Angriffe?

A
  • Konstante Ausführungszeit
  • Zufällige Verzögerungen
  • Blinding von Daten
  • Vermeiden datenabhängiger Verzweigungen
45
Q

Wie kann man Cache Eviction Sets finden?

A
  1. Adressen mit gleichem Index sammeln
  2. Minimale Teilmenge finden die Eviction verursacht
  3. Überprüfen durch Zeitmessungen
46
Q

Was ist der Unterschied zwischen Instruction und Data TLB?

A

ITLB cached Übersetzungen für Instruktionen, DTLB für Daten. ITLB ist meist kleiner und wird pro logischem Kern dupliziert.

47
Q

Wie funktioniert der komplette Page Table Walk?

A
  1. CR3 Register lesen
  2. PML4 Index aus VA -> PML4E
  3. PML3 Index aus VA -> PDPTE
  4. PML2 Index aus VA -> PDE
  5. PML1 Index aus VA -> PTE
  6. Offset aus VA -> Physische Adresse
48
Q

Was sind Process Context Identifiers (PCID)?

A

IDs die TLB Einträgen zugeordnet werden können. Ermöglichen selektives Flush beim Kontextwechsel statt kompletter TLB Invalidierung.

49
Q

Wie kann man Cache-basierte Covert Channels bauen?

A
  1. Sender und Empfänger einigen sich auf Cache Lines
  2. Sender moduliert Zugriffszeiten durch Cache-Zugriffe
  3. Empfänger misst Zugriffszeiten
  4. Synchronisation über Timing oder externe Events
50
Q

Was ist ein Seitenkanal (Side Channel)?

A

Ein Kanal der auf ungewollten physikalischen Informationen basiert und neue Angriffsarten ermöglicht. Die Informationen können bereits vorhanden oder hervorgebracht sein.

51
Q

Was ist der Unterschied zwischen Seitenkanälen und verdeckten Kanälen?

A

Seitenkanäle (Side Channels) dienen dem Abhören/Gewinnen interner Informationen, meist passiv. Verdeckte Kanäle (Covert Channels) dienen der gezielten Kommunikation und benötigen einen aktiven Angreifer.

52
Q

Nenne die wichtigsten Arten von Seitenkanälen.

A
  • Timing (Kocher 1996)
  • Power/Stromverbrauch (KJJ 1999)
  • Elektromagnetische Strahlung (2001)
  • Temperatur (2009)
  • Licht (2002)
  • Geräusche (2004)
  • Photonische Emissionen (2012)
53
Q

Was sind die Hauptgründe warum Seitenkanäle funktionieren?

A
  • Abhängigkeit von der Reihenfolge der Instruktionen
  • Abhängigkeit von den bearbeiteten Daten
  • Physikalische Effekte
  • Möglichkeit in kleinen Stücken zu arbeiten
54
Q

Was ist ein Padding Oracle Angriff?

A

Ein Angriff der Unterschiede in der Fehlerbehandlung bei korrektem/inkorrektem Padding ausnutzt. Der Server antwortet unterschiedlich auf bad_padding oder bad_decryption, wodurch der Klartext rekonstruiert werden kann.

55
Q

Wie funktioniert PKCS#7 Padding?

A

Ganze Bytes werden angefügt, wobei der Wert jedes Bytes der Padding-Länge entspricht. Beispiel:
|AA AA AA AA|AA 03 03 03|
|AA AA AA 05|05 05 05 05|

56
Q

Erkläre den CBC (Cipher Block Chaining) Modus.

A
  • Jeder Plaintext-Block wird vor der Verschlüsselung mit dem vorherigen Ciphertext-Block XOR-verknüpft
  • Der erste Block verwendet einen Initialization Vector (IV)
  • Änderungen in einem Block beeinflussen alle nachfolgenden Blöcke
  • Wird häufig mit Padding verwendet
57
Q

Was ist die Lucky Thirteen Attacke?

A

Ein Timing-Angriff auf TLS, der Unterschiede in der Verarbeitungszeit bei korrektem/inkorrektem Padding ausnutzt. Der Name kommt von den 13 Bytes, die mindestens für einen MAC-Check verarbeitet werden müssen.

58
Q

Was ist ein Cache und wozu dient er?

A

Ein Cache ist ein kleiner, schneller Speicher zur Beschleunigung von Zugriffen. Er hat linear geordnete, blockweise geordnete oder ungeordnete Einträge. Der Zugriff erfolgt über Schlüssel und die Konfiguration/Belegung ändert sich durch Zugriffe.

59
Q

Erkläre den Unterschied zwischen L1 und L2 Cache.

A

L1 Cache ist virtuell indiziert und physisch getagged (vipt), während L2 Cache physisch indiziert und physisch getagged (pipt) ist. L1 ist kleiner aber schneller als L2.

60
Q

Was ist ein Flush+Reload Angriff?

A

Ein Angriff bei dem der Angreifer:
1. Eine Cacheline invalidiert (flush)
2. Wartet
3. Die Zugriffszeit auf die Cacheline misst (reload)
4. Aus der Zugriffszeit schließt ob das Opfer auf die Daten zugegriffen hat

61
Q

Was ist ein Prime+Probe Angriff?

A

Ein Angriff bei dem der Angreifer:
1. Den Cache mit eigenen Daten füllt (prime)
2. Wartet
3. Erneut auf seine Daten zugreift und die Zeit misst (probe)
4. Aus der Zugriffszeit schließt ob das Opfer den Cache benutzt hat

62
Q

Wie funktioniert dynamisches Binden (Dynamic Linking)?

A

Die Adressen von Bibliotheksfunktionen werden erst zur Laufzeit aufgelöst. Dazu werden die Process Linkage Table (PLT) und Global Offset Table (GOT) verwendet. Bei erstmaligem Aufruf wird die echte Adresse der Funktion in der GOT gespeichert.

63
Q

Was sind PLT und GOT?

A

PLT (Procedure Linkage Table) enthält Code zum Aufruf von Bibliotheksfunktionen. GOT (Global Offset Table) enthält die echten Adressen der Funktionen. Zusammen ermöglichen sie das dynamische Binden von Bibliotheken.

64
Q

Was ist ein Eviction Set?

A

Eine Menge von Adressen, deren Zugriff einen bestimmten Cache-Eintrag zuverlässig verdrängt. Wird für Prime+Probe Angriffe benötigt.

65
Q

Erkläre die drei Hauptarten von CPU Caches.

A
  • Directly Mapped Cache (DMC): Jede Adresse mapped auf genau einen Cache-Eintrag
  • Fully Associative Cache (FAC): Adressen können in jeden Cache-Eintrag geladen werden
  • Set Associative Cache (SAC): Kombination aus DMC und FAC, Adressen können in bestimmte Sets geladen werden
66
Q

Was sind die wichtigsten Cache Replacement Policies?

A

Die wichtigsten sind Random Replacement (RR) und Least-Recently-Used (LRU). Sie bestimmen welcher Cache-Eintrag verdrängt wird wenn der Cache voll ist.

67
Q

Was ist Simultaneous Multithreading (SMT)?

A

Eine Technik um die Execution Units einer CPU besser auszulasten, indem zwei logische Threads auf einem physischen Kern laufen. Ressourcen wie Register werden verdoppelt, andere wie Caches werden geteilt.

68
Q

Wie funktioniert der RSA Timing-Angriff von Kocher?

A

Der Angriff nutzt Timing-Unterschiede bei der Montgomery-Multiplikation aus. Durch statistische Analyse der Ausführungszeiten können die einzelnen Bits des privaten Schlüssels rekonstruiert werden.

69
Q

Was ist Message Blinding bei RSA?

A

Eine Gegenmaßnahme gegen Timing-Angriffe. Statt M wird L^e * M signiert, wobei L zufällig gewählt wird. Die eigentliche Signatur erhält man durch Multiplikation mit L^(-1).

70
Q

Wie berechnet man den Mittelwert einer Messreihe?

A

Der Mittelwert μ ist die Summe aller Messwerte geteilt durch ihre Anzahl:
μ = (x₁ + x₂ + … + xₙ)/n

71
Q

Wie berechnet man die Varianz einer Messreihe?

A

Die Varianz ist der Erwartungswert der quadratischen Abweichungen vom Mittelwert:
Var(X) = E((X-μ)²) = Σ(x-μ)² * P(X=x)

72
Q

Was ist ein Template Attack?

A

Ein profilierter Angriff in zwei Phasen:
1. Profiling: Erstellen von Templates (Wahrscheinlichkeitsverteilungen) für verschiedene Schlüsselwerte
2. Matching: Zuordnung von Messungen zu Templates um den Schlüssel zu ermitteln

73
Q

Wie testet man auf Seitenkanalresistenz?

A

Man misst viele Traces und führt statistische Tests durch. Wichtige Metriken sind Korrelation zwischen Messwerten und verarbeiteten Daten sowie die Varianz der Messungen.

74
Q

Was sind TLBs und wozu werden sie verwendet?

A

Translation Lookaside Buffer (TLB) cachen Adressübersetzungen von virtuellen zu physischen Adressen. Es gibt iTLB (Instruction), dTLB (Data) und sTLB (Shared/Second Level).

75
Q

Wie kann man Seitenkanalangriffe abschwächen?

A
  • Konstante Ausführungszeit sicherstellen
  • Zufälliges Rauschen hinzufügen
  • Operationen shuffeln/maskieren
  • Hardware isolieren (TEMPEST)
  • Zugriffsmuster verschleiern
76
Q

Berechne eine PKCS#7 Padding-Länge.

A

Bei einem 16-Byte Block und 13 Byte Daten werden 3 Padding-Bytes benötigt. Der Wert dieser Bytes ist dann 0x03, also: |DATA 03 03 03|

77
Q

Erkläre den Fisher-Yates Shuffling Algorithmus.

A

Ein Algorithmus zum zufälligen Permutieren von n Elementen:
1. Starte beim letzten Element i=n-1
2. Wähle zufällige Position j zwischen 0 und i
3. Tausche Elemente an Position i und j
4. Verringere i und wiederhole bis i=0

78
Q

Wie misst man Ausführungszeiten in der Praxis?

A

Mit dem rdtsc Befehl (Read Time-Stamp Counter):
uint32_t ticklow, tickhigh;
__asm volatile (“rdtsc” : “=a” (ticklow), “=d” (tickhigh));