En réponse à la menace hacker qui crée habituellement des robots pour abuser des systèmes, naît l’usage du CAPTCHA pour la vérification humaine, aujourd’hui populairement utilisé à travers Internet. Dans cet article, nos Ingénieurs ZARZA discutent de ce sujet intéressant et partagent des informations concrètes sur l’usage correct et les mesures alternatives recommandables.
Qu’est-ce qu’un CAPTCHA et à quoi sert-il ?
Lorsque nous nous inscrivons sur un site web ou remplissons un formulaire, nous rencontrons un texte déformé, une figure dont on nous demande d’écrire le nom, ou plutôt d’en transcrire le contenu… À ce moment-là, nous sommes face à un CAPTCHA, dont la finalité est de savoir si celui qui remplit le formulaire est un programme informatique (un robot programmé) ou un être humain.
CAPTCHA : Completely Automated Public Turing test to tell Computers and Humans Apart
Le test de Turing entièrement automatique et public pour différencier les ordinateurs des humains, voilà ce que nous entendons par CAPTCHA, et il ressemble essentiellement à ceci :

Comme nous pouvons le voir, les lettres subissent une transformation conçue pour compliquer le discernement des lettres par les bots automatiques, tout en permettant à un être humain d’identifier la séquence, qui serait ici « smwm », bien que les statistiques montrent que ce n’est pas si simple pour tout le monde.
En plus de la distorsion des lettres, les CAPTCHA peuvent inclure des lignes, des dégradés et des éléments distracteurs qui augmentent ainsi leur niveau de complexité.
Cependant, les CAPTCHA les plus modernes incluent l’option d’écouter les lettres, et d’essayer un nouveau CAPTCHA au cas où nous ne comprendrions pas son contenu. Par exemple, l’un des plus remarquables est celui offert gratuitement par reCAPTCHA (actuellement propriété de Google), où sont en outre mélangés 2 mots ou plus, comme nous le voyons dans l’exemple ci-dessous :

Les CAPTCHA continueront d’augmenter en complexité et deviendront de plus en plus modernes ; cependant, nous verrons toujours la fine ligne entre ce qui est compréhensible pour un humain, et non pour un robot.
Le CAPTCHA est-il totalement infranchissable ? Non, il ne l’est pas.
Actuellement, aussi bien ceux qui pratiquent le Back Hat Hacking que le White Hat Hacking savent qu’il existe des outils de reconnaissance visuelle, promus sur Internet, et que même certains services payants, dans et hors du Deep Web, offrent une connexion expéditive pour déchiffrer les CAPTCHA, et ainsi compromettre les systèmes et les ralentir.
C’est pour cette raison qu’en développant votre logiciel, ou en engageant quelqu’un pour le développement, vous devez considérer que le CAPTCHA n’est qu’une mesure parmi d’autres, et ne doit à aucun moment être le seul contrôle réalisé pour protéger le système en question.
Quelques recommandations supplémentaires peuvent être, selon le schéma du système, les suivantes :
- Limiter le nombre de requêtes : Aussi bien par adresse IP que par pays, par période et par type de requête. Ainsi, même si l’attaquant parvient à déchiffrer le CAPTCHA, il se heurtera à d’autres limites physiquement impossibles pour des êtres humains.
- Vérifier le nombre d’erreurs : Bien souvent, les scripts utilisés pour déchiffrer les CAPTCHA envoient des matrices avec de multiples possibilités, qui peuvent conduire à un nombre d’erreurs supérieur à ce qu’un utilisateur réessaierait habituellement. Testez et demandez à votre développeur (ou à vous-même si vous êtes programmeur) que ces paramètres puissent être ajustés le moment venu, selon les statistiques d’usage de vos propres utilisateurs.
- Vérifiez les services par utilisateurs : Si le schéma le permet, exigez la validation des identifiants en même temps que la vérification du CAPTCHA ; enregistrez par ailleurs l’utilisation, et localisez ainsi facilement les utilisateurs abusifs, qui pourront être exclus manuellement et automatiquement.
Bien souvent, ce type d’éléments peut s’avérer frustrant pour les utilisateurs réels ; vous pourriez donc aussi envisager, au lieu de bloquer totalement les requêtes, d’inclure un temps d’attente, ne serait-ce qu’en secondes, qui oblige l’utilisateur à patienter entre chaque requête et, une fois celle-ci réussie, à attendre pour recevoir les résultats, le tout basé sur son comportement et sur les politiques définies pour chaque catégorie d’utilisateurs. Vous ne devriez pas appliquer les mêmes paramètres aux utilisateurs enregistrés connus qu’aux visiteurs ou aux utilisateurs récemment inscrits.
Pour les Ingénieurs de ZARZA, c’est et ce sera toujours un plaisir de vous aider dans tous vos besoins de développement logiciel, et nous souhaitons vous rappeler que notre spécialité est de satisfaire vos besoins, de vous garder protégé, et d’élever votre performance et celle de votre présence sur Internet.



laissez votre note