~bohwaz/blog/

Avec de vrais morceaux de 2.0 !

L'illusion de la fausse sécurité : les banques françaises ont tout faux

Quand on a une expérience dans la sécurité informatique, il ne passe pas un jour sans que l'on soit horrifié par le manque de sécurité de ce que l'on peut rencontrer au quotidien, et encore plus des éléments les plus importants. Un exemple criant sont les banques. Malgré ce qu'elles veulent vous faire penser, non seulement leurs sites sont parfois des passoires pleines de failles, mais plus grave ce sont les procédures de sécurité qu'elles conçoivent qui sont dépourvues de la moindre réflexion. Ces entreprises ont-elles un jour consulté un expert en sécurité, ou même ne serait-ce qu'une personne un peu intelligente ? On peut en douter, et on va voir qu'elles feraient mieux d'embaucher des gens compétents le plus vite possible.

La plupart des banques de nos jours sécurisent l'accès aux comptes de leurs clients à l'aide de plusieurs techniques.

La CB « sécurisée » (SecureCode)

Déjà il y a le paiement par carte bleue, qui a maintenant une procédure dite « sécurisée ». En réalité dans le meilleur des cas la banque vous enverra un SMS avec un code à usage unique qu'il vous faudra retaper sur le site. Au pire des cas le site de paiement vous demandera… votre date de naissance. Inutile de dire que si vous vous faites voler votre portefeuille, celui-ci contiendra sans aucun doute une carte d'identité, passeport ou carte Vitale qui fournira ladite date de naissance. Et même sans se faire voler son portefeuille, on ne peut pas dire que ce soit une information particulièrement secrète : elle figure sur votre compte facebook, sur votre CV, sur les dizaines de formulaires que vous remplissez chaque année, etc. Bref il n'y a aucune raison valable d'utiliser la date de naissance pour valider une transaction, cela ne prouve en rien que c'est bien vous, et c'est ridicule. Et même si la banque vous demande de confirmer la transaction par SMS, je vous laisse imaginer l'utilité de la manœuvre si vous vous faites voler portefeuille et téléphone en même temps. Sans même mentionner les risques qu'une application installée sur votre smartphone transmette tous vos SMS à un attaquant (vous savez le fameux jeu que vous avez utilisé 2 minutes qui demande à lire vos SMS ? Et bien il transmet tous vos SMS à un serveur distant.).

Les ordres de virement

La seconde sécurité est la confirmation des opérations effectuées sur le site de la banque. Par exemple pour réaliser un virement ou ajouter un bénéficiaire de virement. C'est la même méthode que précédemment, avec un SMS contenant un code unique à retaper sur le site web. Et donc avec les même risques. Certaines banques ne demandent d'ailleurs que de ré-entrer son mot de passe, ce qui n'est pas non plus beaucoup mieux. Mais rassurez-vous, certaines banques exigent encore de leur envoyer un courrier papier pour ajouter un bénéficiaire. Et si, c'est possible, même en 2014. Visiblement ces banques pensent que falsifier une signature est plus difficile qu'intercepter un SMS. Laissez-moi rire. Si au moins ces banques vérifiaient les signatures d'ailleurs. Je vous laisse tenter l'expérience, la prochaine fois que votre banque requiert votre signature, de griffonner n'importe quoi. Vous serez surpris de constater que ça passe toujours. La logique est simple : vérifier ça prend du temps, donc ça coûte cher, donc ce n'est pas fait. Ça coûte moins cher de traiter les réclamations avec les clients qui se font abuser.

Enfin, certaines banques sont tellement incompétentes qu'après avoir mis en place l'ajout de bénéficiaire de virement par Internet, elles font marche arrière au prétexte pour revenir au papier, en prétextant que cela a occasionné des tentatives de fraudes. Sérieusement. « OK les gars on n'est pas doués pour sécuriser nos opérations en ligne, on va revenir aux opérations physiques, c'est la même merde mais au moins on a l'habitude. » Ah, ça bosse dur là-bas dites donc.

On pourrait se dire que logiquement que quand même c'est mieux dans le cas des virements d'avoir une confirmation par e-mail, car si on peut se faire voler son téléphone, on ne peut pas nous voler notre code client et mot de passe, donc pas d'accès aux comptes. Mais non, c'est la même chose, car l'accès aux comptes est lui-même complètement déficient à tous les points de vue. Et pour combler leur incompétence crasse, les banques essayent de vous faire croire qu'elles maîtrisent en vous montrant de jolies choses, et par exemple les claviers virtuels.

Les identifiants

