UTILISATION DES CARTES MAGNÉTIQUES SOUS GNU/LINUX

Bien avant les cartes à puce existaient les cartes bancaires à piste magnétique.
Bien moins coûteuses à produire, elles permettaient déjà le retrait
de numéraire en guichet automatique et le paiement. L'arrivée de la puce
changea la donne, mais la piste magnétique est toujours largement utilisée
en France et, plus encore, dans le reste du monde. Qu'est-ce exactement
qu'une carte magnétique et comment lire et écrire sur ce support ? C'est ce
que je vous propose de découvrir maintenant.


La carte à puce est largement utilisée en France et ce depuis bien longtemps. Dans d'autres pays, en revanche, la carte de crédit est magnétique et n'apporte aucune sécurité dans les transactions. Les données qu'elle contient sont facilement lisibles et modifiables pour qui dispose du matériel adéquat. En termes de transaction financière, ce type de carte n'est rien d'autre qu'une facilité opérationnelle. Voilà pourquoi quand, dans un pays étranger, vous payez avec votre carte de crédit sans puce, vous signez un ticket de caisse. C'est exactement comme si vous faisiez un chèque, avec en prime, ne pas avoir à écrire le montant en lettres (ce qui est très pénible en vérité). Bien que la carte à puce soit maintenant largement répandue en Europe, non seulement pour les transactions financières, mais également pour tout ce qui a attrait à l'authentification, le support magnétique est encore utilisé. Les coûts de production d'une carte à puce sont bien supérieurs à
ceux d'une carte magnétique. Il en va de même pour les équipements permettant de les mettre en oeuvre. Voilà pourquoi votre billet de train (nous en reparlerons plus loin), votre carte de piscine ou celle remise pour accumuler des points de fidélité dans certaines boutiques sont des cartes magnétiques. Dans certains hôtels, les cartes à puce à contact ou utilisant RFID commencent doucement à remplacer les cartes magnétiques ou les clés standards. L'invention en elle-même ne date pas d'hier. C'est Forrest Parry, alors ingénieur chez IBM, qui eut l'idée, en 1960. d'associer une bande magnétique avec un support plus mobile comme une carte. La bande magnétique était alors le média généralement utilisé pour le stockage des données numériques. Pour la petite histoire, c'est la femme de Forrest qui aurait trouvé le moyen de coller la bande sur le support. En effet, la matière plastique composant la bande et surtout sa finesse rendaient très difficile
l'utilisation de colle (solvant). Selon la légende, voyant son époux frustré de ne trouver aucune solution, elle aurait tout simplement essayé le fer à repasser. La chaleur de l'appareil aurait alors été idéalement adaptée pour faire fondre la bande et la coller sur le support sans en changer les propriétés physiques et magnétiques. Comme quoi, j'ai bien raison d'avoir un fer à repasser à disposition dans mon atelier/labo. Ce sont souvent
les accessoires les plus usuels qui vous sortent du pétrin... (essayez le coupeongles sur les pattes des composants après soudure).
Une histoire de standards

 Une carte magnétique quelconque repose généralement sur le standard ISO/IEC 7810 définissant les caractéristiques des cartes de crédit (business cards). En réalité, c'est un jeu complet de standards qui est pris en compte : ISO/IEC 7810, ISO/IEC 7811, ISO/IEC 7812. ISO/IEC 7813, ISO 8583, et ISO/IEC 4909. Ces standards définissent, en premier lieu, le format physique de la carte : 85.60 X 53.98 mm (dit format ID-1) avec une épaisseur de 0.76 mm. Même la forme des coins arrondis est définie, avec un rayon de 3.18 mm. Sont également décrites et détaillées les spécifications quant à l'emplacement des pistes et l'encodage des données qui s'y trouvent. Une carte magnétique standard comporte jusqu'à trois pistes :
- La piste 1 stocke des informations
alpha-numériques avec une densité
de 210 bits par pouce (bpi). Les
caractères sont encodés sur 7 bits
et peuvent être jusqu'au nombre de
79. Cette piste a historiquement pou r
origine l'association internationale
du transport aérien (International
Air Transport Association ou IATA,
en anglais).
- La piste 2 utilise une densité inférieure
(74 bpi) et n'encode que des
chiffres sur 5 bits avec un maximum
de 40 chiffres. Cette piste a
été ajoutée par Y American Bankcrs
Association (ABA).
- Enfin, la piste 3 utilise une densité
de 210 bpi pour stocker jusqu'à
107 caractères numériques codés
sur 5 bits. Cette piste, comme les
précédentes, est parfois désignée
par l'organisme ou entité qui en est
à l'origine. Ici, il s'agit d'un groupement
économique en rapport avec
le système de plan épargne-retraite
pour employés par le Gouvernement
des États-Unis, THRIFT/TSP.

