Das Kerberos-Protokoll



Ähnliche Dokumente
Das Kerberos Protokoll

Kerberos. Einführung in die Logik des Protokolls. Mathias Feiler. (Kommunikations, Informations und Medienzentrum der Universität Hohenheim)

Konzepte von Betriebssystem-Komponenten Schwerpunkt Authentifizierung. Das Kerberos-Protokoll

Das Kerberos-Protokoll

How to install freesshd

Kerberos: Prinzip und Umsetzung. Sascha Klopp

Authentifizierung. Benutzerverwaltung mit Kerberos. Referent: Jochen Merhof

Das Kerberos 5 Protokoll

Anlegen eines DLRG Accounts

Informatik für Ökonomen II HS 09

Guide DynDNS und Portforwarding

Infinigate (Schweiz) AG. Secure Guest Access. - Handout -

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Anleitung Thunderbird Verschlu sselung

Programmiertechnik II

Verwendung des IDS Backup Systems unter Windows 2000

Mike Wiesner Mike Wiesner 1

IEEE 802.1x Authentifizierung. IEEE 802.1x Authentifizierung IACBOX.COM. Version Deutsch

Fotostammtisch-Schaumburg

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

iphone 4 - Einrichtung des VPN Clients (Cisco VPN Client) / Verbinden des iphones mit einem Exchange

Regeln für das Qualitäts-Siegel

Was meinen die Leute eigentlich mit: Grexit?

Anleitung über den Umgang mit Schildern

Modul 8 Kerberos. Fachhochschule Bonn-Rhein-Sieg. Prof. Dr. Martin Leischner Fachbereich Informatik

Sichere für Rechtsanwälte & Notare

estos UCServer Multiline TAPI Driver

Einrichtung von VPN-Verbindungen unter Windows NT

FTP-Server einrichten mit automatischem Datenupload für

SAMMEL DEINE IDENTITÄTEN::: NINA FRANK :: :: WINTERSEMESTER 08 09

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

inviu routes Installation und Erstellung einer ENAiKOON id

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

-Verschlüsselung mit GPG. Von der Key-Erzeugung zur verschlüsselten . Chemnitzer Linux-Tage März 2010 Vortrag

Modul 8 Kerberos. Prof. Dr. Martin Leischner Netzwerksysteme und TK. Hochschule Bonn-Rhein-Sieg

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

COMPUTER MULTIMEDIA SERVICE

ecaros2 - Accountmanager

Leichte-Sprache-Bilder

Installation Benutzerzertifikat


Kerberos. Kerberos. Folien unter. 1 Stefan Schnieber

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Modul 8 Kerberos. Prof. Dr. Martin Leischner Netzwerksysteme und TK. Fachhochschule Bonn-Rhein-Sieg

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

Single-Sign-On mit Kerberos V

Möglichkeiten der verschlüsselten -Kommunikation mit der AUDI AG Stand: 11/2015

macs Support Ticket System

VERSCHLÜSSELUNG

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

ANYWHERE Zugriff von externen Arbeitsplätzen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Anforderungen zur Nutzung von Secure

Danke, dass sie sich für die Infoliste der Moodleveranstaltung eingetragen haben.

Erste Schritte mit TeamSpeak 3

Externe Abfrage von für Benutzer der HSA über Mozilla-Thunderbird

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

TELIS FINANZ Login App

Anleitung zur Konfiguration eines NO-IP DynDNS-Accounts mit der TOOLBOXflex-3.2

Online Schulung Anmerkungen zur Durchführung

Primzahlen und RSA-Verschlüsselung

Ein Hinweis vorab: Mailkonfiguration am Beispiel von Thunderbird

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Tutorial -

Updateanleitung für SFirm 3.1

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

Zur Bestätigung wird je nach Anmeldung (Benutzer oder Administrator) eine Meldung angezeigt:

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Das Leitbild vom Verein WIR

Bedienungsanleitung für den SecureCourier


icloud nicht neu, aber doch irgendwie anders

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

MOM - Medienforum Online-Medien Anleitung zum Ändern der Login-Nummer und des Passworts

Professionelle Seminare im Bereich MS-Office

Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen.

Anmeldeverfahren. Inhalt. 1. Einleitung und Hinweise

Öffnen Sie den Internet-Browser Ihrer Wahl. Unabhängig von der eingestellten Startseite erscheint die folgende Seite in Ihrem Browserfenster:

Sicherer Datenaustausch mit EurOwiG AG

-Verschlüsselung mit S/MIME

Kurzanleitung IP-Kamera AMGO IP 80 für Livebilder auf Smartphone/Iphone und PC

-Konten für Studierende und Zugriffswege auf die Mail-Systeme der Hochschule Rhein-Waal

Step by Step Webserver unter Windows Server von Christian Bartl

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Informationen zum neuen Studmail häufige Fragen

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Virtual Private Network

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Step by Step VPN unter Windows Server von Christian Bartl

Stecken Sie Ihren USB Stick oder Ihre externe USB Festplatte in den USB Steckplatz des Sinus 154 DSL SE.

Windows Server 2012 RC2 konfigurieren

Internationales Altkatholisches Laienforum

SANDBOXIE konfigurieren

Sparkasse Duisburg. versenden aber sicher! Sichere . Anwendungsleitfaden für Kunden

Verschlüsselung. Kirchstraße 18 Steinfelderstraße Birkweiler Bad Bergzabern Fabian Simon Bfit09

Transkript:

Das Kerberos-Protokoll Eine Einführung in die Logik des Protokolls Zu den Chemnitzer Linuxtagen 2012 von Mathias Feiler (Kommunikations- Informations- und Medienzentrum der Universität Hohenheim) Mathias Feiler Kerberos Einführung @ CLT2012 1

Vortrag und Quasi-Workshop Vortrag Vortragssprache ist Badisch (und Hosch-Schwäbisch) Bei bedarf Übersetzung ins Hochdeutsche möglich Dauer : Ca. 45 Minuten Optional: Theaterworkshop Der Ur-Kerberos 5 Personen ca. 30 Minuten pro Aufführung 2 Aufführungen simultan möglich. Legastheniker sind orthographisch fantasievoll! Wer einen Fehler findet darf ihn behalten. Mathias Feiler Kerberos Einführung @ CLT2012 2

Die Gegebenheit Wir haben Viele Server Noch mehr Services Filesystem (z.b. AFS) Wir suchen eine Anmeldemethode Zentral steuerbar Benutzerfreundlich Email Nur ein Passwort Web Für alle Services DFÜ / RAS Lernplattformen WLAN Cisco Router Für alle Server Sicher Robust Standardisiert Mathias Feiler Kerberos Einführung @ CLT2012 3

Wunschziele Eine Netzwerk-Authentisierung In bzw. über offene Netze Mit zuvor unbekannten Klienten Gegenseitiger Beweis der Identitäten Transistivität des Beweises für/gegen Dritte Z.B. für Login-service, Email, Fileservice etc. Administrativer Aufwand muss gering sein Einmalige Anmeldung (Single sign on) Für möglichst alle Services auf ein mal Mathias Feiler Kerberos Einführung @ CLT2012 4

Problem Netzwerke sind unsicher Werden von jedem abgehört Logisch: die Auth. muss auch via [VW]LAN funktionieren Die Klienten-Rechner sind vorab unbekannt Kein 'pre shared key' möglich Authentisierung nur auf standardisierte Weise Security statt obscurity Installation von Standardsoftware muss genügen Mathias Feiler Kerberos Einführung @ CLT2012 5

Die Antwort : Kerberos Kerberos Wird weitgehend unterstützt Erfüllt obige Wunschliste Kommt mit den oben genannten Problemen zurecht Etymologie Cerberus oder Zerberus Der (dreiköpfige) Höllenhund Grischische Sagenwelt Wächter oder am Tor zur Unterwelt Mathias Feiler Kerberos Einführung @ CLT2012 6

Kerberos allgemein Kerberos ist ein Authentifizierungssystem Erbringt den Beweis über die Identität eines Benutzers Fälschungssicher Befristet Kerberos ist ein trusted third party System Servicenehmer muss dem Kerberos bekannt sein Servicegeber muss dem Kerberos bekannt sein Über dieses Vertrauen erlangen beide ein gemeinsames Geheimnis, das sie zur gesicherten privaten Kommunikation benutzen können. authentisieren: rechtsgültig machen, glaubwürdig machen authentifizieren: Echtheit bezeugen, beglaubigen Mathias Feiler Kerberos Einführung @ CLT2012 7

Begriffe Authentisierung / Authentifizierung Ist er der, für den er sich ausgibt? Autorisierung Darf er mit dem Ding tun, was er tun will? Realm Das Reich eines Kerberos-Servers (Personen und Dienste) Prinzipal Eine Identität in einem Kerberos-Realm (oft ein Mensch) Key (oder Schlüssel) Parameter der (De-)Chiffrierung zur Ver- bzw. Entschlüsselung Ticket (oder gelegentlich Token) Eine, in/mit dem Server-Key verschlüsselte Datenstruktur Zeitlich eng begrenzter Ausweis (vergl. Fahrschein) Mathias Feiler Kerberos Einführung @ CLT2012 8

Was ist Authentifizierung Der Nachweis der Identität einer Entitiät Eine Entität im Kerberos wird Prinzipal genannt Ein Prinzipal ist ein Kerberos-Teilnehmer Kerberos kennt die mutual authentication Gegen- oder Wechselseitige Authentifizierung Die Bank will wissen wer vor dem Automat steht Der Kunde sollte wissen wollen, ob der Automat auch wirklich von der Bank ist Optional, muss vom Klienten gefordert werden Mathias Feiler Kerberos Einführung @ CLT2012 9

Die Authentifizierung muss... Durch zentralen Service erfolgen Da die Klientrechner vorab unbekannt sind Um den Administrationsaufwand zu begrenzen Auf gehärteten Systemen erfolgen Physikalisch sicher DV-seitig sicher ;-(?!? Auf fälschungssichere Weise erfolgen Terminiert und ggf. verlängerbar sein Eine erteilte Zugangsberechtigung muss nach einiger Zeit (Minuten bis Stunden) wieder verfallen. Mathias Feiler Kerberos Einführung @ CLT2012 10

Realm Administrative Einheit bezogen auf Kerberos Ist der Gültigkeitsbereich eines Kerberos Realm-Name Sollte eindeutig sein Meist DNS-Domain in Großbuchstaben Prinzipale (= Bevölkerung des Realms) Benutzer (Accountnamen) Digitale Services (Service-Name) oder Hosts (FQDN) Realms können gekoppelt werden Cross realm authentication / Vertrauensstellung Mathias Feiler Kerberos Einführung @ CLT2012 11

Ein Prinzipal ist... Ein Datensatz in der Kerberos-Realm-Datenbank Eine Identität im Kerberos Präsentiert genau einen Teilnehmer des Kerberos- Authentifizierungssystems eines Realms Zweibeiner (Humanoide Kohlenstoffeinheit) z.b.: feiler@uni-hohenheim.de Digitaler Service oder Host, z.b.: HTTP/web.rz.uni-hohenheim.de@UNI-HOHENHEIM.DE host/mail.rz.uni-hohenheim.de@uni-hohenheim.de Mathias Feiler Kerberos Einführung @ CLT2012 12

Ein Prinzipal hat... Ein Prinzipal hat genau einen Namen (1) keine Nr. Zu jedem Prinzipal gibt es verschiedene Keys Erzeugt aus dem Passwort (oder Zufall) Auf verschiedene Weisen vercryptet 3DES, ARCFOUR, AES256, (ggf. auch DES) Zusatzinformationen / Metadaten / Attribute End-Ablaufdatum (expiration) des Prinzipals Gültigkeitsfrist eines Tickets / Verlängerbarkeit... 1) Im MIT-K5 mit LDAP-Backend gibt es auch Aliase aber noch keine Admin-Schnittstelle dazu. Mathias Feiler Kerberos Einführung @ CLT2012 13

