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.

...

Compatibilité matérielle

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

...

Bloc de code
themeRDark
pkcs11-tool -L

exemple 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         : 7e800005582b1079xxxxxxxxxxxxxxx
  pin min/max        : X/X


Info

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 nous 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 La liste d'OpenSC n'est donc pas exhaustive. A priori les lecteurs eToken SafeNet et Gemalto SA USB SmartCard Reader ne fonctionnent pas avec OpenSC (à vérifier)

N'hésitez par modifier le tableau ci-dessous pour y insérer les références des lecteurs fonctionnels chez vous

...

Fonctionnement de la carte SIM


Avertissement

Ce point est plus problématique. OpenSC permet une abstration materielle mais la compatibilité est limitée. Par exemple, les derrières carte SIM obtenues auprès de Certinomis (septembre 2023 ?) ne sont pas reconnes pas OpenSC 0.23.0

...

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

...

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:59:56:fb:12:0f:fe:82:90: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 (ici le lien pour cherches directement sur github: https://github.com/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 :

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 :

...

La référence est IDPrime 940c


Info

Pour résumer, OpenSC ne gère pas forcément tous les matériels mais il permet d'obtenir suffisament d'information informations 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 Après compilation en local, 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

LComme plus haut pour les lecteurs USB, l'idée est de recenser, ci-dessous, la liste des matériels et des ATR qui fonctionne fonctionnent 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?

...

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

...

On doit alors entrer le code PIN. Le resultat doit ressemblé ressembler à ça :

Bloc de code
languagebash
themeRDark
C_SeedRandom() and C_GenerateRandom():
  seeding (C_SeedRandom) not supported
  seems to be OK
Digests:
  all 4 digest functions seem to work
  MD5: OK
  RIPEMD160: OK
  SHA-1: OK
  SHA256: OK
Ciphers: not implemented
Signatures (currently only for RSA)
  testing key 0 (Private key 1) 
  all 4 signature functions seem to work
  testing signature mechanisms:
    RSA-PKCS: OK
    SHA256-RSA-PKCS: OK
Verify (currently only for RSA)
  testing key 0 (Private key 1)
    RSA-PKCS: OK
Unwrap: not implemented
Decryption (currently only for RSA)
  testing key 0 (Private key 1) -- can't be used to decrypt, skipping
No errors

...