Bei der Geräteregistrierung wird ein Gerät für die Speicherung eines DC vorbereitet, indem ein Identitätsschlüssel im System des Ausstellers registriert wird.
Anfrageablauf
Flow description
| Schritt | Quelle | Beschreibung |
|---|---|---|
| 1 | Android-Gerät |
Auf dem Gerät des Nutzers wurde eine neue DC-Anfrage erstellt. Der Aussteller muss einen neuen Identitätsschlüssel erstellen. Das Gerät des Nutzers ruft getDeviceRegistrationNonce auf, um diesen Vorgang zu starten.
|
| 2 | auf Google-Servern |
Google leitet die getDeviceRegistrationNonce-Anfrage an den Aussteller weiter.
|
| 3 | Ausstellerserver |
Der Aussteller generiert eine Nonce, speichert sie mit der deviceReferenceId und gibt die Nonce an Google zurück.
|
| 4 | auf Google-Servern | Google leitet die Nonce an das Gerät des Nutzers weiter. |
| 5 | Android-Gerät |
Das Gerät des Nutzers signiert die Nonce und bettet sie in ein X.509-Zertifikat ein.
Dieses ist im registerDevice-Aufruf enthalten, um das Gerät zu bestätigen.
|
| 6 | auf Google-Servern | Google leitet den registerDevice-Aufruf an den Aussteller weiter. |
| 7 | Ausstellerserver | Der Aussteller führt die Geräteintegritätsprüfungen durch und speichert den mit dem Gerät verknüpften Identitätsschlüssel. |
Integrität eines Geräts prüfen
Die Gerätebestätigung ist eine Sicherheitsfunktion, mit der Aussteller die Integrität eines Geräts überprüfen können, bevor sie es registrieren. So wird verhindert, dass Geräte registriert werden, die manipuliert wurden oder auf denen nicht autorisierte Software ausgeführt wird.
Um die Integrität des Geräts zu prüfen, sollte der Aussteller Folgendes tun:
- Validieren Sie die in der
/registerDevice-Anfrage gesendete Zertifikatskette. Das Root-Zertifikat in der Kette muss mit dem von Google bereitgestellten Zertifikat übereinstimmen. - Achten Sie darauf, dass das Stammzertifikat nicht Teil der Certificate Revocation List (Zertifikatsperrliste) ist.
- Parsen Sie das Blattzertifikat, lesen Sie die Erweiterungen und prüfen Sie Folgendes:
- Der Wert
attestationChallengeentspricht dem Wertnonce, der während des Vorgangs/getDeviceRegistrationNoncegesendet wurde. teeEnforced.rootOfTrusthat die folgenden Eigenschaften:deviceLocked=TRUEverifiedBootState=VERIFIED
- Paketnamen in
softwareEnforced.attestationApplicationIdstimmen mitcom.google.android.gmsodercom.google.android.gsfüberein.
- Der Wert
Erläuterung der verschiedenen Teile des Geräteattestierungsprozesses
- Zertifikatskette:Die Zertifikatskette ist eine Reihe von Zertifikaten, mit denen die Identität des Geräts authentifiziert wird. Das Root-Zertifikat in der Kette ist das vertrauenswürdigste Zertifikat. Jedes nachfolgende Zertifikat in der Kette wird vom Zertifikat darüber signiert.
- Zertifikatssperrliste:Die Zertifikatssperrliste (Certificate Revocation List, CRL) ist eine Liste von Zertifikaten, die aus irgendeinem Grund widerrufen wurden. Wenn sich das Root-Zertifikat in der Zertifikatskette für die Geräteattestierung auf der CRL befindet, ist das Zertifikat ungültig und die Geräteattestierung sollte nicht als vertrauenswürdig eingestuft werden.
- Blattzertifikat:Das Blattzertifikat ist das Zertifikat, das für das Gerät spezifisch ist. Es enthält Informationen zum Gerät, z. B. Hardware-IDs und die Softwareversion.
- Erweiterungen:Die Erweiterungen sind zusätzliche Informationen, die im Zertifikat enthalten sind. Das Geräteattestierungszertifikat enthält eine Reihe von Erweiterungen, mit denen die Integrität des Geräts überprüft wird. Weitere Informationen finden Sie im Schema für Zertifikaterweiterungsdaten.