reCAPTCHA Inc. è un sistema CAPTCHA ideato nel 2007 da un gruppo di ricerca della Carnegie Mellon University e rilevato da Google nel 2009. Originariamente concepito per semplificare la digitalizzazione di testi e manoscritti, esso consente ai web host di distinguere gli accessi ai propri siti web effettuati da parte di esseri umani da quelli effettuati tramite procedure automatizzate. Ad ottobre 2022 detiene da solo il 97% delle quote di mercato relativo ai servizi per l'identificazione automatica tramite CAPTCHA degli utenti che accedono ai siti web.
La versione v1 (ovvero quella originale di reCAPTCHA) richiede agli utenti di decifrare testi difficili da leggere oppure di abbinare delle immagini. La versione v2 richiede inoltre di decifrare del testo o di abbinare delle immagini se l'analisi dei cookie suggerisce che la pagina viene scaricata automaticamente. A partire dalla versione v3 reCAPTCHA non interrompe mai gli utenti ed è progettato per essere eseguito automaticamente quando gli utenti caricano pagine o cliccano sui bottoni.
Nel 2010 era stato calcolato che reCAPTCHA generava quotidianamente più di 100 milioni di CAPTCHA su diversi siti web, tra cui Facebook, Ticketmaster, Twitter, 4chan, CNN.com, StumbleUpon e Craigslist. Google addebita l'utilizzo di reCAPTCHA su siti web che generano oltre un milione di reCAPTCHA al mese.
Storia
reCAPTCHA venne sviluppato nel 2007 da Luis von Ahn assieme a David Abraham, Manuel Blum, Michael Crawford, Ben Maurer, Colin McMillen ed Edison Tan nel campus principale di Pittsburgh della Carnegie Mellon University. Von Ahn, il quale venne supportato dal MacArthur Fellows Program, era stato uno dei primi sviluppatori di CAPTCHA e si rese conto di "aver involontariamente creato un sistema che stava sprecando, con incrementi di dieci secondi, milioni di ore di una risorsa molto preziosa: i cicli del cervello umano".
L'iterazione originale del servizio era costituita da una piattaforma di collaborazione massiva progettata per la digitalizzazione dei libri, in particolare quelli troppo illeggibili da poter essere scansionati dai computer tramite sistemi OCR, in maniera simile a progetti già esistenti come Distributed Proofreaders. Infatti alla base dell'idea che portò alla creazione di reCAPTCHA vi era la necessità da parte di varie biblioteche di provvedere a convertire in digitale le loro collezioni di antichi testi (anche manoscritti). Questa conversione viene ottenuta solitamente 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. I ricercatori della Carnegie Mellon University decisero quindi 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. Le richieste di verifica utilizzavano coppie di parole provenienti da pagine scansionate, con una parola nota utilizzata come controllo per la verifica e un'altra utilizzata per eseguire in crowdsourcing la lettura di una parola ignota. Si presuppone che se un utente riesce ad individuare correttamente la parola nota, allora individuerà con elevata probabilità anche quella ignota. Quando tre utenti danno la stessa risposta, il sistema archivia la parola come corretta. Questo sistema permise di convertire 440 milioni di parole con un'accuratezza del 99%; ad agosto 2008, esso convertiva 4 milioni di parole al giorno.
Nel settembre 2009 reCAPTCHA venne acquistato da Google, che avviò una procedura di scansione di decine di milioni di libri immagazzinati in centinaia di librerie sparse per il pianeta con l'intenzione di correggere tramite reCAPTCHA gli errori derivanti dalla scansione OCR dei testi. Il servizio contribuì a digitalizzare gli archivi del New York Times, dopodiché venne in seguito impiegato da Google Libri per scopi simili.
A partire dal 2014 Google ha completamente mutato il servizio di reCAPTCHA rispetto alla sua idea originaria, concentrandosi maggiormente sulla riduzione della quantità di interazione dell'utente necessaria per potersi identificare su un sito web e presentando unicamente sfide di riconoscimento umano (come ad esempio identificare e selezionare tra le immagini appartenenti ad un gruppo quelle che soddisfano un prompt specifico) qualora l'analisi comportamentale sospetti che l'utente possa essere un bot.
Versioni ReCAPTCHA v1
Nella versione originaria di reCAPTCHA il testo scansionato viene sottoposto ad analisi da due diversi OCR. Qualsiasi parola che venga decifrata in modo diverso dai due programmi OCR o che non sia presente in un dizionario di lingua inglese viene contrassegnata come "sospetta" e convertita in un CAPTCHA. La parola sospetta viene visualizzata fuori contesto, talvolta insieme a una parola di controllo già nota. Se l'essere umano digita correttamente la parola di controllo, la risposta alla parola discutibile viene accettata come probabilmente valida. Se un numero sufficiente di utenti digitasse correttamente la parola di controllo, ma digitasse erroneamente la seconda parola che l'OCR non era riuscita a riconoscere, la versione digitale dei documenti potrebbe finire per contenere la parola errata. All'identificazione eseguita da ciascun programma OCR viene assegnato un valore di 0,5 punti, mentre ad ogni interpretazione da parte di un essere umano viene assegnato un punto intero. Una volta che una determinata identificazione raggiunge 2,5 punti, la parola è considerata valida. Quelle parole a cui viene costantemente data un'unica identità dai giudici umani vengono successivamente riciclate come parole di controllo. Se i primi tre tentativi corrispondono tra loro ma non corrispondono a nessuno degli OCR, vengono considerate una risposta corretta e la parola diventa una parola di controllo. Quando sei utenti rifiutano una parola prima che venga scelta l'ortografia corretta, la parola viene scartata perché illeggibile.
Nel 2012 si iniziarono ad includere in reCAPTCHA fotografie tratte da Google Street View in aggiunta alle parole scansionate. Tramite tali fotografie si richiede all'utente di identificare immagini di strisce pedonali, lampioni ed altri oggetti. Si era ipotizzato che tali dati venissero utilizzati dalla società di guida autonoma Waymo (di proprietà di Google), ma ciò è stato smentito dalla società stessa.
reCAPTCHA v1 è stato dichiarato obsoleto da Google nell'ottobre 2017 ed è stato chiuso il 31 marzo 2018.
ReCAPTCHA v2
Dopo che nel 2013 reCAPTCHA iniziò a implementare l'analisi comportamentale delle interazioni del browser per prevedere se l'utente fosse un essere umano o un bot, nel dicembre 2014 Google presentò reCAPTCHA v2, una nuova versione caratterizzata dalla modalità "NoCAPTCHA reCAPTCHA", grazie alla quale per gli utenti ritenuti a basso rischio è richiesto soltanto un clic su una singola casella di spunta contrassegnata dall'etichetta "Non sono un robot" per verificare la propria identità; cliccando su di esso, il sistema esamina il comportamento che l'utente ha avuto in precedenza e in base a ciò stabilisce se sia un utente umano o un bot. È comunque possibile mostrare una sfida CAPTCHA se il sistema non è sicuro del rischio dell'utente. Per tale scopo, Google introdusse anche un nuovo tipo di sfida CAPTCHA progettata per essere più accessibile agli utenti mobili, in cui l'utente deve selezionare le immagini all'interno di una griglia che corrispondono a un prompt specifico.
Nel 2017 Google introdusse il reCAPTCHA "invisibile", in cui la verifica avviene direttamente in background e non viene visualizzata alcuna sfida se l'utente è ritenuto a basso rischio. Secondo l'ex dipendente di Google Shuman Ghosemajumder, questa capacità "crea un nuovo tipo di sfida che i robot molto avanzati possono ancora aggirare, ma introduce molto meno attrito per l'essere umano legittimo".
ReCAPTCHA v3 Nell'ottobre 2018 Google lanciò reCAPTCHA v3, in cui introdusse un'analisi dei rischi, predisponendo diversi profili di rischio e assegnando a ciascun utente un punteggio diverso, che va da 0,0 (rischio elevato che l'utente sia un bot) a 1,0 (rischio basso e quindi alta probabilità che l'utente sia umano). Il punteggio si basa sui diversi tipi di interazioni che gli utenti effettuano, dal movimento del mouse al tempo che trascorrono in ciascuna sezione del sito o ai clic effettuati. Google ha invogliato l'adozione di reCAPTCHA v3 su diverse pagine web al fine di tracciare un modello di comportamento con cui identificare le interazioni di ciascun utente su un sito web. Inoltre questa versione consente anche agli amministratori un maggiore controllo sugli utenti, in quanto sono in grado di poter visionare i punteggi dei loro visitatori e monitorare il traffico reale in ingresso; facoltativamente hanno la possibilità di richiedere l'autenticazione in due passaggi o la verifica via email per gli utenti con valutazioni inferiori. Per impostazione di default, reCAPTCHA v3 utilizza una soglia pari a 0,5 e i visitatori con un punteggio inferiore dovranno dimostrare di essere umani. Tuttavia, gli amministratori del sito web hanno la possibilità di modificare questa soglia e possono addestrare un proprio modello nel sito web per combattere i bot che cercano di aggirare la sicurezza.
Implementazione I test reCAPTCHA vengono visualizzati dal sito centrale del progetto reCAPTCHA, il quale fornisce le parole da decifrare. Ciò avviene tramite un API JavaScript con il server che effettua una callback a reCAPTCHA dopo che la richiesta è stata inviata. Il progetto reCAPTCHA fornisce librerie per vari linguaggi di programmazione e applicazioni per semplificare questo processo. reCAPTCHA è un servizio gratuito fornito ai siti web per assistenza nella decifrazione, ma il software reCAPTCHA non è open source.
Inoltre reCAPTCHA offre vari plug-in per diverse piattaforme di applicazioni Web, tra cui ASP.NET, Ruby e PHP, per facilitare l'implementazione del servizio.
Sicurezza
Lo scopo principale di un sistema CAPTCHA è bloccare gli spambot consentendo l'accesso agli utenti umani. Il 14 dicembre 2009, Jonathan Wilkins pubblicò un documento che descriveva i punti deboli di reCAPTCHA, i quali consentivano ai bot di raggiungere un tasso di risoluzione del 18%.
Il 1º agosto 2010 Chad Houck tenne una presentazione alla 18ª edizione del DEF CON, descrivendo in dettaglio un metodo per invertire la distorsione aggiunta alle immagini che consentiva ad un programma per computer di determinare una risposta valida il 10% delle volte. Il sistema reCAPTCHA venne modificato il 21 luglio 2010, quindi prima che Houck parlasse del suo metodo. Houck modificò il suo metodo in quello che lui descrisse come un CAPTCHA "più semplice" per determinare una risposta valida il 31,8% delle volte. Houck ha anche menzionato le difese di sicurezza del sistema, tra cui un blocco ad alta sicurezza nel caso in cui viene data una risposta non valida per 32 volte di seguito.