Osiąganie realnego bezpieczeństwa w złożonym świecie technologii IoT
| TechnikaZrozumienie znaczenia terminu Internet Rzeczy (IoT) może niekiedy nastręczać trudności. Do tej ogólnej kategorii należą zasadniczo wszystkie urządzenia elektroniczne, które mogą łączyć się, wchodzić w interakcje lub wymieniać dane. Urządzenia sprzedawane pod hasłami "Smart Home" (inteligentny dom) lub "Smart Healthcare" (inteligentny system opieki zdrowotnej), stanowiące zaledwie dwa z wielu przykładów, zapewniają większą przejrzystość w odniesieniu do obszarów zastosowań, w których technologia IoT sprawdza się w praktyce. Jednak poza marketingiem inteligentnych rozwiązań i ogólnikową terminologią istnieje jeden aspekt, co do którego większość z nas może się zgodzić w odniesieniu do technologii IoT: mamy do czynienia z ogólnie słabym nastawieniem na wdrażanie zabezpieczeń.
Bezpieczeństwo urządzeń i systemów połączonych z Internetem to stałe wyzwanie, gdyż nowe sposoby wykorzystywania luk systemowych są codziennie udostępniane i wykorzystywane. W ciągu ostatnich kilku lat źle zabezpieczone inteligentne urządzenia domowe, zwłaszcza elektroniczne nianie, trafiały na pierwsze strony gazet z powodów, z których z pewnością nie chciałyby zasłynąć.
Podłączenie do Internetu prostego urządzenia na bazie mikrokontrolera, zapewniającego niezawodne i bezpieczne działanie, wydawało się w świetle tych doniesień niemal niemożliwe. Jednakże firma Microsoft opracowała wraz z partnerem w dziedzinie produkcji sprzętu, firmą MediaTek, nowatorskie podejście dostarczające zarówno sprzęt, jak i środowisko IoT, z wbudowaną możliwością aktualizacji zabezpieczeń.
Azure Sphere
Platforma Azure Sphere firmy Microsoft umieszcza zabezpieczenia internetowe w centrum swojej oferty. Rozwiązanie składa się z trzech podstawowych elementów: zabezpieczonego mikrokontrolera (MCU), bezpiecznego systemu operacyjnego (OS) i usługi bezpieczeństwa "pod klucz".
Zabezpieczony mikrokontroler jest wyposażony w rdzeń przetwarzający, znany jako podsystem zabezpieczeń Pluton, który zapewnia sprzętowe źródło zaufania. Z tego miejsca uwierzytelnianie w ramach usług w chmurze i niezbędne operacje kryptograficzne są wykonywane przy użyciu bezpiecznie przechowywanych kluczy prywatnych.
Dostępna jest również obsługa bezprzewodowej (Over-the-Air, OTA) aktualizacji oprogramowania. Dzięki tej funkcji, która została wyodrębniona z pozostałych funkcjonalności mikrokontrolerów, pozostałe zasoby procesora mogą służyć do obsługi innych procesów, jak przetwarzanie w czasie rzeczywistym, obsługa aplikacji czy łączności.
Zabezpieczony system operacyjny jest oparty na niestandardowym jądrze systemu Linux i zawiera monitor zabezpieczeń, który pilnuje dostępu do krytycznych zasobów. Rozwiązanie to zapewnia jeszcze większą niezawodność, umożliwia przyjęcie podejścia kontenerowego i pozwala programistom na rozdzielanie kodów.
Ostatnim elementem jest usługa bezpieczeństwa Azure Sphere. To rozwiązanie chmurowe nieustannie monitoruje zagrożenia, pośrednicząc w komunikacji pomiędzy zaufanymi urządzeniami korzystającymi z usługi Azure. Aktualizacje oprogramowania sprzętowego są bezpiecznie wdrażane w węzłach IoT, a przy użyciu uwierzytelnienia można zaprogramować tylko oryginalny sprzęt z kodem aplikacji programisty. Awarie lub trendy, które mogą wskazywać na nietypowe działanie, można również wykryć, korzystając z danych dostępnych za pośrednictwem platformy.
Mikrokontroler MT3620
Jednym z pierwszych urządzeń zapewniających dostęp do ekosystemu Azure Sphere jest układ SoC MediaTek MT3620 ze zintegrowaną blokadą dostępu do sieci Wi-Fi i podsystemem zabezpieczeń Pluton. Oparty jest na mikrokontrolerze z rdzeniem Arm Cortex-A7 działającym z częstotliwością taktowania 500 MHz, a także zawiera dwa procesory Arm Cortex-M4F, działające z częstotliwością taktowania 200 MHz, przeznaczone do obsługi kodu aplikacji.
Procesor Arm Cortex-A7 idealnie nadaje się do obsługi kodu użytkownika wysokiego poziomu, natomiast dwa procesory Cortex-M4F służą do obsługi funkcji sterowania w czasie rzeczywistym. Urządzenia peryferyjne można mapować do dowolnej z tych trzech jednostek.
Podsystemem Wi-Fi steruje czwarty procesor, N9 z 32-bitową architekturą RISC z dwuzakresowym modułem radiowym 802.11a/b/g/n. Taki podział zapewnia wysoką przepustowość połączeń bezprzewodowych bez wpływu na wydajność pozostałej części systemu.
Piąty procesor, kolejny Cortex-M4F, zapewnia ochronę i bezpieczne zarządzanie zasilaniem w całym mikrokontrolerze. Realizuje sprzętowe źródło zaufania, w tym generator liczb losowych z systemem monitorowania entropii oraz realizuje funkcje dołączania kanałów bocznych i środki służące zapobieganiu ingerencji osób niepowołanych.
Mikrokontroler ma w sumie około 5 MB wbudowanej pamięci SRAM i 16 MB szeregowej pamięci Flash typu SIP (System-in-Package). Jednak po załadowaniu systemu operacyjnego Linux pozostaje około 512 KB pamięci SRAM dla pliku wykonywalnego aplikacji Azure Sphere, przy 256 KB dostępnych podczas wykonywania. Dostępna dokumentacja wskazuje, że w niektórych przypadkach ograniczenia te mogą być elastyczne.
Przy wyborze platform do zastosowań IoT najważniejsze jest oczywiście niskie zużycie energii. Model MT3620 pobiera od 0,01 mA do 0,02 mA w trybie o najniższym poziomie poboru mocy, w którym działa tylko zegar czasu rzeczywistego (RTC). Wyższe zużycie energii dotyczy przypadków, w których zastosowano wewnętrzny układ zarządzania energią (PMIC).
Wybudzanie z trybu niskiego poboru mocy wymaga jedynie 24 ms, łącznie z rozruchem pętli PLL i uruchomieniem oscylatora kwarcowego. Pobór mocy przy obsłudze sieci Wi-Fi w trybie lekkiego uśpienia wynosi 220 mA (w najgorszym przypadku 380 mA), osiągając 520 mA (w najgorszym przypadku 750 mA) przy pełnym działaniu wszystkich funkcji.
Zestawy uruchomieniowe
Rozpoczęcie pracy jest bardzo proste dzięki dostępności komputerów jednopłytkowych (SBC) ze złączami, które zapewniają tworzenie własnych aplikacji z użyciem nakładek. Zestaw rozwojowy Azure Sphere MT3620 ma dwie wbudowane anteny Wi-Fi oraz dwa złącza do anten zewnętrznych. Dostęp do peryferii zapewniają dwa rzędy podwójnych złączy. Płytka zawiera też kilka przycisków ogólnego przeznaczenia, przycisk resetowania systemu, diody LED sygnalizujące stan pracy systemu oraz złącze micro-USB, które służy do zasilania oraz debugowania.
Programowanie urządzenia i debugowanie odbywają się przy użyciu zintegrowanego środowiska programistycznego Microsoft Visual Studio wraz z zestawem Azure Sphere SDK. Środowisko wykonawcze aplikacji jest oparte na podzbiorze standardu POSIX i składa się z bibliotek zapewniających dostęp do urządzeń peryferyjnych, natomiast inne funkcje są dostępne za pośrednictwem usług wykonawczych.
Ogólne komunikaty we/wy lub komunikacja międzyprocesowa (IPC) są, ze względu na konfigurację zabezpieczeń, blokowane. Jednak po uwierzytelnieniu za pośrednictwem Azure Sphere kod aplikacji może wchodzić w interakcję z usługami w chmurze i wykorzystywać dostarczone biblioteki http(s).
Podejście do tworzenia oprogramowania jest nieco inne niż w przypadku programowania tradycyjnych mikrokontrolerów. Programista musi skonfigurować konto Microsoft Azure, a następnie zgłosić prawa do urządzenia, opisane jako powiązanie urządzenia z najemcą Azure Sphere. Jest to jednorazowy, nieodwracalny proces.
Następnie zaleca się skonfigurowanie połączenia Wi-Fi, ponieważ za pośrednictwem tego połączenia pobierane są aktualizacje systemu operacyjnego Azure Sphere. Od tego momentu, co 24 h przeprowadzany będzie proces aktualizacji.
Płytka jest dostarczana w stanie zablokowanym, co oznacza, że nie można do niej przesłać żadnego kodu. Interfejs IDE udostępnia interfejs wiersza polecenia, za pomocą którego można odblokować płytkę w celu programowania, dzięki czemu proces tworzenia kodu przebiega w sposób podobny do tego, do którego przyzwyczajeni są programiści pracujący z systemami wbudowanymi. Biblioteki oprogramowania zawierają również rozbudowane funkcje logowania, które umożliwiają debugowanie i analizę usterek.
Szybkie przygotowywanie prototypów wymaga metody efektywnego konstruowania sprzętu w oparciu o programowalną platformę. Rozwiązanie tej kwestii zapewnia zestaw startowy Azure Sphere Grove. Obejmuje on nakładkę z sześcioma złączami, które ułatwiają podłączenie dostarczonych czujników, modułów wejściowych i wyjściowych.
Składają się one z siedmiu płytek i obejmują takie elementy, jak wyświetlacz OLED, czujnik światła, przekaźnik, przycisk i czujnik temperatury. Każdy z nich jest starannie zapakowany i zawiera kabel połączeniowy wraz z opisem działania modułu i specyfikacjami elektrycznymi.
Podsumowanie
Po wielu latach szumu wokół tematu technologii IoT, różnych obszarów jej zastosowania i segmentów rynku, którym przynosi ona korzyści, wydaje się, że nareszcie mamy do czynienia z platformą, która upraszcza jej najbardziej złożony aspekt: bezpieczeństwo. Dzięki podejściu Azure Sphere, polegającemu na wbudowaniu zabezpieczeń w sprzęt i połączeniu ich z bezpiecznym rozwiązaniem w chmurze, typowe kompromisy, wynikające ze zrównoważenia funkcjonalności aplikacji względem zabezpieczeń, nie znajdują już uzasadnienia. Ponadto przeniesienie wykrywania zagrożeń na platformę, która na co dzień je monitoruje, pozwala programistom i producentom skupić się na ich rozbudowaniu funkcjonalności przy świadomości, że kwestie bezpieczeństwa są pod kontrolą.
Steve Herd, Head of Customer
Proposition and Product
Management at Distrelec
Elfa Distrelec