Next: Tanácsok setuid root
Up: Security
Previous: A 4.3BSD UNIX
A Kerberos elkészítésének célja az volt, hogy
a hálózatba rakott "nem megbízható" számítógépekkel
se lehessen a rendszerben illetéktelenül dolgozni, a szerver és a
kliens közt áramló adatokat titkosítani lehessen, és a kliensek
ne tagadhassák le kilétüket a szerverek elott. A Kerberos rendszer
a következoképpen muködik:
Van egy belso adatbázis, amely ( azonosító, kulcs)
párokat tárol, ahol az azonosítók között elofordul az egész
rendszerhez hozzáféro összes felhsználó azonosítója, és
minden egyes szerverhez is tartozik egy-egy azonosító.
- Amikor a felhasználó bejelentkezik valamelyik számítógépbe,
és már beírta a nevét a login: üzenet után,
a login program (aki a bejelentkezéskor fellépo feladatokat végzi el)
egy üzenetet küld a Kerberos illetékesség-vizsgáló szervernek.
Az üzenet tartalmaz két szöveget: az egyik szöveg a felhasználó
azonosítója, a
másik szöveg pedig az ún. jegykiadó szerver
(ticket-granting szerver, TGS) nevét tartalmazza (ennek a szerepérol
késobb lesz szó).
- Az illetékesség-vizsgáló szerver a fent említett
adatbázisból kikeresi a kapott üzenetben lévo két
azonosítóhoz tartozó kulcsokat (a felhasználói
azonosítóhoz tárolt kulcs megegyezik a felhasználó
titkosított jelszavával). Ezután a szerver egy válaszüzenetet küld
vissza, ami tartalmaz egy titkos ún. TGS-kulcsot, és
egy ún. jegyet. Ez a TGS-jegy tartalmazza a felhasználói
azonosítót, a jegykiadó szerver (TGS) nevét, annak a
számítógépnek az Internet címét, amelyen a
felhasználó dolgozik, és a fent említett TGS-kulcsot.
A TGS-jegy az üzenetben titkosítva van a felhasználó által nem ismert
kulccsal (a jegykiadó szerver azonosítójához tartozó kulccsal), és
a teljes üzenet titkosítva van a felhasználó titkosított
jelszavával, hogy más ne férjen hozzá a tartalmához.
- A felhasználó jelszavának beadása után az azonosító szervertol
visszakapott üzenetet a login program a felhasználó titkosított jelszavával
dekódolja, és a TGS-kulcsot valamint a (titkosított) TGS-jegyet
eltárolja.
- Ezután ha a felhasználónak valamilyen hálózati
szolgáltatásra van szüksége, akkor a jegykiadó szervertol
(TGS-tol) kérnie kell egy "jegyet" a kívánt szerverhez, és
a szervernél ezzel a jeggyel azonosíthatja magát.
- Ha például a nyomtató szervert akarjuk használni, akkor
ahhoz egy jegy kéréséhez a jegykiadó szerverhez egy olyan
üzenetet kell küldeni, amely a korábban eltárolt TGS-jegyet,
a nyomtató szerver nevét és egy, a korábban megkapott TGS-kulccsal
titkosított adatmezot (ellenorzo mezot).
Ez az ellenorzo mezo tartalmazza a felhasználó bejelentkezési nevét,
a gépjének az Internet címét, és a pillanatnyi idot.
- A jegykiadó szerver a kapott üzenet ellenorzése után
válaszüzenetet küld, amiben van egy új kulcs, és egy új
(titkosított) jegy. Ez a titkosított jegy a szolgáltatást
kéro kilétét igazolja, és a nyomtató szerver kulcsával van
titkosítva (ami a Kerberos adatbázisában van, és csak a nyomtató
szerver és a Kerberos férhet hozzá - ui. a nyomtató szerverbe például
"be van huzalozva".).
A válaszüzenet a korábbi TGS-kulccsal van titkosítva.
- A felhasználó programja az üzenetet dekódolja, és a
nyomtató szervernek a fenti "új jegyet" kell elküldenie (másik két
adatmezo mellett), ezzel igazolhatja kilétét. A másik két
adatmezok közül az egyik a nyomtató szerver nevét, a
másik pedig (a korábban említett ellenorzo mezohöz
hasonlóan) a felhasználó bejelentkezési nevét, a gépjének
az Internet címét, és a pillanatnyi idot tartalmazza
(ez a mezo az elozo pontban említett új kulccsal
van titkosítva, ezért ezt a nyomtató szerver dekódolni tudja).
A két helyen is említett ellenorzo mezo tartalmazza a
pillanatnyi idot is. Ez azért lényeges, mert ezek az "igazolványok"
viszonylag rövid élettartalmúak, nehogy valami illetéktelen
"hálózatlehallgató" újra fel tudja használni. Viszont ekkor
meg kell oldani azt, hogy a hálózatban levo gépek órájai
nagyjából együtt legyenek.
Next: Tanácsok setuid root
Up: Security
Previous: A 4.3BSD UNIX
Csizmazia Balazs
Tue Apr 2 00:06:27 MET DST 1996