Il faut bien comprendre qu'on parle ici de l'encodage des données et non de leur interprétation. La piste 3 est rarement utilisée, mais les deux premières trouvent une utilité dans bien des applications. Si l'on considère le domaine bancaire, l'encodage des données est également standardisé (ISO/IEC 7813). Ainsi, on trouve :
Sur la piste 1 :
- STX (Start sentinel), généralement
le caractère % marquant le début
des données ;
- FC (Format code) identifie le format
des données. B en temps normal (le
format décrit ici) ;
- PAN (Primary Account Numbei),
jusqu'à 19 chiffres. Il s'agit souvent
du numéro de la carte embossé au
recto et composé de 4 fois 4 chiffres :
- FS (Field Separator), marque la
fin du premier champ de données ;
- NM, une zone de 2 à 26 caractères
identifiant le propriétaire de la carte :
- FS (Field Separator), marque la
fin du second champ de données ;
- ED (Expiration Data) sur 4 chiffres
reprenant la date d'expiration de
la carte ;
- SC (Service Code) sur 3 chiffres. Ce
code de service est également normalisé
et renseigne sur les possibilités
d'utilisation de la carte (transactions
internationales, utilisation de la
puce si présente, retrait en guichet
automatique uniquement, etc.) ;
- DD (DiscretionaryData) qui, comme
son nom l'indique, est laissé à
la discrétion de l'émetteur de la
carte. On y trouve généralement
le CVV (Card Vérification Code)
qu'il ne faut pas confondre avec
le CVV2. le CVC2 ou le CCV (Card
Code Vérification), qui est appelé
en France « cryptogramme visuel »,
permettant de renforcer la sécurité
des transactions à distance. Ce code
n'est, selon toutes vraisemblances,
pas enregistré sur une piste magnétique,
de manière chiffrée ou non.
- ETX (Endsentinel), ?, marque la fin
des données de la piste ;
- LRC (Longitudinal RedundancyCheck),
calculé suivant la norme ISO/IEC
7811-2 et permettant d'assurer la
cohérence et l'intégrité des données.

Sur la piste 2 :
- STX ; comme sur la piste 1 :
- PAN identique à la piste 1 ;

