Vysvětlit jako jsem 5 let: Kerberos – co je Kerberos, a proč bych se měl starat?

i když toto téma pravděpodobně nelze vysvětlit 5letému a být pochopen, je to můj pokus o defragmentaci dokumentace s některými vizuálními pomůckami a stravitelným jazykem.,

Ve zkratce

v Podstatě, Kerberos jde jen o toto:

  • protokol pro autentizaci
  • využívá vstupenky k ověření
  • zabraňuje ukládání hesel místně nebo jejich odesláním přes internet
  • zahrnuje trusted 3rd-party
  • postaveno na symetrický klíč šifrování

máte lístek – váš doklad totožnosti zašifrovaný pomocí tajného klíče pro konkrétní požadované služby – na vašem místním počítači (vytvoření vstupenek je popsán níže); tak dlouho, jak je to platný, můžete získat přístup k požadované službě, který je v rámci protokolu Kerberos realm.,

obvykle se používá v podnikových / Interních prostředích. Možná chcete získat přístup k internímu mzdovému webu a zkontrolovat, jaký malý bonus Vám Váš šéf dal. Namísto opětovného zadání přihlašovacích údajů uživatele/hesla se vaše vstupenka (uložená do mezipaměti ve vašem systému) používá k ověření, které umožňuje jednotné přihlášení.

vaše vstupenka se obnoví, když se přihlásíte k počítači, nebo když kinit USER v terminálu.

pro trivia-milující lidi, kerberosovo jméno pochází z řecké mytologie, tříhlavý strážní pes Hades., Je to docela vhodné, protože ověření mezi klientem a servisem nebo hostitelským strojem vyžaduje třetí stranu (Klíčové distribuční centrum).

Wikipedia

Kerberos Realm

Admins vytvořit realms – Kerberos realms – to bude zahrnovat vše, co je k dispozici pro přístup. Poskytnutá, nemusíte mít přístup k některým službám nebo hostitelského stroje, který je definován v rámci politiky řízení – vývojáři neměli přístup nic financí související, věci, jako že. Ale říše definuje, co Kerberos spravuje, pokud jde o to, kdo má přístup k čemu.,

Váš stroj, klient, žije v této oblasti, stejně jako služba nebo hostitel, který chcete požádat, a klíčové distribuční centrum KDC (ne, ne KGB, i když na to vždycky myslím). V následujícím příkladu odděluji autentizační Server a server pro udělování vstupenek, ale oba jsou v KDC.

držet v zadní části své mysli

možná Budete chtít vrátit zpátky, poté, co budete číst přes kostrbatý podrobnosti o tom, jak příklad funguje.,

Při žádosti o přístup ke službě nebo hostitele, tři interakce probíhají mezi vámi a:

  • Ověřovací Server
  • Ticket Granting Server
  • Služby nebo hostitelském počítači, které budete chtít přístup.

Další důležité body:

  • při každé interakci obdržíte dvě zprávy. Každá zpráva je ta, kterou můžete dešifrovat, a ta, kterou nemůžete.
  • služba nebo stroj, ke kterému žádáte přístup, nikdy nekomunikuje přímo s KDC.,
  • KDC ukládá všechny tajné klíče pro uživatelské stroje a služby do své databáze.
  • tajné klíče jsou hesla plus sůl, která jsou hash-hash algoritmus je vybrán během implementace nastavení Kerberos. U Služeb nebo hostitelských strojů neexistují žádná hesla (kdo by do nich vstoupil). Klíč je ve skutečnosti generován adminem během počátečního nastavení a zapamatován na stroji service / host.
  • tyto tajné klíče jsou opět uloženy v databázi KDC; Vzpomeňte si na závislost Kerberosu na kryptografii symetrického klíče.,
  • samotný KDC je šifrován pomocí hlavního klíče pro přidání vrstvy obtížnosti při krádeži klíčů z databáze.
  • existují konfigurace a implementace Kerberos, které používají kryptografii veřejného klíče namísto symetrického šifrování klíčů.

