Bezpieczeństwo transmisji danych w przemysłowym systemie sterowania

Podobne dokumenty
CONCEPT OF THE DATA TRANSMISSION SECURITY IN THE MOBILE DIAGNOSTIC SYSTEM

WSIZ Copernicus we Wrocławiu

2.1. System kryptograficzny symetryczny (z kluczem tajnym) 2.2. System kryptograficzny asymetryczny (z kluczem publicznym)

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi.

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

Diagnozowanie zagrożeń komunikacji w przemysłowym systemie sterowania

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA

n = p q, (2.2) przy czym p i q losowe duże liczby pierwsze.

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Sterowniki Programowalne (SP)

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Authenticated Encryption

Podstawy Secure Sockets Layer

Szczegółowy opis przedmiotu zamówienia:

Opracował: Jan Front

2 Kryptografia: algorytmy symetryczne

Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji

Zarys algorytmów kryptograficznych

Przewodnik użytkownika

Protokoły zdalnego logowania Telnet i SSH

Konfiguracja WDS na module SCALANCE W Wstęp

VPN Virtual Private Network. Użycie certyfikatów niekwalifikowanych w sieciach VPN. wersja 1.1 UNIZETO TECHNOLOGIES SA

Wykład 4 Bezpieczeństwo przesyłu informacji; Szyfrowanie

Praktyczne aspekty wykorzystania nowoczesnej kryptografii. Wojciech A. Koszek

Wykład 3 Bezpieczeństwo przesyłu informacji; Szyfrowanie

SSL (Secure Socket Layer)

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

INFORMATYKA Pytania ogólne na egzamin dyplomowy

ZiMSK. Konsola, TELNET, SSH 1

Wymagania bezpieczeństwa wobec statycznych bezpośrednich 1-fazowych i 3-fazowych liczników energii elektrycznej. Wymaganie techniczne

Systemy Mobilne i Bezprzewodowe laboratorium 12. Bezpieczeństwo i prywatność

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 11

Bezpieczeństwo danych i elementy kryptografii - opis przedmiotu

Czym jest kryptografia?

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Wykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

SCHEMAT ZABEZPIECZENIA WYMIANY INFORMACJI POMIĘDZY TRZEMA UŻYTKOWNIKAMI KRYPTOGRAFICZNYM SYSTEMEM RSA

Opis efektów kształcenia dla modułu zajęć

Kryptografia szyfrowanie i zabezpieczanie danych

Bezpieczeństwo aplikacji typu software token. Mariusz Burdach, Prevenity. Agenda

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Wprowadzenie do technologii VPN

JĘZYKI PROGRAMOWANIA STEROWNIKÓW

Bezpieczeństwo bezprzewodowych sieci WiMAX

Szyfrowanie RSA (Podróż do krainy kryptografii)

Laboratorium nr 1 Szyfrowanie i kontrola integralności

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Bezpieczeństwo kart elektronicznych

Zdalne logowanie do serwerów

Bezpieczeństwo Systemów Komputerowych. Wirtualne Sieci Prywatne (VPN)

Konfiguracja aplikacji ZyXEL Remote Security Client:

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Sterowniki Programowalne (SP) Wykład 11

Projekt wymagań bezpieczeństwa wobec statycznych bezpośrednich 1-fazowych i 3- fazowych liczników energii elektrycznej:

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR

1. Cel ćwiczenia. Celem ćwiczenia jest zestawienie połączenia pomiędzy dwoma sterownikami PLC za pomocą protokołu Modbus RTU.

Opracowanie ćwiczenia laboratoryjnego dotyczącego wykorzystania sieci przemysłowej Profibus. DODATEK NR 4 Instrukcja laboratoryjna

Jak bezpieczne są Twoje dane w Internecie?

Sieci Komputerowe Mechanizmy kontroli błędów w sieciach

Kurs Podstawowy S7. Spis treści. Dzień 1

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie

Zarządzanie dokumentacją techniczną. Wykł. 11 Zarządzania przepływem informacji w przedsiębiorstwie. Zabezpieczenia dokumentacji technicznej.

