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.

...

Bloc de code
themeRDark
opensc-tool -a

Pour afficher le nom de la carte telle qui reconnue par OpenSC :

Bloc de code
themeRDark
opensc-tool -n

Driver correctement détecté

Exemple de résultat avec les "anciennes" carte certinomis "Gemalto IDPrime" : 

Bloc de code
themeRDark
# opensc-tool -a
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

...

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 :

Pour vérifier réellement que tout fonctionne, il faut vérifier l'authentification sur le matériel en lançant la commande suivante :

OpenSC reconnait bien la carte comme tel également : 

Bloc de code
Bloc de code
languagebash
themeRDark
pkcs11# opensc-tool --login --test

#Sous MacOs : /Library/OpenSC/bin/pkcs11-tool --login --testn
Using reader with a card: Feitian SCR301 (FFFFFFFFFFFFF) 00 00
Gemalto IDPrime 940

Pour vérifier réellement que tout fonctionne, il faut vérifier l'authentification sur le matériel en lançant la commande suivante On doit alors entrer le code PIN. Le résultat doit ressembler à ça :

Bloc de code
languagebash
themeRDark
pkcs11-tool --login --test

#Sous MacOs : /Library/OpenSC/bin/pkcs11-tool --login --test

On doit alors entrer le code PIN. Le résultat doit 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 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

...

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

Bloc de code
themeRDark
# opensc-tool -a
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

...

La référence est IDPrime 940c

Cependant OpenSC la reconnait comme Gemalto IDPrime (generic) :

Bloc de code
themeRDark
# opensc-tool -n
Using reader with a card: Feitian SCR301 (FFFFFFFFFFFFF) 00 00
Gemalto IDPrime (generic)

Même si l'ATR de cette carte n'est ici pas directement référencé dans le code source d'OpenSC, En regardant dans les logs on s'aperçoit alors qu' avec le jeu des masques, la 940c est donc finalement vu comme une Gemalto IDPrime (generic).

Le , le souci est qu'avec ce driver+type, la 940c ne fonctionne pas correctement : l'authentification nous renvoie l'erreur suivante : 

...

L'IDPrime 940c est en fait 'simplement' un nouveau modèle de la série des IDPrime 940,   pour qu'il soit pris en compte par OpenSC, nous avons ici du modifier  nous avons donc modifié le code d'OpenSC pour ajouter l'ATR manquant et de 940c pour faire en sorte qu'il soit reconnu comme "Gemalto IDPrime 940" (et non comme "Gemalto IDPrime (generic)").

Après compilation en local , :

  • opensc (opensc-tool -n) reconnait bien la carte comme Gemalto IDPrime 940 (driver/type)
  • la signature fonctionne correctement.

À la suite de cela, nous avons proposé cette modification à l'équipe d'OpenSC : https://github.com/OpenSC/OpenSC/pull/2941

...