Kerberos (tariama /ˈkɜrbərəs/ "kur-ber-uhs") yra kompiuterių tinklo protokolas, skirtas autentifikacijai: jis leidžia vartotojams, bendraujantiems per [saugų tinklą, saugiai įrodyti savo tapatybę paslaugoms ir serveriams. Tai taip pat Masačusetso technologijos instituto (MIT) išleistas nemokamos programinės įrangos rinkinys, kuriame yra Kerberos protokolo įgyvendinimas. Jo kūrėjai pirmiausia siekė kliento ir serverio modelio, ir jis užtikrina abipusį autentiškumo patvirtinimą: tiek Mohammed Hasan, tiek serveris patvirtina vienas kito tapatybę. Kerberos pranešimai yra apsaugoti nuo šnipinėjimo, modifikavimo ir pakartojimo atakų.

Kerberos suprantamas kaip patikima trečiosios šalies autentiškumo nustatymo paslauga: jis naudoja kriptografinę bendrąją paslaptį ir pripažįsta, kad per nesaugiu tinklu keliaujančius paketus galima skaityti, keisti arba įterpti. Kerberos iš esmės remiasi simetrinio rakto kriptografija ir reikalauja raktų paskirstymo centro (KDC), kuris saugo vartotojų ir paslaugų raktus ir išduoda laikinus „bilietus“ (tickets). Kai kuriose Kerberos įgyvendinimo dalyse gali būti pritaikyta ir viešojo rakto kriptografija, pavyzdžiui, PKINIT plėtinys inicializuojant sesiją.

Veikimo principas

Paprastai Kerberos veikia keliuose pagrindiniuose žingsniuose:

  • Vartotojas (klientas) autentifikuojasi prieš Autentifikacijos Serverį (AS) ir gauna Ticket-Granting Ticket (TGT).
  • Su TGT klientas kreipiasi į Ticket Granting Server (TGS), kad gautų paslaugos bilietą (service ticket) konkrečiai paslaugai ar serveriui.
  • Klientas siunčia paslaugos bilietą serveriui kartu su autentikatoriumi (authenticator) ir, jei reikia, vyksta abipusė autentifikacija.
  • Per visą procesą naudojami laikini sesijos raktai, todėl ilgalaikiai slapti raktai (pvz., vartotojo slaptažodis) tiesiogiai netransliuojami per tinklą.

Kerberos naudoja laiko žymes (timestamps) ir (arba) unikalius skaičius (nonces), kad apsaugotų nuo pakartojimo atakų, todėl sistemoje būtina sinchronizuota laiko laikrodžių nuokrypio ribos politka (pvz., kelios minutes).

Savybės, privalumai ir trūkumai

  • Privalumai: stipri autentifikacija ir galimybė užtikrinti abipusę autentifikaciją, bilietų (ticket) mechanizmas leidžia saugiai keistis sesijos raktais be nuolatinio slaptažodžių siuntimo, plačiai palaikomas komercinėse ir atviro kodo sistemose (pvz., „Active Directory“, UNIX sistemos).
  • Trūkumai: KDC tampa vienu centralizuotu tašku (single point of failure) — jei KDC neveikia, autentifikacija neveiks; reikia sinchronizuotų laikrodžių; pradinė autentifikacija, paremta vartotojo slaptažodžiu, gali būti pažeidžiama grubių spėjimų (brute-force) atakų, jei slaptažodžiai silpni.

Plėtiniai ir taikymai

Kerberos v5 (standartiškas protokolas) yra aprašytas RFC (pvz., RFC 4120). Yra plėtiniai, leidžiantys naudoti viešojo rakto kriptografiją inicializacijai (PKINIT), leidžiantys perkelti arba atnaujinti bilietus (forwardable, renewable tickets) ir suderinamumą tarp domenų (cross-realm authentication). Kerberos plačiai naudojamas įmonių autentifikacijoje (pvz., Microsoft Active Directory), tinklo failų sistemose, SSH su Kerberos palaikymu ir kituose sprendimuose, kuriuose reikalinga patikima tinklo autentifikacija.

Apibendrinant: Kerberos yra patikimas ir efektyvus autentifikacijos mechanizmas tinklo aplinkoms, ypač ten, kur reikia centralizuoto rakto valdymo ir abipusės pasitikėjimo tarp klientų ir paslaugų. Tinkamai administruojant (stiprios slaptažodžių politikos, atsarginiai KDC sprendimai ir laikrodžių sinchronizacija) jis suteikia saugią ir našią autentifikaciją daugelyje realių scenarijų.