stranou: pořadí zpráv a jejich obsah zde diskutované neodráží pořadí, ve kterém jsou odesílány přes TCP nebo UDP.

níže uvedený příklad popisuje, co se stane, když o něco požádáte z interních informací o službách HTTP týkajících se mezd v rámci podnikového intranetu.,

vy a autentizační Server

chcete přistupovat ke službě HTTP, ale nejprve se musíte seznámit s autentizačním serverem. Přihlášení do počítače, nebo kinit USERNAME, iniciuje tento úvod prostřednictvím prostého požadavku na vstupenku (TGT)., Holý text zprávy obsahuje:

  • vaše jméno/ID
  • název/ID požadované služby (v tomto případě je služba Ticket Granting Server),
  • vaše síťová adresa (může být seznam IP adres pro více strojů, nebo může být null, pokud chtějí používat na každém počítači), a
  • požadované životnosti pro platnost TGT,

a je odeslán na Autentizační Server.

autentizační Server zkontroluje, zda jste v databázi KDC. Tato kontrola je pouze zjistit, zda existují; žádné pověření jsou kontrolovány.,

Pokud nejsou žádné chyby (např. uživatel není nalezen), to bude náhodně generovat klíč, tzv. session key pro použití mezi vámi a Ticket Granting Server (TGS).

autentizační Server vám poté odešle dvě zprávy., Jedna zpráva je TGT, který obsahuje:

  • vaše jméno/ID,
  • TGS jméno/ID,
  • časové razítko,
  • vaše síťová adresa (může být seznam IP adres pro více strojů, nebo může být null, pokud chtějí používat na každém počítači)
  • životnost TGT (by mohlo být to, co jste původně požádal, nižší, pokud vy nebo TGS je tajné klíče jsou vyprší, nebo jiný limit, který byl realizován během Kerberos setup), a
  • TGS Session Key,

a je zašifrována pomocí Tajného Klíče TGS ., Další zpráva obsahuje:

  • TGS name/ID,
  • timestamp,
  • lifetime (stejně jako výše) a
  • TGS session Key

a je zašifrována tajným klíčem klienta. Všimněte si, že klíč relace TGS je sdílený klíč mezi vámi a TGS.

Váš Klient Tajný Klíč je určen výzvou k zadání hesla, přidání soli () a zatřiďování celou věc. Nyní jej můžete použít pro dešifrování druhé zprávy, abyste získali klíč relace TGS., Pokud je heslo nesprávné, nebudete moci zprávu dešifrovat. Vezměte prosím na vědomí, že toto je krok, ve kterém je heslo, které zadáte, implicitně ověřeno.

nemůžete však dešifrovat TGT, protože neznáte tajný klíč TGS. Šifrovaný TGT je uložen ve vaší credential cache.

vy a server pro udělování vstupenek

v tomto okamžiku máte TGT, který nemůžete číst, protože nemáte tajný klíč TGS k jeho dešifrování. Máte však Klíč relace TGS.,

nyní je řada na vás poslat dvě zprávy. Ti nejprve připravit Authenticator, šifrované s TGS Session Key, obsahující:

  • vaše jméno/ID a
  • časové razítko.

odeslání nezašifrované zprávy, která obsahuje:

  • požadované Služby HTTP název/ID chcete, a přístup k nim
  • životnost Lístek pro Služby HTTP,

spolu s šifrované Authenticator a TGT na Ticket Granting Server.

server pro udělování vstupenek nejprve zkontroluje databázi KDC a zjistí, zda služba HTTP existuje.,

Pokud ano, TGS dešifruje TGT svým tajným klíčem . Vzhledem k tomu, že nyní nešifrovaný TGT obsahuje Klíč relace TGS, TGS může dešifrovat autentizátor, který jste odeslali.,z důvodu:

  • porovnat své ID klienta od Authenticator, že z TGT
  • porovnat časové razítko z Authenticator, že z TGT (typické Kerberos-systém tolerance rozdílu je 2 minuty, ale může být nakonfigurován jinak)
  • zkontrolujte, zda TGT je prošlé (životnost prvku),
  • zkontrolujte, zda Authenticator není již v TGS cache (pro zamezení opakované útoky), a
  • pokud síťová adresa v původní žádosti není null, porovnává zdrojovou IP adresy adresy sítě (nebo v požadované seznamu) v rámci TGT.,

