Il problema fondamentale dell’autenticazione tramite password
Esamini perché l’autenticazione tradizionale tramite password crea superfici d’attacco lato server e quali protocolli risolvono il problema.
Il problema fondamentale dell’autenticazione tramite 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.
Il modello tradizionale delle password
Nell'autenticazione tradizionale tramite password, il client invia la password, o un suo hash, al server, che la confronta con un valore memorizzato. Questo modello è semplice, ma concentra un rischio enorme sul server: la compromissione del database espone simultaneamente le credenziali di tutti gli utenti.
Compromissione del server e cracking degli hash
Quando un attaccante viola un server e sottrae il database delle password, può condurre un attacco a dizionario offline alla massima velocità della GPU, senza alcuna limitazione della frequenza. Le GPU moderne possono verificare miliardi di tentativi di password al secondo contro hash bcrypt o SHA-256, rendendo il recupero delle password deboli o comuni banale.
Il riutilizzo delle password amplifica le violazioni
Gli studi mostrano costantemente che la maggior parte degli utenti riutilizza le password su più siti. Una singola compromissione del server può quindi esporre credenziali valide su altri servizi. Gli attacchi di credential stuffing automatizzano la verifica di coppie nome utente/password sottratte contro i siti web più popolari, trasformando una violazione in molte.
Il phishing aggira le protezioni lato server
Il rafforzamento delle password lato server (hashing robusto, salting e limitazione della frequenza delle richieste) non offre alcuna protezione contro il phishing. Quando un utente inserisce la propria password in un sito contraffatto, l'attaccante ottiene direttamente la password in chiaro, indipendentemente da quanto bene il server legittimo la memorizzi. Oggi il phishing è il principale vettore di furto delle credenziali.
Credential stuffing su larga scala
Nel dark web sono disponibili pubblicamente database contenenti miliardi di coppie di nomi utente e password sottratte in violazioni storiche. Gli attaccanti utilizzano strumenti automatizzati per testare queste credenziali contro istituti finanziari, siti di e-commerce e provider di posta elettronica su scala industriale, riuscendo ogni volta che gli utenti hanno riutilizzato una password compromessa in precedenza.
Il server conosce la password
Nell'autenticazione tradizionale con password, il server viene necessariamente a conoscenza della password in chiaro dell'utente durante il processo di accesso (anche solo per poco tempo, prima dell'hashing). Ciò significa che ogni operatore del server deve essere considerato pienamente affidabile, affinché non utilizzi in modo improprio, registri o esponga accidentalmente le credenziali, una garanzia raramente possibile nella pratica.
Ciò che vogliamo davvero
Un protocollo di autenticazione ideale consentirebbe all'utente di dimostrare di conoscere la propria password senza mai rivelarla al server. Il server dimostrerebbe inoltre di essere quello legittimo (autenticazione reciproca), impedendo il phishing. Un database del server compromesso non rivelerebbe nulla di utile a un attaccante.
Prove a conoscenza zero per l'autenticazione
Le prove a conoscenza zero forniscono un quadro teorico per ottenere questo risultato: un dimostratore può convincere un verificatore della validità di un segreto senza rivelare il segreto stesso. I protocolli di autenticazione con password, come SRP e OPAQUE, applicano questi principi per autenticare senza trasmettere direttamente la password o memorizzarla lato server.
Resistenza agli attacchi a dizionario
I protocolli di autenticazione con password robusti dovrebbero resistere agli attacchi a dizionario offline anche se i dati memorizzati dal server vengono compromessi completamente. Ciò significa che il verificatore memorizzato non deve poter essere utilizzato direttamente per impersonare l'utente e non deve consentire di indovinare efficientemente la password offline senza la collaborazione del server.
Il problema della fiducia su larga scala
Con centinaia di servizi che richiedono l'autenticazione, il modello tradizionale impone di affidare a ogni gestore di servizi un segreto che potrebbe essere riutilizzato altrove. La soluzione consiste nell'eliminare completamente la trasmissione delle password, memorizzare solo verificatori non riutilizzabili e vincolare l'autenticazione all'identità dello specifico server per impedire il phishing.
La strada da seguire
Le soluzioni moderne includono SRP (Secure Remote Password), OPAQUE e FIDO2/passkeys. Ognuna affronta aspetti diversi del problema fondamentale. SRP e OPAQUE eliminano la conoscenza della password da parte del server. FIDO2/passkeys eliminano completamente le password utilizzando la crittografia a chiave pubblica vincolata all'origine specifica.
Verifica delle vulnerabilità dell'autenticazione con password
Quale attacco NON viene impedito da un hashing robusto delle password lato server (ad esempio, bcrypt)?
Riepilogo della lezione: il problema delle password
L'autenticazione tradizionale con password richiede ai server di verificare segreti di cui vengono a conoscenza, consente il cracking offline dopo le violazioni e viene sconfitta dal phishing. Il riutilizzo delle password trasforma le singole violazioni in problemi sistemici. Il sistema ideale fornisce autenticazione reciproca senza trasmettere segreti, memorizza solo verificatori non attaccabili tramite cracking e vincola l'autenticazione all'identità del server.
Domande Frequenti
La lezione «Il problema fondamentale dell’autenticazione tramite password» è gratuita?
Sì — il testo completo di «Il problema fondamentale dell’autenticazione tramite 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 «Il problema fondamentale dell’autenticazione tramite password»?
Esamini perché l’autenticazione tradizionale tramite password crea superfici d’attacco lato server e quali protocolli risolvono il problema. 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 «Il problema fondamentale dell’autenticazione tramite 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
- Il problema fondamentale dell’autenticazione tramite password
- SRP: Secure Remote Password Protocol
- Protocolli PAKE e loro proprietà
- Autenticazione senza password: WebAuthn e FIDO2