Question

CAPTCHAs demander aux utilisateurs de lire le texte déformé sont très bien pour les personnes voyantes, mais une terrible barrière pour ceux qui sont aveugles ou qui ont d'autres handicaps. alternatives audio sont parfois disponibles mais ne contribuent pas à ceux qui sont à la fois sourds et aveugles et peuvent être difficiles à utiliser avec un lecteur d'écran (qui est déjà en train de lire à vous dire).

Il existe deux solutions qui utilisent les humains pour résoudre le CAPTCHA au nom de l'utilisateur, comme WebVisium et Solona , mais ceux-ci dépendent de la disponibilité des opérateurs bénévoles (par exemple, semble-t-Solona a juste un volontaire, donc vous devez espérer qu'il est éveillé quand vous voulez de l'aide).

Il me semble que le volume des solutions CAPTCHA nécessaires par des personnes aveugles est très faible - Je suppose que moins de quelques centaines par jour dans un pays peuplé comme le Royaume-Uni. Cela signifie que, contrairement aux mauvaises personnes qui veulent effectuer une action plusieurs fois dans une courte période, un service d'assistance CAPTCHA pour les personnes aveugles pouvait se permettre de consacrer des ressources de calcul considérables - par exemple, un nuage d'ordinateurs dans Amazon EC2 - pour identifier le texte présenté.

Ma question est la suivante: en supposant que vous ne se soucient pas de la vitesse beaucoup, et vous avez beaucoup d'ordinateurs disponibles, sont là des algorithmes qui vous permettent de résoudre les captchas texte-distorsion qui sont communes aujourd'hui, tels que ceux utilisés par < a href = "http://recaptcha.net/" rel = "noreferrer"> reCaptcha ? Ou sont ces problèmes vraiment difficiles à résoudre, même avec beaucoup de ressources et de temps?

Quelques notes:

  1. A ce moment, ma question est seulement théorique, mais bien un tel service devrait contrôler soigneusement l'accès à garder spammeurs. Peut-être que les aveugles enregistrés seraient autorisés à l'utiliser.

  2. Je suis conscient que un vieux Yahoo CAPTCHA a été cassé quelques années à l'aide il y a un algorithme qui fonctionne en quelques secondes sur un seul ordinateur. Je demande si CAPTCHAs modernes peuvent être brisées, peut-être plus lentement et avec plus de ressources.

  3. Je suis conscient que certains nouveaux types de CAPTCHA apparaissent, qui demandent aux utilisateurs de identifier les chatons ou orienter une image . Ce ne sont pas encore très répandu, donc je demande simplement sur le texte de distorsion pour l'instant.

Était-ce utile?

La solution

Au fond de résoudre un CAPTCHA de distorsion de texte se compose de trois étapes individuelles:

  1. Découvrez où les parties intéressantes sont
  2. Segment le texte en lettres individuelles
  3. Reconnaître les lettres

Le seul problème qui reste qui est assez difficile pour les ordinateurs est le second. Le premier est généralement pas très difficile, à moins que vous arrive de tomber par hasard sur la CAPTCHA de enfer. Et le troisième se résout par des ordinateurs avec un taux de réussite beaucoup mieux que par les humains.

Un site intéressant pour apprendre comment captchas sont brisés est celui par le OCR L'équipe de recherche .

Autres conseils

CAPTCHA a été créé pour éviter des machines de détecter les mots. Il est destiné à être lu par les humains seulement. Rendre plus lisible pour les personnes aveugles / sourds ajoute un risque de machines pouvoir les comprendre à nouveau, annulant ainsi leur effet.

spammers avons trouvé un moyen très efficace pour briser le CAPTCHA plus populaire de bien. Ils embauchent des travailleurs bon marché juste pour les lire, en échange de quelques centimes par compte de travail. En conséquence, il y a une petite industrie autour de briser CAPTCHA pour créer des millions de comptes qui peuvent ensuite être utilisés pour envoyer plus de spam. Par rapport au montant gagné par les spammeurs, les coûts est presque. Une solution similaire pourrait être utilisé par des personnes aveugles / sourds, qui enverrait l'image CAPTCHA à certains laboureur pas cher en Chine ou ailleurs, où ils répondent avec les bons mots et la personne aveugle / sourds sera en mesure de procéder. Malheureusement, les aveugles ont seulement besoin de ce service quelques fois alors que les spammeurs ont besoin d'un flux continu, donc les ouvriers préfèrent travailler pour les spammeurs à la place. (Le salaire est mieux.) Pourtant, la meilleure solution serait d'envoyer le CAPTCHA à certains amis, laissez-les lire et / ou décryptent et retournent la réponse.

Le style reCAPTCHA lit également les mots. Une application simple reconnaissance vocale pourrait être en mesure de reconnaître ce qui est dit, bien que la reconnaissance de la parole a encore besoin de plus d'optimisations. Pourtant, vous pouvez travailler à partir de cet angle, obtenir l'application d'écouter l'octet sonore à la place.

