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

[ellenőrzött változat][nem ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
a Internetes protokollok kategória hozzáadva (a HotCattel)
Nincs szerkesztési összefoglaló
Címke: HTML-sortörés
51. 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 tartalomtipusa a 22-es számmal van ellátva.
==== Egy egyszerűbb handshake folyamat ====
1. Tárgyalási fázis
* A kliens egy '''ClientHello''' üzenetet küld a szerver számára, néhány plusz kéréssel együtt, amit a szervertől vár válaszként: a legnagyobb támogatott TLS verziót, egy véletlen számot, egy titkosítási módszert, és egy ajánlott tömörítési eljárást.
* A szerver egy '''ServerHello''' üzenettel válaszol a kliensnek és továbbítja az előbbiekben felsorolt kéréseket. A választott protokoll a kliens és a szerver által egyaránt támogatott legújabb verziójú protokoll. Például: Ha a kliens a TLS 1.1-et támogatja, a szerver a TLS 1.2-őt is, akkor az 1.1-es verzió lesz kiválasztva. SSL 3.0 nem választható.
* A szerver ezután egy '''Certificate''' üzenetet küld(a titkosítási módszertől függően ezt a szerver kihagyhatja).
* A szerver következik ismét: '''ServerHelloDone''' üzenet formájában jelzi a kliens fele, hogy a handshake tárgyalási folyamatát lezárja.
* A kliens '''ClientKeyExchange''' üzenettel válaszol, ami tartalmazhat egy ''PreMasterSecret''-et, vagy egy nyílvános kulcsot, vagy semmit se. Ez a ''PreMasterSecret'' titkosítva van a szerver nyílvá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 tipussal 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.
4. Alkalmazási fázis: ezen a pontot a "handshake" véget ér, az alkalmazási protokoll engedélyezve van.
 
=== TLS rekord felépítése ===
Az alábbi táblázat segítségével szemléltethető a TLS rekordok szerkezete.
{| class="wikitable" style="width:100%;text-align:center"
|-
!width="12%"| +
!colspan="8" width="22%"| Byte +0
!colspan="8" width="22%"| Byte +1
!colspan="8" width="22%"| Byte +2
!colspan="8" width="22%"| Byte +3
|-
! Byte<br />0
|colspan="8"| Tartalom tipusa
|colspan="24"| &nbsp;
|-
!rowspan="2"| Byte-ok<br />1..4
|colspan="16"| Verzió
|colspan="16"| Hossz
|-style="font-size:90%;line-height:1.2"
|colspan="8"| ''(Major)''
|colspan="8"| ''(Minor)''
|colspan="8"| ''(bit-ek 15..8)''
|colspan="8"| ''(bit-ek 7..0)''
|-
! Byte-ok<br />5..(''m''-1)
|colspan="32"| Protokoll üzenet(ek)
|-
! Byte-ok<br />''m''..''(''p''-1)
|colspan="32"| [[Message authentication code|MAC]] (optional)
|-
! Byte-ok<br />''p''..''(''q''-1)
|colspan="32"| Kitöltés
|}
 
; Tartalom típus
: Ez a mező határozza meg a rekordban szereplő tartalom tipusát.
:{| class="wikitable"
|+ '''Tartalom tipusok'''
|-
! Hex
! Dec
! Type
|-
| 0x14
| 20
| ChangeCipherSpec
|-
| 0x15
| 21
| Figyelmeztetés
|-
| 0x16
| 22
| Handshake
|-
| 0x17
| 23
| Alkalmazás
|}
 
; Verzió
: Ez a mező határozza meg az üzenethez használandó TLS protokoll elsődleges(major) és másodlagos(minor) verzióját.
:{| class="wikitable"
|+ '''Verziók'''
|-
! Major<br/>Verzió !! Minor<br/>Verzió !! Verzió tipusa
|-
| 3 || 0 || SSL 3.0
|-
| 3 || 1 || TLS 1.0
|-
| 3 || 2 || TLS 1.1
|-
| 3 || 3 || TLS 1.2
|}
; Hossz
: Az üzenet hosszát definiálja, amely nem lépheti túl a 2<sup>14</sup> byte-ot (16 KiB).
 
== Kapcsolódó szabványok ==