Kerberos (lausutaan /ˈkɜrbərəs/ "kur-ber-uhs") on tietokoneverkkoissa käytettävä todennusprotokolla, jonka avulla [suojatun verkon kautta viestivät ihmiset voivat todistaa henkilöllisyytensä toisilleen turvallisesti. Se on myös Massachusetts Institute of Technologyn (MIT) julkaisema vapaiden ohjelmistojen sarja, joka toteuttaa tämän protokollan. Sen suunnittelijat pyrkivät ensisijaisesti asiakas–palvelin-malliin, ja Kerberos tukee keskinäistä todentamista: sekä Mohammed Hasan että palvelin voivat varmistaa toistensa henkilöllisyyden. Kerberosin viestit on suojattu vakoilulta ja toistohyökkäyksiltä.
Perusperiaate
Kerberos toteuttaa todennuksen käyttämällä luotettavaa kolmatta osapuolta (Key Distribution Center, KDC). KDC jakautuu yleensä kahteen loogiseen osaan: Authentication Service (AS) ja Ticket Granting Service (TGS). Perusajatuksena on, että käyttäjä todentautuu KDC:lle ja saa sieltä lyhytaikaisia "lippuja" (tickets), joita hän voi käyttää palveluihin ilman, että salasana lähetetään toistuvasti verkon yli.
Miten Kerberos toimii (yksinkertaistettuna)
- Käyttäjä antaa salasanansa paikalliselle asiakkaalle, joka muodostaa siitä salaisen avaimen.
- Asiakas pyytää AS:ltä tunnistautumista. AS palauttaa Ticket Granting Ticketin (TGT), joka on salattu KDC:n avaimella, sekä istuntoavaimen asiakkaan ja KDC:n välillä. TGT ei ole suoraan luettavissa asiakkaalle.
- Kun asiakas tarvitsee pääsyn johonkin palveluun, se lähettää TGT:n TGS:lle ja pyytää palvelulippua (service ticket) halutulle palvelulle.
- TGS palauttaa palvelulipun, jonka palvelin hyväksyy. Palvelulippu sisältää istuntoavaimen asiakkaan ja palvelimen välille, jotta molemmat osapuolet voivat suojata kommunikointinsa.
- Palvelin ja asiakas voivat suorittaa keskinäisen todentamisen käyttämällä näitä istuntoavaimia.
Keskeiset käsitteet
- KDC (Key Distribution Center) – keskeinen luotettu palvelin, joka myöntää TGT:t ja palveluliput.
- TGT (Ticket Granting Ticket) – kertakirjautumisen mahdollistava lippu, jolla haetaan palvelulippuja.
- Palvelulippu (service ticket) – lippu, jolla pääsee tiettyyn palveluun ilman toistuvaa salasanaa.
- Istuntoavain – symmetrinen avain, jota käytetään asiakkaan ja palvelimen välisten viestien salaamiseen.
- Realm – Kerberos-ympäristön hallinnollinen yksikkö; voi vastata organisaatiota tai toimintaympäristöä.
Turvallisuusominaisuudet ja rajoitukset
Kerberos suojaa viestintää seuraavin keinoin:
- Symmetrinen salaus ja istuntoavaimet estävät viestien lukemisen ulkopuolelta.
- Aikaleimoihin perustuva suojaus ja kertakäyttöisyys vähentävät toistohyökkäysten (replay attacks) riskiä.
- Lyhyet lippujen voimassaoloajat sekä mahdollisuus mitätöidä lippuja rajoittavat avainmateriaalin käyttöaikaa.
Kuitenkin Kerberosilla on myös rajoituksia:
- KDC on keskeinen yksittäinen luottamuspiste; sen toimintahäiriö tai kompromettoituminen vaikuttaa koko järjestelmään.
- Aikaleimojen käyttö edellyttää, että asiakas- ja palvelinkoneiden kellot ovat synkronoituja (yleensä muutaman minuutin toleranssilla).
- Jos alkuperäinen salasana tai KDC:n avaimet paljastuvat, hyökkääjä voi väärinkäyttää lippuja.
Laajennukset ja erityispiirteet
Kerberosin perusmallia on laajennettu monin tavoin: esimerkiksi PKINIT mahdollistaa julkisen avaimen käyttöä autentikoinnissa alussa, ja cross-realm -luottamukset mahdollistavat tunnistautumisen eri realmien välillä. Nykyiset toteutukset tukevat myös eri salausalgoritmeja ja pre-authentication-mekanismeja, jotka estävät salasanojen arvaamisen.
Standardit ja toteutukset
Kerberosin nykystandardi on määritelty RFC 4120 (aiempi RFC 1510). MIT ylläpitää suosituinta MIT Kerberos -toteutusta, joka toimitetaan monille Unix- ja Linux-jakeluversioille. Muita toteutuksia ovat esimerkiksi Heimdal Kerberos. Kerberos on myös keskeinen osa Microsoftin Active Directory -ympäristöä, jossa se tarjoaa autentikoinnin Windows-verkoissa.
Käytännön käyttötapaukset
- Yritysverkkojen kirjautuminen ja Single Sign-On (SSO), jolloin käyttäjä kirjautuu kerran ja saa käyttöoikeudet useisiin palveluihin.
- Palvelujen välinen todentaminen pilvi- ja palvelinympäristöissä.
- Integrointi hakemistopalveluiden (esim. Active Directory) ja muiden identiteetinhallintajärjestelmien kanssa.
Hyvät käytännöt ja riskienhallinta
- Käytä vahvoja salasanoja ja/tai julkisen avaimen tekniikoita (PKINIT) alkuautentikointiin.
- Sijoita KDC:hen redundanssia ja varmista sen turvallinen hallinta sekä varmuuskopiointi.
- Toteuta kellojen synkronointi (NTP) kaikissa osapuolissa.
- Rajoita lippujen voimassaoloaikoja ja valvo lippujen käyttöä sekä kirjaa tapahtumat.
Kerberos on luotettava ja laajasti käytetty protokolla monissa organisaatioissa, mutta sen turvallisuus riippuu oikeasta konfiguraatiosta, KDC:n suojauksesta ja käytäntöjen noudattamisesta.