Resumos
Apontamentos universitários em formato Markdown do Obsidian.
User Authentication
download Descarregar MDL'autenticazione è la prima linea di difesa e si sviluppa in due fasi:
- Identificazione: l'utente presenta un identificatore unico e non segreto (es. username).
- Verifica: l'utente dimostra la corrispondenza con l'identità dichiarata tramite informazioni segrete o uniche.
1. Mezzi di Autenticazione
L'autenticazione può basarsi su:
- Qualcosa che conosci: Password, PIN, risposte a domande.
- Qualcosa che hai: Token, smart card, chiave fisica (dongle).
- Qualcosa che sei (Biometrica statica): Impronta digitale, retina, volto.
- Qualcosa che fai (Biometrica dinamica): Voce, scrittura, ritmo di battitura.
2. Sistemi basati su Password
Le password sono segreti condivisi.
Tipologie di Attacco
- Attacco al singolo account: Tentativi di guessing (mitigato dal throttling e dai timeout).
- Attacco alle password popolari: Provare password comuni su molti account.
- Monitoring (Sniffing): Intercettazione delle password inviate in chiaro (mitigato da HTTPS).
Forza della Password ed Entropia
La forza è misurata dall'entropia (caos). Bit necessari per simbolo:
- Cifre (base 10): 3.32 bit.
- Lettere minuscole (az): 4.70 bit.
- Caratteri ASCII stampabili (94): 6.55 bit.
Il problema umano: Le password non sono casuali. Nel 2016, le 5000 password più comuni coprivano il 20% degli utenti. L'entropia reale è spesso di soli 20 bit.
Strategie di miglioramento
- Controllo reattivo: Segnalare password deboli dopo che sono state scelte.
- Controllo proattivo: Password meter che guidano l'utente durante la scelta (es. Data-Driven Password Meter con 21 euristiche).
- Consigli moderni: Evitare vincoli innaturali (es. "metti un carattere speciale"), preferire la lunghezza, ammettere spazi ed emoji, eliminare la scadenza obbligatoria.
3. Memorizzazione delle Password
- In chiaro: Estremamente pericoloso (vulnerabile a insider e outsider).
- Cifrato: Richiede la protezione della chiave di cifratura sul server.
- Hashing: Salvare l'hash della password (es. SHA-256).
- Salting: Aggiungere una stringa casuale (Salt) prima di calcolare l'hash.
- Perché? Impedisce l'uso di Rainbow Tables. L'attaccante deve pre-calcolare gli hash per ogni possibile valore del salt, aumentando lo spazio di ricerca di un fattore $2^s$. Questa è la soluzione standard attuale.
4. Autenticazione a Due Fattori (2FA)
- SMS: Il server invia un codice temporaneo (meno sicuro per via del SIM swapping).
- TOTP (Time-based One-Time Password): Codice generato da un'app tramite $H(\text{segreto} \ || ext{ora})$.
- U2F (Universal 2nd Factor): Dongle USB con coppia di chiavi. Il server invia una challenge che il dongle firma con la propria chiave privata.