W jaki sposób inżynierowie mogą zapewnić bezpieczeństwo w erze IoT? - BEZPIECZEŃSTWO IT - INTERNET OF THINGS - INTERNET RZECZY - SYSTEMY WBUDOWANE - PROJEKTOWANIE IOT - ARM TRUSTZONE
Mouser Electronics Poland   Przedstawicielstwo Handlowe Paweł Rutkowski   PCBWay  

Energetyka, Automatyka przemysłowa, Elektrotechnika

Dodaj firmę Ogłoszenia Poleć znajomemu Dodaj artykuł Newsletter RSS
strona główna ARTYKUŁY Elektronika W jaki sposób inżynierowie mogą zapewnić bezpieczeństwo w erze IoT?
drukuj stronę
poleć znajomemu

W jaki sposób inżynierowie mogą zapewnić bezpieczeństwo w erze IoT?

fot. Farnell element14

O ile Internet Rzeczy (IoT) to dziś jedno z najgorętszych haseł marketingowych, większość inżynierów od dawna wiedziała, że dodanie łączności do niemal jakiegokolwiek urządzenia elektronicznego przynosi znaczące korzyści. Sam termin IoT ma też bardzo szerokie znaczenie, obejmując ogromną różnorodność aplikacji, począwszy od ruchomych kamer monitoringu przemysłowego, przez łączność za pomocą protokołów internetowych i łączenie czujników w fabrykach, a kończąc na noszonych na ciele akcesoriach do śledzenia postępów aktywności sportowych i zdalnym sterowaniu ogrzewaniem w domu.

Jednym z wyzwań, z którym mierzą się wszyscy projektanci urządzeń podłączonych do Internetu jest bezpieczeństwo. Mobilne płatności są oczywistym przykładem: banki naturalnie chcą zapobiec nielegalnym transakcjom w momencie, gdy wykonujesz płatność za pomocą swojego telefonu. Niestety, zagrożenia bezpieczeństwa w IoT są niezwykle różnorodne i w związku z tym ich konsekwencje mogą być bardzo daleko idące. Niedawne włamanie do kamer korzystających z protokołu IP pozwoliło na przeprowadzenie ataku DoS na Dyn (firmę zajmującą się infrastrukturą internetową), co poskutkowało wyłączeniem wielu ważnych stron internetowych. Tymczasem zagrożenia związane z podłączeniem do Internetu dużych systemów przemysłowych – takich jak np. elektrownie atomowe – są potencjalnie katastrofalne.

Ryzyko jest tak duże, że tematem interesują się rządy poszczególnych państw. Szczególnie aktywna w tym zakresie jest Unia Europejska. W kwietniu 2016 roku Internet Rzeczy znalazł się na liście pięciu priorytetowych zagadnień w odniesieniu do standaryzacji technologii informacyjnych i komunikacyjnych wg Komisji Unii Europejskiej. Komisja chce m.in. opracować standardy zaufania, prywatności i zabezpieczeń komunikacji pomiędzy końcowymi urządzeniami; pojawiła się nawet koncepcja wprowadzenia „oznakowania zaufanych urządzeń i systemów IoT”.

Dlaczego bezpieczeństwo jest tak ważnym problemem w IoT? Niespotykana dotąd ilość produkowanych danych, ogrom połączeń pomiędzy systemami IoT i potencjalne szkody napędzają obawy. Jeden czynnik, który nie powinien zostać niedoceniony to odsetek inżynierów, którzy dotąd tworzyli systemy niepodłączone do Internetu, a którzy teraz muszą opracowywać produkty podłączone do sieci. Możemy mieć pewność, że banki mają odpowiednio bogatą wiedzę i doświadczone zespoły, by zapewnić bezpieczeństwo transakcji finansowych, ale jak możemy oczekiwać od inżynierów, by znali się na zabezpieczaniu kamer podłączanych do Internetu, skoro wcześniej pracowali jedynie nad kamerkami internetowymi na USB?

Na szczęście, dostawcy, począwszy od producentów półprzewodników, a kończąc na dystrybutorach, oferują technologie i wsparcie, które pozwoli na tworzenie bardziej bezpiecznych produktów IoT, o ile tylko inżynierowie poświęcą dodatkowy czas na postępowanie zgodnie z podstawowymi zasadami.

Ryzyko i zagrożenia

