Esup-Signature

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Remarque

En général les supports cartographiques (token) se présentent sous la forme d'un lecteur de carte a puce USB (une clé) accompagné d'une carte SIM. Il faut donc qu'OpenSC supporte à la fois le lecteur et à la fois la carte SIM.

La liste des matériels supportés nativement par les drivers libres intégrés est donnée ici : https://github.com/OpenSC/OpenSC/wiki/Supported-hardware-%28smart-cards-and-USB-tokens%29

Notez que si les drivers libres embarquées par OpenSC ne peuvent pas être utilisées, il est aussi possible d'utiliser opensc avec les drivers propriétaires. Le déploiement et configuration, notamment des postes clients, seront alors cependant un peu plus compliqués.

Sommaire

Sources

https://github.com/OpenSC/OpenSC

...

Avertissement

Ce point est plus problématique. OpenSC permet une abstraction matérielle mais la compatibilité est limitée nativement.
Par exemple, les derrières carte SIM obtenues auprès de Certinomis (septembre 2023 ?) ne sont pas reconnues pas les drivers libres embarquées par OpenSC 0.23.0

Pour obtenir la liste des drivers supportés :

Bloc de code
themeRDark
opensc-tool -D

En version 0.23.0 on obtient :

plusieurs choix s'offrent alors à l'exploitant : 

  • tenter de forcer l'usage d'un driver déjà intégrée si on pense que la carte non reconnue correspond en fait à une variante d'une carte/driver reconnue dans opensc
  • utiliser le driver propriétaire au travers toujours des utilitaires opensc, ce qui permet à esup-signature/esup-dss-client de préserver cette couche d'abstraction (en cours d'étude/développement)
  • enfin pour le cachet serveur côté esup-signature, il est aussi possible de configurer directement le module/driver propriétaire (sans passer par opensc). 

Pour obtenir la liste des drivers supportés nativement :

Bloc de code
themeRDark
opensc-tool -D

En version 0.23.0 on obtient :

Bloc de code
theme
Bloc de code
themeRDark
Available card drivers:
  cardos           Siemens CardOS
  cyberflex        Schlumberger Cyberflex
  gemsafeV1        Gemalto GemSafe V1 applet
  starcos          STARCOS
  tcos             TCOS 3.0
  oberthur         Oberthur AuthentIC.v2/CosmopolIC.v4
  authentic        Oberthur AuthentIC v3.1
  iasecc           IAS-ECC
  belpic           Belpic cards
  entersafe        entersafe
  epass2003        epass2003
  rutoken          Rutoken driver
  rutoken_ecp      Rutoken ECP and Lite driver
  myeid            MyEID cards with PKCS#15 applet
  dnie             DNIe: Spanish eID card
  MaskTech         MaskTech Smart Card
  esteid2018       EstEID 2018
  idprime          Gemalto IDPrime
  coolkey          COOLKEY
  muscle           MuscleApplet
  sc-hsm           SmartCard-HSM
  mcrd             MICARDO 2.1 / EstEID 3.0 - 3.5
  setcos           Setec cards
  PIV-II           Personal Identity Verification Card
  cac              Common Access Card (CAC)
  itacns           Italian CNS
  isoApplet        Javacard with IsoApplet
  gids             GIDS Smart Card
  openpgp          OpenPGP card
  jpki             JPKI(Japanese Individual Number Cards)
  npa              German ID card (neuer Personalausweis, nPA)
  cac1             Common Access Card (CAC 1)
  nqapplet         NQ-Applet
  default          Default driver for unknown cards

...

Info

Pour résumer, OpenSC ne gère pas forcément tous les matériels mais il permet d'obtenir suffisamment d'informations pour permettre son identification.

Comme proposé plus haut pour les lecteurs USB, n'hésitez pas à recenser ci-dessous la liste des matériels et des ATR qui fonctionnent ou non avec OpenSC. 

Dans la mesure du possible, il est préférable de demander un matériel pleinement opérationnel et supporté nativement par OpenSC.


