Windows Server: Zakázání TLS 1.0 a 1.1

Z pohledu zabezpečení webové aplikace Helpdesku (Requestor) doporučujeme provést jako součást nastavení serveru, kde je aplikace provozovaná, zakázání TLS 1.0 a 1.1, jelikož oba tyto protokoly jsou již zastaralé a nejsou považovány za bezpečné.

Webový server Microsoft IIS koncepčně neumožňuje tuto konfiguraci provádět, tu je potřeba provést přímo v operačním systému Windows pomocí editace registrů. Nestačí také pouze zakázat protokoly TLS 1.0 a 1.1, je potřeba také nastavit klientskou část .NET Frameworku, kterou aplikace Requestor využívá a v některých situacích sama odesílá klientské požadavky (např. při stahování emailů).

V případě umístění aplikace Requestor za reverzní proxy (např. nějaký typ externího load balanceru), na které tyto protokoly nejsou povolené, je nutné tuto konfiguraci provést i na serveru s aplikací, jinak bude docházet ke komplikacím a některé funkcionality aplikace přestanou korektně fungovat, viz výše uvedený příklad.

V tomto návodu je popsán postup konfigurace registrů Windows tak, aby došlo ke korektnímu zakázání TLS 1.0 a 1.1 a zároveň povolení silných šifer pro .NET Framework.

 

Zakázání TLS 1.0 a 1.1

Jelikož konfigurace probíhá v registrech Windows, je obecně doporučeno před započetím modifikací provést zálohu registrů, případně celého systému.

Následně spustíme editor registrů jako administrátor:

image-20240417-105927.png

Proklikáme se do následující lokace:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\

Postup je následující:

  • pravým tlačítkem klikneme na Protocols a vytvoříme nový klíč s názvem TLS 1.0

  • uvnitř tohoto nově vytvořeného klíče vytvoříme další dva klíče Client a Server

  • Uvnitř obou těchto klíčů vytvoříme novou hodnotu DWORD (32-bit) s názvem Enabled a hodnotou 0

Stejný postup je potřeba provést pro TLS 1.1:

  • pravým tlačítkem klikneme na Protocols a vytvoříme nový klíč s názvem TLS 1.1

  • uvnitř tohoto nově vytvořeného klíče vytvoříme další dva klíče Client a Server

  • Uvnitř obou těchto klíčů vytvoříme novou hodnotu DWORD (32-bit) s názvem Enabled a hodnotou 0

Výsledek by pak mohl vypadat například takto:

 

image-20240417-110034.png

Jakmile máme vše vytvořeno dle postupu výše, můžeme přistoupit ke druhé části - povolení silných šifer pro klientskou část .NET Frameworku.

Povolení silných šifer pro .NET Framework

V podobném duchu je i konfigurace klientské části .NET Frameworku, která má samostatné nastaveni a je nutné v ní povolit silné šifrování, jak je podrobněji popsáno v tomto návodu, pro zjednodušení zde přiložíme to, co je potřeba v registrech nastavit (týká se nás pouze verze 4):

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
      "SystemDefaultTlsVersions" = dword:00000001
      "SchUseStrongCrypto" = dword:00000001

Výsledek by tedy pak mohl vypadat například takto:

 

Restart serveru

Posledním krokem je restart serveru, což je nutný krok, aby se změny v registrech projevily. Po restartu serveru by mělo vše korektně fungovat a systém by měl využívat protokol TLS 1.2 a vyšší (např. Windows Server od verze 2022 podporuje již také TLS 1.3).

Test konfigurace

V případě, že je aplikace Requestor dostupná z internetu, je možné provést test zabezpečení SSL například pomocí SSL Labs, kde stačí zadat adresu aplikace a spustit test. Výsledek by měl pak vypadat cca takto:

 

A to včetně povolených (resp. zakázaných) protokolů: