Základy kryptografie pro manažery: Kerberos
Kerberos je síťový autentizační protokol, založený na symetrické kryptografii, který umožňuje bezpečnou oboustrannou autentizaci přes nezabezpečenou síť a je odolný vůči odposlechu a přehrání zachycených zpráv.
Běžně se používá k autentizaci v sítích s Windows a UNIX a přístupu k dalším službám, které se v těchto sítích nacházejí.
Při tomto způsobu autentizace se vůbec nepřenáší heslo po síti a to ani jako hash, nýbrž ten je použit jako symetrický klíč, takže slouží k šifrování i dešifrování přenášené zprávy mezi klientem a serverem.
Vše začíná tím, že uživatel, který se chce přihlásit, zadá své jméno a heslo. Z hesla se přímo na klientovi spočte jeho hash. Klient resp. služba starající se na klientovi o přihlášení posílá na autentizační server požadavek na autentizaci se jménem uživatele.
AS se podívá do své DB například AD, zda tam uživatele s daným jménem má, a pokud ano, tak vezme odpovídající hash hesla tohoto uživatele, z kterého se tímto stává šifrovací klíč (K1) a zašifruje jím tajný session klíč (K2), kterým bude později šifrována další komunikace s KDC.
AS pošle klientovi, který se chce autentizovat tajný session klíč (K2) zašifrovaný hashem jeho hesla (K1) a pokud uživatel zadal správné heslo, z kterého se spočetl hash (K1), tak jím tento tajný session klíč (K2) dešifruje. Pokud je zadaného heslo špatné, tak se samozřejmě dešifrování nezdaří.
Kromě tajného session klíče (K2) posílá AS na klienta ještě unikátní klíč TGT (Ticket Granting Ticket), který zašifruje svým tajným klíčem. Tento unikátní klíč může dešifrovat jen Ticket Granting Server (TGS), takže se jím nebudeme dál zabývat. TGT nicméně slouží k identifikaci uživatele a obsahuje jméno uživatele, IP adresu klienta, dobu platnosti ticketu (defaultně 10 hodin) a tajný session klíč (K2).
V tuto chvíli je už klient autentizován a může se proto pokusit přistoupit k nějaké službě na serveru (SS), který podporuje Kerberos. Za tímto účelem posílá klient na TGS dvě zprávy. První zprávou je TGT s ID služby, ke které chce přistoupit a druhou zprávou pak tzv. Autentikátor obsahující ID klienta a časovou značku, který je šifrován tajným session klíčem (K2). TGS dešifruje TGT a tím získá tajný session klíč (K2), kterým může následně dešifrovat Autentikátor.
TGS pak na klienta posílá rovněž dvě zprávy. První obsahuje nový ticket obsahující ID klienta, jeho IP adresu, dobu platnosti ticketu a tajný klíč (K3). Tuto zprávu zašifruje tajným klíčem služby (K4). Tajný klíč (K3) pak TGS zašifruje tajným session klíčem klienta (K2) a pošle mu jej jako další zprávu.
Jakmile klient obdrží tyto dvě zprávy, tak druhou zprávu dešifruje svým tajným session klíčem (K2), a tím získá tajný klíč (K3). Klient pak na SS přeposílá první zprávu a nový Autentikátor obsahující ID klienta a časovou značku a tuto zprávu zašifruje tajným klíčem (K3).
SS dešifruje první zprávu pomocí svého klíče (K4) tím získá tajný klíč (K3), kterým pak dešifruje i druhou zprávu. Na klienta pak posílá zprávu, která obsahuje časovou značku zvýšenou o jednotku a zašifrovanou tajným klíčem (K3). Klient pak tuto zprávu dešifruje tajným klíčem (K3).
Poznámka: AS (Authentication Server) a TGS (Ticket Granting Server) je součástí KDC (Key Distribution Center). SS (Server Service) je pak jakákoliv služba, která vyžaduje autentizaci a podporuje kerberosové tickety.
Vzhledem k tomu, že výše uvedený text je příliš stručný a celou problematiku značně zjednodušuje, dovoluji si zde uvést odkaz na velice poutavý a vyčerpávající popis protokolu Kerberos od svého kolegy Libora Dostálka, kterému tímto moc děkuji.
Štítky: kryptografie
K článku “Základy kryptografie pro manažery: Kerberos” se zde nenachází žádný komentář - buďte první.
Diskuse na tomto webu je moderována. Pod článkem budou zobrazovány jen takové komentáře, které nebudou sloužit k propagaci konkrétní firmy, produktu nebo služby. V případě, že chcete, aby z těchto stránek vedl odkaz na váš web, kontaktujte nás, známe efektivnější způsoby propagace.