Kontaktné údaje
- info@ipesoft.com
- +421 907 703 854
- Obchodná 9076/3D
010 08 Žilina
Slovensko
© Copyright IPESOFT 2023
Po nedávnej podpore Sparkplug payloadu v MQTT protokole sme začali uvažovať o podpore kryptovania v MQTT protokole (v praxi sa často používa kryptovaná MQTTS verzia protokolu MQTT, podobne ako existuje HTTPS - kryptovaná verzia protokolu HTTP). V dnešnom blogu sa dozviete, ako to dopadlo.
Cieľom bolo integrovať podporu kryptovaných spojení priamo do D2000 Kom procesu, čím by sa zjednodušila konfigurácia. Nebolo by nutné na kryptovanie používať napr. externú utilitu stunnel ako popisuje blog MQTT v praxi.
Navyše sa nejednalo ani o komplikovanú záležitosť, keďže aplikačný server reálneho času Ipesoft D2000 už integruje kryptografickú knižnicu OpenSSL – používa ju napr. na kryptovanie komunikácie medzi D2000 procesmi.
Implementácia fungovala, bez problémov sme kryptovanie komunikovali s verejne dostupnými MQTT brokermi broker.hivemq.com a test.mosquitto.org. V konfigurácii protokolu pribudli tieto parametre:
Prvý parameter bol povinný (umožňoval overenie dôveryhodnosti MQTT servera), ďalšie dva boli voliteľné (umožňovali autentifikáciu voči MQTT serveru na základe nášho certifikátu, ktorému MQTT server dôveroval).
Následne sme ale začali uvažovať, či sa nedajú tieto parametre využiť aj pre iné komunikačné protokoly. A vymysleli sme nasledovné:
Rozšírili sme konfiguráciu komunikačných liniek typu TCP/IP-TCP a TCP/IP-TCP Redundant. Pribudla v nich sekcia „TLS – Certifikáty“ s troma parametrami:
Navyše pribudla sekcia „TLS – zdieľaný kľúč“ s jediným parametrom:
Pokiaľ je zadaný parameter „Zdieľaný kľúč“, na kryptovanie spojenia sa použije zadaný text (až 80 znakov). Výhodou je, že odpadá generovanie certifikátov a kľúčov a starostlivosť o ne.
Pokiaľ je zadaný parameter „Certifikát(y) partnera“, alebo dvojica parametrov „Môj certifikát“/ „Môj kľúč“, aktivuje sa krytovanie a druhá strana sa overuje na základe partnerského certifikátu a D2000 Kom môže byť overený na základe jeho certifikátu.
Ak nie je žiaden z TLS parametrov zadaný, použije sa štandardné TCP spojenie bez kryptovania.
Nasledujúci obrázok ukazuje nástroja Wireshark zaznamenávajúci sieťovú komunikáciu medzi dvoma linkami D2000 Kom procesu pri použití kryptovania. V stĺpci „Protocol“ je vidieť použitý TLS protokol verzie 1.3.
Výhodou presunu kryptovania na úroveň komunikačnej linky je, že takto je kryptovanie automaticky použiteľné pre všetky protokoly používajúce linky typu TCP/IP-TCP a TCP/IP-TCP Redundant. A to nielen protokoly zabudované v D2000 Kom procese, ale aj OEM protokoly implementované ako dynamické knižnice využívajúce D2000 KomAPI rozhranie!
Teraz určite niekomu z vás napadla otázka: linky typu TCP/IP-TCP a TCP/IP-TCP Redundant podporujú okrem IPv4 aj IPv6 protokol. Ako sa teda znáša TLS kryptovanie s IPv6?
Dobrá správa - TLS funguje s IPv4 ako aj IPv6.
Všetkých nadšených priaznivcov nových vlastností D2000 a zástancov zvyšovania bezpečnosti musím teraz trošku pribrzdiť. Táto nová vlastnosť je určite užitočná. Bez problémov sa dá použiť na kryptovanie komunikácie medzi dvoma D2000 systémami (napr. cez IEC-104 protokol). Ale pokiaľ komunikujeme napr. s PLC cez Modbus, tak to nebude také jednoduché. Štandardné PLC určite nemá podporu TLS kryptovania. Ale ... aj tam sa dá uvažovať aspoň o čiastočnom riešení. Napríklad pokiaľ by nejaký existujúci server v sieti s PLC, prípadne existujúci firewall/router v tejto sieti dokázal implementovať funkcionalitu utility zabalenie TCP komunikácie do TLS vrstvy (napr. pomocou utility stunnel), tak by bola chránená komunikácia od zdroja (D2000 Kom) až po posledný sieťový segment – bez ovplyvnenia PLC a bez potreby zásahov doň!
Záver
V dnešnom čoraz nebezpečnejšom digitálnom svete, v ktorom sú vírusy, malware, ransomware a iné digitálne hrozby na dennom poriadku, je zvyšovanie bezpečnosti riadiacich systémov mimoriadne dôležité. Kryptovanie komunikácie je jedným z bodov, ktoré zvyšovaniu bezpečnosti prispievajú. Mimochodom, použitie vhodných programovacích jazykov s cieľom zabrániť napr. buffer overflow chybám je podobne dôležité. Aj tento rok publikovaný dokument americkej agentúry NSA odporúča použitie pamäťovo bezpečných jazykov, medzi ktorými uvádza aj jazyk Ada, v ktorom je aplikačný server reálneho času Ipesoft D2000 napísaný.
13.12.2024, Ing. Peter Humaj, www.ipesoft.com