Untitled Deck Flashcards

1
Q

Was sind die grundlegenden Voraussetzungen für Cache-Timing-Seitenkanäle? (02_Cache_01)

A
  1. Gemeinsam genutzter Cache zwischen Angreifer und Opfer 2. Fähigkeit, Zeitunterschiede genau zu messen 3. Kenntnis der Cache-Architektur 4. Möglichkeit, Cache-Misses zu erzwingen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Erklären Sie den Unterschied zwischen Prime+Probe und Flush+Reload Angriffen. (02_Cache_01)

A

Prime+Probe: Benötigt nur gemeinsamen Cache Funktioniert mit Cache-Kollisionen Weniger präzise, aber breiter einsetzbar Stärkeres Messrauschen Flush+Reload: Benötigt gemeinsamen Speicher Benötigt Flush-Instruktion Präzisere Messungen Klareres Signal aber eingeschränkter einsetzbar

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

Was ist Cache-Assoziativität und wie beeinflusst sie Seitenkanal-Angriffe? (02_Cache_01)

A
  • Bestimmt Anzahl der Cache-Zeilen pro Set Höhere Assoziativität bedeutet: • Komplexere Eviction-Muster nötig • Schwieriger Cache-Einträge zu verdrängen • Eviction-Sets werden benötigt Direkter Einfluss auf Prime+Probe Komplexität
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie berechnet man die Gesamtgröße eines set-assoziativen Caches? (02_Cache_01)

A

Formel: Zeilengröße × Ways × Anzahl_Sets Beispiel: 64 Bytes × 4 Ways × 256 Sets = 64 KB

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

Wie implementiert man eine präzise Zeitmessung in C? (02_Cache_01)

A

uint64_t zeitmessung() { uint32_t low, high; asm volatile(“rdtsc” : “=a” (low), “=d” (high)); return ((uint64_t)high &laquo_space;32) | low; }

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

Was ist ein Eviction-Set und wie wird es bei Cache-Angriffen verwendet? (02_Cache_01)

A
  • Gruppe von Adressen, die auf denselben Cache-Set abbilden Wird verwendet, um Zieldaten aus dem Cache zu verdrängen Größe entspricht der Cache-Assoziativität Schlüsselkomponente bei Prime+Probe Angriffen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie beeinflusst virtueller Speicher Cache-basierte Seitenkanäle? (02_Cache_01)

A
  • Erfordert Adressübersetzung TLB-Effekte fügen Zeitvariationen hinzu Virtuell-zu-physische Abbildung erhöht Komplexität Kann zusätzliche Seitenkanäle erzeugen Beeinflusst Angriffszuverlässigkeit
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Beschreiben Sie die Schritte eines grundlegenden Prime+Probe Angriffs. (02_Cache_01)

A
  1. Prime: Ziel-Cache-Set füllen 2. Warten auf Opfer-Zugriff 3. Probe: Zugriffszeit messen 4. Zeitdifferenz analysieren 5. Für Zuverlässigkeit wiederholen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie synchronisiert man Prozesse in einem Cache-basierten verdeckten Kanal? (02_Cache_01)

A
  1. Feste Zeitintervalle 2. Shared-Memory Flags 3. System-Zeit Ausrichtung 4. Start/Stop Bits 5. Fehlererkennungsprotokoll
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was sind häufige Rauschquellen bei Cache-Timing-Messungen? (02_Cache_01)

A
  1. CPU-Frequenzskalierung 2. Kontextwechsel 3. Hintergrundprozesse 4. Aktivität anderer Kerne 5. System-Interrupts
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wie funktioniert ein Directly Mapped Cache und welche Komponenten hat er? (02_Cache_01)

A
  • Feste Anzahl von Einträgen Jeder Eintrag hat feste Größe Adressierung über Modulo-Operation Komponenten: • Index (bestimmt Cache-Zeile) • Offset (Position innerhalb der Zeile) • Tag (zur Validierung)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Erklären Sie den Unterschied zwischen Cache Hit und Cache Miss. (02_Cache_01)

A

Cache Hit: Daten bereits im Cache Schneller Zugriff (~4-10 Zyklen) Cache Miss: Daten nicht im Cache Langsamer Zugriff (~100-200 Zyklen) Erfordert Hauptspeicherzugriff

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

Wie berechnet man den Cache-Set-Index für eine gegebene Adresse? (02_Cache_01)

A
  1. Offset-Bits entfernen (rechtsshift um log2(Zeilengröße)) 2. Index-Bits maskieren (UND-Verknüpfung mit (Anzahl_Sets - 1)) 3. Beispiel für 64-Byte Zeilen, 512 Sets: Index = (Adresse&raquo_space; 6) & 0x1FF
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist der Unterschied zwischen virtuell und physisch indizierten Caches? (02_Cache_01)

A

Virtuell indiziert: Verwendet virtuelle Adressen für Indexierung Schneller, da keine Übersetzung nötig Anfällig für Aliasing Physisch indiziert: Verwendet physische Adressen Benötigt Adressübersetzung Keine Aliasing-Probleme

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

Wie funktioniert die statistische Analyse von Cache-Timing-Daten? (02_Cache_01)

A
  1. Sammeln vieler Messwerte 2. Berechnung von: Mittelwert (Erwartungswert) Varianz Standardabweichung Festlegung von Schwellwerten Ausreißererkennung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was sind die wichtigsten Hardware-Performance-Counter für die Erkennung von Cache-Angriffen? (02_Cache_01)

A
  1. Cache-Miss-Rate 2. Cache-Eviction-Rate 3. Last-Level-Cache Misses 4. Speicherzugriffsmuster 5. TLB-Misses
17
Q

Wie implementiert man eine zeitlich sichere Stringvergleichsfunktion? (02_Cache_01)

A

int sicherer_vergleich(const char* a, const char* b, size_t länge) { volatile int ergebnis = 0; for(size_t i = 0; i < länge; i++) { ergebnis |= a[i] ^ b[i]; _mm_mfence(); } return ergebnis == 0; }

18
Q

Wie beeinflussen verschiedene Cache-Replacement-Policies Seitenkanal-Angriffe? (02_Cache_01)

A

LRU (Least Recently Used): Vorhersagbare Muster Leichter auszunutzen Random: Unvorhersehbar Benötigt mehr Messungen Bessere Sicherheit

19
Q

Welche Rolle spielt die Cache-Größe bei Seitenkanal-Angriffen? (02_Cache_01)

A
  • Bestimmt Anzahl möglicher Cache-Sets Beeinflusst Wahrscheinlichkeit von Kollisionen Größerer Cache = mehr Aufwand für vollständige Eviction Kleinerer Cache = höhere Erfolgswahrscheinlichkeit Wichtig für Eviction-Set-Größe
20
Q

Was sind die wichtigsten Gegenmaßnahmen gegen Cache-Timing-Angriffe? (02_Cache_01)

A
  1. Konstante Ausführungszeit 2. Cache-Prefetching 3. Randomisierung 4. Isolation wichtiger Daten 5. Hardware-Level Partitionierung