In diesem Dokument werden häufige Anwendungsfälle für AVF beschrieben.
Isolierte Kompilierung
Als softwarebasierte Enklave bietet eine geschützte VM
sicherheitsrelevanten Code kompilieren. In dieser Umgebung kann die Kompilierung verschoben werden
von bootclasspath
und Systemserver-JARs (ausgelöst durch ein APEX-Update) von
frühen Startvorgang vor dem Neustart und reduziert die Anzahl der nach APEX vorgenommenen Änderungen erheblich
die Startzeit aktualisieren.
Die Implementierung erfolgt in der
com.android.compos
APEX. Diese Komponente ist optional und kann eingefügt werden.
mit einer
makefile:
Das Sicherheitsziel besteht darin, verifizierte Eingaben wahrheitsgemäß zu kompilieren und die Ausgabe zu erzeugen. isoliert zu arbeiten; Android als nicht vertrauenswürdiger Client kann die Kompilierung nicht ändern die Ausgabe in irgendeiner Weise, die nicht zu einem Fehler führt (wenn Android auf den Start zurückgreift) Zeitkompilierung).
Der Kompilierungsdienst in der VM generiert nur dann eine Signatur, wenn keine Fehler während der gesamten Kompilierung. Android kann den öffentlichen Schlüssel von VM für die Signaturprüfung verwenden.
Der Schlüssel der VM wird aus dem DICE-Profil der VM generiert, das von den APEXes definiert wird und APKs, die auf der VM bereitgestellt werden, sowie weitere VM-Parameter wie Debug-Fähigkeit.
Um festzustellen, ob der öffentliche Schlüssel nicht von einer unerwarteten VM stammt, startet Android um festzustellen, ob der Schlüssel korrekt ist. Die VM wird beim frühen Start gestartet. nach jedem APEX-Update.
Mit dem verifizierten Bootmodus der geschützten VM wird der Kompilierungsdienst nur geprüft
Code. Der Code kann daher festlegen, dass nur Eingaben akzeptiert werden, die die folgenden Anforderungen erfüllen:
kann eine Eingabedatei nur dann akzeptiert werden, wenn ihr Name und
Der Digest „fs-verity
“ ist in einer Zulassungsliste definiert.
Alle bereitgestellten APIs der VM sind Angriffsflächen. Alle Eingabedateien und Es wird angenommen, dass die Parameter von einem nicht vertrauenswürdigen Client stammen, und müssen verifiziert und vor der Verarbeitung überprüft.
Die Integrität der Eingabe-/Ausgabedatei wird von der VM überprüft, wobei die Dateien auf Android als nicht vertrauenswürdigen Dateiserver verwenden:
- Der Inhalt einer Eingabedatei muss verifiziert werden, bevor mit dem
fs-verity
-Algorithmus. Damit eine Eingabedatei in der VM verfügbar ist, müssen ihre Der Root-Hash muss in einem Container (APK) bereitgestellt werden, der zum DICE-Profil der VM Mit dem vertrauenswürdigen Root-Hash kann ein Angreifer nicht mit der Eingabe, ohne erkannt zu werden. - Die Integrität der Ausgabedatei muss in der VM aufrechterhalten werden. Selbst wenn
eine Ausgabedatei unter Android gespeichert wird,
wird im selben
fs-verity
-Baumformat beibehalten, kann aber dynamisch aktualisiert. Die endgültige Ausgabedatei kann am Root-Hash identifiziert werden. der in der VM isoliert ist. Der Dienst in der VM schützt die Ausgabe Dateien nach Signatur.