Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
13 février 2012

PKI sécurité smartcard           Public Key Infrastructure


OpenCT

OpenCT

Pilotes pour cartes à puce

   Openct implémente des pilotes pour de nombreux lecteurs de carte. Ils sont fournis au format ifdhandler requis pour pcsc-lite. OpenCT a également un mécanisme primitif pour exporter les lecteurs de carte sur des machines distantes via tcp/ip.

Présentation générale

Le scénario le plus simple et recommandé est:
Application (ex : mozilla)
librairie PKCS11(ex : OpenSC)
OpenCT
Kernel Linux

   Mozilla peut charger les modules de sécurité implémentant PKCS11, opensc le fait et a une interface directe pour utiliser openCT

Parfois vous avez cette pile:
Application
PC-SC/Lite
Driver
Kernel

   PC/SC est un standard sous Windows, donc de nombreuses applications veulent l’utiliser pour communiquer avec les cartes à puce. pcsclite a besoin de pilotes au format ifdhandler. OpenCT a un pilote au format ifdhandler.

Le 3ème modèle:
Application
Driver

   est très simple et a été conçus pour DOS.Il fonctionne très bien pour une application et un utilisateur. Il n’est plus utilisé.

Système d'exploitation

   Les lecteurs de carte USB necéssitent un support USB pour que OpenCT soit notifié. hotplug tend à être remplacé par udev ou hald.

Configurer udev

Pour le support USB sous Linux vous devez avoir:
- libusb
- CONFIG_HOTPLUG pour que le kernel laisse savoir si un lecteur ou un token est branché
- udev installé
- Copier les fichiers suivant:
/lib/udev/rules.d/50-openct.rules
/lib/udev/openct_usb
/lib/udev/openct_pcmcia
/lib/udev/openct_serial

Accès au lecteur de carte distant

   cette fonctionnalité n’inclus aucun mécanisme de sécurité.

Sur la machine avec le lecteur, ajouter à openct.conf (exemple avec un lecteur série):
reader xiring {
    driver = xiring;
    device = serial:/dev/ttyS0;
};

Démarrer ifdproxy pour pointer vers la machine distante:
ifdproxy export xiring /dev/ttyS0 ‹machine-distante› :‹port›

Sur la machine avec le logiciel, ajouter dans openct.conf:
ifdhandler = /usr/sbin/ifdhandler;
ifdproxy {
    server-port = /var/run/openct/proxy,
    device-port = :6666;
};
reader xiring {
    driver = xiring;
    device = remote:serial1@/var/run/openct/proxy;
};

Démarrer openct
/etc/init.d/openct start
ifdproxy server