Kerberos - Helveteshunden med exportförbud

1
Kerberos - helveteshunden med exportförbud
Dennis Bergström 6770729
Bakgrund
Kerberos, ursprungligen namnet på den trehövdade hunden som vaktade ingången till Hades mot inkräktare, är
onekligen ett passande namn på ett säkerhetssystem.
Kerberos systemet konstruerades vid MIT - Massachusetts Institute of Technology. På marknaden existerar ett flertal
olika kommersiella varianter (och versioner!) av Kerberos; vissa av dessa är helt eller delvis baserade på MITs eget
freeware Kerberos, medan andra enbart har namnet (och MITs ursprungliga Kerberosspecifikationer!) gemensamt med
MIT Kerberos. I flera fall är dessa olika Kerberos varianter helt inkompatibla med varandra.
I MIT Kerberos version 4 (och 5?) används den symmetriska DES algoritmen, som bekant är belagd med exportförbud
från USA. Detta innebär att ett fullvärdigt MIT Kerberos inte finns tillgängligt utanför USA/Canada. (Huruvida samma
regler gäller för de kommersiella varianterna framkommer inte ur litteraturen. Eftersom DSV verkar använda Kerberos oklart vilken variant/version - kan man nog misstänka att detta inte är fallet, eller att DSV använder eBones; se nedan!)
För att lösa problemet med applikationer (utanför USA/Canada) som kräver Kerberos för att överhuvudtaget fungera,
kan Kerberos omkompileras till en tandlös exportversion kallad Bones utan vare sig DES kryptering eller nämnvärd
säkerhet. Användare utanför USA/Canada var/är givetvis missnöjda med detta Det existerar därför åtminstone en
“hackad” version av Bones, kallad eBones, där programerare utanför USA/Canada “kodat tillbaka” DESalgortimen/erna och i praktiken alltså fått tillbaka USA/Canada varianten av Kerberos.
Enligt Kerberos FAQ finns eBones tillgänglig via anonym FTP i bl.a Tyskland, Israel, Finland, Australien, Frankrike
samt Sverige (!).
Kerberos uppbyggnad
Kerberos är ett autentiseringssystem som fungerar i distribuerade nätverk. Med Kerberos kan s.k. “intelligenta
processer”, t.ex. client/server eller en användares arbetsstation och en värddator, kommunicera säkert utan fara för
avlyssning eller s.k. replay attacks.
Kerberos används oftast i applikationslagret, t.ex. TELNET och FTP, men i teorin skulle Kerberos även kunna
användas i “lägre” lager för säker värd-till-värd (host-to-host) kommunikation. Om sådana system dock existerar i
sinnevärlden är något oklart i litteraturen.
Grunden i ett Kerberos system är en dedikerad s.k. Ticket Granting Server (TGS). En TGS utfärdar en ticket som är en
krypterad datastruktur som innehåller dels information om en specifik användare och vad denna användare har rätt att
göra, dels en tidsstämpel för att förhindra s.k. replay attacks. Förutom detta finns också en del kontroll information med
i “biljetten”. (Vad denna kontrollinformation har för funktion framkommer inte i litteraturen).
För att Kerberossystemet ska bli komplett behövs också en dedikerad Kerberos Server (KS) som en användare (eller
process) först måste kontakta för ex. inloggning.
2
Kerberos användning
Vid inloggning i ett Kerberos skyddad system skickas användarens identitet (user id) från användarens arbetsstation till
KS. I KS finns alla användarnas lösenord lagrade. För att undvika att en användares lösenord avslöjas vid ev. avlyssning
av nättrafiken skickas lösenordet i ett Kerberossystem aldrig över nätverket. (Kanske med undantag av de gånger som
användaren ändrar sitt lösenord, eftersom användarens nya lösenord då måste sändas till Kerberosservern)
KS slumpar fram en s.k. Sessionkey som användareb sebare kommer att använda vid kommunikationen med TGS.
Sessionsnyckeln tillsammans med en “startticket” (mitt namnval!) DES-krypteras med användarens lösenord som
nyckel och skickas tillbaka till användarens arbetsstation.
En kopia av Sessionsnyckeln tillsammans med användarens identitet skickas samtidigt från KS till TGS krypterad under
en nyckel som bara delas mellan dessa två.
Om användaren är legitim och kan sitt lösenord kan han/hon dekryptera Sessionsnyckel/Startticket och blir inloggad i
systemet.
När användaren vill göra något i systemet, t.ex. öppna en fil, skickas en begäran om detta, krypterad med
Sessionsnyckeln (som ursprungligen erhälls från KS) till TGS.
TGS dekrypterar denna begäran (med en kopia av användarens Sessionsnyckel som TGS erhöll av KS när användaren
loggade in) och returnerar dels en krypterad filserver ticket, dels en ny Sessionsnyckel (se nedan!) avsedd för
användaren/Filservern.
Den krypterade “biljetten” är krypterad under en nyckel som enbart TGS och Filservern “vet om”.
Vare sig en inkräktare, eller användaren själv kan dekryptera denna ticket och alltså ej heller förfalska “biljetten”.
“Filserver-biljetten” innehåller information om användarens identitet, vilken fil som användaren vill göra något med,
vilka rättigheter för filen som användaren har, t.ex. läsrättighet, en tidsstämpel samt en Sessionsnyckel som används
mellan Filservern och användaren (Om detta innebär att också filen blir krypterad mellan Filserven och användarens
arbetststaion framgår inte riktigt av boken. Det bör dock förhålla sig på detta vis eftersom man använder ännu en
Sessionsnyckel).
Eftersom “Filserver-biljetten” är krypterad under en nyckel som användaren inte har tillgång till (se ovan!) måste
“Filserver-sessionsnyckel” skickas till användaren “utanför” den krypterade “Filserver-biljetten”. Om “Filserversessionsnyckel” krypteras under den ursprungliga Sessionsnyckeln som användaren fick av KS framgår inte av boken.
Att använda andra slags tjänster i systemet hanteras på liknande sätt.
Fördelar/Nackdelar med Kerberos
Det finns både för- och nackdelar med att använda Kerberos som säkerhetssystem i distribuerade nätverk:
Nedan finns ett urval ur litteraturen av de för-/nackdelar som jag anser vara viktigast.
Nackdelar