Przegląd protokołów komunikacyjnych automatyki przemysłowej w aspekcie bezpieczeństwa sieci OT. Suchy Las, maj 2017

Laboratorium nr 5 Podpis elektroniczny i certyfikaty

PROJECT OF FM TUNER WITH GESTURE CONTROL PROJEKT TUNERA FM STEROWANEGO GESTAMI

ZAŁĄCZNIK Nr 3 do CZĘŚCI II SIWZ

Uniwersalny Konwerter Protokołów

Kryteria bezpiecznego dostępu do sieci WLAN

Implementacja algorytmu szyfrującego

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2013 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Zastosowania informatyki w gospodarce Wykład 5

Bezpieczeństwo systemów komputerowych.

wagi cyfry pozycje

Bezpieczeństwo w sieci I. a raczej: zabezpieczenia wiarygodnosć, uwierzytelnianie itp.

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 7

ŚRODOWISKO PC WORX JAKO WSPARCIE W NAUCE PROGRAMOWANIA STEROWNIKÓW PLC

Metodyki i techniki programowania

Wykład 4. komputerowych Protokoły SSL i TLS główne slajdy. 26 października Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński

Sterowniki Programowalne (SP) - Wykład #1 Wykład organizacyjny

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

EGZAMIN MATURALNY 2011 INFORMATYKA

DIAGNOZOWANIE BEZPIECZNOŚCIOWE SYSTEMU KIEROWCA - SAMOCHÓD

Zarządzanie systemami informatycznymi. Bezpieczeństwo przesyłu danych

Praktyczne aspekty stosowania kryptografii w systemach komputerowych

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

Szyfrowanie informacji

ZAŁĄCZNIK Nr 1 do CZĘŚCI II SIWZ

Sieci komputerowe Wykład 7. Bezpieczeństwo w sieci. Paweł Niewiadomski Katedra Informatyki Stosowanej Wydział Matematyki UŁ niewiap@math.uni.lodz.

Kryptografia na procesorach wielordzeniowych

Mikrokontroler ATmega32. Język symboliczny

Przemysłowe Sieci Informatyczne

Działanie i charakterystyka sterownika GE FANUC VersaMaxNano

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

PL B1. POLITECHNIKA LUBELSKA, Lublin, PL BUP 05/13. PIOTR WOLSZCZAK, Lublin, PL WUP 05/16. rzecz. pat.

Wykład VI. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

2.2 Opis części programowej

Laboratorium nr 3 Podpis elektroniczny i certyfikaty

Kodowanie liczb całkowitych w systemach komputerowych

MODUŁ: SIECI KOMPUTEROWE. Dariusz CHAŁADYNIAK Józef WACNIK

Transkrypt:

Bi u l e t y n WAT Vo l. LXIV, Nr 4, 2015 Bezpieczeństwo transmisji danych w przemysłowym systemie sterowania 1 Marcin Bednarek, Tadeusz Dąbrowski 1 Politechnika Rzeszowska, Wydział Elektrotechniki i Informatyki, 35-959 Rzeszów, ul. Powstańców 12, bednarek@prz.rzeszow.pl Wojskowa Akademia Techniczna, Wydział Elektroniki, 00-908 Warszawa, ul. gen. S. Kaliskiego 2, tadeusz.dabrowski@wat.edu.pl Streszczenie. Artykuł poświęcony jest propozycji systemu zabezpieczenia transmisji danych pomiędzy stacjami przemysłowego systemu sterowania. Opisano możliwe warianty zabezpieczenia komunikacji pomiędzy stacjami procesowymi oraz pomiędzy stacją procesową i operatorską. Mechanizm zabezpieczenia transmisji bazuje na algorytmach szyfrowania symetrycznego i asymetrycznego. Proces uwierzytelniania wykorzystuje token programowy i algorytm obliczania jednokierunkowej funkcji skrótu. Podano schemat nawiązania zabezpieczonego połączenia pomiędzy stacjami, w tym etapu uwierzytelniania stacji i szyfrowania przesyłu danych. Proces zabezpieczenia transmisji składa się z czterech podprocesów: (I) uwierzytelniania; (II) transmisji kluczy asymetrycznych publicznych; (III) transmisji klucza symetrycznego; (IV) transmisji danych. Przedstawiony proces zabezpieczania transmisji został zrealizowany w sterowniku przemysłowym oraz w jego emulatorze. Wykorzystano do tego celu języki programowania zgodne z normą PN-EN 61131. Funkcje zostały zaimplementowane w formie bloków funkcyjnych użytkownika umożliwiających zawarcie w strukturze bloku fragmentów mieszanego kodu (w języku ST i FBD) i podzielonych na sześć kategorii: obsługa szyfrowania asymetrycznego; pomocnicze funkcje szyfrowania asymetrycznego; obsługa szyfrowania symetrycznego; pomocnicze funkcje szyfrowania symetrycznego; obsługa obliczania wartości funkcji skrótu; pomocnicze funkcje konwersji. Słowa kluczowe: bezpieczeństwo transmisji, szyfrowanie, uwierzytelnianie, rozproszony system sterowania DOI: 10.5604/12345865.1186229 1. Wstęp Rozpatrywany w artykule przemysłowy system sterowania składa się przede wszystkim ze stacji procesowych (ang. Process Station PS1 i PS2) [1]. Zadaniem

