Kerberos-protokollen

Innen informasjonsteknologi og telekommunikasjon er Kerberos en nettverksprotokoll for sterk autentisering som lar ulike terminaler kommunisere på et usikkert datanettverk, og beviser deres identitet gjennom bruk av symmetriske krypteringsteknikker . Kerberos forhindrer angrep som avlytting og gjentaksangrep og sikrer dataintegritet . Dens designere sikter først og fremst mot en klient-server- modell , og den gir gjensidig autentisering, det vil si at både brukeren og tjenesteleverandøren kan bekrefte identiteten til den andre.

Historie

Massachusetts Institute of Technology (MIT) utviklet Kerberos for å sikre nettverkstjenestene levert av Project Athena . Protokollen ble døpt som den mytologiske karakteren Cerberus , som i gresk mytologi var den trehodede hunden plassert for å vokte Hades . Det finnes flere versjoner av protokollen; versjon 1 til 3 ble bare brukt innen MIT.

Steve Miller og Clifford Neuman, hovedutviklerne av Kerberos versjon 4, ga ut denne versjonen på slutten av 1980-tallet, selv om den hovedsakelig ble utviklet for Project Athena.

Versjon 5, designet av John Kohl og Clifford Neuman, ble formalisert i RFC 1510 i 1993 (gjort foreldet av RFC 4120 i 2005 ), med den hensikt å løse begrensningene og sikkerhetsproblemene til versjon 4.

MIT tilbyr en gratis Kerberos-implementering under en BSD -lignende lisens .

Amerikanske myndigheter klassifiserte Kerberos som et våpen og forbød eksport da den brukte DES -krypteringsalgoritmen (med 56 -bits nøkler ). En ikke-amerikansk implementering av Kerberos, KTH-KRB utviklet i Sverige , gjorde systemet tilgjengelig også utenfor USA, før de endret eksportloven om kryptografiske algoritmer (rundt 2000 ). Den svenske implementeringen av protokollen var basert på en versjon av Kerberos kalt eBones. eBones var basert på MIT Bones-versjonen (i utgangspunktet en versjon av Kerberos uten kryptografiske funksjoner og deres kall) avledet fra Kerberos 4 patchlevel 9. Australieren Eric Young, forfatter av flere kryptografiske biblioteker, la inn kallene til kryptografiske funksjoner på nytt ved å bruke det eget libdes- biblioteket . Denne begrensede versjonen av Kerberos ble kalt eBones. En implementering av Kerberos versjon 5, Heimdal , ble i hovedsak utgitt av den samme gruppen som opprettet KTH-KRB.

Windows 2000 , Windows XP og Windows Server 2003 bruker en variant av Kerberos som standard autentiseringssystem. Noen Microsoft -tillegg til Kerberos er dokumentert i RFC 3244 " Microsoft Windows 2000 Kerberos Change Password and Set Password Protocols ". Apples macOS bruker også Kerberos i både klient- og serverversjonen.

I 2005 oppdaterte IETF Kerberos Working Group spesifikasjonen [1] . Nylige oppdateringer inkluderer:

Beskrivelse

Kerberos er basert på Needham-Schroeder-protokollen . Den bruker en pålitelig tredjepart for å sentralisere nøkkeldistribusjon kalt Key Distribution Center (KDC), som består av to logisk atskilte deler: Authentication Server (AS) og Ticket Granting Server (TGS). Kerberos fungerer ved å bruke «billetter» (kalt billetter ) som brukes til å bevise brukernes identitet.

AS opprettholder en database med hemmelige nøkler; hver enhet på nettverket - det være seg en klient eller en server - deler den hemmelige nøkkelen kun med AS. Kunnskap om denne nøkkelen tjener til å bevise identiteten til en enhet. For kommunikasjon mellom to enheter genererer Kerberos en sesjonsnøkkel, som kan brukes av de to terminalene til å kommunisere.

Protokollen kan defineres som følger ved å bruke notasjonen for sikkerhetsprotokoller , der Alice ( A ) autentiserer til Bob ( B ) ved hjelp av server S :

Sikkerheten til protokollen er sterkt avhengig av tidsstempler T og levetider L som pålitelige indikatorer på den nylige opprettelsen av kommunikasjonen for å unngå replay-angrep (se BAN-logikk ).

