Les captchas en proof of work
Je reposte ici mes slides et un résumé d'une présentation que j'ai pu faire chez Axopen, dans le cadre de nos dispostifs de veille techno.
La grande idée derrière les captchas en proof of work est de s'absoudre des besoins en résolution manuelle (avec une augmentation de la complexité qui va être limitée par les capacités humaines), et en résolution automatiques (qui consomment des volumets de données indécents).
La présentation couvre les grandes bases de comment marchent des preuves de travail (appelées proof of work), et comment on peut s'en servir pour créer des captchas.
Les Slides
Un résumé
Les captchas sont un type de test de Turing : ils visent à déterminer si un système qui soumet une ressource est humain ou non. Pour déterminer ceci, des tests « manuels » sont utilisés depuis 20 ans. Ils subissent deux problèmes majeurs : il y a un besoin d’augmentation constante de la difficulté pour pouvoir garder des tests qui déterminent effectivement si la personne est humaine (exemple avec l’OCR) et ces tests sont excluants envers les personnes présentant un handicap, notamment les malvoyants.
En réponse à cela, des développeurs ont mis en place des solutions se basant sur des algorithmes de machine learning afin de déterminer si les personnes sont effectivement humaines. Ces dispositifs posent problème à cause du volume de données collectées et de la nécessité que ces données soient exploitées par des grands groupes (possiblement extra-européens).
Pour répondre à ces deux problématiques, un nouveau dispositif qui ne collecte pas de données, ni ne demande d’actions humaines a été mis en place : un système à base de proof of works.
L’idée générale des proofs of works ou preuves de travail, sont qu’il existe une classe de problèmes difficiles à résoudre, mais simples à vérifier (par exemple une recherche d’une chaine de caractères telle que son hash valide une certaine propriété, comme commencer par 5 zéros).
Ainsi, il est possible d’utiliser cette méthode pour fournir des captchas, l’idée étant que soumettre un formulaire prendrait maintenant l’équivalent de quelques secondes de temps processeur, ce qui n’est pas gênant pour un utilisateur seul sur son poste, mais qui couterait bien trop cher à des attaquants qui envoient normalement des milliers de requêtes par seconde.
Cette technologie est de plus en plus exploitée par différents sites avec un fort trafic.