CAPTCHA

Da Wikipedia, l'enciclopedia libera.
(Reindirizzamento da Captcha)
Un captcha di "6138B" ottenuto utilizzando uno sfondo confuso, scritto con font diversi, di colori vari e non allineati

Con l'acronimo inglese CAPTCHA (pronuncia: [ˈkæp.tʃə]) si denota nell'ambito dell'informatica un test fatto di una o più domande e risposte per determinare se l'utente sia un umano (e non un computer o, più precisamente, un bot).

L'acronimo deriva dall'inglese "completely automated public Turing test to tell computers and humans apart" (Test di Turing pubblico e completamente automatico per distinguere computer e umani). Il termine è stato coniato, nella terminologia inglese, nel 2000 da Luis von Ahn, Manuel Blum e Nicholas J. Hopper della Università Carnegie Mellon e da John Langford della IBM. Come consueto nella terminologia informatica, il termine inglese viene utilizzato anche nella terminologia informatica italiana.

Un test CAPTCHA tipicamente utilizzato è quello in cui si richiede all'utente di scrivere quali siano le lettere o i numeri presenti in una sequenza, che appare distorta o offuscata sullo schermo.

Dal momento che il test viene gestito da un computer, mentre il test originale di Turing viene gestito da un umano, a volte si descrive il test CAPTCHA come un test di Turing inverso; questa è però una definizione fuorviante, perché potrebbe indicare anche un test di Turing in cui entrambi i partecipanti tentano di provare che non sono umani.

Descrizione[modifica | modifica sorgente]

Origini[modifica | modifica sorgente]

I CAPTCHA sono stati sviluppati per la prima volta nel 1997 dal settore ricerca e sviluppo di AltaVista capitanato da Andrei Broder, per impedire ai bot di aggiungere URL al loro motore di ricerca. Broder e colleghi cercavano di creare immagini resistenti agli attacchi degli OCR e così consultarono il manuale degli scanner della Brother e utilizzarono al contrario le indicazioni sulle situazioni da evitare, per ricreare una pessima situazione: caratteri storti, con font diversi, sfondi non omogenei eccetera. Broder sostenne che l'introduzione di tale tecnologia avesse ridotto lo spam di oltre il 95%.

In modo indipendente dal team di AltaVista, Luis von Ahn e Manuel Blum realizzarono e diffusero nel 2000 l'idea del test CAPTCHA, intendendo con ciò qualunque tipo di programma che fosse in grado di distinguere tra persone e computer. Loro inventarono vari tipi di test, compresi i primi a ricevere un'ampia diffusione grazie all'uso da parte di Yahoo!.

Applicazioni[modifica | modifica sorgente]

I CAPTCHA sono utilizzati per impedire che i bot utilizzino determinati servizi, come i forum, la registrazione presso siti web, la scrittura di commenti e in generale tutto ciò che potrebbe essere usato per creare spam o per violare la sicurezza con operazioni di hacking come il brute force. Questo tipo di test è stato utilizzato anche per contrastare lo spam generato da bot, obbligando il mittente di un messaggio e-mail non conosciuto dal destinatario a superare un test CAPTCHA prima di consentire la consegna del messaggio.

Caratteristiche[modifica | modifica sorgente]

Per definizione i test CAPTCHA sono completamente automatici e non richiedono di norma interventi umani per la somministrazione o la manutenzione, con indubbi vantaggi in termini di costi e affidabilità.

Gli algoritmi utilizzati per realizzare i test vengono spesso divulgati al pubblico, anche se in molti casi sono protetti da brevetto. Tale politica di trasparenza è tesa a dimostrare il fatto che la sicurezza del metodo non risiede nella conoscenza di un algoritmo segreto (che potrebbe essere ricavata con tecniche di reverse engineering o in modo fraudolento); al contrario, per 'rompere' l'algoritmo è necessario risolvere un problema classificato come 'hard' nel campo dell'intelligenza artificiale.

