L'eID belge

Une carte d'identité vue de biais par-dessus, avec une puce dorée, à côté de la fente d'un lecteur de carte.

Depuis tes douze ans, il y a un petit ordinateur dans ton portefeuille. Ta carte d'identité a une puce, et dans cette puce se trouve tout ce que tu as vu sur ce site : deux paires de clés sur une courbe elliptique, des certificats qui prouvent qu'elles t'appartiennent, et un minuscule processeur capable de signer sans jamais laisser échapper ses clés privées. Dans ce chapitre, tu vas vraiment les utiliser.

Les mots dont tu as besoin

Puce
Le petit carré doré sur ta carte. Un vrai ordinateur minuscule, avec sa propre mémoire et son propre processeur. Il reçoit son courant du lecteur de carte.
Lecteur de carte
Le petit appareil dans lequel tu insères la carte, relié par un câble USB à ton ordinateur. Tes parents en ont peut-être un pour leurs impôts. Sans lecteur, tu peux lire ce chapitre, mais pas faire la démo.
Helper
Un petit programme qui tourne en arrière-plan sur ton ordinateur et fait le pont entre ton navigateur et le lecteur de carte. Sans ce programme, aucun site ne peut accéder à ta carte — c'est fait exprès, sinon n'importe quel site pourrait lire ta carte comme ça. Tu l'installes une fois pour toutes ; voir « Ce dont tu as besoin » ci-dessous.
Code PIN
Quatre chiffres que tu as reçus avec ta carte. La puce ne fait rien avec tes clés privées sans ce code. Trois erreurs : bloquée.
Numéro de registre national
Le numéro par lequel l'État belge te connaît. Il figure sur ta carte et commence par ta date de naissance, à l'envers.

Ce qu'il y a dans la puce

QuoiPourquoi
Ton nom, ta date de naissance, ton numéro de registre nationalSignés par l'État, donc infalsifiables
Ton adresseStockée à part, car elle change plus souvent que le reste
Ta photoUn JPEG de quelques kilo-octets — en base64 quand tu la lis
Clé authPour prouver que c'est bien toi lors de la connexion
Clé signPour signer des documents, juridiquement valable
CertificatsLa chaîne de confiance jusqu'à l'État belge

L'élément le plus important n'y figure pas : les clés privées ne peuvent pas quitter la puce. Il n'existe aucune commande pour les lire. Tout ce qu'un programme peut demander, c'est : « signe ceci pour moi ». La puce le fait en interne, après que tu as donné ton code PIN, et ne renvoie que la signature. C'est pourquoi ta carte est plus sûre qu'une clé sur ton disque dur : celle-là peut être copiée. Une puce, non.

Ce dont tu as besoin

Ce chapitre ne fonctionne que sur un ordinateur — pas sur ton GSM ou ta tablette. Un smartphone n'a pas de connexion pour un lecteur de carte et il n'existe pas de version du helper pour Android ou iOS. Lis ce chapitre tranquillement sur ton téléphone, mais fais la démo sur un ordinateur Windows, macOS ou Linux.

  1. Ta eID et ton code PIN.
  2. Un lecteur de carte, branché sur cet ordinateur via USB. Certains portables en ont même un intégré ; sinon, un lecteur à quelques euros suffit.
  3. Le logiciel officiel eID du gouvernement — télécharge-le sur eid.belgium.be. Il reconnaît ta carte et ton lecteur.
  4. Le helper de la plateforme beID — télécharge-le sur beid.hermesplatform.be/download. C'est le programme dont ce site (et tout autre site qui travaille avec ta eID) a besoin pour accéder au lecteur de carte.

Les deux installations se font une seule fois ; ensuite elles tournent en arrière-plan. S'il manque quelque chose, la démo ci-dessous te dira exactement quoi : « aucune carte ou lecteur trouvé » ou « le helper ne tourne pas sur cet ordinateur ».

Essaie avec ta propre carte

Attention : cette démo passe bel et bien par un serveur. Impossible de faire autrement — le lecteur de carte est sollicité par la plateforme beID, et la réponse revient par un détour sécurisé. Tout ce qui vient de ta carte est affiché une seule fois à l'écran puis jeté. Pas enregistré, pas journalisé, transmis à personne. Fais ceci uniquement avec ta propre carte.

  1. Choisis ce que tu veux faire. Commence par Lire l'identité.
  2. Clique sur Démarrer la session carte. Tu es redirigé, le lecteur s'allume, tu donnes ton code PIN.
  3. Tu reviens avec tes données à l'écran — et la preuve qu'elles viennent vraiment de ta carte.
  4. Essaie ensuite Signer avec la clé d'authentification : tape un texte, laisse ta puce le signer, et vois comment ce site vérifie la signature. C'est le chapitre sept, en vrai.

À propos de sign : cette signature a la même valeur juridique que ta signature au stylo. Pour cette démo, ça n'a pas d'importance — tu signes une petite phrase qui n'est conservée nulle part. Mais retiens la différence : auth dit « c'est bien moi », sign dit « je suis d'accord ». Ne donne jamais ton code PIN pour sign à un site auquel tu ne fais pas confiance.

Ce qui se passe en quelques secondes

  1. Ce site écrit ce qu'il veut faire (par exemple « lire l'identité »), le met en base64 et le signe avec sa propre clé privée. Ainsi, la plateforme sait que la demande vient vraiment d'ici. (Chapitres 1 et 7.)
  2. Ton navigateur envoie ça à la plateforme. Le lecteur se réveille, tu tapes ton code PIN, la puce fait son travail.
  3. La plateforme te renvoie avec un code : un petit numéro aléatoire, valable deux minutes. Il ne contient encore aucune donnée.
  4. Le serveur de ce site échange ce code auprès de la plateforme, et signe aussi cette demande-là. En retour arrive un jeton contenant tes données, signé par la plateforme.
  5. Ce site vérifie cette signature, vérifie le hash du contenu (chapitre 2), et ce n'est qu'alors qu'il croit ne serait-ce qu'un seul champ.

Tu as choisi auth ou sign ? Alors ce site vérifie en plus la signature de ta puce par rapport au certificat que cette même puce a envoyé — exactement le bouton Vérifier du chapitre sept, mais avec une clé privée qui se trouve dans un petit morceau de plastique que tu tiens dans ta main.

Tout ce que tu viens de voir dans ces cinq étapes, tu l'as déjà rencontré : base64, hashing, paires de clés, courbes, signatures. Aucune nouvelle idée ne s'ajoute. C'est comme ça pour toute la sécurité : une poignée d'idées mathématiques, empilées intelligemment.

Deux générations de cartes

Les cartes plus anciennes fonctionnent encore avec RSA (chapitre 5), les plus récentes avec une courbe elliptique (chapitre 6). Tu le vois au résultat : si tu vois pkcs1, tu as une carte RSA ; si tu vois der, une carte à courbe. Pour la vérification, ça n'a pas d'importance — c'est le certificat qui indique de quel système il s'agit.

Pour qui veut construire ça lui-même plus tard : le manuel technique complet de la plateforme se trouve sur beid.hermesplatform.be. Le code derrière cette page le suit ligne par ligne.

Voici les maths : ce qui se passe en deux secondes

Entre la saisie de ton code PIN et le résultat à l'écran, quatre signatures ont été créées et vérifiées, chacune un calcul sur une courbe elliptique avec des nombres de plus de cent chiffres ; un hash a été calculé au moins trois fois ; et un secret a été convenu une fois avec le tour de la peinture. Tout ce que tu as vu un par un sur ce site, en une fraction de seconde. C'est ce que font les mathématiques quand on les laisse travailler.