BeID, la carte d’identité électronique sous Linux, part 1

Depuis quelques années, en Belgique, l’ont peut déclarer ses contributions sur internet grâce à la carte d’identité électronique, alias eID. Que l’on aime ou non la numérisation de nos données, il faut avouer que le résultat est très intéressant. Non seulement la déclaration est devenue beaucoup plus facile que celle papier (pré-remplissage du formulaire, ça me prend 15min à tout casser) mais cette carte d’identité est équipée de certificats qui peuvent être utiles dans toute une série de choses.

Techniquement il s’agit de 3 algorithmes RSA de 1024 bits qui permettent la signature, authentification et répudiation. Les standards conseillent l’utilisation de clés de 2048 bits mais toujours est-il que le 1024 tient toujours bon à ce jour, croisons les doigts pour que ça dure encore quelques années le temps que la carte arrive a expiration et qu’on augmente le tout…
L’avantage d’utiliser ces clés plutôt que des que vous avez générer vous même est qu’elles ont été signées par le gouvernement belge. Elles sont donc une preuve solide de votre identité lorsque vous devez signer un document électronique, plus besoin d’échange de mallettes diplomatiques pour faire un échange de clefs efficace…

Ils ont l'air si heureux avec leur eid, on ne se fout surement pas de vous...

Tout d’abord là où j’ai été impressionné est la présence sur le site eid.belgium.be d’un middleware opensource (Google code), de packages pour Debian, Entreprise Linux, Fedora et Ubuntu ainsi qu’une doc assez fournie avec des détails techniques ou comment utiliser le tout avec Firefox, Thunderbird & Co (quoique les pdf semblent avoir bouger/disparut récemment, je me retrouve avec plein de liens morts). Pour une fois qu’on a pas été oublié, ça a le mérite d’être salué.

Beaucoup de choses mais un peu répartie n’importe où et pas non plus toujours très à jour. Voici donc quelques moyens de l’utiliser mais pour commencer comment l’installer sous Linux.

Installation

Sous Debian, les paquets beid-common, beid-tools et beidgui sont disponibles dans les dépots et semblent relativement à jour (version 3.5, la 4 est sortie en janvier).
Sous archlinux, il y a (comme d’hab) un package dans aur beid-svn mais qui ne contient que le Middleware, pas d’interface graphique. Après quelques recherches il semblerait que le beidgui va être remplacé par un applet mais il y a un petit laissé aller dans le développement.

Des autres paquets sont disponibles ici pour les distributions supportées, le guide pour Ubuntu est détaillé ici. Pour Gentoo, allez jeter un oeil ici. Ou tout simplement téléchargez les sources et compilez les…

Un des points important pour faire fonctionner le tout est d’installer les drivers de votre lecteur de carte. Vous pouvez connaitre votre modèle avec un simple lsusb et puis allez voir la compatibilité sur la page de cardreaders.be.

$ lsub
Bus 005 Device 002: ID 072f:90cc Advanced Card Systems, Ltd ACR38 SmartCard Reader

Mon lecteur étant un ACR38, j’ai installé le paquet libacr38.

Pour un rapide test que tout fonctionne bien, utilisez la commande suivante :

$ pcsc_scan
PC/SC device scanner
V 1.4.18 (c) 2001-2011, Ludovic Rousseau
Compiled with PC/SC lite version: 1.8.1
Using reader plug’n play mechanism
Scanning present readers…

Belgium Electronic ID card

Tout va bien ici !

Thunderbird

Si vous voulez signez un mail avec votre carte voici comment configurer votre compte :

  1. Dans les paramètres du compte, allez à Security > Security Devices
  2. Sélectionnez NSS Internal PKCS11#Module, puis cliquez sur Load
  3. Entrez le chemin vers la librairie pkcs#11 (chez moi /usr/lib/libbeidpkcs11.so, dans la doc /usr/local/lib/libbeidpkcs11.so).
  4. De retour dans la fenêtre de sécurité, allez dans View certificates > Your certificates pour vérifier vos certificats. (Vous pouvez faire un backup)
  5. Dans Authorities > Belgium root CA > Edit trust, cochez « This certificate can identify mail users »
  6. Finalement, toujours dans la fenêtre security, choisissez un certificat pour Digital signing. Vous aurez le choix entre deux certificats : un certification « authentication » qui sert à signer simplement un mail et un certificat « signature » qui sert en cas de preuve pour signer des documents officiels & co, les deux sont valables.

Il n’y a pas de clef de chiffrement donc il est normal que l’on ne sache pas chiffrer de message (dommage mais bon). Maintenant que la configuration est faite, lors d’un envoi d’un mail, cochez la case Options > Digitally Sign This Message. Votre code PIN sera demandé (attention vous n’avez que 3 essais avant de la bloquer).

Il semblerait qu’il faille que votre correspondant ai importé le certificat Belgium Root CA, ils ne sont pas inclus par défaut dans Thunderbird. Ça se fait lors de l’importation de vos certificats ou peut être téléchargé ici) pour vérifier la chaine de signature (vous pourriez créer des faux certificats signés par un faux root CA). C’est un peu dommage mais déjà pas mal (les plus parano d’entre vous auront importés les certificats).

Le gouvernement belge ne connait pas votre adresse mail donc n'a pas pu la spécifier dans le certificat...

Les explications avec images sont disponibles ici (PDF, 700k).

Signez un document

En principe, vous êtes capable de signer un document avec Libre/OpenOffice via le menu File > Digital Signature et là sélectionnez votre certificat. Cependant, il n’y avait rien chez moi.

En principe, vous êtes capable de signer un pdf avec Adobe Reader via le menu Document > Security Settings > Digital ID et importer le fichier que vous avez créé si vous aviez exporté vos certificats (avec Thunderbird par exemple). Cependant ce programme est une bouse sans nom qui crash tout le temps, impossible d’en tirer quelque chose malheureusement.

Si quelqu’un a des solutions pour les signatures avec ces deux programmes, je suis preneur.

J’espère que ça vous aura été quand même utile, dans la prochaine partie, j’expliquerai quelques astuces à la ligne de commande (ou comment signer n’importe quel fichier avec son terminal).

Vus : 2033
Publié par mart-e : 65