SlideShare una empresa de Scribd logo
1 de 51
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

Más contenido relacionado

Destacado

Maroc numeric2013
Maroc numeric2013Maroc numeric2013
Maroc numeric2013IDIR2001
 
Presentación1
Presentación1Presentación1
Presentación1ISREAEL123
 
Aquavie - Osmose inverse 7 etapes
Aquavie - Osmose inverse 7 etapesAquavie - Osmose inverse 7 etapes
Aquavie - Osmose inverse 7 etapesaquavie
 
AT2010 Introduction à scrum
AT2010 Introduction à scrumAT2010 Introduction à scrum
AT2010 Introduction à scrumNormandy JUG
 
Pres semaine innovation_lannion
Pres semaine innovation_lannionPres semaine innovation_lannion
Pres semaine innovation_lanniongerardlebihan
 
俯瞰法國 Bird's-eye view of France フランス鳥瞰
俯瞰法國 Bird's-eye view of France フランス鳥瞰俯瞰法國 Bird's-eye view of France フランス鳥瞰
俯瞰法國 Bird's-eye view of France フランス鳥瞰xilin peng
 
La Actividad Financiera del Estado Venezolano
La Actividad Financiera del Estado VenezolanoLa Actividad Financiera del Estado Venezolano
La Actividad Financiera del Estado VenezolanoZEIDALI
 
10 convictions sur les MOOC par Cécile Dejoux à HR Speaks 2014
10 convictions sur les MOOC par Cécile Dejoux à HR Speaks 201410 convictions sur les MOOC par Cécile Dejoux à HR Speaks 2014
10 convictions sur les MOOC par Cécile Dejoux à HR Speaks 2014Cécile DEJOUX
 
Teoría y propuesta académica sobre política cientifica FID
Teoría y propuesta académica sobre política cientifica FIDTeoría y propuesta académica sobre política cientifica FID
Teoría y propuesta académica sobre política cientifica FIDfundafid
 
Bilan du tour Ticket for change 2014
Bilan du tour Ticket for change 2014 Bilan du tour Ticket for change 2014
Bilan du tour Ticket for change 2014 Boris Marcel
 
Πλούταρχου-Βιος Καίσαρος - http://www.projethomere.com
Πλούταρχου-Βιος Καίσαρος - http://www.projethomere.comΠλούταρχου-Βιος Καίσαρος - http://www.projethomere.com
Πλούταρχου-Βιος Καίσαρος - http://www.projethomere.comHélène Kémiktsi
 
Dunkle Sonne Lesung Kap2 Sicher
Dunkle Sonne Lesung Kap2 SicherDunkle Sonne Lesung Kap2 Sicher
Dunkle Sonne Lesung Kap2 SicherLeon Tsvasman, Dr.
 
Atelier10 comment animer-son_site_web_tour_d_horizon_des_googleries
Atelier10 comment animer-son_site_web_tour_d_horizon_des_googleriesAtelier10 comment animer-son_site_web_tour_d_horizon_des_googleries
Atelier10 comment animer-son_site_web_tour_d_horizon_des_googleriesR-Evolutions Touristiques de Brive
 
25 juin 2011 - Financer l’innovation
25 juin 2011 - Financer l’innovation25 juin 2011 - Financer l’innovation
25 juin 2011 - Financer l’innovationPeople in action
 

Destacado (19)

Maroc numeric2013
Maroc numeric2013Maroc numeric2013
Maroc numeric2013
 
Presentación1
Presentación1Presentación1
Presentación1
 
Aquavie - Osmose inverse 7 etapes
Aquavie - Osmose inverse 7 etapesAquavie - Osmose inverse 7 etapes
Aquavie - Osmose inverse 7 etapes
 
Qt-Webkit
Qt-WebkitQt-Webkit
Qt-Webkit
 
AT2010 Introduction à scrum
AT2010 Introduction à scrumAT2010 Introduction à scrum
AT2010 Introduction à scrum
 
Pres semaine innovation_lannion
Pres semaine innovation_lannionPres semaine innovation_lannion
Pres semaine innovation_lannion
 
C3xlumis catalogue
C3xlumis catalogueC3xlumis catalogue
C3xlumis catalogue
 
2011 05 12 11-15 kundenservice bei retailern
2011 05 12 11-15 kundenservice bei retailern2011 05 12 11-15 kundenservice bei retailern
2011 05 12 11-15 kundenservice bei retailern
 
俯瞰法國 Bird's-eye view of France フランス鳥瞰
俯瞰法國 Bird's-eye view of France フランス鳥瞰俯瞰法國 Bird's-eye view of France フランス鳥瞰
俯瞰法國 Bird's-eye view of France フランス鳥瞰
 
La Actividad Financiera del Estado Venezolano
La Actividad Financiera del Estado VenezolanoLa Actividad Financiera del Estado Venezolano
La Actividad Financiera del Estado Venezolano
 