För att Kerberos ska fungera måste både Kerberos servern och Ticket Granting Server alltid vara “on-line”. Om en
eller båda servrarna av någon anledning slutar att fungera slutar också säkerhetssystemet att fungera.
För att undvika s.k.replay-attacks tidsstämplas “biljetterna” i ett Kerberos system. Problemet är dock att sätta en
optimal tidsgräns innan en ticket blir förverkad, för lång tidsgräns möjliggör försök till replay-attacks, för kort
tidgräns kan omöjliggöra för en “långsam” användare att använda sina “biljetter” innan de blir förverkade.
För att Kerberos ska fungera i distribuerade nätverk måste alla applikationer använda systemet för att säkerheten
ska kunna fungera tillfredsställande. Enligt litteraturen stöder dock enbart ett fåtal applikationer Kerberos vilket
kan ge problem i distibuerade miljöer med applikationer som inte stöder systemet.
Kerberos’ design verkar vara avsedd för mindre distribuerade system, med en (1) Kerberos server och en (1) Ticket
Granting Server. I större nätverk, där flera KS/TGS behövs kan det, enligt litteraturen, bli problem med dubbla
krypteringsnycklar etc.
3
Fördelar
Kerberos har givetvis inte bara nackdelar utan även en hel del fördelar (annars skulle nog inte systemet användas i
någon större utsträckning!):




Som tidigare nämnts skickas i princip aldrig en avändares lösenord över nätet utan används enbart som
krypteringsnyckel till Sessionsnyckeln som användaren och TGS får från Kerberosservern.
Varje access av service skyddas av kryptering, vilket garanterar att användaren verkligen är den han/hon utger sig
för att vara.
Varje “biljett” i Kerberos tidsstämplas för att undvika s.k. replay-attacks och brute-force attacks. Detta innebär att
en biljett/ticket förverkas efter en viss specifik tidsperiod.
Genom ett förfarande som kallas “dubbelriktad autentisering” kan en användare av en viss service (se t.ex.
exemplet med Fileserven ovan!) försäkra sig om att den server som användaren kommunicerar med verkligen är det
den utger sig för att vara. Genom att begära ett s.k. autentiseringssvar (authenticating response) från en server kan
man (med en procedur som är något för komplicerad att återge här (!)) vara säker på att servern är det den utger sig
för att vara.
Referenser
Computer Networks, Andrew S. Tannenbaum
Third Edition, Prentice Hall International Editions
Security in Computing, Charles P. Pleeger
Second Edition, Prentice Hal International Editions
Kerberos FAQ
http://www.ov.com/misc/krb-faq.html