 |
LUCA FERRETTI
Professore Associato Dipartimento di Scienze Fisiche, Informatiche e Matematiche sede ex-Matematica
|
Insegnamento: Crittografia applicata
Informatica (D.M.270/04) (Offerta formativa 2022)
Obiettivi formativi
Il corso ha l’obiettivo di presentare metodi, protocolli e tecnologie basati sull’applicazione di schemi e tecniche di crittografia per garantire la sicurezza di protocolli, architetture e sistemi informatici. Il corso inoltre propone lo studio e l’utilizzo sperimentale di tecnologie hardware associate all’utilizzo sicuro di schemi e protocolli crittografici.
Gli argomenti affrontati nel corso sono fondamentali per la comprensione e potenzialmente la progettazione di soluzioni moderne di sicurezza informatica. A questo scopo, il corso affronta anche tematiche legate alla comprensione e alla modellazione di attacchi di sicurezza informatica ai sistemi reali che influenzano la progettazione e l'impiego di tecniche di crittografica, così come l'integrazione con altre tecniche di sicurezza informatica. Ad esempio, verranno presi in analisi alcuni popolari casi d'uso nell'ambito di differenti paradigmi di comunicazione, storage, autenticazione e autorizzazione, e sistemi hardware e software con caratteristiche eterogenee.
Prerequisiti
Il corso assume che gli studenti abbiano già acquisito conoscenze relative a:
- protocolli di rete (stack TCP/IP, HTTP)
- principi di sistemi operativi
Il corso affontra inoltre argomenti pratici per cui è opportuna la conoscenza di un linguaggio di programmazione (consigliato: Python) e la familiarità di comandi e script Bash per l'interazione con sistemi operativi Linux.
Nonostante i concetti fondamentali associati alla sicurezza informatica per la comprensione degli argomenti del corso verranno affrontati in modo sintetico durante lo svolgimento del corso stesso, è consigliato affrontare il corso con una conoscenza preliminare di alcuni concetti generali di sicurezza informatica, quali concetti e paradigmi relativi alla sicurezza dei sistemi informatici, caratterizzazione di attacchi e difese informatiche a livello di sistema e di rete. Questi concetti sono acquisibili ai corsi di Sicurezza Informatica e Sviluppo Sicuro del Software.
In modo simile, alcune parti del corso (ad esempio, alcuni argomenti di approfondimento o alcune osservazioni avanzate) possono essere comprese in modo più completo da parte di chi ha acquisito conoscenze teoriche più approfondite nell'ambito della crittografia. Questi concetti sono acquisibili al corso di Algoritmi di Crittografia.
Programma del corso
Introduzione a concetti di crittografia moderna, delle primitive fondamentali (~1 CFU):
- garanzie di sicurezza fondamentali degli schemi crittografici;
- primitive e framework popolari degli schemi crittografici.
Introduzione alla modellazione di schemi crittografici applicati (~1 CFU):
- modellazione degli scenari e delle minacce (threat modeling);
- attacchi notevoli alle garanzie di sicurezza fondamentali;
- tecniche per la dimostrazione della sicurezza di protocolli.
Tecniche per la protezione dei dati in contesti applicati (~2 CFU):
- protocolli di comunicazione sicura;
- tecniche di protezione di storage;
- architetture per la gestione delle identità e distribuzione di chiavi.
Tecniche di crittografia per autenticazione e autorizzazione (~1 CFU):
- modellazione dei protocolli di autenticazione e dei relativi attacchi;
- protocolli standard di autenticazione e schemi di protezione delle credenziali.
Tecnologie hardware associate agli schemi crittografici (~1 CFU):
- tecnologie e dispositivi per autenticazione forte;
- utilizzo di hardware per la protezione delle chiavi crittografiche e come trust anchor.
Verranno inoltre proposti alcuni argomenti di approfondimento agli studenti interessati, includendo alcune tecniche più avanzate o sperimentali volte all'introduzione a tematiche di ricerca nell’ambito della crittografia applicata, ad esempio:
- schemi avanzati di crittografia applicata per la sicurezza di dati esternalizzati;
- tecniche di autenticazione avanzate;
- privacy enhancing technologies.
Metodi didattici
Insegnamento teorico in aula con supporto di proiettore e slide.
Insegnamenti pratici dove gli studenti possono utilizzare un proprio computer per riprodurre le esercitazioni o per svolgere esercizi proposte dal docente.
Durante lo svolgimento del corso vengono lasciati degli argomenti di approfondimento e degli esercizi di laboratorio facoltativi aggiuntivi che gli studenti possono svolgere al di fuori dell'orario di lezione per esercitarsi.
Testi di riferimento
Gli studenti potranno conseguire il corso studiando sulle slide proposte dal docente e su numerose risorse online disponibili gratuitamente (documenti di standard, articoli scientifici e divulgativi, documentazioni tecniche).
Gli studenti potranno appoggiarsi inoltre ad alcuni capitoli selezionati da libri di testo per studio autonomo e per approfondimenti:
- “Serious Cryptography”, Aumasson
- “Introduction to Modern Cryptography”, Katz e Lindell
- “Applied Cryptography”, Schneier
- “Foundations of Cryptography - Volume 2”, Goldreich
- “A Graduate Course in Applied Cryptography”, Boneh e Shoup
Verifica dell'apprendimento
L'esame è costituito da un esame orale in cui lo studente dovrà dimostrare di conoscere le tematiche teorico-pratiche trattate in aula, e di saper discutere problemi di applicazione delle conoscenze.
La durata dell'esame è stimata all'incirca in un'ora.
Risultati attesi
Conoscenza e comprensione:
- dei principali framework di utilizzo di schemi di crittografia moderna e delle garanzie di sicurezza.
- delle principali classi di attacco e delle tecniche di sicurezza associate.
- delle principali tecnologie hardware legate alla gestione corretta degli schemi e protocolli di crittografia.
Capacità di applicare conoscenza e comprensione:
- di analisi di potenziali classi di vulnerabilità nell'ambito di errori di istanziamento o di varianti errate di misure di tecniche di crittografia note.
- capacità di utilizzo di strumenti software per applicare conoscenze teoriche acquisite.