OID4VP : le protocole derrière les portefeuilles numériques européens
Publié le 2026-06-19 par DarkChyper
Ceci est le second article enfant de celui consacré au DevLille 2026. Vous pouvez lire les deux autres articles sur le sujet ici :
ADR : de la documentation bureaucratique à la décision éclairante
Chaque année, deux cases horaires sont réservées aux gagnants du Ch'ti Tremplin. Ce tremplin, c'est un événement avant l'événement. De jeunes speakers viennent présenter leur premier talk à un public plus restreint, dans une ambiance plus intimiste, moins intimidante. De cet événement, deux sujets sont alors choisis pour être présentés pendant le DevLille, dans le grand amphithéâtre.
Cette année, l'un des sujets était le protocole OID4VP, le protocole derrière les portefeuilles numériques européens. C'est Gilbert Winiga qui en était le speaker.
Le post de présentation de Gilbert pour son tremplin.
Le dépôt Git de son travail de documentation sur le protocole OID4VP.
Le contexte
Quand vous devez prouver votre identité dans la vraie vie, vous montrez votre carte d'identité. Une vérification visuelle, rapide et rapidement oubliée. Comment reproduire ça en ligne sans fournir toutes ces données personnelles ?
Jusqu'à présent, lorsque l'on voulait prouver sa majorité, son droit de conduire un véhicule de tourisme ou juste prouver efficacement que l'on est un humain, en ligne, il fallait partager une pièce d'identité à un tiers. Au vu de toutes les fuites de données et des usurpations d'identité toujours plus nombreuses, comment peut-on prouver des données personnelles sans sacrifier sa vie privée ?
La vérification par "Identité fédérée"
Il s'agit ici de la vérification "classique", celle qui est déjà implémentée partout. Elle se base sur le protocole OpenID Connect / OAuth 2.0.
Dans cette vérification, on a 3 acteurs qui échangent des informations pendant une transaction/vérification :
- Le fournisseur d'Identité (IdP) : par exemple La Poste, FranceConnect. C'est le point central de l'architecture.
- Le fournisseur de Service (RP) : le site web de vente d'alcool en livraison qui souhaite vérifier ta majorité.
- L'utilisateur.
Lorsque le site demande une validation de la majorité, il renvoie alors vers les serveurs du service de vérification. Avec le service d'identité de La Poste, on entre son numéro de téléphone sur la page, puis les serveurs de La Poste envoient une notification sur l'app du téléphone. On valide la demande en saisissant son code et l'application (le serveur de La Poste en réalité) envoie alors un jeton temporaire de validation au site marchand.
La vérification est très fiable, ça, on ne peut rien dire. Par contre, on a clairement des soucis de vie privée et de dépendance à un service tiers lors de chaque vérification, au moment même de l'acte.
La vérification par "Triangle de Confiance"
Le protocole OID4VP est censé corriger les problèmes de la solution précédente.
Il y a toujours 3 acteurs dans ce modèle, les mêmes qu'avant. Par contre, la chronologie des actions est différente.
La relation Émetteur - Détenteur
On télécharge une application comme France Identité. On y ajoute ses pièces d'identité numériques : carte d'identité, passeport, permis de conduire, carte grise. On peut se contenter de la carte d'identité pour la majorité des preuves à fournir.
La relation avec le fournisseur d'identité est alors terminée pour le moment. L'IdP a fourni toutes les informations cryptographiques nécessaires à l'utilisation du protocole de vérification.
Lorsque l'on se rend sur un site qui demande la vérification de la majorité, celui-ci utilise la norme OID4VP pour générer un QR code de demande. Ce site marchand n'a pas besoin d'interroger directement l'État au moment de ta vérification ; il s'appuie simplement sur le standard technique pour te formuler une demande mathématiquement sûre.
Avec l'application sur le smartphone, on scanne le code. On peut alors vérifier que c'est bien le site légitime qui fait une demande, et on sait exactement quelles données on s'apprête à lui transmettre. En validant, on envoie une preuve cryptographique personnalisée, c'est-à-dire que seuls les champs explicitement demandés lui sont divulgués via une signature cryptographique.
Pour la preuve de majorité, on ne transmet plus la date de naissance complète, seule la preuve de majorité est transférée : oui ou non. C'est la notion de divulgation sélective (Selective Disclosure) qui est utilisée dans ce protocole.
Pendant cet échange, aucune information sur ta démarche n'est transmise vers le fournisseur d'identité, améliorant ainsi la résilience du service et préservant la vie privée.
Quelles données peuvent être demandées ?
Dans le contexte de France Identité, il y a 4 types de demandes qui sont possibles :
- La preuve d'âge stricte : l'utilisateur a-t-il plus de 16, 18, 21 ans ? => oui ou non, aucune autre information.
- La vérification d'identité partielle ou complète : on ne transmet alors que les champs vraiment demandés par le service, et avant de valider, on sait exactement ce qui est envoyé.
- La preuve du droit à conduire : les permis que possède la personne (a-t-elle un permis B ?), sans donner l'adresse ni les infos de la CNI.
- L'authentification "Anti-Bot"/Pseudonymat : pour les billetteries par exemple, pour éviter de vendre à des bots de revente, ou encore pour les forums et les réseaux sociaux...
OID4VP et l'actualité
Dans l'actualité, on parle beaucoup des lois votées par les pays pour protéger les mineurs vis-à-vis des réseaux sociaux, et aussi par rapport aux sites pour adultes. Sur le papier, ce genre de décision paraît simple : si tu es mineur, tu ne dois pas y avoir accès. Et si c'est assez facile d'appliquer ces interdictions dans l'espace public, ce n'est pas aussi trivial dans le monde numérique.
Comment implémenter un système de vérification de l'âge sans compromettre la vie privée des utilisateurs et sans passer obligatoirement par un tiers de confiance ?
J'écoute un podcast tech depuis des années, ce sujet a été abordé plusieurs fois et une des conclusions était que :
"Même si les solutions que l'on pouvait proposer n'étaient pas parfaites, ce n'était pas une raison pour ne pas légiférer sur le sujet."
Je suis assez d'accord avec ce principe. Et de semaine en semaine, une des solutions les "moins pires" était que les fournisseurs de systèmes d'exploitation devaient implémenter un système nativement dans leur OS.
En prenant l'exemple de la majorité et des comptes/appareils pour enfants, ce serait aux parents de déclarer les informations aux services d'Apple ou de Google, et ensuite ces services ne fourniraient que des données partielles aux sites marchands. Pour être certains que cela passe, ces géants promettent alors que les données personnelles restent dans l'appareil et qu'elles ne vont pas sur leurs serveurs.
Au début, j'ai trouvé l'idée séduisante. Après tout, ils savent déjà tout de nous, ils promettent de ne rien conserver en dehors de l'appareil, ça va. Pour Apple, avec leur super puce de chiffrement et leur coffre-fort matériel sur chacun des appareils, pourquoi pas. Mais sur un smartphone Android à 90 € ? La blague.
Au-delà de devoir leur faire confiance aveuglément (rien n'étant open source dans leur cas), cela verrouille encore plus le marché des smartphones et des app stores. Il faut utiliser tous les services de ces fournisseurs de systèmes d'exploitation pour que ce genre de système de vérification fonctionne. Donc mon application bancaire, déjà fortement liée aux GAFAM, n'a maintenant plus d'autre choix que de rester captive. S'ils sortent leur app sur un store alternatif, pourra-t-elle utiliser ce système de vérification ? Quid de Linux et des OS alternatifs sur Android ? Ils seraient alors relégués aux différents services tiers existants, qui sont sûrement encore sous le modèle OpenID Connect, quand il ne faut pas carrément leur envoyer une photo de notre pièce d'identité "dans un système automatisé et sécurisé", qui, la plupart du temps, refusent les pièces d'identité avec filigrane de protection. Un système pourtant fournit par l'état dans le but de réduire l'utilisation des documents d'identité lors de fuites de données.
Ajoutez un filigrane à n'importe quel document
Le protocole OID4VP est un protocole mondial, maintenu par l'OpenID Foundation, un consortium international et non une entité privée. C'est un standard ouvert que l'Union Européenne a choisi d'intégrer au règlement eIDAS 2.0, qui dicte le fonctionnement du futur portefeuille d'identité numérique européen, le fameux EUDI Wallet.
En conclusion : l'opportunité pour nous, développeurs
Pour résumer, OID4VP n'est pas juste une lubie européenne de plus. On parle d'un protocole qui a été réfléchis en fonction des erreures que l'on a fait avant. En tant que développeurs, on va devoir s'habituer à ne plus stocker de dates de naissance ou de scans de CNI sur des serveurs mal sécurisés, donc être RGPD ready sans effort. À la place, on demandera simplement des attestations signées au portefeuille de l'utilisateur.
La bonne nouvelle soulevée lors de cette conférence, c'est que l'Europe, pour accélérer l'adoption, finance la création de briques logicielles. Si le sujet vous intéresse et que vous voulez implémenter un "Vérificateur" sur votre site, tout l'écosystème de l'EUDI Wallet est disponible en Open Source sur le GitHub de l'Union Européenne (bibliothèques Kotlin, Swift, Java...).