3.2.2026

Komunikácia - zabezpečený M-Bus

Komunikácia -zabezpečený M-Bus

V minulosti som sa už venovali M-Bus komunikácii v samostatnom blogu. Dnes popíšem konfiguráciu komunikácie s použitím nového prevodníka firmy JC Elektronika, ktorý umožňuje zabezpečenie komunikácie. Firma v najbližšej dobe uvedie na trh novú radu Ethernetových prevodníkov typu SECURE. Na test sme mali zapožičaný najmenší typ EthMBus-3SL SECURE pre tri merače.

V čom spočíva avizované zabezpečenie? V zásade ide o vylepšené (hardvérovo aj softvérovo) a na DIN lištu určené prevodníky, ktoré podporujú aj komunikáciu cez TCP spojenie kryptované TLS1.2.

Ku prevodníku bol počas testu pripojený batériou napájaný 1-kanálový čítač impulzov od firmy Relay.

Obrázok 1 - Testovaná zostava. M-Bus prevodník je vpravo, čítač impulzov vľavo.

Na obrázku si môžete všimnúť minimálnu šírku M-Bus prevodníka; dokonca aj Ethernet konektor na spodnej strane je osadený o 90°pootočený. Tento prevodník podporuje konfiguráciu cez webové rozhranie  (http aj https), telnet a cez XML súbor.

Obrázok 2 – Webové rozhranie na konfiguráciu M-Bus linky.

Pokiaľ sa nakonfiguruje na linke protokol ako Tunnel, v  konfigurácii na záložke Tunnel je možné nastaviť parametre tohto tunela. Pre nastavenie prevodníka do režimu server vyberieme menu Accept Mode, povolíme tento režim (napr. Mode = Always) a nastavíme mód SSL ako aj číslo TCP portu (na obrázku 10001). Je podporený aj SSH mód (zabalenie komunikácie SSH spojenia).

Obrázok 3 - Konfigurácia parametrov tunela.

V záložke SSL je možné importovať privátny kľúč + certifikát pre M-Bus prevodník, alebo je možné ho vygenerovať priamo vo webovom rozhraní. Ďalej je  možné importovať certifikát autority, ktorý je potrebný v režime klient s overením certifikátu servera. To umožňuje M-Bus prevodníku, aby komunikoval iba s dôveryhodným serverom, ktorého certifikát je zhodný s nahraným certifikátom. Je možné nahrať viac certifikátov serverov.

Obrázok 4 - Rozhranie pre import/generovanie SSL kľúča a certifikátu.

Ako vyzerá konfigurácia komunikácie v D2000 v režime klient?
Okrem IP adresy M-Bus prevodníka a TCP portu (10001) sú nakonfigurované aj certifikát a súkromný kľúč klienta, ako aj certifikát M-Bus prevodníka (kvôli overeniu dôveryhodnosti a zabráneniu man-in-the-middle útoku). Tento certifikát sme získali z prevodníka pomocou webového prehliadača po pripojení sa k nemu cez https protokol (certifikát je rovnaký pre https ako pre SSL komunikáciu). V produkčných podmienkách by sme tento certifikát generovali a podpisovali na zabezpečenom firemnom serveri a importovali do D2000 a do prevodníka (tu aj so súkromným kľúčom).

Obrázok 5 - Konfigurácia komunikačnejlinky typu TCP/IP - TCP včítane TLS certifikátov a súkromného kľúča.

Pri prvom teste komunikácie sme zistili jeden neočakávaný fakt. OpenSSL verzie 1.3, ktoré používa D2000 KOM proces, mal problém so staršou implementáciou SSL, ktorú obsahoval M-Bus prevodník. SSL spojenie sa nenadviazalo, ale došlo k výpisu chybovej hlášky:

L.MBUS_JC TLS connect error to 169.254.100.10, Message = unsafe legacy renegotiation disabled

Kvôli kompatibilite bolo teda nutné nahradiť aktuálnu verziu TLS 1.3 (libcrypto-3-x64.dll a libssl-3-x64.dll) verziou TLS 1.1 (libcrypto-1_1-x64.dll a libssl-1_1-x64.dll). Do budúcna musíme pouvažovať, ako by sme vedeli v rámci jedného D2000 KOM procesu prevádzkovať paralelne aktuálne TLS 1.3 (ktoré môže byť nutné napr. na pripájanie sa k D2000 Serveru, ak je vyžadované zabezpečené TLS pripojenie) a staršie verzie TLS, ktoré môžu vyžadovať jednotlivé komunikácie.

Po rozbehaní samotnej komunikácie sme zistili ešte jeden drobný problém. D2000 KOM vypisoval hlášky o nepodporenej 48-bitovej Integer hodnote. Takže sme implementáciu M-Bus protokolu vylepšili a pridali podporu pre 48-bitový a 64-bitový Integer.

Obrázok 6 - Ladiace výpisy komunikačného procesu a konfigurácia meraných bodov v D2000 CNF.

V ladiacich výpisoch je možné si všimnúť výpisy prijatých dát včítane identifikátora výrobcu s adresou 0.1 (viď meraný bod M.MBUS_JC.01):
Adr.0.1,Manufacturer,Val='REL'

Najdôležitejší údaj, samotná hodnota energie, je na adrese 1 (meraný bod M.MBUS_JC.1.0):
Adr.1,DF:06H (48 bit int)(inst. val),VIF:03H=Energy 552505*10^0 [Wh],Val:552505

Záver

Podpora TLS nielen v testovanom M-Bus prevodníku, ale aj v rôznych sériových serveroch je určite krok správnym smerom – smerom k zvyšovaniu zabezpečenia komunikácie medzi meračmi a SCADA systémami. A mňa teší, že aj na strane aplikačného servera Ipesoft D2000 sme na tento krok pripravení a vieme na linkách typu TCP/IP TCP a TCP/IP TCP Redundant konfigurovať TLS zabezpečenie.

Ďakujem firme JC Elektronika za zapožičanie M-Bus prevodníka a čítača impulzov a za možnosť vytvoriť tento blog.

18.12.2025, Ing. Peter Humaj, www.ipesoft.com

Iné blogy