STM32L5 pomaga stawić czoła wyzwaniom IoT

| Technika

 Coraz więcej urządzeń łączy się ze sobą bezprzewodowo za pośrednictwem Internetu. Zwiększa to zapotrzebowanie na niezawodne zabezpieczenia komunikacji dla węzłów IoT, zwłaszcza w sektorach konsumenckim i przemysłowym. Takie połączenia internetowe są bowiem szczególnie narażone na ataki hakerów – od ataków DDoS (Distributed Denial of Service) po nieautoryzowany dostęp do sieci wewnętrznych.

STM32L5 pomaga stawić czoła wyzwaniom IoT

Jako priorytetowe pod względem zapewnienia bezpieczeństwa traktowane są rozwiązania, które zwiększają ochronę przed manipulacją w urządzeniach sieciowych. W pierwszej kolejności powinno się tutaj zabezpieczyć proces ich uruchamiania, ponieważ atak często następuje w czasie restartu. W celu przeciwdziałania temu zagrożeniu stosowane są różne sposoby, które wykorzystują sprzętowe mechanizmy bezpieczeństwa. Jednym z nich jest technologia TrustZone firmy ARM. Choć TrustZone, podobnie jak wszystkie inne dostępne obecnie technologie, na dłuższą metę nie zapewnia żadnemu urządzeniu perfekcyjnego zabezpieczenia przed atakami z zewnątrz, to jednak znacznie podnosi poprzeczkę w kwestii zabezpieczeń w uzyskiwaniu dostępu do danego systemu.

Niezawodne zabezpieczenia na poziomie chipów

Kluczową funkcję w filozofii TrustZone pełnią dwa oddzielone od siebie sprzętem obszary: bezpieczny i niezabezpieczony ("secure world" i "non secure world"). Mogą one być wykonywane jednocześnie na jednym rdzeniu procesora. W ten sposób niezabezpieczone oprogramowanie nie ma bezpośredniego dostępu do bezpiecznych zasobów. Izolacja pomiędzy oboma obszarami w układzie typu System-on-Chip (SoC) wykracza poza procesor, obejmując także pamięć, działania magistrali, system przerwań i układy peryferyjne.

W ten sposób technologia TrustZone stanowi podstawę dla bezpieczeństwa całego systemu i stworzenia zaufanej platformy, w której każda część systemu może zostać elastycznie zaplanowana jako część obszaru bezpiecznego. Stworzenie podsystemu bezpieczeństwa pozwala chronić zasoby przed atakami programowymi i sprzętowymi.

TrustZone jest w stanie zabezpieczyć zarówno bibliotekę oprogramowania, jak i cały system operacyjny dla wykonania w obszarze bezpiecznym. Podczas uzyskiwania dostępu do bezpiecznej strony (secure page) i znajdujących się na niej zasobów "niezabezpieczone" oprogramowanie nie jest dostępne.

Technologia TrustZone w mikrokontrolerach Cortex-M

Architektura ARMv8-M rozszerza technologię TrustZone na systemy oparte na rodzinie układów scalonych Cortex-M, zapewniając solidną ochronę przy niższych kosztach niż w przypadku specjalizowanego układu scalonego. Znacznie zmniejsza ona koszty i nakłady na rozwój zabezpieczeń na bazie procesorów, dzięki czemu sprzęt zabezpieczający nie stanowi już istotnego czynnika kosztowego.

Procesory Cortex-M i Cortex-A zasadniczo oferują te same koncepcje bezpieczeństwa, jednak istnieją między nimi istotne różnice: decydującą zaletą Cortex-M jest fakt, że zmiana kontekstu pomiędzy obszarami bezpiecznymi i niezabezpieczonymi odbywa się w sprzęcie. Pozwala to uzyskać krótsze czasy przejścia i wyższą efektywność energetyczną. W przeciwieństwie do Cortex-A nie jest wymagane żadne bezpieczne oprogramowanie monitorujące. Procesory Cortex-A pozwalają za to osiągnąć znacznie wyższy poziom bezpieczeństwa.

