Geräteregistrierung

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:

  1. Validieren Sie die in der /registerDevice-Anfrage gesendete Zertifikatskette. Das Root-Zertifikat in der Kette muss mit dem von Google bereitgestellten Zertifikat übereinstimmen.
  2. Achten Sie darauf, dass das Stammzertifikat nicht Teil der Certificate Revocation List (Zertifikatsperrliste) ist.
  3. Parsen Sie das Blattzertifikat, lesen Sie die Erweiterungen und prüfen Sie Folgendes:
    • Der Wert attestationChallenge entspricht dem Wert nonce, der während des Vorgangs /getDeviceRegistrationNonce gesendet wurde.
    • teeEnforced.rootOfTrust hat die folgenden Eigenschaften:
      • deviceLocked=TRUE
      • verifiedBootState=VERIFIED
    • 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, 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.