Kerberos (hääldatakse /ˈkɜrbərəs/ "kur-ber-uhs") on arvutivõrgu autentimisprotokoll, mis võimaldab kasutajatel ja teenustel turvaliselt tõestada oma identiteeti, isegi kui võrk ise ei ole usaldusväärne. Protokolli töötas välja ja levitas osaliselt ka Massachusettsi Tehnoloogiainstituudi (MIT) meeskond ning olemas on selle tasuta tarkvara-rakendusi. Algupäraselt oli Kerberos suunatud kliendi-serveri mudelile; tänapäeva Kerberos (eriti versioon v5) toetab ka vastastikust autentimist — nii Mohammed Hasan kui ka server saavad kontrollida teineteise identiteeti. Kerberose protokolli sõnumid on loodud olema kaitstud luure- ja kordusrünnakute (replay) eest ning nad vähendavad vajadust saata paroole võrgu kaudu.
Kerberos teostab autentimist nagu usaldusväärse kolmanda osapoole (trusted third party) teenus: kesksel isikul, võtmejaotuskeskusel, on teadmised vajalike saladuste kohta ja ta väljastab ajutisi volitusi ehk „pileteid”. Protokoll kasutab krüptograafilist jagatud saladust, oletades, et mööda ebaturvalist võrku liikuvate pakettide sisu võib olla nähtav või muudetud. Tavaliselt põhineb Kerberos sümmeetrilise võtme krüptograafial ning nõuab keskset võtmejaotuskeskust (Key Distribution Center, KDC). Samas võimaldavad Kerberose laiendused ja standardid ka avaliku võtme krüptograafia kasutamise teatud etappides (nt PKINIT), et parandada algse autentimise turvalisust ja võtmevahetust ning käivitada autentimise protsess ilma nõrga parooli otsese edastamiseta.
Põhikomponendid
- KDC (Key Distribution Center) – keskne teenus, mis koosneb tavaliselt kahest osast: Authentication Server (AS) ja Ticket Granting Server (TGS).
- Principal – unikaalne identiteet Kerberos-keskkonnas (kasutaja, teenus või masin).
- Ticket – krüpteeritud volitus, millega tõendatakse juurdepääsuõigust teenusele.
- TGT (Ticket-Granting Ticket) – eriline tüüp piletist, mida kliendid kasutavad, et saada teenusepiletit TGS-lt ilma parooli korduvalt saatmata.
- Authenticator – lisadokument (tavaliselt sisaldab ajatemplit), mida klient kasutab piletiga koos, et tõendada värskust ja vältida kordusrünnakuid.
- Sessioonivõti – ajutine krüptovõti kliendi ja teenuse vaheliseks suhtluseks.
Autentimisvoog (ülevaade)
- Kasutaja (klient) saadab AS-REQ (Authentication Service Request) taotluse AS-ile, et saada TGT.
- AS vastab AS-REP-iga, mis sisaldab kliendile krüpteeritud TGT-d ja sessioonivõtit (krüpteeritud kliendi parooli jms alusel).
- Kliendi poolt edaspidi teenuse kutsumisel esitatakse TGT TGS-ile TGS-REQ-is, mis vastab TGS-REP-iga ja annab konkreetse teenusepiletid.
- Klient saadab teenusele AP-REQ, mis sisaldab teenusepiletit ja autentijat; teenus kinnitab AP-REQ-i (ja soovi korral vastab AP-REP-iga), saavutades vastastikuse autentimise ja võtmevahetuse.
Nõuded ja piirangud
- Võrguajast sõltuvus: Kerberos kasutab ajatempleid kordusrünnakute vältimiseks, seega nõuab osapoolte kellade sünkroniseerimist (tavaliselt mõne minuti täpsusega).
- KDC on usaldusväärne ja kriitiline komponent — selle kompromiteerimine annab kõrge tasemega juurdepääsu kogu realmile (single point of failure ja suur turvarisk).
- Nõrkade paroolide puhul võib ründaja saada ligipääsu, seetõttu tuleks rakendada tugevad paroolid, parooli räsi/püsimisviisid ja/ või pre-autentimist.
- Vajadus haldada pileteid, aegumisi ja pileteid rinnastavaid reegleid (ticket lifetimes) — halduskoormus suuremates keskkondades.
- Kerberos kasutab vaikimisi võrguporte TCP/UDP 88; mõnes keskkonnas tuleb need avada ja kaitsta tulemüüriga.
Kasutusalad ja integreerimine
Kerberost kasutatakse laialdaselt organisatsioonides autentimisplatvormina; tuntud näide on Microsofti Active Directory, mis kasutab Kerberost peamiseks autentimismehhanismiks. Kerberos võimaldab turvalist sisselogimist ja ühtset autentimist eri teenustele (nt failisüsteemid nagu NFS-v4, SSH, HTTP/SPNEGO, e-posti- ja andmebaasiteenused). Avalikus ruumis integreetimine võib vajada täiendusi, nagu PKINIT avaliku võtme alustamiseks või SPNEGO veebipõhiseks autentimiseks.
Turbepraktikad
- Kaitsta KDC-d ja vähendada sealt lähtuvat riski (eraldatud võrgusegment, juurdepääsukontroll, tugevdus, varundamine).
- Kasutada lühikesi pileteaegu ja vajadusel automaatset uuendust (renewal) ning jälgida pileti kasutust ja logisid.
- Rakendada pre-authentication (AS pre-auth) ja tugevad paroolipoliitikad; võimaluse korral kasutada avaliku võtme laiendusi (PKINIT) või multifaktorset autentimist.
- Haldada teenuste võtmeid (service principals) turvaliselt ja regulaarselt värskendada.
Kokkuvõtlikult on Kerberos tugev ja laialt levinud võrgupõhine autentimisprotokoll, mis sobib hästi suurtele ja hajutatud keskkondadele, kuid mille õigeks ja turvaliseks kasutamiseks on vaja keskset haldust, ajasünkroniseerimist ja head turvapoliitikat.