Bezpieczne połączenie z OPC UA

Wiktor Susfał Łączność i Zarządzanie Tagi: , , , , , , ,
Bezpieczne połączenie ICONICS - OPC UA - główne

Co należy zrobić, aby nawiązać bezpieczne połączenie pomiędzy oprogramowaniem od ICONICS a serwerem OPC UA? Wykorzystanie certyfikatów X.509

Jeśli nie otwierają Ci się pełne rozmiary obrazków, klikaj w nie PPM i wybieraj „Otwórz w nowej karcie”.

Wstęp

W obecnym czasie liczba urządzeń podłączonych do sieci rośnie gwałtownie z roku na rok. Coraz więcej różnych odbiorników (punktów końcowych) wymienia ze sobą informacje w tym samym czasie. Mając na uwadze coraz większy, a tym samym trudniejszy do kontroli przepływ danych, należy zadbać o odpowiednie zabezpieczanie transmisji.

Już nawet w obrębie jednego przedsiębiorstwa liczba wszystkich czujników, sterowników i innych tego typu urządzeń może być zbyt duża, aby kontrolować bezpieczeństwo przesyłu informacji z jednego miejsca. Dlatego też w obecnych czasach coraz większą wagę przywiązuje się do tego, aby same urządzenia w sieci mogły zabezpieczać komunikację. Wszystko bez używania nadrzędnego oprogramowania zarządzającego siecią.

Jednym z najbardziej skutecznych rozwiązań tego typu jest wdrażanie certyfikatów „X.509”. Służą one m.in. jako narzędzia do potwierdzania tożsamości urządzenia, z którym zachodzi komunikacja. Można sobie wyobrazić, że cenne dane procesowe mogłyby paść ofiarą specjalnej podmiany podczas transportu przez sieć. Wspomniane wyżej certyfikaty pozwalają jednak dokładnie rozpoznać pochodzenie klienta/serwera chcącego wysłać/odebrać od nas dane.

W dalszej części wpisu przedstawiono kompletne działania umożliwiające bezpieczne połączenie oprogramowania SCADA od ICONICS z serwerem OPC UA.

Używane zasoby

W tym przypadku zaprezentowano konfigurację bezpiecznego połączenia oprogramowania SCADA od ICONICS – GENESIS64 z serwerem OPC UA działającym na sterowniku PLC od Unitronics.

Od strony oprogramowania SCADA – jego wersja to 10.95. Jest to standardowa instalacja pakietu GENESIS64 od ICONICS.

Jeśli chodzi o sterownik PLC – wykorzystywana jest tu seria UniStream od Unitronics. Na sterowniku PLC działa standardowy serwer OPC UA. Przy nawiązywaniu połączenia z klientami „legitymuje” się on własnym certyfikatem „X.509” w formacie DER. Co więcej, jest to certyfikat stworzony poza sterownikiem, który następie zaimportowano do PLC, podczas jego konfiguracji.

Tego, jak skonfigurować serwer OPC UA na sterowniku PLC od Unitronics wykorzystując własny certyfikat, dotyczy osobny wpis na innym blogu od Elmark Automatyka. Prowadzi do niego poniższy link.

Obydwa komponenty – PC z zainstalowanym oprogramowaniem SCADA oraz sterownik PLC – połączono lokalnie przewodem Ethernet.

Bezpieczne połączenie z OPC UA – konfiguracja

Zakładając, że serwer OPC UA działa już na sterowniku PLC oraz, że posiadamy certyfikat tego serwera (bez klucza prywatnego) na dysku komputera, przystępujemy do konfiguracji oprogramowania SCADA.

Definicja połączenia z OPC UA

Aby wykonać to zadanie, należy otworzyć program do konfiguracji GENESIS64 – Workbench. Tam, w drzewku „Project Explorer”, należy odszukać element „OPC UA Network”. Znajduje się on w lokalizacji pokazanej na zdjęciu niżej.

Po wybraniu wspomnianego elementu, należy dodać koleją pozycję na liście połączeń z serwerami OPC UA, jak niżej.

Nowe połączenie z OPC UA w ustawieniach FrameWorX w Workbench
Nowe połączenie z OPC UA w ustawieniach FrameWorX w Workbench

