Problémem s centrální autoritou pro ověření identity je možnost falšovat její výsledky. To hrozí zejména v distribuovaných systémech, kde je snažší zachytit komunikaci mezi aplikacemi a touto autoritou. Aby se ošetřil tento problém, používají se bezpečnostní protokoly na základě návrhu Needhama a Schroedera, jejichž typickým představitelem je Kerberos z MIT, RFC 1510.
Princip zmíněného protokolu je jednoduchý. Předpokládá se použití symetrické kryptografie a existence autority, která má k dispozici tajné klíče všech účastníků protokolu. Pokud pak klient chce komunikovat se serverem, použije následující sekvenci:
Klient pošle autoritě žádost o spojení se serverem, ve které uvede své jméno, jméno serveru a unikátní číslo U1.
Autorita ověří právo klienta spojit se se serverem.
Autorita pošle klientovi zprávu zašifrovanou jeho tajným klíčem KC, ve které uvede unikátní číslo U1 předtím zaslané klientem, náhodný klíč KR pro komunikaci se serverem a tiket T, což je ještě jednou klíč KR a jméno klienta, vše zašifrované tajným klíčem serveru KS.
Klient ověří pravost autority tím, že byla schopna vrátit zaslané unikátní číslo U1 zašifrované jeho tajným klíčem KC.
Klient pošle serveru zprávu, ve které uvede tiket T.
Server pošle klientovi zprávu zašifrovanou klíčem KR, ve které uvede unikátní číslo U2.
Klient pošle serveru zprávu zašifrovanou klíčem KR, ve které uvede domluvenou transformaci unikátního čísla U2.
Server ověří pravost klienta tím, že byl schopen provést transformaci unikátního čísla U2 se znalostí klíče KR.
Zbývající slabinou tohoto protokolu je možnost vydávat se za klienta v situaci, kdy skutečný klient například havaruje a v paměti zůstane klíč KR. Kerberos tento problém řeší doplněním časového razítka tak, aby tiket T a tedy klíč KR bylo možné použít jen omezenou dobu, po které klient požádá autoritu o obnovení.
References.
Coulouris G., Dollimore J., Kindberg T.: Distributed Systems Concepts And Design