84 M. Bednarek, T. Dąbrowski takich stacji jest sterowanie procesem. Stacje wymieniają pomiędzy sobą komunikaty zawierające wartości zmiennych procesowych i diagnostycznych (rys. 1). Dodatkowo w systemie może występować stacja operatorska (ang. Operator Station OS) prowadząca wizualizację i dozorowanie procesu. Ważnym aspektem komunikacji jest zabezpieczenie transmitowanych danych przed nieuprawnionym dostępem, modyfikacją lub podszyciem się intruza pod jedną ze stacji (ang. security) [2]. W systemie występuje kilka poziomów procesów komunikacyjnych: Pomiędzy modułami wejść/wyjść a wyjściami/wejściami obiektowymi. Wystąpienie niezdatności systemu spowodowane błędami transmisji wiąże się tu tylko z niezdatnością jednego z elementów toru transmisyjnego. Pomiędzy stacją procesową a modułami wejść/wyjść. Do komunikacji wykorzystywany jest protokół CAN. Bezpieczeństwo transmisji opartej na standardzie CAN rozpatrywane jest m.in. w [3, 4]. Jest ona jednak prowadzona na niewielką odległość oraz w miejscach o znikomej podatności na oddziaływanie czynników destrukcyjnych powodowanych przez intruza. Pomiędzy stacjami procesowymi oraz pomiędzy stacją procesową i operatorską. W tym miejscu występuje kilka możliwych wariantów zestawienia połączeń. Komunikacja realizowana jest przy użyciu specjalnie wydzielonej do tego celu lokalnej sieci komputerowej (LAN) [5] z zastosowaniem rodziny protokołów TCP/IP [6]. Podatność na destrukcyjne oddziaływanie intruza jest w tym miejscu znacznie większa, biorąc pod uwagę: a) wykorzystanie ustandaryzowanego protokołu komunikacyjnego [3, 4] oraz dostępność dla intruza okablowania sieci LAN; b) zastąpienie fragmentów sieci przewodowej przesyłem radiowym [7, 8]. Istnieje kilka rozwiązań realizacji komunikacji pomiędzy stacjami procesowymi prowadzonej wg protokołu TCP/IP z wykorzystaniem standardu Ethernet (wymieniony tu repertuar rozwiązań nie kończy listy dostępnych możliwości): umieszczenie zadań stacji procesowych we wspólnym drzewie projektu programu sterującego i przesył danych jako wewnętrznych zmiennych systemowych [1]; wykorzystanie protokołu jednego z dostępnych standardów protokołów przemysłowych, np. Modbus TCP [9]; zastosowanie serwera OPC i wykorzystanie przez stacje procesowe wartości zmiennych uzyskanych po podłączeniu do serwera przy pomocy wbudowanych mechanizmów klienta [10]; użycie gotowych bloków komunikacyjnych komunikacji na poziomie TCP/IP dostępnych z poziomu standardowych bibliotek bloków. Pozwala to na zaprojektowanie własnego rozwiązania zabezpieczenia przesyłanych wartości zmiennych, zanim trafią do wejścia bloku wysyłającego. Rozwiązanie to przyjęto jako bazowe do dalszych rozważań.

