Kerberos: protokol za varno omrežno avtentikacijo in preverjanje identitete

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 drugim strežnikom in storitvam. Kerberos je tudi paket brezplačne programske opreme, ki ga je razvil in objavil Massachusetts Institute of Technology (MIT) ter ga uporablja kot referenčno implementacijo protokola. Snovalci protokola so se osredotočili na model odjemalec-strežnik, v katerem lahko odjemalec preveri identiteto strežnika in obratno — torej protokol podpira vzajemno avtentikacijo. Sporočila sistema Kerberos so zasnovana tako, da so zaščitena pred prisluškovanjem (eavesdropping), spreminjanjem in ponovnim predvajanjem (replay attacks).

Osnovni koncepti in komponente

Kerberos izvaja avtentikacijo kot storitev avtentikacije zaupanja vredne tretje osebe z uporabo kriptografske skupne skrivnosti. Sistem predpostavlja, da so paketi, ki potujejo po omrežju (tudi nezavarovanem omrežju), lahko prestreženi, prebrani ali spremenjeni, zato se za zaupno komunikacijo uporabljajo šifrirani žetoni (tickets) in začasni sejni ključi.

Glavne komponente Kerbrosa so:

  • Key Distribution Center (KDC), ki običajno vsebuje Authentication Server (AS) in Ticket Granting Server (TGS) — v slovenskem prevodu pogosto imenovan center za distribucijo ključev.
  • Odjemalec (uporabnikova stranka), ki zahteva dostop do storitev.
  • Strežnik s storitvijo, ki sprejema Kerberos žetone za preverjanje pravic do dostopa (strežnik).
  • Žetoni (tickets) in sejni ključi, ki jih izdaja KDC in omogočajo, da strežnik preveri odjemalca brez večkratnih vnosa gesla.

Kako deluje (poenostavljen potek)

  • Uporabnik vnese svoje poverilnice pri odjemalcu. Odjemalec se obrne na AS in zahteva Ticket Granting Ticket (TGT).
  • AS preveri uporabnikovo identiteto (navadno z lokalnim preverjanjem gesla) in izda TGT, ki je šifriran z ključem TGS.
  • Ko odjemalec želi dostopati do določene storitve, pošlje TGT TGS in zahtevo za žeton storitve. TGS izda ustrezen žeton (service ticket), šifriran s ključem želenega strežnika.
  • Odjemalec predstavi žeton strežniku storitve; strežnik ga razšifrira in na podlagi vsebine ter morebitnih preverjanj (npr. žetonski sejni ključ) odobri ali zavrne dostop.

V celotnem postopku se uporabljata pretežno kriptografija s simetričnim ključem in začasni (sejni) ključi. Zaščita pred ponovnim predvajanjem uporablja časovne žige in številke povpraševanja.

Razširitve in javni ključi

Kerberos lahko deluje z razširitvami, ki uporabljajo kriptografije javnih ključev v začetnih fazah (npr. PKINIT za avtentikacijo odjemalca do AS), kar zmanjšuje tveganje pri upravljanju skupnih skrivnosti. Kljub temu temeljni model temelji na kriptografske skupne skrivnosti in centralnem KDC.

Uporaba, prednosti in omejitve

  • Kerberos je široko uporabljen v okoljih, kot je Microsoft Active Directory, v univerzitetnih omrežjih in v številnih Linux/UNIX sistemih.
  • Prednosti: enkratna prijava (SSO), zmanjšano pošiljanje gesel po omrežju, zaščita pred prisluškovanjem in replay napadi ter podpora za vzajemno avtentikacijo.
  • Omejitve in tveganja: KDC predstavlja centralno točko zaupanja in tarčo; kompromitacija KDC ali dolgoročno ukradenih žetonov/ključa lahko ogrozi varnost. Pomembni so tudi varnost pravilnega upravljanja gesel, sinhronizacija ure in nadgradnje protokola.

Implemetacije in zgodovina

Kerberos izhaja iz raziskav na MIT in je na voljo kot referenčna implementacija v obliki paket brezplačne programske opreme, ki jo je objavil Massachusetts Institute of Technology. V praksi lahko posamezni primeri uporabnikov ilustrirajo delovanje protokola — na primer uporabnik, npr. Mohammed Hasan, lahko prejme žeton in se nato varno poveže s storitvijo na strežniku, pri čemer oboji izmenjujejo dokaze pristnosti brez neposrednega izmenjevanja gesel.

Varnostne prakse

  • Sistemom, ki uporabljajo Kerberos, je priporočljivo vzpostaviti stroge politike gesel, varno upravljanje KDC in redne revizije.
  • Pomembna je sinhronizacija sistemskih ur (Kerberos uporablja časovna žiga) in zaščita pred krajo žetonov (npr. zaščita pomnilnika, kriptiranje shranjenih žetonov).
  • Uporaba razširitev z javnimi ključi (PKINIT) in večstopenjskih avtentikacij lahko dodatno zmanjša tveganje kompromitacije skupnih skrivnosti.

Kerberos ostaja temeljna tehnologija za varno avtentikacijo v mnogih omrežjih zaradi svoje učinkovitosti, podpore vzajemne avtentikacije in zmožnosti centraliziranega upravljanja poverilnic.

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:

  1. Udeleženci ohranjajo ohlapno sinhroniziran čas.
  2. 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:

  1. Uporabnik v odjemalskem računalniku vnese uporabniško ime in geslo.
  2. Odjemalec izvede enosmerno funkcijo (večinoma funkcijo Hash) na vneseno geslo, ki postane tajni ključ odjemalca/uporabnika.

Koraki avtentikacije odjemalca:

  1. 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.
  2. 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.
  3. 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:

  1. 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.
  2. 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.

AlegsaOnline.com - 2020 / 2025 - License CC3