217Fermer219
squalylLe 09/07/2012 à 08:19
(explication modulo ma propre vision de l'affaire, je ne fais pas du bancaire et je simplifie)

cross: oui, sur téléphone. Mais c'est STRICTEMENT la même sécurité que sur carte, c'est la SIM qui fait tout (ou le "secure element" quand on n'utilise pas la sim), l'antenne du téléphone transmet les infos a la sim, c'est tout.
Godzil (./208) :
./207 c'est la partie active qui fait la distance (le lecteur), pas la carte

non, c'est les deux. Et surtout la carte en fait.
flanker (./210) :
La NFC fonctionne si la carte reçoit une puissance très faible.

pas si faible que ça pour les CB. les cartes mifare sont des mémoires câblées qui ont besoin de très peu d'énergie, mais les CB et cartes de transport sont plus gourmandes (mémoire, cpu, etc) et plus strictes sur les valeurs de puissance acceptables.
flanker (./210) :
Mais si on amplifie le signal, on peut faire croire à la carte qu'on est presque au contact.
pas si simple vu les protocoles en jeu smile
flanker (./210) :
J'avais entendu parler d'un truc du même style avec une clef de voiture, qui ouvre la voiture quand on s'approche d'elle. Avec deux antennes qui amplifient le signal et reliées entre elles (via internet), une près de la clef et une près de la voiture, on peut ouvrir la voiture de très loin...

c'est mignon ça hein? hehe

première partie, le NFC.
justement c'est du champ proche, pas du rayonnement électronique à grande distance.
On est à 13,56 MHz, si on voulait utiliser des antennes normales, elles feraient plusieurs mètres de longueur. Donc y'a un "truc" évidemment.
En fait c'est plus une communication à induction qu'à radio.

Il est donc plus juste de considérer la carte et le lecteur comme un transformateur sans noyau plutot que comme des émetteurs/récepteurs radio.

Les machins de voiture, c'est de l'UHF (433 ou 868 MHz) voire du 2,4 GHz, à ces fréquences là, on n'est plus dans le champ proche (la zone de champ proche dépend de lambda) mais dans les techniques qui utilisent le mot "vicinity", ou même "radio normale style zigtoothfi" qui reposent pas du tout sur les mêmes techniques, il y a effectivement un transceiver radio de chaque coté, qu'on peut attaquer à grande distance avec d'autres émetteurs (plus puissants)/récepteurs (plus sensibles) tant que le bilan de liaison dans les deux sens est positif.

en NFC, la communication peut être espionnée, parce que malgré sa caractéristique de "transformateur", l'antenne et le lecteur rayonnent, ce qui peut être détecté à une grande distance avec un récépteur bien sensible.

Par contre, je ne pense pas qu'on puisse facilement s'insérer dans la communication à grande distance. C'est dû à la modulation utilisée dans ce transformateur.
-pour la comm du lecteur à la carte, on change l'amplitude du champ magnétique envoyé dans le transfo, avec un débit de 106 kbps. la carte détecte ces changements damplitude. Un espion peut également les détecter.
Par contre pour piloter une carte, il faudrait qu'il puisse émettre un champ magnétique dont l'amplitude est contrôlée de manière à ce que la carte "voit" un champ suffisant pour l'activer, mais pas trop, sinon on peut la détruire. De plus, il faut émettre ce champ pour que B (ou H) soit perpendiculaire à la grande face, sinon l'enroulement de la carte (qui est dans son plan) ne captera pas d'énergie. Un champ électrique tel qu'envoyé par une antenne verticale ou un dipôle n'induira pas suffisamment d'énergie dans l'antenne boucle de la carte.
-pour la réponse de la carte, c'est encore plus chaud. Pour répondre, la carte module sa *consommation* (on commute une résistance dans l'antenne avec un transistor), ce que le lecteur détecte, et qu'on peut également mesurer à distance. mais il faut qu'il y ait un couplage magnétique suffisant entre le lecteur normal et la carte.

Dans tout ça ce qu'on pourrait faire c'est espionner à distance une communication complète, et remonter aux octets effectivement échangés pendant une transaction.
C'est là qu'on arrive a la 2e partie : la sécurité.
Sally (./213) :
Non je parle de la présence du NFC sur des cartes de crédit et de la possibilité de payer sans entrer ton code.
Sally (./213) :
Du coup je ne comprends pas l'intérêt par rapport à la bande magnétique ??


La bande magnétique est "passive", tu ne peux que la lire. Elle contient le numéro de carte et 2 3 infos de plus (dont un moyen de vérification du pin mais c'est pas grave)
Tu peux modifier ce que tu veux, et le lecteur l'acceptera. La seule protection, c'est des checksums, on ne peut même pas stocker une signature rsa, pas assez de mémoire dans la bande. C'est un ticket de métro, sans plus.

En revanche, en NFC, le lecteur du terminal discute avec la carte, qui contient un vrai CPU et de la mémoire protégée contre les lectures. Cela permet d'implémenter un véritable protocole d'authentification avec échange de randoms, des chiffrements sérieux, des clés de session, num de séquence...
Je dévoile rien, tout ça est dispo dans les spec EMV, qui ont été déclinées en contactless (NFC) dans les specs EMVCo. Elles sont accessibles. Y'a aussi la technique PayPass faite par visa.

Le problème, c'est que dans ces specs EMV, des tonnes de trucs sont optionnels, et une lecture attentive révèle des problèmes de sécurité potentiels, par exemple les méthodes d'authentification supportées et réellement utilisées dans une transaction sont négociables entre une carte et les machins distants, donc on pourrait faire une carte fonctionnelle qui ne supporte que les fonctions d'authentifications les plus faibles par exemple. Ces méthodes dépendent aussi du montant en jeu, car elles sont potentiellement pénibles: les plus sécurisées sont les méthodes "online" qui font des échanges de sécurité avec la banque, mais ça requiert un lien internet qui n'est pas toujours dispo, et sur lequel "on" (= banques) ne veut pas compter systématiquement, car ça empêcherait le terminal de fonctionner si internet tombe, etc

bref c'est plutôt l'application correcte d'EMVCo qui pose problème, parce que la spec en elle même contient plein de trucs cool pour la sécurité, mais après pour des histoires de cout (de déploiement, de développement, etc) c'est pas toujours appliqué correctement.

Exemple le PIN: rien n'empêche de le faire fonctionner en sans contact, mais c'est débile. La fonction est dispo (enfin je pense) sauf que ... la possibilité d'espionnage des comms. voila une commande de présentation de pin:

0020 0180 04 31323434

y'a pas besoin d'être un grand cryptographe trioui

Il faut absolument que la fonction de vérification du pin chiffre ce pin avant de le présenter a la carte, ce qui représente des développements supplémentaires dans la carte (pour supporter la commande pin chiffré) et dans le terminal (pour supporter l'envoi de la commande pin chiffrée). Ca parait facile, mais quand on ajoute le mot "certification" ça fait peur à tous les développeurs et chefs de projet (bah ouais faut des certifications de sécurité pour tout les logiciels qui touchent au bancaire, et donc $$$$$ bokoubokou).
Du coup le pin est zappé en sans contact, tout simplement. C'est effectivement remplacé par des méthodes bien plus sécurisées (signatures rsa par exemple) mais il faudrait étudier profondément ces algos, et les manières sont ils sont implémentés, pour vérifier qu'aucune faille n'est possible dans le *protocole*, et surtout s'assurer que tout est réellement chiffré, sans rien laisser en clair.

la sécurité bancaire c'est un compromis entre la simplicité et la sécurité, comme partout finalement. La sécurité voudrait qu'on contacte les serveurs bancaires a chaque transaction, mais en pratique, on fait tout ce qu'on peut pour l'éviter au max.

Là dans l'exemple, on demande le pin au contact tous les 80 euros. C'est une manière de limiter les dégats au cas ou un espionnage de communication (peu probable) révèle un moyen de rejouer des transactions (encore moins probable).

mais on sait jamais!

Il faut bien voir qu'a ce niveau, on dépasse ceinture-bretelles. On joue dans le ceinture-bretelles-casque-airbag grin

ceci dit le pin est une mesure de sécurité faible, une authentification mutuelle ne nécessite pas de pin et est nettement plus sécurisée. les techniques "cartes" s'étant améliorées, on sait faire de la mémoire suffisamment sécurisée pour y stocker une clé et s'assurer qu'elle ne peut pas être relue sans autorisation et sans moyens démentiels style MEB, MET et autres équipements lourds.

autre raison pour ne pas utiliser le pin: la négociation de la sécurité préalable au chiffrement du PIN nécessite l'établissement d'un canal sécurisé, qui nécessite lui même une authentification mutuelle... Du coup le pin ne sert plus a rien, l'auth mutuelle elle même est suffisante grin

donc d'après moi c'est probablement aussi sécurisé qu'en contact, mais faudrait que quelques hackers auditent le truc pour qu'on ait pas de vilaine surprise.

en cas de trouille incontrôlable, emballez votre carte dans du papier alu quand vous vous en servez pas, ça évitera une potentielle lecture a distance. ce genre de truc existe déja pour les passeports.