Det er viktig å merke seg at S-serveren både er en Autentiseringstjeneste (AS) og en Ticket Granting Service (TGS).

Kerberos operasjoner

Følgende er en forenklet beskrivelse av protokollen. Følgende forkortelser vil bli brukt: AS = Authentication Server, TGS = Ticket Granting Server, SS = Service Server.

Kort sagt: klienten autentiserer med AS som gir ham en sesjonsbillett for å få tilgang til TGS, autentiserer med TGS og mottar billetten for å åpne en kommunikasjonsøkt med SS.

I detalj:

Bruker: Grunnleggende autentisering
  1. En bruker skriver inn brukernavn og passord på klienten.
Klient: AS-autentisering
  1. Klienten sender en ukryptert melding til AS som ber om tjenester for brukeren. ("Bruker XYZ ønsker å be om tjenester"). Verken den hemmelige nøkkelen eller passordet sendes til AS.
  2. AS sjekker om klienten er i sin database. Hvis det er det, sender den to meldinger til klienten:
    • Melding A: Klient-TGS sesjonsnøkkel kryptert med brukerens hemmelige nøkkel.
    • Melding B: Ticket-Granting Ticket (som inkluderer klientidentifikator, nettverksadresse, billettgyldighetstid og klient-TGS-øktnøkkel ). Ticket-Granting Ticket er kryptert med den hemmelige TGS-nøkkelen.
  3. Når klienten mottar meldinger A og B, dekrypterer den melding A for å få klient-TGS-sesjonsnøkkelen . Denne nøkkelen brukes for etterfølgende kommunikasjon med TGS. (Merk: klienten kan ikke dekryptere melding B, som ble kryptert med den hemmelige TGS-nøkkelen). På dette tidspunktet har klienten midler til å autentisere med TGS.
Klient: TGS-autentisering
  1. Ved forespørsel om tjenester sender klienten følgende to meldinger til TGS:
    • Melding C: bestående av billettbevilgende billett (sendt til ham av AS i melding B) og IDen til den forespurte tjenesten
    • Melding D: Autentisering (som består av klientidentifikator og tidsstempel), kryptert med klientøktnøkkelen — TGS .
  2. Ved mottak av meldinger C og D, dekrypterer TGS melding C med sin egen nøkkel og trekker ut klientøktnøkkelen fra meldingen - TGS som den bruker til å dekryptere melding D (autentisering). På dette tidspunktet sender den følgende to meldinger til klienten:
    • Melding E: Klient-server-billett (som inkluderer klientidentifikator, klientnettverksadresse, gyldighetsperiode og klient-server-sesjonsnøkkel) kryptert med den hemmelige nøkkelen til serveren som tilbyr tjenesten.
    • Melding F: Klient-server-øktnøkkel kryptert med klient-TGS-øktnøkkel .
Klient: SS-autentisering
  1. Ved å motta meldinger E og F fra TGS, kan klienten autentisere med SS. Klienten kobler seg til SS og sender følgende to meldinger:
    • Melding E: Klient-server-billett kryptert med hemmelig SS-nøkkel.
    • Melding G: En ny autentisering, som inkluderer klientidentifikatoren, tidsstempelet og er kryptert med klient-server-sesjonsnøkkelen .
  2. Serveren dekrypterer billetten ved å bruke dens hemmelige nøkkel og sender følgende melding til klienten for å bekrefte identiteten og viljen til å tilby tjenesten til klienten:
    • Melding H: Tidsstemplet som ble funnet i autentiseringsverktøyet økt med én, kryptert med klient-server-sesjonsnøkkelen .
  3. Klienten dekrypterer bekreftelsen ved hjelp av klient-server-sesjonsnøkkelen og sjekker at tidsstemplet er riktig oppdatert. Hvis det er det, kan klienten stole på serveren og begynne å sende tjenesteforespørsler.
  4. Serveren leverer tjenestene til klienten.

Bruker

Følgende programvare er i stand til å bruke Kerberos for autentisering:

Bibliografi

Relaterte elementer

Andre prosjekter

Eksterne lenker