Ticket Granting Server pak náhodně vygeneruje Klíč Relace HTTP Služby, a připravuje HTTP lístek Služby pro vás, že obsahuje:

  • vaše jméno/ID,
  • HTTP název Služby/ID,
  • vaše síťová adresa (může být seznam IP adres pro více strojů, nebo může být null, pokud chtějí používat na každém počítači),
  • časové razítko,
  • trvání platnosti jízdenky, a
  • HTTP Servisní Klíč Relace,

a zašifruje ho s HTTP Služby Tajný Klíč.

pak vám TGS odešle dvě zprávy., Jeden je šifrované HTTP Lístek Služby; jiné obsahuje:

  • HTTP název Služby/ID,
  • časové razítko,
  • trvání platnosti jízdenky, a
  • HTTP Servisní Klíč Relace,

to je šifrována s TGS Session Key.

váš počítač dešifruje poslední zprávu klíčem relace TGS, který dříve uložil do mezipaměti, aby získal klíč relace služby HTTP.

Váš stroj však nemůže dešifrovat servisní lístek HTTP, protože je šifrován tajným klíčem služby HTTP.,

a HTTP Služby

nyní přístup K HTTP Služby, vaše zařízení se připravuje další Ověřovací zprávu, která obsahuje:

  • vaše jméno/ID,
  • časové razítko,

a je šifrována pomocí Klíč Relace HTTP Služby. Váš počítač pak odešle autentizátor a stále šifrovaný servisní lístek HTTP obdržený od TGS.

HTTP služba poté dešifruje lístek tajným klíčem k získání klíče relace služby HTTP., Poté použije tento klíč relace k dešifrování odeslané zprávy Authenticator.,es své ID klienta od Authenticator, že Jízdenky,

  • porovnává časové razítko z Authenticator, že Jízdenky (typické Kerberos-systém tolerance rozdílu je 2 minuty, ale může být nakonfigurován jinak),
  • zkontroluje, zda Jízdenka je prošlá (životnost prvek),
  • kontroluje, zda Authenticator již není v HTTP Server s cache (pro zamezení opakované útoky), a
  • pokud síťová adresa v původní žádosti není null, porovnává zdrojovou IP adresy adresy sítě (nebo v požadované seznam) ve Lístek.,
  • služba HTTP poté odešle zprávu Authenticator obsahující její ID a časové razítko, aby vám potvrdila svou totožnost a je šifrována pomocí klíče relace služby HTTP.

    Váš počítač čte Authenticator zprávu o dešifrování s mezipaměti Služby HTTP Klíč Relace, a ví, že musí obdržet zprávu s HTTP Služby ID a časové razítko.

    a nyní jste byli ověřeni pro použití služby HTTP., Budoucí požadavky používají službu ticket HTTP v mezipaměti, pokud neuplynula, jak je definováno v atributu lifetime.

    zatímco o tom budu psát později, samotná služba HTTP musí být schopna podporovat Kerberos. Také musíte mít také prohlížeč, který podporuje SPNEGO / vyjednávat.,

    Možná, že re-číst bodů dříve uvedeno; podívejte se na tohle nebo tohle aktuální realizace, zvláště jeden, na kterém jsem zaplaceno za práci, která komunikuje s touto populární provádění; nebo recenzi, návod, zdroj, průvodce, video, které mi poslal, když jsem se začal učit o Kerberos, nebo RFC sám.

    výše uvedené obrázky byly vykresleny pomocí Keynote s ikonami používanými z písma awesome a glyphicons a jsou k dispozici na slideshare.

    Napsat komentář

    Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *