0Pricing
Cryptology Academy · Lezione

Perché SHA-256 semplice non è sufficiente per le password

Comprenda le rainbow table, la velocità degli attacchi brute force e il salt.

Perché SHA-256 semplice non è sufficiente per le password è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 1 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.

Benvenuto

La memorizzazione sicura delle password è uno degli argomenti più fraintesi della sicurezza. In questa lezione capiremo perché gli hash veloci come SHA-256 sono del tutto inadatti alle password.

Cosa succede quando i database vengono violati

Le violazioni dei database avvengono continuamente. Nel 2024, RockYou2024 ha divulgato 10 miliardi di password. Se le password degli utenti sono memorizzate in forma recuperabile, gli aggressori riusciranno a recuperarle.

Memorizzazione ingenua con SHA-256

Schema errato: hashed = sha256(password) store(username, hashed) Problemi: (1) sha256 è estremamente veloce, (2) la stessa password produce lo stesso hash (assenza di salt), (3) esistono rainbow table per le password comuni.

Attacco con rainbow table

Una rainbow table è una mappatura precalcolata da hash a password per milioni di password comuni. SHA-256('password') produce sempre lo stesso hash. Consultazione della tabella: decifratura istantanea della maggior parte delle password.

Il ruolo del salt

Salt = byte casuali anteposti alla password prima dell'hashing. hash = sha256(salt + password) Ogni utente riceve un salt univoco. Le rainbow table diventano inutili: l'aggressore deve eseguire il brute force su ogni utente individualmente.

Ma il salt da solo non basta

Una GPU moderna calcola 10 MILIARDI di hash SHA-256 al secondo. Anche con salt univoci, un aggressore che dispone degli hash trapelati può eseguire il brute force di password di 8 caratteri in pochi minuti.

Il problema della velocità

SHA-256 è stato progettato per essere veloce, ad esempio per l'integrità dei file e TLS. La velocità è un nemico nell'hashing delle password. Servono algoritmi volutamente lenti e resistenti al brute force.

Key stretching

Il key stretching applica la funzione di hash migliaia di volte: for i in range(100000): h = sha256(h). Questo rallenta sia l'aggressore sia il difensore, ma il vantaggio hardware continua a favorire l'aggressore.

Funzioni memory-hard

I moderni password hasher richiedono grandi quantità di RAM, non solo cicli della CPU. Le GPU dispongono di una quantità limitata di RAM per core rispetto alle CPU. La caratteristica memory-hard di Argon2 neutralizza i vantaggi di GPU e ASIC.

Errori comuni

Da evitare: - sha256(password) - sha256(salt + password) without iteration - md5(password) (or any MD5) - Encrypting passwords (can be decrypted) - sha256(sha256(password)) (still fast)

Cosa usare invece

Usi: bcrypt (il più ampiamente utilizzato), Argon2id (raccomandato da OWASP e memory-hard), PBKDF2-SHA256 (conforme a FIPS e accettabile). Tutti e tre sono volutamente lenti e includono il salt per progettazione.

Verifica rapida

Perché SHA-256 non è adatto all'hashing delle password anche quando si usa un salt?

Riepilogo

SHA-256 non è adatto alle password. Nel prossimo argomento studieremo bcrypt, l'algoritmo che rende intenzionalmente lento l'hashing e resistente agli attacchi hardware.

Domande Frequenti

La lezione «Perché SHA-256 semplice non è sufficiente per le password» è gratuita?

Sì — il testo completo di «Perché SHA-256 semplice non è sufficiente per le password» è 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 «Perché SHA-256 semplice non è sufficiente per le password»?

Comprenda le rainbow table, la velocità degli attacchi brute force e il salt. 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 1 di 4.

Quanto tempo richiede la lezione «Perché SHA-256 semplice non è sufficiente per le password»?

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. Perché SHA-256 semplice non è sufficiente per le password
  2. bcrypt: algoritmo e fattore di costo
  3. Argon2: hashing delle password memory-hard
  4. PBKDF2 e scelta dell'algoritmo giusto
← Torna a Cryptology Academy