TLS zabezpečení – příklady komunikací
Další část ukazuje, jaké případy zabezpečených spojení mohou nastat, jaké mají varianty a co je potřeba nastavit u každého účastníka komunikace.
Typické případy komunikačních scénářů jsou tyto:
- Klient (IDE, Visual, SCADA,...) se připojuje pomocí zabezpečeného SSCP na PLC.
- Webový prohlížeč se připojuje pomocí https:// na PLC.
- PLC se připojuje k databázi (DB), chce uložit data.
- PLC se připojuje k mail serveru přes SMTPS, chce odeslat mail.
- PLC se připojuje na Merbon Proxy server.
- PLC se připojuje jako klient pomocí SSCP na jiné PLC.
Na následujících schématech představuje červená šipka směr navazování TLS spojení, tedy od klienta směrem k serveru.
Klient (IDE, SCADA, ...) se připojuje pomocí SSCP na PLC
PLC je v roli serveru. Je možných několik variant.
- Bez zabezpečení - Běžná konfigurace, spojení SSCP na cílový port 12346. V IDE v Parametrech připojení není vybráno Povolení SSL, v konfiguraci PLC nemusí být SSL server povolen.
- Zabezpečené spojení TLS bez ověřování - V IDE v Parametrech připojení je vybráno Povolení SSL a jako cílový port je zadán ten, na kterém poslouchá SSL server v PLC (výchozí je 12347), v konfiguraci PLC musí být SSL server povolen. V PLC musí být nahrán privátní klíč (srv_key) a certifikát s veřejným klíčem (srv_cert). Oba soubory jsou součástí továrního nastavení. Při navázání spojení PLC pošle klientovi veřejný klíč, aby strany mohly navázat zabezpečenou komunikaci. Řeší se pouze znečitelnění komunikace pro cizí, ne ověřování identity stran.
- Se serverovým certifikátem ve výchozím stavu - Součástí továrního nastavení je rovněž výchozí serverový certifikát. PLC má v souboru def_ca self-signed certifikát, který vydala certifikační autorita Domat, také self-signed (tedy neověřená proti veřejné autoritě), a protože tyto certifikáty jsou nahrány ve všech PLC, pro jejich vzájemné ověření jim to stačí i bez přístupu na Internet. Na počítač, kde běží klientský program, je nutné naimportovat tento self-signed certifikát také. Certifikát dodá technická podpora Domat.
- Se serverovým certifikátem, ověřování proti autoritě - Nutno vybavit klienta certifikátem vůči autoritě na Internetu (pak musí mít klient přístup na Internet), nebo certifikátem, který má PLC nahraný v user_ca - toto si zařídí uživatel, který buduje vlastní systém důvěry.
Jak nahrát certifikát do PC, aby ho mohly používat klientské programy (SCADA, IDE...)? V OS Windows je postup tento:
V cmd okně spusťte mmc, v konzoli vyberte Soubor / Přidat nebo odebrat modul snap-in / Certifikáty (místní)
a pravým tlačítkem myši např. na Důvěryhodnost v rámci rozlehlé sítě (všechny složky jsou technicky stejné, jde jen o přehledné roztřídění a přístupová práva uživatelů), Všechny úkoly, Importovat.
SCADA konfigurovaná v RcWare dnes má možnost zabezpečené spojení nastavit v RcWare exportu od verze 12.4.2023. (V RcWare samotném zabezpečené spojení nefunguje, jde jen o možnost nastavení pro export pro Scadu.)
Webový prohlížeč se připojuje pomocí https:// na PLC
PLC je v roli serveru. Je možných několik úrovní.
- Bez zabezpečení - Spojení přes protokol http:// (TCP port 80). Některé prohlížeče již umožňují přístup jen v místní síti, ne přes Internet; nutno odsouhlasit, že uživatel přistupuje na nezabezpečený web.
- Zabezpečené spojení bez ověření domény - Spojení přes protokol https:// (TCP port 443). Data jsou nečitelná pro cizí stranu, ale klient nemůže ověřit pravost domény, na které web server běží. Lze použít výchozí TLS certifikáty nahrané z výroby.
- Zabezpečené spojení s ověřením domény - Spojení přes protokol https:// (TCP port 443), navíc verifikace pomocí doménového certifikátu. Pro ně je nutné do PLC nahrát oba soubory "Web Server..." - certifikát a klíč. Web server certifikát musí být vystaven pro doménu, na které pak bude web server PLC pro klienta viditelný, tedy např. plc.firma.cz. Při tvorbě certifikátu se toto zadává v "common name". Certifikát zařizuje správce domény.
Při zanedbání údržby zabezpečeného webového serveru hrozí, že prohlížeče budou odmítat certifikáty prošlé nebo self-signed. Dnes ještě lze v prohlížeči potvrdit, že uživatel přesto chce web navštívit.
Lepší možnost je využít webového proxy serveru (nezaměňovat s Domat Proxy!) Webový proxy server je ve správě IT oddělení, které zajišťuje konektivitu vnitřní sítě do internetu). Certifikát je pak součástí web proxy serveru a zabezpečené spojení z Internetu je překládáno na nezabezpečené spojení na PLC ve vnitřní síti (která je považována za bezpečnou). V takovém případě je veškeré nastavení v režii IT a v PLC se nastaví jen běžný nezabezpečený webový server (http://). Topologie vypadá takto:
PLC se připojuje k databázi (DB), chce uložit data
PLC je při navazování spojení v roli klienta. DB Adapter může obsahovat na úrovni IIS serveru bezpečnostní certifikát (nastavení DB Adapter serveru se provádí normálně v IIS jako https://). Konfiguraci na straně DB serveru (přesněji řečeno adaptéru) zajišťuje jeho provozovatel.
Možnosti připojení jsou tyto:
- Nezabezpečené spojení: Standardní http:// připojení k Domat DB adaptéru, adaptér ani PLC není nutno z hlediska bezpečnosti nijak konfigurovat.
- Zabezpečené spojení bez validace domény: Zabezpečené spojení, v PLC stačí zadat URL ve tvaru https://. Do PLC není nutné nahrávat žádné certifikáty, klíče atd.
- Zabezpečené spojení s validací domény: V PLC musí být nahrán certifikát, který poskytne provozovatel DB serveru (nebo certifikát autority, na kterou se certifikát DB serveru odkazuje).
Jak PLC ví, že DB adaptér je ten, za který se prohlašuje? Ověření probíhá pomocí certifikátu DB adaptéru (z IIS) a certifikátu, který má PLC v sobě nahraný.
Jak DB ví, že PLC je to, za které se prohlašuje? Neví, PLC se vůči databázi autorizuje jen jménem a heslem jako bez SSL (jméno a heslo pro přístup do DB mohou mít všechna PLC stejná). Jako rozlišovač pro více PLC slouží Runtime ID. Zatím nelze do PLC nahrát klientský certifikát, tzn. není možné ověřit identitu PLC vůči DB adaptéru.
PLC se připojuje k e-mail serveru přes SMTP, chce odeslat mail
Velmi častý případ. PLC je v roli klienta. Je možných několik úrovní.
- Bez zabezpečení - Server obvykle naslouchá na TCP portu 25. Dnes je toto prakticky možné jen v lokálních sítích. Všechny veřejné servery již vyžadují zabezpečené spojení.
- Zabezpečené spojení bez validace domény - Server obvykle používá TCP port 587 nebo 465. Pro nastavení stačí zaškrtnout "Povolit SSL" v definici alarmového kanálu. Do PLC není nutné nahrávat žádné certifikáty atd.
- Zabezpečené spojení s validací domény - Zaškrtne se "Validace certifikátu" v nastavení definic hlášení. PLC se při navazování spojení ujistí, že mailový server je tím, za koho se prohlašuje (tedy že PLC se nepřipojuje na nějaký jiný, podvržený server). V PLC musí být v User CA nebo Default CA nahrán certifikát, který poskytne správce e-mailového serveru. Ten lze obdržet od poskytovatele e-mailové služby nebo někdy i exportovat z webového prohlížeče, z něhož bylo na e-mailový server přistupováno. (Další možnost je do PLC nahrát certifikát autority, na kterou se certifikát e-mailového serveru odkazuje).
Při navazování zabezpečeného spojení se mj. klient a server dohodnou na způsobu šifrování dat. Šifrovací metody se nazývají cipher suites. PLC aktuálně podporují standard TLS1.2 a cipher suite TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030). Je možné, že se zpřísňujícími se požadavky mail serverů na úroveň zabezpečení bude nutné sadu cipher suites v PLC časem aktualizovat. V případě potíží s navazováním spojení pomůže výpis programem Wireshark, z něhož se zjistí, proč se PLC nebylo schopné se serverem dohodnout.
Zatím nelze do PLC nahrát klientský certifikát, tzn. ověřovat se může jen identita serveru vůči PLC, nikoli identita PLC vůči e-mail serveru.
PLC se připojuje na Domat Proxy server
PLC je (z hlediska TLS) klient. (Znamená to, že PLC navazuje TLS připojení na proxy server, ačkoli z pohledu SSCP protokolu a zejména "druhé strany" připojené na proxy server - Merbon IDE, SCADA nebo jiného klientského programu - se PLC chová jako server.) Na straně proxy serveru veškeré nastavení zajišťuje poskytovatel služby, Domat.
- Bez zabezpečení: Standardní http spojení. V PLC nastavíme Proxy URL http://plcproxy.domat.cz:12349
- Zabezpečené, bez validace domény: Žádné certifikáty není nutné nahrávat. V PLC v nastavení proxy stačí zadat URL ve tvaru https://plcproxy.domat.cz:12359 (pozor, číslo portu je jiné než u nezabezpečeného spojení).
- S validací domény: V PLC musí být navíc nahrán certifikát, který poskytne správce proxy serveru (Domat). Ve výchozím stavu je v PLC doménový certifikát Domat již nahrán.
Zatím nelze do PLC nahrát klientský certifikát, tzn. ověřovat se může jen identita serveru vůči PLC, nikoli identita PLC vůči proxy serveru.
SSCP klient (IDE, PLC, SCADA) se připojuje na Domat Proxy server
Na "druhé straně" proxy jde z hlediska TLS také o klientské spojení na proxy server.
Opět máme několik možností, jak spojení zabezpečit (bez ohledu na to, jakým způsobem se připojuje k proxy serveru PLC):
- Bez zabezpečení: Standardní SSCP spojení. V IDE v Parametrech připojení nastavíme Proxy URL tcp://plcproxy.domat.cz:12348
- Zabezpečené, bez validace domény: Žádné certifikáty není nutné nahrávat. V IDE stačí zadat URL ve tvaru tcps:// plcproxy.domat.cz:12358 (pozor, číslo portu je jiné než u nezabezpečeného spojení).
- S validací domény: V PC s klientem musí být navíc nahrán certifikát, který poskytne správce proxy serveru (dodá Domat).
Jsou možné všechny kombinace zabezpečeného a nezabezpečeného spojení ze strany PLC a SSCP klientů, například PLC se na Proxy server může připojovat zabezpečeným spojením, ale IDE spojením nezabezpečeným.
Na PLC se připojuje Domat Visual / HT200
Domat Visual zatím zabezpečené spojení nepodporuje.