Bezpieczeństwo transmisji danych w przemysłowym systemie sterowania 85 Rys. 1. Komunikacja w rozpatrywanym systemie Standardowa komunikacja pomiędzy stacjami odbywa się niezabezpieczonym kanałem transmisyjnym. W artykule przedstawione są elementy zabezpieczenia transmisji pomiędzy stacjami procesowymi. Proponowane rozwiązanie, tj. opracowanie procedur zabezpieczających, bazujących na sprawdzonych i uznanych za obliczeniowo bezpieczne mechanizmach szyfrujących, pozwala uniezależnić się od zamkniętych rozwiązań firmowych. 2. Komunikacja zabezpieczona pomiędzy stacjami procesowymi Spośród dostępnych rozwiązań zabezpieczenia transmisji danych pomiędzy stacjami (zarówno procesowymi, jak i pomiędzy procesową i operatorską) można zastosować: elementy pośredniczące (bramy) tworzące pomiędzy urządzeniami wirtualny, szyfrowany kanał (wada: konieczność użycia dodatkowych urządzeń);

86 M. Bednarek, T. Dąbrowski połączenie z OPC z wymuszeniem szyfrowania (wada: nie wszystkie implementacje serwerów/klientów OPC na to pozwalają); standardowe bloki przesyłu i opracowane procedury zabezpieczające transmisję wykorzystujące mechanizmy uwierzytelniania, szyfrowania, zapewnienia integralności przesyłanych danych. Standardową procedurą konfiguracji komunikacji jest zestawienie dla każdej przesyłanej wartości zmiennej pary bloków: nadawczego i odbiorczego [11]. Oprócz występujących w systemie standardowych wymian komunikatów zmodyfikowany proces transmisji danych zorganizowany jest w taki sposób, aby wykorzystując wspomniane pary bloków nadawczo-odbiorczych, uzupełnić go procedurami bezpiecznościowymi. Należy odpowiednio sterować transmisją oraz dokonać szyfrowania danych przed wysłaniem (przed podaniem wartości przesyłanej zmiennej na wejście bloku wysyłającego). Tym samym, obok przesyłu informacji standardowymi kanałami jawnymi, funkcjonuje kilka kanałów transmisyjnych służących do wysyłania zabezpieczonych danych (rys. 2). Rys. 2. Transmisja danych pomiędzy stacjami procesowymi Opracowane procedury zabezpieczające komunikację pomiędzy stacjami procesowymi obejmują kolejno procesy: uwierzytelniania stacji procesowej; szyfrowania asymetrycznego; szyfrowania symetrycznego; zapewnienia integralności przesyłanych danych [12, 13].

Bezpieczeństwo transmisji danych w przemysłowym systemie sterowania 87 3. Proces zabezpieczania transmisji Do poprawnego działania systemu zabezpieczenia transmisji wykorzystuje się cztery kanały komunikacyjne. Są to dwukierunkowe kanały transmisyjne: sterujący; uwierzytelniania; transmisji kluczy; danych. Na rysunku 3 jedna ze strzałek kanału uwierzytelniania jest zaznaczona linią przerywaną, w celu podkreślenia, że w rozpatrywanym przypadku tylko stacja PS1 uwierzytelnia się wobec stacji PS2 (w razie konieczności możliwe jest także uruchomienie dwustronnego uwierzytelniania). Rys. 3. Kanały transmisyjne Kanałem sterującym przesyłane są komunikaty sterujące procesem zabezpieczania transmisji. Wykorzystywane wartości zmiennej sterującej oraz oznaczenie trybów pracy systemu zabezpieczającego przedstawiono w tabeli 1. Więcej szczegółów dotyczących trybów pracy można znaleźć w [12]. Proces zabezpieczenia transmisji składa się z czterech podprocesów: uwierzytelniania (p. 3.1); transmisji kluczy publicznych asymetrycznych (p. 3.2); transmisji klucza symetrycznego (p. 3.3); transmisji danych (p. 3.4).

