Bei der Geräteregistrierung wird ein Gerät für die Speicherung eines VDC 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 VDC-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 x509-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. |
Geräteintegrität prüfen
Die Geräteattestierung ist eine Sicherheitsfunktion, mit der Aussteller die Integrität eines Geräts überprüfen können, bevor sie es registrieren. So lässt sich verhindern, dass Geräte registriert werden, die manipuliert wurden oder auf denen nicht autorisierte Software ausgeführt wird.
So prüft der Aussteller die Integrität des Geräts:
- Die in der
/registerDevice-Anfrage gesendete Zertifikatskette validieren. Das Root-Zertifikat in der Kette muss mit dem Zertifikat von Google bereitgestellten übereinstimmen. - Prüfen, ob das Root-Zertifikat nicht in der Zertifikatssperrliste enthalten ist.
- Das untergeordnete Zertifikat parsen, die Erweiterungen lesen und Folgendes prüfen:
- Der Wert von
attestationChallengestimmt mit dernonceüberein, die während des/getDeviceRegistrationNonceVorgangs gesendet wurde. teeEnforced.rootOfTrusthat die folgenden Eigenschaften:deviceLocked=TRUEverifiedBootState=VERIFIED
- Die Paketnamen in
softwareEnforced.attestationApplicationIdstimmen mitcom.google.android.gmsodercom.google.android.gsfüberein.
- Der Wert von
Erläuterung der verschiedenen Teile des Geräteattestierungsprozesses
- Zertifikatskette:Die Zertifikatskette ist eine Reihe von Zertifikaten, die die Identität des Geräts authentifizieren. Das Root-Zertifikat in der Kette ist das vertrauenswürdigste Zertifikat. Jedes nachfolgende Zertifikat in der Kette wird vom darüber liegenden Zertifikat signiert.
- Zertifikatssperrliste:Die Zertifikatssperrliste (Certificate Revocation List, CRL) ist eine Liste von Zertifikaten, die aus irgendeinem Grund widerrufen wurden. Wenn das Root-Zertifikat in der Zertifikatskette der Geräteattestierung in der Zertifikatssperrliste enthalten ist, ist das Zertifikat ungültig und die Geräteattestierung sollte nicht vertrauenswürdig sein.
- Untergeordnetes Zertifikat:Das untergeordnete Zertifikat ist das Zertifikat, das für das Gerät spezifisch ist. Es enthält Informationen zum Gerät, z. B. die Hardware-IDs und die Softwareversion.
- Erweiterungen:Die Erweiterungen sind zusätzliche Informationen, die im Zertifikat enthalten sind. Das Zertifikat zur Geräteattestierung enthält eine Reihe von Erweiterungen, mit denen die Integrität des Geräts überprüft wird. Weitere Informationen finden Sie im Datenschema für Zertifikaterweiterungen schema.