Brevet FR3120715A1 — publié le 20220916

La présente invention concerne une méthode d’interrogation par un terminal d’une carte d’identité électronique (CNIe) au moyen d’une assertion portant sur un attribut d’identité du détenteur de cette carte. Le terminal obtient tout d’abord un jeton d’identité de la CNIe (710) puis sélectionne dans un portefeuille HD, un compte émetteur associé à l’attribut d’identité sur lequel porte l’assertion. Il forme ensuite une transaction (720) comprenant en arguments le jeton d’identité et le chemin dans l’arborescence du portefeuille conduisant au compte émetteur, cette transaction étant ensuite transmise à une chaine de blocs (725). On vérifie ensuite par consensus que le terminal est habilité à émettre une assertion portant sur un attribut d’identité (730), et que l’adresse d’émission de la transaction correspond bien à l’attribut d’identité sur lequel le terminal est habilité à émettre une assertion (735). Fig. 7A MÉTHODE DE VÉRIFICATION DE L’HABILITATION D’UN TERMINAL A CONTRÔLER UN ATTRIBUT D’IDENTITÉ D’UN UTILISATEUR La présente invention concerne le domaine des cartes d’identité électroniques (CNIe). Elle concerne également celui des chaines de blocs ( blockchains ) et plus particulièrement celui des portefeuilles de clés hiérarchiques déterministes permettant de signer des transactions sur des chaînes de blocs. Etat de la technique antérieure Un grand nombre de pays ont d’ores et déjà adopté ou adopteront prochainement des cartes d’identité électronique (CNIe) en lieu et place des cartes d’identité traditionnelles sous forme de carte plastifiée. Les CNIe intègrent une puce électronique adaptée à émettre des jetons ( tokens ) permettant de vérifier l’identité de son détenteur. Ces cartes d’identité électroniques sont émises par une autorité administrative et les données qu’elles contiennent sont issues d’un registre centralisé. Il est récemment apparu le besoin de recourir à un identifiant numérique décentralisé ou DID ( Decentralized IDentifier ), actuellement en cours de normalisation par l’IETF. Un identifiant numérique décentralisé est un identifiant unique d’une personne (voire d’un objet, d’une organisation ou d’une entité abstraite) qui peut être vérifié par un contrôleur en faisant appel à des informations stockées à l’extérieur de la CNIe. Ces informations peuvent être des éléments d’identification, dénommés attributs d’identité, généralement stockés dans des bases de données ou des dispositifs d’un système d’information. Une chaine de blocs ( blockchain ) est généralement utilisée conjointement avec ces bases de données pour stocker les références et les liens permettant de vérifier ces éléments d’identification. Une description de l’identifiant numérique décentralisé pourra être trouvée dans le document intitulé « Decentralized Identifiers (DIDs) v1.0W3C Working Draft » publié par le consortium W3C le 20 Janvier 2021. Différents exemples d’identité décentralisée sont connus de l’état de la technique, tels que uPort, Sovrin et ShoCard. Le principe de fonctionnement d’une identité décentralisée (DID) a été illustré en . Il fait intervenir un ordonnateur ( Issuer ), 110, un détenteur d’un titre d’identité ( Holder ), 120 et un vérificateur ( Verifier ). L’ordonnateur émet une question ( claim ) portant sur un attribut d’identité du détenteur, 120, par exemple une question liée à son âge (personne majeure ?). Le détenteur présente un élément cryptographique lié à son attribut d’identité, vérifiable par le vérificateur. Le vérificateur vérifie l’élément fourni et renvoie la réponse à la question posée (booléen « vrai » ou « faux ») à l’ordonnateur. L’opération représentée en suppose que l’on puisse vérifier que l’ordonnateur est bien en droit de poser la question portant sur l’attribut d’identité et que le vérificateur puisse s’assurer que le détenteur est bien associé à l’attribut d’identité en question. De manière similaire, il est prévu qu’un terminal ( ordonnateur ) puisse émettre une question portant sur un attribut d’identité d’un détenteur d’une CNIe. Les problèmes de vérification évoqués ci-dessus se posent alors dans les mêmes termes. En particulier, il est nécessaire de s’assurer que le terminal en question soit habilité à poser une question sur un attribut d’identité du détenteur et que cette habilitation soit elle-même consultable par le détenteur. L’objet de la présente invention est par conséquent de proposer une méthode de vérification de l’habilitation d’un terminal à poser une question sur un attribut d’identité du détenteur d’une CNIe. Un objet subsidiaire de la présente invention est de proposer une méthode d’interrogation portant sur un attribut d’identité du détenteur d’une CNIe. Présentation de l’invention La présente invention est définie par une méthode d’interrogation par un terminal d’une carte d’identité électronique, dite CNIe, au moyen d’une assertion portant sur un attribut d’identité du détenteur de cette carte, ledit attribut d’identité faisant partie d’une arborescence d’attributs d’identité, ladite méthode étant originale en ce qu’elle comprend : (a) l’obtention par le terminal d’un jeton d’identité du détenteur de la CNIe ; (b) la sélection par le terminal d’un compte émetteur associé à un nœud dans l’arborescence d’un portefeuille de clés hiérarchique déterministe, dit portefeuille HD, de même structure que l’arborescence d’attributs d’identité, le nœud sélectionné correspondant de manière univoque à l’attribut d’identité sur lequel porte l’assertion ; (c) la formation par le terminal d’une transaction comprenant en arguments au moins le jeton d’identité et le chemin dans l’arborescence du portefeuille conduisant au compte émetteur ; (d) l’émission par le terminal de ladite transaction à destination d’un premier contrat intelligent déployé sur une chaine de blocs ; (e) la vérification par consensus que le terminal est habilité à émettre une assertion sur ledit attribut d’identité ; (f) la vérification par consensus que l’adresse d’émission de la transaction correspond bien à l’attribut d’identité sur lequel le terminal est habilité à émettre une assertion ; (g) l’inscription d’une autorisation d’interrogation dans la chaine de blocs si les vérifications des étapes (e) et (f) sont positives. Le jeton d’identité comprend typiquement un identifiant numérique du détenteur de la CNIe ainsi qu’un nonce signé par une clé privée stockée dans la CNIe. Avantageusement, la vérification de l’étape (e) comprend la consultation d’un enregistrement de ladite habilitation dans la chaine de blocs, la vérification d’une signature électronique de cet enregistrement au moyen de la clé publique d’une autorité d’habilitation et, en cas de succès, l’extraction du chemin dans l’arborescence du portefeuille HD conduisant au compte émetteur ainsi que la chaine de code associée au compte du terminal. Ladite habilitation est enregistrée de préférence dans la chaine de blocs au moyen d’un second contrat intelligent distinct du premier. Avantageusement, la vérification à l’étape (f) comprend une vérification que la signature de la transaction est bien correcte au moyen de la clé publique du terminal. Elle peut en outre comprendre un calcul de la clé publique du compte émetteur à partir de la clé publique du terminal, de la chaine de code associée au compte du terminal ainsi que du chemin dans l’arborescence conduisant au compte émetteur. La vérification de l’étape (f) peut en outre comprendre une comparaison de l’adresse du compte émetteur de la transaction avec un haché de la clé publique du compte émetteur ainsi calculée, l’autorisation d’interrogation étant inscrite dans la chaine de blocs en cas d’identité. Dans tous les cas, le terminal peut ensuite émettre une requête à un serveur d’attributs d’identité, ladite requête représentant ladite assertion sur l’attribut d’identité et le serveur d’attributs d’identité consultant la chaine de blocs pour déterminer si une autorisation a été délivrée au terminal d’interrogation en relation avec ledit attribut d’identité. Si le serveur d’attributs d’identité détermine que l’autorisation a bien été délivrée, il demande une vérification de la validité de la CNIe à un serveur de contrôle d’identité, ce dernier vérifiant la validité de la CNIe à partir du jeton d’identité lu dans la chaine de blocs. Si la CNIe est déterminée comme valide, le serveur d’attributs d’identité construit la réponse à l’assertion portant sur l’attribut d’identité à partir d’une base de données de ces attributs et transmet la réponse au terminal. Description des figures D’autres caractéristiques et avantages de l’invention apparaîtront à la lecture d’un mode de réalisation préférentiel de l’invention, décrit en référence aux figures jointes parmi lesquelles : déjà décrite représente schématiquement le principe de fonctionnement d’une identité décentralisée ; représente de manière schématique un exemple de codification d’attributs d’identité du détenteur d’une CNIe ; représente de manière schématique un portefeuille de clés hiérarchique déterministe ; représente de manière schématique une première méthode pour générer les clés privées d’un portefeuille de clés hiérarchique déterministe ; représente de manière schématique une seconde méthode pour générer les clés privées d’un portefeuille de clés hiérarchique déterministe ; représente de manière schématique une méthode pour générer les clés publiques d’un portefeuille de clés hiérarchique déterministe ; représente une arborescence d’attributs d’identité et représente une arborescence correspondante de clés dans un portefeuille hiérarchique déterministe ; représente schématiquement un cas d’usage d’une méthode d’interrogation par un terminal au moyen d’une assertion portant sur un attribut d’identité du détenteur d’une CNIe ; et représentent schématiquement une méthode d’interrogation par un terminal au moyen d’une assertion portant sur un attribut d’identité du détenteur d’une CNIe ; représente schématiquement une méthode de vérification de l’habilitation d’un terminal à formuler une assertion portant sur un attribut d’identité ; représente schématiquement une méthode de vérification de la conformité d’une transaction à ladite habilitation du terminal Procédé d’interrogation par un terminal d’une carte d’identité électronique, dite CNIe, au moyen d’une assertion portant sur un attribut d’identité du détenteur de cette carte, ledit attribut d’identité faisant partie d’une arborescence d’attributs d’identité, caractérisé en ce qu’il comprend : l’obtention (710) par le terminal d’un jeton d’identité du détenteur de la CNIe ; la sélection (715) par le terminal d’un compte émetteur associé à un nœud dans l’arborescence d’un portefeuille de clés hiérarchique déterministe, dit portefeuille HD, de même structure que l’arborescence d’attributs d’identité, le nœud sélectionné correspondant de manière univoque à l’attribut d’identité sur lequel porte l’assertion ; la formation (720) par le terminal d’une transaction comprenant en arguments au moins le jeton d’identité et le chemin dans l’arborescence du portefeuille conduisant au compte émetteur ; l’émission (725) par le terminal de ladite transaction à destination d’un premier contrat intelligent déployé sur une chaine de blocs ; la vérification par consensus (730) que le terminal est habilité à émettre une assertion sur ledit attribut d’identité ; la vérification (735) par consensus que l’adresse d’émission de la transaction correspond bien à l’attribut d’identité sur lequel le terminal est habilité à émettre une assertion ; l’inscription d’une autorisation d’interrogation dans la chaine de blocs si les vérifications des étapes (e) et (f) sont positives. Procédé d’interrogation par un terminal d’une carte d’identité électronique selon la revendication 1, caractérisé en ce que le jeton d’identité comprend un identifiant numérique du détenteur de la CNIe ainsi qu’un nonce signé par une clé privée stockée dans la CNIe. Procédé d’interrogation par un terminal d’une carte d’identité électronique selon la revendication 1 ou 2, caractérisé en ce que la vérification de l’étape (e) comprend la consultation (810) d’un enregistrement de ladite habilitation dans la chaine de blocs, la vérification (820) d’une signature électronique de cet enregistrement au moyen de la clé publique d’une autorité d’habilitation et, en cas de succès, l’extraction (820) du chemin dans l’arborescence du portefeuille HD conduisant au compte émetteur ainsi que la chaine de code associée au compte du terminal. Procédé d’interrogation par un terminal d’une carte d’identité électronique selon la revendication 3, caractérisé en ce que ladite habilitation est enregistrée dans la chaine de blocs au moyen d’un second contrat intelligent distinct du premier. Procédé d’interrogation par un terminal d’une carte d’identité électronique selon la revendication 3 ou 4, caractérisé en ce que la vérification à l’étape (f) comprend une vérification (910) que la signature de la transaction est bien correcte au moyen de la clé publique du terminal. Procédé d’interrogation par un terminal d’une carte d’identité électronique selon l’une des revendications 3 à 5, caractérisé en ce que la vérification à l’étape (f) comprend en outre un calcul (920) de la clé publique du compte émetteur à partir de la clé publique du terminal, de la chaine de code associée au compte du terminal ainsi que du chemin dans l’arborescence conduisant au compte émetteur. Procédé d’interrogation par un terminal d’une carte d’identité électronique selon la revendication 6, caractérisé en ce que la vérification de l’étape (f) comprend une comparaison de l’adresse du compte émetteur de la transaction avec un haché de la clé publique du compte émetteur ainsi calculée, l’autorisation d’interrogation étant inscrite dans la chaine de blocs en cas d’identité. Procédé d’interrogation par un terminal d’une carte d’identité électronique selon l’une des revendications précédentes, caractérisé en ce que le terminal émet (750) une requête à un serveur d’attributs d’identité, ladite requête représentant ladite assertion sur l’attribut d’identité et que le serveur d’attributs d’identité consulte (755) la chaine de blocs pour déterminer si une autorisation a été délivrée au terminal d’interrogation en relation avec ledit attribut d’identité. Procédé d’interrogation par un terminal d’une carte d’identité électronique selon la revendication 8, caractérisé en ce que si le se serveur d’attributs d’identité détermine que l’autorisation a bien été délivrée, il demande (765) une vérification de la validité de la CNIe à un serveur de contrôle d’identité, ce dernier vérifiant (770) la validité de la CNIe à partir du jeton d’identité lu dans la chaine de blocs. Procédé d’interrogation par un terminal d’une carte d’identité électronique selon la revendication 9, caractérisé en ce que si la CNIe est déterminée comme valide, le serveur d’attributs d’identité construit (775) la réponse à l’assertion portant sur l’attribut d’identité à partir d’une base de données de ces attributs et transmet (780) la réponse au terminal.