CPUs von Intel und ARM: Linux und der Umgang mit datenabhängigem Timing
Wenn die Dauer von Operationen von den Daten abhängt, ermöglicht dies Timing-Attacken auf Informationen. Wie geht Linux damit um?

Bei neueren CPUs von Intel und auch von ARM ist die Ausführungszeit nicht mehr von Operatoren - wie Additionen, AND, OR, XOR und vielen mehr - abhängig, sondern von den Daten, die diese Operatoren zu einem Ergebnis verknüpfen. Weil darunter Operatoren sind, die für AES und andere kryptografische Methoden Verwendung finden, könnte dies Angriffswege bieten, um etwas über die verwendeten Daten zu erfahren.
Sowohl bei Intel als auch bei ARM gibt es ein Feature, das die Ausführungszeiten wieder auf ein konstantes, nur von den Operatoren abhängiges Timing schaltet. Das Aktivieren dieses Modus bedeutet aber einen Performanceverlust gegenüber dem variablen Timing - ein Verlust, von dem zumindest Intel sagt, dass er in den kommenden CPU-Generationen immer größer werde.
Die große Frage ist, wer eigentlich dafür zuständig ist, dass dieser Modus mit dem konstanten Timing ein- oder ausgeschaltet wird. Eigentlich müssten Entwickler sich bei jeder Operation überlegen, ob die verwendeten Daten vor einem Timing-Angriff geschützt werden müssen.
Bei Linux ist man sich noch nicht so ganz einig
Besonders kritisch dürfte das in den Kernen der Betriebssysteme sein - kein Wunder also, dass es bei Linux eine Diskussion gab, wie mit dem Problem zu verfahren ist. Das bisherige Ergebnis: Für ARM-CPUs wird das variable Timing im Kernel ab Linux 6.2 abgeschaltet, für den Userspace bleibt sie aktiviert.
Für Intel gibt es auch einen Patch, allerdings wurde hier noch nichts gemerged. In diesem Patch wird die CPU global in den Modus mit dem konstanten Timing versetzt. Was daraus wird, ist noch nicht zu sagen.
Aus der ARM-Entscheidung mit der Aufteilung für den Kernel- und den Userspace lässt sich auch nicht wirklich eine Analogie ziehen, denn auch wenn ARM und Intel ein konzeptionell vergleichbares Feature implementiert haben, heißt das noch lange nicht, dass die davon ausgehende potenzielle Gefahr gleich ist - das hängt von der Implementierung ab.
Wie auch immer die Entscheidung bei Linux ausfallen wird, als Softwareentwickler wird man in das Thema im Auge behalten müssen. Denn bei Kryptografiemodulen und anderen Algorithmen mit Sicherheitsbedarf wird das konstante Timing aktiviert werden müssen.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Bei dem Link stehen leider keine Details. Zum Beispiel welche Schutzmaßnahmen des Servers...
Da hast du Recht, nur geht es darum nicht.
Gute Frage. Mir kommt es so vor, als wenn eine Lösung angestrebt wird, die standardmäßig...
Doch AES Instructionen sind laut dem ursprünglichen Bericht auch betroffen. Ergo Intel...
Kommentieren