L'API Digital Credentials Provisioning est organisée selon trois principaux modèles de ressources :
| Ressource | Description |
|---|---|
| Appareil | Instance unique d'un appareil physique et d'une clé d'identité. |
| Validation | Processus consistant à prouver l'identité d'un utilisateur avant d'émettre un justificatif d'identité. |
| Credential (Identifiant) | Le DC lui-même. |
En tant qu'émetteur, vous êtes chargé de créer et de gérer ces ressources tout au long du cycle de vie d'un DC.
Hypothèses
Cette API part du principe que l'appareil utilise l'API Android Identity Credential pour stocker les CD définis par la norme ISO/CEI 18013-5.
Modèles de ressources
Appareil
Dans le modèle de l'API Digital Credentials Provisioning, un appareil ne représente pas simplement un appareil Android sur lequel un utilisateur gère ses identifiants numériques à l'aide de l'application Google Wallet. Au lieu de cela, il est représenté par la combinaison des éléments suivants :
- L'appareil Android physique
- Une paire de clés publique/privée (appelée "clé d'identité")
- La clé publique permet à l'émetteur de valider l'identité d'un appareil.
- La clé privée est stockée dans l'espace de stockage sécurisé de l'appareil.
Lors des appels d'API, une combinaison appareil/justificatif d'identité est identifiée par un ID de référence d'appareil (la propriété deviceReferenceId).
La première fois qu'un appareil communique avec un émetteur, celui-ci reçoit un nonce unique (pour empêcher les attaques par rejeu et s'assurer de sa fraîcheur). Le nonce est signé par la clé d'identité de l'appareil et intégré au certificat contenant la clé d'identité. Le certificat peut désormais être utilisé pour valider l'appareil auprès de l'émetteur.
Pour en savoir plus sur le certificat, consultez la documentation Android IdentityCredential.
La modélisation de cette ressource sous la forme d'une table de base de données donnerait le résultat suivant. Notez que la propriété identityKey est la valeur de la clé publique.
Validation
Une confirmation d'identité représente la combinaison des éléments suivants :
- La preuve fournie par un utilisateur pour valider son identité
- La décision prise par l'émetteur compte tenu de la preuve fournie
La validation est spécifique au type de justificatif demandé par l'utilisateur. Lors du provisionnement d'un DC, un utilisateur fournit des photos de sa pièce d'identité physique et une vidéo de son visage. Google utilise la vidéo pour calculer la probabilité qu'il s'agit d'une vraie personne. Le résultat fourni par Google aux émetteurs est appelé "score de preuve de vie". Des méthodes de confirmation supplémentaires seront ajoutées à mesure que de nouveaux types de justificatifs d'identité seront acceptés.
Les états de confirmation possibles sont indiqués dans le tableau suivant.
| État | Description | État final |
|---|---|---|
| En attente | L'émetteur n'a pas encore pris de décision. | Non |
| Accepté | L'émetteur a estimé que la preuve était satisfaisante. | Non |
| Refusé | L'émetteur a estimé que la preuve n'était pas satisfaisante. | Oui* |
| En difficulté | L'émetteur a besoin de plus d'informations pour prendre une décision. | Non |
| Annulé | L'utilisateur a annulé la confirmation d'identité. | Oui |
| Révoqué | L'émetteur a révoqué la confirmation d'identité. | Oui* |
| Expiré | L'utilisateur n'a pas terminé le test à temps. | Oui |
Les états marqués d'un astérisque (*) peuvent être non définitifs si un examinateur manuel fait une erreur et met à jour l'état manuellement.
Le diagramme d'état suivant décrit les flux d'état possibles :
Dans certains cas, les émetteurs peuvent ne pas être en mesure de prendre une décision compte tenu des preuves initiales. Pour les aider à prendre leur décision, les utilisateurs peuvent être invités à leur communiquer des informations ou des preuves supplémentaires. Exemples de tests : répondre à des e-mails, consulter le site Web d'un émetteur ou envoyer des preuves supplémentaires.
La modélisation de cette ressource sous la forme d'une table de base de données donnerait le résultat suivant.
Identifiant
Un justificatif d'identité représente la version virtuelle d'un justificatif physique pour un appareil spécifique. Chaque fois qu'un justificatif virtuel est provisionné sur un appareil physique, un ID lui est attribué. Si le même justificatif physique est provisionné sur plusieurs appareils, il se voit attribuer un ID différent à chaque fois. De même, si un justificatif est provisionné sur un appareil, puis est supprimé et à nouveau provisionné sur le même appareil, les ID sont différents.
Lorsque les informations figurant sur le justificatif d'identité d'un utilisateur changent (par exemple, en cas de changement d'adresse pour une pièce d'identité), ces modifications doivent être reflétées sur tous les justificatifs virtuels associés. Un même justificatif peut avoir différentes versions correspondant à ces modifications. La version actuelle est suivie à l'aide d'un ID de version de justificatif.
Pour présenter un justificatif d'identité à un tiers de confiance, l'appareil doit d'abord récupérer les objets de sécurité mobile (MSO, mobile security object) auprès de l'émetteur. Un MSO contient des condensés des justificatifs d'identité qui ont été signés par l'émetteur. Un MSO est créé à partir d'une clé d'authentification, c'est-à-dire une clé publique générée et signée par la clé d'identité de l'appareil. La clé d'authentification associe efficacement le MSO à l'appareil. La combinaison du MSO et du justificatif d'identité prouve aux tiers de confiance que le justificatif provient de l'émetteur.
Une fois qu'un justificatif est provisionné sur un appareil, celui-ci doit renvoyer un objet ProofOfProvisioning à l'émetteur. Cela informe l'émetteur que le justificatif d'identité a bien été provisionné sur l'appareil et stocké dans son espace de stockage sécurisé.
Un justificatif d'identité peut avoir les états suivants :
| État | Description |
| ProvisionPending |
Le justificatif d'identité a été publié dans Google Wallet, mais aucune preuve de provisionnement n'a été renvoyée à l'émetteur. Cet état est attribué à un justificatif d'identité chaque fois que l'ID de version de justificatif change. Aucun MSO n'est fourni pour ce justificatif d'identité. |
| Actif |
Le justificatif d'identité a été publié dans Google Wallet et une preuve de provisionnement a été renvoyée à l'émetteur. Les MSO sont disponibles pour le justificatif d'identité.
|
| Révoqué |
L'émetteur a définitivement révoqué le justificatif d'identité. Aucun MSO n'est fourni pour ce justificatif d'identité. Google Wallet ne présente pas de justificatif ayant cet état. |
| Supprimé |
L'utilisateur ou Google Wallet a définitivement supprimé le justificatif d'identité de l'appareil. Aucun MSO n'est fourni pour ce justificatif d'identité. Google Wallet ne présente pas de justificatif ayant cet état. |
Le diagramme d'état suivant décrit les flux d'état possibles :
La modélisation de cette ressource sous la forme d'une table de base de données donnerait le résultat suivant.