advertisement

Single Sign On mit Kerberos V5

50 %
50 %
advertisement
Information about Single Sign On mit Kerberos V5

Published on June 4, 2007

Author: mike.wiesner

Source: slideshare.net

Description

Kerberos ist ein verteilter Authentifizierungsdienst, der plattform- und systemunabhängiges Single-Sign-On ermöglicht. Mittlerweile wird Kerberos von etlichen Diensten unterstützt und ermöglicht so ein effektives und sicheres Arbeiten im Netz. Die Administration wird durch Kerberos transparenter und einfacher. Da mittlerweile auch in Windows 2000-Domänen Kerberos- Authentifizierung Standard ist, vereinfacht es ebenfalls die Integration von Windows/Linux. In dieser Session geht es um die Grundlagen von Kerberos V5 und die Installation sowie dem Betrieb auf einem Debian 3.1 System.
Vorgestellt wird das Einrichten eines KDCs, die Einbindung in PAM, der Betrieb eines kerberized Services und die Integrationsmöglichkeiten mit Windows
advertisement

Single Sign-On mit Kerberos V5 Mike Wiesner info@mwiesner.com

Copyright (C) 2007 Mike Wiesner Dieses Werk kann durch jedermann gemäß den Bestimmungen der Lizenz für die freie Nutzung unveränderter Inhalte genutzt werden. Die Lizenzbedingungen können unter http://www.uvm.nrw.de/ opencontent abgerufen oder bei der Geschäftsstelle des Kompetenznetzwerkes Universitätsverbund MultiMedia NRW, Universitätsstraße 11, D-58097 Hagen, schriftlich angefordert werden. Eine Nutzung außerhalb dieser Lizenz bedarf der schriftlichen Genehmigung des Rechteinhabers. Dieser Hinweis darf nicht entfernt werden!

Agenda ๏ Identitätsmanagement ๏ Single Sign-On ๏ Kerberos Grundlagen ๏ Implementierungen ๏ Installation & Konfiguration Linux ๏ Integrationsmöglichkeiten Linux/Windows ๏ Ausblick

Agenda ๏ Identitätsmanagement ➡ Begriffe ➡ Identitätsnachweis ➡ Kryptographische Grundlagen ๏ Single Sign-On ๏ Kerberos Grundlagen ๏ Implementierungen ๏ Installation & Konfiguration Linux ๏ Integrationsmöglichkeiten Linux/Windows ๏ Ausblick

Identitätsmanagement Begriffe • Authentifizierung (Authentication) • Identitätsfeststellung • z.B. Personalausweis, Pass, ... • Autorisierung (Authorization) • Zuweisung von Rechten • z.B. Mitgliedsausweis, Access Control Lists • Überwachung (Auditing) • Aufzeichnen von Authentifizierungen und Autorisierungen • z.B. Auth-Log bei Linux Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Identitätsnachweis • Benutzername/Kennwort • Key bzw. Zertifikat • Smart Card • Foto • Fingerabdruck • Iris Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Kryptographische Grundlagen • symmetrische Verschlüsselung • Ein Key zum Ver- und Entschlüsseln • schwierige Verwaltung, dafür sehr schnell • z.B. DES, 3DES, AES, RC5 • Verwendung: Kerberos, SSL • asymmetrische Verschlüsselung • Zwei Keys jeweils zum Ver- und Entschlüsseln • einfachere Verwaltung aber dafür langsam • z.B. RSA, DSA, ElGamal • Verwendung: PGP, Signaturen, SSL Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Agenda ✓ Identitätsmanagement ๏ Single Sign-On ➡ Was bedeutet Single Sign-On? ➡ Wieso brauchen wir das? ➡ Lösungsansätze ๏ Kerberos Grundlagen ๏ Implementierungen ๏ Installation & Konfiguration Linux ๏ Integrationsmöglichkeiten Linux/Windows ๏ Ausblick

