Il reCAPTCHA

La Tecnologia OCR

I moderni Software, oggi, godono di straordinarie capacità. All'inizio degli anni '40-'50 essi riuscivano a manipolare esclusivamente tipi di dato come caratteri, lettere, numeri etc. Oggi, i dati che i software riescono a gestire sono anche di tipo "multimediale", ovvero relativi ad immagini, video e audio (Multimedia Recognition). Per chiarire le idee, pensate ai più comuni e moderni motori di ricerca multimediali (Google, TheEye, Shazaam etc..). Essi si basano sulla Multimedia Recognition, ovvero l'analisi e il riconoscimento di dati multimediali. Per le immagini, la tecnologia OCR - Optical Character Recognition - ovvero Riconoscimento Ottico dei Caratteri, è una delle più diffuse. Se ad esempio un'immagine contiene una parola, la tecnologia OCR è in grado di rilevare quella parola attraverso un'operazione di analisi sull'immagine stessa. CAPTCHA e OCR, sono due tecnologie molto legate.

Lo scopo primario di un sistema CAPTCHA è infatti quello di "ingannare" il modulo OCR del software affinché non riesca a distinguere i caratteri. Esso infatti attraverso una pre-manipolazione dei dati multimediali (come le immagini per esempio), rende difficile al software l'analisi dell'immagine.

Il processo di manipolazione di un sistema CAPTCHA dunque consiste, nella maggior parte dei casi, nello scanning di estratti di libri, trasformarli in immagini multimediali, le quali vengono successivamente manipolate. In condizioni normali, cioè quando l'immagine non è manipolata, l'unita OCR del software è in grado di "leggere" il contenuto dell'immagine, mentre, non appena essa viene manipolata, le probabilità che l'OCR riconosca la parola, diventano più basse se non addirittura nulle. 
  
Ad esempio, nella seguente figura si può apprendere chiaramente la presenza di un'immagine estratta da un testo e manipolata (di cui non conosciamo né titolo, né autore). Il messaggio contenuto per il nostro sistema visivo risulta abbastanza nitido:

This aged portion of society were distinguished from

ma per l'OCR di un software potrebbe risultare come descritto in figura:
  

Immaginate ora che il CAPTCHA vi chieda di dover indovinare il titolo del libro in cui è contenuto  questo estratto: come fareste? Se lo sapeste, digitereste direttamente l'autore, in caso contrario andreste su Google Search, digitereste per intero l'estratto fino a trovare il titolo relativo. In gergo, si parla di Resolving CATCHA, ovvero di risoluzione di un CAPTCHA.

Ecco dunque come farebbe un software, dotato di modulo OCR, a "simulare" il comportamento di un utente se riuscisse a decifrare il contenuto nell'immagine: esso infatti copierebbe il testo, lo utilizzerebbe su una serie di motori di ricerca, e, digitando tutte le parole chiave ottenute dalla ricerca (tra le quali probabilmente il nome dell'autore), effettuerebbe quello che in gergo si definisce un'operazione di Breaking CAPTCHA, ovvero un'infrazione di CAPTCHA. Oggi, i CAPTCHA vengono sviluppati numerose tipologie (Gimpy, Imaging, Mathematics, Riddle etc..), allo scopo di rendere più difficile tale operazione di breaking.