Čo je TLS (Transport Layer Security)? Vysvetlenie protokolu
TLS (Transport Layer Security) je šifrovací protokol, ktorý zabezpečuje bezpečný prenos dát na internete. Je nástupcom zastaraného protokolu SSL a v súčasnosti sa používa takmer výlučne vo verzii TLS 1.3.
Čo je TLS?
V počiatkoch internetu nebola bezpečnosť údajov taká dôležitá ako dnes. Všetka komunikácia bola odosielaná otvorene a nezašifrovaná z jedného počítača do druhého. Môžete si to predstaviť ako pohľadnicu: každý poštár ju mohol prečítať.
Protokol TLS, známy aj ako SSL/TLS, zaviedol šifrovanie prenášaného obsahu. Ak chceme pokračovať v analógii, toto šifrovanie je ako zapečatená obálka, ktorú môže otvoriť len oprávnený príjemca.
Skratka TLS znamená Transport Layer Security (bezpečnosť transportnej vrstvy). Tento termín sa vzťahuje na transportnú vrstvu modelu TCP/IP. TLS je metóda, ktorá šifruje internetové dátové toky, čím umožňuje ich čítanie len oprávneným príjemcom.
Predchádzajúci názov šifrovacieho protokolu bol SSL (Secure Socket Layer). Keďže táto skratka je stále známejšia ako TLS, TLS sa často označuje dvojitým názvom „SSL/TLS“.
Ako funguje TLS?
TLS šifruje dáta odosielané cez internet a bežne sa implementuje na vrchole protokolu TCP pomocou symetrickej kryptografie.
To, čo znie v praxi jednoducho, je v skutočnosti zložitejšie. Základným problémom je, že server musí odoslať kľúč klientovi –ešte predtým, ako je komunikácia zabezpečená protokolom TLS. Každý, kto posiela šifrované prílohy e-mailov, pozná tento problém: zašifrujete súbor a musíte zdieľať tajné heslo s príjemcom, napríklad telefonicky.
Protokol TLS, ktorého aktuálnym štandardom je od roku 2018 verzia 1.3, používa na riešenie tohto problému nasledujúci postup:
- ClientHello: Klient (napr. prehliadač) odošle serveru počiatočnú správu s informáciami o podporovaných šifrovaniach. Táto správa obsahuje šifrovacie sady, verzie protokolov, náhodnú hodnotu a vlastnú hodnotu výmeny kľúčov Elliptic-Curve-Diffie-Hellman (hodnota ECDHE). Voliteľne je možné odoslať už prvý šifrovaný blok údajov.
- ServerHello: Server vyberie vhodné parametre a odošle svoju odpoveď – vrátane hodnoty ECDHE a svojho digitálneho certifikátu. Tento certifikát SSL dokazuje, že server je autentický a nepredstiera, že je niekto iný. Zároveň sa začne výpočet kľúča relácie.
- Výpočet kľúča: Obidve strany teraz nezávisle vypočítajú rovnaký kľúč relácie na základe spoločne dohodnutého kľúča.
- Server dokončí handshake a začne šifrovanú komunikáciu. Klient urobí to isté; pripojenie je teraz úplne zabezpečené.
V porovnaní s predchádzajúcimi verziami je TLS handshake v TLS 1.3 výrazne štíhlejší a bezpečnejší. Celý proces opísaný v tomto článku teraz vyžaduje len jedno kolo (1 RTT), čo výrazne urýchľuje pripojenie.
Dôvodom, prečo sa asymetrické šifrovanie pomocou Diffie-Hellman používa iba na prenos kľúča relácie (ale nie na šifrovanie samotných dátových tokov), je výhoda rýchlosti; asymetrické šifrovanie je relatívne pomalé a spomalilo by dátovú komunikáciu.
Výhody a nevýhody TLS
TLS je elegantné riešenie na zvýšenie bezpečnosti webového prevádzky. Nevyžaduje, aby obe strany samy šifrovali obsah, napríklad údaje z formulárov. Stačí, ak je prevádzka smerovaná cez protokol TLS, bez ohľadu na operačné systémy a softvérové aplikácie účastníkov. Všetky dátové toky sú potom automaticky šifrované počas prenosu.
Cenou za bezpečnosť je o niečo pomalšie nastavenie pripojenia, pretože vyššie uvedené kroky procesu – certifikát, náhodné číslo, výmena kľúčov – sú výpočtovo náročné.
Použitie TLS
Ako už bolo spomenuté, TLS sa dá používať univerzálne, pretože je nezávislý od aplikácií a operačných systémov. Preto existuje verzia zabezpečená TLS pre rôzne aplikačné protokoly. Schéma názvov je vo väčšine prípadov pomerne jednoduchá: k názvu protokolu sa pridá písmeno „S“, ak protokol komunikuje prostredníctvom TLS.
Najdôležitejšou oblasťou použitia TLS je World Wide Web, konkrétne protokol HTTP. Jeho šifrovaná verzia sa nazýva HTTPS.
Okrem toho je potrebné spomenúť aj nasledujúce bežné prípady použitia:
- POP3S: Načítanie e-mailov zo servera pomocou protokolu POP3
- IMAPS: Synchronizácia doručenej pošty so serverom pomocou protokolu IMAP
- SMTPS: Odosielanie e-mailov
- FTPS: Prenos súborov prostredníctvom protokolu FTP
- SIPS: Voice-over-IP telefónia prostredníctvom protokolu SIP
- IRCS: Šifrované chaty
- QUIC: Transportný protokol spoločnosti Google, ktorý priamo integruje TLS 1.3; alternatíva k TCP pre rýchlejšie a bezpečnejšie webové pripojenia (napr. s HTTP/3)
OpenVPN, bezplatný softvér na vytvorenie virtuálnej súkromnej siete (VPN), tiež využíva protokol TLS.
Kľúčové implementácie TLS
Medzi najčastejšie používané implementácie TLS patria:
- OpenSSL – zďaleka najbežnejšia implementácia používaná väčšinou webových stránok HTTPS
- GnuTLS (Free Software Foundation)
- LibreSSL (OpenBSD)
- NSS (Network Security Services)
- BoringSSL (Google)
- Rustls (Joe Birr-Pixton, Dirkjan Ochtman, Daniel McCarney, Josh Aas a komunita Open-Source)
- Botan (licencia BSD, Jack Lloyd)
- JSSE (Java Secure Socket Extension, Oracle)
- S2n (Amazon)
Tento zoznam nie je úplný. Podrobné informácie o implementáciách TLS nájdete na Wikipédii.
Známé útoky TLS
Hoci je TLS navrhnutý pre bezpečnú komunikáciu, stále má známe slabé miesta. Medzi ne patria:
- Programovacie chyby: Chyba Heartbleed Bug sa stala známou ako kritická programovacia chyba v skorších verziách OpenSSL. Bola opravená v roku 2014.
- Slabé šifrovanie: V dôsledku obmedzení vývozu kryptografie v USA boli vyvinuté verzie „exportnej kvality“, ktoré bolo ľahšie prelomiť ako originály.
- Kompresné útoky: Keď sa namiesto kompresie TLS používa kompresia HTTP, hackeri môžu určitými metódami odhadnúť obsah šifrovaný pomocou TLS.
- Útok BEAST ovplyvnil verziu TLS 1.0 a bol opísaný už v roku 2014. Súčasné verzie TLS sú voči nemu zabezpečené.
- Útok Padding Oracle bol objavený v roku 2002 a bol možný až do verzie SSL 3.0. Súčasná verzia TLS 1.3 nie je týmto útokom ovplyvnená.
- Útok ALPACA z roku 2021 ukazuje, ako je možné zneužiť TLS certifikáty na nesprávne nakonfigurovaných serveroch na presmerovanie používateľov na iné služby, zachytávanie alebo manipuláciu s údajmi.
Boli tiež podniknuté snahy zabrániť úplne bezpečnému šifrovaniu TLS, aby orgány mali prístup k šifrovanej komunikácii, napríklad v súvislosti s finančnými transakciami a trestnou činnosťou. Jednou z organizácií, ktorá presadzovala takúto „úmyselnú zraniteľnosť“ v TLS, bol ETSI (Európsky inštitút pre telekomunikačné normy).