Non è obbligatorio ricorrere a tecniche visive: qualunque problema di intelligenza artificiale che abbia lo stesso grado di complessità, ad esempio il riconoscimento vocale, è adatto a fare da base per un test di questo tipo. Alcune implementazioni consentono all'utente di scegliere in alternativa un test basato su tecniche auditive, anche se tale approccio ha subito uno sviluppo più lento e non è detto che possieda lo stesso grado di efficacia di quello visivo. Inoltre, è possibile ricorrere ad altri tipi di verifiche che richiedano un'attività di comprensione testuale, quali la risposta a una domanda o a un quiz logico, il seguire delle specifiche istruzioni per creare una password ecc. Anche in questo caso i dati sulla resistenza di tali tecniche alle contromisure sono scarsi.

Una promettente tecnica che si sta sviluppando negli ultimi anni impiega dei test basati sul riconoscimento di una faccia all'interno di un'immagine familiare. Per questo tipo di CAPTCHA si parla di RTT based on faces recognition. In letteratura allo stato attuale sono stati implementati soltanto due metodi basati su questo tipo di CAPTCHA: l'ARTiFACIAL[1] e un CAPTCHA basato sul riconoscimento facciale.[2][3]

Accessibilità[modifica | modifica sorgente]

L'uso di test CAPTCHA basati sulla lettura di testi o altre attività legate alla percezione visiva impedisce o limita fortemente l'accesso alle risorse protette agli utenti con problemi di vista e, poiché tali test sono progettati specificamente per non essere leggibili da strumenti automatici, i normali ausili tecnologici usati dagli utenti ciechi o ipovedenti non sono in grado di interpretarli; ma anche gli utenti daltonici possono non essere in grado di superare il test. L'uso dei test CAPTCHA, generalmente legato alle fasi iniziali di accesso o registrazione ai siti e talvolta ripetuto per ogni accesso, può costituire una discriminazione nei confronti di tali utenti disabili tale per cui in alcuni ordinamenti esso costituisce una violazione delle norme di legge.

Nuove generazioni di CAPTCHA, create per resistere ai più sofisticati programmi di riconoscimento di testi, possono essere molto difficili o impossibili da risolvere per molti utenti, anche nel pieno possesso della propria capacità visiva.

Il W3C ha redatto un rapporto in cui vengono evidenziati alcuni dei problemi di accessibilità legati all'uso di tali tecniche.[4]

Contromisure[modifica | modifica sorgente]

Dopo l'uso massiccio di CAPTCHA, sono state scoperte alcune contromisure che permettono agli spammer di superare i test.

Greg Mori e Jitendra Malik hanno presentato nel 2003 uno studio[5] che illustra come aggirare uno dei sistemi più diffusi per realizzare test CAPTCHA, EZ-Gimpy; tale approccio si è rivelato efficace nel 92% dei casi. Nei confronti del sistema Gimpy, più sofisticato ma meno diffuso, l'efficacia del metodo scende al 33%. Al momento non è però noto se tale algoritmo sia stato implementato al di fuori del contesto della ricerca.

Sono stati creati anche alcuni programmi per cercare una soluzione ripetutamente e altri per riconoscere i caratteri scritti, utilizzando tecniche apposite e non quelle standard degli OCR. Progetti come PWNtcha[6] hanno fatto grandi passi in avanti, contribuendo alla generale migrazione verso CAPTCHA sempre più difficili.

Un altro metodo per superare un captcha è sfruttare sessioni in cui il test è già stato superato, salvando i test per poi creare un archivio di soluzioni.

Ma il metodo più efficace è quello di utilizzare un essere umano per risolvere il CAPTCHA: è infatti possibile affidare a persone pagate il compito di risolvere i CAPTCHA. Il già citato documento del W3C[4] afferma che un operatore può facilmente risolvere centinaia di test CAPTCHA in un'ora.

Questa possibile soluzione necessiterebbe di un investimento economico che non sempre è giustificato, ma è stato scoperto un metodo più a buon mercato per ottenere gli stessi risultati: lo spammer utilizza a tal fine un sito Internet con un servizio a cui gli utenti umani chiedono l'accesso, che può essere un forum ma anche una collezione di immagini pornografiche. Così, quando un utente chiede di accedere, gli viene proposto un CAPTCHA ottenuto dal sito esterno che lo spammer vuole attaccare: il test viene quindi risolto dall'utente, che ottiene in cambio una remunerazione che per lo spammer ha un costo trascurabile, mentre il sistema "ricicla" la soluzione del test per superare la barriera del sito bersaglio.

