Bezpieczny sterownik PLC wykorzystujący certyfikaty X.509

Wiktor Susfał Bedrock Tagi: , , ,
Sterownik PLC BEDROCK i certyfikaty X.509 - zdjęcie główne

Dowiedz się, w jaki sposób sterownik PLC od BEDROCK realizuje bezpieczną komunikację w oparciu o certyfikaty X.509.

Czym są certyfikaty X.509?

Certyfikaty to bloki danych pozwalające aplikacjom działającym na komputerach użytkowników określać tożsamość użytkowników/usług, z którymi się łączą. Certyfikaty stosuje się powszechnie – zarówno w systemach operacyjnych rodziny Windows, jak np. Linux.

Zadaniem certyfikatu jest zapewnienie, że serwer lub użytkownik łączący się za pośrednictwem sieci z wybraną aplikacją jest tym serwerem/użytkownikiem, za jaki się podaje. Wykorzystanie standardu (w tym przypadku – „X.509”) pozwala na ujednolicenie budowy certyfikatów oraz stosowanie ich podczas współpracy różnych aplikacji i urządzeń..

Certyfikaty X.509 są elementem Infrastruktury Klucza Publicznego (PKI), czyli zbioru procedur i polityk służących uwierzytelnianiu użytkowników oraz usług. Sterownik PLC od BEDROCK posiada możliwość obsługi rozwiązań z zakresu PKI.

Niniejszy artykuł ma na celu nieco przybliżyć tematykę certyfikatów oraz zaprezentować, w jaki sposób użytkownik może wdrażać je w systemie BEDROCK.

Proces uwierzytelniania z wykorzystaniem certyfikatów X.509

Szyfrowany przekaz

U podstaw wykorzystania certyfikatów X.509 leży idea szyfrowania wiadomości. Na przestrzeni czasu powstawały różne pomysły odnośnie tego, jak taki szyfrowany przekaz mógłby przebiegać.

Obecnie najpopularniejszym rozwiązaniem jest wykorzystanie szyfrów asymetrycznych. Opierają się one o wykorzystanie dwóch kluczy – prywatnego oraz publicznego. Za pomocą danego algorytmu szyfrowania (np. RSA), daną wiadomość można zaszyfrować za pomocą jednego z nich, natomiast jest odczyt jest możliwy jedynie za pomocą drugiego. Można więc sobie wyobrazić, że udostępniając swoim rozmówcom klucz publiczny oraz pozostawiając klucz prywatny jako tajny, można zapewnić, że wiadomość nadesłana przez rozmówcę nie zostanie przez nikogo odszyfrowana po drodze.

Przekazywanie klucza publicznego i szyfrowana komunikacja
Przekazywanie klucza publicznego do odbiorcy i szyfrowana komunikacja

Niestety, takie rozwiązanie nie gwarantuje uwierzytelnienia tożsamości rozmówcy.

W przypadku, gdy chcemy nawiązać szyfrowaną komunikację z danym rozmówcą, wysyłamy od niego zapytanie o jego klucz publiczny. Rozmówca odsyła wiadomość zaszyfrowaną kluczem prywatnym (zawierającą jego klucz publiczny). Niepowołana osoba, w której ręce dostał się wcześniej jego klucz publiczny (jest on przecież powszechnie znany) może ją przechwycić i odszyfrować. Następnie może ona wygenerować własny zestaw kluczy, zaszyfrować własną wiadomość (z jej kluczem publicznym) swoim kluczem prywatnym i przekazać ją do prawidłowego odbiorcy. Od teraz taka osoba może kontrolować wymianę korespondencji w obydwie strony. Widać więc, że sam mechanizm szyfrów asymetrycznych nie gwarantuje bezpieczeństwa.

Wady szyfrowania komunikacji kluczem asymetrycznym
Wady szyfrowania komunikacji kluczem asymetrycznym

Uwierzytelnianie użytkowników

Z powodów opisanych w powyższej sekcji opracowano procedurę rozwiązująca istniejące problemy. W celu poprawy bezpieczeństwa do całego procesu angażuje się stronę trzecią, nazywaną Urzędem Certyfikacji (ang. Certificate Authority CA).

Urząd certyfikacji to oprogramowanie obsługiwane przez zaufaną instytucję, poświadczającą tożsamość danych użytkowników. Odpowiada on za wystawienie certyfikatu poświadczającego dane osoby nawiązującej połączenie z innymi użytkownikami sieci.

W celu otrzymania certyfikatu, dany użytkownik wysyła do CA prośbę, zawierającą szereg informacji – m.in. jego klucz publiczny. Jeśli weryfikacja tego użytkownika zakończy się sukcesem, CA opatruje to zapytanie własnymi informacjami oraz swoim podpisem cyfrowym. W ten sposób powstaje certyfikat.

