Úvod
TLS (Transport Layer Security) a SSL (Secure Sockets Layer) jsou často zmiňovány, když se mluví o zabezpečení internetu a webových stránek. Aby to bylo pro laiky ještě více matoucí, tyto termíny se často používají zaměnitelně.
Jak ale TLS a SSL ve skutečnosti fungují a existují nějaké rozdíly, o kterých byste si měli být vědomi?
V tomto kurzu vysvětlíme bezpečnostní protokoly TLS a SSL, rozdíly mezi nimi a který z nich byste měli použít.
TLS vs SSL
TLS i SSL fungují jako kryptografické protokoly, které se používají k šifrování dat mezi webovým serverem a uživateli.
Původní verze SSL byla vyvinuta společností Netscape v roce 1994, ale nikdy nebyla oficiálně vydána kvůli snadno zneužitelným bezpečnostním chybám. Upgradovaná verze 2.0 byla vydána v únoru 1995, ale měla sama o sobě vážné nedostatky, které byly opraveny SSL 3.0 až o rok později.
TLS byl koncipován společností Consensus Development jako upgrade SSL 3.0. Byl vydán v roce 1999 a v roce 2006 bude nahrazen TLS 1.1, který přidal ochranu proti CBC (Cipher Block Chaining). V roce 2008 přidal TLS 1.2 další sadu upgradů, přičemž nejnovější verzí je TLS 1.3, vydaná v roce 2018.
I když jsou TLS a SSL v zásadě podobné, vzhledem k tomu, že TLS 1.0 bylo založeno na SSL 3.0, stále existují rozdíly ve způsobu, jakým fungují:
SSL | TLS | |
---|---|---|
Cipher Suites | Nabízí podporu pro šifrovací sadu Fortezza. | Nabízí podporu pro RC4, Triple DES, AES, IDEA. |
Výstražné zprávy | Výstražná zpráva „Žádný certifikát“. | Různé výstražné zprávy v závislosti na situaci. |
Protokol záznamu | Používá MAC (kód pro ověření zprávy). | Používá HMAC (Hash-Based Message Authentication Code). |
Proces handshake | Výpočet hash zahrnuje hlavní tajný klíč a blok. | Haše se počítají přes zprávu handshake. |
Ověření zprávy | Ad-hoc metoda připojování klíčových detailů a dat aplikace. | Připojení klíčových podrobností a dat aplikace prostřednictvím HMAC. |
Záležitost podání ruky
„Podání ruky“ označuje část komunikačního procesu mezi webovým serverem a uživatelem, která naváže zabezpečené připojení a určuje, jaký typ šifrování se použije.
Obecně řečeno, proces navázání spojení SSL i TLS probíhá podle následujících kroků:
1.Systém koncového uživatele požaduje zabezpečené připojení a obdrží ze serveru seznam šifrovacích obleků, sad algoritmických nástrojů používaných k šifrování dat. Systém to porovná se svým vlastním seznamem šifrovacích obleků a vybere takový, který může použít on i server.
2. Sever poskytuje digitální certifikát jako doklad totožnosti. Zařízení uživatele obdrží certifikát a potvrdí jeho pravost.
3. Pomocí veřejného klíče serveru se systém koncového uživatele a server dohodnou na klíči relace používají k šifrování dat.
Poznámka: Jak název napovídá, klíč relace se používá pouze pro jednu komunikační relaci. Pokud se spojení mezi uživatelem a serverem z jakéhokoli důvodu přeruší, po obnovení komunikace se vytvoří nový klíč relace.
Při provádění handshake používá SSL k navázání spojení port (ve výchozím nastavení je to port 443). Na druhé straně TLS zahájí první krok handshake (požadující zabezpečené připojení) přes nezabezpečený kanál a přepne na port 443, jakmile handshake začne.
Jak TLS a SSL fungují k zabezpečení dat?
Jak jsme uvedli výše, proces handshake zahrnuje, že server odešle digitální certifikát a veřejný klíč do systému koncového uživatele, aby navázal zabezpečené spojení. Instalace certifikátu SSL/TLS ověřuje webový server a poskytuje veřejné a soukromé klíče, které se používají během handshake.
Bez certifikátu obdrží uživatel, který se pokouší o přístup k webovému serveru, „vaše připojení není soukromé“ chybové hlášení. To signalizuje uživateli, že jeho data mohou být prozrazena a pravděpodobně způsobí, že opustí váš web.
Měli byste používat TLS nebo SSL?
V dnešní době jsou SSL i starší verze TLS považovány za zastaralé. SSL 2.0 a 3.0 byly ukončeny IETF v roce 2015, zatímco TLS 1.0 a 1.1 byly ukončeny počátkem roku 2020 a v současné době jsou odstraňovány z nových verzí prohlížečů.
Při výběru mezi těmito dvěma je TLS jasnou volbou. Neslouží pouze jako upgrade na SSL, ale také funguje mnohem lépe.
Poznámka: Novější verze webových prohlížečů přestaly podporovat SSL a vybízejí vlastníky webových stránek k přechodu na TLS. Google Chrome například začal zobrazovat ERR_SSL_OBSOLETE_VERSION varování na webech, které stále používají SSL.
Jak zkontrolovat, který protokol TLS/SSL je povolen?
Pokud si nejste jisti, zda webový server používá zastaralou verzi TLS/SSL, můžete to rychle zkontrolovat pomocí webového prohlížeče.
V prohlížeči Google Chrome a Microsoft Edge klikněte pravým tlačítkem na prázdnou oblast webové stránky a klikněte na Prozkoumat . V části Kontrola v okně Zabezpečení vyhledejte přehled digitálního certifikátu webu.
V prohlížeči Firefox klikněte pravým tlačítkem na stránku a klikněte na Zobrazit informace o stránce . Podrobnosti o digitálním certifikátu naleznete v části Zabezpečení kartu.
Případně použijte online nástroj pro kontrolu TLS/SSL.
Jak deaktivovat starší verze TLS a SSL?
TLS 1.3 je nejnovější a nejbezpečnější kryptografický protokol používaný k navázání bezpečné komunikace mezi systémem uživatele a webovým serverem. Zastaralé verze TLS a SSL představují bezpečnostní riziko kvůli chybám zabezpečení. Z bezpečnostních důvodů deaktivujte SSL verze 2 a 3 a TLS verze 1.0 a 1.1 na živých serverech.
Jedinými povolenými protokoly na webovém serveru by měly být TLS 1.2 a TLS 1.3.
Postup deaktivace SSL 2.0 nebo 3.0 nebo TLS 1.0 závisí na tom, zda server používá Apache, NGINX nebo Tomcat.
Apache
Chcete-li zakázat SSL 2 a 3 a TLS 1.0 a 1.1 na serveru Apache, postupujte podle následujících kroků.
1. Najděte konfigurační soubor Apache. Výchozí umístění souboru závisí na vašem systému:
- Na systémech založených na Debian/Ubuntu je výchozí umístění souboru
/etc/apache2/apache2.conf
- Na systémech založených na Debian/Ubuntu konfigurovaných ve virtuálním hostiteli je výchozí umístění souboru
/etc/apache2/sites-enabled/
- V systémech založených na Red Hat/CentOS je výchozí umístění souboru
/etc/httpd/conf/httpd.conf
- Na systémech založených na Red Hat/CentOS konfigurovaných ve virtuálním hostiteli je výchozí umístění souboru
/etc/httpd/sites-enabled/
2. Otevřete konfigurační soubor a vyhledejte SSLProtocol
vstup.
3. Upravte záznam a deaktivujte SSL 2.0, SSL 3.0, TLS 1.0 a TLS 1.1:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
4. Restartujte službu Apache, aby se změny projevily:
service apache2 restart
nebo
service httpd restart
Poznámka: V závislosti na konfiguraci vašeho serveru může být nutné provést tyto změny na více místech, nejen ve výchozím konfiguračním souboru.
NGINX
Chcete-li zakázat SSL 2 a 3 a TLS 1.0 a 1.1 na serveru NGINX, postupujte podle následujících kroků.
1. Najděte konfigurační soubor NGINX. Výchozí umístění globálního konfiguračního souboru je /etc/nginx/nginx.conf
, ale mohou existovat jednotlivé konfigurace bloků serveru v /etc/nginx/sites-enabled/
.
2. Upravte konfigurační soubor, abyste povolili TLS 1.2:
ssl_protocols TLSv1.2;
3. Restartujte službu NGINX:
service nginx restart
Poznámka: Přečtěte si, jak nainstalovat certifikát SSL na NGINX.
Kocourek
Chcete-li zakázat SSL 2 a 3 a TLS 1.0 a 1.1 na serveru Tomcat, postupujte podle následujících kroků.
1. Najděte konfigurační soubor Tomcat. Výchozí umístění je TOMCAT_HOME/conf/server.xml
.
2. Upravte konfigurační soubor, abyste povolili TLS 1.2.
- Pro Tomcat 5 a 6 (před 6.0.38):
sslProtocols = "TLSv1.2"
- Pro Tomcat 6 a 7 (6.0.38 nebo novější) upravte následující řádek:
sslEnabledProtocols = "TLSv1.2"
3. Restartujte službu Tomcat, aby se změny projevily.