reCaptcha[modifica | modifica sorgente]

I test CAPTCHA hanno avuto degli utilizzi secondari non legati unicamente all'eliminazione dello spam: il più noto riguarda il riconoscimenti di testi contenuti in libri antichi e si chiama reCaptcha. Molte biblioteche stanno provvedendo a convertire in digitale le loro collezioni di antichi testi (anche manoscritti); questa conversione viene ottenuta tramite la digitalizzazione delle pagine e la loro successiva analisi tramite un programma OCR, che analizza le immagini delle pagine ed estrae il testo in esse contenuto. I programmi OCR però interpretano con difficoltà le lettere sbiadite e le pagine ingiallite dei testi antichi e quando non sono in grado di riconoscere con certezza un testo necessitano di un intervento umano, che rallenta il processo e innalza il costo della digitalizzazione.

Ricercatori della Università Carnegie Mellon hanno deciso di utilizzare i sistemi CAPTCHA per interpretare le parole dubbie individuate dai programmi OCR. Quando due sistemi OCR identificano in modo diverso una parola, questa viene associata a una parola nota e inviata a un utente che deve superare un test CAPTCHA per accedere a un servizio. Si presuppone che se un utente riesce ad individuare correttamente la parola nota, allora individuerà con elevata probabilità anche la parola ignota. Quando tre utenti danno la stessa risposta, il sistema archivia la parola come corretta. Questo sistema ha permesso di convertire 440 milioni di parole con un'accuratezza del 99%. Ad agosto 2008, questo sistema convertiva 4 milioni di parole al giorno.[7] Il progetto in seguito è diventato una startup company che nel settembre del 2009 è stata acquisita da Google, il quale ha avviato una procedura di scansione di decine di milioni di libri immagazzinati in centinaia di librerie sparse per il pianeta e intende sfruttare il progetto reCaptcha per correggere gli errori derivati dalla scansione OCR dei testi.[8] ReCaptcha può essere assimilato alla categoria dei giochi con uno scopo (GWAP).

Curiosità[modifica | modifica sorgente]

Uno dei fenomeni di Internet nati su 4chan riguarda proprio il CAPTCHA. Esso si riferisce ad un codice in cui si leggeva "Inglip Summoned": ne è scaturita la finta leggenda che un dio oscuro, tale Inglip, sia ritornato sulla terra per trascinarla nell'oscurità. Sono presenti inoltre diversi video su YouTube in cui Inglip darebbe ordini ai suoi adepti, sempre tramite degli stravaganti e spesso incomprensibili codici CAPTCHA.[9]

Software intelligenti sono in grado di risolvere captcha di varie tipologie.[10]

Note[modifica | modifica sorgente]

  1. ^ http://research.microsoft.com/en-us/um/people/yongrui/ps/mmsj04hip.pdf
  2. ^ Free Face Recognition Captcha Downloads: Luxand FaceSDK by Luxand Development, Luxand Blink! Pro by Luxand Development and More
  3. ^ IEEE Xplore - Abstract Page
  4. ^ a b (EN) Matt May, Inaccessibility of Visually-Oriented Anti-Robot Tests in W3C Working Group Note, 23 novembre 2005. URL consultato il 12 luglio 2011.
  5. ^ (EN) Greg Mori, Jitendra Malik, Recognizing Objects in Adversarial Clutter: Breaking a Visual CAPTCHA (PDF 408kB). URL consultato il 12 luglio 2011.
  6. ^ PWNtcha – Caca Labs
  7. ^ I testi antichi hanno un futuro "Li salverà un metodo antispam", Repubblica.it, 19 agosto 2008. URL consultato il 19 agosto 2008.
  8. ^ Google acquista reCaptcha, MaCityNet.it, 16 settembre 2009. URL consultato il 16 settembre 2009.
  9. ^ Inglipedia, 16 settembre 2009. URL consultato il 5 giugno 2011.
  10. ^ Startup americana crea un software per risolvere il Captcha tramite intelligenza artificiale

Voci correlate[modifica | modifica sorgente]

Altri progetti[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

Sicurezza informatica Portale Sicurezza informatica: accedi alle voci di Wikipedia che trattano di Sicurezza informatica