TrustZone opiera się na zasadzie najmniejszych wymaganych uprawnień. Oznacza to, że moduły systemu, takie jak sterowniki i aplikacje, otrzymują dostęp do zasobów tylko wtedy, gdy jest to konieczne. Oprogramowanie na ogół jest uruchamiane zarówno w środowisku bezpiecznym, jak i niezabezpieczonym. Przesyłanie treści pomiędzy oboma obszarami odbywa się za pomocą procedury określanej jako "core logic" (procesory Cortex-M) lub "bezpieczny monitor" (procesory Cortex-A).

TrustZone dla ARMv8-M stanowi idealną technologię dla Platform Security Architecture (PSA), ponieważ sprzęt jest izolowany pomiędzy normalnym kodem a zaufaną bazą kodową. Oferuje ona elastyczną podstawę, z której projektanci SoC mogą wybierać określone funkcje w środowisku bezpieczeństwa, opracowując w ten sposób ekonomiczne i energooszczędne rozwiązania. TrustZone zawiera procedury, które zapewniają zaufany sprzęt dla opartego na sprzęcie bezpiecznego przechowywania danych, generatory liczb losowych (RNG) oraz źródło odniesienia dla bezpiecznego zapisu czasu.

Ustandaryzowany zbiór zasad w ramach projektowania oprogramowania

Technologia TrustZone może być jednak skuteczna tylko wtedy, gdy już w fazie projektowania oprogramowania przestrzegane są uznane zasady bezpieczeństwa danych. Tutaj do akcji wkracza standard C CERT, który określa "dobry styl programowania" i gwarantuje m.in.:

  • przestrzeganie czasu życia zmiennych (local, global, auto, ...),
  • jednoznaczność poleceń preprocesora np. poprzez "include guards",
  • przestrzeganie zakresu wartości zmiennych,
  • kontrolę i przestrzeganie limitów pamięci (np. na tablicy array).

Wdrożenie odbywa się poprzez zintegrowanie w środowisku programistycznym narzędzia, które podczas tworzenia programu sprawdza zgodność przy każdej kompilacji. Późniejsze wdrożenie w istniejącym kodzie analogicznie do MISRA-C (standard programowania C z branży motoryzacyjnej) staje się kosztowne, ponieważ w przypadku naruszeń standardu duże części programu muszą zostać na nowo zaprojektowane i zaprogramowane.

Zarówno w standardzie C CERT, jak i w MISRA-C kod jest analizowany statycznie i sprawdzany pod kątem określonych zasad programowania. Różnica polega na tym, że zasady MISRA-C odzwierciedlają funkcjonalne bezpieczeństwo urządzeń, a zasady C CERT ochronę danych i bezpieczeństwo danych.

Mikrokontroler STM32L5

Mikrokontroler STM32L5 z rdzeniem Cortex-M23 to najmniejszy i jednocześnie najmocniejszy w tej kategorii układ z zaimplementowaną technologią TrustZone. Seria Cortex-M33 została zoptymalizowana pod względem kosztów i zużycia energii. Cortex M-33 jest przeznaczony do zastosowań z sygnałami mieszanymi – w szczególności takich, które wymagają skutecznego zabezpieczenia i ew. cyfrowego sterowania sygnałem.

Układy STM32L5 są następcą rodziny Cortex-M STM32L4+ i pierwszą rodziną produktów ST Microelectronics opartą na architekturze ARMv8-M z technologią TrustZone. Znacznie ułatwia ona programistom wdrażanie zaufanych urządzeń na bazie frameworku PSA z procesorem Cortex M33, technologią TrustZone i ulepszonymi funkcjami bezpieczeństwa SoC. Dzięki szerokiej gamie zintegrowanych cyfrowych i analogowych urządzeń peryferyjnych i interfejsów, takich jak CAN FD, USB Type-C i USB Power Delivery, mikrokontrolery STM32L5 stanowią idealną platformę dla produktów takich jak czujniki przemysłowe i sterowniki, urządzenia automatyki domowej, inteligentne liczniki, trackery fitness, smartwatche, rozwiązania w technologii medycznej, takie jak pompy i urządzenia pomiarowe i wiele innych.