Aby wykonać podpis cyfrowy, CA wylicza z zestawu danych wspomnianego wyżej ich skrót (ang. hash). Używa do tego jednej z dostępnych funkcji, o której informacja jest również częścią certyfikatu. Następnie CA szyfruje ten skrót za pomocą własnego klucza prywatnego.

Od teraz, chcąc zbadać tożsamość użytkownika, z którym nawiązujemy połączenie, prosimy go o nadesłanie certyfikatu. Gdy otrzymujemy certyfikat wraz z podpisem cyfrowym urzędu certyfikującego, weryfikacja tożsamości rozmówcy jest łatwa. Wystarczy odszyfrować podpis cyfrowy kluczem publicznym CA (klucze publiczne są jawne). Następnie należy samodzielnie obliczyć skrót (hash) treści zawartych w certyfikacie i porównać go z tym odszyfrowanym. Jeśli skróty się zgadzają oraz certyfikat został podpisany przez CA, któremu ufamy, rozmówcy również można zaufać.

Oczywiście powyższe informacje to tylko maksymalne streszczenie najważniejszych kwestii związanych z certyfikatami X.509. Mają one na celu przybliżenie czytelnikowi całej procedury, jednak pomijają wiele zagadnień pobocznych. W celu pełniejszego zrozumienia problemu należy odwołać się do zewnętrznych źródeł.

Sterownik PLC BEDROCK obsługuje certyfikaty X.509

Wymagane zasoby

W celu złożenia zamówienia na kontroler BEDROCK obsługujący wyżej wymienione certyfikaty, należy skontaktować się wcześniej z dystrybutorem – ELMARK Automatyka. Funkcja obsługi certyfikatów może być dodana również do już pracujących sterowników, za pomocą narzędzia Bedrock Upgrade Utility.

Należy pamiętać, że kontrolery od BEDROCK będą współpracować jedynie z certyfikatami podpisanymi przez Bedrock Certificate Authority. W związku z tym, użytkownik, który chce zaimplementować swój własny certyfikat w sterowniku musi posiadać konto na platformie BEDROCK DLM Cloud.

Jak działa zabezpieczona komunikacja na linii kontroler-BEDROCK IDE?

W momencie produkcji danego kontrolera na zamówienie użytkownika, jest on wyposażany w odpowiedni certyfikat podany przy zamówieniu. Od teraz, tylko te stacje robocze z BEDROCK IDE, które posiadają zaimplementowany ten certyfikat podpisany przez BEDROCK CA będą mogły komunikować się z kontrolerem.

Cały proces komunikacji pomiędzy kontrolerem a stacją roboczą przebiega w kilku krokach. Najpierw, kontroler szyfruje wiadomość, którą chce przekazać do stacji roboczej za pomocą swojego, indywidualnego certyfikatu. Co więcej, szyfruje ją w taki sposób, że tylko on sam jest w stanie tę wiadomość odkodować. Następnie wysyła ją do stacji roboczej.

Stacja robocza nie jest w stanie odkodować wiadomości, lecz posiadając własny certyfikat, pasujący do tego z kontrolera, może zweryfikować jej prawdziwość oraz zakodować jeszcze raz tę wiadomość. Znów kodowanie następuje w taki sposób, że jedynie stacja robocza jest w stanie odwrócić ten proces.

Wiadomość odsyłana jest następnie do kontrolera. Jeśli ten pozytywnie zweryfikuje certyfikat maszyny roboczej, odszyfruje wiadomość za pomocą swoich kluczy, pozostawiając ją zakodowaną jedynie za pomocą certyfikatu maszyny roboczej – PC. Odsyłając ją z powrotem do PC, maszyna robocza będzie już w stanie odczytać treść wiadomości, zdejmując z niej swój szyfr.

Jeśli na jakimś etapie nastąpi niezgodność certyfikatów PC i kontrolera, komunikacja jest przerywana. Powyższe działania przedstawiono na filmie od producenta, począwszy od minuty 10:16. Cały materiał traktuje o mechanizmach bezpieczeństwa w systemach BEDROCK, więc dla lepszego ich zrozumienia warto prześledzić go całego.

Mechanizmy bezpieczeństwa w systemie BEDROCK – film producenta

Niżej opisano procedurę generowania prośby o podpisanie certyfikatu dla danej stacji roboczej do komunikacji z wybranym kontrolerem BEDROCK.

Korzyści dla bezpieczeństwa PLC

