Wykorzystanie zaawansowanych układów SoC Bluetooth 5.2 do budowy bezpiecznych urządzeń IoT o niskiej mocy
Łączność Bluetooth i niskie zużycie energii to kluczowe wymagania w projektach z zasilaniem bateryjnym stanowiących bazę produkowanych masowo przedmiotów wykorzystywanych do Internetu rzeczy (IoT), urządzeń ubieralnych czy aplikacji automatyki budynkowej.
Wsparcie sprzętowe do budowy bezpiecznych systemów
Zapewnienie bezpieczeństwa połączonych urządzeń z zasilaniem bateryjnym wymaga rozwiązań, które trudno pogodzić z funkcjami i możliwościami tradycyjnych procesorów używanych we wcześniejszych projektach. Tradycyjne procesory, zbudowane do działania w mniej wrażliwych warunkach, nie mają niektórych fizycznych i funkcjonalnych możliwości wymaganych do zabezpieczenia dzisiejszych urządzeń IoT i urządzeń ubieralnych. Na przykład gotowość do działania urządzeń IoT i ubieralnych ułatwiają hakerom atakowanie tych konstrukcji metodami side-channel, takimi jak różnicowa analiza mocy (DPA), która może ujawniać tajne dane i klucze prywatne. Używając tych kluczy, hakerzy mogą stosować różne metody fałszowania rzeczywistych urządzeń i uzyskiwania dostępu do bezpiecznych sieci i pozornie chronionych zasobów. Jeszcze łatwiej hakerom przychodzi penetrowanie sieci bezprzewodowych w celu dotarcia do słabo zabezpieczonych do nich podłączonych urządzeń w ramach „wstępu” do ataku tego samego rodzaju.
Wymagania dotyczące minimalnego wykazu materiałów BOM i przedłużonego czasu pracy baterii często zmuszają projektantów do stosowania zabezpieczeń programowych. Niestety metody te pozostają równie wrażliwe, jak samo oprogramowanie i system operacyjny. Co jeszcze pogarsza sprawę z punktu widzenia użytkownika, mechanizmy zabezpieczeń zaimplementowane wyłącznie w oprogramowaniu wprowadzają zauważalne opóźnienia w komunikacji i postrzeganej reakcji aplikacji. Aby wzmocnić zabezpieczenia bez pogarszania wydajności, projekty sieciowe muszą polegać na sprzętowych mechanizmach zabezpieczeń.
Grupa EFR32BG22 pomaga deweloperom w zabezpieczeniu urządzeń za pomocą kombinacji sprzętowych mechanizmów zabezpieczeń. Podstawą tych mechanizmów jest akcelerator kryptograficzny przyspieszający szyfrowanie i deszyfrowanie danych przy użyciu szerokiej gamy długości i trybów klucza Advanced Encryption Standard (AES). W przypadku operacji uwierzytelniania i podpisywania akcelerator obsługuje popularne krzywe i funkcje skrótu w kryptografii krzywych eliptycznych (ECC).
Na niższym poziomie generator liczb losowych (TRNG) podaje niedeterministyczne wzorce liczb wymagane do ograniczania zagrożeń wynikających z używania generatorów liczb losowych, o których wiadomo, że powtarzają wzorce liczb. Jeszcze niższy poziom mechanizmu chroni akcelerator przed wspomnianymi wcześniej atakami side-channel DPA.
Wdrożenie zabezpieczeń systemu za pomocą tych mechanizmów to tylko połowa sukcesu we wszystkich produktach sieciowych. Rzeczywiście, ograniczanie zagrożeń we wdrażanych systemach jest ciągłą walką, która jest jeszcze trudniejsza w wyrafinowanych konstrukcjach z zasilaniem bateryjnym. Dawniej po zabezpieczeniu urządzenia z jednej strony deweloperzy wystawiali swoje konstrukcje na ataki złośliwego oprogramowania lub nawet penetrację przez otwarte interfejsy debugowania. Grupa EFR32BG22 rozwiązuje oba te problemy poprzez wyspecjalizowane funkcje zaprojektowane w celu ograniczenia złośliwego oprogramowania i penetracji interfejsu debugowania.
Omawiane SoC zapewniają bezpieczne uruchamianie (Secure Boot) z systemem Root of Trust i bezpiecznym modułem ładującym (RTSL), który wykorzystuje dwustopniowy program ładujący, którego zadaniem jest zapewnienie, że system oparty na EFR32BG22 uruchamia się tylko z uwierzytelnionym oprogramowaniem układowym (ilustracja 5).

