Problèmes et questions concernant le noyau et le support matériel.
Répondre

Lecteur de carte à puces (SmartCard)

#1Messageil y a 5 ans

Sujet Résolu (voir ici)
Bonjour à tous
Voilà une semaine que je galère pour pouvoir lire des données stockées sur ma carte chauffeur via un lecteur de carte à puces USB .
Comme certains le savent ,je suis chauffeur routier ; mon entreprise dispose d'une borne de lecture gérée par TIMEDISC OMP (sous W$ 2000) et tout est pour le mieux dans le meilleur des mondes possibles.....
Si ce n'est que pour conserver sur mon PC une trace de mes temps d'activité,je me vois contraint de scanner mes tickets !
Bien sur ,des solutions d'archivage existent exclusivement sous W$ ,moyennant finances,avec tout un tas de services inutiles (exemple ici) ; je ne désire qu'importer sous forme de diagrammes mes temps de services et non faire de la gestion de fiches de paye!
J'ai un lecteur de carte Teo (Ingenico) et installé pcsc-tools plus tout un tas de bibliothèques recommandées.
Le lecteur fonctionne et la carte y est reconnue.

    steph@steph-GA-A55M-S2HP ~ $ pcsc_scan
    PC/SC device scanner
    V 1.4.20 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr>
    Compiled with PC/SC lite version: 1.8.3
    Using reader plug'n play mechanism
    Scanning present readers...
    0: SCM Microsystems Inc. SCR35xx v2.0 USB SC Reader [CCID Interface] 00 00

    Fri Jan 24 09:57:48 2014
    Reader 0: SCM Microsystems Inc. SCR35xx v2.0 USB SC Reader [CCID Interface] 00 00
       Card state: Card inserted,
       ATR: 3B 97 11 C0 FF B1 FE 35 1F 83 A5 05 01 01 02 A3 01 5F

    ATR: 3B 97 11 C0 FF B1 FE 35 1F 83 A5 05 01 01 02 A3 01 5F
    + TS = 3B --> Direct Convention
    + T0 = 97, Y(1): 1001, K: 7 (historical bytes)
       TA(1) = 11 --> Fi=372, Di=1, 372 cycles/ETU
         10752 bits/s at 4 MHz, fMax for Fi = 5 MHz => 13440 bits/s
       TD(1) = C0 --> Y(i+1) = 1100, Protocol T = 0
    -----
       TC(2) = FF --> Work waiting time: 960 x 255 x (Fi/F)
       TD(2) = B1 --> Y(i+1) = 1011, Protocol T = 1
    -----
       TA(3) = FE --> IFSC: 254
       TB(3) = 35 --> Block Waiting Integer: 3 - Character Waiting Integer: 5
       TD(3) = 1F --> Y(i+1) = 0001, Protocol T = 15 - Global interface bytes following
    -----
       TA(4) = 83 --> Clock stop: state H - Class accepted by the card: (3G) A 5V B 3V
    + Historical bytes: A5 05 01 01 02 A3 01
       Category indicator byte: A5 (proprietary format)
    + TCK = 5F (correct checksum)

    Possibly identified card (using /home/steph/.smartcard_list.txt):
    3B 97 11 C0 FF B1 FE 35 1F 83 A5 05 01 01 02 A3 01 5F
         digital chronotachygraphe card: conducteur/driver, entreprise, contrôleur/controler et atelier/workshop, 2006-2010
         manufactured by Imprimerie Nationale, distributed by Chronoservices


Là où je sèche ,c'est que je ne sais comment lire ces fichiers au format C1B (données chauffeur) stokées sur cette carte qui doit très certainement être protégée.
Des soft sous Perl ou Java devraient faire l'affaire ,mais mon anglais ne me permet que de complimenter les jolies filles :gsourire:
Ce qui m'étonne ,c'est que le lecteur est reconnu via dmesg et lsusb

Bus 001 Device 015: ID 04e6:5410 SCM Microsystems, Inc. SCR35xx Smart Card Reader
mais que je ne le vois nulle part dans le système de fichiers.....