- FS : = cette fois ;
- ED (Expiration Date) au format AAMM. Notez qu'il s'agit là d'une date normalisée, contrairement à la piste 1 ;
- SC identique à celui de la piste 1 ;
- DD généralement identiques, du moins en partie, aux données de la piste 1 ;
-ETX: ? ;
- LRC.
Les LRC n'apparaissent généralement pas lors de l'utilisation d'un lecteur de carte magnétique standard et sont utilisées en interne pour vérifier les données. En cas de non vérification du LRC, la majorité des lecteurs signalent une erreur et ne transmettent pas les informations.
Bien entendu, en dehors du système bancaire, le format des données est rarement normalisé et sera donc propre à chaque diffuseur de cartes. On retrouve cependant les marqueurs STX et ETX des deux pistes.
Enfin, toujours en termes de normes, mais industrielles cette fois, il faut différencier les cartes LoCo et HiCo. Ces deux termes définissent respectivement les cartes basse et haute coercivité et font référence à la notion de champ coercitif. Le champ coercitif d'un matériau (ferromagnétique) renseigne sur l'intensité du champ magnétique qu'il est nécessaire d 'appliquer pour annuler son aimantation à partir de son aimantation à saturation. En version courte : l'énergie nécessaire pour démagnétiser quelque chose.
Les pistes magnétiques et les cartes haute coercivité sont plus difficiles à effacer et donc appropriées aux cartes qui sont fréquemment utilisées. Leur coût est légèrement plus élevé et elles nécessitent plus d'énergie poury inscrire des données. Une carte d'usage courant comme une carte bancaire ou une carte de cumul de points (type S'Miles ou FNAC) sera presque toujours une carte HiCo. Ceci assure un minimum de risques quant à l'effacement accidentel des données (magnet, antivol, rayonnement radio, etc).
Les cartes de basse coercivité exigent une quantité inférieure d'énergie pour être enregistrées. De ce fait, les systèmes d'écriture pour cartes LoCo sont beaucoup moins chers que les appareils HiCo. Cette technologie est généralement utilisée pour les supports à durée de vie limitée (ticket de transport en commun, carte de parking, etc.).
Une carte HiCo pourra être lue indifféremment avec un appareil LoCo ou HiCo. Il en va de même pour l'écriture des cartes LoCo. Vous ne pourrez pas, en revanche, écrire sur une carte HiCO avec un appareil LoCo incapable de générer un champ magnétique suffisant pour modifier ou effacer les données d'une piste HiCo.

Lire une piste magnétique
La méthode Battaglia : le lecteur « maison »

La piste magnétique d'une carte n'est rien d'autre qu'une bande magnétique collée sur le support, c'est-à-dire un ensemble de particules ferromagnétiques (oxyde de fer ou de chrome) mélangées à une substance plastique (film polyester). L'écriture d'une information se résume à l'utilisation d'un solénoïde créant un champ magnétique permettant d'orienter les particules. La lecture est le procédé inverse, le passage de la bande devant un élément ferromagnétique bobiné induit l'apparition de tensions aux bornes de la bobine. La variation de tension est une représentation du signal enregistré sur la bande.
Ce procédé, très grossièrement dépeint ici, est identique pour les bandes vidéo, les bandes pour ordinateur, les cassettes de notre enfance et... les pistes des cartes magnétiques.
Pourquoi ne pas utiliser alors les dispositifs existants de lecture de support magnétique pour lire les cartes ? C'est précisément la question que s'est posée Joseph Battaglia avant de se lancer dans ses expérimentations. C'est ainsi qu'après rédaction d'un article pour 2600 magazines et plusieurs conférences, il a affiné sa méthode.
Matériellement, l'appareil se résume à l'utilisation d'une tête de lecture provenant d'un lecteur de cassettes (type baladeur/walkman) et un connecteur Jack mono. L'ensemble est connecté à l'entrée micro d'une carte son et les données brutes sont traitées de manière logicielle. Il faut, en effet, décoder le signal utilisant une modulation FSK (.Frequency-Shift Keying) à partir du flux de données provenant de la carte son puis, éventuellement, vérifier les données décodées par calcul/comparaison du LRC.
Joseph Battaglia a ainsi écrit un proof of concept sous la forme de deux programmes C pour GNU/Linux
(sous licence MIT). Le premier, dab. se borne au décodage des fréquences depuis /dev/dsp et envoie sur STDOUT une suite de 0 et de 1. Ce sont les données brutes décodées. Un second programme, dmsb, prend le relais et se charge de vérifier le LRC, puis de mettre en forme les données selon les spécifications ISO (piste 1, 2 ou 3). Les deux programmes sont disponibles sur http://www.2600.com/code/221/.
On notera au passage que dab est en mesure de lire directement une entrée depuis la carte son. mais peut également utiliser un fichier au format WAV. Comme le montre Joseph dans ses conférences, il est parfaitement possible d'enregistrer le son d'une piste magnétique avec un logiciel comme Audacity et véritablement voir à l'écran les données encodées. Accessoirement, cela permet de stocker les données sous une forme brute, sur un enregistreur audio ou un dictaphone numérique, par exemple.
Le net avantage de cette technique, en dehors de son coût ridicule, réside dans le fait qu'il devient possible de lire des cartes n'utilisant pas un format normalisé. En effet, rien n'empêchera un constructeur d'utiliser les caractéristiques techniques d'une piste en lieu et place d'une autre (ou placer la liste n'importe où). De la même manière, le LRC n'est pas la seule option possible pour assurer l'intégrité des données sur la piste. Si une carte utilise une autre méthode de contrôle d'intégrité, un lecteur standard ne retournera pas les données lues.
Sur la base de ces expérimentations, il est possible d'aller plus loin encore. Comme la technologie utilisée à la base du système est parfaitement maîtrisable sans équipement scientifique complexe, il devient possible de développer un support alternatif pour les données.
Un montage d'une simplicité déconcertante permet de lire tous types de cartes et
supports magnétiques. Il suffit, en effet, d'utiliser une tête de lecture neuve ou récupérée
dans un lecteur de cassettes/bandes et de la connecter à une entrée micro de votre
carte son.

Ceci a déjà fait l'objet de réalisations diverses et se résume à remplacer le support magnétique lui-même par un composant actif. Une bobine avec un coeur ferromagnétique peut être placée en face d'une tête de lecture pour y induire un signal encodé. Il devient donc possible de remplacer un support par un montage pouvant émettre les données arbitrairement choisies. Vous l'aurez compris, il n'est pas nécessaire de décoder pour dupliquer les données, une copie du signal suffit. Un ensemble aussi simple qu'un dictaphone numérique enregistrant depuis une tête de lecture et reproduisant le signal via un bobinage permettrait d'enregistrer une collection très importante de pistes. Inutile de manipuler les données, puisqu'il suffit de « rejouer » les signaux analogiques.
Utilisation d'un lecteur du commerce

Le travail effectué par les deux programmes de Joseph Battaglia peut être implémenté sur un composant tel un microcontrôleur ou un PLD (CPLD. FPGA, etc.). C'est précisément ce type d'électronique qui se trouve dans les lecteurs vendus dans le commerce et permettant de lire tous types de cartes, pour peu qu'elles respectent les normes. Ce genre de matériel, généralement interfacé en RS232 ou en USB/Série, est facilement accessible. Pour un budget entre 20 et 50 euros, vous pourrez disposer d'un périphérique complet et testé.
Celui utilisé pour cet article provient de chez SparkFun et est construit autour d'un MSP430 interfacé en RS232 (l'achat n'est pas récent et. oui, ce qui arrive à la rédaction est très souvent démonté dans les 24h). L'interface RS232 fournit également l'alimentation via la ligne DTR. Ne vous étonnez donc pas si votre lecteur ne s'allume pas dès la connexion. Il faut qu'une application « ouvre » le port pour lever le signal DTR. Ce lecteur s'utilise très simplement puisqu'après connexion, un simple logiciel d'émulation de terminal comme Minicom ou GNU/Screen paramétré en 9600/8N1 (9600 bps, 8 bits de données, pas de parité et un bit de stop) vous présentera chacune des pistes de la carte passée dans le lecteur. Exemple : %B5135537418492014~B0D0R/DENIS .M
"^0909201574376332000000994000000000000000000?;51
35537418492014=09092015743763320000?
(non. ce ne sont pas les informations valides de ma carte bancaire).
Nous avons donc :
- % : le marqueur de début de la piste 1 ;
- B : le code de format ;
- 5135537418492014 : le numéro de la carte :
- * : le premier séparateur de champ ;
- B0D0R/DENIS .M : le nom du porteur ;
- * : le second séparateur de champ ;
- 0909 : la date de validité :
- 201 : le code de service correspondant ici à une carte
internationale avec puce (2) pour une utilisation normale
(0) sans restriction (1) ;
- 574376332000000994000000000000000000 : les données
discrétionnaires ne semblant correspondre à rien
de connu :
- ? : le marqueur de fin de la piste 1 ;
- ; : le marqueur de début de la piste 2 ;
- 5135537418492014 : à nouveau le numéro de carte :
- = : le séparateur de champ :
- 0909 : la date de validité ;
- 201 : le code de service :
- 5743763320000 : d'auLres données discrétionnaires
reprenant une partie de celles en piste 1 ;
- ? : le marqueur de fin de la piste 2.

Comme vous pouvez le voir, le lecteur retourne les données sous la forme d'une seule ligne regroupant les informations des différentes pistes. Celles-ci peuvent être très simplement décodées et consultées.

6 commentaires:

  1. Bonjour,
    j'aimerai savoir si c'est possible de connaitre la signification d'un code genre D1231300A0 d'une carte de fidélité, qui ne correspond à rien de visible sur la carte?
    un type d'encodage? c'est pas en hexa en tout cas
    merci

    RépondreSupprimer
  2. salut,

    aurai-tu un schéma démonstratif de ce qu'il ce passe au niveau physique ??

    RépondreSupprimer





  3. Hola, mi nombre es Camila, de España, quiero compartir mi

    experiencia con todos. He estado escuchando sobre esta tarjeta

    ATM en blanco por un tiempo y nunca le di ningún interés porque

    de mis dudas y debido al hecho de que perdí un montón de dinero

    para estafa en línea. Hasta que un día descubrí un hacker

    llamado Lydia Lopez. él es muy bueno en lo que hace, así que le

    pregunté
    La tarjeta ATM en blanco, si funciona o si existió, ella me dijo

    que sí y que es una tarjeta programada para retiros de dinero al

    azarsin ser notado y también se puede usar gratis en línea
    compras de cualquier tipo. Esto fue impactante y todavía tenía

    midudas pero luego lo intenté y pedí la tarjeta y
    aceptó sus términos y condiciones, esperando y rezando que no

    fuerauna estafa. cuatro días después recibí mi tarjeta y lo

    intenté con la el cajero automático más cercano a mí, funcionó

    como la magia. yo eracapaz de retirar hasta $ 3,000 U.S.D a la

    semana, esto era
    increíble y el día más feliz de mi vida! hasta ahora, tengo
    sido capaz de retirar hasta $ 28,000 USD sin ningún estrés de

    ser atrapado y la parte maravillosa es que el límite de crédito

    es
    ove a
    $ 600,000.00,50,000,40,000,30,000,20,000,10,000,5,000,3,000,2,

    ooo
    , 1000 y 500 U.S.D. respectivamente, dependiendo de su elección

    de
    orden, también quería confirmar si podría usarlo en cualquier

    lugar
    el mundo, así que viajé a 3 países diferentes y funcionó

    perfectamente bien. No sé por qué estoy publicando esto aquí,

    solo
    pensé que esto podría ayudar a aquellos de nosotros que

    necesitamos estabilidad financiera.
    The Blank Atm realmente ha cambiado mi vida y puede cambiar la

    tuya
    también. Es 100% seguro usar esta tarjeta porque se enviará

    para ti como una tarjeta de regalo. También puede recargar

    cualquier activo y válido
    tarjetas, cualquier tipo de tarjeta solo contáctelo para una

    recarga (prepago
    tarjetas, tarjetas de crédito / débito) .TYPE VERVE, VISA Y

    MASTER CARD via
    correo electrónico: (lydialopezatkitt@gmail.com) o whatsapp: (+

    2348021276475)
    la experiencia es la mejor techers y soy una prueba viviente de

    esto
    testimonio no deje que su duda destruya su vida en el punto de
    teniendo su avance financiero ..

    RépondreSupprimer





  4. Hola, mi nombre es Camila, de España, quiero compartir mi

    experiencia con todos. He estado escuchando sobre esta tarjeta

    ATM en blanco por un tiempo y nunca le di ningún interés porque

    de mis dudas y debido al hecho de que perdí un montón de dinero

    para estafa en línea. Hasta que un día descubrí un hacker

    llamado Lydia Lopez. él es muy bueno en lo que hace, así que le

    pregunté
    La tarjeta ATM en blanco, si funciona o si existió, ella me dijo

    que sí y que es una tarjeta programada para retiros de dinero al

    azarsin ser notado y también se puede usar gratis en línea
    compras de cualquier tipo. Esto fue impactante y todavía tenía

    midudas pero luego lo intenté y pedí la tarjeta y
    aceptó sus términos y condiciones, esperando y rezando que no

    fuerauna estafa. cuatro días después recibí mi tarjeta y lo

    intenté con la el cajero automático más cercano a mí, funcionó

    como la magia. yo eracapaz de retirar hasta $ 3,000 U.S.D a la

    semana, esto era
    increíble y el día más feliz de mi vida! hasta ahora, tengo
    sido capaz de retirar hasta $ 28,000 USD sin ningún estrés de

    ser atrapado y la parte maravillosa es que el límite de crédito

    es
    ove a
    $ 600,000.00,50,000,40,000,30,000,20,000,10,000,5,000,3,000,2,

    ooo
    , 1000 y 500 U.S.D. respectivamente, dependiendo de su elección

    de
    orden, también quería confirmar si podría usarlo en cualquier

    lugar
    el mundo, así que viajé a 3 países diferentes y funcionó

    perfectamente bien. No sé por qué estoy publicando esto aquí,

    solo
    pensé que esto podría ayudar a aquellos de nosotros que

    necesitamos estabilidad financiera.
    The Blank Atm realmente ha cambiado mi vida y puede cambiar la

    tuya
    también. Es 100% seguro usar esta tarjeta porque se enviará

    para ti como una tarjeta de regalo. También puede recargar

    cualquier activo y válido
    tarjetas, cualquier tipo de tarjeta solo contáctelo para una

    recarga (prepago
    tarjetas, tarjetas de crédito / débito) .TYPE VERVE, VISA Y

    MASTER CARD via
    correo electrónico: (lydialopezatkitt@gmail.com) o whatsapp: (+

    2348021276475)
    la experiencia es la mejor techers y soy una prueba viviente de

    esto
    testimonio no deje que su duda destruya su vida en el punto de
    teniendo su avance financiero ..

    RépondreSupprimer
  5. j'aimerais mettre des donnes sur une piste magnetique vierge comment fait on merci

    RépondreSupprimer