88 M. Bednarek, T. Dąbrowski Wykorzystywane tryby transmisji Tabela 1 Tryb Wartość zmiennej sterującej (BIN) T1 0000000000000001 Opis trybu transmisji Transmisja standardowa bez zabezpieczeń T2 0000000000000010 Transmisja szyfrowana symetrycznie Wykorzystywany kanał Kanał danych Kanał danych/ transmisji kluczy T3 0000000000000100 Transmisja szyfrowana asymetrycznie Kanał danych T5 0000000000001000 T9 0000000000010000 T13 0001000000000000 T14 001000000000000 T15 010000000000000 Transmisja klucza asymetrycznego publicznego Transmisja danych uwierzytelniających z dołączoną wartością funkcji skrótu Transmisja danych z dołączoną wartością funkcji skrótu i szyfrowaną symetrycznie Transmisja danych z dołączoną wartością funkcji skrótu i szyfrowaną asymetrycznie Transmisja danych z dołączoną wartością funkcji skrótu Kanał transmisji kluczy Kanał uwierzytelniania Kanał danych Kanał danych/ transmisji kluczy Kanał danych 3.1. Podproces uwierzytelniania Stacja procesowa PS1 za pomocą kanału sterującego informuje (wysyła komunikat) o wysłaniu kanałem uwierzytelniania żetonu (tokena) programowego, który jest obliczoną wartością funkcji skrótu wg algorytmu MD5 [13] (rys. 4). Rys. 4. Uwierzytelnianie Żeton jest obliczany na podstawie fragmentu nazwy projektu oraz zmiennego parametru czasowego (rys. 5). Po przesłaniu następuje komparacja wartości otrzymanej od stacji PS1 oraz obliczonej przez stację PS2. Proces kończy się:

Bezpieczeństwo transmisji danych w przemysłowym systemie sterowania 89 a) przekazaniem sterowania do procesu transmisji kluczy publicznych (w przypadku sukcesu komparacji); b) powrotem do stanu oczekiwania na uwierzytelnienie (nieudane uwierzytelnienie). Rys. 5. Algorytm procesu formowania żetonu

90 M. Bednarek, T. Dąbrowski 3.2. Podproces transmisji kluczy publicznych W przypadku zgodności wartości tokenu odebranej od stacji PS1 i obliczonej przez stację PS2 następuje proces generowania par kluczy asymetrycznych w obydwu stacjach. Przesyłany jest klucz publiczny stacji PS2 z jednoczesnym wystawieniem odpowiedniego komunikatu sterującego (rys. 6). Rys. 6. Podprocesy transmisji kluczy Podobnie postępuje stacja PS1, wysyłając swój klucz publiczny. W przeciwnym przypadku, tj. braku poprawnego uwierzytelnienia się stacji PS1, kolejne kroki są ignorowane, stacja PS2 przechodzi do oczekiwania, o czym wspomniano w p. 3.1.

