Détection d'interface sans contact

La question :

Bonjour,

J'ai un programme de lecture carte via PC/SC qui utilise potentiellement
des lecteurs avec ou sans contact.

Quelqu'un connaitrait il une méthode lors de la réception de l'ATR de la
carte pour savoir si cette lecture de l'ATR vient d'une communication
avec contact ou sans contact ?

Toutes les méthodes trouvées jusqu'ici soit ne marchent pas, soit sont
dépendantes du lecteur utilisé.

Merci de vos retours.

Emmanuel.

Poser votre question sur le forum Matériel

Les 5 réponses :

meelab wrote on 08/04/2008 23:15:

multi-post sans prévenir ?!...


J'ai un programme de lecture carte via PC/SC qui utilise potentiellement
des lecteurs avec ou sans contact.


en complément de ma réponse sur ats, quel est le besoin de connaitre
le protocole en cours ?

(si la carte interdit certaines opérations en RF, c'est à elle de se
protéger, pas à l'appli d'espérer que le lecteur donne l'info pour
s'interdire d'utiliser l'opération en question).


Toutes les méthodes trouvées jusqu'ici soit ne marchent pas, soit sont
dépendantes du lecteur utilisé.


ok, donc lecteur indépendant.

Sylvain.

Sylvain SF a écrit :


meelab wrote on 08/04/2008 23:15:

multi-post sans prévenir ?!...


Désolé. Je continue ici seulement.



J'ai un programme de lecture carte via PC/SC qui utilise potentiellement
des lecteurs avec ou sans contact.


if the "first exchange" is performed by your code, you know in which
reader the card is "inserted", since you know the reader, you should
know the protocol as well.


Non car j'ai potentiellement plusieurs lecteurs, et mon prgm scanne
les lecteurs pour détecter l'insertion. Je ne sais donc pas à priori
dans quel lecteur la carte a été inséré. De plus j'utilise un lecteur
mixte avec / sans contact. et ma carte est elle aussi mixte.


en complément de ma réponse sur ats, quel est le besoin de connaitre
le protocole en cours ?


Sur certains ordres spécifiques sans contact (recherche de PPSE), si je
suis en mode contact, l'interface PC/SC se plante avec une erreur bas
niveau. je pense que la carte ne doit pas répondre correctement et
plante les couches basses PC/SC.



(si la carte interdit certaines opérations en RF, c'est à elle de se
protéger, pas à l'appli d'espérer que le lecteur donne l'info pour
s'interdire d'utiliser l'opération en question).


Dans le principe oui, si la réponse de la carte est correcte avec SW
approprié. Mais en l'occurence c'est surtout pour contourner un bug de
l'interface PC/SC ou de la carte.


if the driver's reader complies the PC/SC 2.01, you should be able
to get the "ICC type" (tag 0x0304) information; specific values for
14443 exist.


Un simple GetData sur ce tag ?
Je vais essayer de voir dans cette direction.



depending on reader's drivers you can also obtain an ATR with
special DO when it's built from an ATS.


J'ai déjà essayé, mais la carte que je lis est mixte avec/sans contact,
pourtant elle rend un ATS identique à l'ATR.


Sylvain.


Emmanuel.

meelab wrote on 11/04/2008 23:30:



J'ai un programme de lecture carte via PC/SC qui utilise potentiellement
des lecteurs avec ou sans contact.


if the "first exchange" is performed by your code, you know in which
reader the card is "inserted", since you know the reader, you should
know the protocol as well.


Non car j'ai potentiellement plusieurs lecteurs, et mon prgm scanne
les lecteurs pour détecter l'insertion. Je ne sais donc pas à priori
dans quel lecteur la carte a été inséré. De plus j'utilise un lecteur
mixte avec / sans contact. et ma carte est elle aussi mixte.


oui, c'est courant, mais les lecteurs "à 2 têtes" exposent souvent
2 lecteurs logiques PC/SC distints. le nombre de lecteurs contactless
sur le marché étant relativement restreint on peut les identifier par
leur nom PC/SC.


en complément de ma réponse sur ats, quel est le besoin de connaitre
le protocole en cours ?


Sur certains ordres spécifiques sans contact (recherche de PPSE), si je
suis en mode contact, l'interface PC/SC se plante avec une erreur bas
niveau. je pense que la carte ne doit pas répondre correctement et
plante les couches basses PC/SC.


"PPSE" pour "PayPass" ?
ils font des cartes PayPass contact ?? (la question n'est pas: peux-t-on
utiliser un code PayPass de test/de qualif. en mode contact).

qu'est-ce qu'un "ordre spécifique sans contact de recherche" ?
une sélection par AID de l'appli. PayPass ?

quelles erreurs ?


(si la carte interdit certaines opérations en RF, c'est à elle de se
protéger, pas à l'appli d'espérer que le lecteur donne l'info pour
s'interdire d'utiliser l'opération en question).


Dans le principe oui, si la réponse de la carte est correcte avec SW
approprié. Mais en l'occurence c'est surtout pour contourner un bug de
l'interface PC/SC ou de la carte.


si vous pensez que votre couche PC/SC est buggée, n'espérez pas qu'elle
vous indique - par quelque moyen - le protocole utilisé, la réponse
sera sûrement buggée. dans la pratique, les stacks PC/SC sont très peu
buggés (les drivers lecteurs, CCID ou full, le sont plus souvent).

et btw, vous n'indiquez pas votre environnement, ni votre stack PC/SC.

si l'un ou l'autre est corrompu le protocole (ISO-7816-3 ou 14443-3)
peut être impacté, parler d'un "SW approprié" (appartenant au layer 4)
ne fait que mélanger les sources possibles de pb.

dans le même temps, le "approprié" devrait être "conforme à sa spec",
avez-vous des écarts par rapport à celle-ci ?

bien sur d'apparents "téléscopages" entre transport et applicatif
peuvent apparaitre mais ils sont implicite pour une spec donné -
par exemple une carte B0' franco-française réponds *rien* sur une
mauvaise commande (elle part en boucle infinie), le lecteur plante
en timeOut, le transport pourrait être accusé mais c'est dans la spec.


depending on reader's drivers you can also obtain an ATR with
special DO when it's built from an ATS.


J'ai déjà essayé, mais la carte que je lis est mixte avec/sans contact,
pourtant elle rend un ATS identique à l'ATR.


PC/SC 2.0.1 décrit comment mapper un ATS dans un ATR conforme, un
driver "trop zélé" (en fait conforme) peut masquer cette info.

Sylvain.

Sylvain SF a écrit :


meelab wrote on 11/04/2008 23:30:


J'ai un programme de lecture carte via PC/SC qui utilise potentiellement
des lecteurs avec ou sans contact.


oui, c'est courant, mais les lecteurs "à 2 têtes" exposent souvent
2 lecteurs logiques PC/SC distints. le nombre de lecteurs contactless
sur le marché étant relativement restreint on peut les identifier par
leur nom PC/SC.


C'est exact mais j'essayais d'avoir une solution qui ne m'oblige pas à
coder en dur le nom du lecteur (s'il change, ...).


en complément de ma réponse sur ats, quel est le besoin de connaitre
le protocole en cours ?


Sur certains ordres spécifiques sans contact (recherche de PPSE), si je
suis en mode contact, l'interface PC/SC se plante avec une erreur bas
niveau. je pense que la carte ne doit pas répondre correctement et
plante les couches basses PC/SC.


"PPSE" pour "PayPass" ?
ils font des cartes PayPass contact ?? (la question n'est pas: peux-t-on
utiliser un code PayPass de test/de qualif. en mode contact).

qu'est-ce qu'un "ordre spécifique sans contact de recherche" ?
une sélection par AID de l'appli. PayPass ?


La carte est mixte contact sans contact mais l'appli Paypass n'est dispo
qu'en sans contact. en mode contact c'est une appli EMV.


quelles erreurs ?


En mode contact si je fait un ordre Select PPSE, j'ai un code retour du
SCardTransmit 0x57 qui signifie invalid parameter.
Je pense que c'est la puce qui réagit mal. Je m'attendais à avoir un
status word dans le 67xx - 6Fxx


et btw, vous n'indiquez pas votre environnement, ni votre stack PC/SC.


Environnement Windows avec stack Windows.


bien sur d'apparents "téléscopages" entre transport et applicatif
peuvent apparaitre mais ils sont implicite pour une spec donné -
par exemple une carte B0' franco-française réponds *rien* sur une
mauvaise commande (elle part en boucle infinie), le lecteur plante
en timeOut, le transport pourrait être accusé mais c'est dans la spec.


C'est probablement le cas. Je me suis tourné vers le constructeur du
masque (ce que j'aurais du faire dès le début).


PC/SC 2.0.1 décrit comment mapper un ATS dans un ATR conforme, un
driver "trop zélé" (en fait conforme) peut masquer cette info.


J'ai aussi remarque sur le WEB une nouvelle version du driver de mon
lecteur qui maintenant me différentie bien l'ATS de l'ATR et me permet
bien de détecter le sans contact.


Sylvain.


Merci pour ton aide.
Emmanuel.

meelab wrote on 27/04/2008 10:30:



C'est exact mais j'essayais d'avoir une solution qui ne m'oblige pas à
coder en dur le nom du lecteur (s'il change, ...).


ce serait la meilleure solution, c'est sur.


"PPSE" pour "PayPass" ?
ils font des cartes PayPass contact ?? (la question n'est pas: peux-t-on
utiliser un code PayPass de test/de qualif. en mode contact).


j'ai répondu un peu vite sur ce point, c'est en effet généralement
la même application carte, utilisé avec les paramètres "PayPass" en
contactless et les paramètres "EMV classiques" en contact.


quelles erreurs ?


En mode contact si je fait un ordre Select PPSE, j'ai un code retour du
SCardTransmit 0x57 qui signifie invalid parameter.
Je pense que c'est la puce qui réagit mal. Je m'attendais à avoir un
status word dans le 67xx - 6Fxx


vous transmettez bien la commande comme en mode T=1 ?
(donc un Le present, à 00h ou valeur attendue)

si c'est le cas, votre lecteur est sûrement en cause.
en fait, le lecteur (son driver) est obligeatoirement en cause
s'il retourne une erreur PC/SC (et non une erreur carte).

quel est ce lecteur d'ailleurs ? avez-vous fait des tests avec
différents modèles (je recommande volontiers l'omnikey 5321).

Sylvain.

Poser votre question sur le forum Matériel

Questions similaires :

Comportement cartes contact & sans-contact

Bonjour, Dans le cas d'une carte double interface (ISO 7816 et ISO 14443), je voudrais savoir s'il y a une norme ou une recommandation quelconque qui précise comment doit se comporter la carte lorsqu'elle est soumise à la fois au champ RF et alimentée par la griffe contact. Je voudrais notamment...

Java cards sans contact

Bonjour, Pouvez-vous me dire si il existe des JavaCards avec une interface sans contact ? Si oui, où puis-je m'en procurer ? Alain.

: [Req]:Carte à puce "sans-contact"

- En regle générale, en France, si on voit les contacts de la puce => famille Calypso (dual) sinon => Mifare - Dans le flyer c'est pas une carte Tcl (Lyon) que l'on voit en haut page 2 ?

[Req]:Carte à puce "sans-contact"

Bonjour, J'aurais aimé savoir quel était le type de carte utilisée (modèle, marque, caractéristiques techniques ...), par les transports en commun lyonnais notemment, pour les cartes d'abonnement (Técély). La caractéristique "sans-contact" m'interesse tout particulièrement. ( comme son nom...

cartes sans contact

bonjour a tous est ce que quelqu'un a deja vu une études sécurité publique ou publié sur internet concernant les cartes a puces sans sontact. d'ailleurs est ce que quelqu'un connait des docs parlant du fonctionnement et éventuellement des différents type de carte. cordialement, moi