Biztonsági protokollok (VIHIMA05)

A tárgy az IT biztonság MSc mérnök-informatikus mellékspecializáció keretén belül kerül előadásra a tavaszi félévben. A hivatalos tantárgyi adatlap és tárgykövetelmények a kar szerverén találhatók. Ezen az oldalon a tárggyal kapcsolatos operatív információk érhetők el. Az előadások és gyakorlatok anyaga a tanszéki Moodle rendszeren keresztül érhető el.

Lecturers

Előadók

Célkitűzés

Objectives

A tárgy célja, hogy (i) megismertesse a hallgatókkal a modern vezetékes és vezeték nélküli hálózatokban felmerülő, a hálózati kommunikáció biztonságával kapcsolatos problémákat, (ii) bemutassa a biztonsági problémák megoldására használt korszerű biztonsági protokollok elveit és gyakorlati megvalósításait, és (iii) az ismertetett protokollok részletes analízisén keresztül betekintést nyújtson a biztonsági protokollok tervezési kérdéseibe.

Követelmények

Requirements

A szorgalmi időszakban

2 db házi feladat és 1 db nagy zárthelyi dolgozat.

Opcionális pontok

Az órák végén kiugrót iratunk, melyben kontroll kérdéseket teszünk fel az órán elhangzott anyaggal kapcsolatban. Ennek célja, hogy feedback-et kapjunk az órák hatékonyságáról. A kiugró nem ZH, nem kötelező megírni, és kizárólag pozitív irányban befolyásolhatja a félévvégi jegyet. Konkrétan, minden kiugró eredménye bináris: 5-ből 3 kérdés helyes megválaszolása 1 pontot ér, egyébként 0 pont jár. Az így szerzett extra pontok beszámítanak a félév végi eredménybe.

A félévvégi érdemjegy számítása

P = ZH + HF1 + HF2 + E, ahol ZH a zárthelyi dolgozatra kapott pontszám (min 30, max 60 pont), HF1 és HF2 a házi feladatokra kapott pontok (házinként min 10, max 20 pont), E a kiugrókon szerzett extra pontok száma.
Ponthatárok:
jeles: P >= 85 pont;
jó: P >= 70 pont;
közepes: P >= 55 pont;
elégséges: P >= 40 pont;
elégtelen: P < 40 pont.

Órák ideje és helye

Time and location of classes

Előadás

Lecture

  • kedd, 8:15-10:00, QBF.10
  • szerda, 10:15-12:00 (csak páros heteken), QBF.10

Konzultáció

Megbeszélés szerint, az előadóval előre egyeztetett időpontban.

Office hours

Please contact the lecturer to schedule an appointment.

Eredmények

Results

Minden eredmény (kiugrók, házik, zh) a tanszéki Moodle rendszeren keresztül érhető el.

Előadások

Lectures

Dátum Téma Előadó Fóliák
2019.02.05. Stream ciphers Buttyán L. Moodle
2019.02.12. Block ciphers and block encryption modes Buttyán L. Moodle
2019.02.13. Exercise on historical, stream, and block ciphers Buttyán L. Moodle
2019.02.19. Attacks on CBC Buttyán L. Moodle
2019.02.26. Hash and MAC functions Buttyán L. Moodle
2019.02.27. Exercise on block encryption modes and attacks on CBC Buttyán L. Moodle
2019.03.05. Public key cryptography Horváth M. Moodle
2019.03.12. Random number generation Buttyán L. Moodle
2019.03.13. Exercise on MACs and secure channels Buttyán L. Moodle
2019.03.19. --- Spring Break ---
2019.03.26. Key exchange algorithms Buttyán L. Moodle
2019.04.02 Password based key exchange Buttyán L. Moodle
2019.04.03. Exercise on random number generation and key exchange Buttyán L. Moodle
2019.04.09. WiFi security Buttyán L. Moodle
2019.04.16. Public key infrastructure (PKI) Endrődi Csilla (Microsec) Moodle
2019.04.17. Exercise on public key cryptography Buttyán L. Moodle
2019.04.23. Transport Layer Security (TLS) Buttyán L. Moodle
2019.04.30. Attacks on TLS Buttyán L. Moodle
2019.05.01. --- Break (Labor Day) ---
2019.05.07. Cryptography in resource constrained applications Buttyán L. Moodle
2019.05.14. Anonymous communication systems Buttyán L. Moodle
2019.05.15. ZH (QBF.10)

Házi feladat

Homework

1. házi feladat

The goal of the semester project is to use the cryptographic building blocks that we learned during the lectures in practice. We believe that a learning-by-doing approach leads to deeper understanding of the subject. To make it fun and somewhat less of an effort, the semester project can be carried out in groups of 3 students. This also allows students to gain experience in team work and collaborative development of software. So, please, team up with your buddies, and send me (buttyan@crysys.hu) the names of your group members!

Each group can choose to design and implement one of the following applications:
- a multi-party chat application (must support multiple chat clients communicating with each other via a chat server or in a peer-to-peer manner, if a server is used, then it should not be trusted for learning the content of chat messages, the application must ensure confidentiality and integrity of chat messages, message origin authentication, and replay protection)
- a simple file transfer application (must be a client-server application supporting file upload to and download from the server, and it must ensure confidentiality and integrity of control messages and transferred files, origin authentication and replay protection for messages, and mutual authentication between the client and the server at the beginning of each session)
- a password manager application (can be a local application or server based, must support generation of random passwords and storage of passwords together with related account information, must ensure confidentiality and integrity for stored passwords, can use a master password for accessing password entries).

The project has two phases: (1) in the first phase, teams have to come up with a design of and submit a sufficiently detailed description (that looks like an engineering document) of their envisioned system architecture and cryptographic protocols, and (2) in the second phase, after receiving some feedback on the design, teams have to implement their designs using a real crypto library.

The design document must contain at least the following sections:
- functional requirements of the application
- attacker model (assumptions about the goals and capabilities of an attacker)
- security requirements of the application
- system architecture (modules and their relationships)
- cryptographic protocols
- key exchange and key management
- brief security analysis (how the design satisfies the security requirements).

Design documents should contain sufficient details for someone to implement the design. A single design document per team must be submitted in pdf format via the Moodle system of the course by the deadline given below.

Deadlines

Határidő

2019.04.07. (éjfél)

Results

Eredmények

A házi eredmények a tanszéki Moodle rendszeren keresztül érhetők el.

2. házi feladat

In the second (implementation) phase, teams will implement their design (after feedback and potential corrections). The preferred language for implementation is Python 3 with the PyCryptodome library, but teams could also use other languages and crypto libraries. Teams should complete their implementation and submit their work in a zip file via the Moodle system of the course by the deadline below. The submissions should contain at least the following:
- source code
- some documentation of the code
- a 3-4 min video showing the working application and its basic usage.

Deadlines

Határidő

2019.05.08. (éjfél)

Results

Eredmények

A házi eredmények a tanszéki Moodle rendszeren keresztül érhetők el.

Számonkérés

Exam

  • ZH: 2019.05.15. - óra idejében a QBF.10 és az IL.108 termekben
  • Pót ZH: 2019.05.21., 10:15 - 11:00 - QBF.08
  • Pótpót ZH: 2019.05.23., 10:15 - 11:00 - IE.429

Kiegészítő források

Readings

Korábbi évek

Previous Years