Bezpieczna komunikacja podczas archiwizacji – SCADA i HTTPS

92

Krótko o HTTPS

HTTPS to nieco zmieniona wersja popularnego w komunikacji klient-serwer protokołu HTTP. W przeciwieństwie do swojego standardowego odpowiednia, realizuje on szyfrowaną wymianę danych. Standardowo, w protokole sterowania transmisją TCP, działa on na porcie 443.

Do szyfrowania wykorzystuje on protokołu SSL lub TLS (będący rozwinięciem tego pierwszego). One wykorzystują natomiast takie techniki jak, szyfrowanie asymetryczne oraz certyfikaty X.509. Tak więc protokół HTTPS wykorzystuje się do ochrony przed przechwytywaniem oraz manipulacją nad przesyłanymi danymi.

Bezpieczna komunikacja w systemie SCADA

W jednym z poprzednich wpisów skonfigurowano Zdalny Kolektor, który łącząc się z głównym serwerem Hyper Historian, wysyła do niego dane pochodzące z odległego urządzenia. Lektura wspomnianego wpisu może pomóc w lepszym zrozumieniu zamieszczonych tu treści.

Podczas dokonywania ustawień Zdalnego Kolektora w środowisku konfiguracyjnym Workbench, użytkownik był w stanie wskazać wiele sposobów komunikacji z nim. Jednak nie wszystkie z nich są całkowicie bezpieczne.

Sposoby wymiany informacji ze Zdalnym Kolektorem

Przede wszystkim należy zaznaczyć, że system SCADA od ICONICS wspiera dwa rodzaje połączeń między swoimi komponentami:

  • bezpośrednie,
  • z wykorzystaniem natywnego narzędzia do komunikacji – FrameWorX, które integruje się ze standardowymi protokołami.

Jak zostało pokazane we wpisie, do którego link zamieszczono wyżej, przy ustawianiu komunikacji ze zdalnym kolektorem, możliwe do wyboru są następujące protokoły:

  • HTTP direct,
  • TCP direct,
  • HTTP over FrameWorX,
  • TCP over FrameWorX,
  • HTTPS over FrameWorX – bezpieczny,
  • WSHTTPS over FrameWorX – bezpieczny.

Dwa ostatnie z wyżej wymienionych można uznać za bezpieczne, gdyż stosują szyfrowaną wymianę informacji. HTTPS pozwala na wydajne zabezpieczenie komunikacji „klient-serwer”, podczas gdy WS-HTTPS stosuje się przy równorzędnej komunikacji dwóch komputerów.

Bezpieczna komunikacja podczas archiwizacji SCADA - protokoły w Hyper Historian
Protokoły wymiany informacji w module Hyper Historian

Implementacja komunikacji po HTTPS w systemie

Komunikacja po HTTPS wymaga użycia jednego certyfikatu powiązanego z serwerem. Klient próbujący połączyć się z tym serwerem ma możliwość zaakceptowania tego certyfikatu i zabezpieczenia połączenia, gdy uzna, że posiada ten certyfikat wśród zaufanych. Uwierzytelnianie działa tak, że klient sprawdza wiarygodność serwera, z którym się łączy. Dlatego też ta metoda komunikacji jest idealna w sytuacjach, gdzie następuje połączenie z serwerem z poziomu maszyny klienckiej.

W posiadanym przykładowym systemie, na dwóch osobnych maszynach działają:

  • pełny pakiet GENESIS64 z Hyper Historian,
  • Zdalny Kolektor.

W tym przypadku to maszyna ze Zdalnym Kolektorem będzie serwerem danych, do którego podłączać się będzie klient – Logger modułu Hyper Historian.

Pierwszym krokiem będzie więc utworzenie odpowiedniego certyfikatu na maszynie z Kolektorem. Będzie to samodzielnie podpisany (self-signed) certyfikat, nie poświadczony przez żaden Urząd Certyfikacji. Takie certyfikaty można z powodzeniem stosować w obrębie sieci lokalnych. Jako, że brak tu poświadczenia ze strony zewnętrznych Urzędów Certyfikacji użytkownik musi sam zdecydować, którym wydawcom można zaufać.

Certyfikat na maszynie ze Zdalnym Kolektorem

