SSL komunikace
Od verze IDE 2.5.0.x.
SSL (Secure Sockets Layer) a jeho nástupce TLS (Transport Layer Security) jsou protokoly pro vytváření ověřených a šifrovaných spojení mezi počítači v síti. Ačkoli protokol SSL byl s vydáním TLS zastaralý, stále je běžné označovat tyto související technologie jako „SSL“ nebo „SSL/TLS“.
SSL protokoly se použivají ze dvou důvodů:
- Identifikace - díky SSL mají klient i server jistotu, že komunikují opravdu spolu navzájem a ne s někým, kdo se za jednu ze stran vydává.
- Šifrovaná komunikace - zařídí domluvu šifrovacího algoritmu, bezpečnou výměnu klíčů a tvorbu společného tajemství, které pak klient i server používají k šifrování komunikace.
SSL certifikát
Certifikáty obsahují bezpečnostní prvky proti falšování, takže každý účastník komunikace by měl být schopen automaticky ověřit, zda je certifikát pravý.
Kromě toho v sobě nesou informaci, ke kterému serveru patří – takže si můžete ověřit, že komunikujete opravdu se serverem domény vlastnící certifikát. Také obsahují datum vydání a datum, do kterého bude certifikát platit – certifikáty je potřeba obnovovat, aby mohla být důvěra v ně zachována. A v neposlední řadě certifikáty obsahují také veřejný klíč vlastníka, který umožňuje zahájení šifrované komunikace.
Správa SSL certifikátů
Spravovat certifikáty lze přes „Operace s PLC“->„Manage Certificates“.
Dialog pro správu certifikátů umožňuje nahrát, smazat, sloučit, případně stáhnout jednotlivé certifikáty.
Nahrání se provádí vybráním certifikátu přes dialog pro výběr souboru z počítače, kdy se po výběru certifikátu zviditelní tlačítko „Nahrát“. Nahrát lze výchozí certifikační autoritu (CA), uživatelskou CA, serverový certifikát, privátní klíč serveru, certifikát pro webserver a klíč certifikátu pro webserver.
Pro aplikování certifikátů je nutné provést restart RT.
Také můžeme jednotlivé certifikáty a klíče smazat.
Certifikáty lze stahovat také přímo z webových stránek přes URL adresu, kde si vybereme buď stažení certifikátu lokálně na počítač, nebo nahrání certifikátu přímo do PLC.
Pokud potřebujeme více certifikačních autorit, tak u položky výchozí nebo uživatelské certifikáty funguje slučování nahraných certifikátů, kdy po rozkliknutí jedné z položek opět můžeme zobrazit jednotlivé certifikáty, případně certifikáty smazat.
- Výchozí CA - z výroby je nahrán certifikát certifikační autority Domat, může být nahrazen jiným certifikátem. Je vyžadován pro spojení Proxy a Database, pokud je zaškrtnuta možnost Validace certifikátu.
- Uživatelská CA - z výroby nenahrán, sem je možné volitelně nahrát certifikát autority, používané uživatelem.
- Privátní klíč serveru - požadovaný pro bezpečné SSCP spojení (z IDE nebo jiných PLC). Privátní klíč je nahrán ve výrobě.
- Serverový certifikát - požadovaný pro bezpečné SSCP spojení (z IDE nebo jiných PLC). Ve výrobě se nahrává certifikát serveru podepsaný certifikační autoritou Domat.
- Web server certificate a Web server certificate key - z výroby nenahrány, požadované pro bezpečný přístup na web (https://). Certifikát a klíč poskytuje správce domény, na níž je PLC web server provozován (např. plc.firma.cz)
Všechny certifikáty mají omezenou časovou platnost a musí být periodicky vydávány a nahrávány, jinak systém nebude pracovat správně - nebude možné navázat bezpečné spojení mezi PLC a klienty. Systém správy certifikátů a odpovědnosti konzultujte s provozovatelem zařízení nebo správcem IT.
Aktuální informace o certifikátech jsou viditelné i ve stavu systému při ladění sestavy.
Nastavení šifrované komunikace mezi PLC a IDE
Po nahrání serverového certifikátu a klíče do PLC je potřeba povolit SSL server ve vlastnostech PLC v sekci SSCP parametry. Následně nahrajeme konfiguraci do PLC.
Následně změníme v parametrech pro spojení port z 12346 na 12347 a povolíme SSL. Nakonec dáme start ladění a vyzkoušíme, že PLC se připojí a šifrovaně komunikuje s IDE.
Nastavení šifrované komunikace mezi PLC a PLC
Zde je potřeba připravit jedno PLC jako server a druhé jako klient.
Nastavení serveru je popsáno v kapitole "Nastavení šifrované komunikace mezi PLC a IDE".
Nastavení klienta spočívá v přidání komunikačního protokolu SSCP, přidání zařízení, kde ve vlastnostech zařízení zvolíme zdrojovou podstanici. Pokud zvolíme PLC, můžeme vybrat z jednotlivých koncových bodů.
- HwConfiguration - převezme si povolení SSL z "Enable SSL Server" z položky SSCP parametry. "SSL Port" se nepoužívá.
- Deploy - převezme si povolení a validaci certifikátu z parametrů pro připojení.
- Custom - lze nastavit povolení a validaci certifikátu přimo ve vlastnostech zařízení.
Pokud zvolíme zdroj dat, tak povolení SSL a validaci certifikátu se převezme přímo z vlastností zdroje dat.
Nastavení šifrované komunikace pro databázi
Na počítači, na kterém nám běží databáze, je potřeba změnit nastavení vazeb ve Správci Internetové informační služby.
Po rozkliknutí domovské stránky a složky "Weby" klikneme na DatabaseAdapter, kde v akcích vybereme možnost "Vazby...".
Zde přidáme novou vazbu s typem https, dočasným portem např. 8687 kvůli duplicitě s http vazbou a nakonec vybereme certifikát SSL. Pokud nemáme firemní certifikát, tak je možnost vytvořit si vlastní certifikát podepsaný sám sebou. Po vytvoření vazby už lze starou vazbu smazat a u nové nesmíme zapomenout změnit dočasnou hodnotu portu na hodnotu 8686.
V IDE je nutné ve vlastnostech PLC v sekci "Parametry Domat DB" změnit URL spojení z http na https://"IP adresa počítače":8686/spdba/save a poté konfiguraci nahrát do PLC.
Nastavení šifrované komunikace pro Proxy
V sekci Parametry Proxy zadáme Proxy ID, poté URL ve tvaru "https://plcproxy.domat.cz:12359/", případně validaci certifikátu a nahrajeme konfiguraci do PLC.
Dále v parametrech pro spojení s PLC změníme typ spojení z TCP na Proxy. V parametrech připojení vyplníme URI ve tvaru "tcps://plcproxy.domat.cz:12358" a Proxy ID vyplníme stejné jako v Parametrech Proxy.
Po startu ladění bychom se měli připojit k PLC.
Nastavení šifrované komunikace pro SMTP
Zde je potřeba mít PLC s nahranou výchozí certifikační autoritou z výroby nebo nahrát svojí certifikační autoritu.
Dále si vytvoříme na PLC v "Definici hlášení" SMTP alarmový kanál a ve vlastnostech povolíme SSL, případně validaci certifikátu. Port volíme ze 2 možností (587, 465) podle toho, jaký port je povolen u vybraného SMTP serveru.
Potvrdíme změny a nahrajeme sestavu do PLC.
Příklad pro validaci certifikátu pro smtp.centrum.cz
Nastavíme vlastnosti SMTP kanálu.
Pro stažení SMTP certifikátu můžeme použít např. OpenSSL, které musíme stáhnout a nainstalovat.
Po instalaci otevřeme "Win64 OpenSSL Command Prompt"
Zadáme příkaz: openssl s_client -connect smtp.centrum.cz:465
Zde nás bude hlavně zajímat serverový certifikát, který si zkopírujeme a vložíme do poznámkového bloku nebo Notepad++. Tento soubor poté uložíme např. jako smtp_centrum.cer.
Po otevření certifikátu překlikneme na záložku "Cesta k certifikátu", zde nás nezájímá koncová adresa, ale pouze cesta k certifikační autoritě, v tomto případě "Sectigo RSA Domain Validation Secure Server CA"
Klikneme na "Zobrazit certifikát"
Přejdeme na záložku "Podrobnosti"
Klikneme na "Kopírovat do souboru..."
Otevře se nám "Průvodce exportem certifikátu". Klikneme na "Další"
Vybereme formát "X.509, kódování Base-64 (CER)" a klikneme na "Další".
Pojmenujeme certifikát s certifikační autoritou a klikneme na "Další".
Zkontrolujeme nastavení exportu certifikátu a klikneme na "Dokončit".
Nakonec bychom měli vidět dialog o úspěšném exportu certifikátu.
Tento vyexportovaný certifikát poté nahrajeme do PLC jako certifikační autoritu.
Nastavení HTTPS pro web
Pro změnu webu z HTTP na HTTPS je potřeba provést tyto úkony:
Přes dialog "Nahrání certifikátů" nahrát certifikát webserveru a jeho klíč do PLC.
Nainstalovat certifikační autoritu pro certifikát webserveru mezi "Důvěryhodné kořenové certifikační autority".
Začneme tím, že dáme pravým tlačítkem myši na certifikát s certifikační autoritou pro certifikát webserveru a vybereme "Nainstalovat certifikát".
Dále vybereme umístění úložiště (Aktuální uživatel/Místní počítač) a klikneme na "Další".
Zde vybereme možnost "Všechny certifikáty umístit v následujícím úložišti", kde po kliku na "Procházet..." vybereme "Důvěryhodné kořenové certifikační autority" a poté klikneme na "Další".
Nakonec klikneme na "Dokončit".
Ve složce C:\Windows\System32\drivers\etc\hosts přidat název webového certifikátu pro IP adresu našeho PLC.
Nahrát konfiguraci pro HTTPS do PLC.
Nahrát web do PLC
Po úspěšném nastavení bychom měli být schopni dostat se na web přes odkaz https://"název webového certifikátu" (např. "https://web_cert.domat.cz").
Výchozí port pro HTTPS je 443, pokud bychom chtěli použít jiný port, je nutné přidat pravidlo do firewallu PLC přes WinSCP.
Webserver na PLC můžeme nastavit pomocí 5 módů:
- Blokováno - webová služba není funkční
- HTTP - pouze nezabezpečené HTTP spojení
- HTTPS - pouze zabezpečené spojení HTTPS
- HTTP + HTTPS - oba typy spojení jsou povoleny
- HTTPS + HTTP přesměrování - při pokusu o HTTP spojení je prohlížeč přesměrován na HTTPS (doporučeno).