Zagrożenia bezpieczeństwa, związane z IoT, są dosyć oczywiste – wystarczy tylko zastanowić się, co się dzieje, jeśli jeden z systemów podłączonych do Internetu ulegnie usterce. Za ochronę głównych systemów infrastrukturalnych i innych dużych systemów, krytycznych pod względem bezpieczeństwa odpowiadają eksperci, którzy ciągle podejmują kolejne starania w tym zakresie. Jest to możliwe dzięki zapewnieniu odpowiednio dużych budżetów na ten cel. Jednakże nawet tak proste i niedrogie urządzenia, jak domowy system ogrzewania, powinny być zabezpieczone. Powrót do domu z wycieczki narciarskiej i odkrycie, że ktoś włamał się do systemu ogrzewania a wszystkie rury są zamrożone może być bardzo kosztownym wstępem do tematu znaczenia bezpieczeństwa w IoT.

Na niedawnym spotkaniu w Chicago, Roman Budek z NXP podał, że istnieje sześć głównych zagrożeń bezpieczeństwa, które projektanci systemów IoT powinni nie tylko wziąć pod uwagę, ale też redukować w tworzonych przez siebie rozwiązaniach. Jeśli dane znajdują się w chmurze lub poprzez chmurę odbywa się sterowanie nim, należy rozważyć możliwość zdalnych ataków na dostawców usług chmurowych. Nie wystarczy założyć, że wybór dużego operatora tego typu jest sposobem na poradzenie sobie z ryzykiem takich ataków.

Natura Internetu Rzeczy sprawia, że urządzenia IoT są często ulokowane w miejscach dostępnych przez różne osoby, a więc możliwe są fizyczne ataki na takie systemy peryferyjne, np. sterujące zamkiem do drzwi. Problematyczne są również podatne, podrobione albo przejęte już przez hakera urządzenia, które mogą zagrozić sieci od środka. Stanowi to bardzo trudne wyzwanie, gdyż wielu producentów systemów IoT wierzy, że kompatybilność z produktami innych firm jest kluczowa do zapewnienia sukcesu ich własnych rozwiązań.

Bramka lub urządzenie krańcowe, podłączone bezpośrednio do Internetu, stanowią potencjalny cel zdalnych ataków. W przypadku automatyki domowej, bramką jest najczęściej niedrogi router, zainstalowany przez dostawcę internetowego klienta i może mieć on ograniczone funkcje lub niezałatane podatności.

Smartfony, tablety i inteligentne zegarki również mogą stanowić zagrożenie, gdyż użytkownicy mogą zostać namówieni do pobrania złośliwej aplikacji, która da atakującemu dostęp do całej sieci. Alternatywnie, zdobycie numeru PIN użytkownika może dać napastnikowi dostęp do urządzenia, na którym jest zainstalowana aplikacja sterująca systemem IoT. W końcu, wraz z postępującym rozwojem IoT i zastępowaniem starych urządzeń nowszymi produktami, wycofane z użytku sprzęty mogą zostać użyte jako konie trojańskie, do złamania zabezpieczeń sieci.

Jest jasnym, że podczas projektowania urządzeń IoT, inżynierowie muszą przyjmować holistyczne spojrzenie na cały system, zamiast koncentrować się jedynie na produkcie, który opracowują.

Zapewnianie bezpieczeństwa urządzeniom wbudowanym

Podczas prac nad wbudowanym urządzeniem IoT, inżynierowie muszą mieć pewność, że są w stanie osiągnąć trzy następujące cele:

Integralność danych: zapewnić ochronę danych przed ich niepowołanym podglądem, by mieć pewność, że są one dostępne tylko poprzez autoryzowane w tym celu osoby. Należy też upewnić się, że dane nie mogą być zmienione, a więc by nie można było wprowadzić w nie złośliwe treści lub by nie wystąpiły zwykłe pomyłki.

Integralność kodu: zabezpieczenie kodu jest także krytycznie ważne. Wszelkie zmiany w kodzie muszą być wykrywane i tylko te, które są autoryzowane, powinny być dozwolone. Dodatkowo, większość firm martwi się także ochroną swojej własności intelektualnej, wymagając podjęcia starań by uniemożliwić kradzież kodu.

Integralność urządzenia: Ważnym jest, by upewnić się, że połączone urządzenia są autentyczne i że ich krytyczne funkcje nie zostały zmanipulowane. Dlatego też urządzenia IoT potrzebują silnych mechanizmów odpowiadających za autentykację i bezpieczeństwo kluczy kryptograficznych, a więc by zapobiec hakowaniu i podrabianiu produktów.

By osiągnąć powyższe cele, eksperci z tematu bezpieczeństwa często odnoszą się do sześciu zasad bezpieczeństwa systemów wbudowanych IoT, które powinny stanowić podstawy prac każdego projektanta: identyfikacja/autentykacja, autoryzacja, audyt, poufność, integralność i dostępność. W sercu wielu z tych zasad znajduje się kryptografia.

Wsparcie bezpieczeństwa IoT ze strony komponentów

Dobra wiadomość dla projektantów produktów IoT jest taka, że wiele komponentów już teraz ma wbudowane mechanizmy ułatwiające tworzenie zabezpieczeń. Weźmy na przykład procesor aplikacyjny NXP iMX 7Solo, używany m.in. w platformie NXP WaRP7 IoT and Wearable Development Platform, która została opracowana we współpracy z firmą Premier Farnell. Ta platforma do prototypowania IoT obejmuje wiele funkcji bezpieczeństwa, które wbudowano w sam procesor.

Schemat blokowy procesora aplikacyjnego iMX 7 Solo

Rys. 1. Schemat blokowy procesora aplikacyjnego iMX 7 Solo

Jedną z najbardziej oczywistych funkcji jest wsparcie dla szyfrowania. Układ wspiera także sprzętowo akcelerowane szyfrowanie z modułem CAAM (Cryptographic Acceleration and Assurance Module). Moduł ten zawiera obwody kryptograficzne i haszujące, które obsługują dużą grupę standardów kryptograficznych.

Istnieją dwa podstawowe typy algorytmów kryptograficznych: symetryczny i asymetryczny, a wybór odpowiedniego rodzaju spośród nich stanowi ważną decyzję w trakcie projektowania systemu IoT. Algorytmy symetryczne używają tego samego klucza, zarówno do szyfrowania, jak i deszyfrowania danych oraz mniej obciążają procesor. Niektóre z najczęściej stosowanych algorytmów szyfrujących, takie jak AES – bardzo popularny, ponieważ nigdy dotąd nikt nie zgłosił, by umiał go złamać – korzystają z szyfrowania symetrycznego. I o ile taki algorytm jest silny, zastosowanie pojedynczego klucza szyfrującego stanowi potencjalną podatność. Klucz ten trudno dystrybuować i chronić. Zazwyczaj w szyfrach symetrycznych stosuje się klucze o długości od 128 do 256 bitów.

W szyfrowaniu asymetrycznym używa się jednokierunkowego podejścia z parą kluczy. Klucz prywatny jest przechowywany sekretnie i nie jest w żaden sposób dystrybuowany, podczas gdy kluczem publicznym można się swobodnie dzielić. Jeśli klucz publiczny został użyty do zaszyfrowania wiadomości, wtedy prywatny jest potrzebny do jego zdekodowania. I w drugą stronę – jeśli dane zaszyfrowano kluczem prywatnym, wtedy publicznym można je odszyfrować. To podejście sprawia, że systemem jest łatwiej zarządzać i że jest on znacznie bardziej skalowalny. Co więcej, można używać kluczy o długości do 4096 bitów. Procesor z płytki WaRP7 jest przykładem komponentu, który wspiera takie długie, bezpieczne klucze.

Jednym z wymagań, jakie wiążą się ze stosowaniem algorytmów szyfrujących jest dostępność generatora liczb losowych (RNG – Random Number Generator). Używa się go do generowania kluczy, które muszą być losowe, gdyż w przeciwnym razie haker mógłby przewidzieć je i złamać szyfr. Moduł CAAM obejmuje, zgodne z certyfikatami amerykańskiego Narodowego Instytutu Standardów i Technologii (NIST - National Institute of Standards and Technology), generatory liczb pseudolosowych i prawdziwie losowych.

Poprzez wbudowanie w układy scalone, omówionego wyżej, sprzętowego wsparcia szyfrowania, urządzenia IoT mogą być projektowane w sposób zapewniający większe bezpieczeństwo i silniejsze algorytmy, bez dramatycznego obciążania procesora, a więc bez ograniczania jego możliwości do pracy z właściwym kodem aplikacji.

