Zusammenfassungen

Universitätsnotizen im Markdown-Format aus Obsidian.

User Authentication

download MD herunterladen

L'autenticazione è la prima linea di difesa e si sviluppa in due fasi:

  1. Identificazione: l'utente presenta un identificatore unico e non segreto (es. username).
  2. 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

  1. In chiaro: Estremamente pericoloso (vulnerabile a insider e outsider).
  2. Cifrato: Richiede la protezione della chiave di cifratura sul server.
  3. Hashing: Salvare l'hash della password (es. SHA-256).
  4. 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)

  1. SMS: Il server invia un codice temporaneo (meno sicuro per via del SIM swapping).
  2. TOTP (Time-based One-Time Password): Codice generato da un'app tramite $H(\text{segreto} \ || ext{ora})$.
  3. U2F (Universal 2nd Factor): Dongle USB con coppia di chiavi. Il server invia una challenge che il dongle firma con la propria chiave privata.