Commençons par le plus gros problème des banques françaises : la quasi-totalité d'entre elles donnent un mot de passe qui n'en est pas un. Ce n'est pas un mot, c'est un code. Le plus souvent à 6 chiffres seulement. Quand ce n'est pas 4 chiffres ! C'est ridicule, cela ne permet pas de choisir un mot de passe de qualité, et la plupart des gens utilisent leur date de naissance ou de mariage. L'identifiant ne vaut pas mieux, c'est souvent simplement le numéro du compte ou du client.

Le clavier virtuel

Il y a eu à une époque une psychose sur les keyloggers sous Windows qui enregistreraient les identifiants bancaires. Depuis cette époque toutes les banques ont réalisé que leur système d'authentification n'était pas sécurisé du tout. Mais au lieu de passer à quelque chose d'un peu plus sérieux comme du two-factor par exemple, elles ont simplement rajouté une horrible rustine sur le tout. Cette rustine c'est le clavier virtuel. Mais si vous en avez déjà vu : ce sont ces fameux claviers numériques où il faut cliquer sur les chiffres plutôt que de les taper au clavier. Les keyloggers ne peuvent donc plus enregistrer les touches tapées au clavier.

Niveau expérience utilisateur c'est une catastrophe : non seulement ces claviers sont inutilisables par les non-voyants ou mal-voyants, mais ils sont une véritable plaie à utiliser sur mobile où il est quasiment impossible de rentrer le code d'accès correctement dès le premier essai. Enfin on ne peut plus utiliser le gestionnaire de mots de passe de son navigateur ou OS, qui est probablement bien plus sécurisé que le site de la banque, et on doit donc perdre du temps à retaper son code d'accès à chaque connexion.

Enfin niveau sécurité, si le keylogger ne peut plus enregistrer votre frappe au clavier, n'importe qui jetant un œil sur votre écran (dans un cybercafé, au travail, sur son mobile dans les transports en commun) saura non seulement votre identifiant qui est affiché en clair, mais aussi votre code d'accès en regardant les mouvements de votre curseur de souris.

Et vous ne savez pas le pire ? En à peine quelques semaines, de nouveaux keyloggers sont apparus. Ceux-ci enregistrent donc maintenant également les clics de souris. Certains font de la reconnaissance de caractère pour décoder le chiffre que vous cliquez, mais d'autres vont au plus simple : ils enregistrent une capture d'écran de la zone de l'écran qui entoure le curseur au moment du clic.

Autrement dit, le gain en sécurité de ces claviers est simplement nul. Les seuls qui sont emmerdés sont les clients. Leur seule utilité est marketing : elle veut montrer aux clients que leur sécurité est en de bonnes mains. Tout comme au siècle précédent les banques devaient avoir de beaux bâtiments imposants, avec du marbre et de grands espaces. Tout cela pour que les clients aient confiance et mettent leur argent dans les banques, en ayant l'impression que la banque était riche et pouvait rembourser les avoirs déposés. Mais tout cela n'est que du bluff. Tout comme les banques ne sauraient rembourser les avoirs qui leur ont été confiées, elles sont incapable de garantir la sécurité de vos comptes.

Par curiosité j'ai analysé le code des claviers virtuels de plusieurs banques françaises, et je dois dire que c'est encore pire que ce que je pensais. Dans une très large majorité des cas le principe est très simple : une image contenant le clavier (le tableau avec les chiffres) est affichée, et quand on envoie le formulaire on envoie en réalité la position du clic. Parfois la position est de type coordonnées X/Y dans l'image, parfois c'est un chiffre qui reprend l'affichage des chiffres du clavier.

Dans tous les cas j'ai réussi à créer un court script qui détermine le chiffre cliqué et permet de retrouver le code d'accès entré. En quelques dizaines de minutes seulement. Et comme toutes les banques fonctionnent de façon similaire, il est très rapide de faire un script qui permettrait de décoder directement les chiffres cliqués. Pas besoin de keylogger, il suffirait d'une extension Firefox ou Chrome compromise… Et quand on sait l'absence de vérification sérieuse des actions et du code des extensions publiées sur les magasins d'extension de ces deux navigateurs, il y a de quoi sérieusement s'inquiéter.

Et si seulement le tableau s'arrêtait là… Mais en réalité il n'y a pas une procédure pour rattraper l'autre. Car si un attaquant ne s'attaque pas à votre machine pour récupérer votre code, il peut souvent générer un nouveau code d'accès via la procédure de « code perdu » qui n'est pas plus sécurisée. Souvent il suffit de la date de naissance, du numéro de téléphone, et éventuellement d'une autre information personnelle disponible sur votre carte d'identité comme le lieu de naissance ou l'adresse postale, et après un SMS de confirmation vous pourrez changer le code d'accès aux comptes du client. Certaines banques renvoient le code secret par courrier seulement, car comme on l'a vu, le courrier papier est la forme de communication la plus sécurisée qui soit…