Was bedeutet Single Sign-On? • Benutzerauthentifizierung nur einmal • Anschließend Zugriff auf (alle) Systeme • Führt i.d.R. keine Autorisierung durch • Eine Stufe darunter: Single Credential • Ein Benutzername/Kennwort für alle Systeme Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Wieso brauchen wir das? • Produktivitätssteigerung • Arbeitsfluss wird nicht gestört • Einfachere Administration • Erhöhte Sicherheit, denn ohne SSO... • wird oft das gleiche Kennwort benutzt • wird das Kennwort auf mehreren Systemen gespeichert • geht das Kennwort mehrmals über das Netzwerk • Nachteil: Bei einer Kompromittierung erhält der Angreifer Vollzugriff. Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Lösungsansätze • „Lokale Lösungen“ • Benutzername/Kennwort wird lokal gespeichert (z.B. durch Browser, Outlook, ...) • Portale • Einloggen bei einem zentralen Portal • Portal steuert weitere Zugriffe • Ticket Systeme • Ticket mit Identitätsnachweis wird bei der ersten Anmeldung erstellt • Authentifizierung anschließend über dieses Ticket Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Agenda ✓ Identitätsmanagement ✓ Single Sign-On ๏ Kerberos Grundlagen ➡ Was ist Kerberos? ➡ Funktionsweise ➡ Vor-/Nachteile ๏ Implementierungen ๏ Installation & Konfiguration Linux ๏ Integrationsmöglichkeiten Linux/Windows ๏ Ausblick

Was ist Kerberos? • Kerberos... • ... ist ein verteilter Authentifizierungsdienst. • ... ist konzipiert für offene und unsichere Netze. • ... ermöglicht Single Sign-On. • ... ist Plattform- und Systemunabhängig. • ... verwendet symmetrische Verschlüsselung. • ... ist in RFC 1510 beschrieben. Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Principals & Realms • Kerberos Principals bestehen aus: • component[/component]...@REALM • z.B.: mike/admin@SECPOD.DE • Die erste component gibt den Benutzernamen an. • Die zweite (optionale) component die „Rolle“. • Der Realm gibt die Authentifizierungs-Domäne an. Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

KDC • KDC = Key Distribution Center • Besteht aus: • Principal Database • Speichert Principals und Keys • Authentication Server (AS) • Erstellt das Ticket Granting Ticket (TGT) • Ticket Granting Server (TGS) • Erstellt Service Tickets für ein TGT Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Client Principal Client timestamp krbgt principal name Client Requested lifetime AS session key krbtgt principal name Ticket lifetime User's key AS session key Client principal Authentication Server Ticket lifetime KDC timestamp Client IP address TGT TGS key Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Service principal AS session key Client principal Ticket lifetime KDC timestamp Client IP address TGT TGS key Client Client principal Client timestamp TGS Authenticator AS Session key Requested lifetime Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

TGS session key Service principal name Ticket lifetime AS Session key TGS session key Client principal Client Ticket lifetime KDC timestamp Client IP address TG S Service Ticket Service key Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Service Specific Information TGS session key Client principal Ticket lifetime KDC timestamp Client IP address Client Service Ticket Service key Client principal Service Client timestamp Authenticator TGS Session key Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Vorteile von Kerberos • Sichere, gegenseitige Authentifizierung aller Beteiligten • Keine Verbindung zwischen KDC und Services nötig • Geringe Belastung des KDCs • Autorisierung wird dem Service überlassen • Plattform- und Systemunabhängig Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Nachteile von Kerberos • Keys müssen zu den Services verteilt werden • Uhrzeiten müssen synchronisiert sein (ntpdate, rdate) • nicht ohne weiteres mit Firewalls einsetzbar (NAT) • mangelnde Unterstützung bei den Clients (derzeit) Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Vorteile gegenüber NTLM • Kerberos ist Standard • „Passwort“ geht nur einmal über das Netz • Gegenseitige Authentifizierung • Delegation möglich • Keine Kommunikation zwischen Server und KDC • Tickets werden beim Client gecached => schneller Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

