Kerberos Systemausbildung Grundlagen und Aspekte von Betriebssystemen und System-nahen Diensten 14.07.2021 - Florian Klemenz - RRZE

 
WEITER LESEN
Kerberos Systemausbildung Grundlagen und Aspekte von Betriebssystemen und System-nahen Diensten 14.07.2021 - Florian Klemenz - RRZE
REGIONALES RECHENZENTRUM
ERLANGEN [ RRZE ]

Kerberos
Systemausbildung − Grundlagen und Aspekte von
Betriebssystemen und System-nahen Diensten
14.07.2021 – Florian Klemenz
Kerberos Systemausbildung Grundlagen und Aspekte von Betriebssystemen und System-nahen Diensten 14.07.2021 - Florian Klemenz - RRZE
Definition
                                                                  Bezeugen der Echtheit einer Entität
      88/tcp,88/udp                                               (Benutzer/Dienste/Rechner/...)

  Kerberos ist ein Netzwerkprotokoll zur sicheren Authentifizierung von
             Teilnehmern in einem ungesicherten Netzwerk
                        auf sicheren Rechnern.

Benutzer oder Dienste                                                      Verschlüsselte Kommunikation
im Netzwerk                                                                in Internet, WLAN und LAN
                        Feindliche Übernahme des
                        Rechners ist zu vermeiden ;)

                          14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz                      2
Kerberos Systemausbildung Grundlagen und Aspekte von Betriebssystemen und System-nahen Diensten 14.07.2021 - Florian Klemenz - RRZE
Inhalt

●
    Geschichte
●
    Grundlagen
     – Symmetrisches Needham-Schroeder-Protokoll
     – Umsetzung in der Praxis
●
    Kerberos
     – Ablauf des Verbindungsaufbaus zu Diensten
     – Erweiterung auf SingleSignOn (SSO)
●
    Umsetzung am “RRZE”
●
    Schwachstellen, Vorteile und Grenzen

                    14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz   3
Kerberos Systemausbildung Grundlagen und Aspekte von Betriebssystemen und System-nahen Diensten 14.07.2021 - Florian Klemenz - RRZE
Geschichte – Teil 1

●
    Teil des Projekts “Athena” (1983-1991) am MIT                                 Aufbau einer
                                                                                  Campus-weiten
    → Kerberos als Sicherheitssystem
                                                                                  verteilten
●
    Ab ca. 1988 als Version 4 außerhalb des MIT                                   Rechnerumgebung
●
    1993 als Version 5 erstmals spezifiziert im RFC 1510
●
    2005 abgelöst durch RFC 4120 für Kerberos V5
    “to clarify aspects of the protocol and its
    intended use that require more detailed or
    clearer explanation”

                     14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz                 4
Kerberos Systemausbildung Grundlagen und Aspekte von Betriebssystemen und System-nahen Diensten 14.07.2021 - Florian Klemenz - RRZE
Geschichte – Teil 2

●
    Öffentliche Spezifikation in den RFCs ermöglicht weitere
    Implementierungen
●
    Standardprotokoll für die Authentifizierung ab Windows-2000
●
    weitere Implementierung ist “Heimdal”
●
    “MIT-Kerberos” im Linux-Umfeld am häufigsten im Einsatz

                       14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz   5
Kerberos Systemausbildung Grundlagen und Aspekte von Betriebssystemen und System-nahen Diensten 14.07.2021 - Florian Klemenz - RRZE
Symmetrisches Needham-Schroeder-Protokoll
                                                                                Alice                               AS     Bob
                                                                                    KA                              KA     KB
                                                                                                                    KB
●
    Protokoll für sicheren Datenaustausch:                                          NA

    Authentifizierung der Teilnehmer +                                                        A,B,NA

                                                                                                                    NA
    verschlüsselte Übertragung                                                           NA,B,SK        SK,A
●
    Zentrales Element: AuthenticationService (AS)                                        KA
                                                                                                   KB

                                                                                    SK
    Kommunikationsteilnehmer verfügen über                                                                          SK,A

    gemeinsame Schlüssel (pre-shared secrets) mit                                                              KB
                                                                                                                           SK

                                                                                                                           NB
    der TrustedThirdParty (→ AS)                                                                                    NB
●
    Authentifizierung und Austausch eines                                           NB
                                                                                                               SK

    SessionKey (SK) durch Nachweis, dass                                                                            NB-1

    A→KA und B→KB besitzt
                                                                                                               SK

                                                                              Von Michael F. Schönitzer - Eigenes Werk, CC-BY 4.0,
                                                                              https://commons.wikimedia.org/w/index.php?curid=55390446

                       14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz                                                   6
