Con la diffusione di internet è emersa la minaccia dei bot. I CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) sono stati introdotti come misura di contrasto per differenziare gli utenti umani autentici dagli script automatizzati (bot). Questo articolo esplora il funzionamento dei CAPTCHA, le difficoltà nel progettare un CAPTCHA efficace e come debbano evolversi per rimanere un passo avanti ai bot proteggendo al contempo la nostra privacy.
- Da cosa ci proteggono i CAPTCHA?
- Tipologie di CAPTCHA
- Come funzionano i CAPTCHA?
- Critiche
- Il futuro dei CAPTCHA
- Riepilogo
Da cosa ci proteggono i CAPTCHA?
I CAPTCHA sono una parte vitale della sicurezza su internet, proteggendo da:
- Attacchi a forza bruta: Senza i CAPTCHA, i bot possono tentare ripetutamente di accedere ai siti web, ciclando innumerevoli combinazioni di nomi utente e password fino a ottenere accesso.
- Spam nei formulari: I bot possono inviare formulari sui siti web, come moduli di contatto o sezioni di commento, con contenuti spam. I CAPTCHA impediscono ciò richiedendo un’interazione simile a quella umana prima dell’invio del formulario.
- Web scraping: Alcuni bot sono progettati per raschiare o rubare contenuti dai siti web. I CAPTCHA possono scoraggiare questi bot, proteggendo i contenuti dei siti web.
- Prevenzione di iscrizioni false e creazione di account: Su molte piattaforme, creare account in massa è vantaggioso per lo spam o altre attività malevoli. I CAPTCHA assicurano che ogni creazione di account richieda un passaggio di verifica umana, rendendo la creazione di account in massa inefficace per gli attori malevoli.
- Protezione delle risorse dell’applicazione: I bot possono accedere ripetutamente a un sito web, consumando notevoli risorse del server e rallentando il sito o addirittura causandone il crash. Facendo da prima linea di difesa, i CAPTCHA aiutano a garantire che solo gli utenti autentici consumino queste risorse.
I CAPTCHA fungono da guardiani sul web, filtrando le minacce automatizzate mentre permettono agli utenti umani genuini di procedere. Svolgono un ruolo indispensabile nella protezione delle piattaforme online da molte potenziali minacce e abusi.
Tipologie di CAPTCHA
Esistono molte tipologie di CAPTCHA, ognuna basata su una specifica interazione che è facile per un umano eseguire ma quasi impossibile per un bot.
- CAPTCHA basati su testo: Mostrano lettere e numeri distorti che devi identificare e digitare. Le distorsioni sono realizzate in modo che le macchine le trovino difficili da riconoscere, ma gli umani possono decifrare con relativa facilità.
- CAPTCHA basati su immagini: Ti vengono presentate una serie di immagini e ti viene chiesto di selezionare quelle che corrispondono a una specifica descrizione (ad esempio, “Seleziona tutte le immagini con i semafori”).
- CAPTCHA matematici: Mostrano semplici problemi matematici che devi risolvere, come l’addizione o la sottrazione di base.
- I CAPTCHA temporali: Queste sfide sono semplici quanto leggere l’ora su un orologio analogico.
- I CAPTCHA interattivi: Compiti come trascinare oggetti o seguire un’istruzione semplice, ad esempio, “Scorri verso destra”.
- I CAPTCHA comportamentali: Questi esaminano comportamenti come il movimento del mouse e l’attività precedente per rilevare comportamenti simili a quelli di un bot dal caricamento della pagina.
Inoltre, vengono generalmente forniti CAPTCHA audio per aiutare le persone con disabilità visive a risolvere la sfida. Ascolti una serie di lettere o numeri pronunciati e poi li digiti.
Inoltre, negli ultimi anni è stato sviluppato un tipo relativamente nuovo di CAPTCHA chiamato “CAPTCHA crittografico“, dove si può risolvere una semplice sfida computazionale, nota anche come prova di lavoro. Con un tale meccanismo, al browser vengono dati alcuni compiti di difficoltà regolabile da risolvere. Il browser deve fornire una risposta prima di poter procedere.
Ad esempio, la sfida del zero iniziale richiede al tuo computer di trovare un valore di input che, una volta hashato, produce un output con un numero specifico di zeri iniziali.
Recentemente, sono emersi in questo spazio mCaptcha(nuova finestra) e Friendly Captcha(nuova finestra). Tuttavia, fare affidamento solo su sfide computazionali è una strategia rischiosa. Sebbene queste sfide siano non invasive, dipendono dalla capacità di calcolo del tuo dispositivo. Se il tuo dispositivo è troppo lento, l’esperienza utente può essere subottimale, poiché potresti dover attendere molti secondi affinché le sfide vengano completate. D’altra parte, potenti server utilizzati da uno spammer non avrebbero difficoltà a risolvere queste sfide relativamente in fretta.
Questo illustra il dilemma posto dai CAPTCHA: gli sviluppatori devono ideare sfide difficili e costose per gli attaccanti pur rimanendo relativamente semplici per gli utenti ordinari.
Come funzionano i CAPTCHA
Indipendentemente dal tipo di CAPTCHA servito, vale una verità universale: il client front-end non può sapere nulla sulla soluzione al CAPTCHA stesso, altrimenti sarebbe troppo facile per un risolutore automatico. Un server invierà tipicamente una sfida, il front end fornirà il meccanismo per inserire la risposta e un server convaliderà la risposta dal client.
Ad esempio, il flusso generale per un CAPTCHA basato su testo sarà qualcosa di simile a questo:
I risolutori automatici(nuova finestra) possono intervenire qui e tradurre l’immagine CAPTCHA generata dal server in input di testo. Ecco perché i CAPTCHA basati su testo sono evoluti per avere schemi sempre più difficili da risolvere, spesso rendendoli difficili anche per gli esseri umani e inaccessibili a coloro che sono ipovedenti.
Critiche
Sebbene i CAPTCHA siano cruciali per la sicurezza online, non sono esenti da critiche.
Alcuni dicono che i CAPTCHA sono di scarsa utilità in quest’era con il machine learning e i servizi di solver umani che fungono da ponte tra bot automatizzati e siti web protetti da CAPTCHA. Tali servizi di solver impiegano persone reali per risolvere manualmente i CAPTCHA che un computer trova difficili da decifrare.
Tuttavia tali critici trascurano il fatto che i CAPTCHA stanno in realtà ancora facendo il loro lavoro rendendo più difficile per gli attaccanti spammare un servizio. Anche se un CAPTCHA non può impedire completamente ai bot di spammare un servizio, lo rende molto più difficile e questo è spesso sufficiente per la riduzione degli abusi.
Altri sostengono che i CAPTCHA possono ostacolare l’esperienza utente, specialmente se sono troppo impegnativi. Ci sono anche preoccupazioni per l’accessibilità, poiché alcuni CAPTCHA possono essere difficili per gli utenti con disabilità visive. Come spesso accade, si tratta di un equilibrio tra garantire la tua privacy, proteggere la tua sicurezza e offrire un’esperienza utente amichevole.
Ultimamente, le iniziative si sono concentrate sul massimizzare l’esperienza dell’utente a scapito della privacy, utilizzando la cronologia di navigazione per determinare se sei un essere umano autentico o un bot. Una persona reale è probabile che abbia attività su molti siti diversi nel corso di una giornata ed è probabile che abbia già incontrato sistemi CAPTCHA in precedenza. Questa cronologia consente a sistemi come hCAPTCHA o reCAPTCHA di determinare se il comportamento online è autentico o meno prima ancora che tu carichi una pagina. Ecco perché spesso ti basta semplicemente cliccare su una casella di controllo invece di risolvere una vera sfida.
Sebbene comode, queste sfide spesso compromettono la tua privacy. Questi servizi inevitabilmente conoscono il tuo comportamento di navigazione e i siti che hai visitato, il che è motivo di preoccupazione.
D’altra parte, sistemi come mCaptcha e Friendly Captcha offrono maggiore privacy ma compromettono la sicurezza, poiché i sistemi di proof-of-work aggiungono solo un costo all’azione e in genere non sono efficaci nel prevenire l’accesso dei bot al tuo sito o nell’invio di spam.
Il futuro dei CAPTCHA
Il panorama dell’apprendimento automatico e dell’intelligenza artificiale si sta evolvendo rapidamente. Quello che oggi è una sfida per i computer, domani potrebbe diventare banale man mano che i modelli diventano più sofisticati.
Dobbiamo chiaramente orientarci verso sistemi CAPTCHA utilizzabili che rispettino la privacy degli utenti e proteggano i siti dalla maggior parte delle attività di bot e spam.
Per prima cosa possiamo aiutare a migliorare l’usabilità e l’accessibilità minimizzando il numero di CAPTCHA per i veri utenti in tutto il web. Questo è possibile sfruttando protocolli come Privacy Pass(nuova finestra) che permettono ai buoni utenti che hanno già completato un CAPTCHA altrove di saltare un CAPTCHA su un altro sito web, ad esempio. Questo viene eseguito senza conoscenza dei siti web precedentemente visitati. Allora perché non è più diffuso? Purtroppo le implementazioni attuali di questo protocollo richiedono l’uso di estensioni del browser che non sono disponibili su tutti i browser e non possono essere installate da tutti gli utenti.
In secondo luogo, abbiamo bisogno di sistemi che contrastino la minaccia dell’IA senza rendere i CAPTCHA proibitivamente difficili per gli esseri umani. Un recente articolo di Searles et al, 2023(nuova finestra) ha dimostrato che i bot sono già più accurati degli umani nel risolvere molti dei principali sistemi CAPTCHA.
Una soluzione risiede nel pensare a sfide CAPTCHA che possano sfruttare gli attuali limiti dell’IA, come i CAPTCHA “Contestuali” che sono difficili da risolvere per le macchine (al momento in cui è stato scritto questo articolo) poiché richiedono conoscenze del mondo e sistemi complessi per decodificare. Pertanto presentano opportunità per rimanere avanti in questo gioco del gatto e del topo in continua evoluzione. La loro difficoltà risiede nelle seguenti proprietà:
- Richiedono ragionamento multimodale per essere risolti: Il CAPTCHA non riguarda solo il riconoscimento di oggetti. Combina il riconoscimento di oggetti con il ragionamento contestuale.
- Sono dinamici e variati: Ci possono essere numerose variazioni di domande e combinazioni di immagini, rendendo difficile per un modello allenarsi specificamente contro tali CAPTCHA.
- Si basano sulla conoscenza del mondo: Questo approccio si appoggia alla conoscenza generale del mondo e al buon senso, aree in cui le macchine possono ancora vacillare rispetto agli umani.
Ad esempio, invece di utilizzare immagini, i CAPTCHA potrebbero creare semplici sfide interattive che richiedono ragionamento. Ad esempio, “Trascina la luna sotto la nuvola” su una tela dove sono presenti vari oggetti (come stelle, sole, uccelli, ecc.). Oppure, nell’esempio sopra per il CAPTCHA interattivo, dovresti trascinare il latte nel frigorifero.
Un altro esempio è presentare una storia molto breve (poche righe) e fare una domanda basata su di essa. Ad esempio:
Domanda: Andy è andato al frutteto e ha raccolto 3 mele. Ne ha mangiata 1 e ne ha regalate 2.
Chiedi: “Quante mele ha raccolto Andy?” oppure “Quante mele ha mangiato Andy?”
Oppure si possono mostrare una serie di immagini e fare domande basate sul buonsenso o sulla conoscenza contestuale. Per esempio, potresti mostrare le seguenti immagini:
E poi chiedere, “Quale tra queste può tipicamente parlare quando cresce?”
Gli umani possono riconoscere facilmente che la risposta è il bambino. Ma riconoscere il contesto e il ragionamento basato sul buonsenso può essere un compito impegnativo per una macchina, anche se identifica correttamente tutti gli oggetti.
I CAPTCHA contestuali rappresentano un’area di ricerca futura molto interessante, ma presentano anche diverse sfide:
- Pregiudizi culturali: Ciò che è considerato “buonsenso” in una cultura potrebbe essere sconosciuto in un’altra.
- Lingua: Per i CAPTCHA basati su storie, è necessario investire tempo per assicurare che i contenuti siano internazionalizzati per chi non parla inglese. Ad esempio, nella sfida “Trascina il latte nel frigorifero”, LATTE dovrebbe essere tradotto in altre lingue per essere utilizzato in tutto il mondo.
- Generazione delle sfide: Creare sfide di questo tipo non è un problema banale e le soluzioni migliori potrebbero richiedere investimenti significativi di tempo per essere realizzate correttamente.
Inoltre, è inevitabile che un giorno verranno sviluppati sistemi di intelligenza artificiale capaci di ragionamento multimodale, che potrebbero essere migliori nel risolvere questi tipi di CAPTCHA.
Riepilogo
I sistemi CAPTCHA continuano a servire come una difesa di prima linea vitale contro le attività dei bot e gli attacchi di spam su internet. Nonostante la loro presenza sia ubiqua e duratura, il panorama è in evoluzione. Recenti progressi nelle tecnologie di apprendimento automatico, uniti all’emergere di servizi di risoluzione CAPTCHA che impiegano risolutori umani, hanno iniziato ad erodere l’efficacia dei sistemi CAPTCHA tradizionali. Tuttavia, la maggior parte degli attacchi che i siti web affrontano sono meno sofisticati e i sistemi CAPTCHA rimangono una barriera altamente efficace.
Man mano che andiamo avanti, la sfida non sta solo nel mantenere la robustezza dei sistemi CAPTCHA contro attacchi sempre più sofisticati, ma anche nell’assicurare che questi sistemi siano user-friendly, accessibili alle persone con disabilità, rispettosi della privacy degli utenti e liberi da attriti o inconvenienti eccessivi per gli utenti genuini.
Il futuro dei CAPTCHA, quindi, richiede un’innovazione attenta e una ricerca rigorosa. Si richiede lo sviluppo di nuovi sistemi che possano bilanciare abilmente la sicurezza con l’usabilità, l’accessibilità e la privacy — adottando un approccio olistico che evolva in tandem con le tattiche mutevoli degli attori malevoli. Mentre il mondo digitale continua a crescere e trasformarsi, i sistemi CAPTCHA dovranno senza dubbio adattarsi e innovare per mantenere il loro ruolo di pilastro della sicurezza online.