Invia.cz
Last minute
Tunisko
Dovolená v Chorvatsku
Pojeďte do Egypta
Bulharsko
Vydělávejte peníze s INVIA.CZ
| Internetové protokoly |
| Aplikační vrstva |
|---|
| Transportní vrstva |
| Síťová vrstva |
| Linková vrstva |
| Fyzická vrstva |
Protokol Transport Layer Security (TLS) a jeho předchůdce, Secure Sockets Layer (SSL), jsou kryptografické protokoly, poskytující možnost zabezpečené komunikace na Internetu pro služby jako WWW, elektronická pošta, internetový fax a další datové přenosy. Mezi protokoly SSL 3.0 a TLS 1.0 jsou drobné rozdíly, ale v zásadě jsou stejné. Zde použitý termín „TLS“ se týká obou dvou, pokud není z kontextu zřejmý opak.
Obsah |
Protokol(y) TLS umožňují aplikacím komunikovat po síti způsobem, který zabraňuje odposlouchávání či falšování zpráv. Pomocí kryptografie poskytuje TLS svým koncovým bodům autentizaci a soukromí při komunikaci Internetem. Typicky je autentizován pouze server (tedy jeho totožnost je zaručena), zatímco klient zůstává neautentizován. To znamená, že koncový uživatel (ať člověk či aplikace, jako třeba webový prohlížeč) si může být jist s kým komunikuje. Další úroveň zabezpečení – při níž oba konce „konverzace“ mají jistotu s kým komunikují – je označována jako vzájemná autentizace. Vzájemná autentizace vyžaduje nasazení infrastruktury veřejných klíčů (PKI) pro klienty.
TLS zahrnuje tři základní fáze:
Během první fáze se klient a server dohodnou na používaných kryptografických algoritmech. Současné implementace podporují následující možnosti:
Protokol TLS je založen na výměně záznamů. Každý záznam může být volitelně komprimován, může k němu být připojen autentizační kód (message authentication code, MAC) a může být zašifrován. Každému záznamu je přiřazen typ obsahu, který určuje protokol vyšší úrovně.
Při zahájení spojení vrstva záznamů obaluje jiný protokol – iniciační protokol (handshake protocol), jehož typ obsahu má hodnotu 22.
Typická inicializace probíhá následovně:
Dát si dohromady výše popsaný proces spojování TLS/SSL s typickým použitím prohlížeče může být poněkud obtížné. Pomozme si v lepším pochopení typického TLS/SSL spojení tím, co bývá obvykle označováno za šestikrokový SSL proces. SSL naváže stavové spojení dohodnuté výše popsanou iniciační procedurou mezi klientem a serverem. Během inicializace si oba vymění specifikace pro šifrování, které budou při komunikaci používat.
Prohlížeč může kontaktovat důvěryhodnou CA a ověřit pravost certifikátu, než bude pokračovat. Následně prohlížeč nabídne seznam šifrovacích algoritmů a hashovacích funkcí.
K vygenerování klíčů seance použitých pro zabezpečení spojení použije prohlížeč veřejný klíč serveru z certifikátu. Zašifruje jím náhodné číslo a zašle je serveru.
Tím končí handshake a začíná zabezpečené spojení, které je šifrováno a dešifrováno klíči seance po zbytek svého trvání.
Pokud je libovolný z těchto kroků neúspěšný, selže TLS/SSL handshake a nedojde k vytvoření spojení.
| + | bity 0–7 | 8-15 | 16-23 | 24–31 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Protocol | Version (MSB) | Version (LSB) | Length (MSB) | ||||||||||||||||||||||||||||
| 32 | Length (LSB) | Zprávy protokolu | ||||||||||||||||||||||||||||||
| ... | Zprávy protokolu (pokračování) | |||||||||||||||||||||||||||||||
| ... | MAC (volitelně) | |||||||||||||||||||||||||||||||
Dostupné typy protokolů jsou:
20 ChangeCipherSpec
21 Alert
22 Handshake
23 Application
Verze jsou: 3 | 0 SSLv3
3 | 1 TLS 1.0
3 | 2 TLS 1.1
| + | bity 0–7 | 8-15 | 16-23 | 24–31 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 20 | Version (MSB) | Version (LSB) | 0 | ||||||||||||||||||||||||||||
| 32 | 1 | 1 (CCS protocol type) | ||||||||||||||||||||||||||||||
| + | bity 0–7 | 8-15 | 16-23 | 24–31 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 21 | Version (MSB) | Version (LSB) | 0 | ||||||||||||||||||||||||||||
| 32 | 2 | Level | Description | |||||||||||||||||||||||||||||
Úrovně jsou:
1 Varování - spojení nebo bezpečnost mohou být nestabilní
2 Fatální - spojení nebo bezpečnost mohou být kompromitovány nebo došlo k nenapravitelné chybě
Dostupné popisy jsou:
0 Close notify
10 Unexpected message (fatal)
20 Bad record MAC (fatal)
21 Decryption failed (fatal, TLS only)
22 Record overflow (fatal, TLS only)
30 Decompression failure (fatal)
40 Handshake failure (fatal)
41 No certificate (SSL v3 only)
42 Bad certificate
43 Unsupported certificate
44 Certificate revoked
45 Certificate expired
46 Certificate unknown
47 Illegal parameter (fatal)
48 Unknown CA (fatal, TLS only)
49 Access denied (fatal, TLS only)
50 Decode error (fatal, TLS only)
51 Decrypt error (TLS only)
60 Export restriction (fatal, TLS only)
70 Protocol version (fatal, TLS only)
71 Insufficient security (fatal, TLS only)
80 Internal error (fatal, TLS only)
90 User cancelled (fatal, TLS only)
100 No renegotiation (warning, TLS only)
| + | bity 0–7 | 8-15 | 16-23 | 24–31 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 22 | Version (MSB) | Version (LSB) | Length (MSB) | ||||||||||||||||||||||||||||
| 32 | Length (LSB) | Message type | Message length | |||||||||||||||||||||||||||||
| 64 | Message length (cont.) | Handshake message | ||||||||||||||||||||||||||||||
| ... | Handshake message | Message type | Message length | |||||||||||||||||||||||||||||
| ... | Message length | Handhshake message | ||||||||||||||||||||||||||||||
Dostupné typy jsou:
0 HelloRequest
1 ClientHello
2 ServerHello
11 Certificate
12 ServerKeyExchange
13 CertificateRequest
14 ServerHelloDone
15 CertificateVerify
16 ClientKeyExchange
20 Finished
TLS zahrnuje řadu bezpečnostních opatření:
TLS běží ve vrstvě pod aplikačními protokoly, jako jsou HTTP, FTP, SMTP, NNTP či XMPP, a nad spolehlivým transportním protokolem, např. TCP. Dokáže přidat zabezpečení libovolnému protokolu používajícímu spolehlivá spojení (např. pomocí TCP), nicméně nejčastěji se používá pro HTTP k vytvoření HTTPS. Jeho prostřednictvím jsou zabezpečeny webové aplikace, jako je elektronická komerce či správa aktiv. Míra využití TLS v SMTP také roste (je definována v RFC 3207). Tyto aplikace využívají k ověření identity koncových bodů certifikáty s veřejnými klíči.
Počet serverů a klientů nativně podporujících TLS stále roste, nicméně v řadě z nich podpora stále chybí. Jako alternativu mohou uživatelé použít samostatné TLS produkty, jako je Stunnel. Obalové mechanismy jako Stunnel stavějí na schopnosti získat TLS spojení přímo jednoduchým připojením na samostatný port vyhrazený pro tento účel. Například implicitní TCP port pro HTTPS je 443, aby se odlišil od portu 80 pro obyčejné HTTP. Nicméně v roce 1997 Internet Engineering Task Force doporučilo, aby aplikační protokoly vždy zahajovaly činnost bez zabezpečení a místo samostatných portů nabídly způsob pro přechod na TLS. S tím se jednoduché balení aplikačních dat do TLS, jaké používá Stunnel, nedokáže vypořádat.
TLS lze také použít pro tunelování všech síťových protokolů a vytvoření VPN, jak to dělá OpenVPN. Řada výrobců v současnosti spojuje šifrovací a autentizační mechanismy TLS s autorizací. Koncem 90. let bylo vynaloženo značné úsilí na vývoj klientských technologií mimo prohlížeč, které by podporovaly aplikace typu klient/server. V porovnání s tradičními VPN technologiemi na bázi IPsec má TLS některé principiální výhody při procházení firewally a NATem, které usnadňují správu při větším počtu vzdálených uživatelů.
TLS se také ve stále větší míře používá jako standardní metoda ochrany SIP signalizace v aplikacích. TLS dokáže poskytnout autentizaci a šifrování pro SIP signalizaci spojenou s VoIP a dalšími aplikacemi.