„Transport Layer Security” változatai közötti eltérés

[ellenőrzött változat][ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
BinBot (vitalap | szerkesztései)
Nincs szerkesztési összefoglaló
1. sor:
A '''Transport Layer Security''' (TLS) és elődje a '''Secure Sockets Layer''' (SSL), titkosítási protokollok, melyek az [[Internet]]-en keresztüli kommunikációhoz biztosítanak védelmet. A TLS és SSL protokollok titkosítják a hálózati kapcsolatok szegmenseit a [[szállítási réteg]] felett.
 
A TLS egy [[IETF]] szabványt követő protokoll, amely a korai, [[Netscape]] Communications által meghatározott SSL specifikációkon alapul. Utolsó verzióját az [[IEEE]] [http://tools.ietf.org/html/rfc5246 RFC5246]-os referenciájában definiálták.
 
Különböző változatait rengeteg alkalmazásban felhasználják, mint például levelezés, web-böngészés, azonnali üzenetküldés, vagy esetleg [[VoIP]] (Voice over IP) kommunikáció területén.
 
== Leírás ==
A TLS protokoll kliens/szerver alapú alkalmazások számára lehetővé teszi a biztonságos kommunikációt, elhárítva a lehallgathatóságot és az esetleges hamisítást. Amióta a legtöbb protokoll használható TLS-el, vagy anélkül, fontos, hogy a szerver felé jelezze a kliens, hogy használ-e TLS-t. Ezt kétféleképpen érhetjük el: Egyik lehetséges mód, hogy a TLS kapcsolatoknál külön portot használunk (például [[HTTPS]]-hez 443-as portot). A másik lehetőség, hogy a szokásos, szabványos portot vesszük igénybe, és a kliens kéri a szervert, hogy a meglévő kapcsolatnál használja fel a TLS-t is valamilyen protokoll-specifikus mechanizmus segítségével.
 
Amint eldőlt, hogy a szerver és a kliens TLS-t használnak, kapcsolódnak egy handshake procedúrán keresztül végigmenve. Ezalatt a kliens és a szerver bizonyos paraméterek összehangolásával biztonságos kapcsolatot létesít egymás közt.
 
* A kézfogás azzal indul, hogy a kliens egy TLS-el ellátott szerverhez kérelmet küldve próbál biztonságos kapcsolatot létesíteni, és egy listát biztosít a szerver számára a felhasználható titkosítási módszerekkel és hash függvényekkel.
* Ebből a listából a szerver a legerősebbeket kiválasztja.
* A szerver elküldi a digitális aláírását, ami a szerver nevéből, egy tanusítványbóltanúsítványból és a szerver nyilvános kulcsából áll.
* A kliens ezután csatlakozhat, és elkészít munkafolyamat-azonosító kulcsot (session key). Egy ilyen kulcs előállításához a kliens vesz egy véletlen számot, amit titkosít a szerver nyilvános kulcsával együtt és ennek eredményét visszaküldi a szerver számára, amit kizárólag a szerver képes dekódolni a titkos kulcsa segítségével.
 
Ha a fenti folyamat során valamely lépés nem sikeres, a kézfogás sikertelen lesz és a kapcsolat nem jön létre.
19. sor:
== Fontosabb verziói ==
=== Kezdet ===
A szállítási réteg biztosítására tett korai kezdeményezések egyik eredménye volt az SNP (Secure Network Programming) API, amelyet 1993-ban dolgoztak ki.
 
=== További változatok ===
28. sor:
| SSL 1.0 || Sosem tették közzé || -
|-
| SSL 2.0 || 1995. február || -
|-
| SSL 3.0 || 1996 || -
|-
| TLS 1.0 (SSL 3.1)|| 1999. januárbanjanuár || [http://www.ietf.org/rfc/rfc2246.txt RFC2246]
|-
| TLS 1.1 (SSL 3.2) || 2006. áprilisaáprilis || [http://www.ietf.org/rfc/rfc4346.txt RFC4346]
|-
| TLS 1.2 (SSL 3.3) || 2008. augusztusaaugusztus || [http://tools.ietf.org/html/rfc5246 RFC5246]
|}
 
52. sor:
== Biztonság ==
=== TLS handshake részletesebben ===
A TLS protokoll egységbezárt adatok, úgynevezett ''rekordok'' segítségével kommunikál. Minden egyes rekord tömöríthető, kiegészíthető ún. üzenet azonosító kóddal (MAC - [[Message Authentication Code]]), vagy akár titkosítható is, mindez a kapcsolat aktuális állapotától függ. Minden rekord tartalmaz egy ''tartalom típus'', hossz és TLS verzió mezőket. Amikor a kapcsolódás megtörténik, a rekord egységbezár egy másik protokollt (a handshake üzenetküldési protokollt), aminek a tartalomtipusatartalomtípusa a 22-es számmal van ellátva.
==== Egy egyszerűbb handshake folyamat ====
1. Tárgyalási fázis
61. sor:
* A kliens '''ClientKeyExchange''' üzenettel válaszol, ami tartalmazhat egy ''PreMasterSecret''-et, vagy egy nyilvános kulcsot, vagy semmit se. Ez a ''PreMasterSecret'' titkosítva van a szerver nyilvános kulcsa által.
* A kliens és a szerver a véletlenszámok és a ''PreMasterSecret'' segítségével előállítja a privát kulcsokat.
2. A kliens egy '''ChangeCipherSpec''' rekordot küld a szervernek, jelezve fele, hogy "minden amit innentől mondok, titkosítva lesz". Ez a rekord a 20-as tartalom tipussaltípussal van ellátva.
* Végül, a kliens küld egy '''Finished''' üzenetet, ami egy hash-t és egy MAC-en tartalmaz az előző üzenetekből.
3. A szerver is küld a kliens részére egy '''ChangeCipherSpec''' üzenetet.
78. sor:
|-
! Byte<br />0
|colspan="8"| Tartalom tipusatípusa
|colspan="24"| &nbsp;
|-
101. sor:
 
; Tartalom típus
: Ez a mező határozza meg a rekordban szereplő tartalom tipusáttípusát.
:{| class="wikitable"
|+ '''Tartalom tipusoktípusok'''
|-
! Hex
131. sor:
|+ '''Verziók'''
|-
! Major<br/>Verzió !! Minor<br/>Verzió !! Verzió tipusatípusa
|-
| 3 || 0 || SSL 3.0
155. sor:
* [http://wiki.hup.hu/index.php/TLS HUP (Hungarian Unix Portal) magyar nyelvű leírása a TLS-ről]
 
{{Portál|Informatika|i }}
 
[[Kategória:Internetes protokollok]]