# Test de CAPTCHA

Captcha és l'acrònim de «Completely Automated Public Turing test to tell Computers and Humans Apart» (en anglès, "test de Turing públic i automàtic per a diferenciar a màquines d'humans").
Aquest és un test de desafiament i resposta que es fa servir en computació per a determinar quan l'usuari és un humà o no. El terme es va començar a fer servir l'any 2000 per Luis von Ahn, Manuel Blum i Nicholas J. Hopper de la Carnegie Mellon University, i John Langford d'IBM.
La prova típica consisteix a fer que l'usuari introdueixi un conjunt de caràcters que es mostren en una imatge distorsionada que apareix a la pantalla. Se suposa que una màquina no és capaç de comprendre-la i introduir la seqüència de forma correcta, i que només un humà és capaç de fer-ho (excepte en cas d'error d'aquest humà).
Com que aquest test, de fet, és controlat per una màquina en comptes de ser-ho per un humà, com en la prova de Turing, sovint rep el nom de prova de Turing inversa.

## Història

No es té clar qui va ser el creador d'aquesta innovació de finals del s.XX, ja que dos equips van afirmar haver sigut els primers a utilitzar-lo.
El primer d'aquests estava format per Mark D. Lillibridge, Martín Abadi, Krishna Bharat i Andrei Broder. Asseguren haver utilitzat el CAPTCHA al 1997 per a evitar que s'agreguessin URL al seu motor de recerca WEB.
L'altre equip el formaven Luis von Ahn, Manuel blum, Nicholas J. Hopper i John Langford. Aquest equip el va utilitzar per primer cop al 2003 en una publicació. La seva versió del CAPTCHA cobria qualsevol programa que pugui distinguir els humans i els ordinadors.

## Tipus de Captcha

Com és lògic, els sistemes de CAPTCHA han anat evolucionant amb els anys. Així mateix, els scripts emprats per saltar aquests sistemes de seguretat també s'han fet cada vegada més avançats i difícils d'aturar.

### Càlculs matemàtics

Un dels mètodes més populars d'aquest sistema és la resolució d'operacions matemàtiques senzilles. Per a poder seguir amb la navegació, l'usuari ha de resoldre un càlcul molt bàsic. Aquest sistema, encara que no ho sembli, és molt complicat de superar per un bot, mentre que és fàcil de resoldre per un usuari humà.

### Jocs de Paraules

Es una altra prova bastant comuna, el test consisteix en mostrar a l'usuari una paraula i se li demana que l'escrigui de nou, o se li mostra una sèrie de paraules de la qual l'usuari ha de repetir l'ultima paraula. L'objectiu d'aquesta prova és que el bot no tingui la capacitat de seguir les instruccions, no obstant cada vegada els bots son més complexos i el sistema pot arribar a no funcionar.

### Accés en xarxes socials

En aquest cas se li demana a l'usuari que es registri mitjançant algun dels seus comptes en xarxes socials. Els avantatges d'aquest sistema són que té una seguretat bastant alta pel fet que els robots no tenen accés a aquests comptes, i que són bastant ràpides de realitzar per part de l'usuari. En general és bastant segura a l'hora de distingir la presència d'un humà o un robot, però moltes persones dubten a l'hora de donar aquesta informació rellevant a qualsevol lloc web.

### Límit de temps

Aquest tipus de CAPTCHA compte el temps que necessita un usuari omplir un formulari. S'entén que l'humà necessitarà una mica de temps mentre que el bot ho farà de forma gairebé automàtica. Encara que es pot entrenar un bot perquè esperi un temps determinat, si no està específicament entrenat per això, serà detectat al moment.

### Camps amagats

Es tracta d'una prova poc freqüent però molt efectiva. En ella, ens trobem una sèrie de camps o cel·les, alguns dels quals són visibles per a l'humà i altres no. No obstant això, per al bot tots els camps són visibles perquè poden llegir el contingut de les cel·les. D'aquesta manera, cauran en el parany i ompliran tots els camps, no només els que són visibles per les persones.

### No Captcha Recaptcha

És un sistema aparentment senzill però que ha resultat ser molt efectiu. Va ser inventat per Google i actualment és bastant estès. En aquesta prova l'usuari ha de fer clic a una casella que posa "No sóc un robot". El truc està en el fet que els humans mai fem clic exactament al centre, però els robots si. Per aquesta raó és fàcil detectar un bot.

### Recaptcha invisible

Similar a l'anterior, però ocult a l'usuari. En aquesta prova es rastreja el comportament de l'usuari per determinar si la seva falta de precisió en els moviments i clics pot determinar si es tracta d'un humà o un robot.

### Captcha visual