OpenSC0.23.00.24.0
Gemalto IDPrime 940 (3b:7f:96:00:00:80:31:80:65:b0:85:59:56:fb:12:0f:fe:82:90:00)OKOK
Gemalto IDPrime 940c (3b:7f:96:00:00:80:31:80:65:b0:85:05:00:39:12:0f:fe:82:90:00)KO?

...

Remarque

Il est possible de vérifier le référencement de l'ATR via ce site :

Exemple pour Gemalto IDPrime 940

https://smartcard-atr.apdu.fr/parse?ATR=3b:7f:96:00:00:80:31:80:65:b0:85:59:56:fb:12:0f:fe:82:90:00

Exemple pour Gemalto IDPrime 940c

https://smartcard-atr.apdu.fr/parse?ATR=3b:7f:96:00:00:80:31:80:65:b0:85:05:00:39:12:0f:fe:82:90:00

L'ATR doit à minima y être présent pour pouvoir être pris en charge par OpenSC


Driver propriétaire

Si OpenSC embarque des drivers libres, il est aussi possible d'utiliser des drivers propriétaires avec les utilitaires proposées par OpenSC.

Ainsi la commande  pkcs11-tool admet en option --module

Ainsi on peut tester l'authentification via le code pin sur la carte, avec la commande suivante (libIDPrimePKCS11.so est le driver propriétaire de certinomis ici) :

Bloc de code
themeRDark
# pkcs11-tool --login --test --module /usr/lib/pkcs11/libIDPrimePKCS11.so

Pour lister les objets : 


Bloc de code
themeRDark
#  pkcs11-tool -O --module /usr/lib/pkcs11/libIDPrimePKCS11.so

Using slot 0 with a present token (0x0)
Certificate Object; type = X.509 cert
  label:      PRM_CAC_QSCD
  subject:    DN: C=FR, O=Certinomis/organizationIdentifier=NTRFR-433998903, CN=Certinomis - Prime CA G2
  serial:     8CC62F2DAD75D1B7C2CC22354920843D6311D849
  ID:         da534a908725de6d7f86845a4bccb662afce71cd
Certificate Object; type = X.509 cert
  label:      PRM_CAC_QSCD
  subject:    DN: C=FR, O=Certinomis, OU=0002 433998903, CN=Certinomis - Root CA
  serial:     01
  ID:         51b4b5cb135859dcfb983733e0de571d25b3afc0
Certificate Object; type = X.509 cert
  label:      PRM_CAC_QSCD
  subject:    DN: C=FR, ST=75, L=Paris, O=CONSORTIUM ESUP PORTAIL/organizationIdentifier=NTRFR-508669561, OU=0002 508669561/serialNumber=204277ILI131, CN=CONSORTIUM ESUP PORTAIL - SIGNATURES
  serial:     24F7DE1DDFD9B0A9E4C5B8F77A8B338C
  ID:         3de88247375e5fb19cab3c31f1776b98f738f02f
Public Key Object; RSA 4096 bits
  label:      PRM_CAC_QSCD
  ID:         3de88247375e5fb19cab3c31f1776b98f738f02f
  Usage:      encrypt, verify, wrap
  Access:     local


Par rapport au driver libre embarqué dans opensc, on constate au passage que les id sont différents, là où la clef publique avait pour id 0001 on a maintenant 3de88247375e5fb19cab3c31f1776b98f738f02f

Ainsi, pour lire le certificat, esup-signature/esup-dss-client devra utiliser comme commande non pas (comme donné par défaut, en dur actuellement) :


Bloc de code
themeRDark
pkcs11-tool -r --id 0001 --type cert

mais :

Bloc de code
themeRDark
pkcs11-tool -r --id 3de88247375e5fb19cab3c31f1776b98f738f02f --type cert --module /usr/lib/pkcs11/libIDPrimePKCS11.so

Logs debug

Si vous souhaitez récupérer des informations de debuggage, vous avez 2 possibilités :

...