TLS a SSL: Jak fungují protokoly pro zabezpečení internetové komunikace

TLS a SSL vysvětleny: jak šifrování chrání internetovou komunikaci, e‑mail, VoIP a web. Praktické tipy a rozdíly pro bezpečné připojení.

Autor: Leandro Alegsa

Protokol TLS (Transport Layer Security) a jeho předchůdce SSL (Secure Sockets Layer) jsou kryptografické protokoly, které zajišťují bezpečnost a integritu dat pro komunikaci v sítích TCP/IP, jako je Internet. Několik verzí těchto protokolů se běžně používá v aplikacích, jako je prohlížení webu, elektronická pošta, faxování přes internet, instant messaging a přenos hlasu přes IP (VoIP).

 

Krátká historie a rozdíl mezi SSL a TLS

SSL byl vyvinut firmou Netscape v 90. letech. Po několika verzích byl SSL vyvíjen do podoby bezpečnějšího a standardizovaného protokolu, který dnes známe jako TLS. Prakticky dnes platí, že pojem "SSL" se často používá historicky nebo jako zkratka v běžné řeči, zatímco moderní implementace by měly používat TLS (aktuálně TLS 1.2 a TLS 1.3).

Jak TLS/SSL fungují — základní principy

TLS kombinuje asymetrické šifrování (pro navázání spojení a výměnu klíčů) a symetrické šifrování (pro vlastní výměnu dat) spolu s kontrolou integrity pomocí MAC/AEAD algoritmů. Zjednodušený průběh (handshake):

  • ClientHello: klient navrhne verzi protokolu, seznam podporovaných šifrovacích sad a pošle náhodná data.
  • ServerHello: server vybere parametry, pošle svůj certifikát a veřejný klíč (případně ServerKeyExchange).
  • Ověření certifikátu: klient zkontroluje platnost certifikátu (řetězec důvěry, podpis, shoda domény).
  • Výměna klíče: klient a server bezpečně dohodnou sdílený symetrický klíč (v starších verzích často pomocí RSA; moderně preferováno ECDHE pro forward secrecy).
  • ChangeCipherSpec a Finished: obě strany přepnou na šifrovaný režim a potvrdí, že handshake byl úspěšný.

U TLS 1.3 je handshake zjednodušen a rychlejší — většina kroků je sloučena, což snižuje latenci a některá rizika spojená s dřívějšími verzemi.

Certifikáty a PKI

Identita serveru (a případně klienta) se ověřuje pomocí digitálních certifikátů vydaných certifikačními autoritami (CA). Základní prvky, na které je potřeba dávat pozor:

  • Řetězec důvěry: certifikát musí být podepsán důvěryhodnou CA nebo řetězcem podepsaným až k důvěryhodnému kořenovému certifikátu.
  • Platnost: kontrola data vydání a vypršení platnosti certifikátu.
  • Shoda jména: certifikát musí odpovídat doméně (Common Name / SAN).
  • Revokace: ověřování přes CRL nebo OCSP pro zjištění, zda certifikát nebyl odvolán.

Verze TLS, zranitelnosti a doporučení

  • Deprecated: SSL 2.0/3.0 a TLS 1.0/1.1 jsou považovány za zastaralé a zranitelné — měly by být zakázány.
  • Současné doporučení: povolit TLS 1.2 a TLS 1.3. TLS 1.3 má lepší bezpečnostní vlastnosti, méně komplexní handshake a odstraněné slabé algoritmy.
  • Šifry: preferovat AEAD ciphers (např. AES-GCM, ChaCha20-Poly1305) a preferovat ECDHE pro zajištění forward secrecy.
  • Útoky, na které je třeba dávat pozor: POODLE (SSLv3), BEAST (starší TLS implementace), Heartbleed (chyba v OpenSSL - únik paměti), CRIME/BREACH (útoky na kompresi/HTTP), downgrade útoky a zneužití kompromitovaných CA.