Pomimo wysokiego poziomu bezpieczeństwa dostępnych algorytmów, jest możliwe by zastosować ataki, które bazują na pomiarze zużycia mocy przez komponent, celem poznania sekretnych kluczy. Zadanie to może być znacznie łatwiejsze, niż się zdaje, jako że algorytmy kryptograficzne mogą obejmować obracanie rejestrów z kluczami. Jednakże procesor użyty na płytce WaRP7 ma wbudowane mechanizmy przeciwdziałające takim atakom i uniemożliwiające detekcję kluczy za pomocą prostej (SPA – Simple Power Analysis) lub różnicowej (DPA – Differential Power Analysis) analizy poboru mocy.

Istnieją także inne funkcje, wbudowane m.in. w procesor zainstalowany na płytce WaRP7, które pozwalają zwiększyć poziom bezpieczeństwa. Bezpieczne, nieulotne przechowywanie danych (SNVS – Secure Non-Volatile Storage) to mechanizm sprzętowy, który pozwala określić, czy komponent jest w bezpiecznym stanie, a więc czy można uzyskać dostęp do jego zasobów. Jeśli faktycznie znajduje się w bezpiecznym stanie, specjalne klucze kryptograficzne mogą zostać użyte do deszyfrowania sekretnych danych długoterminowych, takich jak pary złożone z klucza publicznego i prywatnego, klucze DRM i inne własnościowe oprogramowanie.

Za naruszenie bezpieczeństwa można uznać takie sytuacje, jak zdarzenia związane z obsługą interfejsu JTAG, skoki mocy, niezgodność sumy kontrolnej klucza głównego oraz problemy zgłoszone programowo lub sprzętowo wykryte próby manipulowania wyprowadzeniami. Gdy takie naruszenia zostaną wykryte, system aktywuje oprogramowanie lub obwody sprzętowe, odpowiedzialne za bezpieczeństwo. W przypadku wysoce wrażliwych aplikacji, wykrycie prób sprzętowej manipulacji mogłoby powodować np. natychmiastowe, automatyczne, realizowane na poziomie sprzętu, zerowanie głównego klucza, równoznaczne z zablokowaniem dostępu do bezpiecznej pamięci i wyczyszczeniem jej zawartości.

W niektórych aplikacjach potencjalnym zagrożeniem są zegary czasu rzeczywistego. Prostym przykładem jest pomiar energii elektrycznej, gdzie atak mógłby polegać na ustawieniu zegara w taki sposób, by zawsze wskazywał czas, w którym cena energii jest najniższa. Ochrona zegara czasu rzeczywistego za pomocą tego samego mechanizmu SNVS pozwala zrealizować dodatkowe zabezpieczenia. Płytka WaRP7 pozwala też inżynierom na wykorzystanie liczników monotonicznych, których nie można odwrócić, a więc w ten sposób można zabezpieczyć się przed atakami polegającymi na cofaniu liczników.

By zapewnić integralność kodu, producenci procesorów zastosowali kilka podejść, umożliwiających odizolowanie aplikacji i zapewnienie, że firmware systemu nie został zaatakowany. Układ iMX 7Solo, znajdujący się na płytce WaRP7, zawiera dwa rdzenie ARM, wspierające technologię TrustZone. Stanowi ona sposób firmy ARM na rozdzielenie i identyfikowanie bezpiecznego i niezabezpieczonego świata, blokując przy tym oprogramowanie ze świata niezabezpieczonego przed bezpośrednim dostępem do zasobów bezpiecznych. W praktyce oznacza to, że każdy fizyczny rdzeń procesora ma dwa rdzenie wirtualne, z czego jeden uważa się za bezpieczny, a jeden za niezabezpieczony.

Rys. 2. ARM TrustZone

Rys. 2. ARM TrustZone

Technologia TrustZone polega na bezpiecznym, niskopoziomowym firmware. Włączenie w nią funkcji wysoce bezpiecznego startowania systemu (HAB – High-Assurance Boot), która korzysta z podpisów cyfrowych by zbadać autentyczność oprogramowania i uniemożliwić nieautoryzowanemu oprogramowaniu przejęcie kontroli nad sekwencją startową, zapewnia że wbudowane oprogramowanie niskopoziomowe nie może zostać złamane.

Radzenie sobie ze złożonością