Bezpieczeństwo transmisji danych w przemysłowym systemie sterowania 91 3.3. Podproces transmisji klucza symetrycznego W chwili pozytywnego zakończenia procesu wymiany kluczy każda ze stacji ma możliwość wysłania informacji szyfrowanej asymetrycznie, korzystając z klucza drugiej strony. Tak skonstruowany podproces transmisji klucza symetrycznego eliminuje trudność polegającą na braku tajnego sposobu przekazania drugiej stronie klucza symetrycznego. Tylko stacja udostępniająca swój klucz publiczny ma drugi z pary prywatny pozwalający na poprawną deszyfrację wiadomości. Otrzymany klucz publiczny umożliwia rozpoczęcie generowania przez stację PS2 klucza symetrycznego oraz wysłanie go (także przez PS2) do PS1. Klucz ten używany jest w dalszej części procesu zabezpieczonej komunikacji pomiędzy stacjami. 3.4. Podproces transmisji danych Pozytywnie zakończony proces transmisji klucza symetrycznego daje możliwość rozpoczęcia transmisji szyfrowanej symetrycznie. Rozpoczyna się transmisja danych (na rysunku 7 z PS1 do PS2) zaszyfrowanych kluczem prywatnym, znanym tylko stacjom. Każdorazowo przed wysłaniem wartość zmiennej procesowej poddawana jest procesowi szyfrowania symetrycznego. Rys. 7. Transmisja zabezpieczonych danych Oprócz zaszyfrowanej wartości zmiennych procesowych do transmitowanych danych dołączana jest także wartość funkcji skrótu. Na rysunkach 5-7 oznaczono symbolicznie numery trybów pracy systemu zabezpieczającego zgodnie z tabelą 1. 4. Implementacja zabezpieczeń w sterowniku przemysłowym Przedstawiony w punkcie 3 proces zabezpieczania transmisji został zrealizowany w sterowniku przemysłowym oraz w jego emulatorze. Wykorzystano do tego celu języki programowania zgodne z normą PN-EN 61131 [14]:

92 M. Bednarek, T. Dąbrowski język bloków funkcyjnych (ang. FBD Function Block Diagram); język ST (ang. Structural Text). Funkcje zostały zaimplementowane w formie bloków funkcyjnych użytkownika umożliwiających zawarcie w strukturze bloku fragmentów mieszanego kodu w języku ST i języku blokowym FBD). Główne funkcje systemu zabezpieczającego zostały pogrupowane i przyporządkowane do sześciu kategorii (posegregowano je tematycznie w tabelach 2-7). Dostępne kategorie funkcji (rys. 8) to [15]: funkcje szyfrowania asymetrycznego (tab. 2); pomocnicze funkcje szyfrowania asymetrycznego (tab. 3); funkcje szyfrowania symetrycznego (tab. 4); pomocnicze funkcje szyfrowania symetrycznego (tab. 5); funkcje realizacji operacji obliczania wartości funkcji skrótu (tab. 6); pomocnicze funkcje konwersji (tab. 7). Rys. 8. Podział funkcji realizujących zabezpieczanie transmisji Dzięki wykorzystaniu metody tworzenia bloków użytkownika skonstruowany szablon funkcji można wykorzystać wielokrotnie. Funkcje szyfrowania asymetrycznego Tabela 2 Opis funkcji Typ parametru wejściowego Typ parametru wyjściowego Deszyfrowanie ciągu znaków wg algorytmu RSA Szyfrowanie ciągu znaków wg algorytmu RSA Generowanie klucza publicznego i prywatnego łańcuch 32-znakowy (STR32), dwie zmienne łańcuch 32 (STR32) zmienna typu data/czas (DT) dwie zmienne łańcuch 32-znakowy (STR32)

Bezpieczeństwo transmisji danych w przemysłowym systemie sterowania Funkcje pomocnicze implementowane do szyfrowania asymetrycznego 93 Tabela 3 Opis funkcji Typ parametru wejściowego Typ parametru wyjściowego Zwracająca znak kodu ASCII Potęgowanie i dzielenie z resztą (modulo) Obliczanie najmniejszego wspólnego dzielnika Obliczanie potęgi liczby bez znaku (DINT) trzy zmienne typu całkowitego bez znaku (DINT) dwie zmienne typu całkowitego bez znaku (DINT) dwie zmienne typu całkowitego (INT) bez znaku (DINT) bez znaku (DINT) bez znaku (DINT) Funkcje szyfrowania symetrycznego Tabela 4 Opis funkcji Typ parametru wejściowego Typ parametru wyjściowego Funkcja F algorytmu DES Szyfrowanie/deszyfrowanie danych wg algorytmu DES Obliczanie różnicy symetrycznej XOR, łańcuch 64-znakowy (STR64) dwie zmienne łańcuch 64 znakowy (STR64), łańcuch 8-znakowy (STR8) dwie zmienne łańcuch 64 znakowy (STR64) łańcuch 64-znakowy (STR64) łańcuch 64-znakowy (STR64) Funkcje pomocnicze implementowane do szyfrowania symetrycznego Tabela 5 Opis Typ parametru wejściowego Typ parametru wyjściowego Konwersja postaci binarnej ciągu znaków na tekst jawny łańcuch 64-znakowy (STR64) łańcuch 64-znakowy (STR64) Konwersja postaci binarnej ciągu znaków na szesnastkową łańcuch 64-znakowy (STR64) łańcuch 64-znakowy (STR64) Zamiana wartości dziesiętnej na postać binarną Przesunięcie ciągu znaków (INT) łańcuch 64-znakowy (STR64), (INT) łańcuch 64-znakowy (STR64) łańcuch 64-znakowy (STR64)