Wykorzystując certyfikaty X.509 użytkownik może zyskać dowolną z poniższych możliwości:

  • łączenie się z kontrolerem oraz jego obsługa tylko przez autoryzowanych operatorów, posiadających własne certyfikaty;
  • łączność z zewnętrznym oprogramowaniem np. SCADA, przy wykorzystaniu serwerów OPC UA komunikujących się bezpiecznie przy użyciu certyfikatów X.509.

Konfiguracja własnych certyfikatów użytkownika na stacji roboczej

Większość działań wykonuje się w darmowym środowisku konfiguracyjnym – BEDROCK IDE. Bazuje ono na CODESYS oraz przeznaczone jest do obsługi skalowalnych projektów wykorzystujących kontrolery BEDROCK. Jeśli nie znasz tego środowiska, możesz dowiedzieć się o nim więcej, czytając inne nasze artykuły.

Aby przejść do lokalizacji, gdzie następuje zarządzanie certyfikatami, należy z górnego paska BEDROCK IDE wybrać opcję „Tools”, a następnie „Options”.

Lokacja opcji zarządzania certyfikatami X.509 dla sterownika PLC
Lokalizacja opcji zarządzania certyfikatami

Następnie otworzy się okno, dzięki któremu możliwe jest zarządzanie certyfikatami. Po lewej stronie widoczne są dwie zakładki: „Certificates” oraz „Certificate Profiles”. Pierwsza z wymienionych służy do generowania zapytań o podpisanie certyfikatu oraz wgrywania gotowych, druga natomiast do przypisywania certyfikatów określonym użytkownikom.

Okno zarządzania certyfikatami
Okno zarządzania certyfikatami

Po utworzeniu nowej prośby o podpisanie certyfikatu, użytkownik będzie musiał wgrać go do serwisu DLM Cloud. Platforma ta wykorzystuje dwupoziomowe uwierzytelnianie które oprócz zwykłego logowania do serwisu wymaga również przepisania kodu, który użytkownik otrzymuje za pośrednictwem SMS.

Jeśli uwierzytelnianie certyfikatu przebiegnie pomyślnie, użytkownik otrzyma możliwość pobrania go z serwisu i zaimplementowania w BEDROCK IDE. BEDROCK Key Management System (KMS) instaluje ponadto prywatny klucz tego certyfikatu na kontrolerze BEDROCK, w momencie jego produkcji (na zamówienie) lub podczas przeprowadzania upgrade. Wszystko to gwarantuje, że tylko uprawnione konta użytkowników będą używać certyfikatów przyporządkowanych do danego kontrolera.

W przypadku, gdy użytkownik wywołujący sterownik PLC do połączenia w sieci posiada inne lub niepoprawne certyfikaty X.509, kontroler odrzuci taką próbę połączenia.

Poniższe wideo producenta przedstawia, w jaki sposób uzyskać certyfikat X.509 oraz zaimplementować go na sterowniku w celu bezpiecznego zarządzania nim z poziomu BEDROCK IDE. Podobna procedura może być wdrożona w celu uzyskania certyfikatu do komunikacji po OPC UA.

Weryfikacja certyfikatów

Weryfikacja certyfikatów, a właściwie próśb o podpisanie cartyfikatów leży w zakresie obowiązków administratorów platformy DLM Cloud.

Producent udostępnia na swoim kanale YouTube wideo, które wyjaśnia i ten proces.

Rozpatrywanie certyfikatów – BEDROCK DLM Cloud

Podsumowanie

W dzisiejszym świecie, gdzie procesy przemysłowe kontrolowane przez systemy działające w zamkniętych sieciach coraz częściej przenosi się do chmury (np. w myśl idei Internet of Thing) wzrastają zagrożenia cybernetyczne z tym związane. Sterownik PLC od BEDROCK obsługujący wiele mechanizmów bezpieczeństwa, jak np. certyfikaty X.509 zapewnia wielopoziomową ochronę ważnych danych. Firma BEDROCK Automation rozumie zagrożenia wynikające z możliwości wystąpienia ataków cybernetycznych i skutecznie im przeciwdziała.

Dowiedz się więcej o cyber-bezpieczeństwie w systemach PLC i SCADA.

Producent posiada wiele filmów instruktażowych na swoim kanale YouTube, które mogą pomóc w szybkim przyswojeniu wiedzy z zakresu obsługi sterowników BEDROCK.

Środowisko BEDROCK IDE to darmowe oprogramowanie pozwalające na symulację budowanych programów, również jeśli chodzi o cyfrowe I/O będące częścią PLC BEDROCK. Pobierz je ze strony producenta lub wyślij zapytanie na sterowniki@elmark.com.pl .

Zachęcamy do kontaktu również w przypadku, jeśli zainteresowały cię materiały zamieszczone w tym artykule.