Captcha mutualisé

Bonjour,
d’après David Libeau (@DavidLibeau): "🔴 La @CNIL me confirme que l'utilisation du système anti-robot "reCAPTCHA" de #Google doit être soumis au consentement." | 42l - nitter, les google captcha sont d’un usage problématique.

Pourtant, de nombreux sites souhaitent faire appel à ce mécanisme, et ont des difficultés à trouver un système utilisable.

Je me demandais si un CHATONS proposait un tel service, mutualisé ou pas.
Merci bien,

  • Fil.
1 « J'aime »

@tedomum a développé son propre système de CAPTCHA pour son SSO Hiboo.
Le code est ici : hiboo/captcha · master · ACIDES / Hiboo / Hiboo · GitLab

Ça ressemble à ça :

C’est un CAPTCHA à l’ancienne avec des lettres donc il bloquera pas une attaque spécifique contre ce CAPTCHA précisément. Niveau accessibilité, c’est également problématique. Mais avant de développer sa propre solution, je crois me souvenir que Tedomum avait fait ses propres recherches et avait finir par conclure que le mieux était encore de développer leur solution.

Hiboo, leur SSO dont le captcha est extrait, fait parti de leur project ACIDES, qui a pour but de partager du logiciel, spécifiquement entre les CHATONS. Donc à voir avec eux, ils seront peut-être intéressés par avancer sur la question avec des gens extérieurs à leur orga :slight_smile:

1 « J'aime »

Bonjour !

Effectivement, dans notre effort SSO, mais aussi pour tenter de remplacer reCAPTCHA et consort, nous avons posé de nombreuses réflexions autour des CAPTCHA. Nous avons identifié deux sujets au coeur de la chose :

  1. Comment disposer de challenges intéressants, vérifiables, et pas trivialement contournables ?
  2. Comment héberger une plateforme de CAPTCHA mutualisée au minimum pour un hébergeur.

Nous avons actuellement pris un raccourci sur chacun de ces sujets - utiliser des challenges lettres/chiffres bateaux et contournables, utiliser des CAPTCHA uniquement sur notre SSO pour déjà limiter le spam à l’inscription - mais nous avions et devrions continuer de pousser la réflexion.

Les idées fondatrice de notre projet étaient très simples. D’abord pour l’hébergement, l’objectif est de pouvoir fournir du CAPTCHA en mode service, avec une API si possible au minimum comparable à reCAPTCHA, pour ne pas perdre trop de futurs utilisateurs (développeurs). Il faut évidemment intégrer au coeur du modèle le multi-homing de la chose, et donc que les bibliothèques clientes n’hardcodent pas les URL d’API cela va de soi. Surtout, il faut que ce soit extrêmement respectueux de la vie privée, et donc intégrable en ne faisant fuiter que le strict minimum, si possible même pas le referer du site qui appelle. Evidemment, aucune information personnelle ne doit être collectée, et le suivi d’un utilisateur - par cookies ou autre - doit être le plus anonymisé possible, et exclusivement aux fins de CAPTCHA.

Le second sujet est plus délicat, la génération des CAPTCHA eux-mêmes, avec une expérience de pensée toute bête qui mène à la conclusion : il est globalement impossible de fabriquer mécaniquement un CAPTCHA dont la solution est calculable par un humain, vérifiable par une machine mais pas calculable par une machine. Formellement cela nous amène dans les questions de calculabilité, mais l’intuition montre bien l’impossibilité. Reste à voir ce qui est possible, au delà du « mieux que rien » que représente l’existant.

Et là vient naturellement l’idée d’enlever une contrainte de l’équation. Peut-être que le challenge peut ne pas être vérifié par une machine, ou peut-être qu’il n’est pas généré par une machine. Google, dans reCAPTCHA, a choisi la combinaison des deux : ils ne génèrent pas eux-mêmes mais posent des questions fermées sur des données assez ouvertes (prises de photos de livres, de rues, etc.) ; et ils ne vérifient pas le résultat mais le confrontent aux réponses d’autres usagers.

Pour essayer de faire pareil, il faut des données suffisamment publiques pour puvoir les employer, suffisamment privées pour ne pas être embarquées dans le premier outil de contournement venu, sur lesquelles poser des questions fermées. On avait pensé à des fils du Fediverse, et autres réseaux fédérés où il existe de la donnée publique mais pas d’ensemble global de toutes les données, chaque instance ayant sa vue de la fédération. L’idée est partiellement développée ici : Evolution des CAPTCHA (#69) · Issues · ACIDES / Hiboo / Hiboo · GitLab.

Hiboo lui-même a la base de l’infrastructure pour faire du CAPTCHA, à coup de JWT dans le formulaire etc. Il a aussi la base de l’infrastructure pour imaginer faire du CAPTCHA mutualisé, quoiqu’il faille travailler la gestion du referer, l’API, etc. On n’a toutefois jamais attaqué le sujet des challenges eux-mêmes.

Mais pour être franc, en observant la tendance pour contourner du reCAPTCHA, je suis de moins en moins convaincu de notre approche très évoluée du problème puisque la réponse en face est très simple : si ce n’est plus calculable par une machine, alors on paie des humains quelques millièmes de centimes pour les résoudre (par exemple : https://anti-captcha.com/). On peut toujours imaginer utiliser une langue locale, et autres tricks pour repousser ce genre de service, mais je suis convaincu qu’on perdra face aux spammers si on s’acharne technologiquement. Aussi, chez TeDomum, on en est rendu à une approche limitante mais efficace : en plus du CAPTCHA trivial (qu’il faut améliorer niveau accessibilité cela-dit) qui éloigne les spammers des services peu rentables, on valide les inscriptions aux services les plus sensibles au spam, et ponctuellement quand quelqu’un s’engoufre dans une brèche, on ferme temporairement les inscriptions et l’on modère à la main.

4 « J'aime »

Quelques autres captcha libres :

Une autre info, la CNIL a publié une décision n° MED-2020-015 du 15 juillet 2020 mettant en demeure le ministère des solidarités et de la santé qui montre le manquement lié à l’usage de reCaptcha dans ce cadre.

1 « J'aime »

Très intéressant comme analyse et tentative de mise en place.

Je pense effectivement que cela dépends réellement de la notoriété du service et de ce que veulent faire les « spammeurs » ou autres.

A une certaine époque pas si lointaine mais pas si récente en info (2014 à 2018) où l’on avait mis un Captcha sur un site et un forum, qui n’était pas non plus un grand site, mais un peu fréquenté, et qui arrêtait pas de se faire spammer, j’avais finalement décidé de remplacer l’ensemble par un concept maison qui était à l’époque juste mettre des zones de formulaires masqué pour les personnes normales, mais visible pour les robots avec des noms explicitent. A chaque fois que les robots spam essayaient de remplir le formulaire ils remplissaient également les champs interdits et la publication n’était pas validé.

Mais cela fonctionne seulement à petite échelle dans tous les cas, c’est malheureusement un peu le jeu comme les les anti-pubs…

Même si quelque chose de totalement non répétitif est mis en place, accessible car c’est l’un des gros problèmes de toutes ces solutions, dans tous les cas si des humains sont payés pour les contourner, il n’y a probablement peu de parades mais cela peut dans tous les cas limiter les perturbations.

Vaste sujet où il faut savoir trouver le bon compromis entre l’énergie mise pour développer une solution pour éviter la nuisance et le gain apporté.