Untitled Deck Flashcards

1
Q

Was ist der Unterschied zwischen VIPT und PIPT Caches und warum werden sie in verschiedenen Cache-Leveln verwendet? (02_Cache_03)

A

VIPT (Virtually Indexed, Physically Tagged):
- Verwendet virtuelle Adresse für Index, physische für Tag
- Schneller, da parallel zur Adressübersetzung
- Genutzt in L1 Cache wegen Geschwindigkeit

PIPT (Physically Indexed, Physically Tagged):
- Verwendet physische Adresse für beides
- Vermeidet Aliasing-Probleme
- Genutzt in L2/L3 Cache wegen Sicherheit

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

Nennen Sie die drei Hauptgründe, warum Prozessorhersteller sich von SMT (Simultaneous Multithreading) abwenden? (02_Cache_03)

A
  1. Erhöhte Sicherheitsrisiken durch geteilte Ressourcen
  2. Alternative Technologien bieten ähnliche Performance-Vorteile bei besserer Sicherheit
  3. Zu hohe Komplexität bei der Implementierung und Validierung von Sicherheitsmechanismen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Erklären Sie die Funktionsweise des 2-Bit Saturating Counters in der Branch Prediction Unit? (02_Cache_03)

A
  • Vier Zustände:
    • strongly not taken (00)
    • weakly not taken (01)
    • weakly taken (10)
    • strongly taken (11)
  • Bei korrekter Vorhersage Bewegung zum stärkeren Zustand
  • Bei Fehlvorhersage Bewegung zum schwächeren/gegenteiligen Zustand
  • Bietet Schutz gegen einzelne Fehlvorhersagen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Beschreiben Sie die Struktur und Funktion des Last Level Cache (LLC) in modernen Intel-Prozessoren? (02_Cache_03)

A
  • Gemeinsamer L3-Cache für alle CPU-Kerne
  • In Slices aufgeteilt, die über Ringbus verbunden sind
  • Physisch indiziert und getagged
  • Inklusiv (enthält L1/L2 Cache-Inhalte)
  • Complex L3-Addressing Function für Slice-Zuordnung
  • Unterschiedliche Zugriffszeiten je nach Slice-Lokalität
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was sind die wichtigsten Eigenschaften von Translation Lookaside Buffern (TLBs) und wie unterscheiden sie sich in den verschiedenen Cache-Ebenen? (02_Cache_03)

A
  • iTLB (Instruction TLB): Pro logischem Kern
  • dTLB (Data TLB): Pro physischem Kern
  • sTLB (Second Level TLB): Pro physischem Kern
  • Alle sind VIVT (virtuell indiziert, virtuell getagged)
  • Invalidierung bei Prozesswechsel
  • Komplexe Adressierungsfunktion (XOR-7 bei Intel)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Welche Arten von Prefetching gibt es und wie können sie für Seitenkanal-Angriffe ausgenutzt werden? (02_Cache_03)

A

Prefetch-Befehle:
- PREFETCHT0: Alle Cache-Level
- PREFETCHT1: L2 und höher
- PREFETCHT2: L3 und höher
- PREFETCHNTA: Non-temporal Cache

Angriffsmöglichkeiten:
- Keine Exception bei ungültigen Adressen
- Timing abhängig von Cache-Status
- Vorhersagbare Ladezeiten bei nicht-gecachten Pages

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

Wie funktioniert die Branch Prediction Unit und welche Komponenten sind daran beteiligt? (02_Cache_03)

A

Komponenten:
1. Branch Target Buffer (BTB):
- Speichert Sprungziele
- Indiziert über virtuelle Adressen

  1. Pattern History Table (PHT):
    • Speichert Verlauf von Sprungentscheidungen
    • Verwendet 2-Bit Saturating Counter
  2. Global History Register (GHR):
    • LIFO für globale Sprunghistorie
    • Beeinflusst Vorhersagegenauigkeit
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wie wird die Complex L3-Addressing Function für Sicherheitsanalysen verwendet und warum ist sie wichtig? (02_Cache_03)

A

Bedeutung:
- Bestimmt Verteilung von Cache-Lines auf LLC-Slices
- Ermöglicht gezieltere Prime+Probe Angriffe
- Erlaubt Optimierung von Eviction Sets
- Wichtig für Core-spezifische Timing-Angriffe

Verwendung:
- Rekonstruktion für Intel CPUs mit 2^n Kernen möglich
- Hilft bei der Minimierung von Eviction Sets
- Ermöglicht präzisere Cache-Angriffe

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

Was sind die Hauptunterschiede zwischen verschiedenen Cache-Arten (VIVT, VIPT, PIPT) und wo werden sie eingesetzt? (02_Cache_03)

A

VIVT (Virtual Index Virtual Tag):
- Komplett virtuelle Adressierung
- Schnell aber anfällig für Aliasing
- In TLBs verwendet

VIPT (Virtual Index Physical Tag):
- Gemischte Adressierung
- Guter Kompromiss
- In L1 Caches

PIPT (Physical Index Physical Tag):
- Komplett physische Adressierung
- Sicher aber langsamer
- In L2/L3 Caches

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

Erklären Sie die Rolle und Bedeutung des Process Context Identifiers (PCID) bei TLB-Einträgen? (02_Cache_03)

