0Pricing
Cryptology Academy · Lezione

Rate limiting e difese tramite blocco degli account

Esamini le difese lato server e a livello di protocollo che rendono gli attacchi brute force impraticabili nella realtà.

Rate limiting e difese tramite blocco degli account è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

Forza bruta online e offline

Gli attacchi di forza bruta online eseguono l'autenticazione contro sistemi attivi attraverso una rete. Ogni tentativo richiede almeno un viaggio di andata e ritorno, in genere da 50 a 500 ms, limitando al massimo l'attaccante a qualche migliaio di tentativi al minuto. Si tratta di una velocità enormemente inferiore rispetto al cracking offline degli hash. Il rate limiting e il blocco degli account sfruttano questa limitazione per rendere la forza bruta online praticamente impossibile in tempi realistici.

Blocco dell'account dopo N tentativi falliti

La difesa più semplice contro la forza bruta online consiste nel bloccare un account dopo un numero definito di tentativi di accesso consecutivi falliti, in genere da 5 a 10. L'account può essere bloccato per una durata fissa, ad esempio 15 minuti, oppure finché un amministratore non lo sblocca manualmente. Il blocco trasforma un attacco di forza bruta online da un tentativo di violare una password in un attacco di esaurimento contro la disponibilità dell'account.

Rischio di denial of service causato dal blocco degli account

Il blocco degli account crea una vulnerabilità di denial of service: un attaccante che conosce nomi utente validi può bloccare tutti gli account inviando 5 tentativi falliti per ciascuno di essi. Questo compromesso è intrinseco nelle politiche di blocco. Alcuni sistemi usano un blocco temporaneo di 5 minuti invece di un blocco permanente, per ridurre l'impatto del DoS. Altri non bloccano affatto gli account, ma usano invece un exponential backoff per rallentare gli attaccanti senza consentire attacchi DoS.

CAPTCHA come deterrente per i bot

CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) richiede di risolvere una sfida visiva o audio, semplice per gli esseri umani ma difficile per i bot automatizzati. Google reCAPTCHA v3 usa l'analisi comportamentale invece di sfide esplicite e assegna un punteggio di rischio basato sui movimenti del mouse, sui tempi e sulla cronologia di navigazione. CAPTCHA rallenta notevolmente la forza bruta automatizzata senza bloccare gli account.

Exponential backoff per i tentativi falliti

L'exponential backoff aumenta il tempo di attesa tra i tentativi di accesso consentiti dopo ogni errore: 1 secondo dopo il primo errore, 2 secondi dopo il secondo, 4 secondi dopo il terzo e così via. Dopo 10 errori, l'attesa supera i 17 minuti. In questo modo la forza bruta diventa estremamente lenta senza bloccare completamente l'account, evitando il rischio di denial of service e continuando a scoraggiare gli attacchi automatizzati.

Rate limiting basato sull'indirizzo IP

Il rate limiting basato sull'IP blocca o sottopone a una sfida i tentativi di accesso provenienti da indirizzi IP che superano una soglia di errori per unità di tempo. Se un IP invia 50 tentativi di accesso falliti in un minuto, i tentativi successivi provenienti da quell'IP vengono bloccati per un'ora. Gli attacchi distribuiti che usano botnet con migliaia di indirizzi IP diversi possono eludere semplici limiti per IP, rendendo necessaria una rilevazione più sofisticata della velocità degli attacchi basata su più segnali.

TOTP come difesa dalla forza bruta

Le password monouso basate sul tempo (TOTP, usate in Google Authenticator e in applicazioni simili) generano un codice di 6 cifre valido per 30 secondi. Anche se un attaccante indovina la password corretta con la forza bruta, deve avere anche il codice TOTP corrente. Con solo 1 milione di possibili codici a 6 cifre e una finestra di 30 secondi, la finestra pratica per un attacco di forza bruta contro TOTP è minima. L'MFA elimina di fatto la forza bruta delle password come vettore d'attacco praticabile.

Il work factor di bcrypt rallenta il calcolo degli hash

bcrypt è una funzione di hashing delle password con un fattore di costo configurabile. Con un costo pari a 10, bcrypt impiega circa 100 ms per calcolare l'hash di una singola password. Con un costo pari a 12, impiega circa 400 ms. Di conseguenza, un attaccante che esegue il cracking offline degli hash bcrypt può testare al massimo qualche centinaio di password al secondo su una GPU, rispetto ai miliardi al secondo possibili con MD5. Il work factor può essere aumentato con il miglioramento dell'hardware, così da mantenere costante la difficoltà del cracking.

Memory hardness di Argon2

Argon2 ha vinto la Password Hashing Competition nel 2015 ed è attualmente la scelta raccomandata per i nuovi sistemi. La sua caratteristica principale è la memory hardness: per il calcolo richiede una quantità configurabile di RAM, in genere da 64 MB a 1 GB. Questo impedisce l'accelerazione tramite GPU e ASIC, poiché questi dispositivi hanno una larghezza di banda della memoria limitata. Un attaccante con una GPU in grado di eseguire migliaia di calcoli bcrypt in parallelo può eseguire solo una manciata di calcoli Argon2 a causa dei vincoli di memoria.

Regole WAF per il credential stuffing

I Web Application Firewall possono rilevare il credential stuffing identificando schemi nel traffico di accesso fallito: volumi elevati provenienti da singoli IP, tentativi che usano elenchi comuni di nomi utente, distribuzione geografica anomala dei tentativi di accesso e schemi temporali compatibili con strumenti automatizzati. Le regole WAF possono bloccare, sottoporre a una sfida o rallentare il traffico sospetto prima che raggiunga l'applicazione. I WAF moderni integrano feed di threat intelligence contenenti gli intervalli di indirizzi IP di botnet note.

API HIBP per le password compromesse note

L'integrazione dell'API Have I Been Pwned nei flussi di modifica delle password impedisce agli utenti di impostare password presenti nei database delle violazioni note. L'API usa il k-anonymity: vengono inviati solo i primi 5 caratteri esadecimali dell'hash SHA-1, proteggendo la privacy dell'utente e consentendo al tempo stesso il confronto con 850 milioni di password note come compromesse. Bloccare le password compromesse durante la registrazione elimina una parte significativa della vulnerabilità al credential stuffing.

Blocco dell'account

Qual è il principale rischio per la sicurezza creato da politiche rigide di blocco degli account che li bloccano permanentemente?

Rate limiting e blocco degli account: concetti fondamentali

La forza bruta online è limitata dalla latenza di rete; il rate limiting e il blocco degli account sfruttano questo limite. Il blocco degli account interrompe la forza bruta, ma consente attacchi di denial of service. L'exponential backoff e CAPTCHA riducono entrambi i rischi. Il rate limiting basato sull'IP intercetta gli attacchi provenienti da una singola origine. L'MFA con TOTP contrasta efficacemente la forza bruta delle password. bcrypt e Argon2 rallentano il cracking offline degli hash. L'API HIBP blocca le password note come compromesse durante la registrazione.

Domande Frequenti

La lezione «Rate limiting e difese tramite blocco degli account» è gratuita?

Sì — il testo completo di «Rate limiting e difese tramite blocco degli account» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «Rate limiting e difese tramite blocco degli account»?

Esamini le difese lato server e a livello di protocollo che rendono gli attacchi brute force impraticabili nella realtà. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Rate limiting e difese tramite blocco degli account»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Come funzionano gli attacchi brute force
  2. Attacchi a dizionario e rainbow table
  3. Perché la lunghezza della chiave crittografica è importante
  4. Rate limiting e difese tramite blocco degli account
← Torna a Cryptology Academy