Vai al testo, segue menu Vai all'inizio del menu, segue testo Vai al'inizio del menu

CAPTCHA grafici: perché no?

CAPTCHA è una parolaccia che probabilmente ancora poche persone conoscono, ma che identifica un oggetto che molti di voi hanno visto.

CAPTCHA è una sigla, che significa Completely Automated Public Turing Test to Tell Computers and Humans Apart, ovvero Test di Turing pubblico completamente automatizzato per distinguere i computer dagli umani.

Detto così è ancora poco chiaro, ma provo a spiegarmi. Diciamo prima di tutto cos'è un Test di Turing. Si tratta di un test ideale, o meglio di un criterio, proposto dal grande matematico, logico e informatico inglese Alan Turing, che serve a stabilire se una macchina ideale (idea di computer che modellizza molto bene i calcolatori a nostra disposizione) è o no in grado di pensare. Per conoscere bene il test originalmente proposto da Turing, vi rimando all'apposita voce su it.Wiki. Nella realtà, l'idea originale di Turing è stata più volte criticata e riformulata, poiché dal tempo della sua elaborazione (1950) il concetto di macchina intelligente è decisamente cambiato.

Considerando che al momento le macchine non sanno risolvere un test di Turing (ovvero, formalmente, non sanno pensare), un test di Turing è un buon metodo per distinguere una macchina da un essere umano. Un essere umano, infatti, per come il test è definito, lo passa. Una macchina, al momento, no.

Gli ambiti in cui è molto importante distinguere una macchina da un essere umano sono una marea. Il più importante, purtroppo, è quello dello spam, di cui parlerò qui. Lo spam viene effettuato da macchine appositamente programmate per mandare automaticamente messaggi su blog, forum e quant'altro, ripetutamente e velocemente. Tali programmi, chiaramente, non possono superare il test di Turing, che quindi sarebbe l'antispam perfetto.

