Untitled Deck Flashcards
Was sind die grundlegenden Voraussetzungen für Cache-Timing-Seitenkanäle? (02_Cache_01)
- 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
Erklären Sie den Unterschied zwischen Prime+Probe und Flush+Reload Angriffen. (02_Cache_01)
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
Was ist Cache-Assoziativität und wie beeinflusst sie Seitenkanal-Angriffe? (02_Cache_01)
- 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
Wie berechnet man die Gesamtgröße eines set-assoziativen Caches? (02_Cache_01)
Formel: Zeilengröße × Ways × Anzahl_Sets Beispiel: 64 Bytes × 4 Ways × 256 Sets = 64 KB
Wie implementiert man eine präzise Zeitmessung in C? (02_Cache_01)
uint64_t zeitmessung() { uint32_t low, high; asm volatile(“rdtsc” : “=a” (low), “=d” (high)); return ((uint64_t)high «_space;32) | low; }
Was ist ein Eviction-Set und wie wird es bei Cache-Angriffen verwendet? (02_Cache_01)
- 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
Wie beeinflusst virtueller Speicher Cache-basierte Seitenkanäle? (02_Cache_01)
- 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
Beschreiben Sie die Schritte eines grundlegenden Prime+Probe Angriffs. (02_Cache_01)
- Prime: Ziel-Cache-Set füllen 2. Warten auf Opfer-Zugriff 3. Probe: Zugriffszeit messen 4. Zeitdifferenz analysieren 5. Für Zuverlässigkeit wiederholen
Wie synchronisiert man Prozesse in einem Cache-basierten verdeckten Kanal? (02_Cache_01)
- Feste Zeitintervalle 2. Shared-Memory Flags 3. System-Zeit Ausrichtung 4. Start/Stop Bits 5. Fehlererkennungsprotokoll
Was sind häufige Rauschquellen bei Cache-Timing-Messungen? (02_Cache_01)
- CPU-Frequenzskalierung 2. Kontextwechsel 3. Hintergrundprozesse 4. Aktivität anderer Kerne 5. System-Interrupts
Wie funktioniert ein Directly Mapped Cache und welche Komponenten hat er? (02_Cache_01)
- 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)
Erklären Sie den Unterschied zwischen Cache Hit und Cache Miss. (02_Cache_01)
Cache Hit: Daten bereits im Cache Schneller Zugriff (~4-10 Zyklen) Cache Miss: Daten nicht im Cache Langsamer Zugriff (~100-200 Zyklen) Erfordert Hauptspeicherzugriff
Wie berechnet man den Cache-Set-Index für eine gegebene Adresse? (02_Cache_01)
- 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»_space; 6) & 0x1FF
Was ist der Unterschied zwischen virtuell und physisch indizierten Caches? (02_Cache_01)
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
Wie funktioniert die statistische Analyse von Cache-Timing-Daten? (02_Cache_01)
- Sammeln vieler Messwerte 2. Berechnung von: Mittelwert (Erwartungswert) Varianz Standardabweichung Festlegung von Schwellwerten Ausreißererkennung