Comment taper son code bancaire ?

Au guichet ou à la caisse, il faut protéger son tapage de code des yeux indiscrets. Mais à force de se cacher, n'attirons nous pas plutôt les esprits ? On va essayer une autre technique... totalement naïve.

Pour supprimer ce réflexe qui force à presser uniquement les bonnes touches, ne serait-il pas plus intéressant de taper le code sans se cacher ? En simulant l'appui sur de très nombreuses touches, la personne au loin ne pourra pas détecter aisément (sauf si vous êtes mauvais) les touches que vous avez réellement enfoncées.

Pour confirmer ou infirmer cette hypothèse, faisons un test informatique. En effet, notre hypothèse comporte une faille : si on appuie sur d'autres touches, le code reste néanmoins saisi dans le même ordre. Par conséquent, comme le code ne comporte que 4 chiffres, il suffit de tester les 10.000 combinaisons à l'aide d'une expression régulière à base de chiffres :

/^[0-9]A[0-9]B[0-9]C[0-9]D[0-9]*$/ où ABCD représente le code testé itérativement.

L'histoire suivante est totalement fictive et issue d'un imaginaire sub-conscient.

«En allant au supermarché, j'ai observé à plusieurs reprises les mouvements de super-mamie. Elle ne voit plus très bien, donc forcément, on a l'impression qu'elle appuie sur douze touches à la fois. Si on effectue un relevé de ses mouvements, on obtient :

  • 052114899048
  • 102518429849
  • 524981169298
  • 234561979782

Grâce au logiciel suivant codé en PHP, 6 combinaisons sont possibles et c'est déjà pas mal : 2198, 2199, 2498, 2499, 5198, 5199. La vraie réponse mystérieuse est en gras mais pour lui éviter problème, il faudra prévenir cette dame et lui prodiguer de vertueux conseils.»

<?php
    $Data = array('052114899048', '102518429849', '524981169298', '234561979782');
    for ($m=0 ; $m<10 ; $m++)
        for ($n=0 ; $n<10 ; $n++)
            for ($o=0 ; $o<10 ; $o++)
                for ($p=0 ; $p<10 ; $p++)
                {
                    $Match = true;
                    foreach ($Data as $Entry)
                        $Match = $Match && preg_match('/^[0-9]*'.$m.'[0-9]*'.$n.'[0-9]*'.$o.'[0-9]*'.$p.'[0-9]*$/', $Entry);
                    if ($Match)
                        echo "<p>$m$n$o$p</p>";
                }
?>

Plus les échantillons relevés sont longs, plus il faut d'observations. La manière de taper le faux-code influence les résultats. Par exemple, nos résultats montrent clairement qu'il y a un petit doute entre 98 et 99. Bien sûr, une erreur de mesure fausse totalement la détection puisque le vrai code est censé valider --toutes-- les mesures.

Conclusion: surtout si le bip de la machine nous trahit, coder à l'air libre n'est donc absolument pas prudent. Il faut se cacher pour augmenter les chances d'erreurs de l'observation, et donc diminuer les chances de détection.

Posté par admin le 18 mars 2009 à 20:11 - Langage/Société
Texte soumis à la licence du site, sauf mention contraire
Rechercher plus d'informations

 

Commentaires

Evaluer l'article : * * * *

Ajouter un commentaire

Pseudo:
Site web: http://...
Message:
Avez-vous trouvé l'information que vous cherchiez ? Votre retour d'expérience sur le site nous intéresse.