weitere Protokolle/APIs • Generic Security Services API (GSSAPI): • generisches Interface zur Unterstützung von „strong Authentication“, wie z.B. Kerberos • wird oft von Services verwendet um Kerberos zu unterstützen • Security Support Provider Interface (SSPI): • Microsoft Pendant zu GSSAPI • Simple and Protected GSSAPI Negotiation Mechanism (SPNEGO): • Übermittlung eines Kerberos-Tickets z.B. per HTTP Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Agenda ✓ Identitätsmanagement ✓ Single Sign-On ✓ Kerberos Grundlagen ๏ Implementierungen ➡ MIT ➡ Heimdal ➡ Microsoft ๏ Installation & Konfiguration Linux ๏ Integrationsmöglichkeiten Linux/Windows ๏ Ausblick

MIT • Referenzimplementierung • für Linux und Windows erhältlich • weit verbreitet • wird in den USA entwickelt • Unterstützt seit 1.3 unter anderem RC4 und AES zur Verschlüsselung • wird von vielen Anwendungen unterstützt Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Heimdal • neuere Implementierung • nur für Linux erhältlich • wird außerhalb der USA entwickelt • bessere Master/Slave Synchronisierung • Unterstützung von (3)DES, AES und RC4 • Kerberos API und GSSAPI unterscheiden sich jedoch von den MIT APIs Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Microsoft • neueste Implementierung (seit Windows 2000) • unterstützt nur Kerberos 5 • unterstützt nur RC4 und DES, kein 3DES • Unix Clients mit Windows KDC ist möglich • Windows Clients mit Unix KDC ist nicht ohne weiteres möglich. • kein GSSAPI (dafür SSPI) Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Agenda ✓ Identitätsmanagement ✓ Single Sign-On ✓ Kerberos Grundlagen ✓ Implementierungen ๏ Installation & Konfiguration Linux ➡ KDC einrichten ➡ Client einrichten ➡ Kerberized Service einrichten ๏ Integrationsmöglichkeiten Linux/Windows ๏ Ausblick

Fallbeispiel Linux client kdc server (MIT-Kerberos) (ssh) • Betriebssystem: Debian GNU/Linux 3.1 (sarge) • Domain: secpod.de, Realm: SECPOD.DE • Benutzer: root, mike Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

KDC einrichten (1) • KDC installieren • Realm erzeugen • Admin Benutzer anlegen und testen • Admin Benutzer Rechte zuweisen • Keytab mit Kadmin Principals erzeugen • Benutzer anlegen und testen • DNS Serviceeinträge vornehmen (optional) Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

KDC einrichten (2) Installation kdc# apt-get install krb5-kdc krb5-admin-server Realm erzeugen kdc# kdb5_util create -s Admin Benutzer anlegen und testen kdc# kadmin.local kadmin.local: addprinc mike/admin kadmin.local: listprincs kadmin.local: exit kdc# /etc/init.d/krb5-kdc restart kdc# kinit mike/admin kdc# klist Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

KDC einrichten (3) Admin Benutzer Rechte zuweisen kdc# vi /etc/krb5kdc/kadm5.acl mike/admin@SECPOD.DE * Keytab mit Kadmin Principals erzeugen kdc# kadmin.local kadmin.local: ktadd -k /etc/krb5kdc/kadm5.keytab kadmin/admin kadmin/ changepw kadmin.local: exit kdc# /etc/init.d/krb5-adminserver restart Benutzer anlegen und testen kdc# kadmin kadmin: addprinc mike kadmin: addprinc root kadmin: exit kdc# kdestroy kdc# kinit mike kdc# klist Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