Quand il est possible de briser CAPTCHA de, ils vont tout simplement penser à de meilleures méthodes comme CAPTCHA. techniques OCR améliorent encore donc plus de travail sera fait pour rendre plus difficile de CAPTCHA. Jusqu'à ce que l'OCR est devenu aussi bon que l'œil humain à reconnaître les mots ...

Un algorithme peut être créé, bien que lente. Avec 26 minuscules et 26 lettres majuscules et 10 chiffres, il ne devrait pas être trop difficile de trouver un algorithme. Avec les polices Serif et Sans-serif, le nombre de combinaisons devrait être doublé, cependant. Pourtant, si vous essayez de courbe toutes les lettres de la même manière que la lettre dans le CAPTCHA, vous devriez être en mesure de détecter une lettre qui est couverte par la lettre CAPTCHA le plus. Et ce serait le candidat le plus probable. vous encore besoin pour effacer les lignes, la saleté et d'autres objets de l'image que l'œil humain a moins de mal à reconnaître qu'un ordinateur. Vous auriez besoin les étapes suivantes:

  1. Nettoyer l'image.
  2. Détecter les emplacements des lettres.
  3. Pour chaque lettre 3a. Déterminer la courbe de la lettre en cochant la gauche. 3b. Faites une superposition de chaque lettre / chiffre possible de trouver celui qui couvre le mieux. (C'est la lettre la plus probable.)
  4. Une fois que vous avez trouvé le mot, faire un chèque de dictionnaire pour vous assurer qu'il est un vrai mot. (À moins que le CAPTCHA ne pas utiliser de vrais mots.)

Même si elles peuvent tordre les lettres dans le CAPTCHA de, il devrait être possible de détecter la rotation de torsion qui ont utilisé simplement en regardant sur le côté gauche de chaque lettre, puis d'essayer d'appliquer la même courbe à chaque lettre. (52 combinaisons, plus de 10 chiffres, si les chiffres sont également utilisés.) En fait, vous auriez essayez de mettre une boîte autour de chaque lettre, vérifiez quelle lettre contiendra le moins d'espace blanc. C'est la lettre la plus probable.

La principale raison pour laquelle ce n'est pas souvent utilisé pour OCR est essentiellement le besoin de vitesse. Étape 3a / b a tendance à être lente, surtout si vous devez prendre le style de police en considération.


Faire cette réponse, mais plus en réponse à l'un des commentaires:

Il y a plusieurs façons de nettoyer une image. Vous auriez besoin d'un certain filtrage des couleurs, réduction du bruit et un algorithme qui est capable de reconnaître les lignes parasitées par une image. DEFCON diaporama que vous avez dit à montre quelques t simplesechniques pour filtrer certains loin du bruit. Il montre qu'un outil de traitement d'image de base peut déjà faire une image beaucoup plus claire pour une machine à lire. Un flou simple va nettoyer des points aléatoires et des lignes fines tandis que les filtres de couleur filtrerais loin les couleurs bruyantes. Une prochaine étape serait d'essayer de mettre une boîte autour de chaque lettre dans le CAPTCHA, en espérant que le système est capable de reconnaître leur emplacement. Je ne sais pas d'algorithmes pratiques pour cela, mais il devrait y avoir des moyens de les reconnaître. Il y a un logiciel qui peut créer des images vectorielles de bitmaps, donc il devrait y avoir un logiciel qui est en mesure de calculer une boîte autour d'une lettre. Il est probable que cette boîte ne sera pas avoir des angles rectangulaires, ainsi que vous auriez à déformer les 52 lettres pour correspondre à la même boîte. Italique ou gras ne devrait pas faire beaucoup de différence puisque ces styles ne sont que des distorsions supplémentaires. Serif ou Sans-serif fait une différence, cependant. Les polices Serif ont tendance à avoir quelques pointes et ornements. Heureusement, il existe des algorithmes qui peuvent transformer une boîte à une autre figure avec quatre coins.

L'application régulière OCR supposent que les lettres sont pour la plupart droites et vont simplement vérifier quelques points chauds pour trouver un match. Ainsi, ils obtiennent parfois mal à cause du bruit. Pour casser CAPTCHA, vous auriez besoin d'un match plus sensible, de préférence « XOR-ing » l'image de la lettre CAPTCHA avec une image de l'un des 52 lettres, puis compter le nombre de points noirs et blancs pour calculer le rapport. Supposant blanc = 1 et noir = 0, le résultat de la XOR devrait être presque noir pour la meilleure correspondance.

Je pense que plusieurs spammeurs ont déjà trouvé quelques algorithmes utiles pour casser CAPTCHA de mais pour eux, en gardant ces algorithmes un secret les empêche juste dans les affaires.


Un autre commentaire, plus de texte. : -)