És un dels sistemes més estesos. En aquesta prova se'ns presenten una sèrie d'imatges i hem de fer clic a totes aquelles que continguin un element determinat, com ara semàfors o aparadors de botigues. Actualment té una taxa d'èxit bastant elevada. No obstant això, l'aparició dels algoritmes de reconeixement d'imatges està posant en perill la seva efectivitat.

## Aplicacions

Els captcha s'utilitzen per a evitar que els robots puguin utilitzar certs serveis. Per exemple, perquè no puguin participar en enquestes, registrar-se per a fer servir comptes de correu electrònic (o el seu ús per a enviament de correu brossa) o, més recentment, per a evitar que un robot pugui enviar correu brossa (el remitent ha de passar el test abans que es lliuri al destinatari).
Moltes vegades és difícil d'entendre pels humans, però podrem dir-li que ens ensenyi una altra paraula

## Característiques

Els captcha tenen les següents característiques per definició:
* Són completament automatitzats, és a dir, no cal cap mena de manteniment o intervenció humana per a la seva realització. Això suposa grans beneficis quant a fiabilitat i cost.
* L'algorisme utilitzat és públic. D'aquesta forma superar un captcha passa a ser un problema d'intel·ligència artificial i no la ruptura d'un algorisme secret.

## Atacs

Mori et al. han publicat un article a IEEE CVPR´03 (A method for defeating one of the most popular Captchas) on descriuen un algorisme per a vèncer els captcha amb un alt percentatge de fiabilitat. Es desconeixen les possibles implementacions existents.

### Marrades

Molts proveïdors gratuïts de correu utilitzen captcha per a validar el registre de nous usuaris. L'objectiu és evitar que els spammers puguin registrar grans quantitats de comptes per a l'enviament massiu de correu brossa. No obstant això, sembla que han trobat un mecanisme per a evitar aquesta restricció: utilitzar el captcha en altre sistema de registre i aconseguir que un humà els el resolgui.
Per a això, s'utilitza un web al qual es vulgui guanyar accés (una web pornogràfica, per exemple). Quan l'usuari del web intenta accedir-hi, el sistema inicia un procés de registre en el proveïdor de correu gratuït i utilitza el captcha del proveïdor de correu per al lloc esquer. Amb la resposta de l'usuari, pot accedir-se al registre del compte de correu gratuït.

## Problemàtica
### Accessibilitat per a discapacitats

Qualsevol problema de difícil solució del camp de la intel·ligència artificial pot ser utilitzat com, per exemple, reconeixement de caràcters/imatges o reconeixement de veu. No obstant això, aquestes solucions impedeixen a persones amb deficiències visuals o auditives accedir als recursos protegits. A més, a causa de la seva naturalesa i missió, els assistents per a discapacitats (com els lectors de pantalla) no poden interpretar-los, i l'accés al recurs esdevé impossible.
En alguns llocs es permet triar entre la validació visual o sonora. En l'actualitat, el desenvolupament de captcha basats en sons està molt per darrere dels visuals i no són tan eficients.
Un article del W3C (Inaccessibility of Visually-Oriented Anti-Robot Tests, en anglès) descriu alguns dels problemes d'accessibilitat que introduïxen els captcha.

### Implementacions insegures

Howard Yeend ha identificat alguns problemes d'implementació amb CAPTCHAs pobrament dissenyats:
* Alguns sistemes de protecció CAPTCHA poden sortejar sense utilitzar un sistema de reconeixement òptic de caràcters (OCR) simplement reutilitzant l'ID de sessió d'una imatge coneguda.
* Els CAPTCHAs que estan allotjats en servidors compartits també presenten un problema: una incidència de seguretat en un altre allotjament virtual, podria deixar el sistema CAPTCHA vulnerable.
* Algunes vegades, si part del programari de generació del CAPTCHA es realitza en el costat de el client (la validació es fa al servidor, però el text que l'usuari ha d'identificar és renderizado al costat de client), els usuaris poden modificar el client perquè mostri el text sense renderitzar. Alguns sistemes usen hashes MD5 emmagatzemats al costat de servidor, que sovint poden ser crackejats.

### Reconeixement de caràcters per ordinador

Els CAPTCHA van ser originats perquè els caràcters de les imatges generades no siguin reconeguts pel programari OCR. No obstant, hi ha projectes d'investigació que han provat que és possible saltar-se molts CAPTCHA amb programes que han estat específicament dissenyats per a un tipus determinat de CAPTCHA. Per CAPTCHA amb lletres distorsionades, l'aproximació típica és seguir els següents passos:
* Eliminació de soroll de fons, per exemple amb filtres de color i deteccions de línies fines.
* Segmentació, per exemple partint la imatge en segments que contenen una sola lletra.
* Identificar la lletra de cada segment, i així utilitzar la informació extreta de la imatge.
El pas 1 és típicament molt fàcil d'automatitzar. El 2005, es va mostrar que un algoritme d'una xarxa neuronal té un menor marge d'error que els humans resolent el pas 3. L'única part on els humans superen les màquines és en el pas 2. Si el soroll de fons consisteix en formes similars a lletres i les lletres estan unides a aquest soroll, la segmentació es fa gairebé impossible amb el programari actual. Per tant, un CAPTCHA efectiu hauria d'enfocar en el pas 2, la segmentació.