KDC einrichten (4) In der DNS-Zone für secpod.de (forward) folgende Einträge einfügen: _kerberos._udp.SECPOD.DE. IN SRV 1 0 88 kdc.secpod.de. _kerberos._tcp.SECPOD.DE. IN SRV 1 0 88 kdc.secpod.de. _kerberos-adm._tcp.SECPOD.DE. IN SRV 1 0 749 kdc.secpod.de. _kpasswd._udp.SECPOD.DE. IN SRV 1 0 464 kdc.secpod.de. Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Client einrichten (1) • Kerberos Client-Pakete installieren • Testen Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Client einrichten (2) Kerberos Client-Pakete installieren: client# apt-get install krb5-user krb5-clients ssh-krb5 Testen: client# kinit mike/admin client# kadmin Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Kerberos Login anlegen (1) • Host-Principal anlegen und Key exportieren • lokalen Benutzer anlegen • PAM Modul installieren • PAM einrichten • testen Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Kerberos Login anlegen (2) Host-Principal anlegen und Key exportieren client# kadmin kadmin: addprinc host/client.secpod.de kadmin: ktadd host/client.secpod.de kadmin: exit lokalen Benutzer anlegen client# adduser -–disabled-password mike PAM Modul installieren client# apt-get install libpam-krb5 PAM einrichten client# vi /etc/pam.d/common-auth auth sufficient pam_krb5.so forwardable auth required pam_unix.so nullok_secure client# vi /etc/pam.d/common-password password sufficient pam_krb5.so use_authtok password sufficient pam_unix.so ... client# vi /etc/login.defs CLOSE_SESSIONS yes login mike klist Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Kerberized SSH (1) • Kerberized SSH installieren • Principal anlegen und Key exportieren • Benutzer anlegen • testen Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Kerberized SSH (2) Kerberized SSH installieren server# apt-get install ssh-krb5 krb5-user Principal anlegen und Key exportieren server# kinit mike/admin server# kadmin kadmin: addprinc host/server.secpod.de kadmin: ktadd host/server.secpod.de kadmin: exit Benutzer anlegen server# adduser –-disabled-password mike Testen client# login mike mike@client$ ssh server mike@server$ klist mike@server$ exit mike@client$ klist Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

weitere Services • Cyrus IMAP • OpenLDAP • Putty • Reflection X • Eudora • Apple Mail.app • Telnet • ... Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Agenda ✓ Identitätsmanagement ✓ Single Sign-On ✓ Kerberos Grundlagen ✓ Implementierungen ✓ Installation & Konfiguration Linux ๏ Integrationsmöglichkeiten Linux/Windows ➡ Windows Clients mit Linux KDC ➡ Linux Clients mit Windows KDC ➡ Linux Kerberized Service mit Windows KDC ๏ Ausblick

Windows Clients mit Linux KDC • mit Hilfe eines Windows Domain Controllers via Cross-Realm Trust • Authentifizierung über den Linux KDC • Autorisierung über Windows Domain Controller • mit Windows Standalone PCs über das Tool ksetup • Authentifizierung über den Linux KDC • Autorisierung über lokale Benutzerrechte • Achtung: Einige Windows Programme haben Probleme mit einem Linux-KDC! Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Linux Clients mit Windows KDC • Windows Domain Controller in der /etc/ krb5.conf als kdc eintragen • Kerberos Client muss RC4 Verschlüsselung unterstützen • Kennwortänderung und Administration nur mit Hilfe von Samba möglich Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Fallbeispiel Linux/Windows • Betriebssystem: MS Windows 2003 Server Standard • Domain: winsecpod.de, Realm: WINSECPOD.DE • Benutzer: administrator, mike winkdc server (MS Kerberos) (samba,http) Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Samba einrichten (1) • Samba-Pakete installieren • Samba konfigurieren • Windows Domäne beitreten • testen Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Samba einrichten (2) Samba-Pakete installieren server# apt-get install samba Samba konfigurieren server# vi /etc/samba/smb.conf security = ADS client use spnego = yes realm = WINSECPOD.DE password server = winkdc.winsecpod.de add user script = /usr/sbin/useradd -g winusers -m %u use kerberos keytab = yes Windows Domäne beitreten server# net join -U administrator server# /etc/init.d/samba restart Testen - Windows Explorer öffnen und „server“ eingeben. Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

