What is a brute force attack?

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.

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

Copia link dell'articolo

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

If the target string is sufficiently long, then it could take a brute force attacker days, months, or even years to decode a properly randomized password. As a result of the current trend of requiring longer passwords and encryption keys, brute force attacks are quite a bit more difficult. When good passwords and encryption are utilized, attackers typically try other methods of code breaking such as social engineering or on-path attacks.

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.

Users of web services can decrease their vulnerability to brute force attacks by choosing longer, more complex passwords. It is also recommended to enable two-factor authentication and use unique passwords for each service. If an attacker is able to brute force a user’s password for one service, that attacker may try recycling the same login and password on many other popular services. This is known as credential stuffing.

Users should also avoid entering passwords or personal information such as credit card numbers or banking information with any web service that doesn’t protect their data with strong encryption keys.

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.