Perché ChatGPT blocca la tastiera finché non verifica il browser

Un'analisi tecnica rivela che ChatGPT usa Cloudflare Turnstile e controlli sullo stato React per bloccare i bot prima dell'interazione. L'input nel campo per l'inserimento del prompt è attivato solo a valle di una serie di attente verifiche.

L’interfaccia Web di ChatGPT nasconde un meccanismo invisibile: prima ancora di poter digitare un prompt, il browser esegue una serie di controlli lato client orchestrati da Cloudflare. Non si tratta di una semplice verifica CAPTCHA o di un controllo sull’indirizzo IP. Il comportamento viene a galla analizzando il codice caricato nel browser e i payload scambiati durante il caricamento iniziale della pagina.

Le moderne piattaforme AI espongono interfacce sempre più complesse, spesso costruite come applicazioni single-page basate su React. In parallelo, la crescita esponenziale dell’abuso automatizzato – scraping, bot API non autorizzate, tentativi di sfruttare l’accesso gratuito – ha imposto l’introduzione di sistemi di difesa più sofisticati.

Un ricercatore indipendente ha messo sotto la lente il funzionamento di ChatGPT scoprendo che il chatbot di OpenAI integra un livello avanzato di protezione che combina fingerprinting del browser, verifica dello stato applicativo e correlazione con la rete Cloudflare.

ChatGPT: il controllo che blocca l’input prima ancora dell’interazione

Il comportamento più evidente è semplice da osservare: l’utente non può iniziare a digitare immediatamente dopo il caricamento della pagina principale di ChatGPT. Il campo di input resta inattivo finché non termina una verifica invisibile. Il sistema effettua una validazione completa del client prima di consentire qualsiasi interazione.

Alla base di questa logica c’è Cloudflare Turnstile, una soluzione alternativa ai CAPTCHA tradizionali che opera in modo trasparente. Nel caso di ChatGPT, però, l’implementazione va oltre l’uso standard: il codice eseguito nel browser effettua una serie di controlli multilivello e restituisce un token che abilita l’interfaccia.

Reverse engineering: cosa verifica realmente il codice

L’analisi del traffico di rete e dei payload JavaScript ha permesso di isolare centinaia di moduli cifrati. Questi moduli, una volta decodificati, rivelano una struttura basata su una virtual machine custom che esegue codice in formato bytecode (istruzioni a basso livello interpretate dalla macchina virtuale) reso difficile da analizzare attraverso operazioni XOR, una tecnica che combina i dati con una chiave per mascherarne il contenuto.

Il programma analizza almeno 55 proprietà distinte, suddivise in tre categorie principali.

Il primo livello riguarda il fingerprint del browser: informazioni su WebGL, risoluzione dello schermo, font disponibili, capacità hardware e comportamento delle API grafiche. Il secondo livello coinvolge i metadati della rete Cloudflare: indirizzo IP, geolocalizzazione approssimata e intestazioni generate dagli edge server.

Il terzo livello è il più interessante: riguarda lo stato interno dell’applicazione React. Il codice verifica la presenza di strutture specifiche, elementi che esistono solo se l’applicazione React risulta completamente caricata e gestita da un normale browser Web. Un browser headless di base che si limita a scaricare il codice HTML della pagina senza eseguire JavaScript non è in grado di provocare la generazione di tali strutture.

Verifica dello stato React: una difesa a livello applicativo

L’aspetto più innovativo del sistema approntato dagli ingegneri di OpenAI riguarda proprio la verifica dello stato interno dell’applicazione. Non basta dimostrare, lato client, l’uso di un browser reale: è necessario che il software in uso dia conferma di poert eseguire correttamente l’intera logica frontend prevista da ChatGPT.

L’approccio implementato nel chatbot sposta la difesa dal livello di rete a quello applicativo. I sistemi anti-bot tradizionali si concentrano su header HTTP, pattern di traffico o caratteristiche del browser. Qui, invece, il controllo si estende fino alla struttura dati generata dal rendering React.

Costruzione del token e flusso di validazione

Una volta raccolti i dati, il sistema alla base del funzionamento di ChatGPT genera un token di validazione, inviato ai server di OpenAI. Solo dopo la verifica positiva, l’interfaccia abilita l’input utente. Il token non si limita a certificare la presenza di un vero browser lato client: incorpora segnali derivati da tutte le tre dimensioni analizzate.

Il processo avviene interamente in background e introduce una latenza minima nella maggior parte dei casi. Tuttavia, in condizioni di rete lenta o su dispositivi meno performanti, il ritardo diventa percepibile. Alcuni utenti osservano blocchi temporanei dell’interfaccia o ritardi nell’attivazione del campo di input.

Limiti e possibili evoluzioni

L’architettura oggi utilizzata da ChatGPT rende più difficile utilizzarlo come endpoint API non ufficiale.

Il ricercatore che ha analizzato da vicino il funzionamento del chatbot OpenAI osserva tuttavia come il sistema non è invulnerabile. Qualsiasi meccanismo basato su codice eseguito lato client può essere analizzato, replicato o emulato con sufficiente tempo e risorse. Il reverse engineering dimostra che il bytecode offuscato non rappresenta una barriera definitiva.

La tendenza, però, è chiara: le piattaforme AI stanno adottando tecniche sempre più profonde per distinguere utenti reali da automazioni. Il controllo dello stato applicativo rappresenta un passo ulteriore rispetto al fingerprinting tradizionale e anticipa soluzioni ancora più integrate tra frontend e infrastruttura di rete.

Ti consigliamo anche

Link copiato negli appunti