Die Digital Credentials Provisioning API ist in drei Hauptressourcenmodelle unterteilt:
| Ressource | Beschreibung |
|---|---|
| Gerät | Eine eindeutige Instanz eines physischen Geräts und Identitätsschlüssels. |
| Korrektur | Das Verfahren zum Nachweisen der Identität eines Nutzers, bevor ein Ausweisdokument ausgestellt wird. |
| Anmeldedaten | Das DC selbst. |
Als Aussteller sind Sie dafür verantwortlich, diese Ressourcen zu erstellen und während des gesamten Lebenszyklus einer digitalen Karte zu verwalten.
Annahmen
Die primäre Annahme dieser API ist, dass die Android Identity Credential API vom Gerät zum Speichern von DCs gemäß ISO/IEC 18013-5 verwendet wird.
Ressourcenmodelle
Gerät
Im Modell der Digital Credentials Provisioning API stellt ein Gerät nicht einfach nur ein Android-Gerät dar, auf dem ein Nutzer seine digitalen Anmeldedaten mit der Google Wallet App verwaltet. Stattdessen wird es als Kombination aus Folgendem dargestellt:
- Dem physischen Android-Gerät.
- Einem öffentlichen/privaten Schlüssel, der als „Identitätsschlüssel“ bezeichnet wird.
- Der öffentliche Schlüssel wird vom Aussteller verwendet, um die Identität eines Geräts zu überprüfen.
- Der private Schlüssel wird im sicheren Speicher des Geräts aufbewahrt.
Bei API-Aufrufen wird eine Kombination aus Gerät und Ausweisdokument durch eine Gerätereferenz-ID (Attribut deviceReferenceId) identifiziert.
Wenn ein Gerät zum ersten Mal mit einem Aussteller kommuniziert, erhält es eine eindeutige Nonce, um Replay-Angriffe zu verhindern und die Datenaktualität zu gewährleisten. Die Nonce wird vom Identitätsschlüssel des Geräts signiert und in das Zertifikat eingebettet, das den Identitätsschlüssel enthält. Zukünftig kann das Zertifikat verwendet werden, um das Gerät beim Aussteller zu verifizieren.
Weitere Informationen zum Zertifikat finden Sie in der Android-Dokumentation für IdentityCredential.
Wenn Sie diese Ressource als Datenbanktabelle modellieren, sieht sie in etwa so aus: Das Attribut identityKey wäre der Wert des öffentlichen Schlüssels.
Proofing
Proofing ist eine Kombination aus folgenden Elementen:
- Nachweise, die von einem Nutzer zur Bestätigung seiner Identität erbracht wurden
- Die vom Aussteller getroffene Entscheidung anhand der gelieferten Nachweise
Das Proofing ist spezifisch für die Art von Ausweisdokument, das der Nutzer anfordert. Bei der Bereitstellung eines DC reicht ein Nutzer Fotos seines analogen Ausweisdokuments und ein Video seines Profils ein. Anhand des Videos berechnet Google die Wahrscheinlichkeit, dass im Video eine echte Person zu sehen ist. Das Ergebnis, das Google den Ausstellern zur Verfügung stellt, wird als „Liveness Score“ bezeichnet. Zusätzliche Proofingmethoden werden hinzugefügt, sobald neue Arten von Ausweisdokumenten verfügbar sind.
Die möglichen Status für ein Proofing sind in der folgenden Tabelle aufgeführt.
| Status | Beschreibung | Endgültiger Zustand |
|---|---|---|
| Ausstehend | Der Aussteller hat noch keine Entscheidung getroffen. | Nein |
| Akzeptiert | Der Aussteller hat entschieden, dass der Nachweis zufriedenstellend ist. | Nein |
| Abgelehnt | Der Aussteller hat entschieden, dass der Nachweis nicht zufriedenstellend ist. | Ja* |
| Herausforderung | Der Aussteller benötigt weitere Informationen, um eine Entscheidung treffen zu können. | Nein |
| Abgebrochen | Der Nutzer hat das Proofing abgebrochen. | Ja |
| Beendet | Der Aussteller hat das Proofing widerrufen. | Ja* |
| Abgelaufen | Der Nutzer hat die Sicherheitsaufgabe nicht rechtzeitig ausgeführt. | Ja |
Mit einem Sternchen (*) gekennzeichnete Status können in Fällen, in denen ein menschlicher Prüfer einen Fehler macht und den Status manuell aktualisiert, nicht endgültig sein.
Im folgenden Diagramm werden die Abläufe für die verschiedenen Status beschrieben:
Unter Umständen können Aussteller anhand der eingereichten Nachweise keine Entscheidung treffen. In solchen Fällen können sie Nutzer auffordern, zusätzliche Informationen oder Nachweise an den Aussteller zu senden. Beispiele sind das Antworten auf eine E-Mail, das Besuchen der Website eines Ausstellers oder das Einreichen zusätzlicher Nachweise.
Wenn Sie diese Ressource als Datenbanktabelle modellieren, sieht sie in etwa so aus:
Anmeldedaten
Ein Ausweisdokument ist die digitale Version des physischen Ausweisdokuments für ein bestimmtes Gerät. Immer, wenn ein digitales Ausweisdokument für ein physisches Gerät bereitgestellt wird, wird eine Ausweisdokument-ID zugewiesen. Wenn dasselbe Ausweisdokument für verschiedene Geräte bereitgestellt wird, wird jeweils eine andere Ausweisdokument-ID zugewiesen. Wenn auf einem Gerät ein Ausweisdokument bereitgestellt, gelöscht und noch einmal auf demselben Gerät bereitgestellt wird, unterscheidet sich die Ausweisdokument-ID.
Wenn sich die Details eines Nutzers ändern (z. B. eine Adressänderung für ein Ausweisdokument), müssen diese Details auch bei allen verknüpften digitalen Ausweisdokumenten aktualisiert werden. Ein Ausweisdokument kann aufgrund derartiger Änderungen unterschiedliche Versionen haben. Die aktuelle Version wird anhand der Versionsnummer des Ausweisdokuments erfasst.
Um ein digitales Ausweisdokument vorzeigen zu können, muss das Gerät zuerst MSOs (Mobile Security Objects) vom Aussteller abrufen. Ein MSO enthält vom Aussteller signierte Digests des Ausweisdokuments. Es wird aus einem öffentlichen Authentifizierungsschlüssel generiert und vom Identitätsschlüssel des Geräts signiert. Der Authentifizierungsschlüssel bindet das MSO an das Gerät. Anhand der Kombination aus MSO und Ausweisdokument kann belegt werden, dass das Ausweisdokument vom Aussteller stammt.
Sobald ein Ausweisdokument auf einem Gerät bereitgestellt wurde, muss vom Gerät ein ProofOfProvisioning-Objekt an den Aussteller zurückgesendet werden. Dadurch wird der Aussteller darüber informiert, dass das Ausweisdokument erfolgreich auf dem Gerät bereitgestellt und im sicheren Speicher des Geräts aufbewahrt wurde.
Ein Ausweisdokument kann folgende Status haben:
| Status | Beschreibung |
| ProvisionPending |
Das digitale Ausweisdokument wurde für Google Wallet freigegeben, aber es wurde noch kein Nachweis über die Bereitstellung an den Aussteller zurückgegeben. Ein Ausweisdokument wird immer in diesen Status versetzt, wenn sich die Versionsnummer des Dokuments ändert. Für dieses Ausweisdokument werden keine MSOs generiert. |
| Aktiv |
Das digitale Ausweisdokument wurde für Google Wallet freigegeben und ein Nachweis über die Bereitstellung wurde an den Aussteller zurückgegeben. MSO-Dokumente sind für das Ausweisdokument verfügbar.
|
| Beendet |
Der Aussteller hat das Ausweisdokument dauerhaft widerrufen. Für dieses Ausweisdokument werden keine MSOs generiert. Google Wallet zeigt ein Ausweisdokument mit diesem Status nicht an. |
| Gelöscht |
Der Nutzer oder Google Wallet hat das Ausweisdokument dauerhaft vom Gerät gelöscht. Für dieses Ausweisdokument werden keine MSOs generiert. Google Wallet zeigt ein Ausweisdokument mit diesem Status nicht an. |
Im folgenden Diagramm werden die Abläufe für die verschiedenen Status beschrieben:
Wenn Sie diese Ressource als Datenbanktabelle modellieren, sieht sie in etwa so aus: