CAPTCHA , a enciclopedia libre

CAPTCHA é o acrónimo de "Completely Automated Public Turing test to tell Computers and Humans Apart" (proba de Turing pública completamente automatizada para diferenciar entre computadoras e humanos), un test de desafío cognitivo desenvolvido na Universidade de Carnegie-Mellon.

Este CAPTCHA de "smwm" distorsiona a mensaxe para evitar a interpretación automática por unha computadora. No entanto, existen programas capaces de ler este tipo de CAPTCHA[1].

Nun CAPTCHA intervén unha computadora (un servidor) que lle pide a un usuario resolver un test. Como se supón que as computadoras non son capaces de resolver o CAPTCHA, calquera usuario que dea cunha solución correcta será presumiblemente humano. O termo inventárono no ano 2000 Luis von Ahn, Manuel Blum e Nicholas J. Hopper (todos eles da Universidade de Carnegie-Mellon), e John Langford, de IBM.

Un tipo habitual de CAPTCHA pídelle ao usuario que identifique as letras dunha imaxe distorsionada, á que ás veces se lle engade unha secuencia escurecida desas letras ou díxitos. Como neste caso, quen realiza a proba é un ser humano, en contraste co test de Turing que é realizado por unha computadora, ás veces chámaselle "test inverso de Turing".

A primeira discusión sobre os tests automatizados que diferencian seres humanos de computadoras, co obxectivo de controlar o acceso aos servizos da web, aparece nun manuscrito 1996 de Moni Naor do Instituto Weizmann de Ciencia, titulado "Verification of a human in the loop, or Identification via the Turing Test" (Verificación dun ser humano implicado, ou Identificación a través do test de Turing).

Este CAPTCHA moderno mellora tentando crear un fondo distorsionado, cun alto nivel de torsión do texto, este CAPTCHA céntrase en facer a segmentación e dificulta engadindo unha liña angular

Os CAPTCHA primitivos parece que foron desenvolvidos en 1997, por Andrei Broder e o seu equipo, para o sitio web de procura AltaVista, co fin de impedir que os bots engadisen URL á súa Ferramenta de Procura. Tendando facer as súas imaxes resistentes ao ataque do OCR (recoñecemento óptico de caracteres), o equipo ollou o manual do escáner, onde obtivo recomendacións para mellorar os resultados do OCR (tipografías similares, fondos lisos etc.). En 2000, von Ahn e Blum desenvolveron e publicaron a noción dun CAPTCHA que incluíse todo o programa que puidera distinguir seres humanos de computadoras. Inventaron múltiples exemplos, incluíndo o primeiro CAPTCHA que foi usado en Yahoo.

Actualmente, os creadores de CAPTCHA recomendan o reCAPTCHA [2].

Aplicacións

editar

Os CAPTCHA utilízanse para impedir que os programas executen automaticamente accións que degraden a calidade do servizo dun sistema dado. Ademais, protexen os sistemas vulnerábeis ao correo lixo, tal como os servizos do AOL Webmail, do Gmail, do Hotmail, e Yahoo.

Tamén se utilizan activamente para limitar e controlar o acceso automatizado a blogs ou a foros, intentando facer promocións comerciais ou vandalizar. E tamén para limitar o uso automatizado dun servizo.

CAPTCHA é tamén o mecanismo que se emprega para impedir listas automatizadas en marcadores e en votacións de discusión pública. Un estudo de Arora et al. describiu as vulnerabilidades de varios foros que non usan este tipo de test (incluíndo a BBC).

Características

editar

Un sistema de CAPTCHA consta de medios automatizados capaces de xerar novos desafíos que as computadoras actuais non son quen de resolver, pero que a maioría de seres humanos si poden .[3] Un CAPTCHA non confía nunca en que o atacante non coñeza previamente o desafío. Por exemplo, unha caixa de verificación do tipo “Prema aquí se vostede é un bot” pode servir para distinguir entre seres humanos e computadores, pero non é un CAPTCHA pois un atacante non precisa esforzarse para quebrar ese formulario específico. Para ser un CAPTCHA, o sistema debe xerar automaticamente novos desafíos que requiren técnicas de intelixencia artificial no seu proceso de resolución.

Na práctica, o algoritmo usado para crear o CAPTCHA non precisa ser público, senón que pode estar protexido por unha patente. Aínda que a publicación poida axudar a demostrar que a resolución require resolver un problema difícil no campo da intelixencia artificial, reter deliberadamente o algoritmo pode aumentar a integridade dun xogo limitado dos sistemas (ver a seguranza por medio do escurecemento). Quebrar un CAPTCHA require xeralmente un esforzo específico ata o punto de tornar que non compense o beneficio acadado polo desvío automatizado comparado co esforzo requirido para acadar o acceso.

Accesibilidade

editar

Os CAPTCHA baseados en lectura de texto —ou outras tarefas de percepción visual— impiden que un usuario cego ou con restricións na visión acceda ao recurso protexido. Ademais, crea barreiras para un número grande de persoas con problemas de aprendizaxe que inclúan a interpretación de texto.

Un CAPTCHA visual impide o acceso a usuarios cegos, e pode crearlle tamén dificultades a persoas daltónicas. Por esta razón, algunhas implementacións permiten optar por un CAPTCHA de son[4].

Engadirlle un CAPTCHA a unha aplicación establece un equilibrio entre a facilitarlles o uso aos utilizadores lexítimos e crear desafíos para os non lexítimos.

Tentativas en CAPTCHA accesíbel

editar

Houbo varias tentativas de crear CAPTCHA máis accesíbeis. Estes adoitan incorporar Javascript[5], preguntas matemáticas (“canto é 1+1?”), ou “preguntas de sentido común” (“De que cor é o ceo?"). Estas tentativas violan un ou ambos os principios de creación de CAPTCHA, posto que, ou ben non se poden xerar automaticamente, ou ben poden ser resoltos facilmente, dado o estado da intelixencia artificial.

Saltando o CAPTCHA

editar

Hai algunhas aproximacións que estudan como derrotar os CAPTCHA: usando o traballo humano para recoñecelos, explorando erros na implantación que lle permitan ao atacante evitar completamente o CAPTCHA, e finalmente improvisando un software de recoñecemento de caracteres.

Traballo humano

editar

CAPTCHA é vulnerábel a un ataque que use seres humanos na resolución dos enigmas. De acordo cunha estimación, un operador podería facilmente resolver centos deles cada hora. Se os seres humanos fosen empregados que cobran un salario mínimo, isto non se consideraría viábel[6],mais servizos como Amazon Mechanical Turk tiveron éxito.

Outra variante é copiar as imaxes de CAPTCHA e usalas como CAPTCHA nun lugar de elevado tráfico, que estea baixo o control do atacante. Con tráfico suficiente, o atacante pode conseguir unha solución ao enigma do CAPTCHA.[7]

Execución insegura

editar

As fallas de proxecto nun CAPTCHA poden permitir burlar unha medida de seguranza, ou facer máis doado un ataque OCR.

  • Os sistemas de protección dalgúns CAPTCHA poden saltarse sen usar o OCR, simplemente reutilizando a identificación dunha imaxe coñecida do CAPTCHA. Correctamente proxectado, un CAPTCHA non permite tentativas múltiplas de solución[8]. Isto impide reutilizar unha solución correcta ou facer unha segunda suposición despois dunha tentativa incorrecta do OCR.
  • Usar un sistema de criptografía moi simple e con poucas combinacións.
  • Usar soamente un pequeno conxunto fixo de imaxes. Finalmente, cando nun período de tempo se levasen recollidas bastantes solucións de imaxe, o CAPTCHA pode quebrarse simplemente ollando enriba das solucións nunha táboa.

Recoñecemento de caracteres por computador

editar

Aínda que os CAPTCHA visuais se deseñasen para vencer o software padrón do OCR deseñado para a exploración do orixinal, algúns proxectos de investigación demostraron que é posíbel derrotar moitos CAPTCHA con programas que se axustan especificamente a unha tipoloxía particular. Para CAPTCHA con letras distorsionadas, a aproximación segue normalmente as seguintes fases:

  1. Extracción da imaxe da páxina web.
  2. Eliminación da desorde do fondo, por exemplo con filtros de cor e detección de liñas finas.
  3. Segmentación, isto é rachar a imaxe nos segmentos que conteñen unha única letra.
  4. Identificación da letra que contén cada segmento.

A maioría dos CAPTCHA presentes na web traballan como unha única liña de imaxe. Algunhas execucións rachan a imaxe en múltiples pezas ou codifican as partes da imaxe no código do HTML, facendo que un proceso automático lea e execute o OCR na páxina.

A eliminación da desorde adoita ser doada de facer automaticamente. En 2005, mostrouse tamén que os algoritmos de redes neurais teñen unha taxa de erro máis baixa que os seres humanos na identificación do glifo[9]. A única parte onde os seres humanos lles gañan aínda aos computadores é na segmentación. Se a desorde do fondo consiste en formas similares, e as letras estivesen conectadas por esta desorde, a segmentación tórnase case imposíbel co software actual. Polo tanto, un CAPTCHA eficaz debe poñer o foco na segmentación.

Recoñecemento de imaxes fronte ao recoñecemento de textos

editar

Coa demostración (a través das publicacións da investigación) de que algúns CAPTCHA son vulnerábeis a OCR e ataques, algúns estudosos propuxeron alternativas ao recoñecemento de caracteres: no formulario de recoñecemento CAPTCHA os usuarios identificarían obxectos simples dentro de imaxes presentadas. O argumento é que o recoñecemento do obxecto considérase tipicamente un problema máis complexo que o recoñecemento de caracteres, debido ao dominio limitado dos caracteres e dos díxitos nos alfabetos da maioría de linguas naturais.

Beneficios colaterais

editar

Algúns dos inventores orixinais do sistema de CAPTCHA implementaron medios para medir e utilizar o esforzo e tempo que invisten as persoas que están respondendo aos desafíos de CAPTCHA, tendo en conta a interacción con elementos "resolvidos” e “non resolvidos”, incluíndo imaxes que non foron recoñecidas con éxito a través do OCR.

Os mantedores do CAPTCHA estiman que os sistemas existentes de CAPTCHA representan aproximadamente 150.000 horas de traballo por día, que podería ser batido a través da revisión dos sistemas. Isto representa aproximadamente 75 anos de traballo.

  1. "Breaking a Visual CAPTCHA". www.cs.sfu.ca. Consultado o 2019-02-28. 
  2. "CAPTCHA: Telling Humans and Computers Apart Automatically". Arquivado dende o orixinal o 17 de febreiro de 2008. Consultado o 09 de febreiro de 2008. 
  3. "CAPTCHA: Telling Humans and Computers Apart Automatically". www.webcitation.org. Arquivado dende o orixinal o 04 de abril de 2012. Consultado o 2019-02-04. 
  4. O artigo proposta para un Captcha accesíbel Arquivado 25 de febreiro de 2008 en Wayback Machine. describe como o test de son e visual pode combinarse para aumentar a accesibilidade.
  5. http://www.protectwebform.com/smartcaptcha
  6. "Hire People To Solve CAPTCHA Challenges". Petmaíl Design. 2005-07-21. Consultado o 2006-08-22. 
  7. Doctorow, Cory (2004-01-27). "Solving and creating CAPTCHAs with free porn". Boing Boing. Arquivado dende o orixinal o 09 de febreiro de 2006. Consultado o 2006-08-22. 
  8. "Breaking CAPTCHAs Without Using OCR". Howard Yeend (pureMango.co.uk). 2005. Arquivado dende o orixinal o 25 de xuño de 2017. Consultado o 2006-08-22. 
  9. Kumar Chellapilla, Kevin Larson, Patrice Simard, Mary Cz (2005). Computers beat Humans at Single Character Recognition in Reading based Human Interaction Proofs (HIPs) (PDF). Microsoft Research. Arquivado dende o orixinal (PDF) o 06 de marzo de 2008. Consultado o 2006-08-02. 

Véxase tamén

editar

Ligazóns externas

editar