DevSecOps – czyli jak zadbać o bezpieczeństwo aplikacji w ramach procesu DevOps
Jak dbać o bezpieczeństwo produktu w ramach procesu DevOps? Czym są SASTy, DASTy i SCA i jak to wszystko może wpłynąć na poprawę bezpieczeństwa?
Dzisiaj chcemy kontynuować dla Was temat IOT. Opowiemy Wam dzisiaj o bardziej technicznych aspektach działania urządzeń internetu rzeczy, stosach protokolarnych i wyzwaniach którym sprostać mają inżynierowie. Jeśli jesteście ciekawi, to zapraszamy do lektury!
Sieci komputerowe budowane są w sposób warstwowy i przedstawiane w oparciu o pewien model sieciowy np. OSI. Podzielenie poszczególnych odpowiedzialności jak np. identyfikator IP czy numer portu na inne warstwy sprawia, że protokoły mogą być rozwijane niezależnie od siebie i tym samym pozwala różnym organizacjom skupić się na różnych problemach na poszczególnych warstwach. Dwa najbardziej znane modele to referencyjny model OSI, który dokładnie dzieli poszczególne protokoły na warstwy oraz model TCP/IP funkcjonujący w dzisiejszym Internecie, który jest uproszczeniem modelu OSI.
Rysunek 1 – Porównanie modelów OSI i TCP/IP, źródło: geeksforgeeks.com
Odpowiadając na to pytanie należy wskazać na to, że urządzenia IOT działają w sieciach i muszą transportować dane do systemów je agregujących. Dodatkowo w poprzednim wpisie wskazaliśmy choćby na różnorodność technologii które używane są do dostarczenia danych w pierwszym etapie komunikacji (np. komunikacji sensora z jakimś lokalnym systemem agregującym te dane). Najważniejszymi elementami, które odróżniają standardową komunikację naszego komputera z Internetem od komunikacji urządzeń IOT są protokoły znajdujące się w warstwie aplikacji oraz w warstwie łącza danych.
Rysunek 2: Protokoły używane w IOT, model TCP/IP, źródło: fb.com/IoTResearch
Możemy zauważyć, że oprócz standardowego znanego wszystkim protokoły HTTP używanego między innymi w aplikacjach webowych mamy także specyficzne protokoły jak CoAP, MQTT, XMPP, DDS czy AMQP. W warstwie łącza danych znajdują się natomiast protokoły specyficzne do danego typu komunikacji np. Ethernet czy WiFi może być używane jeśli dane urządzenie końcowe ma dostęp do Internetu z użyciem przewodu czy fal. Jeśli nie ma zawsze zostaje możliwość użycia dostępu komórkowego (cellular) czy choćby WiMax.
Rysunek 3: Diagram przedstawiający komunikację urządzenia IOT z siecią komórkową., źródło: EMnify
Zanim jednak zagłębimy się w konkretne protokoły, należałoby powiedzieć o tym jak generalnie wygląda model komunikacji samego serwera z klientami oraz czym właściwie jest serwer. Serwer może być dowolnym urządzeniem działającym w sieci oferującym pewne usługi. W kontekście IOT serwer zwykle oznacza to samo co broker czy pewne urządzenie z oprogramowaniem agregującym dane od klientów (urządzeń IOT z sensorami). Wyróżniamy następujące modele komunikacji w IOT:
Rysunek 4: Model komunikacji request response, źródło InterviewBit
Rysunek 5: Model komunikacji Publish/Subscribe, źródło: geeksforgeeks.com
Rysunek 6 – model komunikacji push-pull, źródło geeksforgeeks.com
Rysunek 7 – Model komunikacji Exclusive Pair, źródło geeksforgeeks.com
Jak można zauważyć po powyższych przykładach zastosowanie określonego protokołu w warstwie aplikacyjnej popycha nas w kierunku określonego modelu komunikacji np. wybranie protokołu MQTT sprawia, że używamy modelu publish-subscribe, HTTP to client-server, a WebSockets to Exclusive Pair.
Ze względu na obniżenie kosztów produkcji podzespołów oraz rozwój technologiczny, w tym rozwój sztucznej inteligencji (polecamy poprzednie artykuły na ten temat) niedługo sensory będą umieszczane w każdym aspekcie przemysłu. Jeśli dana firma w swojej dziedzinie nie zastosuje nowoczesnych rozwiązań może stać się mało konkurencyjna na rynku. Najważniejsze rynki, w których obecnie stosuje się rozwiązania IOT to między innymi:
Udało nam się dzisiaj przedstawić wam podstawowe informacje z zakresu technicznego systemów IOT, modele komunikacji oraz realne zastosowanie w różnych dziedzinach rynku. Za tydzień kontynuujemy temat IOT, więc jeśli jesteście zainteresowani, to zapraszamy!
Źródła:
DevSecOps – czyli jak zadbać o bezpieczeństwo aplikacji w ramach procesu DevOps
Jak dbać o bezpieczeństwo produktu w ramach procesu DevOps? Czym są SASTy, DASTy i SCA i jak to wszystko może wpłynąć na poprawę bezpieczeństwa?
AdministracjaBezpieczeństwo
Zarządzanie tożsamością i dostępem użytkownika, czyli o co chodzi z IDP?
Czym jest tożsamość użytkownika? Z czego wynika potrzeba zarządzania dostępem w firmie? Jak działa tzw. IDP? Odpowiedź na te pytania znajdziesz w artykule.
Bezpieczeństwo
Hej, hej... Programisto, to kolejny artykuł dla Ciebie! Druga część artykułu na temat wzorców projektowych. Poznaj Adapter oraz Memento.
Programowanie