Dzięki aktualizacji do procesora Cortex M33 i pamięci podręcznej dla wewnętrznych i zewnętrznych pamięci programu mikrokontroler STM32L5 zapewnia większą wydajność niż jego poprzednik. Zoptymalizowany układ zasilania redukuje pobór prądu do 33 nA w trybie wyłączenia i oferuje najwyższą efektywność energetyczną na długie okresy eksploatacji.

STM32L5 zaspokaja również potrzebę zwiększonego bezpieczeństwa poprzez dodatkowe funkcje bezpieczeństwa, których zwykle nie spotyka się w mikrokontrolerach, na przykład koprocesor kryptograficzny i szyfrowanie pamięci zewnętrznych. Inne ulepszenia obejmują izolację oprogramowania, specjalnie zabezpieczony proces uruchamiania (secure boot) oraz specjalnie zabezpieczony obszar pamięci dla kluczy kryptograficznych.

Poniżej przedstawiono konkretne objaśnienia dotyczące różnych przykładów urządzeń peryferyjnych, czyli zintegrowanych jednostek funkcjonalnych oraz ich wdrożenia w połączeniu z koncepcją bezpieczeństwa TrustZone w serii mikrokontrolerów.

Interfejsy magistrali i RTC

Konfigurowalne bezpieczne jednostki atrybutów (Secure Attribute Unit, SAU) obsługują do ośmiu obszarów pamięci, opcjonalnie jako obszary bezpieczne lub niezabezpieczone. Procesor Cortex M33 obsługuje interfejsy magistrali System AHB i Code AHB. S-AHB jest używany do każdego pobierania poleceń i każdego dostępu do danych zmapowanej pamięci SRAM, tzw. memory- -mapped SRAM, jak również do pobierania poleceń i dostępu do peryferii SOC, do zewnętrznej pamięci RAM i zewnętrznego sprzętu. C-AHB jest używany przy każdym pobraniu polecenia i dostępie do danych w obszarze kodu pamięci.

TrustZone tworzy w pełni możliwy do zabezpieczenia zegar czasu rzeczywistego (Real-Time Clock, RTC) dla timerów Alarm A/Alarm B, a także indywidualny znacznik czasu dla bezpiecznej lub niezabezpieczonej konfiguracji.

Globalny kontroler TrustZone

Globalny kontroler TrustZone (GTZC) składa się z trzech podgrup (subblocks):

  • kontroler bezpieczeństwa TrustZone (TZSC) definiuje bezpieczny, uprzywilejowany stan urządzeń peryferyjnych master/slave oraz określa wielkość niezabezpieczonego obszaru w kontrolerze Watermark Memory Peripheral Controller (MPCWM). W ramach współdzielenia logiki RCC i I/O informuje on wybrane zintegrowane urządzenia peryferyjne o bezpiecznym stanie "securable peripherals", takich jak RCC i GPIO.

  • oparty na blokach kontroler ochronny pamięci (MPCBB) steruje bezpiecznymi trybami stanu wszystkich bloków (strony po 256 bajtów) powiązanej pamięci SRAM.

  • kontroler dostępu TrustZone dla zdarzeń nielegalnego dostępu (TZIC) zbiera wszystkie zdarzenia nielegalnego dostępu w systemie i generuje bezpieczne przerwanie pracy NVIC (Nested Vectored Interrupt Controller). Przy użyciu podbloków następuje konfiguracja TrustZone i uprzywilejowanych atrybutów w całym systemie. Najważniejsze cechy GTZC to trzy niezależne 32-bitowe interfejsy AHB dla TZSC, MPCBB i TZIC, MPCBB i TZIC, które są dostępne tylko przy bezpiecznych transakcjach oraz to, że zarówno prywatny, jak i nieprywatny obszar w TZSC są obsługiwane w zakresie bezpiecznego/niezabezpieczonego dostępu.