Ilustracja 5: Bezpieczne uruchamianie obsługiwane przez grupę urządzeń SoC EFR32BG22 firmy Silicon Labs, wraz z RTSL zapewnia zaufany root na uwierzytelnionym oprogramowaniu układowym uruchamianym z ROM. (Źródło ilustracji: © Silicon Labs)
Co do zasady, bezpieczne uruchamianie z RTSL usuwa lukę w starszych jednostopniowych programach ładujących, które pozwalały hakerom przejąć pełną kontrolę nad systemem sieciowym, uruchamiając go przy użyciu sfałszowanego oprogramowania. Wydaje się, że użycie podpisanego oprogramowania układowego stanowi rozwiązanie tego problemu. W praktyce jednak nawet podpisane metody uruchamiania są narażone na atak z użyciem podrobionych certyfikatów do podpisywania oprogramowania układowego lub z wykorzystaniem legalnych certyfikatów uzyskanych z nielegalnych źródeł.
Natomiast system oparty na EFR32BG22 wykorzystuje system Root of Trust oparty na programie ładującym pierwszego etapu, który pobiera zaufane oprogramowanie z pamięci ROM. Z kolei to zaufane oprogramowanie stosuje ścisłe metody uwierzytelniania w celu weryfikacji źródła i integralności kodu programu ładującego drugiego etapu, który natomiast weryfikuje i ładuje kod aplikacji.
Możliwość zbudowania rozwiązania systemowego opartego na systemie Roof of Trust pozwala deweloperom dostarczać wysoce bezpieczne produkty z ciągłą integralnością oprogramowania, nawet przy użyciu bezprzewodowych cykli aktualizacji oprogramowania układowego (OTA). Czasami jednak deweloperzy potrzebują głębszego dostępu do tych systemów udostępnianego na poziomie systemowego portu debugowania.
Oczywiście wdrożenie rozwiązania systemowego z otwartym portem debugowania to przepis na katastrofę. Funkcja bezpiecznego debugowania grupy urządzeń EFR32BG22 stanowi praktyczne rozwiązanie dla deweloperów złożonych systemów oprogramowania, którzy potrzebują możliwości śledzenia błędów bez narażania bezpieczeństwa całego systemu. Dzięki bezpiecznemu debugowaniu deweloperzy mogą używać bezpiecznych mechanizmów uwierzytelniania w celu odblokowania portu debugowania i uzyskania widoczności potrzebnej do analizy błędów bez narażania poufności danych użytkownika we wdrożonym systemie.
Optymalizacja zużycia energii
Najskuteczniejsze mechanizmy komunikacji i zabezpieczeń Bluetooth pozostawiają jednak urządzenie bateryjne w niekorzystnej sytuacji, jeśli nie jest w stanie zapewnić dłuższego czasu pracy baterii. Dlatego funkcje zarządzania energią i jej optymalizacji są wbudowane w architekturę SoC EFR32BG22. Wykorzystując w pełni rdzeń Arm Cortex-M33 o niskiej mocy, omawiane SoC zużywają tylko 27 mikroamperów na megaherc (μA/MHz), pracując z maksymalną częstotliwością (76,8 MHz) w trybie w pełni aktywnym (EM0) z wyłączonymi wszystkimi urządzeniami peryferyjnymi.
W okresach bezczynności deweloper może ustawić SoC w jednym z kilku trybów niskiego poboru mocy, w tym w trybie uśpienia (EM1), głębokiego uśpienia (EM2), zatrzymania (EM3) i wyłączenia (EM4). Gdy SoC przechodzi w tryb niskiego poboru mocy, zintegrowana jednostka zarządzania energią (EMU) wyłącza rosnącą liczbę bloków funkcjonalnych, dopóki nie pozostanie włączony tylko minimalny zestaw bloków konieczny do wznowienia SoC (patrz ilustracja 3). Ponadto EMU automatycznie obniża poziom skalowania napięcia przy przełączaniu do trybów niższego poboru mocy. W rezultacie w systemie 3,0V wykorzystującym wewnętrzną przetwornicę prądu stałego i przy wyłączonych wszystkich urządzeniach peryferyjnych, zużycie energii gwałtownie spada do 17μA/MHz (praca 76,8MHz) w trybie uśpienia, 1,4μA w trybie głębokiego uśpienia z pełnym zachowaniem pamięci RAM, 1,05μA w trybie zatrzymania i 0,17μA w trybie wyłączenia.
We wcześniejszych procesorach deweloperzy musieli podjąć trudną decyzję dotyczącą wyboru trybu niskiej mocy ze względu na wydłużony czas potrzebny na wybudzenie tych procesorów. Wydłużony czas wybudzenia nie tylko oznacza dłuższy czas braku reakcji systemu podczas wybudzania, ale także powoduje marnowanie energii podczas wykonywania „nieproduktywnych” operacji związanych z procesem wybudzania. Deweloperzy często byli zmuszeni wybrać tryb o wyższej mocy, niż jest to wymagane, aby procesor mógł się obudzić na czas. W przeciwieństwie do tego, system oparty na układzie EFR32BG22 działający z pamięci RAM wymaga zaledwie 1,42 mikrosekundy (μs), aby wybudzić się z trybu uśpienia EM1 lub 5,15μs z głębokiego uśpienia EM2 lub trybu zatrzymania EM3. Nawet wybudzenie z trybu wyłączenia wymaga tylko 8,81 milisekund (ms), co często jest poniżej minimalnego okresu aktualizacji dla wielu urządzeń ubieralnych lub urządzeń IoT z zasilaniem bateryjnym.
Zdolność do pełnego wykorzystania tych stosunkowo krótkich czasów wybudzenia zależy od dostępności mechanizmów zdolnych do utrzymania pewnego poziomu aktywności, nawet gdy SoC jest w trybie zatrzymania zasilania EM3. Wraz z opisanymi wcześniej funkcjami, takimi jak RFSENSE, inne bloki funkcjonalne, takie jak zegar czasu rzeczywistego (RTC) SoC umożliwiają urządzeniu zachowanie czasu rzeczywistego podczas uśpienia, a jego zegar o niskim poborze mocy (LETIMER) umożliwia generowanie różnych przebiegów lub zapewniania liczników dla innych urządzeń peryferyjnych. W rzeczywistości urządzenia peryferyjne mogą nadal działać dzięki systemowi SoC o nazwie Peripheral Reflex System (PRS), który może kierować sygnały między różnymi urządzeniami peryferyjnymi i wykonywać podstawowe operacje logiczne ‑ wszystko to bez udziału procesora.
Skuteczny rozwój systemu
Aby przyspieszyć wdrażanie rozwiązań opartych na EFR32BG22, deweloperzy mogą skorzystać z kompleksowego zestawu narzędzi i bibliotek opartych na zintegrowanym środowisku programistycznym (IDE) Studio Simplicity firmy Silicon Labs. W ramach zestawu programistycznego Bluetooth Low Energy (SDK), firma Silicon Labs zapewnia obsługę zaawansowanych funkcji, w tym sieci kratowej Bluetooth, przetwarzania AoA i AoD oraz bezpiecznych bezprzewodowych aktualizacji oprogramowania układowego. Wraz z pełnym zestawem profili Bluetooth zestaw SDK zawiera przykładowe aplikacje i kod źródłowy do wdrażania niestandardowego oprogramowania.
Podsumowanie
Szybko rosnące zapotrzebowanie na zaawansowane funkcje BLE w produktach przenośnych z zasilaniem bateryjnym powoduje, że deweloperzy znajdują się pod rosnącą presją znalezienia rozwiązania między wymaganą wydajnością a dostępną mocą. W przeszłości te sprzeczne wymagania często prowadziły do kompromisu w zakresie możliwości, rozmiarów i kosztów systemu. Korzystając z zaawansowanej technologii SoC Bluetooth, deweloperzy mogą jednak konstruować masowo produkowane urządzenia IoT i inne urządzenia z zasilaniem bateryjnym, zdolne obsługiwać funkcje nowej generacji, takie jak nawigacja w pomieszczeniach czy sieci kratowe, działając przez wiele lat na jednej baterii pastylkowej.