Jednoduchost, rychlost a bezpečnost
Vývoj v internetovém světě je velmi rychlý a velmi rychle se také mění nároky. Stále více informací získáváme a sdílíme přes internet a stále více komunikace putuje z našich mobilních telefonů. Není tedy divu, že bylo snahou komunikaci lépe zabezpečit, ale také zrychlit. Na předchozí verze TLS či SSL, jejich implementace a použité šifry bylo zveřejněno mnoho útoků, z nichž většina se může chlubit pěknými názvy, jako jsou například HeartBleed, POODLE, SWEET32, WeakDH a další. Z těch všech se komunita snažila poučit při návrhu nového protokolu.
Nová verze TLS přináší z hlediska bezpečnosti samé výhody, a proto doporučujeme ji začít podporovat co nejdříve. Pochopitelně bude ještě dlouhou dobu potřeba podporovat i starší verze TLS, doporučujeme během změn konfigurace rovnou prověřit nastavení i starších verzí. U mnoha produktů si na podporu TLS 1.3 pravděpodobně ještě nějakou dobu počkáme, neboť vývojáři čekali na finální verzi standardu a s implementací a testováním jsou teprve na začátku. Sledujte proto změny v používaném software a updatujte.
Podpora
Vývoj probíhal mnoho let a drafty byly průběžně zveřejňovány, takže ačkoli je finální verze TLS 1.3 na světě teprve v řádu dní, již existují produkty, které ji podporují. Z pohledu běžného uživatele je nejzásadnější otázka, do jaké míry je TLS 1.3 podporováno v prohlížečích. V době psaní tohoto článku byla podpora v prohlížečích Mozilla Firefox, Google Chrome (PC i mobilní verzi) a Samsung Internet. Rychlý aktuální přehled pak lze získat na stránce https://caniuse.com/#feat=tls1-3. Naopak prohlížeče Internet Explorer, Edge nebo Safari novinku zatím nepodporují. Nezbývá než doufat, že se do implementace (či zveřejnění) vrhnou nyní s vydáním finální verze. Zmiňme ještě, že například Google Chrome nové TLS sice podporuje, nicméně tato podpora není ve výchozí konfiguraci zapnutá a je třeba ji povolit manuálně.
Podíváme-li se na podporu z druhé strany, je dobrou zprávou, že TLS 1.3 je podporováno ve velmi rozšířené knihovně OpenSSL a kromě toho také knihovnou GnuTLS či wolfSSL. Průběžně aktualizovaný seznam implementací je dostupný na githubu: https://github.com/tlswg/tls13-spec/wiki/Implementations.
Problémy
Kromě čistě technických problémů bude potřeba řešit také problémy vyplývající ze samotného bezpečnějšího návrhu nového protokolu. S cílem snížit množství dat, které jsou posílány v čitelné podobě, se nyní předává certifikát serveru šifrovaně. Není tedy možné ho nadále kontrolovat při pouhém pasivním sledování komunikace. Ovšem blokování webových stránek na základě kontroly certifikátu a porovnání se seznamem povolených či zakázaných URL je ve velkých společnostech běžná praxe. Pro kontrolu certifikát bude nyní třeba aktivně vstoupit do komunikace. Přičemž jakmile do ní zařízení vstoupí, není již možnost vrátit se do pozice pasivního pozorovatele. Může to znamenat, že bude v budoucnu potřeba aktivně dešifrovat a sledovat každé spojení po celou jeho dobu.
Všechny tyto problémy jsou výzvou především pro výrobce síťových prvků monitorujících komunikaci a jejich zákazníkům nezbývá, než čekat, jak se s novou situací vypořádají.
Zásadní změny
Bezpečnější handshake
Při využívání TLS jsou využívány oba druhy kryptografie, jak asymetrická, tak symetrická. Symetrické šifry jsou pro svou rychlost využívány pro šifrování samotných dat, asymetrické šifry jsou pak využity pro výměnu klíčů pro symetrické šifry.
Pro výměnu klíčů již není možné využít algoritmus RSA, ale pouze Diffie-Hellmanův (DH) algoritmus s možností vybrat si pouze z několika pevně daných parametrů, které jsou aktuálně považovány za bezpečné. RSA bylo vyřazeno z důvodu zajištění forward secrecy, česky takzvané „dopředné bezpečnosti“, díky čemuž je zajištěno, že prozrazení asymetrického soukromého klíče použitého při jednom spojení neumožní dešifrovat starší komunikaci. Co se týče DH algoritmu, do teď bylo možné během domluvy vybrat libovolné parametry. Ovšem jak to (nejen) v kryptografii bývá, příliš mnoho volnosti vede často ke špatným volbám, proto jsou parametry nyní pevně dané a nebylo ponecháno příliš prostoru pro výběr. Tato opatření byla inspirována útoky Logjam a WeakDH. Prevence downgrade útoků
Některé útoky na předchozí verze TLS využívaly faktu, že úvodní komunikace, během které se klient se serverem domlouvají na šifrách, které budou používat, nebyly nijak šifrované, ani podepsané a mohly proto být modifikovány útočníkem v pozici Man in the Middle. Ten typicky nechal klienta se serverem použít slabé šifry se známými zranitelnostmi, díky čemuž mohl následnou komunikaci dešifrovat. Tomu je nyní zabráněno tím, že během inicializace server podepisuje celý handshake, včetně domluvy šifer. Příkladem útoku využívající downgrade byl například POODLE ("Padding Oracle On Downgraded Legacy Encryption").
Zkrácení handshaku
Tím, že se značně snížily možnosti algoritmů a parametrů pro asymetrickou výměnu klíče, je možné již v prvním požadavku, společně s "Client Hello" poslat zvolené parametry a klientskou část pro domluvu na sdíleném tajemství. Díky tomu bylo možné vynechat jednu výměnu zpráv v úvodním handshaku a snížit tak počet zpráv nutných pro domluvení sdíleného klíče a tím pádem i potřebný čas.
Omezení symetrických šifer
Jak už bylo zmiňováno, někdy méně je více a v duchu tohoto hesla byly vybírány také šifry, které budou podporované pro symetrické šifrování. Mnoho nedostatků SSL vrstvy jednotlivých webů spočívalo v tom, že byly v nastavení povolené parametry, které již nejsou považovány v dnešní době za bezpečné. Vyřazeny tak byly blokové šifry v CBC módu, bloková šifra DES, hashovací funkce SHA1, proudová šifra RC4 a další. Z nepřeberného množství možností (jejichž výčet můžete najít například zde) pak zůstalo pouhých pět:
- TLS_AES_128_GCM_SHA256
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
- TLS_AES_128_CCM_SHA256
- TLS_AES_128_CCM_8_SHA256
Další zdroje
- Oficiální RFC: https://tools.ietf.org/html/rfc8446#section-4
- Rozsáhlý článek na webu Cloudflare: https://blog.cloudflare.com/rfc-8446-aka-tls-1-3/
- Info z OpenSSL: https://wiki.openssl.org/index.php/TLS1.3#Current_status_of_the_TLSv1.3_standard
Zda se vám zobrazí stránka přes TLS 1.3, si pak můžete vyzkoušet například na https://tls13.crypto.mozilla.org/.
NEVÁHEJTE, KONTAKTUJTE NÁS.
Máte zájem o další informace nebo o nabídku pro vaši konkrétní situaci?
BUĎTE U TOHO
Přihlaste se k odběru našich newsletterů, ať vám nic podstatného neuteče.