TLS Record Protocol
Stav spojení
Při navazování spojení se klient se serverem dohodnou
na určitých parameterch spojení (viz handshake protokol).
Tyto parametry pak určují chování record protokolu:
- jde o server nebo client
- zvolený šifrovací algoritmus
- zabezpečovací algoritmus (MAC - viz dále)
- algoritmus komprese
- 48 B master secret
- 32 B náhodně generovaných klientem
- 32 B náhodně generovaných serverem
- používá se komprese N/A
- informace potřebné pro zvolené šifrování
- MAC secret - slouží k výpočtu zabezpečovací informace
- identifikační číslo zprávy vytvořené record protokolem
Co dělá Record Protocol?
Protokol zapoudřuje protokoly vyšších vrstev.
Zpracovává zprávy k odeslání v tomto pořadí:
- rozděluje data do bloků - fragmentace
- volitelně data zakomprimuje
- vypočte zabepečovací informaci
- šifruje
- předá nižší vrstvě
A podobně příjmané zprávy:
- dešifruje
- zkontroluje
- dekomprimuje
- nazpět sestaví
- předá vyšším vrsvám
Projděme tedy podrobněji jednotlivé fáze.
Fragmentace
Data se rozdělují po blocích o velikosti maximálně
16KB. Více zpráv může být v jednom bloku a naopak jedna
zpráva může být rozdělena do více bloků. Každý blok
si navíc sebou nese informaci komu se má na vyšší úrovni
předat. Jsou 4 možnosti: protokol pro změnu šifrování,
signální protokol (zpracovává chyby), handshake nebo
aplikační protokol.
Pozn.: Někdy se lze setkat s názvoslovým fragmentace
= segmentace a blok = segment.
Komprimace
Není povinná. Slouží ke zmenšení objemu přenášených
dat. Jde o bezzeztrátovou kompresi. Komprimovaná data
nesmí přesáhnout velikost 16KB + 1KB (to se stane v případě,
kdy byl zvolen špatný komprimační algoritmus a velikost
dat paradoxně příliš naroste). V TLS je doporučena komprese
DEFLATE (viz Rozšíření TLS).
MAC
MAC je jakási kontrolní informace přenášených dat.
Získá se použitím některé z hešovacích funkcí - MD5, SHA-1.
Jejich vstupem jsou data, MAC secret (viz Šifrování
níže) a pořadové číslo bloku.
Není přípustné počítat MAC bez MAC secret. Je to z
důvodu bezpečnosti, kdy by mohl někdo jiný data pozměnit
a podle toho upravit i MAC. Rovněž je zahrnuto pořadové číslo, aby útočník
nemohl některé bloky odchytit a jiné zopakovat. Jedná o ochrany proti
útokům man-in-the-middle.
MAC secret se vypočítá z master secret a náhodně vygenerovaných
dat klientem a serverem
Slouží k zašifrování obsahu přenášených dat (včetně MAC).
Jsou podporovány proudové (RC4 - 40-bitová a 128-bitová verze) a blokové šifry (RC2,
DES, TripleDES, IDEA, v roce 2002 přidány i AES). Blokové
šifry smí být použity pouze v módu CBC.
Jak se získají klíče? Vezme se některá hešovací funkce.
Jejím vstupem je master secret a náhodná data od klienta
a serveru (jde o tzv. "osolení" o náhodná
data). Dostaneme blok bytů, který si rozdělíme na části.
První dvě části budou MAC secret klienta a serveru a
další dvě klíče klienta a serveru.
Poznamenejme důležitý fakt, že není povinnou volbou.
To se hodí v případě, kdy nepotřebujeme šifrovat, ale
stačí nám pouze vědět s kým komunikujeme (viz Handshake
protokol).
|