### Atacs basats en aprenentatge automàtic

A les primeres iteracions no hi havia una metodologia sistemàtica per dissenyar o avaluar CAPTCHAs. Com a resultat, va haver-hi molts casos en què CAPTCHAs tenia una durada fixa i, per tant, es podrien crear tasques automatitzades per fer encertacions sobre els segments de la segmentació. Altres CAPTCHA inicials contenien conjunts limitats de paraules, cosa que facilitava la prova molt més fàcil. Uns altres van cometre l'error de basar-se massa en la confusió de fons de la imatge. En cada cas, es van crear algoritmes que van poder completar la tasca amb èxit explotant aquests defectes de disseny. Tot i això, aquests mètodes van resultar trencadissos, i es van poder frustrar lleugerament canvis en la CAPTCHA. Els CAPTCHA moderns com reCAPTCHA ja no es basen només en patrons fixos, sinó que presenten variacions de caràcters que sovint es col·lapsen junts, cosa que fa que la segmentació sigui gairebé impossible. Aquestes iteracions més recents han tingut molt més èxit al prescindir de les tasques automatitzades.
L'octubre de 2013, l'empresa d'intel·ligència artificial Vicarious va afirmar que havia desenvolupat un algorisme de resolució de CAPTCHA genèric que era capaç de resoldre CAPTCHAs moderns amb taxes de reconeixement de caràcters de fins al 90%.Tot i això, Luis von Ahn, pioner de CAPTCHA primerenc i fundador de reCAPTCHA, va manifestar escepticisme, afirmant: "Em costa impressionar-me ja que ho veig cada pocs mesos". Va assenyalar que es van presentar 50 reclamacions similars a les de Vicarious des del 2003.
L'agost de 2014 a la conferència Usenix WoOT, Bursztein va presentar el primer algorisme genèric de resolució de CAPTCHA basat en l'aprenentatge de reforç i va demostrar la seva eficiència davant molts esquemes populars de CAPTCHA. Van concloure que els esquemes CAPTCHA basats en la distorsió del text haurien de ser considerats insegurs en avançar.
A l'octubre de 2018, a la conferència ACM CCS'18, Ye et al. va presentar un atac profund basat en l'aprenentatge que podria resoldre amb èxit tots els 11 esquemes de text captcha que va utilitzar el popular lloc web top-50 el 2018 amb un alt índex d'èxit. El seu treball demostra que es pot entrenar un solucionador CAPTCHA efectiu amb 500 CAPTCHA reals que demostren que és possible llançar ràpidament un atac d'un nou esquema CAPTCHA de text.

### Atacs notables

Alguns atacs notables contra diversos esquemes CAPTCHAs inclouen:
* Mori et al. va publicar un article a IEEE CVPR'03 on es detallava un mètode per derrotar a un dels CAPTCHA més populars, EZ-Gimpy, que es va provar que era del 92% exacte per derrotar-lo. El mateix mètode també es va demostrar per derrotar el programa Gimpy, més complex i menys estès, un 33% del temps. Tanmateix, en aquest moment no es determina l'existència d'implementacions del seu algorisme en ús real.
* PWNtcha ha avançat significativament en derrotar els CAPTCHA d'ús comú, cosa que ha contribuït a una migració general cap a CAPTCHAs més sofisticats.
* Podec, un troià descobert per la companyia de seguretat Kaspersky, reenvia sol·licituds de CAPTCHA a un servei de traducció humana en línia que converteixi la imatge en text, deixant enganyar el sistema. Podec s'adreça als dispositius mòbils Android.

### Externalització de serveis de pagament

Hi ha diverses empreses d'Internet com 2Captcha i DeathByCaptcha que ofereixen serveis de resolució de CAPTCHA amb suport humà i per màquines fins a 0,50 dòlars americans per cada 1.000 CAPTCHA resolts. Aquests serveis ofereixen API i biblioteques que permeten als usuaris integrar la circumval·lació de CAPTCHA a les eines que els CAPTCHA van ser dissenyats per bloquejar en un primer lloc.

### Treball humà barat o involuntari