Quando il problema dello spam su web è diventato prioritario (ovvero dall'esplosione del fenomeno dei forum pubblici e dei blog, nei primi anni 2000), parecchie persone si sono messe a pensare per realizzare un qualcosa di analogo al test di Turing, ma maggiormente semplice e automatico, che potesse distinguere i programmi automatici dalle persone fisiche. Le tecnologie più o meno efficaci che si sono sviluppate si chiamano tutte CAPTCHA, appunto.

Il mondo del web è purtroppo in mano a chi passa più tempo a studiare marketing che a studiare come fare web. Il test CAPTCHA più diffuso, un po' perché apparentemente molto figo e un po' perché l'uomo della strada (cito un mio prof) lo considera inespugnabile, è il CAPTCHA grafico.

Si tratta di quelle piccole immagini con dentro scritto del testo più o meno distorto e offuscato, che va copiato in un'apposita casellina. L'idea generale è che NESSUN computer sia in grado di leggere, tanto più se il testo è distorto, e che TUTTI gli esseri umani siano invece perfettamente in grado di leggere, addirittura se il testo è distorto.

Tutto ciò è terribilmente, mostruosamente, spaventosamente ed evidentissimamente falso, insensato, superficiale, stupido e anche un po' megalomane.

Analizziamo il primo punto. NESSUN computer è in grado di leggere. Chiunque di voi abbia uno scanner, si è ritrovato nel CD allegato un programmino OCR, che serve a leggere le pagine scannerizzate e a riportarle su un editor di testo. Mi pare evidente,a questo punto, che i computer sanno perfettamente leggere. Anche se il testo è distorto? Sì, ovviamente. I tipi di CAPTCHA grafici esistenti sono molti, ma non infiniti, così come i tipi di distorsione applicabili al testo. Ci sono quindi diversi interessanti software in grado di leggere una enorme quantità di tipi di CAPTCHA grafici, rendendoli completamente inutili. Un buon esempio è PWNtcha.

Qualcuno potrà obiettare: "ma ho letto/visto/saputo che il riconoscimento dei caratteri è una delle principali applicazioni di studio per l'intelligenza artificiale!!". Verissimo. Ma non dei caratteri da stampa distorti, o di un numero finito di varianti, ma dei testi scritti a mano, di qualunque tipo.

Passiamo al secondo punto. TUTTI gli umani sanno leggere, anche testi distorti. Non è vero. Molti tipi di distorsione creano serissimi problemi di comprensione a chiunque. Ma facciamo finta che chiunque può leggere un testo stampato lo possa leggere anche se è distorto. Restano comunque fuori tutte le persone che, per qualche motivo (cecità, problemi di vista vari, dislessia...) non possono leggere, e si trovano quindi a dover far leggere il sito internet ad un apposito programma, che non sa tradurre i CAPTCHA. Tutte queste persone non possono iscriversi a forum o rispondere ai blog se non con estrema difficoltà. In poche parole, i CAPTCHA grafici non sono accessibili.

Insomma, i CAPTCHA grafici hanno due fondamentali problemi, che li rendono inservibili: non sono sicuri (e danno un pericoloso senso di sicurezza) e sono a rischio di falsi positivi. In sostanza, non sono affatto dei CAPTCHA. Tutti però si servono di tale porcheria.

La cosa interessante di tutto ciò è che non si tratta di un'idea o di un problema mio, che voglio mettermi controcorrente, ma è una difficoltà di moltissima gente, una difficoltà di cui si è parlato e si parla molto, una difficoltà sulla quale esiste (dal 2005, mica da ieri...) una nota del w3C (il consorzio che regolamenta il web, e i cui documenti andrebbero letti e studiati da chiunque fa web a qualunque livello).

Quasi nessuno, però, fa concretamente qualcosa.

Quali sono le soluzioni? Semplice, inventarsi nuovi CAPTCHA, che siano veramente CAPTCHA. La prima soluzione trovata, e adottata da colossi come Google, è quella di una guida audio. L'idea è simile, i computer non sentono. Ed è vero, non sentono per davvero. Peccato che neanche tutti gli umani sentono, peccato che non tutti i PC hanno la scheda audio (pensate solo, che so, ai PC delle biblioteche), peccato che non tutti lavorino in un ambiente in cui un PC parlante non dà fastidio, peccato che spesso e volentieri l'audio sia poco comprensibile a chiunque. L'idea non è geniale come sembra.

Restano due fantastiche possibilità, magari da usare in coppia. La prima è il classico vecchio metodo del filtraggio lato server, che filtra i post in base alle parole contenute e al server di provenienza, e che è in grado di imparare. Il principale antispam per la popolare piattaforma Wordpress funziona così. Se proprio si ama l'idea del CAPTCHA, o se come me si ama la sfida a trovare un CAPTCHA funzionante, c'egrave; la seconda possibilità: il porre all'utente delle domande, più o meno fuzzy, che abbiano risposta univoca, e poi controllare la risposta. Le domande fuzzy, ovvero con una logica sfumata e incomprensibile per un computer (che è poi l'idea alla base del Test di Turing originale) sono un po' difficili da implementare, anche perché il PC non sa generarle da solo. Quelle molto meno fuzzy, invece, sono di banale implementazione, e finchè non si diffondono abbastanza da far gola a chi scrive i programmi spammer sono molto, ma molto, più sicure del CAPTCHA.

Questo blog, per commentare, vi chiede di dare il risultato di una tabellina, e ve lo chiede in italiano e senza segni matematici, tanto per rendere un po' sfumata la cosa. Le tabelline sono una cosa che qualsiasi essere umano che abbia fatto la seconda elementare sa risolvere (o almeno dovrebbe). Anche il PC le sa risolvere, ma oltre a non aspettarsi una cosa del genere, non sa comprendere il testo con cui chiedo la soluzione. La mia implementazione fa schifo (è in via di miglioramento) ed è facilmente bucabile, ma l'idea mi sembra chiara.
[ Permalink | Nessun commento | Commenta ]
© Lorenzo Breda 2005 - 2010. Alcuni diritti riservati
Valid XHTMLWCAG Level AA compilantXFN friendly

Cerca

Me

me

Status message

Lorenzo ha realizzato oggi, definitivamente, che la lettera del Papa ai giovani che ha letto è la stessa di cui parlavano i giornali. O____O (il 5/9/10 alle 21:35)

Ultimi libri

Ultime foto

Oggi (agenda)

  • 10:00: Ripetizioni - Giacomo
  • 17:30: Riunione dei catechisti

Domani

  • Nessun evento.

Si dice in giro...

Etichette

Blogroll (opml)

Archivio

Torna al menu | Torna al testo