Verschlüsselung bei Kerberos Kerberos nutzt symmetrische Verschlüsselung Für den persönlichen Schlüssel (Key) Für den initialen Identitätsnachweis zwischen dem Kerberos und einem Prinzipal Als Sessionkey Für die nachfolgenden Aktivitäten mit Dritten (z.b. Kontakt zwischen Mensch und Mailserver Eventuell asymmetrische Verschlüsselung mgl. Zum Identitätsnachweis, aber nur wenn der Kerberosserver hart mit einer CA verbunden ist. Mathias Feiler Kerberos Einführung @ CLT2012 14

Kerberos Sessionkey Wird vom Kerberos vergeben, der wird darum auch auch 'KDC'= Key Distribution Center genannt Wird den Prinzipalen nur verschlüsselt übermittelt Hier kommen die privaten Schlüssel zum Einsatz Temporärer Schlüssel für eine Sitzung Zur Kommunikation mit Dritten (auch mit dem TGS) Die Kenntnis des Sessionkeys zeigt dem Dienstanbieter (Service) und dem Nutzer (Klient) jeweils die Authentizität des Anderen an (bei mutual auth. ) Mathias Feiler Kerberos Einführung @ CLT2012 15

Kerberos Ticket allgemein Man benötigt pro Service (Service-Prinzipal) ein Ticket (Vergl. Busfahrschein, Kinoeintrittskarte,...) Vom Kerberos (auf Verlangen) für den Klienten Zusammen mit dem passendem Sessionkey Kann nicht vom Klienten entschlüsselt werden Kann nur vom Dienstanbieter entschlüsselt werden Dient als Ausweis für/gegen den Dienstanbieter Nur zusammen mit dem passenden Authenticator gültig. Mathias Feiler Kerberos Einführung @ CLT2012 16

Was ist ein Ticket? Opake (verschlüsselte) Datenstruktur, enthält: Klient-Prinzipal, für das das Ticket ausgestellt wurde Server-Prinzipal, für das das Ticket ausgestellt wurde Session-Key zur Kommunikation zwischen Prinzipalen Uhrzeit, wann das Tickent ausgestellt wurde Gültigkeit des Tickets (Lebensdauer) Weitere Informationen und attribute Verschlüsselt im privaten Key des Dienstanbieters Dienstanbieter = Service Ist nichts wert ohne passenden Authenticator Mathias Feiler Kerberos Einführung @ CLT2012 17

Authenticator Der Authenticator wird vom Klienten hergestellt Enthält folgendes, verschlüsselt im Sessionkey Systemzeit in (pseudo-) Mikrosekunden Name des Prinzipals.. Weiteres, z.b. zufällige initiale Sequenznummer Anmerkung: Den Sessionkey hat der Klient zusammen mit dem Ticket bekommen. Der Sessionkey war dabei mit dem privaten Key des Klienten verschlüsselt. Mathias Feiler Kerberos Einführung @ CLT2012 18

Zeit Die Uhrzeit ist für Kerberos sehr wichtig Um replay-attacken zu erkennen Um Paket-Duplikate zu identifizieren Um abgelaufene Tickets zu erkennen Um potentielle Fälschungen zu erkennen Üblicherweise tolerierte Zeitunterschiede: 2 bis 5 Minuten zwischen Teilnehmern Bei der mutual authentication (wechselseitige Authentifizierung) muss der Dienstanbieter die (Mikrosekunden) genau selbe Zeit zurückgeben Mathias Feiler Kerberos Einführung @ CLT2012 19

Notation c Client (Prinzipal) as Authentication Service tgs Ticket Granting Service d,app Anbieter eines 3. Service, Dienstes oder Applikation, z.b. Notenabfrage A(x) Authenticator von x = x,zeit S(x,y) Sessionkey für die geheime Kommunikation von x und y T(x,y) Ticket von x für y = x,y,s(x,y),zeit,lebensdauer,... Kx Privater Key von x [ ] Verschlüsselt [ ]Kx Verschlüsselt mit dem privaten Key von x [ ]S(c,tgs) Verschlüsselt mit dem Sessionkey von c und tgs Mathias Feiler Kerberos Einführung @ CLT2012 20

Kerberos Client c Schritt A1 : KRB_AS_REG (A1) c, d as DB Schritt A1: Client c bittet den Authentisierunsservice (as) des Kerberos um Authentisierung für den Zugriff auf einen weiteren Servics d Der AS des Kerberos sucht nun den zu c und den zu d passenden Key (Kc und Kd) aus seiner Datenbank heraus. Außerdem erfindet er einen Sessionkey S(c,d) der zur Kommunikation zwischen c und d dienen wird. Mathias Feiler Kerberos Einführung @ CLT2012 21

Kerberos Client c Schritt A2 : KRB_AS_REP (A1) c, d (A2) [S(c,d)]Kc, [T(c,d)]Kd as DB Schritt A2: Kerberos (as) sendet - Den Sessionkey verschlüsselt im Key des Klienten Kc - Das Ticket T(c,d) verschlüsselt im Key des Dienstanbieters Kd an den anfragenden Klienten. Der Client entpackt den Sessionkey und merkt ihn sich ebenso wie das verschlüsselte Ticket. T(c,d) = {c,d,s(c,d),zeit,lebensdauer,...} Mathias Feiler Kerberos Einführung @ CLT2012 22

Kerberos Client c Schritt A3 : KRB_AP_REQ (A1) c, d (A2) [S(c,d)]Kc, [T(c,d)]Kd as DB (A3) [A(c)]S(c,d), [T(c,d)]Kd Service d Schritt A3: Der Client c sendet folgendes zum Dienst d : - Einen im Sessionkey verschlüsselten Authenticator A(c) = {c,zeit} - Das eben erhaltene (im Key von d verschlüsselte) Ticket. Der Service d Entschlüsselt das Ticket und erhält so den Sessionkey. Er versucht damit den Authenticator zu entschlüsseln. Danach wird noch die Gültigkeit überprüft Mathias Feiler Kerberos Einführung @ CLT2012 23

Kerberos Client c Schritt A4 : (A1) c, d (A2) [S(c,d)]Kc, [T(c,d)]Kd as DB (A3) (A4) [A(c)]S(c,d), [T(c,d)]Kd [Zeit]S(c,d), Payload Service d Schritt A4: Auf Veranlassung des Clienten findet die Wechselseitige Authentisierung statt. Dazu sendet d die aus dem Authenticator bekannte Zeit verschlüsselt im Sessionkey zurück. C prüft dies und weiß dadurch, dass d das Ticket entschlüsseln konnte. D muss folglich der sein, dessen Key in der selben Kerberosdatenbank hinterlegt ist wie der von c. Mathias Feiler Kerberos Einführung @ CLT2012 24

Fast gut! Methode ist logisch sicher Der Vorgang müsste pro Service/Server wiederholt werden Mehrfache Eingabe des Passworts Sicherheitskritisch (schielende Augen) Unbequem Abhilfe Einen Zwischenservice einführen (TGS) Stellt Tickets für andere Services/Server aus Ist selbst ein Kerberisierter Service Läuft auf dem Kerberos server Mathias Feiler Kerberos Einführung @ CLT2012 25

Ticket Granting Service (TGS) Zugang mit primärem Ticket vom Kerberos Dieses wird nun TGT (Ticket Granting Ticket) genannt Liefert Sessionkey + Ticket für andere Services Natürlich erst nach eingehender Identitäts- und Plausibilitätsprüfung Besonderheit Benutzt die selben Algorithmen wie der Kerberos AS Braucht/Nutzt Zugang zur Kerberos-DB Wird daher als integraler Teil des Kerberos implementiert Mathias Feiler Kerberos Einführung @ CLT2012 26

Kerberos (KDC) Client c TGS-Schritt 1 : KRB_AS_REQ (1) c, tgs as DB tgs Schritt 1: Wie gehabt: c bitted den Authentisierunsservice (as) des Kerberos um Credentials für den Zugriff auf den tgs Der AS sucht die zu c und tgs passenden Keys (Kc und Ktgs) aus der Datenbank heraus. Außerdem kreiert er einen Sessionkey S(c,tgs), der zur Kommunikation zwischen c und tgs dienen wird. Mathias Feiler Kerberos Einführung @ CLT2012 27

Kerberos (KDC) Client c TGS-Schritt 2 : KRB_AS_REP (1) c, tgs (2) [S(c,tgs)]Kc, [T(c,tgs)]Ktgs as DB tgs Schritt 2: Wie gehabt: Kerberos (as) sendet an den Klienten: - Den Sessionkey(c,tgs) verschlüsselt im Key des Clienten Kc - Das im tgs-key verschlüsselte Ticket GrantingTicket T(c,tgs) C entpackt den Sessionkey und merkt ihn sich, ebenso wie das verschlüsselte Ticket. Mathias Feiler Kerberos Einführung @ CLT2012 28

Kerberos (KDC) Client c TGS-Schritt 3 : KRB_TGS_REQ (1) c, tgs (2) [S(c,tgs)]Kc, [T(c,tgs)]Ktgs (3) app, [A(c)]S(c,tgs), [T(c,tgs)]Ktgs as tgs DB Schritt 3: Der Client c sendet folgendes zum TGS : - Die Bitte um ein Ticket (+Sessionkey) für den Service app - Einen im Sessionkey verschlüsselten Autenticator A(c) = {c,zeit} - Das eben erhaltene (im Key des TGS verschlüsselte) TGT. Der TGS entschlüsselt das TGT und erhält so den Sessionkey. Er versucht damit den Authenticator zu entschlüsseln. Danach werden noch die Zeiten und Gültigkeit überprüft. Mathias Feiler Kerberos Einführung @ CLT2012 29

Kerberos (KDC) Client c TGS-Schritt 4 : KRB_TGS_REP (1) c, tgs (2) [S(c,tgs)]Kc, [T(c,tgs)]Ktgs (3) app, [A(c)]S(c,tgs), [T(c,tgs)]Ktgs (4) [S(c,app)]S(c,tgs), [T(c,app)]Kapp as tgs DB Schritt 4: TGS sendet das Ticket für den Service app und den dazugehörigen neuen Sessionkey S(c,app) verschlüsselt im Sessionkey(c,tgs) C entschlüsselt den neuen Sessionkey(c,app) und merkt in sich zusammen mit dem dazugehörigen Ticket T(c,app) = {c, app, S(c,app), Zeit, Lebensdauer, }. Mathias Feiler Kerberos Einführung @ CLT2012 30

Kerberos (KDC) Client c TGS-Schritt 5 : KRB_AP_REQ (1) c, tgs (2) [S(c,tgs)]Kc, [T(c,tgs)]Ktgs (3) app, [A(c)]S(c,tgs), [T(c,tgs)]Ktgs (4) [S(c,app)]S(c,tgs), [T(c,app)]Kapp as tgs DB (5) [A(c)]S(c,app), [T(c,app)]Kapp Service app Schritt 5: Wie gehabt bei A3. Der Client c sendet das Ticket und einen im passenden Sessionkey verschlüsselten Auhtenticator A(c) = {c,zeit} zum Dienstanbieter app. Der Service app entschlüsselt das Ticket und erhält so den Sessionkey. Er entschlüsselt damit den Authenticator. Natürlich werden dabei allerlei Prüfungen durchgeführt. Mathias Feiler Kerberos Einführung @ CLT2012 31

Kerberos (KDC) Client c TGS-Schritt 6 : KRB_AP_REP (1) c, tgs (2) [S(c,tgs)]Kc, [T(c,tgs)]Ktgs (3) app, [A(c)]S(c,tgs), [T(c,tgs)]Ktgs (4) [S(c,app)]S(c,tgs), [T(c,app)]Kapp (5) [A(c)]S(c,app), [T(c,app)]Kapp (6) [Zeit]S(c,app), Payload as tgs Service app DB Schritt 6: Wie gehabt bei A4. Auf Veranlassung des Clienten findet die Wechselseitige Authentisierung statt. Dazu sendet app die aus dem Authenticator bekannte Zeit verschlüsselt im Sessionkey zurück. So weiss c, dass ap das Ticket entschlüsseln konnte und ergo wirklich zum erwarteten Realm gehört. Mathias Feiler Kerberos Einführung @ CLT2012 32

TGT Der Gewinn Die Schritte (1) & (2) mit der Passworteingabe sind nur ein mal notwendig Man erhält daraus das TGT und den TGS-Sessionkey Schritt (3) & (4) können beliebig oft für verschiedene Services/Server automatisch wiederholt werden, da das TGT aus (1) & (2) vorliegt. Schritt (5) & (6) haben so bereits im oben vorgestellten Basisprotokoll automatisch funktioniert. Mathias Feiler Kerberos Einführung @ CLT2012 33

Jetzt ist es besser... Methode ist immernoch lgisch sicher Benuter muss nur einmal das Passwort eingeben Dafür bekommt er dann ein TGT + Sessionkey Für (fast) lle Services des Realms, die der anzusprechen gedenkt Gegen das TGT bekommt der Bentzer beim TGS: Tickets für (fast) beliebe Server/Services Tickets widerholt für den selben Server/Service Wir haben damit Single Sign On Mathias Feiler Kerberos Einführung @ CLT2012 34

Aber Wirklich Jeder bekommt das TGT+Daten von Jedem Um ein beobachtetes Passwort zu testen oder mit Versuchen zu vervollständigen. Jeder bekommt unkontrolliert viele TGT-Daten Um das selbe Passwort auch gegen ander Prinzipale zu Testen? Um ggf. offline zu knacken (Passwort erraten) Abhilfe : Pre-Authentication Mathias Feiler Kerberos Einführung @ CLT2012 35

Preauthentication 1 Wurde in den originalen Kerber.* vergessen Es handelt sich also um eine Erweiterung Reduziert Angriffsmöglichkeiten (erheblich) Ermöglicht das Hochzählen von Fehlversuchen Ggf. (zeitweise) Sperrung des Prinzipals Siehe bei MIT : Lockout Policies Implementierung In (1) wird zusätzlich die in privaten Key von c verschlüsselte Zeit mitgeliefert TGT bekommt nur, wer nachweislich den entsprechenden privaten Key von c kennt Mathias Feiler Kerberos Einführung @ CLT2012 36

Kerberos (KDC) Client c Preauthentication 2 (1) c, tgs, [Zeit]Kc (2) [S(c,tgs)]Kc, [T(c,tgs)]Ktgs as DB tgs Auch mit Preauthentication kann versucht werden, den Key des TGS zu knacken. Dieser sollte darum öfter geändert werden. Mathias Feiler Kerberos Einführung @ CLT2012 37

Weitere Themen Anbindung / Kopplung mit PKI Authentifizierung muss nicht mit einem Passwort erfolgen, sondern kann kann auch mit einem Zertifikat umgesetzt werden. Trust (Vertrauensstellung) mit anderen Kerber.* Bei mehreren Realms z.b. in Sternform mgl. auch mit AD möglich. Durch Austausch der TGS-keys Credential-cache Manager (KCM) Um mehrere Caches umschalten zu können. Mathias Feiler Kerberos Einführung @ CLT2012 38

Was Kerberos nicht ist / hat Authorisierung Accounting Bank: Es ist Herr Feiler, aber darf er wirklich Geld abheben? Wie viel Geld hat Herr Feiler den heute schon abgehoben? Kerberos kennt keine UID oder gar UUIDS Passwortänderung / Passwortmanagement Nicht standardisierter separat kerberisierter Service Glück: Heimdal und MIT sind sich einig. Abhängig von der Implementation MIT, Heimdal,GNU-shishi, AD,DCE RFC 3244 für MS-Windows 2000 Mathias Feiler Kerberos Einführung @ CLT2012 39

Kerberos Verstanden? Aus dem Vortrag meines Kollegen : Reicht es für ein kerberisiertes Login, ein TGT anzufordern und zu prüfen, ob der im Schlüssel des Benutzers verschlüsselte Teil mittels des aus dem eingegebenen Passwort erzeugten Schlüssels entschlüsselt werden kann? Anders gefragt : Ist Folgendes für ein 'kerberisiertes' Login hinreichend? * Der Clientenrechner fordert für einen User ein TGT an. * Aus dem Passwort des Users wird der private Key erzeugt. * Mit diesem Key kann der entsprechende Teil des KRB_AS_REP (der TGS-Sessionkey) entschlüsselt werden.... Und warum? Mathias Feiler Kerberos Einführung @ CLT2012 40

Hacker @ Keyboard Antwort K5 Client Software Hostky (KDC 1) KRB_AS_REQ KRB_AS_REP KRB_TGS_REQ KRB_TGS_REP KRB_AP_REQ KRB_AP_REP X Echter KDC 1 Hackers KDC 1' Host Key Hacker administriert Prinzipale und Passworte in diesem KDC 1' Literarische Antwort : RFC 4120 Punkt 3.1.5 (Seite 28) Mathias Feiler Kerberos Einführung @ CLT2012 41

Literatur RFC4120 Kerberos Dokumentiert das Kerberos Protokoll Mark Pröhl Kerberos Single-Sign-On in gemischten Linux/Windows-Umgebugen dpunkt.verlag ISBN 978-3-89864-444-0 Distributed Services with OpenAFS Wolfgang A. Gehrke Springer Verlag ISBN 978-3-540-36633-1 Mathias Feiler Kerberos Einführung @ CLT2012 42

Fragen?... Mathias Feiler Kerberos Einführung @ CLT2012 43

Vielen Dank Für Ihre Aufmerksamkeit Mathias Feiler Kerberos Einführung @ CLT2012 44

Kerberos & AFS Wie bindet man OpenAFS in ein Realm ein? (Big Picture) Mathias Feiler Kerberos Einführung @ CLT2012 45

Prinzipale für AFS anlegen AFS-Zellnamen festlegen Kerberos noch so konfigurieren dass auch DES-Keys erzeugt werden Im KDC das Prinzipal für die AFS-Zelle anlegen add afs/<cell.name>@realm.name... Im KDC ein AFS-Admin-prinzipal anlegen add admin... Mathias Feiler Kerberos Einführung @ CLT2012 46

AFS Keyfile extrahieren Heimdal: cd /etc/openafs/server cd /usr/afs/etc kadmin -l ext_keytab -k AfsK5.kt afs/cell.nm # ktutil -k AfsK5.kt list --keys ktutil copy FILE:AfsK5.kt AFSKEYFILE:KeyFile MIT-K5 kadmin.local -q "ktadd -e des-cbc-crc:afs3 afs/cell.nm" asetkey add <KVNR> /etc/krb5.keytab afs/cell.nm Achtung: Die Key-Version-Nummer im KeyFile muss immer die neueste sein, die der KDC anzubieten hat. Mathias Feiler Kerberos Einführung @ CLT2012 47

AFS-Installation Afs installation wie gehabt Bosserver -noauth ptserver starten Admin anlegen und in die Admin-Gruppe packen pts createuser admin -id 1... pts adduser admin system:administrators... vlserver anlegen und starten fileserver anlegen und starten Volume anlegen... bos setauth on Mathias Feiler Kerberos Einführung @ CLT2012 48

Für AFS authentisieren Allgemein kinit admin... klist aklog afslog tokens cd /afs/cell.name/...... unlog ; tokens kdestroy ; klist Im Fall von gut konfiguriertem Heimdal kann 'a*log' entfallen. Mathias Feiler Kerberos Einführung @ CLT2012 49

Fragen?... Mathias Feiler Kerberos Einführung @ CLT2012 50

Vielen Dank Für Ihre Aufmerksamkeit Mathias Feiler Kerberos Einführung @ CLT2012 51