Jak opisano to w artykule podlinkowanym na początku tego wpisu, w posiadanym systemie działa samodzielny kolektor na oddzielnej maszynie. Dalsze kroki przedstawiają więc postępowanie w przypadku, gdy użytkownik posiada maszynę z samym kolektorem, bez innych komponentów od ICONICS.

Wraz z usługami ICONICS instaluje się program pozwalający na utworzenie certyfikatu X.509. Uruchamia się go z poziomu „Wiersza polecenia” (Menu Start->Wyszukaj->cmd). Wiersz polecenia należy otworzyć z uprawnieniami administratorskimi.

Następnie użytkownik powinien przejść za pomocą Wiersza Polecenia do katalogu:

C:\Program Files\ICONICS\GENESIS64\InstCert

(chyba że domyślna lokalizacja instalacji pakietu ICONICS jest inna).

Kolejnym krokiem jest wywołanie następującej komendy.

makecert -a sha1 -n „CN=CollectorComputerName” -sr LocalMachine -ss My -r -sky exchange -pe -sk MarkContainerName

Spowoduje ona wywołanie działania programu „makecert”, natomiast dodatkowe parametry zapewnią utworzenie certyfikatu w odpowiedniej lokalizacji oraz o odpowiednich właściwościach.

W tym przypadku będzie to certyfikat ważny w obrębie całej maszyny lokalnej (bez znaczenia jaki użytkownik jest obecnie zalogowany). Zamiast frazy „CollectorComputerName” użytkownik powinien podstawić nazwę maszyny, na której działa Zdalny Kolektor.

Nowy certyfikat pojawi się w folderze z Osobistymi Certyfikatami dla komputera lokalnego w konsoli MMC (jest to narzędzie systemu Windows).

Bezpieczna komunikacja SCADA po HTTPS – utworzenie samodzielnie podpisanego certyfikatu

Instalacja certyfikatu X.509 w wymaganych lokalizacjach

Powyższe czynności nie kończą pracy nad nowo utworzonym certyfikatem. Kolejny etap do edycja użytkowników do niego przyporządkowanych oraz określenie ich praw.

W tym celu należy wybrać PPM omawiany certyfikat, znajdujący się w katalogu „Osobisty” dla lokalnego komputera w konsoli MMC. Przechodząc następnie do opcji: Wszystkie Zadania->Zarządzaj Kluczami Prywatnymi otwiera się okno konfiguracyjne. Za jego pomocą można dokonać odpowiednich ustawień – dodać użytkownika, „pod którym” działa usługa Zdalnego Kolektora (np. ICONICS_USER) oraz nadać mu co najmniej uprawnienia odczytu.

Następnie należy wyeksportować ten certyfikat (PPM->Wszystkie Zadania ->Exportuj) bez klucza prywatnego. Teraz musi nastąpić jego ponowny import do katalogu „Zaufane główne urzędy certyfikacji” w konsoli MMC, aby ten certyfikat stał się zaufanym w obrębie tej maszyny.

Instalacja certyfikatu X.509 w wymaganych lokalizacjach

Przypisanie certyfikatu do portu komunikacyjnego i konfiguracja FrameWorX

Jak powiedziano na początku, protokół HTTPS działa domyślnie na porcie 443. Dlatego, że dysponuje się tutaj instalacją jedynie samego kolektora, nie ma możliwości przeprowadzenia odpowiedniego przypisania za pomocą programu IIS. Trzeba to więc wykonać z poziomu Wiersza Polecenia.

W tym celu należy wpisać następującą komendę.

netsh http add sslcert ipport=0.0.0.0:443 appid={4dc3e181-e14b-4a21-b02259fc669b0914} certhash=…

Przy czym w miejsce „…” należy wstawić ciąg znaków będący „odciskiem palca” (ang. Thumbprint) nowo utworzonego certyfikatu. Parametr ten można uzyskać poprzez wybór (2 x LMP) ikonki wyeksportowanego certyfikatu na pulpicie i przejście do zakładki „Szczegóły”.

Najlepszą praktyką jest ręczne przepisanie tego kodu, w celu uniknięcia kopiowania ukrytych znaków.

W celu sprawdzenia poprawności przypisania, można użyć poniższej komendy.

netsh http show sslcert

Ostatnim już krokiem na maszynie z Kolektorem jest przejście do lokalizacji: C:\ProgramData\ICONICS (za pomocą eksploratora plików) i edycja pliku Client.local.xml. Zmiany należy wprowadzić w dwóch miejscach, według poniższego przykładu.

  • <FwxServerNucAddressFormat>net.tcp://{0}:8778 -><FwxServerNucAddressFormat>https://{0}:443/BasicHttps ;
  • <FwxServerNucAddressNode>localhost ->
    <FwxServerNucAddressNode>NazwaKomputera_Z_Loggerem
Przypisanie certyfikatu do portu oraz konfiguracja FrameWorX

Konfigurację maszyny kończy restart usług: ICONICS FrameWorX oraz ICONICS Hyper Historian Collector lub ponowne uruchomienie komputera.

Aby umożliwić komunikację po HTTPS należy upewnić się, że Firewall nie blokuje połączeń wejściowych na porcie 443.

Konfiguracja Loggera do bezpiecznej komunikacji po HTTPS

Działania podejmowane na maszynie z Logger’em będą krótsze niż w przypadku tej z kolektorem.

Pierwszym z nich jest skopiowanie utworzonego wcześniej certyfikatu (bez klucza publicznego) na komputer z Logger’em. Następnie należy go zaimportować w konsoli MMC do katalogu „Zaufane Osoby” dla komputera lokalnego. Od tego momentu maszyna z Logger’em będzie „ufać” komputerowi z działającym Zdalnym Kolektorem.

Konfigurację kończy odpowiednia modyfikacja ustawień Zdalnego Kolektora w środowisku Workbench. Względem ustawień poczynionych w artykule (do którego link dołączono na początku tego wpisu) trzeba zmienić jedynie protokół komunikacyjny (na Https Over FrameWorX) oraz upewnić się, że wygenerowany adres URL kolektora jest poniższej postaci.

https://<nazwa_maszyny_z_kolektorem>:443/BasicHttps

Teraz musi nastąpić ponowne uruchomienie usług: ICONICS FrameWorX oraz ICONICS Hyper Historian Logger (np. z poziomu okna „Usługi” w Windows).

Konfiguracja maszyny z Loggerem

Prezentacja rezultatów

Na koniec wpisu, którego przedmiotem była konfiguracja Zdalnego Kolektora, dodano dwie zmienne pochodzące z serwera OPC działającego na maszynie z kolektorem. Są one archiwizowane przez Logger na maszynie z całym pakietem GENESIS64. Poniższy krótki film przedstawi działanie komunikacji z wykorzystaniem certyfikatów.

Prezentacja bezpiecznej archiwizacji w systemie SCADA

Do pobrania

Powyższy opis zaprezentował tylko przykład wdrożenia komunikacji po HTTPS z wykorzystaniem certyfikatów. Bezpieczna komunikacja w systemie SCADA z użyciem HTTPS może zostać skonfigurowana również przy użyciu certyfikatów poświadczonych przez zewnętrzne Urzędy Certyfikacji. W tym przypadku procedura nieznacznie różni się, podobnie jak wtedy, gdy Zdalny Kolektor jest również częścią całościowej instalacji pakietu GENESIS64. Aby uzyskać dostęp do dalszych szczegółowych informacji, zamieszczono poniżej krótki formularz pozwalający na pobranie instrukcji od producenta.

Podsumowanie

W związku z wprowadzaniem rozwiązań z zakresu Przemysłu 4.0 lub Internet of Things, bezpieczna komunikacja w systemach SCADA (np. z wykorzystaniem HTTPS) jest narzędziem niezbędnym do niezakłóconego działania przedsiębiorstwa. W momencie, gdy archiwizowane dane procesowe muszą zostać przetransportowane przez sieć, lub wyprowadzone do chmury, trzeba wziąć pod uwagę ryzyko ich przechwycenia przez osoby trzecie.

ICONICS wyposażył swoje produkty w możliwość integracji z uniwersalnymi formami zabezpieczeń (jak np. certyfikaty X.509), co powoduje, że wymiana danych spełnia wszystkie wymogi bezpieczeństwa.

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.

Źródło: Elmark

ZOSTAW ODPOWIEDŹ

Wprowadź swój komentarz!
Wprowadź swoje imię