#SSL

Komunikacja pod kontrolą – bezpieczeństwo w systemach wbudowanych

Współczesne życie opiera się na komunikacji elektronicznej i przesyłaniu różnego rodzaju danych cyfrowych. Dostarczenie energii elektrycznej, uruchomienie produkcji, zrealizowanie transakcji bankowej, uzbrojenie alarmu, odczytanie wiadomości e-mail czy wyświetlenie na smartwatchu informacji z telefonu to tylko kilka z ogromnej liczby możliwych działań, które wymagają wymiany danych cyfrowych.

Informacje przesyłane w komunikacji pomiędzy urządzeniami w dużej części nie mają wartości dla hakerów, jednak pewną ich część stanowią dane wrażliwe, których dostanie się w niepowołane ręce może nieść bardzo poważne konsekwencje.

„IoT Cybersecurity Readiness Report” opracowany przez Trustwave oraz analiza „The State of Industrial Cybersecurity 2017” autorstwa Business Advantage Group pokazały dobitnie jak istotne jest podniesienie poziomu zabezpieczeń w przemysłowych systemach kontroli oraz sieciach IoT. 61% firm zajmujących się technologiami IoT przyznaje, że miało do czynienia z włamaniami lub próbami włamań do ich systemów. Jak wskazuje drugi z wymienionych raportów, 54% firm reprezentujących branżę przemysłową potwierdza, że w ciągu ostatniego roku doświadczyło co najmniej jednego „incydentu” związanego z naruszeniem bezpieczeństwa systemu zarządzania produkcją. Powyższe liczby obrazują skalę problemu z którym muszą zmierzyć się zarówno producenci urządzeń, jak i integratorzy systemów.

Przykładami niebezpiecznych działań hakerów są między innymi włamania do systemów komunikacyjnych sieci energetycznych lub systemów zarządzania produkcją w zakładach przemysłowych. Lista metod stosowanych przez hakerów nie ogranicza się już tylko do ataków typu DDoS, stosowania botów, czy phishingu, ale dzięki ich pomysłowości wydłuża się z każdym dniem.

Jedną z metod ochrony przesyłanych informacji jest ich szyfrowanie –  proces przekształcania danych w nieodczytalny ciąg znaków. W ogólnym skrócie, aby zaszyfrować wiadomość potrzebne jest wykorzystanie klucza szyfrującego, a następnie – w celu jej odczytania – bezpieczne przekazanie odbiorcy odpowiedniego klucza rozszyfrowującego.

Jak rozwiązuje się kwestie szyfrowania w systemach wbudowanych? Odpowiedź jest ściśle związana ze specyfiką danego projektu, jednak w większości przypadków zastosowanie znajdą 3 metody, które przybliżam w dalszej części artykułu:

  • Bezpośrednie szyfrowanie danych,
  • Protokół SSL (połączenia TCP/UDP),
  • Zabezpieczenie całej komunikacji TCP/IP poprzez VPN (IPSec).

Bezpośrednie szyfrowanie danych

Najprostszą koncepcją dla połączeń pomiędzy dwoma urządzeniami jest szyfrowanie danych za pomocą jednego z dostępnych algorytmów szyfrowania. Obecnie najbardziej popularnym jest symetryczny szyfr AES GCM, który pozwala na uwierzytelnienie i szyfrowanie za pomocą tego samego klucza.

Bezpośrednie szyfrowanie danych posiada jednak znaczącą wadę związaną z problemem wymiany kluczy szyfrujących. Przykładowe rozwiązania tego problemu to:

  1. Użycie klucza wstępnego PSK (ang. PreShared Key),
  2. Implementacja protokołu wymiany kluczy.

Najprostszym pomysłem jest wymiana kluczy pomiędzy urządzeniami poza siecią (np. bezpośrednie wgranie kluczy do urządzeń), a następnie użycie ich do szyfrowania. Rozwiązanie to pozwala na zabezpieczenie przesyłanych informacji na podstawowym poziomie. Można z niego skorzystać w sytuacji, w której wymianie poddajemy niewielką ilość danych. Klucz PSK nie będzie jednak skuteczny dla komunikacji z dużą przepustowością.  Jeśli atakujący przechwyci znaczną ilość danych, będzie w stanie złamać szyfr.

W przypadku wysokiej przepustowości zalecana jest zmiana klucza po określonej liczbie wysłanych informacji lub w stałych interwałach czasowych. Wdrożenie własnego mechanizmu wymiany kluczy nie jest jednak prostym zadaniem. Zwykle wymaga to sporego nakładu czasu i nie daje pewności, że nasz mechanizm wymiany kluczy będzie bezpieczny. Stworzenie wysoce bezpiecznego mechanizmu wymaga bowiem dysponowania solidnym zapleczem wiedzy i doświadczenia z obszaru kryptografii. Znaczącą zaletą unikatowego protokołu wymiany kluczy jest to że haker nie będzie posiadał żadnej wiedzy na jego temat, dzięki czemu zabezpieczenie będzie zdecydowanie trudniejsze do złamania.