Kerberos Systemausbildung Grundlagen und Aspekte von Betriebssystemen und System-nahen Diensten 14.07.2021 - Florian Klemenz - RRZE
AS → Key Distribution Center

●
    MIT-Kerberos Implementierung hat als zentrales
    Element das Key Distribution Center (KDC)                                       Key Distribution Center
                                                                                            (KDC)
●
    Der KDC hält die Schlüssel aller Teilnehmer in
    einer Datenbank (hier ein LDAP)                                                   AS
●
    Der Authentication Service (AS) ist Teil des KDC und
    hat damit auch Zugriff auf alle Schlüssel
                                                                                           linuxkdc

                       14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz                         7
Teilnehmer → Principals

●
      sind eine authentifizierbare Entitäten und können
      sich auf einzelne Benutzer, Computer, Dienste,
      Prozesse oder Threads beziehen                                                                            Users/Clients

●
      müssen identifiziert und authentifiziert werden,
      bevor ihnen Rechte und Privilegien zugewiesen
      werden können.
●
      sind durch eine zugehörige Kennung (Security
      Identifier) identifiziert
                                                                                                                Server/Services
 Quelle: https://de.wikipedia.org/wiki/Prinzipal_(Computersicherheit)                                   Teilnehmer/Kommunikationspartner

                                                   14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz                          8
Pre-Shared Secrets

                                                               Keytab – Enthält einen Export
                 linuxkdc                                      ausgewählter kryptographischer
                                                               Schlüssel aus dem KDC
passw0rd

   User/Client                              Server/Services

                     14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz                 9
Keytabs

●
    Container für verschiedene kryptografische Schlüssel
●
    verschiedene Hash-Algorithmen vorgeneriert
●
    KVNO → Key Version Number
    Wird inkrementiert, wenn ein neuer Schlüssel ausgestellt wird
    (z.B. bei einer Passwortänderung)

                         14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz   10
Verbindungsaufbau zu einem Dienst
                                                                                User
                                                                                 AliceA                           AS
                                                                                                                  AS         Service
                                                                                                                               Bob B
                                                                                      KA                              KA       KB
                 „A für B“
                                      AS                                              NA
                                                                                                                      KB

                                                                                                A,B,NA

                                                                                                                      NA

                TicketCache
                                               linuxkdc                                    NA,B,SK        SK,A

  passw0rd                                                                                 KA
                                                                                                     KB

                        Keytab                                                        SK

                                                                                                                      SK,A
                                                                                                                 KB
                                                                                                                               SK

                                                                                                                               NB

                                                                                                                      NB
                                                                                                                 SK

                                                                                      NB

                                                                                                                      NB-1
     [A] User                            [B] Service                                                             SK

= SessionKey     = Pre-Shared Secret                                            Von Michael F. Schönitzer - Eigenes Werk, CC-BY 4.0,
                                                                                https://commons.wikimedia.org/w/index.php?curid=55390446

                         14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz                                                    11
Erweiterung auf SingleSignOn (SSO) – Teil 1
                                                                                  User
                                                                                   AliceA                           AS
                                                                                                                    AS         TGS
                                                                                                                                Bob B
                                                                                        KA                              KA      KB
                   „A für B“
                                        AS                                              NA
                                                                                                                        KB

                                                                                                  A,B,NA
                                       TGS                                                                              NA

                                                 linuxkdc                                    NA,B,SK        SK,A

 passw0rd                                                                                    KA
                                                                                                       KB

                                                                                        SK

                                                                                                                        SK,A
                        TGT                                                                                        KB
                                                                                                                                SK

                                                                                                                                NB

                                                                                                                        NB
                                                                                                                   SK

                                                                                        NB

                                                                                                                        NB-1
     [A] User                                                                                                      SK

= SessionKey/TGT         = Pre-Shared Secret                                      Von Michael F. Schönitzer - Eigenes Werk, CC-BY 4.0,
                                                                                  https://commons.wikimedia.org/w/index.php?curid=55390446

                           14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz                                                   12
Erweiterung auf SingleSignOn (SSO) – Teil 2
                                                                                     User
                                                                                      AliceA                          TGS
                                                                                                                       AS         Service
                                                                                                                                    Bob B
                                                                                           KA                              KA       KB

                                           AS                                              NA
                                                                                                                           KB

                                                                                                     A,B,NA

                  „A für B“               TGS                                                                              NA

                                                    linuxkdc                                    NA,B,SK        SK,A

  passw0rd                                                                                      KA
                                                                                                          KB

                                                                                           SK

                                                                                                                           SK,A
                                                                                                                      KB
                                                                                                                                    SK

                                                                                                                                    NB

                                                                                                                           NB
                                                                                                                      SK

                                                                                           NB

                                                                                                                           NB-1
     [A] User                                 [B] Service                                                             SK