Bezpečnostní opatření a dobré praktiky pro správce

  • Deaktivovat staré protokoly a slabé šifry (SSLv3, TLS 1.0/1.1, RC4, DES, 3DES).
  • Nastavit pořadí preferovaných cipher-suitů tak, aby klienti preferovali ECDHE + AEAD.
  • Používat silné veřejné klíče (např. RSA 2048/3072 nebo ECDSA s doporučenými křivkami).
  • Zapnout HSTS (HTTP Strict Transport Security) u webových serverů, kde má smysl.
  • Implementovat OCSP stapling pro rychlou a bezpečnou kontrolu revokace certifikátu.
  • Pravidelně aktualizovat TLS knihovny (OpenSSL, BoringSSL, NSS apod.) kvůli opravám zranitelností.
  • Zvažovat použití Certificate Transparency a pinning tam, kde je to vhodné.

Běžné nasazení a protokoly využívající TLS

  • HTTPS (HTTP přes TLS) — nejběžnější použití pro zabezpečení webu.
  • SMTPS, IMAPS, POP3S nebo STARTTLS pro zabezpečení e-mailů.
  • FTPS (FTP přes TLS) a bezpečné tunelování protokolů přes TLS.
  • VoIP a instant messaging často používají TLS pro zabezpečení signálové a/nebo mediální vrstvy.

Uživatelská zkušenost a indikátory zabezpečení

V moderních prohlížečích vidíte indikátory jako zámek u adresního řádku — značí platné TLS spojení a ověřený certifikát. Nicméně zámek neznamená absolutní bezpečí; je důležité sledovat, zda je certifikát platný a zda byla dodržena doporučení (aktuální verze TLS, silné šifry).

Závěr

TLS je základní stavební kámen bezpečné komunikace na internetu. Správným nastavením, aktualizacemi a pochopením toho, jak protokol funguje, lze minimalizovat riziko odposlechu, manipulace s daty a dalších útoků. Doporučení pro současnost: zakázat staré verze, povolit TLS 1.2/1.3, preferovat ECDHE a AEAD ciphers a důsledně spravovat certifikáty a revokace.

Popis

Protokol TLS umožňuje aplikacím komunikovat v síti způsobem, který má zabránit odposlechu, manipulaci a padělání zpráv. Protokol TLS zajišťuje ověřování koncových bodů a důvěrnost komunikace přes internet pomocí kryptografie. Většinou je ověřován pouze server (tj. je zajištěna jeho identita), zatímco klient zůstává neověřen; to znamená, že koncový uživatel (ať už jednotlivec nebo aplikace, např. webový prohlížeč) si může být jistý, s kým komunikuje. Další úroveň zabezpečení se nazývá vzájemné ověřování. Vzájemné ověřování vyžaduje nasazení infrastruktury veřejných klíčů (PKI) u klientů, pokud se nepoužije protokol TLS-PSK nebo protokol SRP (Secure Remote Password), které poskytují silné vzájemné ověřování bez nutnosti nasazení PKI.

 

Použití

Protokoly SSL a TLS se široce používají v několika projektech softwaru s otevřeným zdrojovým kódem. Programátoři mohou pro funkce SSL/TLS používat knihovny OpenSSL, NSS nebo GnuTLS. Systém Microsoft Windows zahrnuje použití protokolů SSL a TLS jako součást balíčku Secure Channel. Programátoři v Delphi mohou použít knihovnu Indy.

 

Normy

Aktuální schválená verze je 1.2, která je uvedena v:

  • RFC 5246: "Protokol TLS (Transport Layer Security) verze 1.2".

Současná norma tyto předchozí verze ruší:

  • RFC 2246: "Protokol TLS verze 1.0".
  • RFC 4346: "Protokol TLS (Transport Layer Security) verze 1.1".