94 M. Bednarek, T. Dąbrowski Funkcje implementowane do obliczania wartości funkcji skrótu Tabela 6 Opis funkcji Typ parametru wejściowego Typ parametru wyjściowego Obliczenie skrótu wg alg. MD5 Funkcja GG (algorytm MD5) Funkcja II (algorytm MD5) Funkcja HH (algorytm MD5) Funkcja FF (algorytm MD5) Funkcja i (algorytm MD5) Funkcja h (algorytm MD5) Funkcja g (algorytm MD5) Funkcja f (algorytm MD5) siedem zmiennych siedem zmiennych siedem zmiennych siedem zmiennych trzy zmienne trzy zmienne trzy zmienne trzy zmienne Pomocnicze funkcje konwersji Tabela 7 Opis funkcji Typ parametru wejściowego Typ parametru wyjściowego Przesunięcie bitowe w lewo podwójne słowo (DWORD), (INT) podwójne słowo (DWORD) Zamiana pojedynczego znaku na liczbową reprezentację (ASCII) output (UDINT) Konwersja dowolnego ciągu znaków na postać szesnastkową Konwersja ciągu znaków z postaci szesnastkowej na binarną Konwersja postaci dziesiętnej liczby na binarną Uzupełnienie ciągu znaków zerami (parametr) z lewej strony Konwersja postaci binarnej liczby na dziesiętną (INT) łańcuch 32-znakowy (STR32) zm. typu całkowit.

Bezpieczeństwo transmisji danych w przemysłowym systemie sterowania 95 cd. tabeli 7 Konwersja ciągu znaków z postaci szesnastkowej na dziesiętną Zamiana postaci dziesiętnej na szesnastkową zm. typu całkowit. łańcuch 8-znakowy (STR8) 5. Podsumowanie W opracowaniu przedstawiono rozwiązanie pozwalające na zabezpieczenie przesyłanych danych pomiędzy stacjami procesowymi przemysłowego systemu sterowania. Zastosowano tu autorski algorytm uwierzytelniania stacji procesowej. Użyto algorytmu szyfrowania asymetrycznego m.in. do przesyłu tajnych kluczy symetrycznych w przemysłowym systemie sterowania, a po pozytywnym przesłaniu klucza symetrycznego wykorzystano szyfrowanie symetryczne do przesyłu wartości zmiennych procesowych. Całością procesu zabezpieczania zarządza program sterujący wykorzystujący kanał sterujący do informowania drugiej strony o etapie procesu zabezpieczania. Za pomocą wartości przesyłanych ww. kanałem stacje mogą przełączać się pomiędzy wieloma trybami pracy elementów bezpieczeństwa. Pozwala to na użycie elementów (podprocesów) w konfiguracji preferowanej przez użytkownika. O uniwersalności przedstawionego rozwiązania świadczą: implementacja funkcji i podprogramów w postaci bloków funkcyjnych użytkownika, umożliwiających ich wielokrotne wywołanie w programie sterowania; możliwość zastosowania opisanych elementów bezpieczeństwa do innych rodzajów komunikacji w systemie przemysłowym. Uniezależnienie się od firmowych, zamkniętych rozwiązań osiągnięto poprzez: wykonanie zabezpieczeń umożliwiających zastosowanie standardowych bloków transmisji wg protokołu TCP/IP; eliminację stosowania dodatkowych urządzeń lub aplikacji pośredniczących tworzących szyfrowane połączenia. Artykuł wpłynął do redakcji 29.01.2015 r. Zweryfikowaną wersję po recenzjach otrzymano 31.07.2015 r. Literatura [1] Bednarek M., Wizualizacja procesów laboratorium, Oficyna Wydawnicza Politechniki Rzeszowskiej, Rzeszów, 2004. [2] Stamp M., Information security, J. Wiley & Sons, Hoboken, 2006.

