OVH Cloud OVH Cloud

Carte bancaire et authentification dynamique.

24 réponses
Avatar
ast
Bonjour,

J'ai toujours lu que l'authentification de la CB était statique, c'est à dire
qu'elle se limite à la vérification par le terminal de paiement d'une signature
numérique. Cette authentification statique n'empèche pas la réalisation de
clones.

Or je viens de trouver un article qui affirme qu'il y a bien une authentification
dynamique, mais que celle-ci n'est utilisée que lorsque il y a un appel à un
centre de controle.

C'est là:
http://www.linternaute.com/science/technologie/dossiers/05/0512-codes-secrets/12.shtml

Je cite:

"La carte possède une troisième sécurité : une clé secrète K. Le terminal interroge
un centre de contrôle à distance, qui envoie à la carte une valeur aléatoire x (3).
La carte calcule alors, à l'aide de la fonction f de chiffrement du DES (ou du triple
DES depuis 1999), de x et de K, y=f(x,K). Cette valeur y est retransmise au centre
(4), qui lui-même calcule f(x,K). Si le centre et le terminal arrivent au même résultat,
l'autorisation est donnée (5)."


La question que l'on peut légitimement se poser est de savoir pourquoi cela n'est pas
utilisé par TOUS les terminaux ?

ast

10 réponses

1 2 3
Avatar
Francois Grieu
Dans l'article <43d0d4ee$0$20187$,
"ast" écrit à propos de:
http://www.linternaute.com/science/technologie/dossiers/05/0512-codes-secrets/12.shtml

La question que l'on peut légitimement se poser est de savoir
pourquoi cela n'est pas utilisé par TOUS les terminaux ?


