Kerberos
Kerberos - was ist das
- aus einer Mail von Bernhard Scholz:
Kerberos ist kein Authentifizierungsmechanismus. Es gibt also keine direkte Authentifizierung durch Kerberos, sondern Kerberos stützt sich immer auf einen bestehenden passenden Dienst dazu.
Kerberos ist ein Ticketsystem. Am ehesten kann man sich so etwas wie bei Post-Ident vorstellen:
Die Post ist dabei der Kerberosserver. Mein Ausweis ist mein Passwort. Meinen Ausweis gebe ich nicht aus der Hand, sondern zeige diesem lediglich den Postbeamten (bei Kerberos wird das Passwort nie über die Leitung übertragen, deswegen gilt Kerberos bis heute als nicht geknackt). Dieser Postbeamte stellt mir dann einen Post-Ident Koupon aus (mein Kerberos-Ticket).
Mit diesem Ticket (das sogenannten erste Ticket, ein TGT=Ticket Granting Ticket) wird dann bei der Authorisierung (nicht Authentifizierung!!) bei anderen Dienste "vorgelegt". Will ich also bei e-Bay meine Adresse verifizieren lassen, zeige ich nur meinen Post-Ident Koupon vor (im echten Leben macht das für einen die Post, aber egal). E-bay vertraut diesem Koupon und gibt mir den Zugriff auf meine Adressdaten frei, so dass diese ab sofort als vertrauenswürdig eingestuft werden können.
Usw. mit anderen Diensten. In der EDV Welt bekommt ein Benutzer ein TGT vom Kerberos Server. Mit diesem Ticket frägt er dann weitere Dienste zur Benutzung an. Wenn dieser Dienst das Ticket akzeptiert, erhält der Benutzer wiederum ein Ticket für diese Dienst und kann für die Zeitdauer der Gültigkeit dieses neuen Tickets, den Dienst nutzen. Nach Verfall fordert der Nutzer ein neues Ticket an usw.
All das geschieht "hinter den Kulissen". Der Benutzer gibt lediglich einmal sein Passwort an, danach nie wieder.
Vorraussetzung dass so was funktioniert ist, dass jeder Dienst Kerberos fähig ist. Kann ein Dienst nicht mit Kerberos Tickets umgehen, wird eine normale Kennwort+Passwort Authentifizierung durchgeführt. Es ist keineswegs trivial Kerberos als Dienst zu betreiben, noch einzelne Dienste wie Squid, Apache, etc. Kerberos beizubringen. Auch ist es zwingend nötig, dass im Netzwerk alle Uhren genau aufeinander abgestimmt sind (ein Differenz von 3-5 Minuten wird gerade noch akzeptiert) und es muss einen sicheren Passwort-Server geben (also einfache Shadow-Dateien kann man gleich vergessen).
Man darf auch einen Nachteil nicht vergessen: eine Mehrfachauthentifizierung ist danach bei den Diensten auch nicht ohne weiteres mehr möglich. Ein Benutzer kann sich also bspw. nicht als Meier am System anmelden und dann bspw. als Huber am Proxy. Der Proxy würde "automatisch" das Ticket von Meier zur Authentifizierung nehmen.
Es ist daher unter Umständen günstiger auf einen Benutzerbezogenen Schlüsselbund zurückzugreifen, der alle Passwörter verschlüsselt speichert und automatisch mit dem Login des Benutzers geöffnet wird. So muss man auch beim Proxy etwa kein weitere Passwort eingeben. Ein System dass beides beherrscht und keinen Pflegeaufwand mehr braucht ist Mac OS X und Mac OS X Server. Hier kann der Benutzer einen Schlüsselbund, als auch Kerberos mit Single-Sign on oder eine Standard-Authentifizierung wählen. Kerberos beherrscht auch Windows ab 2k (glaub ich). Bei Linux muss man leider noch sehr viel Handarbeit anlegen. Die Schlüsselbundtechnik kenne ich eigtl. nur bei Mac OS X, vielleicht kann mir einer einen Tipp geben ob es ähnliches auch für andere UNIXe neben Mac OS X , wie etwa Linux, BSD, Solaris oder eben auch für Windows gibt.
Ich hoffe das hat ein bisschen Licht ins Dunkel der Single-Sign-On Welt gebracht ;-)
Nebenbei: Squid funktioniert derzeit NICHT mit Kerberos. Dies ist erst für die Version 3.0 geplant (in Entwicklung). Es gibt zwar Versuche für den aktuellen Squid (2.5) die sind aber nicht stabil. Also lieber keine Liebesmüh verschenken, sondern eher warten oder eben einen Schlüsselbund verwenden.