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.