Yay, endlich hat AMD mal begriffen dass dementieren zwecklos ist und macht was für die Sicherheit ihrer Kunden.
An der Stelle nochmal vielen Dank für die ausführliche Informationsweitergabe. Da ich dem eigentlich kaum was hinzuzufügen habe versuche ich mal ein wenig zu erklären was es mit Spectre (beide Varianten im Groben) auf sich hat, warum es so schwer ist das zu Fixen, und warum ich vor den Entdeckern dieses Angriffs definitiv meinen Hut ziehe. Gerade für diejenigen die jetzt nicht ganz so technisch versiert wird.
Erstmal: Was ist ein Sidechannel? Kann man das essen?
Antwort: In der Regel nicht. Unter einem Sidechannel versteht man eine indirekte Informationsquelle, also z.Bsp. Abwärme der CPU, Timings (wie hier um Cache-Hits zu entdecken), Geräusche etc.
Wir nehmen mal folgendes Szenario:
In einem Haus mit 4 Parteien, 2 davon Horst und Heike, die statt Durchlauferhitzern in der Wohnung einen Boiler im Keller stehen haben, da das energiesparender ist (fiktives Beispiel, kann sein, kann nicht sein). Außerdem hat man so sofort warmes Wasser (Schnelligkeit). Da man so nicht ganz erkennen kann wer wie viel vom Brennstoff für die Erhitzung gebraucht hat zahlen alle Parteien gleich viel.
Das stört Horst aber ungemein, da er sich nur 2 Mal im Jahr (Ostern und Neujahr) mit warmen Wasser wäscht und sich zu 100% sicher ist dass Heike 10 Stunden am Tag duscht. Nun haben sich folgende Angriffszenarien mit den entsprechenden Gegenmaßnahmen ereignet:
Angriff: Horst schaut Heike durchs Fenster zu.
Lösung: Sichtschutz (Blickdicht, kein Licht, kein nix)
Angriff: Horst hält sein Ohr an die Wand zum Bad.
Lösung: Schallisolierung
Angriff: Horst schaut durch andere Zimmerfenster um durch Ausschlussverfahren sicherzustellen dass sie im Bad ist.
Lösung: Fenster Entfernt und zugemauert
etc.
So, nun kann man davon aussehen dass man das Zimmer von außen nicht mehr sieht, die Wasserzähler für die einzelnen Wohnungen sind einbetoniert, die Rohre verlaufen durch die Wand und direkt nebeneinander, um sie nicht differenzieren zu können. Die Wohnung ist Schall-und Blickdicht. Kein EInbruch möglich. Wir haben also eine Umgebung geschaffen die bestimmte geheime Informationen (Duschzeit) vor Angreifern (Horst) zuverlässig versteckt hält.
In seiner Verzweiflung wird Horst jetzt aber kreativ:
Er hat die Information dass Moni und Gabriel, die 2 anderen Parteien, immer abends duschen da sie morgens sehr früh raus müssen. Jetzt könnte er sagen dass wenn die Wand hinter der sich die Leitungen verbergen aufheizt, muss grad jemand duschen (oder sich sehr lange die Hände waschen). Leider ist die Wand aber gut isoliert.
Also macht Horst folgendes (in grober Analogie zu Spectre):
Abends, nachdem Moni und Gabriel geduscht haben klemmt er den Boiler ab und gießt 4 Stunden lang kaltes Wasser über die ausgehenden Leitungen. Die beiden unschuldigen merken dann Morgens nur dass das Warmwasser fürs Händewaschen länger brauch. Er aber auch. Und genau hier haben wir den "Sidechannel". Wenn er Morgens zur vermuteten Zeit das warme Wasser anmacht wird er merken dass das Wasser sofort warm ist, die Rohre sind also bereits wieder beheizt und der Boiler unter Dampf. Damit hat er die Information die er gar nicht hätte haben dürfen. Ausgehend davon dass Heike ein Gewohnheitstier ist und jeden Tag zur gleichen Zeit duscht (da sie ja zur Arbeit fährt) holt Horst sich so nach und nach die Zeiten rein indem er die Probe zu verschiedenen Zeiten macht und hat nach mehreren Wochen seinen Beweis (das vollständige Datum).
Ich hoffe das war so halbwegs verständlich illustriert, ich würde mich über Anmerkungen freuen.