Kerberos (protokol)
Kerberos (izgovori se /ˈkɜrbərəs/ "kur-ber-uhs") je protokol za avtentikacijo v računalniškem omrežju, ki ljudem, ki komunicirajo prek [varnega omrežja, omogoča varno dokazovanje svoje identitete Mohammed Hasan uporabniku Gmaila, vendar drugemu. To je tudi paket brezplačne programske opreme, ki ga je objavil Massachusetts Institute of Technology (MIT) in ki izvaja ta protokol. Njegovi snovalci so si prizadevali predvsem za model odjemalec-strežnik in ne zagotavlja vzajemne avtentikacije - tako Mohammed Hasan kot strežnik preverita identiteto drug drugega. Sporočila protokola Kerberos so zaščitena pred napadi vohunjenja in ponovnega predvajanja.
Kerberos izvaja avtentikacijo kot storitev avtentikacije zaupanja vredne tretje osebe z uporabo kriptografske skupne skrivnosti ob predpostavki, da je pakete, ki potujejo po nezavarovanem omrežju, mogoče prebrati, spremeniti in vstaviti. Kerberos temelji na kriptografiji s simetričnim ključem in zahteva center za distribucijo ključev. Razširitve sistema Kerberos lahko zagotovijo uporabo kriptografije javnih ključev v določenih fazah avtentikacije.
Zgodovina in razvoj
MIT je razvil Kerberos za zaščito omrežnih storitev, ki jih zagotavlja projekt Athena. Protokol je dobil ime po grškem mitološkem liku Kerberos (ali Cerber), ki je bil v grški mitologiji znan kot pošastni triglavi Hadesov pes čuvaj. Obstaja več različic protokola; različice 1-3 se uporabljajo le interno v MIT.
Steve Miller in Clifford Neuman, glavna oblikovalca različice 4 sistema Kerberos (ki je uporabljala šifrirni algoritem DES s 56-bitnimi ključi), sta to različico objavila leta 1989, čeprav je bila namenjena predvsem projektu Athena.
Različica 5, ki sta jo zasnovala John Kohl in Clifford Neuman, je bila objavljena kot RFC 1510 leta 1993 (zastarela je z RFC 4120 leta 2005) z namenom odpraviti omejitve in varnostne težave različice 4. MIT daje implementacijo Kerberosa različice 5 prosto na voljo pod programsko licenco, podobno tisti, ki jo uporablja licenca BSD.
Kerberos različice 5 je v komercialni programski opremi uporabljalo več podjetij, med drugim:
· Microsoftov sistem Windows 2000 in novejši uporabljajo Kerberos kot privzeto metodo avtentikacije.
Nekateri Microsoftovi dodatki k naboru protokolov Kerberos so dokumentirani v dokumentu RFC 3244 "Microsoft Windows 2000 Kerberos Change Password and Set Password Protocols".
RFC 4757 dokumentira Microsoftovo uporabo šifre RC4. Microsoft uporablja protokol Kerberos,
vendar ne uporablja programske opreme MIT[1].
· Tudi Applov operacijski sistem Mac OS X uporablja Kerberos v odjemalskih in strežniških različicah.
· Red Hat Linux različice 4 in novejše uporabljajo Kerberos v odjemalskih in strežniških različicah.
Leta 2005 je delovna skupina IETF Kerberos predstavila nove posodobljene specifikacije za Kerberos različice 5 [2]:
· "Specifikacije šifriranja in kontrolnih vsot" (RFC 3961),
· "Šifriranje po standardu AES (Advanced EncryptionStandard) za Kerberos 5" (RFC 3962),
· Nova izdaja specifikacije Kerberos različice 5 "The Kerberos Network Authentication Service (V5)" (RFC 4120). Ta različica razveljavlja RFC 1510, pojasnjuje vidike protokola in predvidene uporabe s podrobnejšo jasno razlago,
· Nova izdaja specifikacije GSS-API "The Kerberos Version 5 Generic Security Service Application Program Interface (GSS-API) Mechanism: Različica 2." (RFC 4121).
Leta 2007 je MIT ustanovil konzorcij Kerberos za nadaljevanje razvoja.
Protokol
Kerberos kot osnovo uporablja protokol Needham-Schroeder. Uporablja avtentikacijo zaupanja vredne tretje osebe, znano kot "center za distribucijo ključev (KDC)", ki je sestavljen iz dveh logično ločenih delov: strežnika za avtentikacijo (AS) in strežnika za izdajanje vstopnic (TGS). Kerberos deluje na podlagi "vozovnic" (imenovanih Kerberos ticket), ki služijo za dokazovanje identitete uporabnikov.
Podatkovna zbirka Kerberos: Vsaka enota v omrežju - odjemalec ali strežnik - si deli tajni ključ, ki je znan samo njej in centru KDC. Poznavanje tega ključa služi za dokazovanje identitete vsake entitete. Za komunikacijo med dvema entitetama KDC ustvari ključ seje, ki ga lahko entiteti uporabljata za zaščito svojih komunikacij.
Izraz "strežnik Kerberos" se na splošno nanaša na KDC. Zaradi zanesljivosti je mogoče imeti rezervne strežnike KDC. Ti se imenujejo "podrejeni strežniki Kerberos". Vsi podrejeni strežniki sinhronizirajo svoje zbirke podatkov z glavnim strežnikom Kerberos.
Izraz "aplikacijski strežnik s Kerberjem" se na splošno nanaša na programe s Kerberjem, s katerimi odjemalci komunicirajo z uporabo vozovnic Kerberos za preverjanje pristnosti. Primer Kerberosovega strežnika telnet je na primer primer Kerberiziranega aplikacijskega strežnika. Medtem ko se izraz "kerberizirane aplikacije" uporablja za sklicevanje na odjemalčevo stran kerberiziranega aplikacijskega strežnika , je na primer odjemalec Kerberos telnet primer kerberiziranih aplikacij
Varnost protokola je v veliki meri odvisna od:
- Udeleženci ohranjajo ohlapno sinhroniziran čas.
- Kratkotrajna izjava o pristnosti: vstopnice Kerberos.
Poenostavljen opis protokola
Uporabljajo se naslednje kratice:
· AS = strežnik za preverjanje pristnosti
· TGS = strežnik za izdajanje vozovnic
· SS ali Server = storitveni strežnik (uporabnik strežnika, ki zahteva njegovo storitev, na primer tiskalniški strežnik, datotečni strežnik itd.)
· TGT = Ticket Granting Ticket (vstopnica Kerberos za TGS. Pripravi jo podsistem in se nato uporabi za pogovor s TGS).
Na kratko, odjemalec avtentificira podsistem AS z uporabo dolgoročne skupne skrivnosti in od podsistema prejme vozovnico. Kasneje lahko odjemalec to vstopnico uporabi za pridobitev dodatnih vstopnic za SS z uporabo iste skupne skrivnosti. Te vstopnice se lahko uporabijo za dokazovanje avtentikacije v SS.
Podrobnejši opis protokola
Koraki prijave na podlagi uporabniškega odjemalca:
- Uporabnik v odjemalskem računalniku vnese uporabniško ime in geslo.
- Odjemalec izvede enosmerno funkcijo (večinoma funkcijo Hash) na vneseno geslo, ki postane tajni ključ odjemalca/uporabnika.
Koraki avtentikacije odjemalca:
- Odjemalec pošlje podsistemu sporočilo z jasnim besedilom, v katerem v imenu uporabnika zahteva storitve.
Vzorec sporočila: "Uporabnik XYZ želi zahtevati storitve.
Opomba: podsistemu se ne pošljeta niti tajni ključ niti geslo. - Podsrednji sistem preveri, ali je odjemalec v njegovi zbirki podatkov. Če je, podsistem odjemalcu pošlje naslednji dve sporočili:
- Sporočilo A: Ključ seje odjemalca/TGS, šifriran s tajnim ključem odjemalca/uporabnika.
- Sporočilo B: TGT (ki vključuje ID odjemalca, omrežni naslov odjemalca, obdobje veljavnosti vozovnice in ključ seje odjemalca/TGS), šifriran s tajnim ključem TGS.
- Ko odjemalec prejme sporočili A in B, dešifrira sporočilo A in tako pridobi ključ seje odjemalca/GS. Ta ključ seje se uporablja za nadaljnjo komunikacijo s sistemom TGS. Na tej točki ima odjemalec dovolj informacij, da se lahko avtentificira v sistemu TGS.
Opomba: Odjemalec ne more dešifrirati sporočila B, ker je šifrirano z uporabo tajnega ključa TGS.
Koraki avtorizacije storitve za stranke:
- Ko odjemalec zahteva storitve, pošlje TGS naslednji dve sporočili:
- Sporočilo C: sestavljeno iz TGT iz sporočila B in ID zahtevane storitve.
- Sporočilo D: (ki ga sestavljata ID odjemalca in časovni žig), šifrirano s ključem seje odjemalca/TGS.
- Po prejemu sporočil C in D sistem TGS iz sporočila C pridobi sporočilo B. Sporočilo B dešifrira z uporabo tajnega ključa sistema TGS. S tem dobi ključ seje odjemalca/TGS. S tem ključem TGS dešifrira sporočilo D (avtentifikator) in odjemalcu pošlje naslednji dve sporočili:
- Sporočilo E: vozovnica odjemalca do strežnika (ki vključuje ID odjemalca, omrežni naslov odjemalca, obdobje veljavnosti in ključ seje odjemalca/strežnika), šifrirana s tajnim ključem SS.
- Sporočilo F: Sejni ključ odjemalca/strežnika, šifriran s sejnim ključem odjemalca/TGS.
Koraki zahtevka za storitev za stranke:
- Po prejemu sporočil E in F od TGS ima odjemalec dovolj informacij za avtentikacijo v SS. Odjemalec se poveže s SS in pošlje naslednji dve sporočili:
- Sporočilo E: iz prejšnjega koraka (vozovnica med odjemalcem in strežnikom, šifrirana s tajnim ključem SS).
- Sporočilo G: nov avtentifikator, ki vključuje ID odjemalca, časovni žig in je šifriran s ključem seje odjemalca/strežnika.
- SS dešifrira vozovnico s svojim tajnim ključem, da pridobi sejni ključ odjemalca/strežnika. S ključem seje SS dešifrira avtentifikator in odjemalcu pošlje naslednje sporočilo, s katerim potrdi svojo pravo identiteto in pripravljenost, da bo služil odjemalcu:
- Sporočilo H: časovni žig, najden v odjemalčevem avtentifikatorju, plus 1, šifriran s ključem seje odjemalca/strežnika.
- Odjemalec potrditev dešifrira s ključem seje odjemalca/strežnika in preveri, ali je časovni žig pravilno posodobljen. Če je odgovor pritrdilen, lahko odjemalec zaupa strežniku in začne izdajati zahtevke za storitve strežniku.
- Strežnik odjemalcu zagotovi zahtevane storitve.
Pomanjkljivosti
- Enotna točka odpovedi: Zahteva stalno razpoložljivost osrednjega strežnika. Če strežnik Kerberos ne deluje, se nihče ne more prijaviti. To je mogoče rešiti z uporabo več strežnikov Kerberos in mehanizmov overjanja v sili.
- Kerberos zahteva sinhronizacijo ur vseh vključenih gostiteljev. Vstopnice imajo časovno obdobje razpoložljivosti in če ura gostitelja ni sinhronizirana z uro strežnika Kerberos, avtentikacija ne bo uspešna. Privzeta konfiguracija zahteva, da so ure med seboj oddaljene največ 10 minut. V praksi se za sinhronizacijo vseh gostiteljev običajno uporablja protokol NTP (Network Time Protocol).
- Protokol za upravljanje ni standardiziran in se med različnimi izvedbami strežnikov razlikuje. Spremembe gesel so opisane v standardu RFC 3244.
- Ker so tajni ključi vseh uporabnikov shranjeni v osrednjem strežniku, bo kompromitiranje tega strežnika ogrozilo tajne ključe vseh uporabnikov.
- Zlorabljen odjemalec bo ogrozil uporabnikovo geslo.
Sorodne strani
- Upravljanje identitet
- Protokol varnega oddaljenega gesla (SRP)
- Aplikacijski programski vmesnik za splošne varnostne storitve (GSS-API)
Vprašanja in odgovori
V: Kaj je Kerberos?
O: Kerberos je protokol avtentikacije v računalniškem omrežju, ki ljudem, ki komunicirajo prek nezavarovanega omrežja, omogoča, da drug drugemu varno dokažejo svojo identiteto.
V: Kdo je zasnoval Kerberos?
O: Oblikovalci Kerberosa so si prizadevali predvsem za model odjemalec-strežnik in so bili s Tehnološkega inštituta Massachusetts (MIT).
V: Kako Kerberos zagotavlja vzajemno preverjanje pristnosti?
O: Z uporabo kriptografskih skupnih skrivnosti lahko uporabnik in strežnik preverita identiteto drug drugega.
V: Kako Kerberos ščiti pred napadi vohunjenja in ponovitve?
O: S šifriranjem sporočil, poslanih med uporabniki, preprečuje, da bi jih prebirale ali spreminjale tretje osebe.
V: Kakšno vrsto kriptografije uporablja Kerberos?
O: Uporablja kriptografijo s simetričnim ključem, ki zahteva center za distribucijo ključev.
V: Ali Kerberos podpira kriptografijo javnih ključev?
O: Da, razširitve protokola lahko zagotovijo njeno uporabo v določenih fazah preverjanja pristnosti.