CdSCOMPUTER ENGINEERING
Codice880II
CFU9
PeriodoSecondo semestre
LinguaInglese
Moduli | Settore/i | Tipo | Ore | Docente/i | |
FOUNDATIONS OF CYBERSECURITY | ING-INF/05 | LEZIONI | 90 |
|
Lo studente acquisirà conoscenze sulla crittografia applicata, la codifica sicura e la sicurezza web. Il corso ha l'obiettivo di mettere uno studente in grado di progettare e realizzare un'applicazione distribuita sicura.
Più precisamente, lo studente acquisirà una conoscenza dettagliata delle principal primitive crittografiche (cifari, funzioni hash, firme digitali), delle loro proprietà in termini di sicurezza e prestazioni e del loro uso appropriato nella progettazione e costruzione di protocolli e sistemi. Lo studente riceverà anche nozioni di base sulla codifica sicura, sulla sicurezza web e sui relativi principali attacchi, tra cui buffer overflow e iniezione SQL.
The student will acquire knowledge about applied cryptography, secure coding and web security. The objective of the course is to make a student able to properly design and implement a secure distributed application.
More precisely, the student will get a detailed knowledge of the main cryptographic primitives (ciphers, hash functions, digital signatures), their properties in terms of security and performance, and their appropriate usage in designing and building protocols and systems. The student will also get basic notions about secure coding, and web security and the related main attacks including buffer overflow and SQL injection.
La verifica delle conoscenze avverrà per mezzo di una prova scritta e di una prova orale in ogni sessione d'esame.
Knowlege assessment will take place by means of a written test and an oral test in each exam session.
Alla fine del corso,
- lo studente saprà progettare e realizzare protocolli ed applicazioni distribuite sicure utilizzando una libreria crittografica;
- lo studente sarà in grado di presentare in una relazione scritta i risultati delle attività progettuale e di sviluppo svolte;
- lo studente sarà in grado di concepire e realizzare semplici attacchi di critto-analisi
At the end of the course,
- the student will be able to design and implement secure distributed protocols and applications using a cryptographic library;
- the student will be able to present the results of the project and development activities carried out in a written report;
- the student will be able to conceive and carry out simple crypto-analysis attacks.
Le capacità saranno verificate come segue:
- durante le sessioni di laboratorio informatico saranno svolti piccoli progetti tesi al comprendere l'utilizzo di una o più libreria crittografica;
- durante le sessioni di laboratorio informatico saranno svolti esempi di semplici attacchi di crittoanalisi ad algoritmi e schemi crittografici;
- alla fine del corso, prima dell'esame, lo studente dovrà preparare e presentare il progetto e la realizzazione di un'applicazione distribuita sicura, corredato da una relazione scritta che riporti i risultati dell'attività di progetto e di sviluppo.
The skills will be checked as follows:
- during the computer lab sessions, small projects will be carried out aimed at understanding the use of one or more cryptographic libraries;
- during the computer lab sessions, examples of simple cryptanalysis attacks on algorithms and cryptographic schemes will be carried out;
- at the end of the course, before the exam, the student must prepare and present the project and the implementation of a secure distributed application accompanied by a written report that reports the results of the project and development activity.
Lo studente potrà acquisire e sviluppare sensibilità alle problematiche relative alla cybersecurity ed all'impatto che questa viene avere sul business delle aziende, sui servizi della pubblica amminsitrazione e sulla sicurezza e privacy dei cittadini. A questo scopo, durante il corso saranno presentati casi reali presi dalla cronaca.
The student will be able to acquire and develop awareness to issues related to cybersecurity and the impact that this has on the business of companies, services of public administration, and the security and privacy of citizens. For this purpose, real cases taken from the news will be presented during the course.
Durante la discussione del progetto sarà richiesto allo studente di discutere l'impatto che le misure di sicurezza progettate hanno nel contesto applicativo considerato.
During the project discussion the student will be asked to argue about the impact that the planned security measures have in the application context considered.
- Calcolo delle probabilità
- Teoria della complessità
- Linguaggi di programmazione
- Architettura del calcolatore
- Sistemi operativi
- Reti di calcolatori
- Probability Theory
- Complexity theory
- Programming languages
- Computer architecture
- Operating systems
- Computer networks
- Lezioni frontali con l'ausilio di slide in formato pdf scaricabili dalla piattaforma del corso.
- Esercitazioni si svolgono in in aula informatica. Le esercitazioni sono state progettate in modo tale che lo studente possa utilizare il proprio PC in modo tale da semplificare la logistica della fase di studio individuale.
- Durante le esercitazioni, il docente è coadiuvato da un codocente.
- Il materiale didattico è distribuito attraverso la piattaforma del corso.
- Il docente comunica con gli studenti per mezzo dell'email o attraverso i ricevimenti istituzionali.
- L'insegnamento è erogato in lingua Inglese.
- Lessons lessons with the help of slides in pdf format downloadable from the course website.
- Hands-on are held in the computer room. They have been designed in such a way that the student can use his/her PC in order to simplify the logistics of the individual study phase.
- During hands-on lab, the teacher is assisted by a co-tutor.
- The teaching material is distributed through the course website.
- The teacher communicates with the students by email or through institutional meetings.
- The course is delivered in English.
Applied cryptography
Symmetric Ciphers: one-time pad, stream-ciphers, and block-ciphers. The DES and AES ciphers. Encryption modes. Hash functions: message digest codes and message authentication code. Black box attacks: the birthday attack. Diffie-Hellman key establishment. Asymmetric ciphers: the RSA, ElGamal and Elliptic Curvces cryptosystems. Digital signatures, certificates, certification authorities, and public key infrastructures. The X.509v3 certificate format. Perfect forward security. Secure Pseudo-Random Generators. Side-channel attacks: timing attack; fault-injection attacks; power analysis. Case studies: IpSec: ESP and AH mode; Secure Socket Layer: Handshake and Record protocol; Kerberos: basic scheme; the Ticket Granting Service; delegation, forwarding and proxiable tickets; realms.
Programming secure applications
Basics of secure coding in C/C++. The OpenSSL cryptographic library. Threat modeling: how to identify and prioritize vulnerabilities. Design and analysis of secure protocols. The BAN logic. Basics of web security: SQL injection and cross-site scripting.
Applied cryptography
Symmetric Ciphers: one-time pad, stream-ciphers, and block-ciphers. The DES and AES ciphers. Encryption modes. Hash functions: message digest codes and message authentication code. Black box attacks: the birthday attack. Diffie-Hellman key establishment. Asymmetric ciphers: the RSA, ElGamal and Elliptic Curvces cryptosystems. Digital signatures, certificates, certification authorities, and public key infrastructures. The X.509v3 certificate format. Perfect forward security. Secure Pseudo-Random Generators. Side-channel attacks: timing attack; fault-injection attacks; power analysis. Case studies: IpSec: ESP and AH mode; Secure Socket Layer: Handshake and Record protocol; Kerberos: basic scheme; the Ticket Granting Service; delegation, forwarding and proxiable tickets; realms.
Programming secure applications
Basics of secure coding in C/C++. The OpenSSL cryptographic library. Threat modeling: how to identify and prioritize vulnerabilities. Design and analysis of secure protocols. The BAN logic. Basics of web security: SQL injection and cross-site scripting.
- Christof Paar, Jan Pelzl. Understanding Cryptography: A Textbook for Students and Practitioners, Springer 2010
- Bruce Schneier. Applied Cryptography: : Protocols, Algorithms and Source Code in C. Wiley 2015
- Matt Bishop. Computer Security: Art and Science, 2nd edition. Addison-Wesley, 2019
- Materiale fornito dal docente.
- Christof Paar, Jan Pelzl. Understanding Cryptography: A Textbook for Students and Practitioners, Springer 2010
- Bruce Schneier. Applied Cryptography: : Protocols, Algorithms and Source Code in C. Wiley 2015
- Matt Bishop. Computer Security: Art and Science, 2nd edition. Addison-Wesley, 2019
- Didactic material provided by the teacher.
Nessuna
None.
- L'esame è composto dalla discussione di un progetto, una prova scritta ed una prova orale.
- Il progetto può essere svolto da gruppi di massimo tre studenti. La discussione del progetto deve avvenire prima della sessione d'esame a cui lo studente vuole partecipare. Per discutere il progetto, gli studenti devono fissare tramite email un ricevimento con i docenti. Uno studente può partecipare ad una sessione d'esame solo se ha preventivamente sostenuto con successo la discussione del progetto. Se superata, la discussione del progetto rimane valida anche per gli appelli successivi.
- La prova scritta consiste in una o più domande ed uno o più problemi da risolvere. La prova scritta si svolge in aula e, se superata, rimane valida per un solo appello.
- La prova orale consiste in un colloquio tra il candidato e il docente, o anche tra il candidato e altri collaboratori del docente titolare.
Durante la Fase 2:
- La prova scritta è sostituita da un test di ammissione da svolgere online. Il test potrà prevedere domande con risposte a scelta multiple ovvero domande con risposte aperte. Il test si svolgerà sulla piattaforma Microsoft Team.
- La prova orale sarà svolta in modalità a distanza sulla piattaforma Microsoft Team.
Per quanto riguarda il test e la prova orale, la stanza virtuale è pubblicata sulla scheda di registrazione all'esame.
Nel caso di risposte aperte, il candidato deve scrivere su un foglio di carta, scattare una foto dell'elaborato e caricare il file grafico/pdf risultante sulla piattaforma Teams Una soluzione alternativa può essere l'utilizzo di un tablet o tavoletta grafica unitamente ad applicazioni grafiche come Microsoft Whiteboard (o equivalenti). Il file grafico/pdf risultante può essere inviato per per email ma solo come soluzione di emergenza preventivamente concordata con il docente.
Per quanto riguarda la prova orale, il candidato deve
- dotarsi di uno o più fogli bianchi;
- dotarsi di un pennarello nero o comunque di inchiostro scuro;
- per tutta la durata della prova orale, inquadrare solo ed esclusivamente il foglio per mezzo di una telecamera (quella del PC o del cellulare).
Soluzioni alternative al foglio ed il pennarello possono essere:
- tablet o tavoletta grafica (soluzione preferita in assoluto);
- lavagna da inquadrare per mezzo di una telecamera.
Nel caso di utilizzo dello smartphone per l'inquadramento del foglio o della lavagna, il dispositivo deve essere fissato in una posizione stabile.
- The exam consists of a discussion of a project, a written test and an oral test.
- The project can be developed by groups of max three students. The discussion of the project must take place before the exam session in which the student wants to participate. To discuss their projects, students must fix an appointment with the teachers by email. A student can participate in an exam session only if (s)he has previously successfully supported the discussion of the project. If passed, the discussion of the project remains valid also for subsequent exam rounds.
- The written test consists of one or more questions and one or more problems to be solved.
- The written test takes place in the classroom and, if passed, remains valid for one exam round only.
- The oral exam consists of an interview between the candidate and the teacher, or even between the candidate and other collaborators of the titular teacher.
During the Phase 2
- The written test is replaced by an admission test to be carried out online. The test may include questions with multiple choice answers or questions with open answers. The test will take place on the Microsoft Team platform.
- The oral exam will be carried out remotely on the Microsoft Team platform.
As for the test and the oral test, the virtual room is published on the exam registration form.
In order to attend the exam, the candidate must fulfill the following rules.
In the case of open answers, the candidate must write on a sheet of paper, take a photo of the paper and finally upload the resulting pdf/graphic file to the Teams platform. An alternative solution may be the use of a tablet or graphics tablet together with graphic applications such as Microsoft Whiteboard (or equivalent). It is possible to send the resulting pdf/graphic file by email but only as an emergency solution that has to be beforehand agreed with the teacher.
As for the oral test, the candidate must be equipped by
- one or more white sheets;
- a black marker or dark ink anyway;
- a camera (e.g., PC's or smartphone's one) that will be used to frame the sheet exclusively for the entire duration of the oral test.
Alternative solutions could be:
- a tablet or a graphics table (most preferred solution);
- a whiteboard/blackboard to be exclusively framed by a camera.
When using the smartphone to frame a sheet or a whiteboard/blackboard, it has to be fixed in a stable position.
Home page del Corso di Laurea Magistrale in Computer Engineering:
https://computer.ing.unipi.it/ce-lm
Home page dell'Università di Pisa
Home page of the MsC Program in Computer Engineering:
https://computer.ing.unipi.it/ce-lm
Home page of of the University of Pisa
None.