Transport Layer Security ( TLS ) nebo „Bezpečnost transportní vrstvy“ a jeho předchůdce Secure Sockets Layer ( SSL ) nebo „vrstvy zásuvky bezpečné“ jsou protokoly zabezpečení obchodních transakcí počítačovými sítěmi , včetně internetu . Protokol SSL byl původně vyvinut společností Netscape Communications Corporation pro jeho prohlížeč. Standardizační orgán IETF jej nadále vyvíjel a přejmenovával jej na Transport Layer Security (TLS) . Někdy mluvíme o SSL / TLS, abychom označili lhostejně SSL nebo TLS .
TLS (nebo SSL ) pracuje na módní klient-server . Splňuje následující bezpečnostní cíle:
Protokol je široce používán a jeho implementaci usnadňuje skutečnost, že protokoly aplikační vrstvy, jako je HTTP , nemusí být drasticky upravovány tak, aby používaly zabezpečené připojení, ale implementovány pouze nad ním. SSL / TLS , který pro HTTP dalo protokolu HTTPS .
Speciální pracovní skupina IETF umožnila vytvoření TLS a jeho ekvivalentu nepřipojeného režimu UDP , DTLS . Od převzetí IETF prošel protokol TLS čtyřmi verzemi: TLS v1.0 v roce 1999, TLS v1.1 v roce 2006, TLS v1.2 v roce 2008 a TLS v1.3 v roce 2018.
Jak rostl internet , stále více komerčních společností začalo nabízet online nakupování pro jednotlivce. Nabídka neustále rostla, ale výnosy z elektronického obchodování zůstaly skromné, dokud zákazníci neměli dostatečnou důvěru v platby kreditní kartou. Jedním ze způsobů, jak tuto platbu zabezpečit, bylo použití ověřovacích a šifrovacích protokolů, jako je SSL. Šifrovaná relace se používá k zabránění třetí straně v zachycení citlivých dat procházejících sítí: číslo karty při platbě bankovní kartou , heslo, když se uživatel identifikuje na webu atd.
U systému SSL se výrazně zlepšilo zabezpečení a výrazně se snížilo riziko pro zákazníka ve srovnání s dobami, kdy internetová platba byla stále nově vznikající technologií. Ačkoli jako každý šifrovací systém nemůže být SSL / TLS nikdy zcela spolehlivý, velký počet bank a webů elektronického obchodování, které jej používají k ochraně transakcí svých zákazníků, lze považovat za důkaz jeho odolnosti. Škodlivé útoky.
Od roku 2009 používá protokol TLS většina webových serverů . Uživatel internetu může rozpoznat, že transakce je šifrována několika znaky:
První verze SSL vydaná, SSL 2.0, měla řadu bezpečnostních nedostatků, včetně možnosti vynutit použití slabších šifrovacích algoritmů nebo nedostatečné ochrany pro handshake a komunikaci. Možnost útočníka provádět zkrácené útoky. Protokoly PCT 1.0, poté SSL 3.0, byly vyvinuty k vyřešení hlavní části těchto problémů, druhý se rychle stal nejpopulárnějším protokolem pro zabezpečení výměn na internetu.
TLS se strukturálně neliší od verze 3 protokolu SSL, ale změny v použití hashovacích funkcí znamenají, že tyto dva protokoly nejsou přímo interoperabilní. Avšak TLS, stejně jako SSLv3, obsahuje mechanismus zpětné kompatibility s předchozími verzemi, tj. Na začátku fáze vyjednávání klient a server vyjednají „nejlepší“ verzi protokolu, která je k dispozici všem. Z bezpečnostních důvodů, podrobně popsaných v dokumentu RFC 6176 publikovaném v roce 2011, je upuštěno od kompatibility TLS s verzí 2 protokolu SSL.
Generování symetrických klíčů je v TLS o něco bezpečnější než v SSLv3, pokud se žádný krok algoritmu nespoléhá pouze na MD5, u kterého se objevily slabiny v kryptanalýze .
První profesionální verzí TLS 1.3 je wolfSSL , která byla vydána v květnu 2017.
Moderní průmyslové sítě pracující v TCP / IP stále častěji používají zabezpečení TLS. Proto protokoly pro řízení a ovládání elektrických sítí, jako jsou IEC-61850, IEC-60870 a DNP3, kombinují TLS k ochraně před kybernetickými útoky.
Většina prohlížečů jsou také klienty TLS. Webové prohlížeče podporující ve výchozím nastavení nejnovější verzi TLS 1.2 jsou:
Hlavní vývojáři webových prohlížečů oznámili, že s podporou protokolu TLS 1.1 a starších verzí skončí na jaře 2020.
HTTPS Everywhere je rozšíření pro webový prohlížeč, které umožňuje rozšířit používání SSL / TLS na určitých webech. Umožňuje šifrování na stránkách, kde je normálně zakázáno. To samozřejmě může fungovat, pouze pokud daný web již podporuje TLS. Rozšíření je od roku 2010 společně udržováno projektem Tor a EFF .
Ve většině případů uživatel ověří server TLS, ke kterému se připojuje. Tohoto ověření je dosaženo použitím digitálního certifikátu X.509 vydaného certifikační autoritou (CA). Webové aplikace mohou používat ověřování klientských pracovních stanic pomocí protokolu TLS. Potom je možné nabídnout vzájemné ověřování mezi klientem a serverem. Certifikát klienta může být uložen v softwarovém formátu na klientské pracovní stanici nebo dodán hardwarovým zařízením ( čipová karta , USB token). Toto řešení umožňuje nabídnout silné ověřovací mechanismy .
Když se uživatel přihlásí na web, který používá TLSv1.2 (nebo nižší), proběhnou následující kroky:
Volitelné: Pokud server také vyžaduje ověření klienta, odešle mu klient vlastní certifikát spolu s klíčem relace. Server poté pokračuje podle bodu 3, aby ověřil, zda je certifikát klienta platný.
Od TLSv1.3 musí být výměna klíče relace provedena pomocí Diffie-Hellman s eliptickými křivkami ( ECDHE ): RSA již nelze použít.
V roce 2001 objevil Serge Vaudenay útok pomocného kanálu proti SSL. V důsledku standardní aktualizace je tento útok nyní zcela zastaralý a již jej nelze použít. Tento útok využil špatné implementace výplně, která byla použita, když byly vstupy proměnné velikosti. Režim šifrování CBC ( Cipher Block řetězení ) je rozdělit dat do více bloků stejné velikosti, a šifrování zřetězené způsobem (předchozí výsledek se použije v následujícím šifrování). Útok Vaudenay využil doby odezvy serverů v případě chyb během plnění. S trochou štěstí bylo možné zjistit poslední odeslaná data a načíst je. Útok byl však při šifrování typu RC4 neúčinný a platil pouze za určitých podmínek. Navzdory všemu byl úspěšně použit proti určitým „webovým e-mailům“, které několikrát odeslaly stejná data .
V březnu 2014 byla v knihovně OpenSSL objevena chyba zabezpečení : Heartbleed , která byla zavedena omylem v aktualizaci OpenSSL provedené o dva roky dříve. Tato chyba byla široce medializována, a to i v obecných médiích, protože červ Miluji tě byl zejména v roce 2000.
15. října 2014 zjistil výzkumný tým společnosti Google chybu v návrhu protokolu SSLv3, který umožňoval dešifrování obsahu. Tento útok byl pojmenován POODLE pro Padding Oracle On Downgraded Legacy . Je přítomen pouze v SSLv3.
2. března 2016 vědci podrobně popsali chybu zvanou DROWN . Spočívá v použití staré verze SSL v2 k dešifrování technologie TLS v1.2.
Cílem protokolu DANE je opravit určité slabiny v TLS, zejména u útoků typu MIMT .
7 - aplikační vrstva | HTTP , SMTP , FTP , SSH , IRC , SNMP , SIP ... |
6 - prezentační vrstva | |
5 - relační vrstva | TLS, SSL, SSH-uživatel , NetBIOS |
4 - transportní vrstva | TCP , UDP , SCTP , RTP , DCCP ... |
3 - síťová vrstva | IPv4 , IPv6 , ARP , IPX ... |
2 - spojovací vrstva | Ethernet , 802.11 WiFi , Token ring , FDDI , ... |
1 - fyzická vrstva | Kabel, optické vlákno , rádiové vlny ... |
V zásobníku protokolu TCP / IP sedí SSL mezi aplikační vrstvou (jako HTTP , FTP , SMTP atd.) A transportní vrstvou TCP .
Jeho nejběžnější použití však zůstává pod HTTP. SSL je implementováno relační vrstvou zásobníku, což má dva důsledky:
Ověřování serverů a klientů lze provádět pomocí elektronických certifikátů nebo prostřednictvím předem sdílených tajemství (nebo předsdíleného klíče) . Ověření je volitelné.
Zprávy vyměňované prostřednictvím protokolu TLS se nazývají záznamy. Tyto zprávy jsou obvykle zapouzdřeny v datagramech TCP. Varianta na UDP existuje a nazývá se DTLS . Existují čtyři typy záznamů:
Zabezpečení je na jedné straně dosaženo asymetrickým šifrováním , jako je šifrování RSA , které po ověření veřejného klíče serveru umožňuje vytvoření tajného klíče sdíleného mezi klientem a serverem, na druhé straně symetrickým šifrováním (mnohem rychlejší než asymetrické šifry), jako je AES , který se používá ve fázi výměny dat, přičemž symetrické šifrovací klíče se počítají ze sdíleného tajemství. Hashovací funkce , jako je například SHA-1 , se používá také, mimo jiné, s cílem zajistit integritu dat a autentizaci (například prostřednictvím HMAC ).
Přesněji řečeno, aplikační datové zprávy jsou šifrovány pomocí šifrovacího klíče a symetrického šifrovacího algoritmu bloku, jako je AES 128, nebo na stream, jako je CHACHA20 . Jsou ověřovány buď prostřednictvím funkce HMAC, nebo přímo prostřednictvím provozního režimu symetrické blokové šifry.
Šifrovací klíče a klíče HMAC jsou generovány z tajného klíče vyměňovaného mezi dvěma vrstevníky ( tajný kód před master) , náhodných dat vyměňovaných během fáze handshake a použití funkce odvození klíče založené na HMAC. Tuto tajnou výměnu lze ověřit (nebo ne) pomocí algoritmu digitálního podpisu , jako je DSA nebo algoritmus RSA.
Celkem existuje pět typů kryptografických klíčů použitých během relace TLS:
Použité kryptografické sady mají následující formát:
kde KE označuje algoritmus tajné výměny, CIPHER symetrický šifrovací algoritmus a HASH hashovací funkci . Funkce HMAC je odvozena z funkce hash.
Například kryptografická sada TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 naznačuje, že peer může používat algoritmus výměny klíčů Ephemeral Diffie-Hellman na eliptické křivky ověřené podpisovým algoritmem ECDSA , symetrický šifrovací algoritmus AES 128 v režimu GCM a SHA25.
Ve verzi 1.2 může být algoritmus tajné výměny RSA nebo varianta algoritmu Diffie-Hellman (ověřený nebo ne, pomíjivý nebo ne, na eliptických křivkách nebo ne), zatímco pro verzi 1.3 je povolen pouze pomíjivý algoritmus Diffie-Hellman a funkce digitálního podpisu je uvedena v rozšířeních zpráv ClientHello, ServerHello a HelloRetryRequest fáze Handshake .