Kerberos

Kerberos je prostředek pro zajištění autentizace přístupu k aplikacím v sítích otevřených systémů; název byl př...


Kerberos je prostředek pro zajištění autentizace přístupu k aplikacím v sítích
otevřených systémů; název byl převzat z antické mytologie, ve které trojhlavý
pes Kerberos hlídal vchod do podsvětí. Proč se stal Kerberos ve světě
bezpečnostních technologií tak známým?
Dvě mouchy jednou ranou
Kerberos byl vytvořen jako příspěvek MIT (Massachusetts Institute of
Technology) v rámci světoznámého projektu Athena, na kterém práce probíhaly v
letech 1983 až 1991. Plní dva základní cíle zajišťuje autentizaci klientů v
síti a zároveň slouží pro distribuci klíčů. Použita je zde "pull" varianta
centrální distribuce klíčů viz obr. 1, kde centrum distribuce klíčů je označeno
jako KDC (Key Distribution Center). Metody typu "pull" jsou přitom vhodnější
pro sítě LAN, zatímco metody typu "push" pro prostředí sítí WAN.
Kerberos vychází z Needham-Schroederova modelu autentizace a distribuce klíčů.
Tradiční modely autentizace s KDC však mají jeden praktický problém: Klientův
klíč pro komunikaci s KDC bývá při častých požadavcích na služby kešován v
paměti počítače a může se tak stát předmětem útoku. V případě úspěchu má
útočník možnost využívat přístupu ke službám do další aktualizace klíčů. Pokud
např. aktualizace klíčů probíhá 1x za rok a uživatel žádá o službu v průměru
10x za den, je klíč použit zhruba 3650x za rok a jeho vyzrazení může mít
celoroční následky. Proto je u Kerbera v rámci KDC oddělena autentizace od
poskytování služeb. Autentizaci zde zajišťuje autentizační server (dále AS),
poskytování služeb tzv. Ticket Granting Server (dále TGS). Uživatel A na
základě svého otevřeného požadavku obdrží od autentizačního serveru klíč KA,TGS
pro komunikaci s TGS zašifrovaný klíčem KA,AS pro vzájemnou komunikaci A s AS a
dále lístek (Ticket) s oprávněním k této komunikaci. Pokud např. bude uživatel
operovat s heslem 1x za měsíc, není ho problém uchránit a navíc vyzrazení
obdrženého klíče KA,TGS nemůže mít delší následky než po jeden měsíc. Kerberos
se umí vypořádat i s útoky přehráváním. Používá k tomu metodu časových razítek;
razítko z doby i je značeno jako Ti, kde i=1,2,3,...
Počítá se s tím, že jeden AS má na starost více TGS. Takovéto administrativní
domény s právě jedním AS a obvykle více TGS se zde nazývají říše (realms).
Každý uživatel Kerbera (společnost, organizace) si vytváří svou "říši". AS a
TGS bývají umístěny na jediném serveru a tvoří KDC; mohou na něm být dokonce
společně s aplikacemi, ale to z bezpečnostních důvodů není vhodné.
Každý uživatel, klientský i serverový program (v terminologii Kerbera
principál) si musí dlouhodobě vést své heslo, s jehož pomocí čte zprávu od KDC.
Naopak v KDC je databáze klíčů o položkách:
jméno principála,
kryptografický klíč,
verze klíče (kdyby byl současně uložen starý a nový klíč),
expirační doba klíče,
datum poslední modifikace,
principál, který naposledy modifikoval záznam,
maximální doba života klíče (dále L).
Jak to funguje?
Cílem každého klienta (dále A) je získat
klíč pro relaci se serverem B budeme ho označovat jako KA,B,
oprávnění ke spuštění aplikace na serveru B, lístek TicketA,B = {KA,B,A,T4,L}.
TGS poskytují klientům lístky s povolením používat síťovou službu resp.
aplikaci pouze po předložení lístku s potvrzením o jejich autentizaci TicketA,
TGS = {KA,TGS,A,TGS,T2,WA,L}
kde WA je adresa pracovní stanice, kterou používá klient A.
Sledujme na obr. 2 a 3 postup autentizace klienta A u AS a vyžádání si u TGS
služby na serveru B. Klient A v 1. kroku žádá AS o svou autentizaci, která mu
umožní komunikaci s konkrétním TGS. AS si ověří, zda má o něm ve své databázi
záznam a pokud ano, pošle mu lístek opravňující obracet se na TGS 2. krok.
Zároveň mu pošle heslo pro styk s TGS, ale zašifrované tajným klíčem klienta A.
Pokud by se chtěl nějaký jiný klient představovat jako A, nevyluštil by
odpověď, protože nezná příslušný klíč KA,AS. Ve 3. kroku klient A posílá svůj
požadavek na server TGS, tj. uvede údaje o svém požadavku (kdo je, z které
pracovní stanice se obrací) a tyto údaje posílá zašifrované klíčem pro tajnou
komunikaci s TGS, který obdržel od AS (tato část zprávy se označuje jako
autentikátor). Dále uvede předmět svého zájmu server B (případně specifikuje
požadovanou službu) a nakonec předá lístek o své verifikaci, a to aniž by ho
mohl přečíst či přepsat (klíč pro komunikaci mezi AS a TGS nezná). Ve 4. kroku
TGS předá klientovi A klíč relace zašifrovaný klíčem pro vzájemnou komunikaci;
klient A dosáhl svého prvního cíle. TGS mu zároveň předá lístek s oprávněním na
využití služeb serveru B, zašifrovaný klíčem pro vzájemný styk mezi TGS a
aplikačním serverem. Klient A s lístkem nemůže dělat nic jiného, než ho v 5.
kroku předat serveru B s tím, že mu k němu opět přiloží svůj autentikátor.
Server B v rámci lístku obdrží klíč relace. Údaj o klientovi A získává dvakrát;
může porovnat, zda žadatel je tentýž, pro kterého byl lístek vystaven.
Poslední, 6. krok, je volitelný a slouží k prokázání identity serveru vůči
klientovi.
U rozsáhlých sítí může docházet k neefektivním přenosům při komunikaci s KDC.
Proto byla pro tyto sítě navržena koncepce master a slave KDC; master KDC vedou
autoritativní kopie databází principiálů a tyto jsou pak poskytovány slave KDC.
Je-li KDC více, mohou být uspořádány víceúrovňově v rámci stromové struktury.
Nasazení Kerbera má smysl pokud se vhodně upraví všechny aplikace dané sítě.
Tento proces dostal název kerberizace a je založen na použití jednoduchých
autentizačních funkcí na straně klienta i serveru.
Nic není dokonalé
První tři verze Kerbera nebyly použity mimo MIT a upadly v zapomenutí. Verze 4
se naproti tomu poměrně rozšířila. Její vývoj byl ukončen v roce 1992 a v roce
1993 byla jako standard pro Internet specifikována verze 5 (viz RFC 1510).
Verze 4 a 5 si nyní na trhu konkurují; verze 4 je jednodušší a výkonnější,
verze 5 má vyšší funkcionalitu.
Verze 4 má následující omezení:
Protokolové prostředí tvoří sada TCP/IP.
Pro šifrování je použit DES.
Není možná autentizace typu uživatel uživatel, tak potřebná pro systémy s X
Window.
Lístky jsou nepřenositelné ze systému na systém.
Lístek se vztahuje k síťové adrese, což působí problémy u počítačů s více
síťovými rozhraními.
Maximální doba platnosti lístku je dána počtem pětiminutových intervalů, které
lze zaznamenat v jedné slabice (21,25 hodin).
V rámci pětiminutových intervalů není zajištěna ochrana proti přehrávání.
Neexistuje ochrana proti útokům na systémové hodiny.
Na TGS může libovolný klient klást požadavky a tak si vytvářet slovníky typu
dotaz odpověď a získávat materiál pro pozdější kryptoanalýzu.
Protože je Kerberos založen na autentizaci vycházející ze znalosti tajemství,
bude tu vždy jistá teoretická možnost útoků typu Trojského koně.
Heslo relace se během ní vícenásobně opakuje, což může být předmětem útoků.
Tato omezení spolehlivě odstranila verze 5:
Protokolové prostředí není omezeno pouze na protokol IP, lze použít libovolný
síťový protokol.
Může být použita libovolná symetrická šifra. To je dáno doplněním jádra Kerbera
do GSS-API.
Je možné zvolit digitální podepisování zpráv.
Kódování zpráv je standardní, tj. v souladu se základními pravidly abstraktní
symbolické notace ASN.1.
Místo s dobou platnosti lístku se zde pracuje s dobami zahájení a ukončení
služby. To umožňuje vyžádat si službu na pozdější dobu.
Přijaté zprávy jsou v pětiminutových intervalech uloženy v cache pamětech a tím
je zajištěna ochrana proti útokům přehráváním.
Je zde možnost autentizace typu uživatel uživatel.
Je možná autentizace mezi říšemi (příliš se ale nepoužívá).
Verze 5 přinesla i zcela nové protokolové vlastnosti:
Lístky jsou obnovitelné (lze jednou prodloužit dobu jejich platnosti).
Lístky jsou přenositelné; je-li třeba (např. v případě výpadku serveru), TGS
přenese lístek na jiný server.
Je zde přípustná delegace přístupových práv aplikační ser-ver přenese lístek na
jiný server (např. pro potřebu tisku po provedeném výpočtu). Byly doplněny
mechanismy pro autorizaci a účetnictví.
Byla doplněna možnost autentizace na principu vlastnictví tajemství.
Je doplněna možnost náhodného generování klíčů v rámci jedné relace.
Zdálo by se, že není o čem přemýšlet a na verzi 4 je třeba zapomenout. Je ovšem
otázkou, zda jsou vždy silnější možnosti verze 5 nezbytné a zda práce s ní
nebude příliš náročná. Verze 4 zahrnuje cca 60 000 instrukcí jazyka C, verze 5
je třikrát obsáhlejší.
Po čem sáhnout?
Kerberos se v praxi přeci jen šířeji prosadil, a to na rozdíl od konkurenčních
produktů (NetSP, SPX, TESS, SESAME atd.). Je to především pro jeho vyzrálost.
Problémem pro všechny bezpečnostní produkty přicházející z USA, zůstávají
exportní omezení kryptografických technologií. V našich podmínkách lze dnes
postupovat trojím způsobem: Obrátit se na některou z mála firem, které tuto
technologii poskytují a nechat tento problém na ní. Např. firma Hewlett-Packard
i u nás nabízí DCE pro počítače řady 9000 vybavené Kerberem verze 5. Anebo si
kryptografické funkce doplnit do systému Bones, což je freewarová verze 4
Kerbera, která neobsahuje kryptografické funkce (stáhnout si ji lze z ftp
serveru ftp.finet.fi). Poslední možností je vše si naprogramovat s využitím
GSS-API. Je paradoxem, že největší nadějí pro budoucnost Kerbera jsou právě
Windows NT 5.0, která počítají s Kerberem verze 5. Skeptici dnes říkají "Ale co
z toho Kerbera zbyde?" a je na Microsoftu, aby je přesvědčil.
8 0202 / ram









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.