Il problema dell’identità digitale
Quando accediamo a un servizio online, il sistema deve rispondere a tre domande fondamentali e distinte — spesso confuse tra loro:
Chi sei?
Dichiarare la propria identità
Sei davvero tu?
Dimostrare di essere chi si dice
Cosa puoi fare?
Definire i permessi concessi
Password e autenticazione a fattori multipli
Il sistema più diffuso di autenticazione si basa sulla coppia UserID + Password — il modello “qualcosa che sai”. Ma la password da sola è sempre più insufficiente:
I tre fattori di autenticazione (MFA)
L’autenticazione forte richiede almeno due fattori appartenenti a categorie diverse. Combinare fattori diversi moltiplica esponenzialmente la difficoltà di un attacco:
Password, PIN, risposta a domanda segreta
Smartphone con app OTP, token hardware, smart card
Impronta digitale, riconoscimento facciale, iride
Le funzioni di Hash crittografiche
Una funzione di hash crittografica trasforma un dato di qualsiasi dimensione in una stringa di lunghezza fissa chiamata digest o impronta digitale. È uno dei mattoni fondamentali della sicurezza informatica moderna.
Una sola lettera maiuscola/minuscola produce un digest completamente diverso — nessuna correlazione visibile tra input simili.
Tre proprietà fondamentali
Conoscendo solo il digest è computazionalmente impossibile risalire all’input originale. Funzione one-way.
digest → x ✗ impossibile
Trovare due input diversi con lo stesso digest deve essere praticamente impossibile. Una collisione trovata invalida la funzione.
Lo stesso input produce sempre lo stesso output. Proprietà essenziale per la verifica delle password al login.
Algoritmi di hash — confronto
Come i server proteggono le password con l’hash
Utente inserisce la password
Server genera un salt casuale
Calcola SHA-256(password + salt)
Salva solo hash + salt nel DB — mai la password in chiaro
Utente inserisce la password
Server recupera il salt dal DB
Ricalcola SHA-256(password + salt)
Confronta con l’hash salvato. Coincide → accesso ✓
La firma digitale
La firma digitale è il meccanismo che garantisce autenticità, integrità e non ripudiabilità di un documento digitale. Non va confusa con la scansione di una firma autografa — è uno strumento crittografico basato su RSA e hash.
Calcola H = SHA-256(documento)
Cifra H con la sua chiave privata RSA → firma S
Invia documento + firma S al destinatario
Calcola H' = SHA-256(documento ricevuto)
Decifra S con la chiave pubblica di Ada → ottiene H
Se H = H' → documento autentico e integro ✓
Solo Ada ha la chiave privata
Qualsiasi modifica cambia H
Ada non può negare di aver firmato
Certificati digitali e PKI
La crittografia asimmetrica risolve il problema della distribuzione delle chiavi, ma ne crea uno nuovo: come faccio a sapere che una chiave pubblica appartiene davvero a quella persona? Senza risposta a questa domanda, gli attacchi MITM sono banali.
La soluzione è il certificato digitale: un documento informatico che associa in modo verificabile una chiave pubblica a un soggetto, firmato da un’autorità fidata.
Certification Authority (CA) e catena di fiducia
Il browser si fida del certificato di profgiagnotti.it perché è firmato da una CA intermedia, il cui certificato è firmato dalla Root CA che il browser conosce.
Struttura del certificato X.509
SSO, SAML e OAuth 2.0
Nei moderni ecosistemi digitali — cloud, PA, applicazioni enterprise — l’accesso non è più un semplice login con username e password. Esistono architetture distribuite che richiedono protocolli standardizzati per l’identità.
Single Sign-On (SSO)
Il SSO permette a un utente di autenticarsi una sola volta e accedere a più servizi senza reinserire le credenziali. Usato da Google Workspace, Microsoft 365, SPID.
L’Identity Provider diventa il punto critico: se l’account Google o Microsoft viene compromesso, l’attaccante accede a tutti i servizi collegati. È fondamentale proteggere l’IdP con MFA forte.
SPID — Sistema Pubblico di Identità Digitale
SPID è l’infrastruttura nazionale italiana di identità digitale, basata su SAML. Permette ai cittadini di accedere ai servizi della PA con un’unica identità digitale verificata. Dal punto di vista tecnico è un esempio concreto e reale di tutto ciò che abbiamo studiato.
Accede al portale universitario → seleziona “Accedi con SPID”
Il portale (SP) genera una richiesta SAML e redirige verso l’IdP scelto
L’utente si autentica presso l’IdP: username + password + OTP (livello 2)
IdP genera la SAML Assertion firmata digitalmente con codice fiscale, nome, cognome
Il portale verifica la firma digitale dell’IdP → accesso consentito
FIDO2 — autenticazione passwordless
FIDO2 è lo standard sviluppato dalla FIDO Alliance e W3C che elimina completamente la password, basandosi su crittografia a chiave pubblica e dispositivi fisici o biometrici. È supportato da tutti i browser moderni e sistemi operativi.
In FIDO2 la chiave privata è legata al dominio del servizio al momento della registrazione. Se un attaccante crea un sito phishing su google-fake.com, il dispositivo rifiuta di firmare la challenge perché il dominio non corrisponde a google.com — fisicamente impossibile da aggirare, a differenza delle password che possono essere digitate su qualsiasi sito.
- Zero password da ricordare o rubare
- Immunità totale al phishing
- Protezione contro credential stuffing
- Esperienza utente più fluida
- Richiede un dispositivo fisico registrato
- Perdita dispositivo → serve recovery
- Adozione ancora parziale nei servizi
- Protegge la chiave nel chip — non il chip stesso
Visione d’insieme — dalla password a FIDO2
- Identificazione (chi sei) ≠ Autenticazione (dimostralo) ≠ Autorizzazione (cosa puoi fare)
- Le funzioni di hash sono one-way, deterministe e collision-resistant — SHA-256 è lo standard; MD5 e SHA-1 sono compromessi
- La firma digitale combina hash + RSA: garantisce autenticità, integrità e non ripudio ma non confidenzialità
- I certificati X.509 risolvono il problema della fiducia nella chiave pubblica attraverso la catena CA → certificato
- SAML = autenticazione federata (XML, enterprise, SPID); OAuth 2.0 = autorizzazione (JSON, API, mobile); OIDC = identità su OAuth
- FIDO2 elimina la password usando crittografia a chiave pubblica legata al dominio — immune al phishing by design