Metody zabezpieczeń dla inteligentnych węzłów IoT
| Prezentacje firmowe ArtykułyW trakcie prac projektowych nad aplikacjami IoT deweloperzy w naturalny sposób skupiają się na ochronie najbardziej wrażliwych elementów tworzących rozproszone sieci tego typu, a więc elementarnych węzłach zawierających czujniki i elementy wykonawcze zajmujące się akwizycją danych i sterowaniem urządzeniami. Czy takie podejście można uznać za wystarczające?
Węzły sieci IoT dostarczają danych do chmury obliczeniowej oraz otrzymują komendy wydane przez aplikacje, takie jak urządzenia mobilne, inteligentny sprzęt AGD, komputery panelowe i podobny sprzęt. Węzły IoT od strony logicznej znajdują się na obrzeżach rozległej sieci i topologii rozproszonej i dodatkowo mogą one pochodzić od różnych dostawców, przez co efektywna i skuteczna kontrola stanu sieci, zapobieganie złośliwym atakom oraz celowemu lub przypadkowemu przeciążaniu zasobów i związanej z tym degradacji wydajności komunikacji staje się zadaniem skomplikowanym.
Dodatkowo są to zwykle aplikacje o bardzo ograniczonych zasobach sprzętowych, bardzo proste od strony układowej, niemniej też postrzegane jako bardzo wrażliwe na złośliwe ataki.
Rzeczywiście serwery zarządzające siecią komunikują się z nimi i wymieniają dane wrażliwe, jednak za każdym razem powinna być to transmisja szyfrowana. Jest to warunek konieczny do zapewnienia bezpieczeństwa, jednak częstym błędem jest utożsamianie szyfrowania danych z bezpieczeństwem. Faktycznie szyfrowanie jest tylko jednym z elementów tego drugiego pojęcia.
Jedną z pierwszych rzeczy, jakie muszą być wykonane przez projektanta, aby powstało bezpieczne od strony komunikacji otoczenie sieciowe, jest stworzenie niezawodnego mechanizmu kontrolnego dla wszystkich jednostek dołączonych do sieci. Kluczowe informacje obejmują także wiedzę na temat tego, kto chce się dołączyć do sieci, gdyż taki element nie ma ustalonej bezpiecznej metody wymiany informacji.
Wykorzystywane do tego celu technologie szyfrowania takie jak TLS (Transport Layer Security) zapewniają głównie bezpieczeństwo używanego kanału komunikacyjnego. Ochrona integralności transmitowanych danych wymaga dodatkowego uwierzytelnienia kanału transmisyjnego wykorzystywanego do łączności z węzłem IoT i wreszcie upewnienia się, że dołączane urządzenie do sieci jest faktycznie tym, które może się w niej znaleźć.
Ograniczone zasoby sprzętowe aplikacji IoT powodują, że odpowiedź na pytania, czy sprzęt, który dołącza się do sieci jest zaufany, oraz czy nie jest to złośliwa aplikacja, która udaje węzeł IoT, nie są proste, bo trzeba pamiętać, że cały proces przebiega bez wsparcia ze strony operatora. Sieci IoT w znakomitej większości są bezobsługowe i działają w pełni automatycznie.
Jak zapewnić bezpieczeństwo w IoT
Zapewnienie bezpieczeństwa w sieci IoT wymaga również nierzadko przekonania użytkownika lub inwestora, że wysoki poziom zabezpieczeń jest wartością zawsze pożądaną. Prostota sieci nie sprzyja profesjonalnemu podejściu użytkowników do tego zagadnienia, którzy często bagatelizują zabezpieczenia, nie widząc nic złego w tym, że ktoś mógłby odczytać temperaturę panującą w domu lub włączyć zdalnie oświetlenie. Prostota aplikacji IoT wydaje im się zniechęcająca dla ewentualnego włamywacza, który musiałby włożyć wiele starań dla uzyskania mało spektakularnego efektu.
Z punktu widzenia producenta aplikacji IoT to, że aplikacja pracuje w mało odpowiedzialnym miejscu lub jest postrzegana jako mało istotna, nie może mieć znaczenia, gdyż niedostateczna ochrona tworzy ryzyko na poziomie całej sieci. Z uwagi na to, że topologia nie jest ustalona raz na zawsze, to, co dzisiaj wydaje się nieistotne, jutro może być wielkim problemem, gdy na przykład złośliwy program udający węzeł IoT mierzący temperaturę przejmie kontrolę nad danymi zawartymi w chmurze lub pracą reszty węzłów.
Podsumowując, autentykacja każdego z węzłów sieci i możliwość weryfikacji tożsamości jest kluczowym czynnikiem zapewnienia bezpieczeństwa w sieciach rozproszonych IoT. Oparcie całego bezpieczeństwa sieci na znanych technologiach szyfrowania komunikacji, takich jak TLS lub SSL, nie zapewnia pozbycia się ryzyka, bo mechanizmy te są nieskuteczne, gdy do sieci można dołączyć się w sposób nieautoryzowany.
Skuteczny sposób zabezpieczenia aplikacji IoT powinien opierać się na trzech filarach:
- poufność danych - transmitowane informacje powinny móc odczytać jedynie autoryzowane osoby,
- integralność - przesyłane wiadomości muszą być chronione przez możliwością przekłamania niesionej przez nie treści,
- identyfikacja - użytkownik sieci musi mieć pewność, że dane są przesyłane przez urządzenia, którym może zaufać.
Do realizacji zabezpieczeń spełniających te wymagania można wykorzystać wiele technologii, ale ogólnie bazują one na tajnych lub prywatnych kluczach szyfrujących, które są częścią znaczników indentyfikacyjnych.
Sposób, w jaki te klucze są przechowywane i dystrybuowane, determinuje bezpieczeństwo systemu, a przykład realizacji obejmujący bezpieczną transmisję danych, bezpieczne magazynowanie danych oraz nadzór nad całością sieci pokazany został na rysunku 2. Niemniej problem kryje się w tym, aby osiągnąć te założenia przy niewielkich zasobach sprzętowych dostępnych w aplikacji węzła sieci IoT oraz także przy minimalnym koszcie.
Rozpoczynając pracę nad aplikacją IoT, warto oprzeć działania na następującym schemacie:
- identyfikacja i uwierzytelnienie - niezbędna, aby mieć pewność, że tylko autoryzowane urządzenia mają dostęp do sieci,
- poufność - szyfrowanie danych,
- integralność - dodanie Message Authentication Code (MAC) do każdego komunikatu zabezpiecza przed ingerencją w treść,
- przechowywanie kluczy w bezpiecznym hardware bez możliwości dostępu elektrycznego. Do takich zadań przeznaczona jest rodzina układów CryptoAuthentication firmy Atmel zapewniająca bezpieczne przechowywanie kluczy szyfrujących i zarządzanie dystrybucją kluczy za pomocą wielopoziomowych mechanizmów bezpieczeństwa (rys. 3),
- ekranowanie elektromagnetyczne zapobiegające podsłuchom,
- dodanie obwodów, które będą chroniły urządzenie przed atakami metodami statystycznymi, np. wprowadzające przypadkowość do krytycznych sygnałów,
- szyfrowanie przechowywanych kluczy po to, aby nie można było ich odczytać metodami reverse engineering,
- eliminacja nieużywanych wejść (portów).
Future Electronics Polska
www.futureelectronics.com