Sicurezza delle password: Come generare, memorizzare e controllare password robuste
Risposta rapida
Genera password casuali di oltre 16 caratteri con il nostro generatore di password, non riutilizzarle mai e archiviarle in un gestore di password. Sul server, esegui l'hash con bcrypt (fattore di lavoro 12+), scrypt o Argon2id, mai MD5 o SHA-256. Violazioni di controllo tramite il k-anonimato di Have I Been Pwned API. Non trasmettere o registrare mai password in chiaro.
Introduzione
Password deboli, riutilizzate e archiviate in modo errato causano la maggior parte dei furti di account. Questa guida risolve quattro problemi concreti: (1) generare password con entropia sufficiente per resistere alla forza bruta, (2) eseguire l'hashing delle password con un KDF lento anziché un hash veloce, (3) evitare il riutilizzo tra servizi e (4) controllare le credenziali trapelate. Ogni soluzione è attuabile e supportata da strumenti.
Passo dopo passo
-
Genera una password ad alta entropia
Utilizza il generatore di password per creare una password di oltre 16 caratteri combinando lettere maiuscole, minuscole, cifre e simboli. Entropia = log2(charsetSize^length); un alfabeto di 16 caratteri di 94 simboli fornisce ~ 105 bit, il che è impossibile con la forza bruta anche a 10 ^ 12 tentativi/secondo.
-
Non riutilizzare mai le password tra i servizi
Riutilizzare una password significa che una singola violazione compromette ogni account che la condivide. Genera una password univoca per servizio e memorizzala in un gestore di password (Bitwarden, 1Password, KeePassXC). La password principale è l'unica che devi ricordare: rendila una passphrase lunga.
-
Hashing le password con un KDF lento sul server
Non archiviare mai le password con MD5, SHA-1 o SHA-256 raw: sono troppo veloci e le GPU possono provarne miliardi al secondo. Utilizza bcrypt con fattore di lavoro 12+, scrypt con N=2^17 o Argon2id con 64 MB di memoria. Questi KDF sono deliberatamente lenti e richiedono molta memoria per sconfiggere gli attacchi GPU/ASIC.
-
Usa un sale per sconfiggere i tavoli arcobaleno
Un salt è un valore casuale univoco per password, anteposto o combinato prima dell'hashing. Garantisce che password identiche producano hash diversi, rendendo inutili le tabelle arcobaleno precalcolate. bcrypt e Argon2 generano e incorporano automaticamente il salt: non crearne uno tuo.
-
Controllo delle password violate
Prima di accettare una password, confrontala con Have I Been Pwned API utilizzando il protocollo k-anonymity: invia solo i primi 5 caratteri dell'hash SHA-1, ricevi l'elenco dei suffissi corrispondenti e confronta localmente. Ciò non rivela mai la password completa per API.
Esempi
Password generata complessa (16 caratteri, entropia di ~105 bit)
Ingresso: Lunghezza 16, tutte le classi di personaggi
Produzione: K9$mP2#vL7@nQ4!x (casuale, unico, mai riutilizzato)
Passphrase per una password principale (memorabile + forte)
Ingresso: 4 parole comuni casuali
Produzione: correct-horse-battery-staple (~44 bits but easy to remember; use 5-6 words for ~60+ bits)
hash bcrypt di una password (fattore di lavoro 12)
Ingresso: password123 con costo bcrypt 12
Produzione: $2b$12$N9qo8uLOickgx2ZMRZoMy.MrqKQp7vqB4V1e5sTq7vqB4V1e5sTq (salt + costo + hash incorporato)
Problemi comuni
- Utilizzo di MD5 o SHA-256 per l'hashing delle password: entrambi sono hash veloci. Una moderna GPU calcola circa 10 miliardi di SHA-256/s, decifrando una password di 8 caratteri in pochi minuti. Utilizza sempre bcrypt, scrypt o Argon2id.
- Riutilizzo di una password su più siti: una violazione nel sito più debole fa trapelare la password di ogni sito. Genera password univoche e archiviale in un gestore.
- Memorizzazione delle password in testo semplice o con crittografia reversibile: se il database perde informazioni, ogni account viene immediatamente compromesso. L'hashing è unidirezionale e irreversibile: nemmeno il server può ripristinare l'originale.
- Basso fattore di lavoro in bcrypt: il costo 4 andava bene nel 2002; nel 2026 il costo di utilizzo è 12+ (circa 4096 iterazioni). Effettua nuovamente l'hash all'accesso per aggiornare i vecchi hash senza forzare la reimpostazione della password.
Suggerimenti
- Punta ad almeno 100 bit di entropia per gli account di alto valore, ovvero 16 caratteri casuali da un alfabeto di 94 simboli o 6 parole diceware casuali.
- Attiva l'autenticazione a due fattori (TOTP o chiave hardware) per ogni account che la supporta: una password complessa da sola non è sufficiente se la password viene oggetto di phishing.
- Utilizza l'opzione "escludi caratteri ambigui" del nostro generatore di password (0/O, 1/l/I) quando le password verranno lette ad alta voce o digitate dalla stampa.
- Ruota le password solo dopo una violazione confermata, non secondo un programma fisso: la rotazione forzata spinge gli utenti a modelli prevedibili come Spring2026!.