Segmentation serait un problème, mais il est impossible de résoudre. Il est juste extrêmement complexe. Mais quand vous avez nettoyé l'image, il devrait être possible de calculer deux lignes. Une ligne qui touche le fond de chaque lettre et une deuxième ligne qui touche le haut. Cependant, bon de CAPTCHA ne sera pas mis des lettres sur les mêmes lignes plus, mais ces pas si bons pourraient être craqué en suivant simplement les lignes. (Guess reCAPTCHA met des lettres entre deux lignes!) Avec deux lignes, vous connaissez la première lettre commencera à gauche, donc vous pouvez essayer superposant il les 52 possibilités jusqu'à ce que vous avez trouvé un match. Lorsque vous avez trouvé un, déplacer vers la droite pour le second. Et plus loin jusqu'à ce que vous avez lu toutes les lettres. Avec deux lignes pour vous guider, vous n'avez pas besoin d'une boîte complète.

Lettres ont tendance à utiliser un rapport constant entre la largeur et la hauteur. Avec deux lignes, vous pouvez calculer la hauteur de la lettre complète et donc obtenir une bonne estimation de la largeur correspondant.

Pourtant, l'algorithme de travail correct pour calculer tout cela est un peu trop pour mes faibles compétences en mathématiques. Vous auriez besoin d'un mathématicien expert pour casser cet algorithme.

Ma réponse à votre question « ces problèmes sont vraiment difficiles à résoudre, même avec beaucoup de ressources et de temps? » est de souligner que c'est la raison pour que le travail captchas.

Ma compréhension est que le but d'un CAPTCHA est de prouver que vous êtes humain plutôt qu'un spam bot. ReCAPTCHA sont un roman prendre sur ce thème, car ils prennent des images qui représentent le texte qui ne peut pas être résolu par les moteurs OCR (reconnaissance optique de caractères). La différence entre une personne et une machine dans ce cas est que l'algorithme spécialisé (s) a tenté d'interpréter cette image et a échoué alors qu'une personne « normale » a la capacité intrinsèque d'interpréter le texte d'une manière cohérente humaine. Cela étant dit, dans l'avenir, nous espérons que quelqu'un va venir avec de meilleurs moteurs OCR pour qu'il y a besoin d'une intervention moins humaine à numériser les informations des mondes. Nous espérons que quelqu'un va trouver une solution traitable à ce problème particulier.

De votre point de vue d'essayer de rendre plus accessible CAPTCHAs aux personnes aveugles - qui doivent encore prouver qu'ils sont des gens plutôt que les robots collecteurs de mails - la communauté a besoin de prendre conscience de ce problème et trouver un moyen de identifier les personnes d'une manière centrée moins de vision.

L'introduction de CAPTCHA a certainement fait le web moins accessible aux malvoyants, et je vous en accord citant comme un problème important qui mérite plus d'attention et de préoccupation. Cependant, alors que CAPTCHA peut être et a été contournée de manière incompatible sur les sites Web populaires, je ne pense pas que ce soit une solution viable à long terme pour ceux qui en ont besoin. En effet, le jour où les CAPTCHA variantes actuellement présent sur des sites comme Facebook, Google, MySpace, etc. peut être fiable et cohérente est brisée le jour où ils deviendront obsolètes et abandonnés pour soit plus fortes variantes du même ou d'une solution entièrement nouvelle (comme vous implicites, les chats distinctifs de chiens en images a été une tendance alternative populaire).

En ce qui concerne l'accessibilité en ligne, ce que je pense les personnes handicapées ont le plus besoin en ce moment est la défense. Plus les gens contacter les sociétés de logiciels, des groupes open source, et les organismes de normalisation et parler de ce besoin, la plus grande sensibilisation sera soulevée et qui (je l'espère) conduire à plus d'action au nom de la communauté de développement. En fin de compte, ce serait génial de voir des sites comme Google ou Facebook qui offrent des méthodes alternatives d'accès seulement pour leurs utilisateurs ayant une déficience visuelle.

Idéalisme à part, je pense qu'il est productif de poursuivre d'autres avenues comme vous l'avez mentionné avec le réseau de bénévoles CAPTCHA, peut-être même le développement de quelque chose comme OpenID pour les personnes handicapées concernées comme un laissez-passer de la validation de la forme universelle.

En ce qui concerne l'aspect technique de votre question, je ne pense pas la disponibilité de la puissance de traitement supplémentaire seul vous permettra de rompre de manière fiable et cohérente CAPTCHA. Il y a beaucoup d'argent dans le spam, et vous pouvez être sûr que les entreprises SEO ombragées et ont spammers ressemblent un grand nombre de serveurs à leur disposition. Comme Johannes Rössel mentionné, si vous voulez en savoir plus sur la façon dont cela se fait et où la difficulté technique réside, la recherche de reconnaissance optique de caractères (OCR) et regardez la grande variété de numéro / lettre désalignement qui se produit sur les sites de trafic élevé.

Cette question liée SO a un certain nombre de bonnes idées, y compris un parler DEFCON qui prétend à l'aide de multiples OCRs et les pauses de vote beaucoup captchas simples. Ceci suggère une méthode de solution candidate: distribuer le problème sur plusieurs serveurs, chacun exécute un ou plusieurs outils OCR en parallèle, recueillir les résultats, et prendre la réponse la plus populaire. Commentaires sont les bienvenus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top