Bezpieczne Aktualizacje OTA w Systemach Embedded Linux
Od partycjonowania A/B po RAUC i metadane TF-A. Atomowe aktualizacje, rollback i ochrona przed downgrade na platformie STM32MP1.
O kursie
Urządzenia IoT wymagają ciągłego nadzoru, łatania luk bezpieczeństwa i wprowadzania nowych funkcjonalności. Mechanizmy OTA (Over-The-Air) stały się tak samo krytyczne jak sam system operacyjny.
W środowisku embedded kluczowe są dwa pojęcia:
- Atomowość — aktualizacja albo się udaje w całości, albo w ogóle
- Odporność na awarie — zanik zasilania w trakcie aktualizacji nie “cegli” urządzenia
Platforma STM32MP1 z heterogeniczną architekturą (Cortex-A7 + Cortex-M4) stawia unikalne wyzwania: zarządzanie systemem plików, zależności jądra, Device Tree i synchronizacja z firmware koprocesora.
To szkolenie przeprowadza przez pełną implementację OTA — od pustego projektu Yocto, przez partycjonowanie A/B, aż po scenariusze awaryjne z automatycznym rollbackiem.
🎯 Cel Projektowy: “Resilient Update System”
Podczas kursu budujemy produkcyjny system OTA, nie tylko konfigurujemy narzędzia. Uczestnicy stworzą system, który:
✓ Obsługuje aktualizacje A/B — nowy obraz zapisywany na nieaktywnym slocie, atomowe przełączenie
✓ Weryfikuje podpis cyfrowy (X.509/CMS) — tylko autoryzowane paczki są akceptowane
✓ Automatycznie wraca do poprzedniej wersji — rollback po awarii (Kernel Panic, brak sieci)
✓ Aktualizuje firmware koprocesora M4 — synchronizacja wersji A7 + M4
✓ Chroni przed Downgrade Attack — blokada instalacji starszych wersji
✓ Działa z metadanymi TF-A — integracja RAUC ze specyfiką STM32MP1
📅 Program szkolenia
DZIEŃ 1: The Foundation – Architektura i Partycjonowanie
Fundamenty systemu OTA. Flash Layout, strategia A/B i integracja warstw Yocto.
Moduł 1.1: Architektura Aktualizacji na STM32MP1
- Dlaczego
apt-get upgradenie działa w embedded? (awaria = niespójny system plików) - Strategia A/B (Dual Bank): Atomowość i odporność na awarie
- Proces bootowania: ROM Code → TF-A → U-Boot → Linux
- Rola partycji
metadata— TF-A decyduje o wyborze slotu!
Moduł 1.2: Flash Layout dla OTA
- Projektowanie układu partycji dla strategii A/B (Dual Bank)
- Kluczowe komponenty: bootloader, kernel, rootfs, dane użytkownika
- Partycja
metadatai stany banków FWU - Lab: Budowanie bazowego obrazu
st-image-corebez OTA (punkt wyjścia)
Moduł 1.3: Wybór Narzędzia OTA
- Przegląd dostępnych rozwiązań: Mender, SWUpdate, RAUC
- Kryteria wyboru: rozmiar, elastyczność, integracja z ekosystemem
- Dlaczego RAUC? Referencyjne narzędzie dla STM32MP1
- Lab: Konfiguracja warstw Yocto dla RAUC
DZIEŃ 2: The Mechanism – RAUC i Metadane TF-A
Konfiguracja RAUC, integracja z bootloaderem i tworzenie paczek aktualizacyjnych.
Moduł 2.1: Konfiguracja RAUC
- Mapowanie slotów i konfiguracja systemu
- Typowe pułapki przy integracji z U-Boot
- Lab: Konfiguracja RAUC dla układu A/B
Moduł 2.2: Integracja z U-Boot i TF-A
- Komunikacja między Linuxem a bootloaderem
- Zarządzanie metadanymi TF-A
- Lab: Weryfikacja poprawności integracji
Moduł 2.3: Skrypty Przełączania (Handlers)
- Cykl życia aktualizacji: instalacja → restart → walidacja
- Mechanizm potwierdzania sukcesu (“Mark Good”)
- Lab: Implementacja własnych handlerów
Moduł 2.4: Tworzenie Paczek Aktualizacyjnych (Bundle)
- Struktura i format paczki RAUC
- Budowanie bundle w Yocto
- Lab: Utworzenie i analiza paczki aktualizacyjnej
DZIEŃ 3: The Security & Resilience – Bezpieczeństwo i Scenariusze Awaryjne
Podpisywanie, szyfrowanie, ochrona przed rollbackiem i testowanie odporności.
Moduł 3.1: Infrastruktura PKI i Podpisywanie
- Podstawy X.509 i CMS w kontekście OTA
- Hierarchia kluczy: CA, klucze deweloperskie, klucze produkcyjne
- Lab: Utworzenie PKI i podpisywanie paczek
Moduł 3.2: Symulacja Ataku
- Weryfikacja odporności na manipulację paczkami
- Lab: Próba instalacji nieautoryzowanych/zmodyfikowanych paczek
Moduł 3.3: Szyfrowanie Artefaktów (Confidentiality)
- Ochrona własności intelektualnej w pakietach OTA
- Szyfrowanie per-device vs per-fleet
- Dyskusja: Kiedy szyfrować? (koszt vs ryzyko)
Moduł 3.4: Ochrona przed Rollbackiem (Anti-Rollback)
- Zagrożenie: Downgrade Attack
- Mechanizmy ochrony: liczniki monotoniczne, wersjonowanie
- Lab: Konfiguracja i testowanie ochrony przed downgrade
Moduł 3.5: Scenariusze Awaryjne i Rollback
- Watchdog i mechanizm Bootcount
- Automatyczny rollback po nieudanej aktualizacji
- Lab: Symulacja awarii i obserwacja automatycznego przywracania
Moduł 3.6: Aktualizacje Heterogeniczne (A7 + M4)
- Synchronizacja wersji Linux + firmware koprocesora
- Strategie rollbacku dla systemów wielordzeniowych
- Lab: Aktualizacja obejmująca firmware M4
💰 Cennik i Modele Uczestnictwa
Oferuję elastyczny model dostosowany do zakresu potrzebnej wiedzy.
Opcja A: CORE OTA (2 Dni)
Idealna dla zespołów, które potrzebują wdrożyć podstawowy mechanizm A/B z RAUC, bez zaawansowanych scenariuszy bezpieczeństwa.
| Zakres | Dzień 1 + Dzień 2 (Partycjonowanie, RAUC, Bundle, Handlers) |
| Efekt | Działający system OTA z atomowymi aktualizacjami |
| Cena | 3 400 PLN netto / os. |
| Min. grupa | 5 osób |
Opcja B: SECURE OTA (3 Dni) ⭐ Rekomendowane
Pełne szkolenie z PKI, anti-rollback i testowaniem odporności. Niezbędne dla produktów wymagających certyfikacji lub compliance (CRA, IEC 62443).
| Zakres | Cały program (Dni 1-3) |
| Efekt | Produkcyjny system OTA z pełnym bezpieczeństwem i testami resilience |
| Cena | 4 500 PLN netto / os. |
| Min. grupa | 5 osób |
Promocja: Decydując się od razu na pakiet 3-dniowy, oszczędzasz 400 PLN względem dokupowania 3. dnia osobno.
Małe zespoły: Dla zespołów mniejszych niż 5 osób - stawki ustalane są indywidualnie.
🏆 Dlaczego warto?
| Korzyść | Opis |
|---|---|
| Specyfika STM32MP1 | Metadane TF-A, mkfwumdata, integracja meta-st-ota — nie ogólne rozważania o OTA |
| Praktyczne pułapki | Numeracja MMC, fw_env.config, priorytety warstw Yocto — uczymy się na błędach, zanim trafią na produkcję |
| Testowanie resilience | “Zepsuta” aktualizacja i automatyczny rollback — widzisz, że system działa |
| Heterogeniczność | Aktualizacja firmware M4 razem z Linuxem — pełna synchronizacja |
🛠️ Wymagania
Sprzęt (zapewniony):
- Płytka STM32MP157C-DK2
- Karta microSD 16GB (klasa 10)
- Kabel USB Type-C, konwerter USB-UART
Oprogramowanie:
- Ubuntu 20.04/22.04 LTS (lub kontener Docker)
- OpenSTLinux SDK (Kirkstone/Scarthgap)
- Warstwy:
meta-rauc,meta-st-ota
Wiedza uczestnika:
- Podstawy Linux (shell, partycjonowanie)
- Podstawy Yocto (budowanie obrazu, dodawanie warstw)
- Mile widziane: Znajomość U-Boot
Chcesz zarezerwować termin dla swojego zespołu? Skontaktuj się, aby ustalić szczegóły. Zbuduj system, który przetrwa każdą aktualizację — nawet tę nieudaną.
Zainteresowany szkoleniem?
Skontaktuj się, aby omówić szczegóły, dostosować program do potrzeb Twojego zespołu lub umówić termin.
Kontakt ← Wszystkie szkolenia