Budapest rapport
Budapest rapportBudapest rapport
Budapest rapport
 
10 convictions sur les MOOC par Cécile Dejoux à HR Speaks 2014
10 convictions sur les MOOC par Cécile Dejoux à HR Speaks 201410 convictions sur les MOOC par Cécile Dejoux à HR Speaks 2014
10 convictions sur les MOOC par Cécile Dejoux à HR Speaks 2014
 
Teoría y propuesta académica sobre política cientifica FID
Teoría y propuesta académica sobre política cientifica FIDTeoría y propuesta académica sobre política cientifica FID
Teoría y propuesta académica sobre política cientifica FID
 
Bilan du tour Ticket for change 2014
Bilan du tour Ticket for change 2014 Bilan du tour Ticket for change 2014
Bilan du tour Ticket for change 2014
 
Best friends
Best friendsBest friends
Best friends
 
Πλούταρχου-Βιος Καίσαρος - http://www.projethomere.com
Πλούταρχου-Βιος Καίσαρος - http://www.projethomere.comΠλούταρχου-Βιος Καίσαρος - http://www.projethomere.com
Πλούταρχου-Βιος Καίσαρος - http://www.projethomere.com
 
Dunkle Sonne Lesung Kap2 Sicher
Dunkle Sonne Lesung Kap2 SicherDunkle Sonne Lesung Kap2 Sicher
Dunkle Sonne Lesung Kap2 Sicher
 
Atelier10 comment animer-son_site_web_tour_d_horizon_des_googleries
Atelier10 comment animer-son_site_web_tour_d_horizon_des_googleriesAtelier10 comment animer-son_site_web_tour_d_horizon_des_googleries
Atelier10 comment animer-son_site_web_tour_d_horizon_des_googleries
 
25 juin 2011 - Financer l’innovation
25 juin 2011 - Financer l’innovation25 juin 2011 - Financer l’innovation
25 juin 2011 - Financer l’innovation
 

Single Sign On mit Kerberos V5

  • 1. Single Sign-On mit Kerberos V5 Mike Wiesner info@mwiesner.com
  • 2. 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!
  • 3. Agenda ๏ Identitätsmanagement ๏ Single Sign-On ๏ Kerberos Grundlagen ๏ Implementierungen ๏ Installation & Konfiguration Linux ๏ Integrationsmöglichkeiten Linux/Windows ๏ Ausblick
  • 4. Agenda ๏ Identitätsmanagement ➡ Begriffe ➡ Identitätsnachweis ➡ Kryptographische Grundlagen ๏ Single Sign-On ๏ Kerberos Grundlagen ๏ Implementierungen ๏ Installation & Konfiguration Linux ๏ Integrationsmöglichkeiten Linux/Windows ๏ Ausblick
  • 5. 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
  • 6. Identitätsnachweis • Benutzername/Kennwort • Key bzw. Zertifikat • Smart Card • Foto • Fingerabdruck • Iris Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. Agenda ✓ Identitätsmanagement ✓ Single Sign-On ๏ Kerberos Grundlagen ➡ Was ist Kerberos? ➡ Funktionsweise ➡ Vor-/Nachteile ๏ Implementierungen ๏ Installation & Konfiguration Linux ๏ Integrationsmöglichkeiten Linux/Windows ๏ Ausblick
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. Agenda ✓ Identitätsmanagement ✓ Single Sign-On ✓ Kerberos Grundlagen ๏ Implementierungen ➡ MIT ➡ Heimdal ➡ Microsoft ๏ Installation & Konfiguration Linux ๏ Integrationsmöglichkeiten Linux/Windows ๏ Ausblick
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. Agenda ✓ Identitätsmanagement ✓ Single Sign-On ✓ Kerberos Grundlagen ✓ Implementierungen ๏ Installation & Konfiguration Linux ➡ KDC einrichten ➡ Client einrichten ➡ Kerberized Service einrichten ๏ Integrationsmöglichkeiten Linux/Windows ๏ Ausblick
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. Client einrichten (1) • Kerberos Client-Pakete installieren • Testen Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. 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
  • 40. 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
  • 41. 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
  • 42. 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
  • 43. 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
  • 44. 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
  • 45. 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
  • 46. 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
  • 47. 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
  • 48. 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
  • 49. Agenda ✓ Identitätsmanagement ✓ Single Sign-On ✓ Kerberos Grundlagen ✓ Implementierungen ✓ Installation & Konfiguration Linux ✓ Integrationsmöglichkeiten Linux/Windows ๏ Ausblick
  • 50. 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
  • 51. Buchempfehlung Kerberos The Definitive Guide Jason Garmen ISBN: 0596004036 Single Sign-On mit Kerberos - (C) 2007 Mike Wiesner - info@mwiesner.com