Die Device Identifier Composition Engine (DICE) ist eine Android-Sicherheitsfunktion, die eine starke Attestierung bietet und die Geräteintegrität verbessert, indem für jedes Gerät eine eindeutige kryptografische Identität erstellt wird. DICE ist besonders nützlich für die Erstellung von Geräteidentitäten, die in Szenarien verwendet werden können, in denen ein starker Identitätsnachweis und eine sichere Kommunikation erforderlich sind.
Bereitstellung per Funkschlüssel (Remote Key Provisioning, RKP)
Die Verwendung von DICE für die Remote-Schlüsselbereitstellung bietet mehrere wichtige Vorteile.
Minimierung der Angriffsfläche
DICE verbessert RKP, indem die Root of Trust auf der kleinstmöglichen Trusted Computing Base (TCB) auf dem Gerät basiert, in der Regel auf dem Chip selbst, und nicht in der Trusted Execution Environment (TEE). Dadurch wird die Angriffsfläche erheblich reduziert und das Risiko einer dauerhaften Manipulation des RKP minimiert.
Wiederherstellung nach TEE-Kompromittierungen
DICE bietet einen Mechanismus, um das Vertrauen in Geräte wiederherzustellen, auch wenn die TEE oder der Bootloader manipuliert wurden und sich dies auf die Gültigkeit der von KeyMint generierten Schlüsselattestierungen auswirken könnte.
Bisher führten Sicherheitslücken in der vertrauenswürdigen Ausführungsumgebung (Trusted Execution Environment, TEE) oder im Bootloader zum vollständigen Widerruf der Attestierungsschlüssel für alle betroffenen Geräte. Selbst wenn die Sicherheitslücken gepatcht wurden, gab es keine Möglichkeit, das Vertrauen wiederherzustellen. Das lag daran, dass die TEE eine Remote-Überprüfung des Android-Images durchführte, das über den Android-verifizierten Bootmodus geladen wurde. Dadurch war es nicht möglich, einer externen Partei nachzuweisen, dass die Patches angewendet wurden. DICE löst dieses Problem, indem die Remote-Überprüfung des aktuellen Firmwarestatus auch außerhalb von Android aktiviert wird. So können betroffene Geräte wieder als vertrauenswürdig eingestuft werden.
Gegenseitige Authentifizierung isolierter Umgebungen
Jede Anwendungsdomain, in der der DICE-Prozess endet, erhält eine Identität in Form eines Schlüssels mit einer Zertifikatskette, die bis zum vom ROM abgeleiteten gemeinsamen Root of Trust zurückreicht. Der DICE-Ableitungsprozess wird in verschiedene Zweige unterteilt, wenn sich verschiedene Ladepfade verzweigen. So entsteht ein Zertifikatsbaum mit demselben Stamm und eine On-Device-Public-Key-Infrastruktur (PKI).
Mit dieser PKI können sich Komponenten in separaten sicheren Enklaven gegenseitig authentifizieren. Ein konkretes Beispiel ist Secretkeeper, eine Hardware Abstraction Layer (HAL), die es privilegierten virtuellen Maschinen (pVMs) ermöglicht, mit der TEE zu kommunizieren, um ein stabiles Geheimnis zu erhalten, mit dem nichtflüchtige Daten sicher gespeichert werden können.