Secure Operating Systems Design
A.Y. 2026/2027
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
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.
The educational goal is to teach students how to design and implement a secure, moderately complex embedded system.
Lesson period: First four month period
Assessment methods: Esame
Assessment result: voto verbalizzato in trentesimi
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)
- [FBB-14](https://www.unimi.it/en/ugov/of/af20270000fbb-14)
Professor(s)
Reception:
send an email to danilo[dot]bruschi[at]unimi[dot]it
Room 8011, Via Celoria 18