Síť důvěry
Síť důvěry (anglicky Web of trust) je v kryptografii způsob, jakým se PGP, GnuPG (a ostatních OpenPGP kompatibilních systémech) ověřuje hodnověrnost veřejného klíče získaného z PKI (tj. informace o v něm uvedeném uživateli). Sítě důvěry jsou decentralizovanou alternativou vůči centralizovanému modelu infrastruktury certifikačních autorit. Existuje mnoho nezávislých sítí důvěry a kterýkoliv uživatel se do nich může se svým digitálním certifikátem zapojit. Koncept sítě důvěry byl v roce 1992 popsán tvůrcem PGP Philem Zimmermannem v manuálu pro PGP verze 2.0.
Princip budování sítě důvěry
Při využívání asymetrické šifry a digitálního podpisu postupem času každý shromáždí veřejné klíče od různých lidí. Může si u nich poznamenat, které považuje za důvěryhodné a stejně tak postupují ostatní uživatelé, kteří získají své vlastní důvěryhodné veřejné klíče. Takto si každý postupně vytvoří sbírku důvěryhodných veřejných klíčů. Svůj vlastní veřejný klíč si lidé nechávají od důvěryhodných osob elektronicky podepisovat (vzniká digitální certifikát). Poté může odesílatel elektronicky podepsaných dokumentů, které si vyměňuje s ostatními uživateli (např. e-maily) očekávat, že každý příjemce bude věřit alespoň jednomu elektronickému podpisu v jeho veřejném klíči. Vybuduje se tak decentralizovaná síť důvěry, která je otevřená pro další klíče i vztahy důvěry a je odolná vůči chybám.[1]
Certifikáty jsou v síti důvěry elektronicky podepsány ostatními uživateli sítě důvěry, kteří tím potvrzují spojení tohoto veřejného klíče s osobou nebo celkem, jež jsou v certifikátu uvedeny. Pro vzájemné podepisování klíčů se organizují Key signing parties (viz setkání s podepisováním klíčů).
OpenPGP implementace zahrnují vyjádření stupně důvěry různými stupni. Při ověřování důvěryhodnosti certifikátu se tak mohou načítat z jednotlivých elektronických podpisů hlasy, které mohou být použity pro rozhodování, jakou míru důvěry bude veřejný klíč v certifikátu mít. Například kdyby se tři částečně důvěryhodné podpisy zaručily za certifikát (a tím i za obsažený veřejný klíč) nebo kdyby to udělal jeden plně důvěryhodný podpis, tak budou informace v certifikátu považováno za plně důvěryhodné. Parametry určování míry důvěry jsou uživatelsky nastavitelné, ale mohou být při určování míry důvěry i kompletně vynechány, pokud si to uživatel přeje.
Srovnání s využitím certifikačních autorit
Způsob rozhodování o míře důvěry je v sítích důvěry velmi flexibilní a je z velké části ponechán v rukou jednotlivých uživatelů, kteří se musí při budování vlastní sítě důvěry chovat opatrně a obezřetně, protože právě na tom závisí výsledná kvalita jejich vlastní sítě důvěry. Tento způsob je ve velkém kontrastu k pevně dané hierarchické infrastruktuře certifikačních autorit, kde je uživatel nucen plně důvěřovat certifikátům podepsaných certifikačními autoritami. Zodpovědnost je tedy plně na certifikačních autoritách a na tom, jaké kořenové certifikáty má uživatel ve svém vlastním úložišti. Jinak není od uživatele očekávána žádná aktivita při rozhodovacích procesech ani není možné vyjádřit částečnou důvěru a podobně.
Typická X.509 PKI povoluje, aby byl každý certifikát podepsán pouze jedinou skupinou: certifikační autoritou (CA). Certifikát takové CA může být podepsán jinou CA až k ‘osobně podepsanému‘ kořenovému certifikátu. Kořenové certifikáty musí být k dispozici těm, kteří používají certifikát CA nižší úrovně, které jsou typicky velmi rozšířené. Jsou například distribuovány s aplikacemi jako webové prohlížeče, nebo emailové klienty. Tímto způsobem mohou být SSL/TLS chráněné internetové stránky, emailové zprávy apod. ověřeny, aniž by byla po uživateli vyžadována manuální instalace kořenového certifikátu. Aplikace obvykle obsahují přes 100 kořenových certifikátů od desítek PKI, čímž standardně poskytují důvěru skrze hierarchii certifikátů, která vede zpět k nim. Mnoho z těchto kořenových certifikátů bylo vytvořeno společnostmi, které se zhroutily, jako například Dot-com bubble (česky „bublina tečka com“ = Internetová horečka). Pokud nejsou tyto PKI stále řádně spravovány, nemělo by se na jejich kořenové certifikáty spoléhat.
Problémy sítí důvěry
OpenPGP síť důvěry je v podstatě neovlivnitelná takovými věcmi jako selhání společnosti, a stále funguje pouze s malými změnami. Nicméně se vyskytl související problém. Uživatelé, jak jedinci tak i organizace, kteří ztratí privátní klíč, nemohou dále dešifrovat přijaté zprávy, které byly vytvořeny pomocí odpovídajícího veřejného klíče z OpenPGP certifikátu. Rané PGP certifikáty neobsahovaly data vypršení a tak měly neomezenou platnost. Uživatelé museli připravovat podepsané rušící certifikáty pro chvíli, kdy bude odpovídající privátní klíč ztracen nebo oslaben. Jeden z předních šifrantů stále dostává zprávy zašifrované pomocí veřejného klíče, ke kterému už dávno ztratil privátní klíč (Niels Ferguson 2003, p.333). S takovými zprávami nemůže dělat nic jiného než je smazat poté, co oznámí odesílateli, že byly nečitelné a vyžádá si přeposlání s veřejným klíčem, ke kterému stále má svůj privátní. Pozdější PGP a všechny OpenPGP certifikáty zahrnují datum vypršení, které automaticky předchází takovým problémům. Tomuto problému se také dá lehce vyhnout použitím “designovaných odvolání“, které byly představeny na začátku devadesátých let. Držitel klíče může označit třetí stranu, která má povolení k tomu, aby odvolala platnost vlastníkova klíče pokud držitel ztratí svůj privátní a tudíž ztratí i schopnost zrušit svůj veřejný.
Netechnický, sociální problém se sítí důvěry je ten, že každá síť důvěry bez centrálního řízení (např. CA) závisí na důvěře ostatních uživatelů. Těm s novými certifikáty (tj. vytvořenými v procesu generování nového páru klíčů) nebudou ostatní uživatelské systémy pravděpodobně připraveny okamžitě důvěřovat (platí pro ty, kteří se osobně nesetkali) dokud nenaleznou dostatečný počet potvrzení pro tento nový certifikát. Důvodem je, že mnoho ostatních uživatelů sítě důvěry bude mít jejich certifikační prověřování nastaveno tak, aby vyžadovalo jedno nebo více plně důvěřovaných potvrzení neznámého certifikátu (nebo několik částečných potvrzení), než použijí veřejný klíč z tohoto certifikátu k přípravě zpráv, podpisů atd.
Navzdory širokému využití OpenPGP systémů a snadné dostupnosti on-line klíčových serverů, je v praxi možným problémem rychle nalézt někoho, kdo by potvrdil nový certifikát (např. porovnáváním fyzické identifikace s informacemi vlastníka klíče a poté digitálním podepsáním nového certifikátu). Uživatelé v odlehlých nebo nevyvinutých oblastech mohou najít ostatní uživatele jen zřídka. A pokud je tento další certifikát také nový, potom jeho podpis na jakémkoliv novém certifikátu nabízí jen okrajový přínos na cestě k důvěryhodnosti pro systémy ostatních skupin a pro možnost chráněné výměny zpráv s těmito skupinami. Key signing parties jsou relativně populárním mechanismem pro řešení tohoto problému. Síť důvěry Gossamer Spider[2] také dělá verifikaci klíčů jednodušší - spojováním OpenPGP uživatelů pomocí hierarchického provedení sítě důvěry, kde mohou mít koncoví uživatelé prospěch z náhodné nebo předurčené důvěry někoho, kdo je potvrzen jako “uvaděč“.
Možnost nalezení certifikátových řetězů je často ospravedlňována “malým světovým fenoménem[3]“: Máme-li dva jedince, je často možné mezi nimi najít takový krátký řetěz lidí, že každý jednotlivec v tomto řetězu zná předchozí i následující spoje. Nicméně, takový řetěz nemusí být nutně užitečný: osoba šifrující e-mail, nebo ověřující podpis, nejen že musí najít řetěz podpisů vedoucí od jeho privátního klíče ke klíči jeho korespondenta, ale také musí důvěřovat každému z tohoto řetězu, že je poctivý a kompetentní k podepisování klíčů, což je velikým omezením.
Reference
V tomto článku byl použit překlad textu z článku Web of trust na anglické Wikipedii.
- Volný překlad původní definice sítě důvěry od P. Zimmermanna
- Síť důvěry Gossamer Spider
- malým světovým fenoménem
Související články
Externí odkazy
- CAcert.org
- Vysvětlení PGP sítě důvěry
- "PGP Model"
- Přehled certifikačních systémů: X.509, CA, PGP a SKIP
- Srovnání zabezpečovacích e-mailových technologií - X.509 / PKI, PGP, and IBE
- Jak vytvořit síť důvěry bez „keysigninig“