W niniejszym artykule omówiono tylko jedną, przykładową płytkę, stanowiącą przykład funkcji pomagających zwiększyć poziom bezpieczeństwa. Wyzwaniem, przed jakim stają inżynierowie jest złożoność wprowadzana przez tego typu komponenty. Dokumentacja układów z rodziny i.MX 7Solo ma 150 stron, a podręcznik do niego przekracza 4000 stron. Jasnym jest, że potrzebna jest jakaś pomoc dla inżynierów, by czas potrzebny na nauczenie się tego, jak korzystać z nowych komponentów mieścił się w jakimś realnym, sensownym przedziale.

Na początku krytyczny jest wybór odpowiedniej platformy deweloperskiej. Materiały, takie jak np. na stronach społeczności element14 w dziale Design Center obejmują szczegółowe informacje na temat procesorów, platform deweloperskich, narzędzi programowych i pozostałych. Współpracując z inżynierami aplikacyjnymi, dystrybutorzy tacy jak Farnell element14 odgrywają kluczową rolę w sprawianiu, że projektanci podejmują poprawne decyzje i że czas nauki nowych technologii skraca się za sprawą dostępności odpowiednich narzędzi i informacji.

Bardzo wysokie poziomy integracji produkowanych obecnie komponentów sprawiają, że platformy deweloperskie często zawierają tylko kilka dużych komponentów, czyniąc je niemal idealnym sprzętem nawet na etapie produkcji. Farnell element14 współpracuje z wieloma firmami by dostosowywać istniejące już płytki, takie jak Raspberry Pi do konkretnych potrzeb, lub projektuje nowy sprzęt na zamówienie, spełniający sprecyzowane wymagania, pozostawiając inżynierom więcej czasu na pracę nad kodem, w którym to właśnie koncentruje się większość złożoności i w którym to kodzie kryje się to, co wyróżnia produkt pośród konkurencji.

Wnioski – bezpieczeństwo to jedno z największych wyzwań Internetu Rzeczy

Dziś niemal każde urządzenie elektroniczne skorzysta, jeśli podłączy się je do Internetu, niezależnie czy w celu zdalnego sterowania, monitorowania czy po prostu rejestrowania i analizy danych. Niestety, połączenie to skutkuje pojawieniem się potencjalnych zagrożeń, z którymi trzeba sobie poradzić za pomocą odpowiednich mechanizmów bezpieczeństwa, zarówno na poziomie komponentów, jak i całego systemu. Wsparcie ze strony producentów półprzewodników i oprogramowania, odnoszące się do bezpieczeństwa – począwszy od szyfrowania, a kończąc na bezpieczeństwie fizycznym, jest łatwo dostępne. Dlatego nie ma żadnej wymówki dla projektantów produktów IoT, którzy nie zaimplementowali odpowiednich mechanizmów bezpieczeństwa w swoich rozwiązaniach. Niemniej inżynierowie muszą się zmierzyć z coraz większą złożonością, która nierozerwalnie wiąże się z dodatkowymi funkcjami i dlatego muszą sięgać po pomoc do takich dostawców, jak Premier Farnell, którzy ułatwią pokonanie tych wyzwań.

REKLAMA

Otrzymuj wiadomości z rynku elektrotechniki i informacje o nowościach produktowych bezpośrednio na swój adres e-mail.

Zapisz się
Administratorem danych osobowych jest Media Pakiet Sp. z o.o. z siedzibą w Białymstoku, adres: 15-617 Białystok ul. Nowosielska 50, @: biuro@elektroonline.pl. W Polityce Prywatności Administrator informuje o celu, okresie i podstawach prawnych przetwarzania danych osobowych, a także o prawach jakie przysługują osobom, których przetwarzane dane osobowe dotyczą, podmiotom którym Administrator może powierzyć do przetwarzania dane osobowe, oraz o zasadach zautomatyzowanego przetwarzania danych osobowych.
Komentarze (0)
Dodaj komentarz:  
Twój pseudonim: Zaloguj
Twój komentarz:
dodaj komentarz
Farnell, An Avnet Company
ul. Canal Road , Leeds
tel.  00 800 121 29 67
pl.farnell.com
$nbsp;
REKLAMA
Nasze serwisy:
elektrykapradnietyka.com
przegladelektryczny.pl
rynekelektroniki.pl
automatykairobotyka.pl
budowainfo.pl