Table des matières
Installer le lecteur de carte d'identité électronique belge
A) Avec le logiciel du SPF STRATÉGIE ET APPUI
- Allez sur la page du site officiel télécharger le fichier .deb http://eid.belgium.be
- Installez ce fichier .deb via la logithèque ou GDebi
- Ouvrez un terminal
sudo apt-get update sudo apt-get upgrade sudo apt-get install eid-mw sudo apt-get install eid-viewer
- Rebooter le PC
Si le lecteur de carte n'est pas visible
On vérifie dans la liste des services si pcscd existe via la commande $ls /etc/init.d Si ce n'est pas le cas, on démarre le service pcscd via la commande
$sudo service pcscd start
Si au redémarrage, le service n’est pas lancé (vérifier avec ps -ax | grep pcscd), on peut faire en sorte qu’il le soit toujours via la commande
$sudo systemctl enable pcscd
Firefox
- Allez à la page https://addons.mozilla.org/fr/firefox/addon/belgium-eid/ et installez l'add-on.
Si cela ne fonctionne pas encore et que votre lecteur est un modèle ACR38U
64 bits
- Téléchargez le paquet libacsccid1 sur https://packages.debian.org/buster/amd64/libacsccid1/download
- Installez le .deb
32 bits
- Téléchargez le paquet libacsccid1 sur https://packages.debian.org/buster/i386/libacsccid1/download
- Installez le .deb
B) Sans le logiciel du SPF STRATÉGIE ET APPUI
Source : tuto sur https://wiki.debian.org/fr/BeID
Installer les paquets
sudo apt-get install opensc opensc-pkcs11 pcscd libccid pcsc-tools
Vérifier que le lecteur fonctionne
pcsc_scan
Si cela ne fonctionne pas et que votre lecteur est un modèle ACR38U
- Installer libacsccid1
64 bits
- Téléchargez le paquet libacsccid1 sur https://packages.debian.org/buster/amd64/libacsccid1/download
- Installez le .deb
32 bits
- Téléchargez le paquet libacsccid1 sur https://packages.debian.org/buster/i386/libacsccid1/download
- Installez le .deb
Firefox
source : Installing OpenSC PKCS#11 Module in Firefox, Step by Step
- Ouvrir Firefox
- Menu Préférences / Vie privée et sécurité
- Tout en bas à droite : Sécurité / Certificats / bouton “Périphériques de sécurité…”
- Cliquer < charger >
- Remplir le champ “Nom du module” (au choix - un nom parlant)
- Remplir le champ “Nom de fichier du module” : y mettre le chemin complet de la lib qui gère les certificats de l'eID*
- Brancher le lecteur avec une carte d'identité dedans
- Revenir dans les préférences au même point que ci-dessus : Préférences / Vie privée et sécurité / Sécurité / Certificats / bouton “Périphériques de sécurité”
- Dans le module eID, il devrait y avoir une ligne ACR38U et les détails de ce qu'il y a sur la carte.
Remarque Comme c'est opensc qui est utilisé et pas le soft eid, un message avertit que le soft EID n'est pas installé. Passer outre et se connecter.
* Pour trouver le chemin de la lib EID
Ouvrir un terminal et taper
dpkg --listfiles opensc-pkcs11 | grep /opensc-pkcs11.so | xargs ls -l
Le résultat contient 2 lignes. Copier le contenu de la ligne sans le “→” (qui est un lien symbolique)
Testé avec
- Smart Card Reader ACR38U
Testé mais subtilités avec
- Digipass 905 eID (distribué par Fedict, www.retail.vasco.com)
Le digipass ne fonctionne pas de façon optimale. Pour le faire fonctionner, il faut le débrancher/rebrancher sur le port usb et jouer avec un script écrit par Manuel Schulte. Après un temps d'inutilisation, le lecteur semble entrer en “veille” et pour le faire à nouveau fonctionner, il faut de nouveau lancer le script.
Le script est au bas de la page. Sauvez-le dans un fichier nommé “pcscd_init.sh”.
Ensuite, branchez votre lecteur de carte. Ouvrez un terminal, mettez-vous dans le répertoire du script et lancez
sudo /bin/bash pcscd_init.sh start -d
Quand vous avez fini, clôturez en lançant :
sudo /bin/bash pcscd_init.sh stop
Si le lecteur s'éteint, il faut le débrancher, le rebrancher et relancer le script.
Script pcscd_init.sh
#!/bin/bash
#
# Restart pcscd daemon in verbose mode and initiate pcsc_scan.
# You might have to unplug/plug the usb card reader!
EXPECTED_ARGS=2
E_BADARGS=65
#
MYSELF=pcscd_init.sh
#
START=/bin/systemctl" start"
STATUS=/bin/systemctl" status"
STOP=/bin/systemctl" stop"
SERVICE=pcscd.service
SOCKET=pcscd.socket
#
RM=/bin/rm
TOUCH=/usr/bin/touch
#
DAEMON=/usr/sbin/pcscd
DEBUG_SEMAPHORE=/var/run/pcscd.debug
SCAN=/usr/bin/pcsc_scan
#
#
USR=$(whoami)
if [ "$USR" != "root" ]
then
echo "You must be root to execute this script, re-run with sudo!"
exit 1
fi
#
# Check argument's number
if [ "$#" -eq "0" ] || [ "$#" -gt "$EXPECTED_ARGS" ]
then
echo " Usage: $(basename $0) <start/status/scan/stop> [-d | --debug]"
echo " -d | --debug: enable debugging, daemon will start in foreground and will log its activity."
exit $E_BADARGS
fi
#
#
DBG="$2"
if [ "$2" == "-d" ] || [ "$2" == "--debug" ]
then
DBG=1
else
DBG=0
fi
#
# Check argument's value
if [ "$1" == "start" ]
then
# Start Daemon
# Stop the daemon if was started
TEST=$(ps -aux | grep -i "[p]cscd")
if ! [ -z "$TEST" ]
then
# Deprecated (upstart)
#service pcscd stop
#
echo "Stopping any running instance first!"
if [ -e "$DEBUG_SEMAPHORE" ]
then
echo "Kill running debug instance..."
$RM -fv $DEBUG_SEMAPHORE
killall pcscd
fi
#
$STOP $SOCKET
$STOP $SERVICE
sleep 1
echo "Done stopping running instance."
fi
#
if [ "$DBG" -eq 1 ]
then
LOGFILE="/tmp/"${MYSELF%.*}.log
echo "Starting pcscd daemon in debug mode and in foreground."
echo "Log file at '$LOGFILE'."
# Remember we are in debug mode, create a semaphore
$TOUCH $DEBUG_SEMAPHORE
# Start daemon in debug mode:
# Restart the daemon in foreround / debug mode but detached!
#$DAEMON -df |& tee $LOGFILE
#
# Restart the daemon using debug start instructions from L.Rousseau's web page:
# LIBCCID_ifdLogLevel=0x000F pcscd --foreground --debug --apdu --color | tee log.txt
LIBCCID_ifdLogLevel=0x000F $DAEMON -df --apdu --color |& tee $LOGFILE
echo "Debug session terminated!"
else
echo "Starting pcscd daemon in background."
$START $SOCKET
$START $SERVICE
echo "Done starting pcscd."
fi
fi
if [ "$1" == "status" ]
then
$STATUS $SOCKET
$STATUS $SERVICE
fi
if [ "$1" == "scan" ]
then
# Start Scanning software
# Stop the app if was started
TEST=$(ps -aux | grep -i "[p]csc_scan")
if ! [ -z "$TEST" ]
then
killall $SCAN
fi
#
# Restart the scanning app.
$SCAN
fi
if [ "$1" == "stop" ]
then
# Stop scanning software.
TEST=$(ps -aux | grep -i "[p]csc_scan")
if ! [ -z "$TEST" ]
then
killall $SCAN
fi
# Stop Daemon.
# Deprecated (upstart)
#service pcscd stop
#
echo "Stopping pcscd daemon!"
if [ -e "$DEBUG_SEMAPHORE" ]
then
echo "Kill running debug instance..."
$RM -fv $DEBUG_SEMAPHORE
killall pcscd
fi
#
$STOP $SOCKET
$STOP $SERVICE
sleep 1
echo "Done stopping pcscd daemon."
#
# Stop other running instances of this script!
TEST=$(ps -aux | grep -i "[p]cscd_init.sh")
if ! [ -z "$TEST" ]
then
killall $MYSELF
fi
fi
exit $?

