Mit den in diesem Abschnitt beschriebenen Funktionen können Sie die Android-Geräte, die Sie entwickeln, so sicher wie möglich machen.
Anwendungs-Sandbox
Die Android-Plattform nutzt den nutzerbasierten Schutz von Linux, um App-Ressourcen zu identifizieren und zu isolieren. Dazu weist Android jeder Android-App eine eindeutige Nutzer-ID (UID) zu und führt sie in einem eigenen Prozess aus. Android verwendet diese UID, um eine Application Sandbox auf Kernelebene einzurichten.
App-Signatur
Mit der App-Signatur können Entwickler den Autor der App identifizieren und ihre App aktualisieren, ohne komplizierte Schnittstellen und Berechtigungen erstellen zu müssen. Jede App, die auf der Android-Plattform ausgeführt wird, muss vom Entwickler signiert werden.
Authentifizierung
Android bietet das Konzept von Nutzerauthentifizierungsmerkmalen, mit denen das Gerät entsperrt und andere Aufgaben ausgeführt werden können:
- Das Gatekeeper-Subsystem führt die Authentifizierung mit Gerätemuster oder Passwort in einer vertrauenswürdigen Ausführungsumgebung (Trusted Execution Environment, TEE) durch.
- Die optionale Weaver-Komponente führt die Muster- oder Passwortauthentifizierung in einem separaten sicheren Element durch.
- Geräte mit einem Fingerabdrucksensor unterstützen die Verwendung registrierter Fingerabdrücke.
- Geräte können die Gesichtserkennung unterstützen.
Android unterstützt auch hardwaregestützte kryptografische Schlüssel, die nur verwendet werden können, wenn die Nutzerauthentifizierung mit einem dieser Mechanismen erfolgt ist.
Biometrische Verfahren
Android 9 und höher enthält die BiometricPrompt
-Klasse, mit der App-Entwickler die biometrische Authentifizierung geräte- und modalitätsunabhängig in ihre Apps einbinden können. Nur starke biometrische Verfahren können in BiometricPrompt
eingebunden werden.
Verschlüsselung
Sobald ein Gerät verschlüsselt ist, werden alle vom Nutzer erstellten Daten automatisch verschlüsselt, bevor sie auf die Festplatte geschrieben werden. Bei allen Lesevorgängen werden die Daten automatisch entschlüsselt, bevor sie an den aufrufenden Prozess zurückgegeben werden. Durch die Verschlüsselung wird sichergestellt, dass Unbefugte die Daten nicht lesen können, selbst wenn sie versuchen, darauf zuzugreifen.
Schlüsselspeicher
Android bietet einen hardwaregestützten Schlüsselspeicher, der kryptografische Funktionen bereitstellt, bei denen das Schlüsselmaterial in einer sicheren Umgebung enthalten ist. Android Keystore unterstützt die Generierung und den Import von symmetrischen und asymmetrischen Schlüsseln in Kombination mit Primitiven für Verschlüsselung, Entschlüsselung, Signierung und Schlüsselvereinbarung.
Security-Enhanced Linux
Im Rahmen des Android-Sicherheitsmodells verwendet Android Security-Enhanced Linux (SELinux), um die obligatorische Zugriffssteuerung (MAC) für alle Prozesse zu erzwingen, auch für Prozesse, die mit Root- oder Superuser-Berechtigungen (Linux-Funktionen) ausgeführt werden.
Trusty TEE
Trusty TEE
Trusty ist ein sicheres Betriebssystem, das ein TEE für Android bereitstellt. Das Trusty-Betriebssystem wird auf demselben Prozessor wie das Android-Betriebssystem ausgeführt, ist aber sowohl durch Hardware als auch durch Software vom Rest des Systems isoliert.
Verified Boot
Der verifizierte Bootmodus soll sicherstellen, dass der gesamte ausgeführte Code von einer vertrauenswürdigen Quelle stammt (normalerweise Geräte-OEMs) und nicht von einem Angreifer oder einer Korruption. Der Bootmodus mit Verifikation stellt eine vollständige Vertrauenskette her, die von einem hardwaregeschützten Root of Trust über den Bootloader zur Bootpartition und anderen verifizierten Partitionen führt.