Kerberos protokoll

A Wikipédiából, a szabad enciklopédiából

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 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 | forrásszöveg szerkesztése]

A MIT azért fejlesztette ki a Kerberos-t, 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 KHT-Royal Institute of Technology, 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 Kerberos-t a kisegítő katonai technológiák közé sorolta, és betiltotta 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 svédországi Royal Institute of Technology 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 export titkosítási szabályzata (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 Kerberos-t használják alapértelmezett hitelesítési módszerként. Néhány, a Microsoft által kiegészített Kerberos protokoll csomagot 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 Mac OS X-jét, a Red Hat Enterprise Linux 4-et, a Sun Solaris-ét, az IBM AIX-ját, 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 | forrásszöveg szerkesztése]

Elmélet[szerkesztés | forrásszöveg szerkesztése]

A Kerberos a szimmetrikus Needhsm-Schroeder protokollon alapszik. Ez egy „megbízható harmadik felet” vesz igénybe, egy úgynevezett Kulcs Elosztó Központot (KDC), amely logikailag két különböző részből áll: egy hitelesítési szerverből (AS) és egy jegy kiadó szerverből (TGS). A Kerberosz í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 által és csak 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 nagyban a részvevők közötti lassú szinkronizálási időre és a rövid élettartamú hitelestés állításara alapszik, amit Kerberos jegyeknek hívunk.

Leírás[szerkesztés | forrásszöveg szerkesztése]

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 Jegy Kiadó 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ás Szerverrel, é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:

Kerberos sch en1.png

  • AS = Hitelesítési Szerver
  • SS = szolgáltatás Szerver
  • TGS = Jegy Kiadó Szerver
  • TGT = Jegy Kiadó 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ás szerverrel akkor használhatja, vagy újra felhasználhatja ezt a jegyet, hogy a Jegy Kiadó 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ás szervernek az azonosításunkra.

Hátrányok és korlátok[szerkesztés | forrásszöveg szerkesztése]

  • Egyetlen meghibásodási pont: Ez 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 hiba mé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ő szerver megvaló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 | forrásszöveg szerkesztése]

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.