5

Utiliser un lecteur de cartes d'identité pour se connecter au PC Banking

ucr_bnpDepuis une semaine, impossible de remettre la main sur mon lecteur de cartes BNP Paribas Fortis. Vous savez, cette sorte de calculette dans laquelle on glisse sa carte de banque pour générer un OTP permettant de se connecter au PC Banking ?

Ayant un lecteur smartcard intégré dans mon laptop, que j'utilise fréquemment pour lire ma carte d'identité électronique, je me suis dit qu'il devait y avoir moyen de l'utiliser pour faire les mêmes opérations basiques que cette petite calculette : en effet celle-ci n'est que l'interface pour les fonctions cryptographiques qui sont directement exécutées dans la puce de la carte de banque.

Vasco Digipass 810

Si vous êtes clients de plusieurs banques vous avez sans doute remarqué que la plupart utilisent le même lecteur. A la couleur et au logo imprimé près bien entendu. Il s'agit en fait du modèle Vasco Digipass 810.

C'est un petit lecteur implémentant le protocole "EMV-CAP", Europay-Mastercard-Visa Chip Authentication Program... Autrement dit le protocole utilisé par 99% des cartes de banques actuelles.

Petit script Python

SmartcardIl ne m'a fallu que quelques minutes de Google-fu pour trouver ce que je voulais : un script capable d'exécuter ce protocole EMV-CAP sur mon ordinateur, en communiquant directement avec la carte. C'est un blog belge qui m'a redirigé vers cette application apparemment développée et hébergée par un type de l'UCL.

Vu le nom de domaine je n'ai pas eu de problème de confiance mais vous êtes libre de relire le code source si ça vous chante. L'application vous prévient tout de même que ce n'est pas très safe comme méthode, les banques ayant opté pour un lecteur isolé de l'ordinateur pour éviter les malwares.

Mais je juge mon système assez secure et n'ai à nouveau pas eu de problème à taper YES puis mon code PIN !

Utilisation

Après avoir installé le packet python-pyscard, il suffit d'exécuter le script.

Exemple d'authentification 'M1' :

$ ./EMV-CAP -m 1 42424242

***************************************************************************
Using this software for real financial operations can lead to some risks.
Indeed advantage of using a standalone reader is is to isolate your banking
card from big bad malwares.
Using it in a non-secured reader is taking risk that a keylogger intercepts
your PIN, a malware accesses to your card informations, or even intercepts
your transaction to modify it or operates its own transactions.
***************************************************************************
Are you sure you want to continue?

If so, type 'YES', or anything else to quit:YES
Enter PIN (enter to abort)  :
Response: 29928827

Exemple d'authentification 'M2' :

$ ./EMV-CAP -m 2 31415926 0123

***************************************************************************
Using this software for real financial operations can lead to some risks.
Indeed advantage of using a standalone reader is is to isolate your banking
card from big bad malwares.
Using it in a non-secured reader is taking risk that a keylogger intercepts
your PIN, a malware accesses to your card informations, or even intercepts
your transaction to modify it or operates its own transactions.
***************************************************************************
Are you sure you want to continue?

If so, type 'YES', or anything else to quit:YES
Enter PIN (enter to abort)  :
Response: 32103210

Améliorations?

Maintenant que je sais que c'est possible logiciellement j'essayerais bien de coder une petite extension pour Chromium qui me permettrait de remplir automatiquement ces étapes d'authentification énervantes sur le site de ma banque... Trop de sécurité, parfois, c'est surtout trop chiant.

Sources

  1. Renaud dit :

    Bonjour,
    Intéressant mais totalement incompréhensible pour qui n'est pas informaticien.
    Deja il faut savoir ce que c'est python ?
    On télécharger et le setup ne veut pas s'exécuter.
    Bref inutilisable.
    Dommage.

    • Tito dit :

      Désolé, mon blog s'adresse en effet aux plus technophiles, et ce script aussi je pense

      Si tu veux simplifier tes connexions à ta banque, la plupart proposent aussi des modules qui se connectent en USB

  2. ViPe dit :

    Bonjour...

    Apparemment, pas beaucoup d'amateurs pour se 'débarrasser' de toutes ces "§@.#" de manipulations sur les calculettes de la banque!..
    As- tu avancé dans tes manipulations? Perso, j'ai découvert le site de l'U.C.L. qui donne le script Python pour se débarrasser de la calculette, mais maintenant je poursuis sur la piste de me passer carrément de la carte en stockant les valeurs de ma carte dans le fichier 'foo'...
    Non- informaticien, mais geek, je patauge un peu. C'est pourquoi je me permets de te contacter pour savoir si je pourrais profiter de tes avancées.

    Merci, à plus...

    ViPe.

    • Tito dit :

      Bonjour,

      Toute la sécurité d'une carte à puce repose sur l'impossibilité de copier le contenu de cette puce. Ce que vous voulez est donc techniquement impossible.

      Certaines banques proposent des identifications uniquement sur nom d'utilisateur/mot de passe... Il y a aussi la possibilité de laisser votre carte en permanence dans votre ordinateur, éventuellement en la découpant.

  3. ViPe dit :

    Euh... découper ma carte, suis pas vraiment emballé!.. 🙂
    Mais bon, si je peux me passer de la calculette, ce sera déjà pas mal. En encodant 'en dur' mon code pin dans le fichier, ça évite déjà quelques manipulations entre soft banque et applications tierces.
    Aussi plus de soucis de batteries!
    Je continue donc à décortiquer... (avec prudence niveau sécurité)
    Ah et merci pour la 'pince à dénuder', géniale!
    Et bravo pour le 'sound bag', ça m'a donné quelques idées...

    Bonne journée et sorry pour le 'tutoiement intempestif' du premier message..!

    ViPe.