Użytkownik musi wprowadzić co najmniej:

  • dowolną, aczkolwiek unikalną nazwę dla połączenia – tu: „OPCUA_Server_PLC”;
  • adres URI tego serwera w sieci – tu: opc.tcp//192.168.100.100:48020; (adres karty Ethernet sterownika + przedrostek definiujący protokół + nr portu).

Kolejne pola służą między innymi do:

  • podania zapasowego adresu serwera – „Secondary Endpoint URI” (SCADA połączy się z nim, jeśli pierwsza lokalizacja będzie nieosiągalna);
  • wprowadzenie nazwy użytkownika i hasła („Username”, „Password”) w przypadku, gdy istnieje potrzeba dodatkowego logowania na serwer OPC UA.

W tym przypadku serwer OPC UA nie wymaga dodatkowego uwierzytelniania za pomocą loginu i hasła, więc pola te pozostawiono puste.

Dodanie certyfikatu do listy zaufanych

Serwer danych działający na sterowniku PLC skonfigurowano tak, by udowadniał swoją tożsamość za pomocą samo-podpisanego certyfikatu w formacie DER.Aby oprogramowanie SCADA „rozróżniało” ten serwer jako taki, któremu należy ufać, należy dodać jego certyfikat do odpowiedniego katalogu zaufanych systemu Windows.

Można to zrobić klikając dwukrotnie LPM na certyfikat i wybierając opcję „Zainstaluj Certyfikat”. Odpowiedni katalog nosi nazwę „UA Applications”, sama instalacja przebiega natomiast dla komputera lokalnego. Prawidłowość importu certyfikatu można następnie sprawdzić, otwierając konsolę MMC Windows.

Instalacja certyfikatu serwera OPC

Wyłączenie akceptowania dowolnego certyfikatu przez FrameWorX

FrameWorX jest komponentem odpowiadającym za komunikację w obrębie systemu SCADA ICONICS oraz połączenia z zewnętrznymi aplikacjami. W tym przypadku FrameWorX pełni rolę klienta OPC UA, który łączy się z serwerem działającym na sterowniku PLC.

Domyślnie, FrameWorX zaakceptuje każdy certyfikat takiego serwera. Aby wdrożyć bezpieczną komunikację, należy oczywiście zmienić to ustawienie. Dokonuje się tego w oknie „Platform Services Configuration”, które jest dostępne z poziomu Workbench, lub po wyszukaniu w menu Start.

Ustawienia akceptacji certyfikatów serwerów OPC UA dla FrameWorX v2
Ustawienia akceptacji certyfikatów serwerów OPC UA dla FrameWorX v2

Całość polega na wpisaniu „False” w pole opcji „AcceptAnyServerCertificate”.

Konfiguracja polityki bezpieczeństwa FrameWorX

Niestety, dostęp do kolejnych opcji nie jest możliwy z poziomu graficznego interfejsu użytkownika. Oznacza to, że aby wprowadzić pożądane zmiany, należy odpowiednio edytować jeden z plików konfiguracyjnych FrameWorX w formacie XML.

W celu sprawnego przeprowadzenia tych działań można zaopatrzyć się w dowolny darmowy edytor XML, na przykład jak ten, z linku poniżej.

Kolejny krok to przejście do (w tym przypadku domyślnej) lokalizacji w folderze instalacyjnym ICONICS: „C:\Program Files\ICONICS\GENESIS64\Components\”. Znajduje się tam plik o nazwie „FWXServer.OpcUa.config”.

Należy go skopiować w dwie dowolne inne lokalizacje. Jedna kopia posłuży do edycji pliku, druga natomiast pełni rolę backup’u.

Modyfikacja polityki bezpieczeństwa

Otwierając jedną z kopii wyżej wspomnianego pliku, należy początkowo odszukać nagłówek „<SecurityPolicies>”. Następnie, należy wprowadzić zmiany pokazane na zdjęciach poniżej.

Zapewne, w swojej domyślnej konfiguracji, posiadasz już potrzebne zestawy linii, a jedynie musisz zmienić poziomy zabezpieczeń (SecurityLevel). Przy edycji plików, upewnij się, że zmieniasz zawartość właściwego akapitu – niektóre są do siebie bardzo podobne.

Dodanie zaufanych punktów końcowych

Nie zamykając jeszcze edytowanego pliku XML, należy przejść do sekcji „<TrustedPeerCertificates>”. W tym miejscu dodamy kilka linii na temat akceptowalnych przez FrameWorX certyfikatów.

Domyślnie, w wyżej wymienionej sekcji, znajdują się jedynie informacje dotyczące lokalizacji, w której FrameWorX poszukuje zaufanych certyfikatów do komunikacji OPC UA. Znajdują się wśród nich pola takie, jak: „StorePath”, „StoreName”, „StoreLocation”, zaznaczone niżej na zielono. Można w prosty sposób powiązać te dane z katalogiem „UA Applications” w konsoli MMC Windows, do którego zaimportowaliśmy wcześniej certyfikat serwera OPC.

W celu uwzględnienia tego certyfikatu w tym pliku konfiguracyjnym, należy dodać kolejne linie, jak niżej (zaznaczone na czerwono). Powinieneś/aś zmienić jedynie pole „SubjectName” na takie, które odpowiada Twojemu certyfikatowi. W przypadku certyfikatów samo-podpisanych, należy tu wprowadzić zawartość pola „Common Name” (CN) certyfikatu.

Konfiguracja listy zaufanych certyfikatów dla FrameWorX
Konfiguracja listy zaufanych certyfikatów dla FrameWorX

W przypadku, gdy trzeba dodać kolejne certyfikaty do listy zaufanych, należy wprowadzać kolejne analogiczne ciągi linijek po sobie.

Po ukończeniu tego etapu, można już podmienić edytowany plik w folderze instalacyjnym ICONICS. Konfigurację kończy restart usługi „ICONICS FrameWorX” lub ponowne uruchomienie komputera.

Wyświetlanie danych z serwera OPC UA

Wartości zmiennych udostępnianych przez serwer OPC UA (w tym przypadku działający na sterowniku PLC) są dostępne od tej pory dla wszystkich komponentów oprogramowania GENESIS64.

W najprostszy sposób można je wyświetlić za pomocą narzędzia Data Explorer.

Poniższy film pokazuje, w jaki sposób wyszukać dane w oknie Data Explorer oraz to, jak certyfikat FrameWorX’a jest akceptowany z poziomu panelu sterownika PLC.

Dla sterowników od Unitronics konieczne jest ręczne akceptowanie certyfikatów klientów. Aby prezentacja przebiegała wygodniej, posłużono się programem – klientem VNC, w celu pokazania ekranu HMI sterownika na monitorze komputera.

Prezentacja odczytu danych z serwera OPC UA w systemie SCADA

Informacje dodatkowe

W przypadku problemów z nawiązaniem połączenia należy upewnić się kilku rzeczy.

Pierwszą z nich jest działanie usługi OPC UA Local Discovery Server.

Usługa OPC UA Local Discovery Server
Usługa OPC UA Local Discovery Server

Druga, to natomiast odblokowanie odpowiednich portów dla zapory ogniowej. W tym przypadku konfigurację należy przeprowadzić jedynie dla firewall’a działającego na komputerze lokalnym.

Jeśli wyszukiwanie serwerów OPC następuje poprzez rozleglejszą sieć, której ruchem zarządzają osobne router’y, wtedy również i one podlegają konfiguracji.

Dla prostej aplikacji wykorzystywanej tutaj, należy upewnić się, że ruch nie jest blokowany na porcie 48020.

Podsumowanie

ICONICS cały czas rozwija swoje oprogramowanie w celu sprostania rosnącym wymogom bezpieczeństwa dla systemów przemysłowych. Czytaj więcej na temat bezpiecznej komunikacji w innych artykułach na naszym blogu.

Elmark Automatyka udostępnia wersję demo oprogramowania GENESIS64 (obsługującą rozproszoną archiwizację), w celu osobistego przetestowania funkcjonalności pakietu. Skontaktuj się z nami na ICONICS@elmark.com.pl w celu otrzymania wersji testowej lub oferty handlowej.