Secure Operating Systems Design

A.Y. 2026/2027
6
Max ECTS
48
Overall hours
SSD
INFO-01/A
Language
Italian
Learning objectives
By the end of the course, students will be able to:

1. Understand the architecture of a modern microcontroller
2. Develop firmware using ESP-IDF
3. Utilize GPIO, UART, SPI, I2C, ADC, DAC, and PWM
4. Design concurrent applications using FreeRTOS
5. Implement MQTT-based IoT systems
6. Apply threat modeling and security assessment techniques
7. Understand OTA updates, Secure Boot, and Flash Encryption
8. Analyze firmware and communications of IoT devices
Expected learning outcomes
This course introduces students to the architectural, design, and security aspects of IoT systems, using the ESP32 as the reference platform. The first part focuses on understanding the microcontroller, peripherals, memory, local buses, connectivity, and firmware development; the second part covers threat modeling, communication security, OTA updates, firmware analysis, introductory reverse engineering, and system hardening. To successfully attend the course, students must obtain an Espressif ESP32-S3 DevKitC-1-N8R8 board (preferably an original one). The course will use the C programming language.

The educational goal is to teach students how to design and implement a secure, moderately complex embedded system.
Single course

This course cannot be attended as a single course. Please check our list of single courses to find the ones available for enrolment.

Course syllabus and organization

Single session

Course syllabus
The syllabus is shared with the following courses:
- [FBB-14](https://www.unimi.it/en/ugov/of/af20270000fbb-14)
INFO-01/A - Informatics - University credits: 6
Lessons: 48 hours
Professor(s)
Reception:
send an email to danilo[dot]bruschi[at]unimi[dot]it
Room 8011, Via Celoria 18