A
  • PCIDs markieren TLB-Einträge für bestimmte Prozesse
  • Einträge bleiben bei Kontextwechsel erhalten
  • Ermöglicht effizientes Sharing zwischen Prozessen
  • Reduziert TLB-Misses bei häufigen Kontextwechseln
  • Wichtig für Performance vs. Sicherheits-Tradeoff
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wie funktioniert der Ringbus im LLC und welche Auswirkungen hat er auf Cache-Zugriffszeiten? (02_Cache_03)

A
  • Verbindet alle LLC-Slices miteinander
  • Unterschiedliche Zugriffszeiten je nach Distanz
  • Zugriff auf entfernte Slices dauert länger
  • Latenz abhängig von:
    • Anzahl der Hops
    • Busauslastung
    • Slice-Position
  • Kann für Timing-Angriffe ausgenutzt werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Welche Rolle spielt das Global History Register bei modernen Branch Prediction Implementierungen? (02_Cache_03)

A
  • Speichert Historie der letzten Sprungentscheidungen
  • LIFO-Struktur für effiziente Aktualisierung
  • Wird mit Adressbits XOR-verknüpft (Gshare)
  • Länge beeinflusst Vorhersagegenauigkeit
  • Wichtig für Pattern-basierte Vorhersagen
  • Kann für Branch-Prediction-Angriffe genutzt werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Beschreiben Sie den Unterschied zwischen inklusiven und exklusiven Caches und deren Bedeutung für Seitenkanal-Angriffe? (02_Cache_03)

A

Inklusiver Cache (Intel LLC):
- Enthält alle Daten der niedrigeren Cache-Level
- Ermöglicht Cross-Core-Angriffe
- Vereinfacht Flush+Reload

Exklusiver Cache:
- Speichert nur unique Daten
- Erschwert manche Angriffe
- Bessere Speichernutzung

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

Wie wird die Cache-Slice-Auswahl bei modernen Intel-Prozessoren implementiert und warum ist das relevant für Angriffe? (02_Cache_03)

A
  • Complex L3-Addressing Function bestimmt Slice
  • Basiert auf physischer Adresse
  • Nicht-öffentliche Hash-Funktion
  • Gleichmäßige Verteilung auf Slices
  • Wichtig für:
    • Eviction-Set-Konstruktion
    • Cross-Core-Angriffe
    • Performance-Optimierung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Welche Rolle spielt Simultaneous Multithreading bei der Cache-Nutzung und welche Sicherheitsimplikationen hat dies? (02_Cache_03)

A
  • Teilung der Execution Units zwischen Threads
  • Gemeinsame Nutzung von:
    • L1 Cache
    • Branch Predictor
    • TLBs
  • Ermöglicht Cross-Thread-Angriffe
  • Erhöht Cache-Contention
  • Macht Timing-Angriffe einfacher
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wie funktioniert die Cache-Kohärenz im LLC und welche Auswirkungen hat sie auf Seitenkanal-Angriffe? (02_Cache_03)

A
  • MESI-Protokoll verwaltet Cache-Kohärenz
  • Status wird pro Cache-Line gespeichert
  • Zustandsübergänge verursachen Timing-Unterschiede
  • Relevant für:
    • Multi-Core-Angriffe
    • Kohärenz-basierte Seitenkanäle
    • Cross-CPU-Kommunikation
17
Q

Welche Rolle spielen die verschiedenen Prefetch-Mechanismen bei der CPU-Performance und wie können sie für Angriffe missbraucht werden? (02_Cache_03)

A

Hardware Prefetcher:
- Stride-basierte Vorhersage
- Adjacent-line Prefetching
- Stream Prefetching

Software Prefetch:
- Explizite Prefetch-Befehle
- Timing-Unterschiede nutzbar
- Keine Exceptions bei ungültigen Adressen

Angriffsvektoren:
- Prefetch-Timing-Leaks
- Cache-Pollution
- Bandbreiten-Beeinflussung

18
Q

Wie beeinflusst die Cache-Line-Größe die Effektivität von Seitenkanal-Angriffen und warum? (02_Cache_03)

A
  • Standardgröße 64 Bytes bei x86
  • Größere Cache-Lines bedeuten:
    • Weniger Sets
    • Mehr False Sharing
    • Größere Granularität bei Angriffen
  • Beeinflusst:
    • Eviction-Set-Größe
    • Angriffs-Präzision
    • Übertragungsbandbreite
19
Q

Welche Rolle spielt der Memory Type Range Register (MTRR) bei Cache-Verhalten und Seitenkanal-Angriffen? (02_Cache_03)

A
  • Definiert Caching-Verhalten für Speicherbereiche
  • Beeinflusst:
    • Write-Back vs Write-Through
    • Cache-Eigenschaften
    • Prefetch-Verhalten
  • Relevant für:
    • Uncached Memory Attacks
    • Cache-Bypass-Techniken
    • Timing-Angriff-Präzision
20
Q

Wie wird der Kernel Space im Cache behandelt und welche Sicherheitsimplikationen hat dies? (02_Cache_03)

A
  • Kernel Space teilt LLC mit User Space
  • Bis 2018 (pre-KPTI):
    • Kernel in allen Page Tables
    • Schnelle Syscalls
    • Anfällig für Cache-Angriffe
  • Nach KPTI:
    • Getrennte Page Tables
    • Mehr TLB-Flushes
    • Bessere Isolation
  • Performance vs. Sicherheit Trade-off