Obsługa TrustZone w rejestrze manipulacji i kopii zapasowych (TAMP)

Dla zabezpieczonej przed manipulacją przez osoby niepowołane konfiguracji TAMP oferuje zapasową konfigurację rejestru w kilku konfigurowalnych obszarach pamięci, takich jak: bezpieczny obszar read-to-write, bezpieczny obszar write-to-read, niezabezpieczony obszar read-to-write i licznik monotoniczny.

TrustZone w zintegrowanej pamięci Flash

TrustZone w zintegrowanej w on-chip pamięci Flash (embedded Flash memory) oferuje 512 kilobajtów do przechowywania programów i danych i umożliwia stany pracy "single/dual bank" lub tryb odczytu "read-while-write (RWW)" w trybie dual bank. Dostępne są cztery poziomy ochrony.

  • poziom 0.5 jest dostępny tylko przy aktywacji TrustZone. Są tutaj możliwe wszystkie operacje odczytu/zapisu z lub do niezabezpieczonego obszaru pamięci flash, pod warunkiem że aktywowano "TrustZone" i nie ustawiono żadnego zabezpieczenia przed zapisem. Dostęp w celu debugowania do bezpiecznego obszaru jest wykluczony, jednak nadal możliwy dla obszarów niezabezpieczonych.

  • poziom 0: brak zabezpieczenia przed odczytem.

  • poziom 1: zabezpieczenie przed odczytem pamięci: pamięć Flash nie może zostać odczytana lub zapisana, jeśli podłączone są funkcje debugowania lub ustawiony jest "Boot in RAM" lub bootloader. Jeśli aktywowano TrustZone, niezabezpieczone debugowanie ("non-secure debug") jest możliwe, jednak rozruch w SRAM już nie jest.

  • poziom 2: zabezpieczenie przed odczytem IC.

Tryb pracy TrustZone-Security

Jeśli aktywowana jest funkcja "Trust- Zone-Security", to cała pamięć Flash po zresetowaniu jest bezpieczna i dostępne są następujące środki ochronne:

  • nieulotny, bezpieczny obszar pamięci ze zintegrowaną weryfikacją (watermark proofed): bezpieczny obszar jest tutaj dostępny tylko w "secure mode". W odniesieniu do adresowalności bank pamięci może być adresowany w trybie single bank o skoku 1 kB lub też cały bank pamięci może zostać podzielony na bloki o pojemności 4 kB każdy.

  • niestandardowe zabezpieczenie przed odczytem kodu (PCROP): Jako część obszaru bezpieczeństwa flash zapewnia ono ochronę przed nieautoryzowanym odczytem i zapisem przez osoby trzecie. Chroniony obszar staje się obszarem "execute only" i może być adresowany przez procesory STM32 tylko za pomocą kodu polecenia. Wszystkie inne rodzaje dostępu (DMA (Direct Memory Access), Debug, CPU Data Read, Write and Erase) są wykluczone. W trybie single bank możliwe jest wybranie dwóch obszarów z oboma obszarami bezpieczeństwa. W trybie dual bank wraz z obszarem bezpieczeństwa możliwe jest wybranie jednego obszaru na każdy bank pamięci.

  • "Secure hide protection area" jest częścią obszaru bezpieczeństwa pamięci Flash i może być chroniony w celu uniemożliwienia dostępu do tego obszaru poprzez odczyt, zapis i pobieranie danych.

W opartym na blokach obszarze bezpieczeństwa w ulotnej pamięci Flash (volatile block-based secure Flash area) każda strona może zostać zaprogramowana w czasie rzeczywistym jako bezpieczna lub niezabezpieczona.

 

Rutronik
tel. 32 461 20 00
www.rutronik.com

Zobacz również