HTTP einrichten (1) • Benutzer im ActiveDirectory anlegen • Apache Kerberos Modul installieren • Service Key erzeugen • Apache Kerberos Modul konfigurieren • testen Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

HTTP einrichten (2) Benutzer mike im ActiveDirectory anlegen Apache Kerberos Modul installieren server# apt-get install libapache2-mod-auth-kerb Service Key erzeugen - ktpass Installieren (CD support/tool) - Benutzer http_server im Active Directory anlegen mit den Optionen „Kennwort läuft nie ab“ und „Benutzer kann das Kennwort nicht ändern“ winkdc C:> ktpass -out http.keytab -princ HTTP/ server.winsecpod.de@WINSECPOD.DE -pass * -mapuser http_server - http.keytab auf den Server kopieren Apache Kerberos Modul konfigurieren server# vi /var/www/test/.htaccess AuthType Kerberos AuthName „Kerberos Test Login“ KrbAuthRealms WINSECPOD.DE Krb5Keytab /http.keytab KrbServiceName HTTP require valid-user Testen - URL im Internet Explorer aufrufen Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Agenda ✓ Identitätsmanagement ✓ Single Sign-On ✓ Kerberos Grundlagen ✓ Implementierungen ✓ Installation & Konfiguration Linux ✓ Integrationsmöglichkeiten Linux/Windows ๏ Ausblick

Ausblick • Public-Key • Initial Authentication (PKINIT) • Cross-Realm (PKCROSS) • Smart Cards • Bessere Verschlüsselung • RC4 • AES • Webservices • WS-Security Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Buchempfehlung Kerberos The Definitive Guide Jason Garmen ISBN: 0596004036 Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com

Add a comment

Related pages

LinuxWorld: Single Sign-On mit Kerberos V5 - Sicherheit ...

Hallo, kommt jemand aus diesem Forum zur LinuxWorld nach Frankfurt? Ich halte dieses Jahr eine Training Session zum Thema Single Sign-On mit Kerberos V5 ...
Read more

LinuxWorld 2005: Single-Sign-On mit Kerberos V5

LinuxWorld 2005: Single-Sign-On mit Kerberos V5; OOP 2010: Security Patterns mit Java – Praktische Umsetzung und Bewertung; Single-Sign-On mit Java und ...
Read more

Kerberos (Informatik) – Wikipedia

Kerberos Authentication-Server und Ticket Granting Server ... Kerberos. Single Sign-on in gemischten Linux/Windows-Umgebungen. dpunkt.verlag, ...
Read more

Kerberos: Single Sign On für BS2000

Kerberos: Single Sign On für BS2000 Ausgabe April 2011 ... Die aktuelle Version von Kerberos (V5) ist in RFC1510 (RFC=Request for Comments) standardisiert.
Read more

Kerberos V5 Single Sign-On - Next-Generation Security ...

Configure Kerberos SSO for Administrator Authentication ; Create a Kerberos keytab for the Palo Alto Networks device. If the device is in FIPS or CC mode ...
Read more

Kerberos 2015 Hannover

Das Tutorial behandelt Theorie und Praxis der Netzwerkauthentisierung mit Kerberos v5. Die Teilnehmer lernen Kerberos als ... Kerberos Single-Sign ...
Read more

Single Sign-on Using Kerberos in Java - Oracle Help Center

... is the capability to achieve single sign-on using Kerberos Version 5 in the next ... how to use single sign-on based on the Kerberos V5 ...
Read more

Kerberos V5 Installation Guide - MIT - Massachusetts ...

Kerberos V5 Installation Guide Release: 1.2 Document Edition: 1.1 ... and still take advantage of Kerberos V5's single sign-on on capability. ...
Read more

SAP Singe Sign-On and Secure Connections via SNC Adapter ...

Single Sign-On via SNC Adapter Page 1 of 14 SAP SINGLE SIGN-ON AND SECURE CONNECTIONS . VIA SNC ADAPTER . BASED ON . KERBEROS V5. Project name:
Read more