Systém D2000 je možné nakonfigurovať tak, aby komunikácia medzi serverom a klientami prebiehala zabezpečeným šifrovaným komunikačným kanálom. Zabezpečenie je implementované protokolom Transport Layer Security (TLS v1.23).
Pre aktiváciu zabezpečenej komunikácie je potrebné vykonať nasledujúce kroky:
...
Blok kódu | ||||
---|---|---|---|---|
| ||||
openssl genrsa -out server.keypem 4096 |
Generovanie certificate signing request
Blok kódu | ||||
---|---|---|---|---|
| ||||
openssl req -new -key server.keypem -out server.csr |
Generovanie self-signed certifikátu
Blok kódu | ||||
---|---|---|---|---|
| ||||
openssl x509 -req -days 730 -in server.csr -signkey server.keypem -out server.crt |
2. Nastaviť TLS podporu v registroch pre kernel
Blok kódu | ||||
---|---|---|---|---|
| ||||
HKEY_LOCAL_MACHINE\SOFTWARE\Ipesoft\<instalacia>\cfg_<aplikacia>\TLS_Server\TLS_CertFile = c:\<cesta>\server.crt HKEY_LOCAL_MACHINE\SOFTWARE\Ipesoft\<instalacia>\cfg_<aplikacia>\TLS_Server\TLS_KeyFile = c:\<cesta>\server.keypem HKEY_LOCAL_MACHINE\SOFTWARE\Ipesoft\<instalacia>\cfg_<aplikacia>\TLS_Server\TLS_RequiredLevel = <level> |
Nastavenie vyžadovanej úrovne zabezpečenia pripájajúceho sa klienta <level>:
- None - kernel dovolí pripojiť sa klientovi aj bez zabezpečenia aj so zabezpečením
- TLSNoPeerAuth - kernel dovolí pripojenie len od klienta, ktorý komunikuje zabezpečene (ale nemusí byť overený certifikátom)
3. Nastaviť TLS podporu v registroch pre klientov
Blok kódu | ||||
---|---|---|---|---|
| ||||
HKEY_LOCAL_MACHINE\SOFTWARE\Ipesoft\<instalacia>\cfg_<aplikacia>\TLS_Client\TLS_TrustedCerts = c:\<cesta>\server.crt
HKEY_LOCAL_MACHINE\SOFTWARE\Ipesoft\<instalacia>\cfg_<aplikacia>\TLS_Client\TLS_RequiredLevel = <level> |
TLS_TrustedCerts: nastavenie serverového certifikátu - cesta k serverovému certifikátu. Je možné zadať aj viacero certifikátov oddelených bodkočiarkou (;). To je použiteľné pre redundantné systémy alebo v procese výmeny certifikátov, keď môže byť nakonfigurovaný starý aj nový serverový certifikát.
TLS_RequiredLevel: Nastavenie vyžadovanej úrovne zabezpečenia pripájajúceho sa klienta
...
:
- None - klient sa pripojí na kernel aj v prípade, že kernel podporuje zabezpečenú komunikáciu, aj v prípade, že nepodporuje
- TLSNoPeerAuth - klient sa pripojí len na kernel podporujúci zabezpečenú komunikáciu a je overiteľný certifikátom
- (ale nemusí byť overený certifikátom, t.j. neporovnáva sa certifikát so zoznamom TLS_TrustedCerts)
- TLSPeerAuth - klient sa pripojí len na kernel podporujúci zabezpečenú komunikáciu, ktorého certifikát je v zozname TLS_TrustedCerts
4.
...
Pre použitie TLS musí byť klient štartovaný okrem obvyklých parametrov (/S, /RD prípadne /RF) aj s parametrom /C<názov_aplikácie>
Dôvodom je, aby už pred pripojením sa k aplikačnému serveru vedel názov aplikácie a načítal parametre TLS z registrov (viď bod 3).
Alternatívou je nastavenie parametra DefaultApplication v registry.
Pozn: odporúčame nastavenie DefaultApplication v registry kvôli tomu, aby nebolo nutné zadávať parameter /C<názov_aplikácie> nielen vo všetkých skratkách na ploche, ale aj pri ručnom spúšťaní aplikácií.
Klient pripájajúci sa na server s použitím TLS to vypíše do logu. Ak je vyžadované aj overenie certifikátu a certifikát je korektne overený, v logu je slovo VERIFIED:
[2022-09-23 07:48:11.289]I CLIENT - Connecting to D2000 Server [localhost] TCP/IP|TLS...
[2022-09-23 07:48:11.348]I CLIENT - Connection established to D2000 Kernel V22.00.074 s380 [TCP/IP localhost:3119][TLSv1.3 VERIFIED]. ConnectionSqId = 1
Kernel pripájajúci klienta cez TLS takisto túto informáciu zapíše do logu:
[2022-09-23 07:48:10.598]I BACKEND - RegistrateProces request from DispPC.HIP V22.00.074 s380 [TCP/IP 127.0.0.1:50481][TLSv1.3]. ClientName: DispPC.HIP
[2022-09-23 07:48:10.600]I SERVER - RegistrateProces OK. ClientName: DispPC.HIP Id: 7652 ComputerName: PC1PHUM1v SAS: 0
Info | ||
---|---|---|
| ||
D2000 Server načítava konfiguráciu TLS pri každom pripájaní klienta, takže je možné zmeniť počas behu D2000 Servera konfiguráciu (včítane výmeny súborov s certifikátom a so súkromným kľúčom) bez reštartu D2000 Servera. |
Info | ||
---|---|---|
| ||
O nastavovaní TLS si môžete prečítať blog: |
Info | ||
---|---|---|
| ||
...