Now the problem with password is that: it can broken using brute force attack.
Non necessariamente.
È possibile attenuare la forzatura delle password da parte di bruce in modo tale che sia praticamente impossibile forzarle. Richiede la mitigazione nel sistema, ma richiede anche che la password sia sicura anche.
Quando uno schema di crittografia prende la sua chiave da una password, lo fa usando una funzione di derivazione, che prende la password come input e genera una stringa di chiave sufficientemente lunga da essa. Un semplice esempio di una funzione di derivazione è semplicemente una semplice funzione di hash, come SHA-512 o Whirlpool. Tale funzione di derivazione è facile da forzare, poiché viene eseguita molto rapidamente e non utilizza molte risorse, quindi è possibile eseguirla milioni di volte al secondo per provare milioni di password possibili al secondo. L'esecuzione su una GPU può estendersi a centinaia di milioni di password provate al secondo perché può calcolare molti hash in parallelo.
Ma schemi di crittografia come quello di Veracrypt usano una funzione di derivazione che è difficile da usare come forza bruta, perché richiede molto tempo e risorse di calcolo. Ad esempio, invece di eseguire un hash SHA-512 o Whirlpool sulla password una volta per ricavare la chiave, esegue la funzione hash più e più volte, migliaia di volte, ogni volta restituendo nuovamente l'output nella funzione hash. Veracrypt lo fa almeno 200.000 volte e fino a circa 650.000 volte. Quando si esegue la forzatura bruta di una password, è necessario eseguire la funzione di hash più volte, solo per tentare una singola password. Riduce il numero di password che è possibile eseguire la forza bruta al secondo da, ad esempio, 1 milione di password al secondo fino a un massimo di 1,5 (una e mezza) di password al secondo. Tutto questo, ma uccide la capacità di forza bruta. Le GPU sarebbero comunque in grado di farlo più velocemente, se funzionano su più password diverse contemporaneamente, ma si ottiene ancora circa 1 / 650.000 di capacità di eseguire la forza bruta.
Il che ci porta alla lunghezza della password. Se la tua password è breve o banale ("12345" o "hunter2"), è banale impadronirti di forza bruta qualunque cosa accada. Le password devono essere lunghe e imprevedibili tanto da non essere scoperte nei primi miliardi di tentativi in una forza bruta. La cosa buona è che ogni personaggio che aggiungi alla tua password moltiplica la sua resistenza alla forza bruta in modo significativo. Se hai una password di 20 caratteri che non è prevedibile (ad esempio lettere casuali con numeri), sarà praticamente impossibile alla forza bruta. In combinazione con la mitigazione della forza bruta di Veracrypt che rallenta la capacità della forza bruta di centinaia di migliaia di volte, ora una password di 16 caratteri è altrettanto sicura. E anche una password corta, ad esempio 10-12 caratteri, sarà probabilmente irrealizzabile per la forza bruta - cioè, potrebbe non essere ancora scoperta dopo mesi o anni di tentativi di forzatura bruta.