Kerberos protokoll

számítógépes hálózati protokoll

A Kerberos (/kɛərbərəs/) egy számítógépes hálózati hitelesítési protokoll, amely egy nem biztonságos hálózaton keresztül úgy teszi lehetővé a csomópontok közötti kommunikációt, hogy biztonságos módon igazolják személyazonosságukat egymás felé.

Tervezőinek elsődleges célja egy kliens-szerver modell volt, amely kölcsönös hitelesítést nyújt mind a kliens, mind a szerver számára, hogy egymás személyazonosságát megállapíthassák. A Kerberos protokoll üzenetei védve vannak a lehallgatások és az ismétlődő támadások ellen (replay attacks). A Kerberos a szimmetrikus kulcsú titkosításon alapszik, amelyhez egy „megbízható harmadik fél” szükséges: opcionálisan, a hitelesítés egyes fázisaiban – az aszimmetrikus kulcsú titkosítást felhasználva – publikus kulcsú titkosítást is választhatunk. A Kerberos a Massachusetts Institute of Technology (MIT) által kiadott és alkalmazott protokoll, amely egy ingyenes szoftvercsomag is egyben. A Kerberos alapértelmezettként a 88-as portot használja.

Története és fejlesztése szerkesztés

Az MIT azért fejlesztette ki a Kerberost, hogy védelmet nyújtson az Athena Projekt által létrehozott hálózati szolgáltatások számára. A protokollt a görög mitológiából ismert Kerberosz (más néven Cerberus) alakjáról nevezték el, amely Hádész hatalmas háromfejű kutyája volt. A protokollnak számos verziója létezik, az 1–3. verzió csak a MIT belső köreiben fordult elő. A negyedik verzió tervezői, Steve Miller és Clifford Neuman, az 1980-as évek végén tették közzé azt, annak ellenére, hogy elsődlegesen az Athena Projektet célozták meg vele. Az ötödik verziót, amely RFC 1510-ként jelent meg 1993-ban (2005-ben az RFC 4120 vette át a helyét), John Kohl és Clifford Neuman tervezte azzal a céllal, hogy kiküszöböljék a négyes verzió limitáltságát és biztonsági problémáit. A MIT ingyenes hozzáférhetőséget biztosít a Kerberos alkalmazásához a BSD-nél alkalmazott szerzői engedély feltételei mellett. 2007-ben a MIT megalakította a Kerberos Társulatot (Kerberos Consortium) a folyamatos fejlesztés elősegítése érdekében. Az alapító szponzorok között szerepelnek olyan cégek, mint az Oracle, az Apple Inc., a Google, a Microsoft és a Centrify Corporation, felsőoktatási intézmények, mint a svéd Kungliga Tekniska högskolan(wd), a Stanford University, a MIT és egyéb forgalmazók is, mint például a CyberSafe, amely kereskedelmileg támogatott verziókat kínál. Az egyesült államokbeli hatóságok a Kerberost a kisegítő katonai technológiák közé sorolták, és betiltották annak exportját, mivel az a DES titkosítási algoritmust alkalmazta (56 bites kulcsokkal). Egy nem amerikai tervezésű Kerberos 4 segítségével – melyet a KTH-KRB fejlesztett ki a Kungliga Tekniska högskolan falai között – a rendszer elérhetővé vált az Egyesült Államokon kívül is, ahol később megváltozott a titkosítási eszközök exportjának szabályzása (2000 környékén). A svéd implementáció egy ún. eBones korlátozott verzión alapszik. Az eBones alapjául az exportált MIT Bones kiadás szolgált, amely pedig a Kerberos 4-re épült. A Windows 2000 és utódai a Kerberost használják alapértelmezett hitelesítési módszerként. Néhány, a Microsoft által kiegészített Kerberos-protokollcsomagot az RFC 3244 "Microsoft Windows 2000 Kerberos Change Password and Set Password Protocols"-ban dokumentálnak. Az RFC 4657-ben található meg az RC4 rejtjel Microsoft általi használatának dokumentációja. Miközben a Microsoft a Kerberos protokollt használja, nem él a MIT szoftver alkalmazásával. Számos UNIX vagy UNIX-hoz hasonló operációs rendszer – beleértve a FreeBSD-t, az Apple macOS-ét, a Red Hat Enterprise Linux 4-et, a Sun Solarisát, az IBM AIX-et, a HP OpenVMS-ét, és sok mást is – magában foglalja azt a szoftvert, amely a felhasználók és szolgáltatások Kerberos-hitelesítését végzi. 2005 óta az IETF Kerberos munkacsoport frissíti a specifikációkat. A legutóbbi frissítések között szerepel:

  • Titkosítás és ellenőrzőösszeg specifikáció (Encryption and Checksum Specifications, RF 3961)
  • Haladó Titkosítási Standard (Advanced Encryption Standard, AES) Kerberos 5 titkosítás (RFC 3962)
  • A Kerberos V5 specifikációjának egyik új kiadása „A Kerberos Hálózat Hitelesítési Szolgáltatása (V5)” ("The Kerberos Network Authentication Service (V5)” (RFC 4120). Ez a verzió váltotta fel az RFC 1510-et, részletesebben és egyértelműbben magyarázza a protokoll vonatkozásait és rendeltetésszerű használatát.
  • A GSS-API specifikáció új kiadása a „A Kerberos ötödik verziójának általános biztonsági szolgáltatás alkalmazásának program-interfész (GSS-API) mechanizmusa: második verzió” ("The Kerberos Version 5 Generic Security Service Application Program Interface (GSS-API) Mechanism: Version 2." (RFC 4121)
  • 2010. december 22.: a krb5-1.9 kiadása

Protokoll szerkesztés

Elmélet szerkesztés

A Kerberos a szimmetrikus Needham–Schroeder-protokollon(wd) alapszik. Ez egy „megbízható harmadik felet” vesz igénybe, egy úgynevezett kulcselosztó központot (Key Distribution Center, KDC), amely logikailag két különböző részből áll: egy hitelesítési szerverből (Authentication Server, AS) és egy jegykiadó szerverből (Ticket Granting Service, TGS). A Kerberos így „jegy” alapú rendszeren működik, ami a felhasználók azonosítását szolgálja. A KDC fenntart egy adatbázist a titkos kulcsok számára, így minden fél - legyen az kliens vagy szerver – csak egy saját maga és a KDC által ismert kulcsot használ a hálózaton. Ennek a kulcsnak az ismerete bizonyítja a fél identitását. A két fél közötti kommunikációra a KDC egy úgynevezett „session” kulcsot is generál, hogy biztosítsa az egymás közti párbeszédet is. A protokoll biztonsága jórészt a részvevők között meglévő laza időszinkronon és a rövid élettartamú hitelesítő adatok használatán – melyeket Kerberos-jegyeknek hívunk – alapul.

Leírás szerkesztés

A következő egy intuitív leírás. A kliens azonosítja magát a hitelesítési szervernek és kap egy jegyet. Minden jegy időbélyeges. Majd felveszi a kapcsolatot a jegykiadó szerverrel, és a kapott jegyet felhasználva azonosítja magát, majd egy szolgáltatást kér. Ha az ügyfél jogosult a szolgáltatásra, akkor küld egy másik jegyet. Ha ez megvan, az ügyfél kapcsolatba léphet a szolgáltatásszerverrel, és a második jeggyel bizonyítja, hogy jóváhagyták a szolgáltatás elérését.

Egy egyszerűbb, de több részletet tartalmazó ábrázolás:

 

  • AS = hitelesítési szerver
  • SS = szolgáltatásszerver
  • TGS = jegykiadó szerver
  • TGT = jegykiadó jegy

A kliens azonosítja egyszer magát az AS számára egy hosszú távú „közös titokkal” (például megadott jelszó) és kap egy TGT-t a szervertől. Később, amikor a kliens kapcsolatba lép a szolgáltatásszerverrel, akkor használhatja vagy újra felhasználhatja ezt a jegyet, hogy a jegykiadó szerver újabb jegyeket adhasson egyes szolgáltatásokhoz, anélkül, hogy használná a közös titkos jelszavat. Ezek a jegyek alkalmasak a szolgáltatásszerveren az azonosításunkra.

Hátrányok és korlátok szerkesztés

  • Egyetlen meghibásodási pont: A Kerberos megköveteli a központi szerver részéről a folyamatos rendelkezésre állást. Ha a Kerberos-szerver leáll, senki nem tud bejelentkezni. Ez a hibamérték csökkenthető több Kerberos-szerver és egyéb hitelesítési mechanizmusok használatával.
  • A Kerberos szigorú időkövetelményekkel bír, ami az érintett állomások óráinak szinkronizálását és értékhatáron belül tartását jelenti. A jegyeknek megadott rendelkezésre állási idejük van, így ha a fogadó fél órája nincs szinkronban a szerver órájával, a hitelesítés sikertelen lesz. Az MIT által meghatározott alapértelmezett eltérési határ maximum 5 perc lehet. A gyakorlatban a Hálózati Idő Protokoll megköveteli a folyamatos szinkronizációt.
  • Az adminisztrációs protokoll nem szabványosított, így különböző szervermegvalósításokon eltérő. A jelszóváltoztatás szabálya RFC 3244-ben leírtak alapján szabott.
  • Mivel minden hitelesítést egy központi szerver KDC irányít, egy betörés során bármelyik felhasználó megszemélyesíthetővé válik.

Fordítás szerkesztés

Ez a szócikk részben vagy egészben a Kerberos (protocol) című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.