SSL

Możemy również wykorzystać jeden z istniejących, oficjalnie zweryfikowanych protokołów wymiany kluczy, które oferują wysoki poziom ochrony. Do najpowszechniej wykorzystywanych rozwiązań z tej kategorii należą protokoły SSL oraz IKEv2.

SSL jest kompletnym protokołem szyfrującym, który obejmuje również wymianę danych. Narzędzie jest nieprzerwanie rozwijane w celu zwiększenia poziomu bezpieczeństwa oraz naprawy zidentyfikowanych zagrożeń. Najnowsza wersja TLS 1.3 wykorzystuje kryptografię krzywych eliptycznych (ang. ECC) jako obowiązkowego zestawu szyfrów i zmienionego protokołu, aby zapewnić własną ochronę przed lukami w poprzednich wersjach.

SSL opiera się zasadniczo na połączeniach TCP. Istnieją podejścia, w których wykorzystuje się go dla różnych warstw transportowych, jednak tego rodzaju implementacja wymaga zapewnienia mechanizmu gwarantującego niezawodność wymiany danych.

 

Zabezpieczenie całej komunikacji TCP/IP poprzez VPN (IPSec)

Innym sposobem zabezpieczenia całej komunikacji jest użycie połączeń VPN za pomocą protokołu IPSec. W tym przypadku dostępne są dwa sposoby wymiany kluczy – PSK oraz IKEv2. Protokół IKEv2 umożliwia zarządzanie kluczami tj. ich negocjowanie, generowanie i odświeżanie. IPSec zapewnia szyfrowanie na poziomie protokołu IP, aby zabezpieczyć przychodzące i wychodzące pakiety. Może zostać wykorzystany do tworzenia tuneli np. w celu połączenia dwóch sieci za pośrednictwem Internetu. Zapewnia również podstawowe wsparcie w postaci zapory ogniowej dla stosu, który określa reguły filtrowania pakietów – adres IP, protokół, porty oraz tryb: przekazywanie, blokowane i szyfrowanie. IPSec pozwala zabezpieczyć całą komunikację IP (TCP, UDP, ICMP…).

Podsumowanie

Wybór odpowiedniego rozwiązania zapewniającego bezpieczną komunikację naszego urządzenia nie należy do prostych zadań, zwłaszcza że pula istniejących możliwości dla środowiska systemów wbudowanych jest mocno ograniczona.

Firma HCC Embedded przy współpracy z przedsiębiorstwem JPEmbedded zaimplementowała stos IP oraz uzupełniła go o rozwiązania SSL oraz IPSec. Aktualnie w ofercie HCC Embedded można znaleźć pełen wachlarz rozwiązań zabezpieczających komunikację urządzeń wbudowanych:

  • Dual IPStack iPv4/IPv6 (HTTPS, FTP, NTP, SNMP, MQTT, PPP)
  • SSL – w wersjach SSL3.0, TLS1.0, TLS1.1, TLS1.2, DTLS1.0, DTLS1.2, TLS1.3*
  • IPSec
  • IKEv2
  • EAPOL – EAP-TLS do autoryzacji sieci IEEE 802.1x
  • Encryption Manager – pozwala na zarządzanie sterownikami odpowiedzialnymi za mechanizmy szyfrowania, autoryzacji oraz podpisu.

 

Stos TCP/IP od HCC Embedded umożliwia zastosowanie każdego z zaprezentowanych rozwiązań. Jest on również wysoko konfigurowalny (redukcja zużycia zasobów ROM i RAM) oraz zgodny ze standardem MISRA. Encryption Manager pozwala na bezpośrednie użycie mechanizmu szyfrowania i łatwą podmianę sterowników na sprzętowe bez konieczności wprowadzania zmian w protokołach wysokopoziomowych. Dostępna jest również możliwość dodania własnego mechanizmu szyfrowania, który dzięki narzędziu Encryption Manager może zostać podłączony do protokołu SSL. Opracowanie unikalnego zestawu szyfrów sprawi, że nasze bezpieczne połączenie będzie trudne do złamania.

Zestawienie cech omówionych rozwiązań

Czy w swojej działalności zajmujesz się projektami z obszaru systemów wbudowanych związanymi z bezpieczeństwem? Może chcesz wiedzieć więcej lub masz do nas jakieś pytania? Chciałbyś skorzystać z któregokolwiek z wyżej wymienionych rozwiązań? Prosimy o kontakt pod adresem: sales@jpembedded.eu

read more