Pavé numérique de free mobile : hack

Pavé numérique du site free mobile

Pavé numérique du site free mobile

Il y a quelques temps, je m’en prenais au pavé numérique de free mobile dans ce blog.

Je ne comprenais pas pourquoi free avait mis ce système en place : l’utilisation est fastidieuse, il sécurise la saisie de l’identifiant alors que c’est le mot de passe qui est secret, et il empêche votre navigateur de se souvenir de l’identifiant.

Dernièrement, je suis tombé sur une explication : free voulait bloquer les applications de suivi de consommation tierces en leur empêchant d’accéder de manière automatique au compte de ses abonnés. L’intention affichée est louable: empêcher l’usurpation d’identité, alors que les utilisateurs confient leur identifiant et mot de passe à la première application venue.

Personnellement, je ne suis pas certain que ça soit la vraie raison, mais c’est un autre débat. Toujours est‐il que ça m’a donné envie d’y regarder de plus près. Ne peut‐on vraiment pas automatiser la saisie de l’identifiant avec ce système ? Est‐ce vraiment efficace ?

Tout d’abord, voyons comment ça marche.

Comment fonctionne le pavé numérique de free mobile ?

Commençons par le clavier : il est composé d’images des 10 chiffres. Chaque image est chargée depuis le serveur, qui interprète l’URL suivante chiffre.php?pos=0&r=67602 et renvoie l’image associée au chiffre à la position 0 (premier du clavier), dans la disposition 67602.

Cet identifiant de disposition semble stockée côté serveur, ça serait trop beau qu’on puisse la surcharger. De même, côté client, on n’a rien dans le code qui permet de faire le lien entre une position et un chiffre. Là encore, les gars de chez free ont bien fait attention.

Ce qui veut dire que, lorsque vous cliquez sur le clavier puis validez le formulaire, le navigateur n’envoie pas votre identifiant mais la succession des positions des chiffres que vous avez cliqué. Cette valeur est stockée dans un champ HTML caché.

Comment contourner ce système ?

Donc, côté client, tout est fait pour que le chiffre affiché sur chaque bouton ne soit pas disponible ; et pour qu’on ne puisse pas «forcer» une disposition en renvoyant un identifiant préalablement choisi. Certes.

Mais pour autant, pour «hacker» ce système, doit‐on forcément passer par des algorithmes de reconnaissance de caractères ?

En analysant ces images, on remarque qu’en rechargeant la page, free nous renvoie toujours les mêmes. Les caractères sont toujours représenté avec les mêmes images ! Dès lors, il suffit de comparer les images qu’on reçoit avec celles qu’on connait. Et le tour est joué.

J’ai fait un petit script greasemonkey qui utilise le canvas de HTML5 pour charger chaque image, et l’analyser pixel par pixel. J’ai repéré à la main les pixels caractéristiques de chaque chiffre (il faut en compter à peu près 4 par image). Avec ce système et quelques lignes de code, je suis capable d’écrire un identifiant sur le pavé (pourri) de free.

Saisie automatique de l'identifiant sur le site de free mobile

Saisie automatique de l’identifiant sur le site de free mobile

Vous pouvez voir le code source sur github. Le script écrit 1337 après avoir reconnu les caractères. Pour tester, vous pouvez également l’installer directement en cliquant sur ce lien (si vous avez greasemonkey).

Free, par pitié, revenez dans les clous

Le dernier billet sur le sujet montrait à quel point ce genre de pavé numérique pourrissait la vie de l’utilisateur. Maintenant qu’on sait à quoi ce pavé sert, on a aussi montré que cette «protection» pouvait facilement être contournée.

J’espère que Free réagira, mais cette fois‐ci de la meilleure des manières : revenez à une interface standard, et publiez votre application officielle sur l’App store et l’Android Market. J’ajoute également une dernière chose : proposez une version mobile de votre espace abonné.

Si free ne bouge pas, il est possible que je fasse évoluer le script greasemonkey pour remettre un champ dans lequel le navigateur pourra renseigner l’identifiant sauvegardé. Puis le script pourra traduire cet identifiant en cliquant sur les bons boutons. Ça peut être fun de s’appuyer sur la sauvegarde des mots de passe native de Firefox.

Commentaires

9 Comments sur « Pavé numérique de free mobile : hack »

  1. Fulcanelli dit :

    La banque postale utilise le même principe pour consulter tes comptes bancaires.

    Intéressant

    Merci

  2. Ghusse dit :

    Comme je l’indiquais dans l’article précédent, les banques l’utilisent mais c’est pour saisir le mot de passe (secret, mais choisi par l’utilisateur), pas l’identifiant.

    Dans le cas d’une banque, avec saisie «sécurisée» du mot de passe, je le conçois. Mais free mobile ? Pour l’identifiant ?

  3. Alain_55 dit :

    Bien vu mais n’eut il pas été préférable de ne pas les obliger à modifier ? Rien ne les empêche dorénavant de changer les images et pour autant ne pas changer le système ?

  4. Ghusse dit :

    C’était un «proof of concept» : en l’état, c’est super facile de détecter qui est qui. Après, c’est à eux de voir.

    Déjà, je ne suis pas certain qu’ils lisent cet article, ensuite je ne fais que montrer que c’est inefficace mais ça l’était avant cet article !

    S’ils veulent garder le même système, il faudrait au moins avoir des chiffres avec des polices aléatoires positionnés de manière aléatoire dans leur image. Et encore, ça éviterait uniquement les contournements les plus simples.

    Pour que ça soit réellement efficace, il faudrait que chaque chiffre soit un captcha ! Totalement inutilisable !

  5. Gilles dit :

    Il existe un script Greasemonkey qui contourne ça, donc en effet c’est relativement simple.
    Même si ce script ne marche plus depuis la dernière mise à jour, c’est complètement crétin de brouiller l’identifiant et de laisser saisir le mot de passe en clair.

  6. Ghusse dit :

    @Gilles: De quel script Greasemonkey parlez‐vous ?

  7. Raphaël dit :

    Bravo et merci pour le script de contournement du pavé numérique de Free. Très utile quand on est non‐voyant, leur machin vocal étant un cadeau empoisonné.

    Encore bravo ! Encore plus intéressant d’autant qu’on a l’explication de la démarche qui a permis d’arriver au but, fallait y penser !

  8. Ghusse dit :

    Merci à vous, c’est toujours agréable de constater que ce qu’on écrit est utile, même 3 ans après !

  9. IMPOSSIBLE D ACCEDRE A MON COMPTE fREE MOBILE

Laisser un commentaire