Federico Lelli / SchoolCrittografia

LEZIONE 01 · FONDAMENTI

Prima dell’algoritmo: che cosa vuoi proteggere?

La crittografia studia tecniche matematiche per proteggere informazioni e comunicazioni in presenza di avversari. Cifrare è una delle sue operazioni; verificare una firma è un’altra.

Chi?
Un mittente, un destinatario e un possibile avversario. Qui si chiamano Alice, Bruno ed Eva.
Che cosa?
Il contenuto, l’integrità e la provenienza di dati digitali.
Quando?
Quando i dati sono memorizzati o attraversano un ambiente di cui non puoi fidarti completamente.
Dove?
Su un disco, in un backup, dentro un’applicazione o durante uno scambio in rete.
Perché?
Per ridurre ciò che un avversario può leggere, falsificare o attribuire a un altro soggetto.

Le parole, prima delle formule

Crittologia, crittografia e crittoanalisi
La crittologia comprende lo studio della costruzione dei sistemi crittografici, cioè la crittografia, e lo studio di come attaccarli o valutarne le debolezze, cioè la crittoanalisi.
Algoritmo e protocollo
Un algoritmo è una procedura definita per ottenere un risultato. Un protocollo stabilisce messaggi, ordine e verifiche tra più partecipanti. Un algoritmo corretto può essere inserito in un protocollo vulnerabile.
Testo in chiaro e testo cifrato
Il chiaro è il dato prima della cifratura: può essere testo, audio o un intero disco. Il cifrato è la rappresentazione prodotta dall’algoritmo di cifratura usando una chiave. Possedere il cifrato non significa poter ricavare il chiaro.
Chiave
Un parametro che seleziona una trasformazione all’interno di un algoritmo. In un sistema moderno è normalmente una sequenza di bit, non una parola scelta a memoria. Un bit vale 0 oppure 1; un byte contiene 8 bit.
Cifratura e decifratura
La cifratura trasforma il chiaro in cifrato; la decifratura autorizzata recupera il chiaro usando la chiave prevista. La crittoanalisi tenta di ottenere informazioni senza disporre legittimamente del segreto necessario.

Cinque obiettivi distinti

Le garanzie non sono intercambiabili
ObiettivoSignificatoNel contratto di Alice
Confidenzialità o riservatezzaImpedire la divulgazione del contenuto a soggetti non autorizzati.Eva intercetta il file ma non legge il prezzo.
IntegritàRilevare modifiche non autorizzate ai dati protetti.Bruno rileva se il prezzo passa da 100 a 900.
AutenticazioneVerificare un’identità dichiarata o l’origine di dati, secondo un metodo preciso.Bruno verifica quale chiave ha prodotto la firma.
Non ripudioDisporre di evidenze attribuibili utili a contrastare il disconoscimento di un’azione.Una firma e il suo contesto di validazione contribuiscono alla prova. Non eliminano ogni possibile contestazione.
Controllo degli accessiApplicare regole che consentono o negano operazioni su risorse.Il gestionale consente a Bruno di leggere il contratto ma non di cancellarlo.

Autenticazione e autorizzazione rispondono a domande diverse. La prima chiede «chi sei?» o «quale credenziale possiedi?»; la seconda «puoi eseguire questa operazione?». Un accesso con password corretta non autorizza automaticamente a leggere ogni file. La disponibilità, cioè poter usare dati e servizi quando servono, richiede anche backup, ridondanza e protezione dai guasti: la sola cifratura non la assicura.

Il modello di minaccia

Un modello di minaccia descrive beni da proteggere, capacità dell’avversario, ipotesi di fiducia e conseguenze di un attacco. Eva può soltanto ascoltare? È un attaccante passivo. Può sostituire messaggi, impersonare un server o ripetere richieste registrate? È un attaccante attivo. Un replay è il riutilizzo di un messaggio autentico: non serve modificarlo per provocare un secondo pagamento.

  1. Alice prepara il contratto in chiaro.
  2. La cifratura ne protegge il contenuto durante il viaggio.
  3. Un controllo crittografico permette a Bruno di rilevare alterazioni.
  4. Il software decide se Bruno è autorizzato ad aprirlo.

Una busta chiusa è solo una metafora

Non leggere un cifrato non impedisce di modificarne i byte. Alcuni schemi permettono persino modifiche prevedibili al chiaro. Per rilevarle serve una protezione di integrità, per esempio la cifratura autenticata della lezione 06. Inoltre la cifratura può lasciare visibili metadati: lunghezza, orari e destinatari della comunicazione.

Il principio di Kerckhoffs

La sicurezza di un sistema crittografico deve resistere anche quando l’avversario conosce il funzionamento del sistema: il segreto essenziale è la chiave. Pubblicare un algoritmo permette di esaminarlo; non rende automaticamente sicura qualsiasi implementazione. Per implementazione intendiamo il codice e i componenti che realizzano il metodo.

Controlla la comprensione

Un dipendente entra nel gestionale con le proprie credenziali e legge il contratto di un altro reparto. HTTPS ha fallito?

Ragiona sulla garanzia mancante

Non necessariamente. HTTPS può avere protetto correttamente il collegamento. Se il gestionale ha concesso un file che il dipendente non doveva vedere, il problema è nell’autorizzazione. Bisogna verificare le regole di accesso e la loro applicazione lato server.

Origine: video 01. Approfondimenti: fonti sui principi e sulle garanzie. Lessico: modello di minaccia.

Materiali didattici curati e rielaborati da Federico Lelli. Le fonti e i riferimenti specifici sono indicati nei materiali disponibili.