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.


Info

Le projet OpenSC fournit un ensemble de bibliothèques et d'outils pour travailler avec des cartes à puce (Token). Son principal objectif est de prendre en charge les cartes cryptographiques et de faciliter leur utilisation dans des applications de sécurité telles que l'authentification, le chiffrement des e-mails et les signatures numériques.

OpenSC met en œuvre les interfaces standard pour les cartes à puce, telles que l'API PKCS#11, le pilote de carte à puce de Windows et CryptoTokenKit sur macOS.

Dans le cadre d'esup-signature, OpenSC permet l'accès aux supports cryptographiques pour la signature avec des certificats eIDas (RGS**) pour les signature cachet d'etablissement (Utilisation d'un certificat cachet d'établissement à l'université de Rouen) ou pour les signature avec Esup-DSS-Client (Esup-DSS-Client).


Remarque

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

La liste est materiels supportés est ici : https://github.com/OpenSC/OpenSC/wiki/Supported-hardware-%28smart-cards-and-USB-tokens%29

Sources

https://github.com/OpenSC/OpenSC

Documentation

La documentation est très bien faite, elle se trouve ici : https://github.com/OpenSC/OpenSC/wiki

Installation

L'installation est documentée ici :


Compatibilité matérielle


Avertissement

OpenSC permet une abstration materielle mais la compatibilité est limitée. Par exemple, les derrières carte SIM obtenues auprès de Certininomis ne sont pas reconnes pas OpenSC 0.23.0

Si l'on ne parvient à signer directement avec les couple clé/carte SIM que vous possédez, vous pouvez controler votre matériel avec les commandes suivantes :

Fonctionnement du lecteur

Pour tester le fonctionnement de votre lecteur : 

Bloc de code
themeRDark
pkcs11-tool -L

exemple de resultat correct : 

Bloc de code
languageyml
themeRDark
Available slots:
Slot 0 (0x0): Feitian SCR301 (FFFFFFFFFFFFF) 00 00
  token label        : Université de XXXX...
  token manufacturer : Gemalto
  token model        : PKCS#15 emulated
  token flags        : login required, rng, token initialized, PIN initialized
  hardware version   : 0.0
  firmware version   : 0.0
  serial num         : 7e800005582b1079
  pin min/max        : X/X


Avertissement

A cette étape, il est important de vérifier que votre lecteur USB est bien compatible avec OpenSC, voir : https://github.com/OpenSC/OpenSC/wiki/Supported-hardware-%28smart-cards-and-USB-tokens%29

Même s'il n'est pas listé, il y a été possible de signer en insérant la carte sim (avec la carte complète style carte de crédit) dans un vieux lecteur Identiv 4700F. Donc la liste d'OpenSC n'est pas exhaustive. A priori les lecteurs eToken SafeNet et Gemalto SA USB SmartCard Reader ne fonctionnent pas avec OpenSC (à vérifier)

Image Added

N'hésitez par modifier ce bloc pour y insérer les références des lecteurs fonctionnels chez vous (merci d'avance) :

Fonctionnement de la carte SIM

...

Pour obtenir la liste des drivers supportés :

...

Pour lister les périphériques présents sur la machine et obtenite le code ATR de votre carte SIM:

Bloc de code
themeRDark
opensc-tool -a

Exemple de résultat avec les anciènnes carte certinomis "Gemalto IDPrime"

A cette étape, il est important de vérifier que votre lecteur USB est bien compatible avec OpenSC, voir :
Bloc de code
themeRDark
Using reader with a card: Feitian SCR301 (FFFFFFFFFFFFF) 00 00
xx3b:xx7f:xx96:xx00:xx00:xx80:xx31:xx80:xx65:xxb0:xx85:xx59:xx56:xxfb:xx12:xx0f:xxfe:xx82:xx90:xx
Avertissement
00

Ici le code ATR est 3b:7f:96:00:00:80:31:80:65:b0:85:59:56:fb:12:0f:fe:82:90:00 . Si on le cherche dans le dépot de OpenSC. Ici le lien pour cherches directement sur github:

https://github.com/

...

Même s'il n'est pas listé, il y a été possible de signer en insérant la carte sim (avec la carte complète style carte de crédit) dans un vieux lecteur Identiv 4700F. Donc la liste d'OpenSC n'est pas exhaustive. A priori les lecteurs eToken SafeNet et Gemalto SA USB SmartCard Reader ne fonctionnent pas avec OpenSC (à vérifier)

Image Removed

N'hésitez par modifier ce bloc pour y insérer les références des lecteurs fonctionnels chez vous (merci d'avance) :

search?q=repo%3AOpenSC%2FOpenSC+%223b%3A7f%3A96%3A00%3A00%3A80%3A31%3A80%3A65%3Ab0%3A85%3A59%3A56%3Afb%3A12%3A0f%3Afe%3A82%3A90%3A00%22&type=code

On obtient :

Image Added

L'ATR est présent dans le fichier card-idprime.c . On voit que cette carte est reconnue comme "Gemalto IDPrime 940".

Cela correspond à l'information que l'on peut obtenir via le pilote Safenet sous windows :

Image Added


Maintenant, lorsque l'on prend les dernières carte SIM livrées par Certinomis, L'ATR à changé :

Bloc de code
themeRDark
Using reader with a card: Feitian SCR301 (FFFFFFFFFFFFF) 00 00
3b:7f:96:00:00:80:31:80:65:b0:85:05:00:39:12:0f:fe:82:90:00

On ne trouve pas de référence à cet ATR dans OpenSC mais si on ouvre le token dans Safenet on voit ceci :

Image Added

La référence est IDPrime 940c


Info

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

Dans notre cas, nous avons modifier le code d'OpenSC pour ajouter l'ATR manquant et faire en sorte qu'il soit reconnu comme "Gemalto IDPrime 940". La signature fonctionne correctement.

A la suite de cela nous avons transmit la modification à l'équipe d'OpenSC : https://github.com/OpenSC/OpenSC/commit/3ea23d71277db75ba6c609804bb8affec2e8bcae

L'idée est de recenser, ci-dessous, la liste des matériels et des ATR qui fonctionne ou non pas avec 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 refé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:05:00:39: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:59:56:fb:12:0f:fe:82:90:00

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

Fonctionnement de la signature

...

Pour vérifier l'authetification sur votre matériel, vous pouver lancer la commande suivante :

...