Další RFC následně rozšířila protokol TLS, včetně:

  • RFC 2595: "Použití protokolu TLS s protokoly IMAP, POP3 a ACAP". Specifikuje rozšíření služeb IMAP, POP3 a ACAP, které umožňuje serveru a klientovi používat zabezpečení na transportní vrstvě k zajištění soukromé, ověřené komunikace přes internet.
  • RFC 2712: "Addition of Kerberos Cipher Suites to Transport Layer Security (TLS)". 40bitové šifrové sady definované v této poznámce se objevují pouze za účelem dokumentace skutečnosti, že tyto kódy šifrových sad již byly přiděleny.
  • RFC 2817: "Upgrade na TLS v rámci protokolu HTTP/1.1" vysvětluje, jak použít mechanismus upgradu v protokolu HTTP/1.1 k zahájení protokolu TLS (Transport Layer Security) přes existující připojení TCP. To umožňuje, aby nezabezpečený a zabezpečený provoz HTTP sdílel stejný známý port (v tomto případě http: na 80 místo https: na 443).
  • RFC 2818: "HTTP Over TLS" rozlišuje zabezpečený provoz od nezabezpečeného provozu použitím jiného "portu serveru".
  • RFC 3207: "SMTP Service Extension for Secure SMTP over Transport Layer Security". Specifikuje rozšíření služby SMTP, které umožňuje serveru SMTP a klientovi používat zabezpečení transportní vrstvy k zajištění soukromé, ověřené komunikace přes internet.
  • RFC 3268: "AES Ciphersuites for TLS". Přidává šifry AES (Advanced Encryption Standard) k již existujícím symetrickým šifrám.
  • RFC 3546: "Transport Layer Security (TLS) Extensions" přidává mechanismus pro vyjednávání rozšíření protokolu během inicializace relace a definuje některá rozšíření. Zastaralé podle RFC 4366.
  • RFC 3749: "Transport Layer Security Protocol Compression Methods", specifikuje rámec pro kompresní metody a kompresní metodu DEFLATE.
  • RFC 3943: "(TLS) pomocí Lempel-Ziv-Stac (LZS)".
  • RFC 4132: "Addition of Camellia Cipher Suites to Transport Layer Security (TLS)".
  • RFC 4162: "Addition of SEED Cipher Suites to Transport Layer Security (TLS)".
  • RFC 4217: "Zabezpečení FTP pomocí TLS".
  • RFC 4279: "Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)", přidává tři sady nových šifer pro protokol TLS, které podporují ověřování založené na předsdílených klíčích.
  • RFC 4347: "Datagram Transport Layer Security" specifikuje variantu protokolu TLS, která funguje nad datagramovými protokoly (například UDP).
  • RFC 4366: "Transport Layer Security (TLS) Extensions" popisuje jak sadu specifických rozšíření, tak obecný mechanismus rozšíření.
  • RFC 4492: "Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS)".
  • RFC 4507: "Transport Layer Security (TLS) Session Resumption without Server-Side State".
  • RFC 4680: "TLS Handshake Message for Supplemental Data".
  • RFC 4681: "Rozšíření mapování uživatelů TLS".
  • RFC 4785: "Šifry s předem sdíleným klíčem (PSK) s šifrováním NULL pro zabezpečení transportní vrstvy (TLS)".
 

Související stránky

  • Certifikační autorita
  • Certifikát veřejného klíče
  • Rozšířený ověřovací certifikát
  • Zrychlení SSL
  • Zabezpečení transportní vrstvy datagramu
  • Multiplexované zabezpečení transportní vrstvy
  • X.509
  • Virtuální privátní síť
  • SEED
  • Kryptografie se serverovou bránou

Software

  • OpenSSL: svobodná (a velmi populární) implementace (licence BSD s některými vtipnými rozšířeními).
  • GnuTLS: svobodná implementace pod licencí LGPL
  • JSSE: implementace jazyka Java, která je součástí prostředí Java Runtime Environment.
  • Služby zabezpečení sítě (NSS): Otevřená knihovna s validací FIPS 140
 


Vyhledávání
AlegsaOnline.com - 2020 / 2025 - License CC3