Si quelqu'un connaît ne serait-ce qu'une piste de recherche ,car je pense [parano] qu'il y a une Omerta sur ce sujet vu que tous les sites qui proposaient une alternative ont disparu....[/parano]

Lecteur de carte à puces (SmartCard)

#2Messageil y a 5 ans

déjà, il y a un soft gratuit pour lire les fichiers C1B, ici (registration requise tout de même, sort l'adresse jetable ;) ), mais c'est pour Windows.
la bonne nouvelle, c'est que la norme de ces fichiers n'est pas propriétaire, et que les données chronomètriques sont utilisées dans d'autres métiers, donc on va chercher.

sinon, elles sont grosses tes cartes ?

Lecteur de carte à puces (SmartCard)

#3Messageil y a 5 ans

J'avais déjà visité ce site ,c'est hélas pour W$..Sinon la carte est standard comme une CB.
Mais où trouve t 'on ce fichu lecteur dans l'arborescence / ?

Lecteur de carte à puces (SmartCard)

#4Messageil y a 5 ans

le sujet étant intéressant, j'ai un peu lu, et laisse moi te dire que t'es pas sorti de l'auberge...

comme son nom l'indique, une smartcard n'est pas juste un stockage de données, il y a une logique à l'intérieur; il n'est donc pas question de chercher quel système de fichiers est présent, mais de chercher à communiquer avec ce "mini-mini-ordinateur" pour qu'il donne ces données.
sous Linux, on commence à s'intéresser à ces cartes, car elles peuvent fournir une méthode d'authentification plus fiable que les mots de passe, par exemple pour l'admin de serveurs soumis à une haute sécurité; il existe donc un peu de doc chez Debian et chez Ubuntu:
https://wiki.debian.org/fr/Smartcards
http://doc.ubuntu-fr.org/smartcards
et tu noteras que le paquet pcsc-tools contient normalement un petit soft, Gscriptor, qui permet d'envoyer des commandes à la carte (encore faut-il savoir quelle commande envoyer pour avoir une réponse).

si tu veux en savoir beaucoup plus là dessus, il faut lire ça:
http://www.unixgarden.com/index.php/gnu-linux-magazine/gestion-des-smartcards-sous-linux

tu comprends bien qu'accéder à la carte est une chose, obtenir les données en est une autre, parce qu'il faut que le logiciel envoie les bonnes commandes pour que la carte réponde.
à l'heure actuelle, le seul logiciel que je vois à notre portée pour accéder au contenu de différents types de cartes, c'est Cardpeek (lit même les cartes bancaires :siffle ), et il y a deux paquets sur AUR: cardpeek et cardpeek-svn (plus récent, et maintenu).
il y a aussi Monosim, mais lui ne lit que les cartes SIM.

vois déjà si ça t'aide...

et puis, d'après la photo, ton appareil serait plutôt un Teo de Xiring (pas trouvé ce modèle chez Ingenico).

enfin, un autre site avec des softs gratuits pour Windows (on sait jamais, ça peut dépanner dans Vbox)

Lecteur de carte à puces (SmartCard)

#5Messageil y a 5 ans

Salut Loubrix :salut:
Je me doutais que tu relèverais ce défit ! :sourire:
J'avais consulté les liens que tu m'as donné...La toile n'est pas trop encombrée sur ce sujet...La lecture ,disons le survol de nuit par fort brouillard, de ce sujet entre autres m'a fait comprendre que l'Everest est devant moi.
Ces cartes officielles peuvent être lues par la maréchaussée ,et je me suis dis que je ne devais pas être plus :censure: qu'eux :gsourire:
Concernant le lecteur ,il s'agit bien d'un Teo de Xiring ,mais à l'instar du Porc-Salut ,il y a bien "Ingenico" de marqué sur le boîtier. Peu importe..
J'ai eu une erreur lors de l'empaquetage de Cardpeek-svn.

lua_asn1.c: In function ‘luaopen_asn1’:
lua_asn1.c:195:3: attention : implicit declaration of function ‘luaL_openlib’ [-Wimplicit-function-declaration]
   luaL_openlib(L,"asn1",asn1lib,0);
   ^
lua_asn1.c: Hors de toute fonction :
lua_asn1.c:184:30: attention : ‘asn1lib’ defined but not used [-Wunused-variable]
 static const struct luaL_reg asn1lib [] = {
                              ^
Makefile:455: recipe for target 'lua_asn1.o' failed
make[1]: *** [lua_asn1.o] Error 1
make[1]: Leaving directory '/tmp/yaourt-tmp-steph/aur-cardpeek-svn/src/cardpeek-build'
Makefile:325: recipe for target 'all' failed
make: *** [all] Error 2
==> ERREUR : Une erreur s’est produite dans build().
    Abandon...

Je me suis donc rabattu sur Cardpeek qui fonctionne . Mais le type de carte n'est semble t-il pas reconnu dans le menu ,il me faudrait trouvé le script .lua des cartes chronotachygraphe.
Image
Il y a 3 options de ce menu qui génère un code que j'ai sauvegardé au format .xml

<cardtree><node><attr name="classname">card</attr><attr name="label">EMV</attr><node><attr name="classname">block</attr><attr name="label">cold ATR</attr><attr name="size">18</attr><attr name="val">8:3B9711C0FFB1FE351F83A505010102A3015F</attr></node></node><node><attr name="classname">card</attr><attr name="label">EMV</attr><node><attr name="classname">block</attr><attr name="label">cold ATR</attr><attr name="size">18</attr><attr name="val">8:3B9711C0FFB1FE351F83A505010102A3015F</attr></node></node><node><attr name="classname">card</attr><attr name="label">CALYPSO</attr><node><attr name="classname">block</attr><attr name="label">cold ATR</attr><attr name="size">18</attr><attr name="val">8:3B9711C0FFB1FE351F83A505010102A3015F</attr></node><node><attr name="classname">block</attr><attr name="label">Card number</attr><attr name="size">4</attr><attr name="val">8:05010102</attr><attr name="alt">83951874</attr></node></node></cardtree>


A noter aussi que SpringCard met en ligne un outil qui reconnaît ma carte et mon lecteur.
Image
Mais sur le coup ,quel ADPU pour quel résultat?

Une précision à toutes fins utiles :Cette carte a été lu par la borne ,mais les données restent pour les contrôles et en plus ,elle est périmée. Je ne prend pas le risque de "Flasher" ma carte en vigueur :siffle
Si tu le désire,je peux t'envoyer cette carte pour que tu fasse mumuse... :clindoeil:
A+
Edit : ça ne crains pas trop par la poste ? Image

Lecteur de carte à puces (SmartCard)

#6Messageil y a 5 ans

le problème dans ce genre de cas, c'est que je trouverai rien (d'autant que je n'ai pas de lecteur).

à mon avis, le moyen le plus simple serait de contacter le développeur (ici ), en lui proposant de fournir une carte, pour lui demander si ça l'interesse de travailler dessus. il semble qu'il soit français, ce qui simplifiera...

Lecteur de carte à puces (SmartCard)

#7Messageil y a 5 ans

J'ai contacté Ludovic Rousseau qui m'a répondu d'un courtois mais laconique
"Je ne connais pas d'application libre (ou non) pour lires les cartes Chronotachygraphe. "

Je tenterai avec le dev Cardpeek.
Sinon ,il me reste a polluer ma RAM avec un XP en VB ,mais j'aurais souhaité une soluce 100% linux....Tant pis
Merci :sourire:

Lecteur de carte à puces (SmartCard)

#8Messageil y a 5 ans

je sais bien, mais le retro-engineering de ce genre de chose n'est pas à ma portée, alors que le dev de Cardpeek (et ses collaborateurs) a déjà trouvé le moyen de lire quelques cartes (bancaire, Vitale, Moneo...etc), et a donc les compétences pour en craquer une de plus...

Ludovic Rousseau développe le pilote, les données des cartes ne sont pas sa spécialité...

Répondre