Geräteregistrierung

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:

  1. Die in der /registerDevice-Anfrage gesendete Zertifikatskette validieren. Das Root-Zertifikat in der Kette muss mit dem Zertifikat von Google bereitgestellten übereinstimmen.
  2. Prüfen, ob das Root-Zertifikat nicht in der Zertifikatssperrliste enthalten ist.
  3. Das untergeordnete Zertifikat parsen, die Erweiterungen lesen und Folgendes prüfen:
    • Der Wert von attestationChallenge stimmt mit der nonce überein, die während des /getDeviceRegistrationNonce Vorgangs gesendet wurde.
    • teeEnforced.rootOfTrust hat die folgenden Eigenschaften:
      • deviceLocked=TRUE
      • verifiedBootState=VERIFIED
    • Die Paketnamen in softwareEnforced.attestationApplicationId stimmen mit com.google.android.gms oder com.google.android.gsf überein.

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.