Diese Leistungsengpässe zwangen CPU-Hersteller, eine Vielzahl verschiedener Optimierungstechniken zu entwickeln, die zu zusätzlichen Schichten zwischen CPU und Speicher führten. Als Ergebnis wurden zwei neue Konzepte eingeführt:
- Out-of-Order-Ausführungsblöcke: intelligente CPU-Optimierungstechnik für intelligente Annahmen, was als nächstes zu tun ist.
- Prozessor-Cache (oder nur Cache): sehr schneller Speicher mit einer geringen Speicherkapazität, sehr nahe an der CPU-Geschwindigkeit. Hier werden nur Daten gespeichert.
Out-of-Order-Ausführungsblöcke treffen Annahmen darüber, welche Daten in naher Zukunft vom laufenden Prozess benötigt werden. Basierend auf diesen Entscheidungen werden Daten einfach vorab aus dem Speicher abgerufen und von der CPU im Cache gespeichert:
- Wenn sich die Annahme als korrekt herausstellt und der laufende Prozess die Zugriffsrechte auf die abgerufenen Daten hat, werden die Daten verarbeitet.
- In allen anderen Fällen wird es einfach vom Prozessor weggeworfen.
Die Anwendung oder das Betriebssystem hat keinerlei Einfluss auf dieses Verhalten. Es ist alles hardcodiert in der Hardware.
Einführung in Side-Channel Angriffe
Die Grundproblematik, die vom Angreifer während des Meltdown-Angriffs missbraucht werden kann
Bis jetzt scheinen die oben beschriebenen Merkmale nicht problematisch zu sein. Es gibt jedoch zwei Hauptprobleme, bei denen Dinge schief gehen:
- Problem 1: Abrufen aus dem Speicher in den Cache, ohne zuerst die Berechtigungen zu prüfen.
Die Berechtigungen für den Zugriff auf die Daten durch die betroffenen CPUs werden nach dem Abrufen von Daten aus dem Speicher in den Cache überprüft. - Problem 2: Keine Daten aus dem Cache löschen
Im Cache gespeicherte Daten werden nach dem Überprüfen der Berechtigungen nicht sofort bereinigt – selbst wenn die Berechtigungsprüfung fehlgeschlagen ist.
Dies ist der Punkt, an dem sich ein sogenannter Side-Channel öffnet und beginnt, wertvolle Informationen an einen Angreifer auszugeben. Definitionsgemäß ist ein Side-Channel eine implizite Informationsquelle, die von einem Angreifer zur Offenlegung sensibler Daten verwendet werden kann.
Side-Channel-Angriffe sind in der IT-Sicherheitswelt nicht neu. Häufige Angriffe, die in der Vergangenheit erfolgreich waren, basierten auf Änderungen des Stromverbrauchs, elektromagnetischer Strahlung oder zeitlichen Schwankungen der Systemleistung. Zum Beispiel wurde das KeeLog-System im März 2008 durch eine hochpräzise Messung des Stromverbrauchs des Geräts während der Verschlüsselung unterbrochen. KeeLog ist eine proprietäre hardwarebedingte Blockchiffre, die von Microchip Inc. entwickelt wurde. Sie wird in einer Vielzahl von entfernten Fahrzeug- und Gebäudekontrollsystemen verwendet. Als Ergebnis wurde das Schließsystem vollständig kompromittiert.