És possible subvertir CAPTCHA mitjançant la transmissió a una botiga de dots d'operadors humans que s'utilitzen per descodificar CAPTCHAs. Un document del 2005 d'un grup de treball del W3C afirmava que un operador així podia verificar centenars per hora. El 2010, la Universitat de Califòrnia a San Diego va dur a terme un estudi a gran escala de les granges de CAPTCHA i va esbrinar que el preu al detall per a la solució d'un milió de CAPTCHA és inferior a 1.000 dòlars.
Una altra tècnica utilitzada consisteix a utilitzar un script per tornar a publicar el CAPTCHA del lloc objectiu com a CAPTCHA a un lloc propietat de l'atacant, que els humans que no saben visiten i solucionen correctament en un temps curt per utilitzar-lo. Tanmateix, hi ha controvèrsia sobre la viabilitat econòmica d'un atac d'aquest tipus.

## Relació amb la Intel·ligència Artificial

Els CAPTCHA es fan servir, principalment, per raons de seguretat. Però, no obstant, també poden tenir una funció de referència per a les tecnologies d'intel·ligència artificial. Segons un article de Ahn, Blum i Langford "qualsevol programa que passi les proves generades per un CAPTCHA pot usar-se per a resoldre un problema d'IA difícil de resoldre".
Argumenten que els avantatges d'utilitzar problemes d'IA difícils com un mitjà per a la seguretat són dobles. O el problema no es resol i queda un mètode fiable per distingir els humans de les computadores, o el problema es resol i es resol un problema d'IA difícil. En el cas de CAPTCHA basats en imatges i text, si una IA fos capaç de completar amb precisió la tasca sense explotar falles en un disseny CAPTCHA en particular, llavors hauria resolt el problema de desenvolupar una IA que sigui capaç de reconèixer objectes complexos en escenes.

## Beneficis col·laterals

Alguns dels inventors originals del sistema CAPTCHA han implementat mitjans per mesurar i utilitzar l'esforç i el temps que dediquen les persones que responen als reptes de CAPTCHA. Comptar el treball amb elements "resolts" i "no resolts", incloent imatges que no es van reconèixer amb èxit a través de l'OCR.
Els mantenidors de CAPTCHA estimen que els sistemes CAPTCHA existents representen aproximadament 150.000 hores de treball al dia, que es podrien superar a través de la revisió dels sistemes. Això representa aproximadament 75 anys de treball.

## Vegeu també

* ReCAPTCHA

## Referències

* ↑ «Historia del Captcha» (en castellano). El diario Español, 20-01-2010. [Consulta: 19 desembre 2026].
* 1 2 3 4 5 6 7 8 «Tipus de Captcha». Raúl García Calvache, 19-01-2010. [Consulta: 27 desembre 2019].
* 1 2 ««¿Qué es un CAPTCHA? Problemas de accesibilidad»» (en castellano). Sergio Lujan Mora, 20-01-2010. [Consulta: 19 desembre 2028].
* ↑ «Inaccessibility of Captcha» (en anglès). Scott Hollier Janina Sajka Jason White Michael Cooper, 20-01-2010. [Consulta: 19 desembre 2028].
* ↑ «Text-based captcha strengths and weaknesses» (en anglés). Elie Bursztein, Matthieu Martin, John C. Mitchell, 20-01-2010. [Consulta: 19 desembre 2028].
* 1 2 «AI Startup Vicarious Claims Milestone In Quest To Build A Brain: Cracking CAPTCHA» (en anglés). Robert Hof, 20-01-2010. [Consulta: 19 desembre 2028].
* ↑ «Vicarious claims its AI software can crack up to 90% of CAPTCHAs offered by Google, Yahoo and PayPal» (en anglés). Nick Summers, 10-01-2020. [Consulta: 28 desembre 2019].
* ↑ Dingyi Zhanxing Yansong Pengfei, Fang Zhu Feng Xu «Yet Another Text Captcha Solver: A Generative Adversarial Network Based Approach». Yet Another Text Captcha Solver: A Generative Adversarial Network Based Approach, 10-01-2020.
* 1 2 «Kaspersky discovers CAPTCHA-duping Podec malware» (en anglés). Rene Millman, 10-01-2020. [Consulta: 30 desembre 2019].
* ↑ «[https://web.archive.org/web/20050403213029/http://www.cs.berkeley.edu/~mori/gimpy/mori_gimpy.pdf Recognizing Objects in Adversarial Clutter: Breaking a Visual CAPTCHA]» (en anglés). Greg Mori Jitendra Malik, 10-01-2020. Arxivat de l'original el 2005-04-03. [Consulta: 30 desembre 2019].
* 1 2 Von Ahn, Blum, Hooper, Luis, Manuel, Nicolas J, «Using Hard AI problems for security». : Using Hard AI Problems for Security, 20-12-2029.

## Enllaços externs

* http://accesibilidadweb.dlsi.ua.es/?menu=que-es-un-captcha-problemas-accesibilidad
* https://www.aboutespanol.com/que-es-captcha-157845
* (anglès) The Captcha project