96 M. Bednarek, T. Dąbrowski [3] Bednarek M., Dąbrowski T., Wiśnios M., Diagnozowanie bezpieczeństwa komunikacji w przemysłowym systemie sterowania, X Szkoła-konferencja Metrologia wspomagana komputerowo, Waplewo, 27-30 maja 2014. [4] Bednarek M., Dąbrowski T., Wiśnios M., Diagnozowanie zagrożeń komunikacji w przemysłowym systemie sterowania, Przegląd Elektrotechniczny, 8, 2014, 138-143. [5] Kwiecień A., Analiza przepływu informacji w komputerowych sieciach przemysłowych, Wydawnictwo Pracowni Komputerowej Jacka Skalmierskiego, 2001. [6] Fall K., Stevens R., TCP/IP od środka. Protokoły, Helion, 2013. [7] Bednarek M., Dąbrowski T., Koncepcja bezpiecznej transmisji danych w mobilnym systemie rozproszonym, Materiały Międzynarodowej Konferencji Transport XXI wieku, Ryn, 16-19.09.2013. [8] Bednarek M., Dąbrowski T., Koncepcja bezpiecznej transmisji danych w mobilnym systemie rozproszonym, Prace Naukowe Politechniki Warszawskiej, seria Transport, zeszyt 96, 2013, 69-76. [9] Modbus Messaging On TCP/IP Implementation Guide, October 24, 2006; http://www.modbus- IDA.org. [10] Iwanitz F., Lange J., OPC Fundamentals, Implementation and Application, Laxmi Publications Pvt Limited, 2010. [11] Bednarek M., Dąbrowski T., Wiśnios M., Koncepcja komunikacji bezpiecznej w systemie rozproszonym, VIII Krajowa Konferencja DIAG 2013, Ustroń, 3-7.06.2013. [12] Bednarek M., Dąbrowski T., Wiśnios M., Elementy koncepcji zabezpieczenia transmisji pomiędzy stacjami diagnostycznymi, X Szkoła-konferencja Metrologia wspomagana komputerowo, Waplewo, 27-30 maja 2014. [13] Stinson D.R., Kryptografia. W teorii i praktyce, WNT, Warszawa, 2005. [14] Norma PN-EN 61131 Sterowniki programowalne, Część 3. Języki programowania. [15] Bednarek M., Dąbrowski T., Marczydło D., Elementy bezpieczeństwa przesyłu danych w przemysłowym systemie sterowania, XLIII Zimowa Szkoła Niezawodności, Szczyrk 11-17.01.2015, s. 15. M. BEDNAREK, T. DĄBROWSKI Security of the data transmission in the industrial control system Abstract. The theme of this paper is to present the data transmission security system between the stations of the industrial control system. The possible options for secure communications between process stations, as well as between process and operator station are described. Transmission security mechanism is based on algorithms for symmetric and asymmetric encryption. The authentication process uses a software token algorithm and a one-way hash function. The algorithm for establishing a secured connection between the stations, including the authentication process and encryption of data transmission is given. The process of securing the transmission consists of 4 sub-processes: (I) authentication; (II) asymmetric, public keys transmission; (III) symmetric key transmission; (IV) data transmission. The presented process of securing the transmission was realized in the industrial controller and emulator. For this purpose, programming languages in accordance with EN 61131 were used. The functions were implemented as user function blocks. This allows us to include a mixed code in the structure of the block (both: ST and FBD). Available function categories: support of the asymmetric encryption; asymmetric encryption utility functions; support of the symmetric encryption; symmetric encryption utility functions; support of the hash value calculations; utility functions of conversion. Keywords: transmission security, encryption, authentication, industrial control system DOI: 10.5604/12345865.1186229