Czy Blockchain zapewni bezpieczeństwo w IoT?

| Gospodarka Mikrokontrolery i IoT

Według najnowszych szacunków Cisco Internet Business Solution Group w 2020 roku do sieci będzie podłączone ponad 50 mld urządzeń IoT. Każde z nich, pośrednio lub bezpośrednio, przetwarza i gromadzi olbrzymią liczbę danych, często prywatnych i wrażliwych. Liczne doniesienia o cyberatakach i nadużyciach udowadniają, że urządzenia IoT niestety są podatne na ataki i wykradnięcie danych. Nie dziwi więc fakt, że zapewnienie bezpieczeństwa staje się sprawą absolutnie priorytetową dla rozwoju IoT.

Czy Blockchain zapewni bezpieczeństwo w IoT?

Dzięki gigantycznemu wzrostowi popularności kryptowalut, coraz więcej developerów oprogramowania interesuje się technologią Blockchain. Okazuje się, że technologia ta może również być wykorzystany do znaczącej poprawy bezpieczeństwa w aplikacjach IoT. Aby w pełni zrozumieć, jak można zaimplementować go do IoT, należy najpierw przyjrzeć się samej technologii.

Krótko o tym, jak to działa

Blockchain to zdecentralizowana rozproszona baza danych oparta na architekturze peer-to-peer. W odróżnieniu od tradycyjnej architektury klient- serwer w peer-to-peer każde urządzenie ma te same uprawnienia - host może pełnić funkcję zarówno klienta, jak i serwera. Wymiana danych odbywa się poprzez system transakcji pomiędzy węzłami (urządzeniami), które po zweryfikowaniu dodawane są do rozproszonego rejestru (bloku) odpornego na modyfikacje. Cały proces jest względnie prosty: węzeł na samym początku informuje wszystkie pozostałe o pojawieniu się transakcji, która jest przez nie weryfikowana i dodawana do listy oczekujących na zaakceptowanie. Następnie tworzy on blok danych zawierający część lub wszystkie transakcje z listy. Jeśli pozostałe węzły zweryfikują tak utworzony blok i uznają go za poprawny, tworzą jego kopię oraz usuwają transakcje z listy. Każdy nowy blok jest połączony ze swoim poprzednikiem, co w efekcie tworzy nieprzerwane połączenie aż do pierwszego bloku (genesis block). Dzięki takiemu mechanizmowi połączeń modyfikacja pojedynczego bloku bez wykrycia przez pozostałe jest niemożliwa, a każdy blok zawierający zmodyfikowany rejestr transakcji jest odrzucany.

Jednym z najważniejszych pytań, które należy zadać przed zaimplementowaniem Blockchainu do danego rozwiązania, jest to, w jaki sposób nowy węzeł może przyłączyć się do sieci. Istnieją dwa rodzaje łańcucha bloków - licencjonowany i nielicencjonowany (permissioned i permissionless). W nielicencjonowanym, publicznym rozwiązaniu nie ma ograniczeń co do przyłączania węzłów a każdy z nich może brać udział w weryfikacji pozostałych. Tak wysoce zdecentralizowane rozwiązanie używane jest między innymi w Bitcoinie i innych kryptowalutach, gdzie każde urządzenie może bez ograniczeń dołączyć do sieci. Z kolei Blockchain licencjonowany z góry ustala, które węzły mogą przyłączyć się do sieci i weryfikować pozostałe. Takie rozwiązanie, pomimo większej centralizacji, wpływa pozytywnie na wydajność i bezpieczeństwo, co sprawia, że korzysta z niego większość obecnych komercyjnych implementacji.

 
Rys. 1. Prognoza wzrostu obrotu rynku Blockchain wg IBM, w mld dolarów

Blockchain to także szyfrowanie

Niezależnie od konfiguracji, struktura bloków w obu wariantach wygląda tak samo. Każda transakcja szyfrowana jest parą kluczy - prywatnym i publicznym. Zanim dany węzeł poinformuje pozostałe o pojawieniu się transakcji, musi "podpisać" ją swoim kluczem prywatnym w celu autoryzacji. Dołączany do niej klucz publiczny pozwala pozostałym węzłom zweryfikować lub odrzucić oczekującą transakcję. Stworzony w ten sposób unikatowy cyfrowy podpis zawiera informacje o jej nadawcy i czasie utworzenia. Weryfikacja bloku zawierającego tak utworzone ciągi danych odbywa się na zasadzie konsensusu - ustalona liczba węzłów musi uznać blok za poprawny, aby ten został zaakceptowany do łańcucha. Powyższe zabezpieczenia czynią Blockchain wyjątkowo bezpiecznym i odpornym na nieuprawioną modyfikacje systemem przechowywania danych.

Blockchain w IoT

Większość aplikacji IoT jest obecnie zależna od chmury - informacje są przesyłane z urządzeń, gdzie są przetwarzane i odsyłane z powrotem. Takie rozwiązanie ma dwie główne wady: bezpieczeństwo całej sieci zależy od zabezpieczeń chmury, a ograniczona moc obliczeniowa głównego serwera utrudnia skalowanie sieci. Dodatkowo w przypadku awarii chmury cała sieć urządzeń nie będzie mogła funkcjonować. Wprowadzenie Blockchaina do IoT może pozwolić wyeliminować te zagrożenia.

 
Rys. 2. Prognoza liczby połączeń dokonywanych przez aplikacje IoT w sieciach komórkowych (w mld), źródło: Ericsson Mobility Report 2018

Dzięki decentralizacji bazy danych i zabezpieczeniom oferowanym przez Blockchain nieuprawniona modyfikacja bazy danych będzie o wiele trudniejsza niż przy tradycyjnym rozwiązaniu, a z powodu braku zależności od chmury skalowanie sieci będzie mogło odbywać się przy minimalnych ograniczeniach. Urządzenia zyskają też dużą autonomiczność - będą w stanie funkcjonować poprawnie nawet mimo awarii części z nich. Niektóre firmy wprowadzają już stopniowo Blockchain do swoich produktów. Z platformy IOTA zaprojektowanej specjalnie pod wykorzystanie tej technologii w IoT korzystają już między innymi Bosch, Fujitsu czy Volkswagen.

Mimo to przed projektantami dalej stoją liczne wyzwania. Przede wszystkim Blockchain wymaga większej mocy obliczeniowej od tradycyjnego rozwiązania chmurowego, a wiele urządzeń IoT nie dysponuje wystarczającymi zasobami na jego implementację. Dodatkowo, opisane wyżej tworzenie bloków oraz ich weryfikacja wymagają czasu, podczas gdy w IoT kluczowe są jak najmniejsze opóźnienia w komunikacji pomiędzy urządzeniami. Blockchain generuje również pewnego rodzaju problem prawny powstrzymujący firmy przed szybkim wprowadzeniem go na rynek - urządzenia działające autonomicznie podejmują decyzje bez wiedzy centralnego serwera, co powoduje niejasności w kwestii odpowiedzialności za ewentualny błąd i jego skutki.

Zarówno IoT, jak i Blockchain to jedne z najszybciej rozwijających się obecnie technologii, a ich wspólne połączenie wydaje się niemal naturalne. Mimo to wciąż potrzeba czasu, żeby rozwiązać wszystkie problemy powstrzymujące przed jego pełnym wprowadzeniem. Czy Blockchain całkowicie wyprze tradycyjne rozwiązania używane w IoT? Aktualnie trudno o jednoznaczną odpowiedź, ale zdecydowanie warto uważnie obserwować jego dalszy rozwój. (PM)