Kerberos (ejtsd: /ˈkɜrbərəs/ "kur-ber-uhs") egy számítógépes hálózat nem hitelesítési protokoll, amely lehetővé teszi, hogy az emberek kommunikálnak egy [biztonságos hálózaton keresztül, hogy igazolják személyazonosságukat Mohammed Hasan egy Gmail felhasználó, de egy másik biztonságos módon. A Massachusetts Institute of Technology (MIT) által kiadott ingyenes szoftvercsomag is, amely ezt a protokollt valósítja meg. Tervezői elsősorban az ügyfél-kiszolgáló modellt célozták meg, és nem kölcsönös hitelesítést biztosít - mind a Mohammed Hasan, mind a kiszolgáló ellenőrzi egymás személyazonosságát. A Kerberos protokoll üzenetei védettek a kémkedés és a visszajátszási támadások ellen.
A Kerberos a hitelesítést megbízható harmadik fél hitelesítési szolgáltatásaként végzi kriptográfiai megosztott titok használatával, feltételezve, hogy a nem biztonságos hálózaton utazó csomagok olvashatók, módosíthatók és beilleszthetők. A Kerberos a szimmetrikus kulcsú kriptográfiára épül, és kulcselosztó központot igényel. A Kerberos kiterjesztései a hitelesítés bizonyos fázisaiban nyilvános kulcsú kriptográfia használatát is lehetővé teszik.
Működés röviden
A Kerberos célja, hogy egy megbízható központi szolgáltatón (a KDC — Key Distribution Center) keresztül biztosítsa a felhasználók és szolgáltatások hitelesítését anélkül, hogy jelszavakat közvetlenül küldenének a hálózaton. A Kerberos főbb elemei: ticket (jegy), session key (munkamenetkulcs) és a TGT (ticket-granting ticket, jegy a jegyek kiadásához). A protokoll feltételezi, hogy a hálózat elfogható, ezért kriptográfiát és időbélyegeket használ a visszajátszás megakadályozására, ezért fontos az órák szinkronban tartása a résztvevők között.
Fő komponensek
- Client (ügyfél) — a hitelesítést kérő felhasználó vagy gép.
- Service (kiszolgáló) — az a szolgáltatás (például fájlszerver, e-mail szerver), amelyhez hozzáférést kérnek.
- KDC (Key Distribution Center) — a központi szerver, amely két alkomponenst tartalmaz: az AS (Authentication Server) és a TGS (Ticket-Granting Server).
- Realm — a Kerberos hatókörét (bizalmi tartomány) leíró logikai egység.
- Principal — Kerberos-entitás (felhasználó, szolgáltatás), amelyhez kulcs tartozik.
A hitelesítési folyamat fő lépései
- 1. AS-kérés (Authentication Service Request): az ügyfél elküldi felhasználónevét az AS-nek, amely ha létezik és a kérés hiteles, kiad egy TGT-t (titkosítva a KDC és ügyfél közös kulcsával vagy a felhasználó jelszavából származtatott kulccsal), valamint egy munkamenetkulcsot az ügyfél és a TGS számára.
- 2. TGS-kérés (Ticket-Granting Service Request): az ügyfél a TGT segítségével kéri a TGS-től a konkrét szolgáltatáshoz tartozó jegyet (service ticket). A TGS visszaad egy szolgáltatásjegyet, amely tartalmaz egy munkamenetkulcsot az ügyfél és a célkiszolgáló között.
- 3. AP-kérés (Application Request): az ügyfél elküldi a szolgáltatásjegyet a célkiszolgálónak. A szerver dekódolja a jegyet, ellenőrzi az authentikátort (amely általában egy időbélyeg és a kliens által titkosított rész), és ha minden rendben van, a kapcsolat megtörténik — gyakran kölcsönös hitelesítés is zajlik.
Biztonsági jellemzők és kockázatok
A Kerberos erősségei közé tartozik a jegyek használata (így a jelszavak ritkán utaznak a hálózaton), a munkamenetkulcsok, és a visszajátszás elleni mechanizmusok (időbélyegek). Ugyanakkor vannak ismert kockázatok:
- Óraeltérésre érzékeny: a protokoll időbélyegekre támaszkodik, ezért a kliens, a KDC és a szolgáltatók óráinak szinkronban kell lenniük.
- KDC, mint egypontú hibaforrás: a KDC kompromittálása súlyos következményekkel jár — ellophatók jegyek és generálhatók hamis hitelesítések (például "golden ticket" támadások Active Directory környezetben).
- Jelszótámadások: ha a felhasználói jelszavak gyengék, offline jelszó-próbálás lehetséges az AS válasza alapján.
- Jegylopás és „pass-the-ticket”: ellopott jegyek segítségével támadó hozzáférést szerezhet szolgáltatásokhoz.
Kiterjesztések és modern megoldások
- PKINIT: a Kerberos Public Key Cryptography for Initial Authentication in Kerberos, amely lehetővé teszi a nyilvános kulcsú kriptográfia használatát az első (AS) fázisban, csökkentve a jelszavak szerepét.
- Cross-realm authentication: különböző realm-ek közti bizalmi kapcsolatok létrehozására szolgál.
- Integráció Active Directory-val: a Microsoft AD Kerberos-implementációt használ belső hitelesítésre és engedélyezésre.
Gyakorlati ajánlások és védekezés
- Használjon erős jelszavakat és többtényezős hitelesítést, ahol lehetséges (MFA).
- Rövidebb élettartamú jegyek és gyakori kulcscserék (például a krbtgt fiók forgatása AD környezetben) csökkentik a kompromittálás kockázatát.
- Szinkronizálja az órákat megbízható NTP-forrásokkal.
- Monitorozás és naplóellenőrzés: észlelhető a szokatlan jegyhasználat vagy magas szintű TGS-kérések száma.
- Korlátozott delegálás és szolgáltatásfiókok jogainak minimalizálása csökkenti a támadási felületet.
Implementációk és szabványok
- Ismert implementációk: MIT Kerberos, Heimdal, és a Microsoft Kerberos (Active Directory része).
- Fontos szabvány: az eredeti Kerberos v5 leírása és az RFC 4120 — ezek a legfontosabb referenciák azoknak, akik mélyebben szeretnék megérteni a protokollt.
Összefoglalva, a Kerberos egy széles körben használt és jól kidolgozott hitelesítési protokoll, amely hatékonyan védi a jelszavakat és támogatja a kölcsönös hitelesítést, feltéve, hogy a rendszeradminisztráció betartja a legjobb gyakorlatokat (erős jelszavak, óraszinkron, KDC védelme, jegyek élettartamának szabályozása). A protokoll kiterjeszthető és integrálható modern titkosítási megoldásokkal, többek között nyilvános kulcsú eljárásokkal is.