= TGT (SK)      = Service (SK)              = Pre-Shared Secret                      Von Michael F. Schönitzer - Eigenes Werk, CC-BY 4.0,
                                                                                     https://commons.wikimedia.org/w/index.php?curid=55390446

                              14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz                                                    13
TicketCache / ServiceTickets / TGT für Clients

                                                                           unverschlüsselter SessionKey

                       TicketCache
       ServiceTicket

                                                                           verschlüsselter SessionKey
                                                                           (mit Schlüssel des Zieles)
 TGT

                                     14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz           14
Schwachstellen

●
    Keytabs mit Pre-Shared Secrets:
    Dienste können “übernommen” werden
    → z.B. Man-in-the-middle Attacke
    ●
        Gegenmaßnahmen: Zugriffsschutz auf den Systemen

●
    TicketCaches mit TGTs/ServiceTickets:
    Anmeldung mit Identität des Benutzers
    ●
        Gegenmaßnahmen:
        Zugriffsschutz auf den Systemen + Begrenzung der Gültigkeit

                          14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz   15
Aufbau am RRZE

●
    IdMS                                                                              „Benutzerverwaltung“
    Identity Management System

●
    GLAT
    Grand Linux Administration Toolkit                                                „Rechnerverwaltung“

●
    linuxkdc
    Key Distribution Center (KDC) und
    Authentication Service (AS) für                                                   „Kerberos-Server“
    den Realm “LINUX.FAU.DE”

                         14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz                       16
Anlage/Provisionierung von Principals

                        ^
            User-Principals (IdM)                                           generiert         Schlüssel-Hashes
                                                  linuxkdc
                                       Authentication Service (AS)

    IdM     GLAT            Service-Principals (GLAT)
Zentrale Quellsysteme
                Principal                                                                    geheimer Schlüssel
                [IdM-Kennung]@LINUX.FAU.DE                                                   Passwort (IdM)
                host/dialog.rrze.uni-erlangen.de@LINUX.FAU.DE                                Passwort (Zufall)

                                14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz                        17
Daten eines Principals auf dem KDC

                                                                          Name/Identifier

                                                                          Ticketlaufzeit

                                                                          Schlüssel-Hashes
                                                                          (generiert aus dem
                                                                          Passwort)

             14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz                        18
Realms und Cross-Realm Trusts

●
    Windows/Mac am RRZE nutzen Windows Active-Directory (AD)
    Infrastruktur → Realm: FAUAD.FAU.DE

●
    Bidirektionaler Trust mit LINUX.FAU.DE Realm

                 fauad                                                     linuxkdc
              FAUAD.FAU.DE                                              LINUX.FAU.DE

                        14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz     19
Vorteile

●
    Ermöglicht echtes “Single Sign On”                                             Ticket Granting
                                                                                    Tickets (TGT)
    (nicht nur Web)

●
    Ermöglicht verschlüsselte Kommunikation                                        Session Keys
    (z.B. genutzt von NFSv4)                                                           (SK)

●
    Funktioniert auch über OS und                                                  Cross-Realm
    Domain-Grenzen hinweg                                                             Trusts

                      14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz                  20
Grenzen: Authentication vs. Authorization

●
    Kerberos liefert nur Authentifizierung
    (und kann LDAP in diesem Punkt ersetzen)
●
    Authorisierung muss anders gelöst werden!
●
    Viele Systeme nutzen gruppenbasierte Authorisierung eines
    bestehenden Verzeichnisdienstes
●
    Deshalb zusätzliche LDAP-Anbindung meistens sinnvoll

Mehr Infos
→ https://www.anleitungen.rrze.fau.de

                        14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz   21
RRZE-Veranstaltungskalender und Mailinglisten

 Kalender abonnieren oder bookmarken
  www.rrze.fau.de/veranstaltungen/veranstaltungskalender/

 Mailingliste abonnieren
  Wöchentliche Terminhinweise werden zusätzlich an die Mailingliste
   RRZE-Aktuelles gesendet.
  Auch diese Liste kann man abonnieren:
   https://lists.fau.de/mailman/listinfo/rrze-aktuelles

                       14.07.2021 | Systemausbildung – Kerberos | Florian Klemenz   22
REGIONALES RECHENZENTRUM
ERLANGEN [ RRZE ]

Vielen Dank für Ihre Aufmerksamkeit!
Regionales Rechenzentrum Erlangen [RRZE]
Martensstraße 1, 91058 Erlangen
www.rrze.fau.de
Sie können auch lesen