Mention spéciale à certaines banques qui à cette occasion vous proposent (case pré-cochée) de recevoir du spam par email et SMS. Normal.

En conclusion je recommande de ne pas utiliser les claviers virtuels quand c'est possible (certaines banques permettent de le désactiver, mais parfois il faut utiliser un script GreaseMonkey) : ils n'apportent aucune amélioration notable de sécurité et emmerdent plus qu'autre chose. Si vous êtes réellement concerné par la sécurité de vos comptes en ligne, je vous invite à contacter votre banque afin de lui suggérer de mettre en place un système d'authentification réellement sécurisé. Il est incroyable que de nos jours l'accès au compte bancaire soit moins sécurisé que l'accès au compte Gmail !

Écrire un commentaire
(facultatif)
(facultatif)
(obligatoire)
                                   
 ___  ___ _ __ _ __ _   _ _ __ ___ 
/ __|/ _ \ '__| '__| | | | '__/ _ \
\__ \  __/ |  | |  | |_| | | |  __/
|___/\___|_|  |_|   \__,_|_|  \___|
                                   
(obligatoire)

Les adresses internet seront converties automatiquement.
Tags autorisés : <blockquote> <cite> <pre> <code> <var> <strong> <em> <del> <ins> <kbd> <samp> <abbr>

Cédric

Je n'ai pas ce genre de problème avec ma banque: banque pop

Pour rajouter un bénéficiaire, il faut absolument passer par le boitier qu'ils m'ont envoyer...

Pour la connexion, c'est un textarea...

lucasg

