Cos'è un attacco brute-force?

Gli attacchi brute-force decifrano i dati provando ogni combinazione possibile, come quando un ladro vuole forzare una cassaforte provando tutte le combinazioni della serratura.

Share facebook icon linkedin icon twitter icon email icon

Attacco brute-force

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Differenziare gli attacchi brute-force da attacchi più sofisticati
  • Definire i punti di forza e le debolezze degli attacchi brute-force
  • Spiegare i modi migliori per proteggersi dagli attacchi brute-force

Che cosa è un attacco brute-force?

Un attacco brute-force è un metodo per tentativi utilizzato per decifrare dati sensibili. Le applicazioni più comuni di questo tipo di attacco sono la decifrazione delle password e delle chiavi di crittografia (continua a leggere per ulteriori informazioni sulle chiavi di crittografia). Altri bersagli comuni degli attacchi brute-force sono le chiavi API e gli accessi SSH. Gli attacchi brute-force per decifrare le password spesso vengono eseguiti da script o bot che prendono di mira la pagina di accesso di un sito Web.

La differenza tra gli attacchi brute-force e altri metodi di decifrazione è che i primi non utilizzano una strategia intellettuale, semplicemente provano a usare diverse combinazioni di caratteri finché non trovano quella giusta. È un po' come quando un ladro prova ad aprire una cassaforte tentando tutte le combinazioni possibili.

Quali sono i punti di forza e le debolezze degli attacchi brute-force?

Il vantaggio principale degli attacchi brute-force è che sono relativamente semplici da sferrare, e con abbastanza tempo e senza una strategia di mitigazione da parte del bersaglio, funzionano sempre. Ogni sistema basato su password e chiavi di crittografia può essere violato con un attacco brute-force. Anzi, la quantità di tempo necessaria a un attacco brute-force per forzare un sistema è un dato utile per saggiarne il livello di sicurezza.

D'altra parte, gli attacchi brute-force sono molto lenti, dato che devono tentare ogni combinazione di caratteri possibile prima di raggiungere l'obiettivo. Questa lentezza aumenta quanto più aumentano i numeri di caratteri nella stringa bersaglio (una stringa è solo una combinazione di caratteri). Ad esempio, una password da quattro caratteri necessita di molto più tempo per essere decifrata con brute-force rispetto a una password da tre caratteri, e una da cinque caratteri molto più di una da quattro caratteri. Una volta superato un certo numero di caratteri, decifrare una password randomizzata correttamente con questa tecnica diventa inattuabile.

Tempi di decifrazione brute-force

Se la stringa bersaglio è sufficientemente lunga, potrebbero volerci giorni, mesi o persino anni per decifrare una password ben randomizzata. Di conseguenza alla tendenza attuale di richiedere password e chiavi di crittografia più lunghe, gli attacchi brute-force sono diventati più difficili da attuare. Quando si utilizzano password e crittografie valide, gli aggressori in genere provano altri metodi, come l'ingegneria sociale o gli attacchi on-path.

Come proteggersi dagli attacchi brute-force

Gli sviluppatori che gestiscono i sistemi di autorizzazione possono adottare misure come bloccare gli indirizzi IP che hanno generato troppi tentativi di accesso non riusciti e integrare un ritardo nel proprio software di controllo della password. Un ritardo di anche solo qualche secondo può indebolire l'efficacia di un attacco brute-force.

Gli utenti di servizi web possono ridurre la propria vulnerabilità agli attacchi brute-force scegliendo password più lunghe e più complesse. Si consiglia inoltre di abilitare l'autenticazione a due fattori e di utilizzare password univoche per ciascun servizio. .Se un aggressore è in grado di utilizzare brute-force per decifrare la password di un utente per un singolo servizio, potrà tentare di riciclare la stessa combinazione di login e password su molti altri servizi conosciuti. Questo metodo si chiama credential stuffing (sottrazione e uso illecito delle credenziali).

Inoltre, gli utenti dovrebbero evitare di inserire password o altre informazioni personali come numeri di carta di credito o informazioni bancarie in servizi web che non proteggono i propri dati con chiavi di crittografia forti.

Cos'è una chiave di crittografia?

Le chiavi di crittografia sono stringhe casuali di bit generate per codificare e decodificare i dati. Una volta codificati i dati, questi hanno l'aspetto di una stringa di caratteri casuale, finché non vengono decodificati usando la chiave di crittografia corretta. Come per le password, le chiavi di crittografia possono essere decifrate usando gli attacchi brute-force, ma oggigiorno esistono chiavi di crittografia che necessitano di talmente tanto tempo per essere decifrate, usando computer moderni, da essere considerate indecifrabili.

Che differenza c'è tra la crittografia a 128-bit e a 256-bit?

Una chiave di crittografia più lunga è esponenzialmente più sicura di una più corta. Ad esempio, in una chiave di crittografia da 128-bit, ci sono 2128 combinazioni possibili da tentare in un attacco brute-force. Per la crittografia da 256-bit, si dovrebbero provare 2256 combinazioni diverse, il che richiederebbe 2128 volte la potenza di calcolo rispetto a una chiave da 128-bit (2128 = 340.282.366.920.938.463.463.374.607.431.768.211.456 combinazioni possibili)!

Per dare un'idea del significato di questi numeri, a un computer molto potente in grado controllare migliaia di miliardi di combinazioni al secondo servirebbero comunque oltre 1096 anni per decifrare una chiave di crittografia da 256-bit (cioè 1 seguito da 96 zeri).

Dato che le chiavi di crittografia a bit alti sono praticamente immuni agli attacchi brute-force attuali, si consiglia a tutti i servizi web che raccolgono le informazioni utente di crittografare i propri dati e le proprie comunicazioni con chiavi di crittografia da 256-bit. Cloudflare utilizza la crittografia TLS all'avanguardia per impedire gli attacchi brute-force, e ha anche lavorato per prepararsi a proteggere dai computer quantistici.