Insegnamento
|
CFU
|
SSD
|
Ore Lezione
|
Ore Eserc.
|
Ore Lab
|
Ore Studio
|
Attività
|
Lingua
|
1047622 -
CRYPTOGRAPHY
(obiettivi)
Obiettivi Generali Lo scopo dell'insegnamento è quello di insegnare i fondamenti della crittografia, che è la componente principale per la sicurezza nelle applicazioni digitali odierne.
Obiettivi Specifici Gli studenti impareranno la metodologia della sicurezza dimostrabile, che permette di dimostrare la sicurezza dei moderni crittosistemi in senso matematico.
Conoscenza e Comprensione -) Conoscenza dei fondamenti matematici della crittografia moderna. -) Conoscenza delle principali assunzioni crittografiche, su cui si basa la sicurezza dei moderni crittosistemi. -) Conoscenza degli schemi crittografici usati nella vita reale. Comprensione delle loro proprietà (teoriche e pratiche).
Applicazione di Conoscenza e Comprensione -) Come selezionare la giusta primitiva crittografica per una data applicazione. -) Come analizzare la sicurezza di un dato crittosistema.
Autonomia di Giudizio Gli studenti saranno in grado di giudicare se una data primitiva crittografica è sicura oppure no.
Abilità Comunicative Come descrivere la sicurezza di una costruzione crittografica nel linguaggio della sicurezza dimostrabile.
Capacità di Apprendimento Successivo Gli studenti interessati alla ricerca verranno a conoscenza di alcuni problemi aperti nell'area, ed otterranno le basi necessarie per studi più approfonditi in materia.
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
1022807 -
DISTRIBUTED SYSTEMS
(obiettivi)
I sistemi distribuiti sono alla base di qualiasi applicazione informatica moderna. Il corso si propone di fornire agli studenti una chiara caratterizzazione della concorrenza in un sistema distribuito considerando le caratteristiche di tale sistema come guasti, latenza variabile nelle comunicazioni e assenza di un riferimento temporale globale. Successivamente si analizzeranno i principali modelli di sistema e le astrazioni di base per la comunicazione e la sincronizzazione. Infine si forniranno i concetti legati al consenso distribuito ed ai sistemi di tipo distributed ledger.
Risultati di apprendimento attesi Lo studente sarà in grado di progettare sistemi e algoritmi distribuiti al di sopra di diversi modelli di sistema (sincrono, asincrono e parzialmente sincrono) capendo impossibilità e limitazioni nelle prestazioni. Inoltre avrà la capacita di analizzare sistemi e piattaforme reali attraverso modelli astratti più facili da trattare.
-
Di Luna Giuseppe Antonio
( programma)
Introduzione -Storia e Motivazioni. Riferimenti: https://sites.google.com/view/distributed-sytems-2019/lectures
M1: Models, Abstractions, and Basic Concepts -Processes, communication, traces and execution, I/O Automata; -Failures: crash-stop, and byzantine; -Event based programming: abstraction, specification and implementations; -Links: fair-lossy, stubborn, point-to-point. References: See reading material on https://sites.google.com/view/distributed-sytems-2019/lectures
M2: Time in Distributed Systems -Synchronous, asynchronous, and eventually synchronous systems; -Clock Synchronization: Christian, Berkley, NTP, MAX-ALGORITHM; - Clock sync. Tree based vs Fully-Distributed Algorithms, Local Skew vs Global Skew, Max algorithm and its analysis, The limits of ordering with timestamps -Logical clocks and Vector Clock, Happened-before relationship. -Encapusaliting time in failure detectors: P, $\Diamond$-P; -Leader election and Eventual Leader Election -Distributed system models: fail-stop, fail-noisy, fail-silent." References: See reading material on https://sites.google.com/view/distributed-sytems-2019/lectures
M3: Basic Broadcast Primitives - Best effort broadcast; - Reliable broadcast; - Uniform reliable broadcast; - Causal broadcast. References: See reading material on https://sites.google.com/view/distributed-sytems-2019/lectures
M4: Shared Memories - Consistency: regular, sequential consistency and linearizability; - Regular (1,N) register: Message Passing and (1,1)-Regular implementation - Atomic (1,1), (1,N) and (N,N) registers; - Non composability of sequential consistency; -Relationship between consistency properties;" References: See reading material on https://sites.google.com/view/distributed-sytems-2019/lectures
M5: Consensus -Consensus specification; -Hiearchical consensus: uniform and non-uniform; -FLP: proof not required only the statement -Paxos. References: See reading material on https://sites.google.com/view/distributed-sytems-2019/lectures
M6: Total Ordering and Replicated State Machine -Total Order broadcast -Replicated State Machine and Raft. -Active Replication vs Primary Backup References: See reading material on https://sites.google.com/view/distributed-sytems-2019/lectures
M7: BFT Intro: - Byzantine failures. - Authenticated Channel and crypto assumptions. - Byzantine Broadcast, consistent and reliable. Registers: -Registers with Byzantine failures. - Safe Register (1,N). -Regular Register (1,N) [The regular register only the version with signatures is required]
Consensus: -synchronous systems: an impossibility result: the necessity of 3f+1 (Not Formal see slides). -synchronous systems: King Algorithm -eventually-synchronous system: PBFT" References: See reading material on https://sites.google.com/view/distributed-sytems-2019/lectures
M8: Blockchains -Permissionless: lottery-based blockchains; -Permissioned: the PBFT re-branding and intel sawtooth;
References: See reading material on https://sites.google.com/view/distributed-sytems-2019/lectures
[1]: Introduction to Reliable and Secure Distributed Programming - C. Chacin, R. Guerraoui, and L. Rodrigues. 2011.
https://sites.google.com/view/distributed-sytems-2019/lectures
(Date degli appelli d'esame)
|
6
|
ING-INF/05
|
24
|
36
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
1027171 -
NETWORK INFRASTRUCTURES
(obiettivi)
Il corso presenta i concetti di base, i protocolli e le architetture delle attuali infrastrutture di rete. Particolare attenzione è dedicata alla rete di accesso a banda larga, alla rete di trasporto ottica e alle reti wireless di nuova generazione. Inoltre, vengono descritte le principali tecnologie per il supporto della Qualità di Servizio in una infrastruttura di rete.
Risultati di apprendimento attesi Alla fine del corso gli studenti avranno conoscenze sulle principali tecnologie ed infrastrutture di reti di comunicazioni tra cui: xDSL, PON, LTE, 5G, SDH, OTN, SDN. Inoltre saranno in grado di configurare ed analizzare reti IP e relativi protocolli grazie alle conoscenze acquisite utilizzando il tool Netkit. Specifici progetti svolti durante il corso permetteranno agli studenti di applicare le conoscenze acquisite a scenari e applicazioni di rete innovativi.
-
CUOMO FRANCESCA
( programma)
Richiami sulle tecnologie di reti TCP/IP, LAN/MAN. Le reti telefoniche (Architettura, i canali digitali, le gerarchie di commutazione, la segnalazione SS7) Accesso alla rete
Reti di accesso in rame a banda larga ADSL e VDSL, soluzioni di networking accesso basato su fibra: le PON e relative evoluzioni Metro Ethernet / Gigabit Ethernet Reti wireless Multihop/3G/4G La famiglia Wi-xx (WiGi, WiMax e reti mesh) Sistemi 4G: LTE e LTE-A Evoluzione 5G
Rete di trasporto
Concetti di networking ottico I livelli di collegamento ottico (SONET, WDM) Optical Transport Network basate su DWDM: caratterizzazione singolo collegamento, componenti ottici e dispositivi, sistemi e reti Qualità del servizio (QoS) in rete Controllo di rete (Software Defined Networks e OpenFlow)
Lucidi del corso e altro materale disponibile su: http://francescacuomo.site.uniroma1.it/didattica/network-infrastructures
(Date degli appelli d'esame)
|
6
|
ING-INF/03
|
24
|
36
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
1055043 -
STATISTICS
(obiettivi)
Il corso prevede argomenti e temi di utilità e rilevanza specifica per la Cybersecurity. Fa massivo utilizzo di attività pratiche di programmazione in classe al computer, con linguaggi ad oggetti e IDE di ultima generazione, e con implementazione di algoritmi statistici, metodi Monte Carlo e simulazioni statistiche. Prevede, inoltre, attività di ricerca individuale e creazione di blog online personali, contenenti ricerche e approfondimenti sui temi affrontati a lezione.
Conoscenza e Comprensione Comprendere i concetti statistici fondamentali tra cui il campionamento, la sperimentazione, la variabilità, distribuzione, l'associazione, la causalità, le tecniche di stima puntale e intervallare, i test di ipotesi e il concetto di significatività. Esaminare e analizzare argomenti statistici e apprezzare la rilevanza e l'importanza delle statistiche.
Applicazione della conoscenza e comprensione Lo studente acquisirà le seguenti competenze: raccolta, organizzazione e interpretazione di dati numerici; interpretare e comunicare i risultati di un'analisi statistica. Comprendere e prendere decisioni informate basate sull'analisi quantitativa.
|
6
|
SECS-S/01
|
24
|
36
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
1041792 -
BIOMETRIC SYSTEMS
(obiettivi)
Obiettivi generali: Essere in grado di progettare e valutare un sistema biometrico o multibiometrico
Obiettivi specifici: Conoscere le caratteristiche e le tecniche fondamentali relative alle biometrie fisiche come volto, impronte, iride, ecc., e comportamentali come camminata, firma (caratteristiche dinamiche), stile di battitura, ecc. Conoscere le caratteristiche dell’architettura di un sistema biometrico: sistemi unimodali e multimodali. Essere in grado di valutare le prestazioni di un sistema biometrico in base alla modalità adottata: verifica, identificazione. Essere in grado di valutare/garantire la robustezza di un sistema biometrico rispetto ad attacchi di spoofing (furto di identità).
Conoscenza e comprensione: Fondamenti teorici della progettazione di un sistema biometrico e delle tecniche di estrazione/confronto delle caratteristiche specifiche per i principali tratti biometrici.
Applicare conoscenza e comprensione: Essere in grado di progettare ed implementare una applicazione di riconoscimento biometrico per almeno uno tratto biometrico.
Capacità critiche e di giudizio: Essere in grado di valutare le prestazioni e la robustezza agli attacchi di un sistema biometrico. Essere in grado di trasferire tecniche e protocolli in contesti diversi.
Capacità comunicative: Essere in grado di comunicare/condividere i requisiti di un sistema biometrico, le modalità operative più adatte ad una certa applicazione, e le misure di performance del sistema
Capacità di apprendimento: Essere in grado di approfondire autonomamente gli argomenti presentati nel corso, relativamente a tecniche e metodi specifici/complessi o a tratti biometrici non presenti tra gli argomenti.
-
DE MARSICO MARIA
( programma)
Introduzione ai sistemi biometrici (5 ore)
Valutazione di un sistema biometrico (10 ore)
Valutazione delle prestazioni
Affidabilità dei risultati del riconoscimento
Principali biometrie (30 ore)
Rilevazione del volto
Riconoscimento del volto 2D e 3D
Riconoscimento dell'orecchio
Riconoscimento dell'iride
Nozioni fondamentali di riconoscimento delle impronte digitali
Altre biometrie
Sistemi multibiometrici (15 ore)
Pagina web del corso: https://sites.google.com/a/di.uniroma1.it/biometric-systems/
Slide del corso e letture consigliate
Per approfondimenti: A.K. Jain, P. Flynn, A.A. Ross, Handbook of Biometrics, Springer, 2008.
H. Wechsler, Reliable Face Recognition Methods: System Design, Implementation and Evaluation, Springer, 2007.
A.Ross, K. Nandakumar; A.K. Jain. Handbook of Multibiometrics. Springer, 2006
(Date degli appelli d'esame)
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
1054960 -
Computer systems and programming
(obiettivi)
Obiettivi Generali Obiettivo del corso è fornire gli strumenti fondamentali della programmazione di sistema.
Obiettivi Specifici Gli studenti saranno in grado di sviluppare autonomamente del codice in grado di interagire con il sistema operativo e sfruttarne i servizi.
Conoscenza e Comprensione -) Conoscenza del linguaggio C e dei strumenti normalmente impiegati nell'ambiente di sviluppo (compilatore, preprocessore, debugger, make, etc.) -) Conoscenza delle funzioni fondamentali del sistema operativo e dei suoi moduli principali (Scheduler, Virtual Memory Manager, Filesystem .. ). -) Conoscenza delle principali primitive di sistema per la creazione la sincronizzazione di processi e thread, lo scambio di messaggi ed informazioni. -) Conoscenza delle primitive per la programmazione di rete (socket).
Applicazione di Conoscenza e Comprensione -) Come utilizzare le primitive fornite dal sistema operativo ed integrarle, in modo corretto, nel codice. -) Come scegliere il componente di SO e le funzioni più adatte, in base alle esigenze delle applicazioni ed alla loro modalità di esecuzione.
Autonomia di Giudizio Gli studenti saranno in grado di determinare la complessità e la modalità di implementazione di un'applicazione di sistema.
Abilità Comunicative Descrivere l'interazione di una applicazione con il sistema operativo e spiegare le motivazioni alla base delle scelte.
Capacità di Apprendimento Successivo Gli studenti interessati potranno proseguire l'apprendimento esaminando, nei suoi dettagli, l'architettura e l'interfaccia di programmazione del sistema operativo.
-
RICHELLI GIORGIO
( programma)
L'ambiente di sviluppo: compilatore, make e makefiles, gdb debugger, etc. Il linguaggio C (recap): variabili, costanti, operatori, espressioni, istruzioni di controllo, funzioni, puntatori, array, strutture & unioni, direttive del preprocessore Sistema Operativo Linux (recap): filesystem, processi, primitive di comunicazione fra processi: pipe, fifo, segnali, semafori, message queue, shared memory Programmazione di rete: l'astrazione socket, i tipi di socket: inet, unix, raw, sniffers I thread: creazione, mutua esclusione, sincronizzazione Vulnerabilità Software: buffer overflow. arc injection, file infection
Daniel P. Bovet, Marco Cesati: Understanding the Linux Kernel Brian Kernighan, Dennis Ritchie: The C Programming Language K.C. Wang: Systems Programming in Unix-Linux
(Date degli appelli d'esame)
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
1047642 -
SECURITY IN SOFTWARE APPLICATIONS
(obiettivi)
Obiettivi generali
I fondamenti della sicurezza nei programmi software
Obiettivi specifici
Metodologie e strumenti per trovare e rimuovere le vulnerabilità più comuni del software e per sviluppare software senza falle di sicurezza Conoscenza e comprensione
conoscenza e capacità di comprensione delle tecniche più efficaci per la rimozione di vulnerabilità dal codice e per sviluppare software che soddisfi specifiche politiche di sicurezza. Applicare conoscenza e comprensione
Essere in grado di applicare e trasferire la propria conoscenza delle metodologie alla scelta delle tecniche e strumenti appropriati risolvere problemi di sicurezza del software Autonomia di giudizio
Capacità d’interpretazione autonoma per proporre soluzioni appropriate a problemi di sicurezza software congruenti con le tecnologie disponibili. Abilità comunicative
Capacità di presentare e di argomentare le proprie scelte in merito alle metodologie ed agli strumenti utilizzati per le soluzioni proposte, sia con colleghi che con utenti Capacità di apprendimento successivo
Capacità di apprendere e approfondire nuove tecniche nell’ambito della sicurezza software informatica sia degli aspetti metodologici sia di quelli tecnologici
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
1044404 -
WEB SECURITY AND PRIVACY
(obiettivi)
Il corso fornisce la conoscenza necessaria per affrontare consapevolmente tutti i temi relativi alla sicurezza delle applicazioni Web e le problematiche relative alla protezione della privacy. Per quanto riguarda la sicurezza delle applicazioni Web sara’ presentata la classificazione delle minacce, delle tecniche di attacco e degli obiettivi degli attaccanti. Il corso presenta anche le strategie di base e una panoramica delle risorse a sostegno del progettista/sviluppatore al fine di conseguire la sicurezza "by design". Particolare attenzione viene dedicata alla sicurezza dell'e-mail studiando minacce e contromisure e analizzando benefici. Il corso inoltre fornisce le conoscenze per la protezione della privacy attuali. Saranno considerate le tecniche e gli strumenti realizzati per violare la privacy e per mantenere l’anonimato nelle transizioni economiche, nel rilascio di dati statisitici, nelle reti sociali. Saranno inoltre considerati gli aspetti economici e psicologici relativi all’utilizzo e alla cessione di dati sensibili e gli aspetti normativi relativi.
|
6
|
ING-INF/05
|
24
|
36
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
|
- -
A SCELTA DELLO STUDENTE
|
12
|
|
120
|
-
|
-
|
-
|
Attività formative a scelta dello studente (art.10, comma 5, lettera a)
|
ITA |