Come risposta alla minaccia hacker che solitamente crea robot per abusare dei sistemi, nasce l’uso del CAPTCHA per la verifica umana, e attualmente è popolarmente utilizzato in tutta Internet. In questo articolo i nostri Ingegneri ZARZA discutono di questo interessante tema, e condividono informazioni concrete sul corretto uso e sulle misure alternative raccomandabili.
Cos’è e a cosa serve un CAPTCHA?
Quando ci iscriviamo a un sito web, o compiliamo un modulo ci imbattiamo in un testo deformato, una figura di cui ci chiedono di scrivere il nome, o meglio, di trascriverne il contenuto… In quel momento ci stiamo imbattendo in un CAPTCHA, e la sua finalità è sapere se chi sta compilando il modulo è un programma per computer (un robot programmato), o un essere umano.
CAPTCHA: Completely Automated Public Turing test to tell Computers and Humans Apart
Il test di Turing completamente automatico e pubblico per distinguere i computer dagli umani è ciò che intendiamo come CAPTCHA, e appare fondamentalmente così:

Come possiamo vedere, le lettere subiscono una trasformazione, pensata per rendere difficile ai bot automatici il riconoscimento delle lettere, e ciononostante permettere a un essere umano di identificare la sequenza, che sarebbe «smwm», anche se le statistiche mostrano che non è così semplice per tutte le persone.
In aggiunta alla distorsione delle lettere, i CAPTCHA possono includere linee, gradienti ed elementi di distrazione che aumentano così il livello di complessità dello stesso.
Tuttavia, i CAPTCHA più moderni includono l’opzione di ascoltare le lettere, e di provare con un nuovo CAPTCHA nel caso in cui non comprendiamo quale sia il suo contenuto. Per esempio, uno dei più rilevanti è quello che offrono gratuitamente su reCAPTCHA (attualmente di proprietà di Google), dove si mescolano inoltre 2 o più parole, come vediamo nell’esempio qui di seguito:

I CAPTCHA continueranno ad aumentare la loro complessità, e diventeranno sempre più moderni; tuttavia, vedremo sempre la linea sottile tra ciò che è comprensibile per un umano e non per un robot.
Il CAPTCHA è totalmente invalicabile? No, non lo è.
Attualmente sia coloro che praticano il Back Hat Hacking, sia il White Hat Hacking sanno che esistono strumenti di riconoscimento visivo, che sono stati promossi su Internet, e che persino alcuni servizi a pagamento dentro e fuori dal Deep Web offrono una connessione rapida per decifrare i CAPTCHA, e così violare i sistemi e rallentarli.
È per quanto sopra che, nello sviluppare il Suo software, o nel commissionarne lo sviluppo, deve considerare che il CAPTCHA è solo una misura in più, e non deve essere in nessun momento l’unico controllo realizzato per proteggere il sistema in questione.
Alcune raccomandazioni aggiuntive possono essere, a seconda dello schema del sistema, le seguenti:
- Limitare il numero di richieste: Sia per indirizzo IP, sia per paese, per tempo e per tipo di richiesta. Con questo, anche se l’attaccante riesce a decifrare il CAPTCHA, si troverà di fronte ad altri limiti fisicamente impossibili per esseri umani.
- Verificare il numero di errori: Molte volte gli script utilizzati per decifrare i CAPTCHA inviano matrici con molteplici possibilità, che possono condurre a un numero di errori superiore a quello che solitamente un utente potrebbe ritentare. Provi e chieda al Suo sviluppatore (o a Lei stesso se è programmatore) che questi parametri possano essere regolati di volta in volta, secondo le statistiche di utilizzo dei Suoi stessi utenti.
- Verifichi i servizi per utenti: Se lo schema lo permette, esiga la convalida delle credenziali contemporaneamente alla verifica del CAPTCHA; allo stesso tempo, registri l’utilizzo, e così individui facilmente utenti abusivi, che possano essere esclusi manualmente e automaticamente.
Molte volte questo tipo di elementi può risultare frustrante per gli utenti reali, per cui potrebbe anche valutare, invece di bloccare totalmente le richieste, l’inclusione di un tempo di attesa, anche solo di secondi, che obblighi l’utente ad attendere un tempo tra ogni richiesta, e una volta che questa abbia successo, che debba attendere per ricevere i risultati, il tutto basato sul suo comportamento e sulle politiche che si definiscano per ogni fascia di utenti. Non dovrebbe applicare gli stessi parametri per utenti registrati conosciuti, e per visitatori o utenti recentemente iscritti.
Per gli Ingegneri di ZARZA è e sarà un piacere aiutarLa in tutte le Sue necessità di sviluppo software, e desideriamo ricordarLe che la nostra specialità è soddisfare le Sue necessità, mantenerLa protetta ed elevare il Suo rendimento e il rendimento della Sua presenza su Internet.



lasci la sua nota