Certaines banques utilisent encore un tableau de codes imprimé (et remis lors de l'ouverture du compte) à utiliser pour les opérations bancaires. C'est du old-shool 2FA, mais ça marche. En gros il faut te faire voler tes identifiants+mdp+le bout de papier (qui est souvent chez toi) pour qu'un attaquant te pique du pognon.

Enfin, le système le plus sécurisé que j'ai pu utilisé, c'est chez UBS (banque suisse donc). Pour pouvoir faire un virement, il fallait récupérer un code généré sur le site (une nonce donc), le rentrer dans un boîtier-calculatrice fourni par la banque dans lequel tu insérais une carte dédiée et recopier ce que te recrachais le boîtier dans le cadre dédié sur le site.

On a fait des tests avec un pote : les boîtiers sont tous flashés differements (cad à même code d'entrée et même carte, ils ne renvoient pas la même sortie); les cartes sont bien entendues non interchangeable et les codes générés sont limités dans le temps (qqes minutes de durée de vie). Bref, ça avait l'air costaud.

MacArony

Pour rajouter un beneficiaire a la Caisse d'Ep, il y a un delai de 24h avant que l'on puisse faire un virement donc en consultant regulierement ses comptes on le voit rapidement vu que ça reste dans l'entete des operations en court, et on recoit un email pour nous avertir qu'on a ajouté un compte donc c'est deja un plus.

Par contre clavier virtuel obligatoire, j'ai fait la demo a ma conseillere (alors que je suis pas expert en secu informatique, jsute un peu debrouillard) elle etait sur le cul. Peut etre que ça va rien changer mais au moins c'est montré.

Je n'utilise que l'appli sur le telephone, pourquoi ? car je sandbox les applications avec xprivacy (telephone rooté)

un Belge

Quand tu as une carte française et que tu veux aller à l’étranger, tu dois demander une « activation » à ta banque pour pouvoir payer ou retirer (alors que ma carte basique de la Banque de la Poste fonctionnait même au Canada)…

Quand quelqu’un, à mon boulot, veut payer par chèque, c’est un Français (par chèque, bon sang de bois ! « So 20th century »)…

Quand, il y a dix ans en Alsace, il n’était pas possible de payer son plein de carburant par carte, il fallait aller en Allemagne (heureusement, ça a changé)…

Quand la sécurité des paiements via le web est en carton (ça fait des années qu’on a des lecteurs de carte ; avant, on avait des digipass)…

… Les banques françaises, tout un poème ! En plus, je parie qu’elles vous font payer aussi cher qu’à nous. :-(

Pour info, voici deux démos de comment ça se passe chez nous :
- identification sur le site de banque en ligne (notez IE6 : ça date) : http://www.v3.fortis.com/SecurityVideo/web/pcbankingfrmod32012.html
- virement (utilisation du lecteur uniquement pour les nouveaux destinataires) : http://www.v3.fortis.com/BNPPF/mod_pmc_fr/web/start_fortis.htm

un Belge

(suite)

En repensant à cela, me sont revenus d’autres trucs que je trouve effarants en France.

La peur

Sur le Net ou ailleurs, je vois une crainte à divulguer ses informations bancaires. Ça passe aussi parfois dans des commentaires ironiques par « Donne-moi ton RIB ».

C’est débile : le RIB n’est pas un accès au compte.

Le repli sur soi

Préambule

Je suis désolé d’avance, mais les Français qui me lisent risquent de mal le prendre.

J’ai remarqué qu’énormément de Français (la majorité ?) considèrent que ce qui, à l’étranger, n’est pas comme chez eux est anormal. Pas bizarre, pas différent, pas amusant, pas étrange… Non, c’est « anormal » !

Je fais un parallèle avec ce qu’on dit souvent à propos des Étatsuniens : ils ne connaitraient rien des autres pays, ils ne voient que le leur, ils n’ont pas d’autre référence, etc.

Eh bien, en France, c’est souvent pareil (Et encore plus au niveau bancaire.)

Savez-vous qu’il est super facile de faire un virement vers un compte étranger ? Pourtant, c’est tout con. Il suffit de connaitre les codes IBAN et BIC du compte bénéficiaire et de faire un virement.

Malgré ça, en France, vous n’utilisez pas ça. Vous préférez envoyer des chèques (Putain de merde, des CHÈQUES !) que nous ne pouvons même pas encaisser chez nous. Et les Français sont étonnés (voire offusqués) qu’on leur propose le virement international. Non, pour eux, tout devrait fonctionner « comme chez eux » ; les autres manières sont « anormales ».

Bises quand même. :-)

(Et si vous voulez m’envoyer des sous, mon compte IBAN est BE58 0001 7687 7779 et le code BIC de ma banque est BPOTBEB1. Même pas peur !)

Aschen

Un petit plus pour la Bred qui permet de se choisir un login et un mot de passe pour l'interface web !

Son système de double authentification pour les achats sur internet se fait par sms donc c'est pas trop mal.

Bref toutes les banques ne sont pas au même niveau.

romario

Article intéressant, merci à l'auteur, néanmoins j'aurais aimé savoir quelles sont vos propositions pratiques pour un "système d'authentification réellement sécurisé" ? il y a juste le lien vers la description Wikipedia du two-factor...
de ce que je comprends de l'article il faudrait déjà pouvoir choisir un mot de passe digne de ce nom : genre avec lettres, chiffres, caractères spéciaux, de longueur convenable... d'autres moyens supplémentaires seraient-ils alors nécessaires ?
Je lis aussi dans les commentaires qu'il existe des boîtiers fournis par les banques. Je suis mitigé sur cette idée car cela doit avoir un coût non ? En plus, à l'heure des banques en ligne, il n'est pas rare d'avoir des comptes / livrets dans plusieurs de ces banques, ce qui voudrait dire autant de boîtiers ! Sans compter que pour consulter ses comptes quand on n'est pas chez soi c'est mort...
Pareil pour les grilles de mots de passe : le concept est peut-être bien mais c'est galère de devoir retrouver sa grille à chaque fois qu'il faut se connecter !
Bref le meilleur rapport simplicité / sécurité que je vois serait de pouvoir mettre des bons gros mots de passe !!
Voyez-vous d'autres solutions pratiques ?

BohwaZ

Je confirme ce que dis @unBelge, les boîtiers utilisés par les banques belges (et certaines banques en France, notamment le Crédit Coopératif je crois), sont une solution two factor de qualité. Et cela permet de signer les transactions directement. Certains boîtiers ne génèrent qu'un token à usage unique en appuyant sur l'unique bouton (comme ING Luxembourg), mais d'autres comprennent un lecteur de CB, il faut donc taper son code secret CB, et ils pourraient théoriquement marcher avec plusieurs banques (un seul boîtier), même si en pratique c'est un boîtier par banque. Pour info ces boîtiers sont souvent gratuits ou compris dans le coût de fonctionnement des comptes.

Le minimum serait de demander une authentification à deux facteurs avec un boîtier OTP (ou un logiciel OTP sur téléphone ou ordinateur) et d'utiliser de vrais mots de passe. Les grilles de codes sont aussi un moindre mal.

Mais il y a aussi pas mal d'autres options à réfléchir, comme par exemple l'authentification par certificat SSL client.

@Gilles : par exemple un script GM pour HelloBank : Script GreaseMonkey pour Hello Bank qui supprime le clavier virtuel