HTTPS, TLS

HTTPS, TLS

SDS moduly řady 512 poskytují, je-li instalován aktuální firmware, komunikaci zabezpečeným šifrovaným protokolem TLS - což umožňuje provozovat HTTPS.

Prakticky se jedná o všechny typy modulů STSW-512 a zařízení BIG-512 a BIG2-512, se specifickým nainstalovaným firmware.

HTTPS je zabezpečený protokol HTTP, respektive se jedná o HTTP protokol přenášený přes zabezpečený tunel (TLS). Tím je zajištěno, že běžný útočník nemůže odposlouchávat komunikaci a nebo do ní vstupovat.


Implementované verze protokolu TLS

SDS podporuje protokol TLS 1.2 a protokol TLS 1.3 .

Volba TLS protokolu je vždy vyjednána s protistranou (klient, např. webový prohlížeč) a to vždy při každém novém spojení. SDS preferuje vždy tu nejvíce bezpečnou variantu, z nabízených možností - záleží pak na klientovi, jaké má schopnosti. Vyjednaný protokol pro dané spojení je možné z SDS zjistit (je to napsáno např. na úvodní přihlašovací (login) stránce).

Starší, méně bezpečné, protokoly, jako je TLS 1.1 nebo SSL atd. - jsou záměrně v SDS zakázány, protože jsou dnes nahrazeny právě uvedenými novými verzemi TLS. Pokud budete potřebovat, pro váš specifický systém, starší verzi, kontaktujte výrobce pro speciální variantu (ale musíte to dobře zdůvodnit).

V současné verzi FW je protokol TLS (HTTPS) vždy napevno provozován na TCP portu 443.

SDS podporuje tyto algoritmy:

  • RSA (1024 bitů a více)
  • ECC (192 bitů a více) - NIST 192, 224, 256, 384, 512
  • ECDHE + X25519
  • EdDSA ED25519
  • AES-128, AES-256
  • CHACHA20 POLY1305 (RFC 7593)
  • 3DES
  • SHA256, SHA384, SHA512, HKDF
  • SHA1 pouze pro certifikáty
  • MD5/SHA1 a MD5/HMAC pouze pro certifikáty

Pro TLS 1.3 podporuje SDS tyto kombinace:

  • TLS_AES_128_GCM_SHA256
  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA

TLS 1.3 v SDS podporuje funkci Session Resumption.

Pro TLS 1.2 podporuje SDS tyto kombinace:

  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • aktuálně vypnutá kombinace (v budoucnu možno zapnout): TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 dle RFC7905
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • aktuálně vypnutá kombinace (v budoucnu možno zapnout): TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 dle RFC7905
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
  • TLS_RSA_WITH_AES_128_CBC_SHA
  • TLS_RSA_WITH_AES_256_CBC_SHA
  • TLS_RSA_WITH_AES_128_CBC_SHA256
  • TLS_RSA_WITH_AES_256_CBC_SHA256
  • TLS_RSA_WITH_AES_128_GCM_SHA256
  • TLS_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
  • TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
  • TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
  • TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
  • TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384

Kombinace využívající PSK (Pre Shared Key) nejsou v SDS aktivovány (dle NIST SP 800-52 Rev1).

Server nevyužívá (a nemá aktivovánu) funkci ReHandshaking (RFC5748), zejména z důvodu nasazení TLS 1.3.

V případě, že se váš klient nebude umět spojit se TLS serverem v SDS, zkontrolujte, zda-li váš klient podporuje alespoň jeden z výše uvedených kombinací algoritmů !


Certifikát pro SERVER

SDS se chová jako webový SERVER, poskytující HTTPS.

Vy, jako správce svého zařízení SDS, si do zařízení musíte vložit svůj serverový certifikát a klíč.

Typicky získáte certifikát pro server v rámci své firemní / organizační PKI struktury. Pokud ji nemáte, můžete použít vlastní CA, nebo, v nouzi největší, jen self-signed certifikát.

Základem pro používání TLS je znalost způsobu jeho funkce a nasazení. Pokud to víte, tak jste schopni si získat i správný certifikát, a také se vyhnout všem překážkám.

Pozn. Server v SDS neprovádí Mutual Authentication, ovšem na zakázku je to možné aktivovat - běžný firmware to nemá z principu k dispozici. Potřebujete to jen v případě nejvíce přísných požadavků na bezpečnost, a potom už přesně víte o co jde a proč to chcete.


  • Formát souboru s certifikátem: PEM
  • Formát souboru s private klíčem: nešifrovaný PEM / KEY

