Bezpieczne projektowanie urządzeń brzegowych Internetu rzeczy (IoT) niskiej mocy z użyciem mikrokontrolerów MCU Silicon Labs PG23
Przekazane przez: Północnoamerykańscy redaktorzy DigiKey
2022-10-19
W całym zróżnicowanym wachlarzu brzegowych zastosowań konsumenckich i przemysłowych Internetu rzeczy (IoT) - począwszy od wyłączników światła, liczników i inteligentnych zamków, a skończywszy na falownikach solarnych i tablicach zabezpieczeń - projektanci muszą znaleźć odpowiednią równowagę między wysokimi parametrami działania - niskim poborem energii, szczególnie w przypadku projektów opartych na zasilaniu bateryjnym, przy jednoczesnym zapewnieniu bezpieczeństwa wdrożeń. W wielu przypadkach podstawą takich projektów jest mikrokontroler (MCU), więc projektant musi dokładnie rozważyć, jakie urządzenie zastosować.
Oprócz solidnego wsparcia dla bezpieczeństwa, czynniki, które należy wziąć pod uwagę, obejmują wydajność rdzenia procesora, sprawność, obsługę urządzeń peryferyjnych oraz wejść i wyjść, a także ogólne rozmiary i wsparcie ekosystemu. Mikrokontroler MCU może spełniać wymagania projektowe pod względem parametrów działania i mocy, jednak wdrożenie bezpiecznego projektu charakteryzuje się pewną krzywą uczenia się, która może powodować opóźnienia lub skutkować nieodpowiednim wdrożeniem zabezpieczeń.
W artykule omówiono pokrótce zagadnienia dotyczące zabezpieczeń urządzeń brzegowych Internetu rzeczy (IoT). Zaprezentowano także mikrokontroler MCU EFM32PG23 firmy Silicon Labs i przedstawiono możliwości jego zastosowania w bezpiecznych projektach IoT, opartych na przetwarzaniu brzegowym z naciskiem na niską moc.
Problemy z zabezpieczeniami urządzeń IoT
Liczba zdalnych ataków na urządzenia połączone z Internetem stale rośnie. Deweloperzy systemów wbudowanych mogą ulec pokusie założenia, że ich urządzenie brzegowe Internetu rzeczy (IoT) nie potrzebuje zabezpieczeń, ponieważ nie zawiera „niczego wartościowego”. Prawda jest taka, że prawie każde urządzenie ma coś, co haker może uznać za wartościowe, niezależnie od tego, czy są to dane z czujników, dane klientów, rzeczywiste oprogramowanie wbudowane w urządzenie, czy dostęp przez urządzenie stanowiący tylne wejście do podłączonych sieci. Bezpieczeństwo to kluczowa funkcja, która musi być elementem projektu każdego urządzenia brzegowego IoT od samego początku - nie powinna być dokładana do systemu pod koniec cyklu projektowania. W przeciwnym razie urządzenie będzie bardzo podatne na atak.
Każde urządzenie brzegowe IoT ma kilka obszarów zabezpieczeń, które należy uwzględnić, takich jak identyfikacja urządzenia, konfiguracja urządzenia oraz aktualizacje oprogramowania i oprogramowania układowego. Ilustracja 1 przedstawia listę typowych problemów oraz ich przełożenie na wymagania dotyczące zabezpieczeń urządzeń. Dla każdego wymagania dotyczącego zabezpieczeń istnieje powiązana technologia, która jest często używana do spełnienia tego wymagania i udaremnienia potencjalnych ataków.
|
Ilustracja 1: problemy związane z zabezpieczeniami, wymaganiami i powiązanymi technologiami, które projektanci aplikacji brzegowych IoT muszą wziąć pod uwagę. (Źródło ilustracji: Silicon Labs)
Dużym problemem wielu zespołów projektowych opracowujących aplikacje brzegowe IoT jest to, że wewnętrznie nie dysponują one wiedzą ekspercką w zakresie zabezpieczeń. W rezultacie muszą albo dołożyć wszelkich starań, aby uczyć się i wdrażać zabezpieczenia, albo skorzystać z zewnętrznego źródła. W obu przypadkach może się to wiązać z długim czasem i znacznymi kosztami.
Istnieje jednak alternatywa: zespół rozwojowy może wybrać mikrokontroler MCU, zaprojektowany z myślą o bezpieczeństwie i zapewniający gotowe do użycia rozwiązania zabezpieczeń, które wymagają jedynie niewielkich modyfikacji konfiguracyjnych pod kątem konkretnego zastosowania.
Prezentacja urządzeń MCU z serii PG23 firmy Silicon Labs
Seria mikrokontrolerów Silicon Labs EFM32PG23 jest interesującą opcją do stosowania w urządzeniach brzegowych IoT z kilku powodów. Po pierwsze, mikrokontroler MCU PG23 może obsługiwać własne rozwiązanie bezpieczeństwa Secure Vault IoT firmy Silicon Labs. Secure Vault to platforma do zabezpieczania teraz i w przyszłości urządzeń IoT, która niedawno uzyskała - jako pierwsze rozwiązanie zabezpieczające IoT - status PSA Certified Level 3. Niektóre z funkcji wprowadzanych przez rozwiązanie Secure Vault do mikrokontrolerów PG23 obejmują bezpieczną tożsamość urządzenia, bezpieczne zarządzanie kluczami i bezpieczne przechowywanie kluczy oraz zaawansowane wykrywanie nieautoryzowanej ingerencji.
Secure Vault korzysta z unikalnego odcisku cyfrowego generowanego przez funkcję uniemożliwiającą fizyczne klonowanie (PUF). Funkcję PUF można wykorzystać do utworzenia klucza symetrycznego zaawansowanego standardu szyfrowania (AES), który fizycznie znika po wyłączeniu zasilania systemu. Klucz symetryczny AES nawet nie istnieje, gdy mikroukład jest wyłączony, co uniemożliwia wydobycie go z urządzenia. Funkcja uniemożliwiająca fizycznie klonowanie (PUF) stanowi skuteczne rozwiązanie problemu zarządzania kluczami, przed którym stoi wiele aplikacji brzegowych IoT. W rzeczywistości funkcję PUF można skalować do obsługi dowolnej liczby kluczy potrzebnej do obsługi aplikacji. Rozwiązanie Secure Vault zawiera również system wykrywania nieautoryzowanej ingerencji, który sprawia, że w przypadku nieautoryzowanej ingerencji, po wyłączeniu urządzenia nie można zrekonstruować klucza. Kluczowe funkcje zabezpieczeń można podsumować w następujący sposób:
- Bezpieczne zaświadczanie
- Bezpieczne zarządzanie kluczami
- Bezpieczny magazyn kluczy
- Zabezpieczenie przed nieautoryzowaną ingerencją
Innym powodem, dla którego mikrokontrolery MCU PG23 dobrze sprawdzają się w aplikacjach brzegowych IoT, jest fakt, że zostały zaprojektowane do zastosowań niskiej mocy. Pobór prądu przez urządzenie PG23 w stanie aktywnym wynosi 21µA/MHz. Przy aktywnej pamięci RAM 16kB w trybie EM2 pobór prądu wynosi 1,03µA, a przy włączonym zegarze czasu rzeczywistego (RTC) w trybie EM4 jest to 0,7µA. Tak niski poziom poboru prądu pomaga deweloperom zaprojektować energowydajne urządzenia, niezależnie od tego, czy są one podłączane do gniazda ściennego, czy zasilane bateryjnie.
Ostatnią cechą mikrokontrolera MCU PG23, o której należy tutaj powiedzieć są jego możliwości. Urządzenie PG23 posiada procesor Arm® Cortex®-M33 o taktowaniu do 80MHz. Procesor może pracować w zakresie od 1,71V do 3,8V przy pojedynczym zasilaniu. Dla deweloperów pracujących nad aplikacjami wykorzystującymi czujniki dostępny jest niskoenergetyczny interfejs czujników (LESENSE). Mikrokontroler MCU jest zamknięty w 40-wtykowej obudowie QFN o wymiarach 5×5mm lub 48-wtykowej obudowie QFN o wymiarach 6×6mm. Schemat blokowy urządzenia PG23 przedstawiono na ilustracji 2. Mikrokontroler MCU posiada również pięć stanów zasilania: EM0 - tryb pracy, EM1 - uśpienie, EM2 - głębokie uśpienie, EM3 - zatrzymanie i wreszcie EM4 - wyłączenie.
Ilustracja 2: mikrokontroler MCU PG23 dysponuje szeroką gamą urządzeń peryferyjnych, pamięci i trybów oszczędzania energii. (Źródło ilustracji: Silicon Labs)
Pierwsze kroki z płytką rozwojową PG23-PK2504A
Najlepszym sposobem na rozpoczęcie pracy z urządzeniem PG23 jest użycie płytki rozwojowej PG23-PK2504A. Płytka jest wyposażona w procesor EFM32PG23B310F512, obsługiwany przez własne 512kB pamięci flash i 64kB pamięci RAM. Płytka rozwojowa zawiera szeroką gamę wbudowanych czujników, interfejsów oraz 4×10-segmentowy wyświetlacz LCD (ilustracja 3).
Ilustracja 3: płytka rozwojowa PG23-2504A jest wyposażona w mikrokontroler MCU EFM32PG23, a także 4×10-segmentowy wyświetlacz LCD, czujniki temperatury i wilgotności, źródło napięcia referencyjnego oraz interfejsy rozszerzeń. (Źródło ilustracji: Silicon Labs)
Mając płytkę w ręku, programiści mogą pobrać i zainstalować oprogramowanie Simplicity Studio (na karcie „Pierwsze kroki”). Simplicity Studio to platforma startowa zawierająca wszystko, czego potrzeba do ewaluacji, konfiguracji i prac rozwojowych z wykorzystaniem mikrokontrolerów EFM32. Oprogramowanie zawiera materiały wprowadzające, dokumentację, kompatybilne narzędzia i zasoby.
Po otwarciu platformy Simplicity Studio i podłączeniu płytki rozwojowej, oprogramowanie zidentyfikuje płytkę i przedstawi deweloperowi zalecenia dotyczące na przykład projektów, czy wersji demo (ilustracja 4). Deweloper może następnie wybrać najlepszą dla siebie ścieżkę i rozpocząć eksperymentowanie z urządzeniem PG23.
Ilustracja 4: oprogramowanie Simplicity Studio firmy Silicon Labs wykrywa płytkę i dostarcza spersonalizowane zalecenia dotyczące rozpoczęcia pracy, dokumentacji, przykładowych projektów itd. (Źródło ilustracji: Silicon Labs)
Jedną z wartych podkreślenia cech płytki rozwojowej PG23-PK2504A jest przełącznik, który decyduje o sposobie zasilania płytki rozwojowej. Możliwe są dwie opcje: AEM lub BAT (Ilustracja 5). W trybie AEM występuje rezystor pomiarowy prądu połączony szeregowo z zasilaczem LDO i urządzeniem PG23. Zaletą tego trybu jest to, że deweloperzy mogą mierzyć pobór prądu przez procesor, co wspomaga optymalizację zasilania. Po zoptymalizowaniu aplikacji deweloperzy mogą przełączyć się w tryb BAT, w którym płytka rozwojowa pracuje przy zasilaniu z baterii pastylkowej.
Ilustracja 5: w trybie AEM urządzenie PG23-PK2504A pozwala na zasilanie płytki przez port USB-C, co umożliwia pomiar prądu procesora. Procesor może być także zasilany przez baterię pastylkową CR2032. (Źródło ilustracji: Silicon Labs)
Wskazówki i porady dotyczące minimalizacji zużycia energii w aplikacji IoT
Minimalizacja zużycia energii ma kluczowe znaczenie dla każdego projektu opartego na urządzeniach brzegowych Internetu rzeczy (IoT), niezależnie od tego, czy jest zasilany z baterii, czy nie. Optymalizacja projektu pod kątem zużycia energii może być czasochłonna, jeśli deweloperzy nie są dokładni. Poniżej przedstawiono kilka wskazówek i porad, o których powinni pamiętać deweloperzy, a które mogą pomóc w szybkiej optymalizacji aplikacji IoT pod kątem niskiego zużycia energii:
- Stosuj architekturę oprogramowania sterowaną zdarzeniami. Gdy system nie przetwarza żadnego zdarzenia, przełącz go w stan niskiej mocy.
- Profiluj zużycie baterii systemu w kilku cyklach ładowania-rozładowania. Zapisuj pobór prądu i napięcie robocze i wykreślaj je w czasie.
- Wykorzystaj tryby niskiej mocy aby automatycznie wyłączyć zegary, urządzenia peryferyjne i procesor.
- Przy prostych zastosowaniach zapoznaj się z funkcją „uśpienia przy wyjściu” Arm Cortex-M, aby zminimalizować narzut związany z przerwaniami podczas wybudzania systemu.
- Jeśli korzystasz z systemu operacyjnego czasu rzeczywistego (RTOS), wykorzystaj jego tryb jałowy beztaktowy, aby zapobiec przypadkowemu wybudzeniu systemu przez RTOS.
- W przypadku optymalizacji w iteracjach śledź oszczędności energii wynikające z poszczególnych zmian. W pewnym momencie deweloperzy osiągają punkt, w którym zwrot z inwestycji w postaci czasu poświęconego na optymalizację jest niski w relacji do oszczędności energii. Wtedy należy zaprzestać optymalizacji i przejść do następnego etapu.
Deweloperzy stosujący się do podanych wskazówek i porad zaoszczędzą sporo czasu oraz wysiłku, rozpoczynając kolejny bezpieczny projekt IoT niskiej mocy.
Podsumowanie
W przypadku aplikacji brzegowych Internetu rzeczy (IoT) rośnie zapotrzebowanie na bezpieczne, energooszczędne mikrokontrolery MCU. Oprócz solidnego wsparcia dla bezpieczeństwa, czynniki, które projektanci powinni wziąć pod uwagę, aby spełnić potrzeby projektów opartych na urządzeniach brzegowych, obejmują wydajność rdzenia procesora, sprawność, obsługę urządzeń peryferyjnych oraz wejść i wyjść, a także ogólne rozmiary i wsparcie ekosystemu.
Mikrokontroler MCU EFM32PG23 firmy Silicon Labs może pomóc deweloperom w rozwiązaniu szeregu problemów dotyczących projektów niskiej mocy i zabezpieczeń urządzeń. Powiązana z nim płytka rozwojowa zapewnia wszystkie narzędzia niezbędne do rozpoczęcia pracy, a postępując zgodnie z kilkoma ważnymi wskazówkami i poradami można szybko wdrożyć projekt niskiej mocy.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