Pour pouvoir vérifier la "valeur calculée" par la carte, il
faut (puisque l'algorithme DES ulisé est symétrique) connaitre
la même clé que la carte; et donc un hypothétique machin
capable de vérifier ce que produisent toutes les cartes
contient aussi de quoi les simuler. Si l'on arrivait
à faire sortir ses secrets du machin, le dommage serait
considérable. De plus se poserait le problème de la mise à
jour de ce machin.
Note: tous ces problèmes sont résolubles, mais uniquement
par de la cryptographie asymétrique (RSA..) qui nécessite
une carte à puce légèrement plus onéreuse. C'est une option
dans les spécifications Eurocard Mastercard Visa
http://www.emvco.com/cgi_bin/detailspec.pl?id=5

Pour ces raisons un terminal ne peut contenir un tel machin,
et doit donc vérifier ce que calcule la carte en faisant appel
à un centre et/ou réseau de vérification, qui lui est capable
d'adresser la demande de vérification au dispostif capable
de traiter cette carte en particulier. De plus, on peut ainsi
vérifierle crédit du porteur, et si la carte n'est pas en
opposition.

Cette vérification a un coût: attente, frais de communication,
et financement des investissements pour que le centre et/ou
réseau de vérification ait la capacité nécessaire. C'est
pourquoi elle n'est employée que quand le montant de la
transaction (et/ou le cumul glissant des montants) est élevé
(avec une composante aléatoire, pour créer un risque résiduel
pour le fraudeur tentant de rester en dessous d'un seuil).

Il est mis en oeuvre depuis l'origine du système CB Français,
et quel que soit le montant, une autre technique de sécurité
basée sur une valeur calculée par la carte au moyen d'un
algorithme symétrique dont la clé est dans la carte: le
terminal imprime sur le ticket et/ou mémorise une valeur
calculée par la carte, qui peut être vérifée ultérieurement
en cas de contestation. Regardez sur vos tickets, ce
"certificat" est facilement repérable.


François Grieu

Avatar
Michel Arboi
On Fri Jan 20 2006 at 13:17, ast wrote:

"La carte possède une troisième sécurité : une clé secrète K. Le
terminal interroge un centre de contrôle à distance, qui envoie à
la carte une valeur aléatoire x (3). La carte calcule alors, à
l'aide de la fonction f de chiffrement du DES (ou du triple DES
depuis 1999), de x et de K, y=f(x,K). Cette valeur y est retransmise
au centre (4), qui lui-même calcule f(x,K). Si le centre et le
terminal arrivent au même résultat, l'autorisation est donnée (5)."


Je crains que cette description soit très imprécise.
À ma connaissance (*), le MAC calculé "signe" le paiement dans son
ensemble, il ne sert pas à l'authentification de la carte. De plus, il
ne serait vérifié qu'en cas de contestation.
Si la carte est complètement bidon, le centre d'autorisation ne la
trouvera pas dans ses bases (pour vérifier le plafond) et l'enverra
bouler.

(*) je peux me tromper, je n'ai jamais vu le système de près, je ne
rapporte que ce que j'en ai compris de diverses discussions avec des
personnes plus au fait, discussions qui datent de plusieurs années. Il
est possible que le système ait été mis à jour depuis, lors du passage
à EMV par exemple.

--
http://arboi.da.ru/ http://ma75.blogspot.com/
PGP key ID : 0x0BBABA91 - 0x1320924F0BBABA91
Fingerprint: 1048 B09B EEAF 20AA F645 2E1A 1320 924F 0BBA BA91

Avatar
Francois Grieu
Dans l'article , Michel Arboi
a écrit:

À ma connaissance (*), le MAC calculé "signe" le paiement
dans son ensemble, il ne sert pas à l'authentification de
la carte.


Ce Message Authentication Code est calculé par la puce de la
carte et est dépendant notemment d'une clé spécifique à
cette puce; donc la vérification du MAC/certificat, si
elle a lieu, authentifie bien la carte.


De plus, il ne serait vérifié qu'en cas de contestation.


A une époque c'était vrai, et l'on s'accorde sur ce que la
logistique pour la vérification en cas de contestation
fonctionnait initialement mal.
J'ai la faiblesse de croire ceux qui affirment que les temps
ont bien changé, et que cette vérification, y compris lors
d'une autorisation de routine, est entrée en pratique.
Mais à vrai dire je ne le sais pas d'une expérience ou
connaissance directe, et c'est justement pour cela que je
peux en parler sans trahir aucun accord de confidentialité.


François Grieu

Avatar
*core*administrator
On Fri, 20 Jan 2006 20:51:04 +0100, Sylvain wrote:

Richard wrote on 20/01/2006 19:13:

J'imagine que vous savez de quoi vous parlez mais je suis quand
même surpris de la raison citée ci-dessus car en fait il y a de par le
monde des milliers de terminaux dans des simples boutiques qu'une
personne mal intentionnée pourrait tout autant utiliser de la manière
décrite.


de quel /terminaux/ parlez-vous ?

Des centaines de terminaux qui sont, par exemple, à l'air libre

dans les stations d'essences en libre service, même la nuit.


Avatar
Jacques Belin
Le samedi 21 janvier 2006 15:35:00,
*core* (Richard) a écrit:

Des centaines de terminaux qui sont, par exemple, à l'air libre
dans les stations d'essences en libre service, même la nuit.


Et même en pleine ville, on a vu des mecs voler des distributeurs de
monnaie avec un bulldozer...

Et une fois vidé, pourquoi ne pas le refiler au hacker du coin...

A+ Jacques.
--
Le dernier Homme connecté sur le Net regardait d'anciens sites Webs.
"Vous avez du courrier" apparut sur l'écran...
--------------------------- adapté d'une courte histoire de Fredric Brown

Avatar
Sylvain
Richard wrote on 21/01/2006 15:35:

de quel /terminaux/ parlez-vous ?

Des centaines de terminaux qui sont, par exemple, à l'air libre

dans les stations d'essences en libre service, même la nuit.



Oh des terminaux qui trainent à l'air libre, même la nuit !!
On avait déjà nos d'jeuns des cités, si les terminaux si mettent.

On parlait ici du mécanisme /général/ d'authentification d'une
tansaction CB, je ne suis pas sur que la multiplication d'exemples
/particuliers/ nous en apprenne beaucoup.

Les équipements que vous évoquez ici ne sont pas des terminaux autonomes
comme décrits plus haut, mais simplement des commutateurs téléphoniques
fonctionnant uniquement en mode en-ligne (pour requérir une autorisation
de paiement préalable à l'achat et d'un montant moyen représentant 2 ou
3 plein d'essence).

vous pouvez arracher la pompe avec son terminal pour la bricoler dans
votre garage, je doute qu'elle ne vous serve beaucoup de carburant même
si, après bcp d'effort, vous court-circuitez les 2 pauvres relais que
commande ce "terminal".

le problème est un peu différent avec les DAB arraché au bulldozer, eux
contiennent des élements crypto. permettant de vérifier certaines
données; heureusement les bourins adaptes de l'enlèvement au
tracto-pelle sont assez peu au fait des arcanes cryptographiques et
surtout ces DAB protègent leurs secrets dans des modules sécurisés.

Sylvain.


Avatar
ast
Sur ce site http://www.bibmath.net/crypto/moderne/cb.php3 signalé
par Desperrier, ils semblent dire que le secret caché dans chaque carte
bleue et utilisé pour l'authentification dynamique "en ligne" serait différent
pour chaque carte.

Je cite, paragraphe "Authentification en ligne (par le DES)":

"Remarquons que ceci nécessite que le centre connaisse la clé secrète
de toutes les cartes."

Si cela s'avère exact, alors c'est une raison de plus pour laquelle les terminaux
de paiement chez les commerçants ne font pas eux même l'authentification
dynamique "hors ligne". Il faudrait que les terminaux aient en mémoire le secret
de toutes les cartes en circulation.

merci à tous.
ast


"Francois Grieu" a écrit dans le message de news:
Dans l'article <43d0d4ee$0$20187$,
"ast" écrit à propos de:
http://www.linternaute.com/science/technologie/dossiers/05/0512-codes-secrets/12.shtml

La question que l'on peut légitimement se poser est de savoir
pourquoi cela n'est pas utilisé par TOUS les terminaux ?


Pour pouvoir vérifier la "valeur calculée" par la carte, il
faut (puisque l'algorithme DES ulisé est symétrique) connaitre
la même clé que la carte; et donc un hypothétique machin
capable de vérifier ce que produisent toutes les cartes
contient aussi de quoi les simuler. Si l'on arrivait
à faire sortir ses secrets du machin, le dommage serait
considérable. De plus se poserait le problème de la mise à
jour de ce machin.
Note: tous ces problèmes sont résolubles, mais uniquement
par de la cryptographie asymétrique (RSA..) qui nécessite
une carte à puce légèrement plus onéreuse. C'est une option
dans les spécifications Eurocard Mastercard Visa
http://www.emvco.com/cgi_bin/detailspec.pl?id=5

Pour ces raisons un terminal ne peut contenir un tel machin,
et doit donc vérifier ce que calcule la carte en faisant appel
à un centre et/ou réseau de vérification, qui lui est capable
d'adresser la demande de vérification au dispostif capable
de traiter cette carte en particulier. De plus, on peut ainsi
vérifierle crédit du porteur, et si la carte n'est pas en
opposition.

Cette vérification a un coût: attente, frais de communication,
et financement des investissements pour que le centre et/ou
réseau de vérification ait la capacité nécessaire. C'est
pourquoi elle n'est employée que quand le montant de la
transaction (et/ou le cumul glissant des montants) est élevé
(avec une composante aléatoire, pour créer un risque résiduel
pour le fraudeur tentant de rester en dessous d'un seuil).

Il est mis en oeuvre depuis l'origine du système CB Français,
et quel que soit le montant, une autre technique de sécurité
basée sur une valeur calculée par la carte au moyen d'un
algorithme symétrique dont la clé est dans la carte: le
terminal imprime sur le ticket et/ou mémorise une valeur
calculée par la carte, qui peut être vérifée ultérieurement
en cas de contestation. Regardez sur vos tickets, ce
"certificat" est facilement repérable.


François Grieu



Avatar
Sylvain
ast wrote on 22/01/2006 18:03:
Sur ce site http://www.bibmath.net/crypto/moderne/cb.php3 signalé
par Desperrier, ils semblent dire que le secret caché dans chaque carte
bleue et utilisé pour l'authentification dynamique "en ligne" serait
différent pour chaque carte.


le /the/ secret caché dans la carte est au moins double: la clé dite
/clé de paiement/ (DES 56 bits) et 4 octets d'une zone protégée qui sont
xorés avec le premier crypto. lui-même calculé sur des données du
terminal pour obtenir le certificat de paiement.

cette clé de paiement est évidemment diversifiée et est donc unique par
carte.

Je cite, paragraphe "Authentification en ligne (par le DES)":

"Remarquons que ceci nécessite que le centre connaisse la clé secrète
de toutes les cartes."

Si cela s'avère exact, alors c'est une raison de plus pour laquelle les
terminaux de paiement chez les commerçants ne font pas eux même
l'authentification dynamique "hors ligne". Il faudrait que les
terminaux aient en mémoire le secret de toutes les cartes en circulation.


pas nécessairement, le terminal peut avoir la clé maitre et calculer la
clé unique de la carte pour vérifier son certificat (évidemment il fera
cela dans une carte à puce SAM inséré dans le slot SIM du terminal).

noter que cela dépends encore du terminal et des applications bancaires
qu'il utilise (on ne parle pas d'un modem-pompe à essence).

de plus, parler d'auth. /dynamique/ liée à un mode /en ou hors ligne/
est source de confusion (surtout avec une migration EMV en cours).

l'auth. est /statique/ si elle n'inclut que des élements statiques (le
montant de la transaction change mais est propre à la trans.), si la
carte est corrompue, un pirate peut calculer de vraies-fausses-auth.

l'auth. est /dynamique/ si elle inclut des élements dynamiquement
générés par un serveur (d'authentification); une carte même corrompue
sera généralement détectée.

ces 2 modes propres à EMV ne correspondent pas à ce qui est réalisé par
une transaction hors-ligne ou en-ligne d'une carte CB; cette différence
de traitement dans une transaction CB implique autant la vérification du
compte que la vérif. du certificat de paiement; comme dit plus haut, le
terminal peut vérifier off-line l'exactitude d'un certificat pour autant
il ne sait pas si le compte est réellement solvable.

Sylvain.

Avatar
niis
Bonjour

il faut distinguer l'authentification de la carte auprès du terminal
(qui vise à fournir la preuve au commerçant que la carte a bien été
émise par une banque) et le scellement des transactions online (dans
les cas où la transaction nécessite une vérification par la banque
du porteur).

Dans le premier cas on distingue le mode statique du mode dynamique. Le
standard franco-français (B0') faisait appel au mode statique, le
nouveau standard EMV propose les deux.
Dans les deux cas on s'appuie sur de crypto asymétrique (RSA). En gros
:
- dans le cas statique, la carte possède la signature de certaines de
ses données et la fournit au terminal qui possède la clef publique
(sous forme de certificat je pense en EMV) et vérifie la signature.
- dans le cas dynamique, la carte possède son biclef RSA, le terminal
lui envoie un aléa ; la carte calcule une signature sur l'aléa et
certaines de ses données, elle fournit cette signature et le
certificat associé à son bi-clef. Le terminal qui possède le
certificat racine, vérifie le certificat de la carte et la signature.

Aujourd'hui beaucoup de cartes sont en statique, ça tient certainement
au prix de la puce (il faut un cryptoproc RSA) pour EMV et au fait que
la migration B0'->EMV ne soit pas encore achevée. Le dynamique doit
être dans les cartons.

Sans préjuger des petites vérues qui peuvent exister, avec EMV on a
principalement affaire à une (deux?) AC dont la(les) racine(s?)
est(sont?) gérée(s?) par les grands réseaux internationaux (VISA /
MC) et le(s) étage(s) intermédiaire(s) par les banques. Ca explique
entre autre que le terminal possède toujours le certificat racine (un
terminal accepte VISA et/ou MC).

Plus de détails pour les courageux ici
http://www.emvco.com/cgi_bin/detailspec.pl?id=5
(voir le Book 2 - Security and Key Management, chercher SDA / DDA)

Pour la sécurisation des transactions on s'appuie sur de la crypto
symétrique avec des clefs diversifiées par carte. C'est autre chose
(les détails sont au même endroit pour EMV - NB : EMV utilise
normalement le 3DES).

nniis
Avatar
*core*administrator
On Sun, 22 Jan 2006 15:35:18 +0100, Sylvain wrote:

Richard wrote on 21/01/2006 15:35:





Les équipements que vous évoquez ici ne sont pas des terminaux autonomes
comme décrits plus haut, mais simplement des commutateurs téléphoniques
fonctionnant uniquement en mode en-ligne (pour requérir une autorisation
de paiement préalable à l'achat et d'un montant moyen représentant 2 ou
3 plein d'essence).


Bien. Merci de vos informations. On apprend tous les jours.
Puisque vous semblez bien connaitre les systèmes de transaction
"on line" par carte bancaire j'ai une petite question qui, dans la
pratique, m'a toujours intrigué.

Le phénomène en question se produit sur TOUS les terminaux
de vente (c-a-d ceux qui se trouve dans les commerces) du
réseau belge Banksys. Il est possible que ce soit la même
chose dans les autres pays mais je n'ai pas pu le vérifier.

Le problème est le suivant: Si la carte du client "X" est
introduite dans le terminal pour une opération de "Y" euros,
et que la transaction est acceptée sans problème, il est
alors impossible d'effectuer pour le même client "X" une
nouvelle opération pour un montant IDENTIQUE de "Y"
euros pendant une période d'environ 10 minutes. Par
contre si le montant est différent, même de 1 centime
par exemple "Y+1centime" ou "Y-1centime" la transaction
peut avoir lieu. Cela se produit assez souvent dans les
commerces qui vendent, par exemple, des objets d'un
prix identique. Le client achète un DVD à 19,99 euros,
paye avec sa carte. Puis décide d'acheter un second
DVD à 19,99. La transaction sera refusée. Pour
l'accomplir sans faire attendre le client pendant 10 minutes
il faut ordonner une transaction de 19,98 ou de 20,00 euros.

Savez-vous ce qui explique ce phénomène ? Est-ce une
sécurité pour empêcher des doubles facturations ?



1 2 3