Aktuelle Entwicklungen der Hardwaresicherheit

Welche Beschreibung des Mechanismus der Pointer Authentication (PAC) von Arm ist richtig?

  1. ABei jeder Verwendung eines Zeigers wird das Betriebssystem per Systemaufruf gefragt, ob der Zeiger einen korrekten Wert hat
  2. BAus dem Zeigerwert und einem Kontextwert wird mit einem Schlüssel in der CPU ein kurzer Authentifizierungscode berechnet, in die oberen Bits des Zeigers geschrieben und vor der Verwendung geprüft
  3. CAlle Bits des Zeigers werden mit einem Schlüssel in der CPU verschlüsselt im Speicher abgelegt und vor jeder Verwendung in der CPU entschlüsselt
Antwort und Erläuterung anzeigen

Antwort: B. Aus dem Zeigerwert und einem Kontextwert wird mit einem Schlüssel in der CPU ein kurzer Authentifizierungscode berechnet, in die oberen Bits des Zeigers geschrieben und vor der Verwendung geprüft

In die oberen Bits eines 64-Bit-Zeigers, die nicht für die virtuelle Adresse genutzt werden, wird ein Authentifizierungscode geschrieben, den die CPU mit einem internen Schlüssel aus dem Zeigerwert und einem Kontextwert (zum Beispiel dem Stackpointer) berechnet. Unmittelbar bevor etwa die Rücksprungadresse einer Funktion verwendet wird, berechnet ein spezieller Befehl den Code neu und vergleicht ihn; bei Abweichung wird der Zeiger in eine unbrauchbare Adresse umgewandelt, was Angriffe erschwert, die Rücksprungadressen auf dem Stack überschreiben (etwa ROP). Software kann den Schlüssel nicht lesen, sodass ein Angreifer keinen passenden Authentifizierungscode für einen veränderten Zeiger erzeugen kann. Die Länge des Codes hängt jedoch von Einstellungen wie der Breite der virtuellen Adresse ab und beträgt oft nur ein gutes Dutzend Bit oder weniger; wo viele Rateversuche möglich sind, muss daher die Wahrscheinlichkeit einer zufälligen Übereinstimmung bedacht werden.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Aktuelle Entwicklungen der Hardwaresicherheit

  1. Welche Beschreibung des hardwaregestützten Shadow Stack, wie er in Intel CET (Control-flow Enforcement Technology) und anderswo eingesetzt wird, ist richtig?
  2. Welche Zuordnung ist bei Hardwarefunktionen, die die Kontrollflussintegrität unterstützen, richtig: was Rücksprünge aus Funktionen schützt und was indirekte Aufrufe und Sprünge, etwa über Funktionszeiger, schützt?
  3. Welche Begründung dafür, dass Rowhammer mit fortschreitender Miniaturisierung von DRAM wahrscheinlicher werden soll, ist richtig?
  4. Welche Begründung dafür, dass der Schutz vor Rowhammer durch TRR (Target Row Refresh) im DRAM in der Forschung umgangen wurde, ist richtig?
  5. Was ist an der Vorstellung „Mit ECC-Speicher muss man sich um Rowhammer keine Sorgen machen“ falsch?