Kerberos používá jako základ protokol Needham-Schroeder. Využívá důvěryhodnou třetí stranu pro ověřování známou jako "distribuční centrum klíčů (KDC)", které se skládá ze dvou logicky oddělených částí: autentizačního serveru (AS) a serveru pro udělování vstupenek (TGS). Kerberos funguje na základě "ticketů" (tzv. Kerberos ticketů), které slouží k prokázání identity uživatelů.
databáze Kerberos: Každý subjekt v síti - klient nebo server - sdílí tajný klíč, který zná pouze on sám a KDC. Znalost tohoto klíče slouží k prokázání identity každé entity. Pro komunikaci mezi dvěma entitami generuje KDC klíč relace, který mohou tyto entity použít k zabezpečení své komunikace.
Termínem "server Kerberos" se obecně označuje KDC. Pro účely spolehlivosti je možné mít záložní KDC. Ty se označují jako "podřízené servery Kerberos". Všechny podřízené servery synchronizují své databáze z hlavního serveru Kerberos.
Termín "aplikační server s Kerberem" obecně označuje programy s Kerberem, s nimiž klienti komunikují pomocí tiketů Kerberos pro ověřování. Příkladem kerberizovaného aplikačního serveru je například telnetový server Kerberos . Zatímco termín "kerberizované aplikace" se používá pro označení klientské strany kerberizovaného aplikačního serveru , například klient telnetu Kerberos je příkladem kerberizovaných aplikací.
Bezpečnost protokolu závisí do značné míry na:
- Účastníci udržují volně synchronizovaný čas.
- Krátkodobé prohlášení o pravosti: lístky Kerberos.
Zjednodušený popis protokolu
Používají se následující zkratky:
· AS = ověřovací server
· TGS = server pro udělování vstupenek
· SS nebo Server = Service Server (Uživatel serveru, který požaduje jeho službu, například tiskový server, souborový server atd...)
· TGT = Ticket Granting Ticket (lístek Kerberos pro TGS. Připravený přidruženým systémem a poté použitý pro komunikaci s TGS).
Stručně řečeno, klient se ověří u přidruženého systému pomocí dlouhodobě sdíleného tajemství a obdrží od přidruženého systému tiket. Později může klient tento lístek použít k získání dalších lístků pro SS s použitím stejného sdíleného tajemství. Tyto tikety lze použít k prokázání ověření SS.
Podrobnější informace o protokolu
Kroky přihlášení uživatele na základě klienta:
- Uživatel zadá uživatelské jméno a heslo na klientském počítači.
- Klient provede nad zadaným heslem jednosměrnou funkci (většinou funkci Hash), která se stane tajným klíčem klienta/uživatele.
Kroky ověřování klienta:
- Klient odešle přidruženému systému zprávu s otevřeným textem, ve které jménem uživatele žádá o služby.
Ukázka zprávy: "User XYZ would like to request services" (Uživatel XYZ žádá o služby).
Poznámka: Tajný klíč ani heslo se přidruženému systému nezasílají. - Přidružený systém zkontroluje, zda je klient v jeho databázi. Pokud ano, vyšle přidružený systém klientovi zpět následující dvě zprávy:
- Zpráva A: Klíč relace klienta/TGS zašifrovaný pomocí tajného klíče klienta/uživatele.
- Zpráva B: TGT (obsahuje ID klienta, adresu sítě klienta, dobu platnosti tiketu a klíč relace klienta/TGS) zašifrovaný pomocí tajného klíče TGS.
- Jakmile klient obdrží zprávy A a B, dešifruje zprávu A a získá klíč relace klienta/TGS. Tento klíč relace se používá pro další komunikaci s TGS. V tomto okamžiku má klient dostatek informací k ověření své totožnosti vůči TGS.
Poznámka: Klient nemůže dešifrovat zprávu B, protože je zašifrována pomocí tajného klíče TGS.
Kroky autorizace klientských služeb:
- Při požadavku na služby odešle klient do TGS následující dvě zprávy:
- Zpráva C: Skládá se z TGT ze zprávy B a ID požadované služby.
- Zpráva D: Autentikátor (který se skládá z ID klienta a časového razítka), zašifrovaný pomocí klíče relace klienta/TGS.
- Po přijetí zpráv C a D získá TGS ze zprávy C zprávu B. Zprávu B dešifruje pomocí tajného klíče TGS. Tím získá klíč relace klienta a TGS. Pomocí tohoto klíče TGS dešifruje zprávu D (Authenticator) a odešle klientovi následující dvě zprávy:
- Zpráva E: Tiket mezi klientem a serverem (který obsahuje ID klienta, síťovou adresu klienta, dobu platnosti a klíč relace klienta a serveru) zašifrovaný pomocí tajného klíče SS.
- Zpráva F: Klíč relace klient/server zašifrovaný klíčem relace klient/TGS.
Kroky při vyřizování žádosti o služby pro klienty:
- Po obdržení zpráv E a F od TGS má klient dostatek informací, aby se mohl autentizovat vůči SS. Klient se připojí k SS a odešle následující dvě zprávy:
- Zpráva E: z předchozího kroku (lístek mezi klientem a serverem zašifrovaný pomocí tajného klíče SS).
- Zpráva G: nový autentizátor, který obsahuje ID klienta, časové razítko a je zašifrován pomocí klíče relace klienta a serveru.
- SS dešifruje tiket pomocí svého vlastního tajného klíče a získá klíč relace klient/server. Pomocí klíče relace SS dešifruje autentizátor a odešle klientovi následující zprávu, aby potvrdil svou skutečnou identitu a ochotu klienta obsloužit:
- Zpráva H: časové razítko nalezené v klientově autentizačním zařízení plus 1, zašifrované pomocí klíče relace klienta a serveru.
- Klient dešifruje potvrzení pomocí klíče relace klienta a serveru a zkontroluje, zda je časové razítko správně aktualizováno. Pokud ano, klient může serveru důvěřovat a může začít vydávat požadavky na služby serveru.
- Server poskytuje klientovi požadované služby.