Nahrání certifikátu se provádí přes webové rozhraní SDS, lze to tam poslat i "ručně" (např. z vašeho skriptu) přes HTTP(S) POST. Vždy se současně posíla certifikát a privátní klíč, tedy dva soubory. Součase se musí zadat heslo do systému SDS (uživatelské přístupové heslo), bez něj nejsou soubory akceptovány.

Soubory jsou uloženy do paměti DF, kde jsou šifrovány (AES). Klíč je unikátní pro každý jednotlivý výrobek SDS (takže např. fyzická výměna chipů DF mezi dvěma SDS nebude k užitku, druhé SDS to nerozšifruje, takže váš certifikát a privátní klíč je chráněn).

Aktuální instalovaný certifikát si lze prohlédnout ve webovém rozhraní modulu SDS. Hlídejte si dobu expirace instalovaného certifikátu !


Pozn.: SDS akceptuje (jako serverový certifikát) i certifikáty V1 (zastaralé).

SDS pro certifikáty X509 podporuje všechna konfigurační pole dle RFC5280. Pokud váš certifikát obsahuje další doplňující (EXTRA DN) položky, SDS je ignoruje.

SDS podporuje tyto formáty certifikátů:

  • PKCS#1 (včetně OAEP, PSS)
  • PKCS#5 (včetně PBKDF1)
  • PKCS#8
  • PKCS#12

SDS podporuje OCSP prostřednictvím TLS protokolu.

Pozn. CRL není v SDS aktivováno.


Certifikát se nahrává přes webové rozhraní, které k tomu účelu využívá HTTP(s) POST. Pokud chcete realizovat vlastní OEM způsob nahrání certifikátu do SDS, použijte stejný postup. Popis protokolu (payload přes POST) je k dispozici (lze se také podívat, co a jak odesílá webové rozhraní SDS, a jaké kontroly tam provádí klientská strana). SDS vždy provádí řadu server-side kontrol, a pokud nejsou nahrané certifikáty v pořádku, nejsou použity (není aktivováno TLS). Stav lze vždy ověřit ve webovém rozhraní (včetně výpisu základních položek z instalovaného certifikátu).


Self-Signed Certifikát pro Server v SDS

Po dobu vývoje je obvykle dostačující použít self-signed certifikát, tedy certifikát pro server, který není součástí PKI stromu.

Všichni, kdo s nasazování TLS začínají, obvykle začnou právě u tohoto typu certifikátu, protože je to nejrychlejší cesta (ale také málo bezpečná), jak se posunout vpřed a TLS aktivovat. Samozřejmě pro produkční nasazení je už velmi vhodný a doporučený certifikát z PKI stromu atd.

Návod pro vytvoření a instalaci je zde: HTTPS, TLS: self-signed certificate for SDS


Server v SDS a přístupový filter dle IP adresy

Server poskytuje současně jak komunikaci přes HTTP (typicky TCP port 80) tak současně komunikaci přes HTTPS (typicky TCP port 443).

V rámci administrace zařízení můžete následně HTTP vypnout, a ponechat jen HTTPS - je potřeba aktivovat příslušný checkbox v nastavení (ve webové administraci SDS). Pokud je SDS schopno TLS provozu, pak lze SDS vnutit pouze HTTPS provoz. V okamžiku, kdy SDS není schopno TLS provozu, je povolen i původní HTTP protokol.

Aktuální firmware má implementován tzv. IP filter. Jeho konfigurace je v současné verzi FW uživatelsky neměnitelná, ale to se v budoucnu změní.

V současné době je IP filter nastaven tak, že protokol HTTPS je povolen ze všech IP adres (rozsah 255.255.255.255/0), zatímco HTTP protokol jen z lokální sítě (záleží na statické konfiguraci, nebo na tom co SDS dostalo přiděleno od DHCP).

Úplný výpis nastavení IP filtru je k dispozici na webových stránkách administrace SDS.


Vynucení HTTPS pro webový server SDS

V konfiguraci SDS (webová administrace) lze zapnout povolení komunikace, pro webový server SDS, jen přes HTTPS protokol (tedy všechny požadavky na HTTP budou odmítnuty - pomocí TCP RST).

Pokud je aktivní RSTD, tato funkce je (po dobu aktivity RSTD) vyřazena z činnosti.


Platný čas v zařízení SDS

Z principu funkce TLS je vyžadován platný skutečný čas v zařízení SDS, tedy zařízení SDS musí mít k dispozici aktuální čas buď z NTP serveru, nebo ručně dodaný (zápisem do RTC).


Informace

Stránka je ve výstavbě, detaily jsou postupně vyplňovány.