Aperçu

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.

Exemple de table de base de données pour une ressource d'appareil.

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.

Exemple de table de base de données pour une ressource de validation.

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.

Exemple de table de base de données pour une ressource d'identifiant.