Jak vylepšit zabezpečení SSL certifikátem?

20. srpna 2015

Když na váš server nastavíte SSL certifikát, tak začnete chránit návštěvníky proti odposlechu. SSL certifikát je ale pouze nástroj zabezpečení a je na vás, jak dobře ho budete používat. Výchozí nastavení žádného virtuálního serveru není dostatečně bezpečné a je nutné ho nastavit správně. Pro vysokou míru bezpečnosti a stav, kdy bude certifikát využit účelně a web bude skutečně bezpečný, je třeba provést několik nastavení.

Jako referenci pro správnost nastavení použijeme největší autoritu v této oblasti, kterou je Qualys a test SSL Labs. Je vytvořen odborníky a v současnosti nejuznávanějším nástrojem pro kontrolu nastavení SSL certifikátu na serveru.

Změna výchozího nastavení a náprava nedostatků

Tato výchozí konfigurace, kterou používá Debian, je pouze na známku C:

  • zapnuto SSLv3 (není bezpečné a má být vypnuto)
  • zapnutá RC4 šifra (šifra je prokazatelně slabá a zneužitelná)
  • nepodporuje Forward Secrecy (znemožní jakékoliv pozdější dešifrování zachycené komunikace)

Pojďme tedy tyto nedostatky napravit.

Vypnutí SSLv3 se provede v nastavení ssl.conf pro celý server:
Editujte /etc/apache2/mods-available/ssl.conf a přidejte položku
SSLProtocol all -SSLv2 -SSLv3.

Vypnutí RC4 šifry provedete připsáním vykřičníku do seznamu šifer tamtéž:
SSLCipherSuite … !RC4

Forward Secrecy zabraňuje kompromitaci komunikace, i kdyby útočník získal privátní klíč později. Díky Diffie-Hellmanově výměně klíčů je komunikace nerozluštitelná i v budoucnu. Předpokladem pro funkční Forward Secrecy jsou dva Diffie-Hellman algoritmy pro výměnu klíčů DHE a ECDHE.

Forward Secrecy zapnete tak, že zapnete řazení šifer a sady šifer s DH dáte dopředu (upřednostníte jejich použití zařazením na začátek).

Editujte opět /etc/apache2/mods-available/ssl.conf:

SSLHonorCipherOrder on

SSLCipherSuite „EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS“

Tím jsou hlavní problémy napraveny. Můžete však v nastavení pokračovat dále.

Pokročilé bezpečnostní nastavení

Pro silné zabezpečení potřebujete vygenerovat tzv. Parametry pro DH výměnu klíčů. Silné DH parametry jsou mimo jiné řešení zranitelnosti zvané Logjam.

Generování DH parametrů proveďte v Openssl:
openssl dhparam -rand – 4096

Výsledek bude chvíli trvat (zvýšená zátěž serveru) a bude vypadat takto (obsah souboru dhparam):

—–BEGIN DH PARAMETERS—–
MIICCAKCAgEA9yJdHbC89LRTPVSAT1Lmik4SNed0z2uUiW86rFQ5dNl7J5O5t8kY
OMpTwCSyHAUyGJEhpJ29HCVX1LRd1Ue5L7jFuGUinrumYPagDBMsUCb/XPIV2RT/
9iRzc29Vo/8+UGpVkuD2cptp5qGLSDJr2L0kyNaGvFVdA5kLZ2b2fmUt2DtNAnWl
Wx6HaMU8rhgnu5g8NbORn0KgSaAretHOJGfIfrJ4rDQrMGoVfHl6caRfB28Wrjq7
XzcZhY2X1AuyONmrDTdtgpfPyJ5/TuaLGt8t2oCmL166DvVhU2xpFh7aGdNq+7YV
VPkuT4XqoNOaffKL6MT9h8z28yKpwzA8gwRaQAuajdBdoyFvZ9Yo7HbH1FdjBfpx
EraAkJvVZ4LOOA2NlfcBcapz14rmJ9J+wTjjlbHJv4jibsDu96W5jiKhdFogEoid
BlI1YCzZah7+Yet8eHNuxgCH4hziU0iMLeN+zuMnn8QpIYBd6ncuogAQjByE+7Ms
+gTKSum6F6svkeL3h0G3M9r3wZRRmAkVopl0j+qRPfqjkVyd60oIaGdhD/xN3xm6
U4DGQVnA9/lYPbalbV4UuXbZp6GEIWOkLZKSMlJijgFrXC6P8mV0mNslZG87r21H
wmqC3o0ubxKjSYjQGrO4e7RZo3x61qDI16WefV3Ouq6Z07F2GYKLhyMCAQI=
—–END DH PARAMETERS—–

Tyto DH parametry uložte na konec souboru s certifikátem, který je ve složce /etc/ssl/domena.cz/certifikat.pem. Provedete to například příkazem cat /cesta/dhparam >> /etc/ssl/domena.cz/certifikat.pem.

Apache ve verzi 2.4 a vyšší je začne automaticky používat, což se projeví ve vyšší bezpečnosti výměny klíčů a zamezí zneužití zranitelnosti Logjam.

Získání bonusového plus a známky A+

Bezpečnost použití certifikátu a hodnocení v testu SSLlabs můžete ještě zvýšit použitím HTTP Strict Transport Security (HSTS).

HSTS vylepšuje bezpečnost návštěvníkova spojení se serverem, protože nedovolí komunikovat jiným protokolem, než je HTTPS. Nedovolí útočníkovi snížit úroveň šifrování (downgrade útok), ani použít nešifrované HTTP. Více o HSTS najdete v článku české Wikipedie HTTP Strict Transport Security.

HSTS jednoduše řečeno znamená. že se na webu se používá pouze protokol HTTPS a nikoliv už nezabezpečené HTTP.
Upravte konfigurační soubor Apache (/etc/apache2/sites-enabled/website.conf) a přidejte následující řádek k VirtualHostu:
Header always set Strict-Transport-Security „max-age=31536000; includeSubDomain
[…]

Předpokladem fungování je zapnutí headers (sudo a2enmod headers). Po nastavení Apache restartujte.
Po nastavení HSTS je nutné web přesměrovat na HTTPS. Toho můžete dosáhnout pomocí přesměrování:
[…] ServerName example.com
Redirect permanent / https://example.com/

nebo pomocí modrewrite
[…]

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Nakonec proveďte reload Apache.

Pro instalaci SSL certifikátu jsme zvolili výkonné virtuální servery do 55 sekund od ZonerCloud.cz

ZonerCloud

Štítky: SSL

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *