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 upgrade nie 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 metadata i stany banków FWU
  • Lab: Budowanie bazowego obrazu st-image-core bez 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.

ZakresDzień 1 + Dzień 2 (Partycjonowanie, RAUC, Bundle, Handlers)
EfektDziałający system OTA z atomowymi aktualizacjami
Cena3 400 PLN netto / os.
Min. grupa5 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).

ZakresCały program (Dni 1-3)
EfektProdukcyjny system OTA z pełnym bezpieczeństwem i testami resilience
Cena4 500 PLN netto / os.
Min. grupa5 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 STM32MP1Metadane TF-A, mkfwumdata, integracja meta-st-ota — nie ogólne rozważania o OTA
Praktyczne pułapkiNumeracja 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
Informacje o szkoleniu
  • Czas trwania:
    2-3 dni
  • Poziom:
    Średniozaawansowany/Zaawansowany
  • Wymagania:
    Linux basics, Yocto fundamentals
Kategorie
Security OTA STM32MP1 Yocto
Zapytaj o szkolenie

Dostosowuję program do potrzeb uczestników. Szkolenia prowadzę stacjonarnie, zdalnie lub hybrydowo.

Kontakt