Zurück zur Übersicht

Begriff

Speculative Execution

Hardware Security S4
2 Quellen 0 Lernpfade 1 Backlink enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

Kombination aus Branch Prediction und Out-of-Order Execution. Die CPU führt Code aus, der vielleicht gar nicht gebraucht wird. Beispiel: if (BenutzerIstAdmin) { ZeigeGeheimeDaten(); } Die Branch Prediction rät: "Der ist bestimmt Admin (war er gestern auch)." Die CPU führt ZeigeGeheimeDaten() schon mal aus (lädt Daten in Cache), während sie noch prüft, ob der User wirklich Admin ist. Stellt sich heraus: "Ups, kein Admin!" Die CPU macht einen Rollback. Sie verwirft die Ergebnisse. Der User sieht die Daten nie auf dem Bildschirm. Alles gut? Nein. Die Daten liegen jetzt im Cache. Mit Spectre kann ein Hacker messen: "Ist der Zugriff auf Adresse X schnell (Cache Hit) oder langsam (RAM)?" So kann er das Geheimnis Bit für Bit extrahieren.

Merksatz: Eine Optimierungstechnik, bei der ein Computersystem Aufgaben ausführt, bevor bekannt ist, ob sie tatsächlich benötigt werden (auf Basis von Vorhersagen); dies steigert die Leistung, öffnet aber Sicherheitslücken (Side-Channel Attacks), wenn Rückstandsspuren (wie Cache-Inhalte) nicht sauber bereinigt werden.


Quick-Check

  1. Warum machen wir das noch?
    Weil wir ohne Spekulation zurück in die 90er fallen (Performance-technisch). Wir akzeptieren das Risiko und patchen die Lücken, statt die CPUs dumm zu machen.
  2. Nur Intel?
    Nein. AMD, ARM, IBM Power, Apple Silicon - alle modernen High-End CPUs spekulieren. Alle sind prinzipiell anfällig (wenn auch unterschiedlich schwer zu exploiten).
  3. Netzwerk?
    Mit "NetSpectre" kann man das theoretisch sogar übers Netzwerk machen (messen, wie schnell der Server antwortet). Extrem schwer, aber möglich.