back to top

Usiamo ReCAPTCHA per protegere le nostre web-application

Lo spamming è certamente uno dei più grandi flagelli dell’era di Internet. Spam non è soltanto l’invio indiscriminato di posta spazzatura, ma è anche ogni attività online di promozione indiscriminata di prodotti e/o servizi mediante gli strumenti offerti da Internet come la posta elettronica, ma anche forum, newsgroup, chat, ecc.

Al fine di combattere questo tipo di attività, molte web applications (come forum, blog, ecc.) integrano al loro interno dei metodi di protezione che hanno lo scopo principale di discriminare gli interventi umani (che si assume essere per lo più legittimi) da quelli automatici (effettuati tramite robot che hanno lo scopo di riempire il web di contenuti promozionali). Questo tipo di strumento prende il nome di CAPTCHA (Acronimo di Completely Automated Public Turing test to tell Computers and humans Apart).

Il CAPTCHA, come molti di voi già sapranno, non è altro che un semplice sistema di verifica basato su un file d’immagine contenente al suo interno una parola (generalmente scritta con caratteri particolari ed articolati) che dev’essere digitata dall’utente affinchè il modulo venga processato. In questo modo se l’utente è un essere umano il form verrà processato, se viceversa l’utente è un robot la sua incapacità di leggere il contenuto di quel file d’immagine impedirà il corretto submit del form.

Da un punto di vista logico il ragionamento è ineccepibile, se non fosse che gli spammer si stanno facendo sempre più bravi (il giro d’affari dello spam è tanto elevato da giustificare tutti gli sforzi profusi dagli spammer) tanto d’aver progettato robot intelligenti in grado di riconoscere (mediante la tecnologia OCROptica Character Recognition) il contenuto dei CAPTCHA, eludendo di fatto il controllo di sicurezza.

Al fine di dare una risposta ai bisogni di sicurezza delle comuni web application è nato ReCAPTCHA, un utile servizio on-line (ideato dalla prestigiosa Carnegie Mellon University ed in seguito acquisito da Google) che consente di integrare nel proprio sito un CAPTCHA con elevati livelli di sicurezza ed avanzate funzionalità (come ad esempio il supporto audio per gli utenti non vedenti).

Lo scopo di ReCAPTCHA, tuttavia, non è soltanto sconfiggere lo spam, ma è anche (e soprattutto) quello ancor più nobile di offrire un contributo alla colossale opera di digitalizzazione di migliaia di libri antichi al fine di salvaguarne i preziosi contenuti per le generazioni future.

Spesso i libri antichi, infatti, non possono essere digitalizzati automaticamente mediante le tecniche di OCR (ad esempio perchè il supporto cartaceo è deteriorarto e non consente una corretta lettura dei caratteri) ma richiedono un intervento umano e quindi un’enorme dispendio di tempo e di risorse che non sempre il mondo della cultura ha a sua disposizione.

Di seguito un esempio circa i suddetti problemi di scannerizzazione mediante OCR:

Nel tentativo di offrire una risposta a questo problema, gli ideatori di ReCAPTCHA hanno escogitato un sistema davvero molto ingegnoso attraverso il quale si combatte lo spam e, allo stesso tempo, si crea una rete di "operatori" (più o meno consapevoli) impiegati nella traduzione digitale dei testi antichi indecifrabili all’occhio digitale dell’OCR.

L’idea nasce da un dato piuttosto interessante: secondo una recente stima ogni giorno sarebbero circa 60.000.000 i CAPTCHA risolti dagli utenti della Rete; moltiplicando questo dato per il tempo medio impiegato per leggere, interpretare e scrivere ogni CAPTCHA si ottiene che il tempo complessivo speso dai surfers sarebbe pari a circa 150.000 ore ogni giorno!

I cervelloni sponsorizzati dalla Carnegie Mellon University hanno così pensato di "recuperare" questa enorme mole di lavoro per impiegarla nell’opera di traduzione/digitalizzazione dell’Internet Archive.

Il sistema funziona così: attraverso una sofisticata tecnologia, ReCAPTCHA fornisce all’utente un codice CAPTCHA composto da due parole:

  • una dal significato certo
  • ed una "sconosciuta" (si tratta, appunto, di una parola tratta da un libro antico non riconosciuta dall’OCR).
Entrambe le parole, poi, vengono distorte con linee di sfondo e disturbi vari.
Se l’utente digita correttamente la parola dal significato certo, il sistema assume (con un certo grado di approssimazione) che anche l’altra parola sia corretta. In questo modo:
  • la verifica del CAPTCHA ha esito positivo (ed il modulo viene processato);
  • la lettura umana della parola "sconosciuta" viene salvata da ReCAPTCHA quale possibile corretta traduzione della stessa. Questo processo viene ripetuto, ovviamente, con migliaia di utenti diversi in modo da avere delle risultanze "statisticamente" certe circa il significato del temine del testo antico che non si era riusciti a scannerizzare mediante OCR.

Da un punto di vista meramente tecnico il servizio offerto da ReCAPTCHA porta allo sviluppatore notevoli vantaggi:

  • nessun carico di lavoro per il server locale;
  • non è necessario installare nessuna libreria o acquistare applicativi per la gestione del CAPTCHA;
  • essendo gestito da remoto ReCAPTCHA è costantemente aggiornato per far fronte alle ultime minacce dello spam;
  • offre un elevato grado di sicurezza, integrando tra l’altro un sistema di verifica degli IP in grado di riconoscere e bannare automaticamente quelli identificati come fonti di spam;
L’integrazione di ReCPATCHA all’interno delle nostre pagine web, infine, è molto semplice e sono disponibili anche diversi plug-in per installare il sistema sui più popolari CMS (come ad esempio WordPress).

In futuri articoli vedremo come integrare questa risorsa nelle nostre web-application.

Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

Leggi anche...

Autenticazione a due fattori (2FA): cos’è e come funziona

L'autenticazione a due fattori (in inglese Two Factor Authentication...

Authcode: cos’è e come funziona

Con il termine Authcode (o Auth-code) si fa riferimento...

HTTP Security Headers: aumentare la sicurezza del sito con .htaccess

Esistono diverse tecniche per innalzare il livello di sicurezza...

Criptare (e decriptare) file su Linux con OpenSSL

OpenSSL è un'implementazione rilasciata sotto licenza Open Source dei...

Cos’è una Botnet?

Con il termine botnet si fa riferimento ad una...

DDoS: cos’è, come funziona e come difendersi

Un DDoS (acronimo di Distribuited Denial of Service) รจ...
Pubblicitร