Aktuelle Entwicklungen der Hardwaresicherheit

Welche Kombination beschreibt retpoline und IBRS richtig, zwei Gegenmaßnahmen gegen die Spectre-Variante, die die Vorhersage indirekter Sprünge missbraucht (Branch Target Injection)?

  1. Aretpoline baut die Schaltung der CPU um und entfernt den Vorhersager, und IBRS ist eine Gegenmaßnahme, bei der der Compiler Befehle für indirekte Sprünge in eine andere Befehlsfolge umschreibt
  2. Bretpoline ist eine Software-Gegenmaßnahme, die indirekte Sprünge durch Befehlsfolgen ersetzt, die nicht auf den Vorhersager angewiesen sind, und IBRS ist eine CPU-Funktion, die die Vorhersage indirekter Sprünge einschränkt
  3. CSowohl retpoline als auch IBRS schalten die spekulative Ausführung der CPU selbst ab, sodass mit beiden der Leistungsgewinn durch spekulative Ausführung verloren geht
Antwort und Erläuterung anzeigen

Antwort: B. retpoline ist eine Software-Gegenmaßnahme, die indirekte Sprünge durch Befehlsfolgen ersetzt, die nicht auf den Vorhersager angewiesen sind, und IBRS ist eine CPU-Funktion, die die Vorhersage indirekter Sprünge einschränkt

Bei retpoline ersetzt der Compiler Befehle für indirekte Sprünge durch eine Befehlsfolge aus call und ret, sodass die CPU statt des missbrauchbaren Vorhersagers für indirekte Sprünge die Vorhersage der Rücksprungadresse verwendet und spekulativ ausgeführter Code harmlos in einer Schleife leerläuft. IBRS ist eine CPU-Steuerfunktion, die etwa per Microcode-Update hinzukam und beispielsweise die Vorhersage indirekter Sprünge im Kernel so einschränkt, dass sie nicht dem folgt, was Benutzerprogramme antrainiert haben. Auf älteren CPUs kostete jedes Umschalten von IBRS viel Zeit, weshalb retpoline weit verbreitet war; neuere CPUs bieten eine verbesserte Variante, die dauerhaft eingeschaltet bleiben kann (eIBRS). Manche CPUs stützen sich jedoch auch für die Vorhersage der Rücksprungadresse auf einen anderen Vorhersager, und unter anderem Retbleed, 2022 veröffentlicht, zeigte Fälle, in denen retpoline allein nicht ausreicht.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Aktuelle Entwicklungen der Hardwaresicherheit

  1. Eine Verarbeitung dauerte vor dem Einbau von Gegenmaßnahmen gegen spekulative Ausführung 10 Sekunden und rief in dieser Zeit 5 Millionen Mal einen Systemaufruf auf. Mit den Gegenmaßnahmen steigt die Verarbeitungszeit pro Systemaufruf von 0,4 µs auf 0,6 µs, während die Zeit aller übrigen Teile unverändert bleibt. Um welchen Anteil erhöht sich die Gesamtzeit der Verarbeitung?
  2. In gitterbasierter Post-Quanten-Kryptografie werden wiederholt Polynome vom Grad n = 256 multipliziert. Benötigt das naive Verfahren, bei dem alle Koeffizientenpaare multipliziert werden, etwa n² Multiplikationen und das Verfahren mit der zahlentheoretischen Transformation (NTT) etwa n log₂ n, auf etwa welchen Bruchteil verringert die NTT die Zahl der Multiplikationen? Welcher Wert liegt am nächsten?
  3. Der öffentliche Schlüssel von ML-KEM-768 ist 1184 Byte groß und sein Geheimtext 1088 Byte, während der öffentliche Wert des Schlüsselaustauschs X25519 mit elliptischen Kurven 32 Byte umfasst. Das Wievielfache des öffentlichen Werts von X25519 ist der öffentliche Schlüssel von ML-KEM-768?
  4. Bei der Entkapselung in ML-KEM wird aus dem Ergebnis der Entschlüsselung des empfangenen Geheimtexts mit dem privaten Schlüssel der Geheimtext erneut erzeugt und mit dem empfangenen Geheimtext verglichen. Welcher Implementierungshinweis für diesen Teil ist richtig?
  5. Für ein eingebettetes Gerät, das mehr als 10 Jahre im Einsatz sein wird, wird ein SoC entworfen. Welcher Hardware- und Firmwareentwurf ist geeignet, um auf künftige kryptografische Umstellungen (etwa den Übergang zur Post-Quanten-Kryptografie) vorbereitet zu sein?