Insegnamento SICUREZZA INFORMATICA

Corso
Ingegneria informatica e robotica
Codice insegnamento
70A00053
Curriculum
Comune a tutti i curricula
Docente
Luca Grilli
Docenti
  • Luca Grilli
Ore
  • 48 ore - Luca Grilli
CFU
6
Regolamento
Coorte 2020
Erogato
2021/22
Attività
Caratterizzante
Ambito
Ingegneria informatica
Settore
ING-INF/05
Tipo insegnamento
Opzionale (Optional)
Tipo attività
Attività formativa monodisciplinare
Lingua insegnamento
ITALIANO
Contenuti
Concetti fondamentali: confidenzialità, integrità e disponibilità. Modelli per il controllo degli accessi. Principali primitive crittografiche a chiave segreta e a chiave pubblica. Autenticazione di sistemi e di persone. Sicurezza dei sistemi operativi. Sicurezza dei programmi. Protezione dei dati sensibili. Principali attacchi alle reti e alle applicazioni Web e relative contromisure.
Testi di riferimento
Dispense a cura del docente.

Testi consigliati.
Michael Goodrich, Roberto Tamassia. Introduction to Computer Security, Addison-Wesley, 2011.
Charlie Kaufman, Radia Perlman, Mike Speciner. Network Security: Private Communication in a Public World, Prentice Hall, 2003.
Obiettivi formativi
L'insegnamento ha un duplice obiettivo: (i) fornire agli studenti le conoscenze teoriche alla base dei principali algoritmi/protocolli crittografici impiegati in sicurezza informatica; (ii) rendere gli studenti in grado di applicare tali conoscenze nello sviluppo di sistemi software che offrano un determinato livello di sicurezza.

Di seguito sono elencate le principali conoscenze che gli studenti acquisiranno:
• principali primitive crittografiche a chiave segreta e a chiave pubblica;
• protocolli di autenticazione a chiave segreta e a chiave pubblica;
• modelli per il controllo degli accessi;
• gestione della sicurezza nei sistemi operativi;
• vulnerabilità del software, virus e codice malevolo;
• attacchi inferenziali e strategie per la protezione dei dati sensibili;
• cenni alla gestione della sicurezza nelle reti e al rilevamento di intrusioni;
• cenni alla gestione della sicurezza nelle applicazioni Web.

Di seguito sono elencate le principali abilità che gli studenti acquisiranno:
• capacità di riconoscere e classificare vulnerabilità e attacchi ai sistemi software;
• capacità di programmare in modo sicuro;
• capacità di progettare architetture di sistemi software e relativi protocolli di comunicazione in grado di garantire determinati livelli di sicurezza;
• capacità di configurare sistemi operativi e, in generale, sistemi informativi, in modo da rispettare prestabiliti requisiti di sicurezza.
Prerequisiti
Per la comprensione delle tematiche trattate è importante la conoscenza del linguaggio C e della programmazione Web. È inoltre importante avere familiarità con algoritmi e strutture dati fondamentali, con i sistemi operativi, le basi di dati, e i concetti di base delle reti e di Internet in particolare.
Metodi didattici
Le attività didattiche si svolgeranno secondo due principali modalità:

• Lezioni frontali (90% del tempo totale): saranno svolte lezioni frontali in aula. Ogni lezione consiste nell'illustrazione da parte del docente di specifiche tematiche di sicurezza informatica, attraverso la proiezione di appositi lucidi.

• Seminari tenuti dagli studenti (10% del tempo totale): ogni studente può decidere di tenere un seminario (della durata di 30-40 minuti) su una tematica rilevante e pertinente agli argomenti trattati nel corso, da concordare con il docente. Lo svolgimento del seminario vale come prova orale, ed esonera lo studente dal sostenere alcuni quesiti della prova scritta.
Altre informazioni
Oltre al ricevimento settimanale, il docente è disponibile a svolgere consultazioni individuali o di gruppo, in date e orari da concordare con gli studenti.
Modalità di verifica dell'apprendimento
Obiettivo. Valutare la conoscenza dei concetti teorici impartiti dal docente, verificare la capacità di analizzare la sicurezza di un sistema software e di progettare protocolli e sistemi relativamente sicuri e in grado di soddisfare determinati vincoli progettuali.

L'esame standard consiste in una prova scritta e una prova orale facoltativa strutturate come specificato di seguito.

Prova scritta
• Durata: 120 minuti.
• Punteggio: 30/30.
• Composizione: 5 quesiti principali, uno per ciascuna delle seguenti macro-tematiche: conoscenza e applicazione della crittografia a chiave segreta, conoscenza e applicazione della crittografia a chiave pubblica, protocolli di autenticazione, sicurezza dei sistemi operativi e del software, sicurezza in Internet e/o delle applicazioni Web.
Un quesito consiste in un esercizio e/o in una o più domande a stimolo aperto con risposta aperta.

La correzione della prova scritta viene presentata allo studente tramite un breve colloquio orale; lo studente può commentare e discutere il risultato e confrontarsi con il docente per capire se procedere o meno alla prova orale facoltativa.

Prova orale facoltativa
• Durata: 15 minuti.
• Punteggio: ± 3 punti.
• Composizione: 3 domande a stimolo aperto con risposta aperta.

Oltre all'esame standard è prevista una modalità di esame innovativa per gli studenti che seguono le lezioni. Nello specifico, ogni studente può decidere di tenere un seminario (della durata di 30-40 minuti e durante le ore di didattica) su una tematica rilevante e pertinente agli argomenti trattati nel corso, da concordare con il docente. Lo svolgimento del seminario vale come prova orale, ed esonera lo studente dal sostenere alcuni quesiti della prova scritta.
Programma esteso
Unità didattica: Modulo 1 - Introduzione, crittografia e autenticazione
Concetti fondamentali: confidenzialità, integrità, disponibilità, minacce e attacchi.
Modelli per il controllo degli accessi: matrice di controllo, liste di controllo, liste di capacità.
Controllo degli accessi basato sui ruoli.
Principi generali sulla crittografia a chiave segreta.
Concetti di base sui cifrari a blocchi.
Cenni ai cifrari DES e AES.
Cifrari a flusso: algoritmo RC4.
Modalità operative dei cifrari a blocchi: ECB, CBC e OFB.
Funzioni crittografiche di hash.
Tecniche crittografiche per il controllo di integrità sicuro: residuo CBC e HMAC.
Crittografia a chiave pubblica: algoritmi RSA e Diffie-Hellman.
Firma digitale.
Autenticazione di sistemi e di persone.
Protocolli di autenticazione a sfida e risposta.
Protocolli di autenticazione a conoscenza zero.

Unità didattica: Modulo 2 - Sicurezza del software, delle reti e del Web
Sicurezza dei sistemi operativi.
Sicurezza e monitoraggio dei processi.
Sicurezza del file system e della memoria.
Attacchi di tipo buffer overflow.
Sicurezza dei programmi.
Vulnerabilità ed errori di programma non malevoli.
Virus e altro codice malevolo.
Attacchi inferenziali ai dati sensibili.
Principali vulnerabilità delle reti.
Firewall e Tunneling.
Rilevamento di intrusioni.
Sicurezza delle applicazioni Web e dei browser.
Attacchi di tipo XSS Cross Site Scripting e SQL injection.
Condividi su