Modely důvěry
Někdy chceme vědět s kým vlastně komunikujeme K tomu
slouží certifikáty, jež si server s klientem posílají
během handshaku. Když ovšem obdržíme certifikát, co
s ním dál? Jak zjistit, že patří opravdu tomu, kdo nám
jej poslal? Je třeba ho nějak ověřit třetí stranou.
Tento problém řeší tzv. modely důvěry.
Existují dva odlišné modely, které mají své výhody
i nevýhody:
- hiearchický
- distribuovaný
Hiearchický model - X.509
X.509
Princip je zobrazený na obrázku. Přepokladem je, že
existuje nějaká instituce tj. certifikační autorita
(CA), kterou zná server i klient. Certifikát, který
obdrží je podepsán CA. Stačí tedy ověřit podpis CA.
Existuje spousta CA (např. Verisign, Microsoft Certificate Server, ... ). Jedna CA může znát více jiných
CA. Pokud nezná certifikát pošle jej ostaním CA, kterým
důvěřuje. Tak vzniká hiearchická struktura. V ideálním
případě se pak dostanem k jedné kořenové CA.
V praxi, ale žádná taková neexistuje. Z toho plyne,
že klient ale hlavně sever musí mít znát spoustu CA,
jinak se prostě nedomluví.
Další nevýhodou je, že CA si účtují vysoké poplatky
za podepsané certifikáty, což zabraňuje většímu rošíření.
Uplatnění tedy najde např. v nějaké firmě, které stačí
akceptovat jen své zamětnance, jimž vydala a podepsala
vlastní certifikát.
Poznamenejme ještě, že tento model je doporučován i
v TLS.
Distribuovaný model - OpenPGP
Tento model se dá přirovnat k fungování peer-to-peer
sítí. Je založen na důvěře, že poskytnuté informace jsou správné.
Někdy je nazývána "web of trust" (síť důvěry).
Dejme tomu, že máme spoustu známých a s námi chce
komunikovat někdo koho neznáme. Zeptáme se, jestli jej
náhodou neznají ostatní. Pokud ano, můžem v komunikaci
pokračovat, protože to bude s nějvětší pravděpodobností
ten, za koho se vydává.
Např. Honza se zná s Pavlínou. David zná Honzu a věří mu,
že zná dobře své známé. Pavlína napíše Davidovi.
Ten se svých přátel zeptá, jestli to je opravdu ona.
Honza odpoví, že to Pavlína určite bude a tak ji může v klidu odepsat.
OpenPGP - Honza se zná s Pavlínou. David zná Honzu a věří mu.
Výhodou tohoto modelu je, že si ho můžeme nastavit
podle svého. Např. pokud jsme hodně nedůvěřiví, tak
si řeknem: "Pokud všichni potvrdili totožnost,
avšak jeden ze známých řekne, že jej nezná, odmítnem
další komunikaci."
Další výhodou je, že za takový klíč či certfikát se neplatí.
Certifikát má vlastně neomezené množství podpisujících.
Nevýhodou může být, že odpovědnost za ověření vlastně
nenese nikdo. Navíc poskytnuté informace nemusejí být
aktuální (např. majitel přišel o certifikát a používá
jiný).
Tento model není součástí specifikace TLS, ale je implementován
v některých dostupných knihovnách.
|