
Konfiguration des Kerberos-Authentifizierungsprotokolls
Benannt nach einem dreiköpfigen Hund, der in antiken griechischen Mythen die Tore zur Unterwelt bewacht, bietet das Kerberos-Protokoll einen sicheren Authentifizierungsdienst für Computernetzwerke. Es führt eine gegenseitige Authentifizierung zwischen dem Benutzer und dem Server durch, indem es ein vertrauenswürdiges drittes Zentrum zur Schlüsselverteilung (Key Distribution Center, KDC) verwendet, das Authentifizierungs- und Ticketvergabedienste bereitstellt. Alle wichtigen Betriebssysteme, einschließlich Microsoft Windows, Linux, Apple OS X und FreeBSD, unterstützen das Kerberos-Protokoll.
Die Nachrichten des Kerberos-Protokolls sind mittels gemeinsamer geheimer Kryptografie gegen Wiedergabeangriffe und Abhörangriffe geschützt. Das Hauptziel von Kerberos besteht darin, die Übertragung verschlüsselter Passwörter über das Netzwerk zu vermeiden. Es eliminiert die Bedrohung durch Packet Sniffers und verbessert die gesamte Netzwerksicherheit.
Warum Kerberos-Authentifizierung wichtig ist
Kerberos-Authentifizierung ist ein grundlegendes Protokoll für eine sichere, zentrale Benutzerüberprüfung in Unternehmensnetzwerken. Es ermöglicht gegenseitiges Vertrauen zwischen Benutzern und Diensten, ohne dass Passwörter über das Netzwerk gesendet werden, wodurch das Risiko eines Diebstahls von Anmeldeinformationen und Man-in-the-Middle-Angriffen verringert wird.
Heute wird Kerberos weit verbreitet in Active Directory-Domänen, Single-Sign-On-Systemen für Unternehmen und sicheren Cloud-Umgebungen eingesetzt. Sein ticketbasiertes Modell gewährleistet eine skalierbare und effiziente Authentifizierung, insbesondere in komplexen Mehrschichtinfrastrukturen.
Werkzeuge wie DataSunrise unterstützen die Kerberos-Authentifizierung, indem sie als sicherer Proxy fungieren, Active Directory-Richtlinien durchsetzen und den Zugang zu kritischen Datenressourcen verwalten – sowohl vor Ort als auch in der Cloud.
Obwohl der Kerberos-Sicherheitsunterstützungsanbieter effektiv mit schweren Sicherheitsbedrohungen umgeht, kann es aufgrund verschiedener Einschränkungen schwierig zu implementieren sein:
- Wenn der Kerberos-Server ausfällt, können sich Benutzer nicht anmelden. Das Problem kann durch die Verwendung von Fallback-Authentifizierungsmechanismen und mehreren Kerberos-Servern gelöst werden.
- Die Uhren der beteiligten Hosts müssen synchronisiert sein. Andernfalls schlägt die Authentifizierung fehl, da Kerberos-Tickets eine bestimmte Verfügbarkeitsdauer haben.
- Kerberos kann nicht verwendet werden, wenn Benutzer von nicht vertrauenswürdigen Systemen aus auf Dienste zugreifen möchten.
- Im Falle der Verwendung symmetrischer Kryptografie kann eine Kompromittierung der Authentifizierungsinfrastruktur einem Angreifer ermöglichen, sich als beliebiger Benutzer auszugeben.
- Jeder Netzwerkdienst, der einen anderen Hostnamen erfordert, benötigt sein eigenes Set von Kerberos-Schlüsseln.
Wie die Kerberos-Authentifizierung funktioniert

Ein Schlüsselverteilungszentrum besteht aus einem Authentifizierungsserver (AS) und einem Ticketvergabe-Server (TGS). TGT ist ein Ticketgewährungsticket.
- Der Benutzer gibt Anmeldeinformationen und Passwort ein. Die Klartext-Benutzer-ID wird an den Authentifizierungsserver (AS) gesendet mit einer Anfrage für Dienste im Namen des Benutzers.
- AS überprüft, ob der Benutzerlogin in der Datenbank vorhanden ist. Wenn Informationen zu diesem Benutzer vorhanden sind, kann AS basierend auf der Benutzer-ID und dem Passwort einen geheimen Benutzerschlüssel generieren. AS sendet an den Benutzer:
- Den Client/TSG-Sitzungsschlüssel (verschlüsselt mit dem Client-Geheimschlüssel);
- Das TGT einschließlich der Benutzer-ID, Netzadresse und der Gültigkeitsdauer des Tickets + Client/TGS-Sitzungsschlüssel (verschlüsselt mit dem TGS-Geheimschlüssel).
- Der Benutzer entschlüsselt die erste Nachricht, kann jedoch die zweite nicht entschlüsseln, da er nicht über den TSG-Geheimschlüssel verfügt. Der Client sendet eine Nachricht an den TGS:
- Das von AS empfangene TGT + Server-ID + TGS/Client-Geheimschlüssel (verschlüsselt mit dem TGS-Geheimschlüssel);
- Den Authentifikator einschließlich der Client-ID und des Zeitstempels (verschlüsselt mit dem Client/TSG-Sitzungsschlüssel).
- Der TGS entschlüsselt die erste Nachricht, erhält das TGT + TGS/Client-Sitzungsschlüssel, mit welchem er die zweite Nachricht entschlüsselt. Der TGS überprüft, ob die Benutzer-ID aus der ersten Nachricht mit der ID aus der zweiten Nachricht übereinstimmt und ob der Zeitstempel die Gültigkeitsperiode des Tickets nicht überschreitet. Falls alles korrekt ist, sendet der TSG an den Benutzer:
- Die verwendete ID, Netzadresse, Ticketvalidierungszeitraumes + Client/Server-Sitzungsschlüssel (verschlüsselt mit dem Server-Geheimschlüssel);
- Der Client/Server-Sitzungsschlüssel (verschlüsselt mit dem Client/TGS-Geheimschlüssel).
- Der Client sendet das Folgende an den Server, auf den er zugreifen möchte:
- Die verwendete ID, Netzadresse, Ticketvalidierungszeitraumes + Client/Server-Sitzungsschlüssel (verschlüsselt mit dem Server-Geheimschlüssel);
- Der Authentifikator einschließlich der ID und des Zeitstempels (verschlüsselt mit dem Client/Server-Sitzungsschlüssel).
- Der Zielserver entschlüsselt die Nachrichten des Benutzers, prüft, ob die Benutzer-ID aus beiden Nachrichten denselben Wert hat und ob die Gültigkeitsfrist nicht überschritten ist, und sendet dann an den Client den folgenden Parameter, um seine Identität zu bestätigen:
- Zeitstempel + 1 (verschlüsselt mit dem Client/Server-Sitzungsschlüssel).
Der Client überprüft, ob der Zeitstempelwert Zeitstempel + 1 beträgt, was die wahre Identität des Servers zeigt. Falls dies der Fall ist, kann der Client dem Server vertrauen und mit ihm arbeiten.
Moderne Anwendungen von Kerberos
Kerberos bleibt in den heutigen Unternehmensumgebungen unerlässlich. Cloud-Anbieter integrieren Kerberos in ihre Identitätsdienste. Mehrfaktor-Authentifizierung verbessert die Sicherheitslage von Kerberos. Single-Sign-On-Lösungen nutzen Kerberos für nahtlosen Zugriff. Viele containerisierte Anwendungen unterstützen die Kerberos-Authentifizierung. DevOps-Pipelines nutzen Kerberos für sichere CI/CD-Workflows. Systeme zur Verwaltung mobiler Geräte integrieren Kerberos-Prinzipien. Zero-Trust-Architekturen bauen oft auf Kerberos-Grundlagen auf. Föderierte Identitätslösungen erweitern Kerberos über organisatorische Grenzen hinweg. Automatisiertes Zertifikatsmanagement vereinfacht die Kerberos-Wartung. Moderne Implementierungen adressieren viele traditionelle Kerberos-Einschränkungen.
Konfiguration des Kerberos-Authentifizierungsprotokolls
Um das Kerberos-Protokoll zu konfigurieren, müssen Sie Folgendes tun:
- Einen Active Directory-Benutzer erstellen (Sie können stattdessen einen vorhandenen Benutzer verwenden).
- Melden Sie sich beim Domänencontroller-Server an, klicken Sie auf Start → Verwaltungstools, und starten Sie Active Directory-Benutzer und Computer.
- Wenn es nicht bereits ausgewählt ist, klicken Sie auf den Knoten für Ihre Domäne (domain.com).
- Klicken Sie mit der rechten Maustaste auf Benutzer, zeigen Sie auf Neu und klicken Sie dann auf Benutzer.
- Geben Sie im Dialogfeld Neues Objekt → Benutzer die Parameter des neuen Benutzers an. Es muss sich nicht um einen regelmäßigen Benutzer handeln, es ist nicht erforderlich, dem Benutzer zusätzliche Privilegien zu gewähren. Das Benutzerkonto sollte aktiv sein (das Kontrollkästchen Konto ist deaktiviert deaktiviert), und das Passwort für das Konto sollte dauerhaft sein (das Kontrollkästchen Passwort läuft nie ab aktiviert).
- Weisen Sie den DsseinPrinzipalnamen mit den verschlüsselten Schlüsseln auf der Domänencontroller-Maschine zu. Für Maschinen unter Linux erstellen Sie eine Keytab-Datei, die Paare von Kerberos-Prinzipalnamen und verschlüsselten Schlüsseln enthält. Eine Keytab-Datei wird verwendet, um sich ohne Passwort bei verschiedenen Remote-Systemen über Kerberos zu authentifizieren.
- Erstellen Sie mit dem ktpass-Tool den ersten Eintrag in einer Keytab:
ktpass /princ [email protected] /mapuser user1_backend /pass /crypto all /ptype KRB5_NT_PRINCIPAL /out C:\Users\user1\Desktop \datasunrise.keytab -setupn
/princ Der Dienstprinzipalname (SPN) im folgenden Format: @ /mapuser Ordnet den Namen des Kerberos-Prinzipals, der durch den princ-Parameter angegeben ist, dem angegebenen Domänenkonto zu. /pass Gibt das Passwort für den Benutzernamen des Prinzipals an. /ptype Gibt den Prinzipaltyp an. Verwenden Sie KRB5_NT_PRINCIPAL. /crypto Legt die Schlüssel fest, die in der Keytab-Datei generiert werden. /out Ordnet ein Verzeichnis und einen Namen für die Ausgabe-Keytab-Datei zu. -setupn Legt den Benutzerprinzipalnamen nicht zusammen mit dem Dienstprinzipalnamen fest. - Erstellen Sie einen zweiten Eintrag in der Keytab-Datei, um sich mit dem AD-Benutzer mit der Datenbank zu verbinden.
Das Beispiel wird für die Erstellung von Keytab-Einträgen für die Verbindung mit Vertica-Datenbank unter Verwendung des AD-Benutzers gegeben. Für andere Datenbanken oder GUI-Authentifizierung führen Sie denselben Befehl mit dem entsprechenden Dienstnamen im /princ-Parameter aus.
ktpass /out ./datasunrise.keytab /princ vertica/[email protected] /mapuser user1 /mapop set /pass /ptype KRB5_NT_PRINCIPAL /crypto RC4-HMAC-NT
- Sie müssen die Keytab-Datei auf die Linux-Maschine übertragen.
- Erstellen Sie mit dem ktpass-Tool den ersten Eintrag in einer Keytab:
- Aktivieren Sie die Active Directory-Delegierung.
- Auf der Domänencontroller-Maschine, gehen Sie zu Active Directory-Benutzer und -Computer, suchen Sie das Konto der Maschine, die Sie für Kerberos konfigurieren möchten.
- Im Eigenschaftenbereich, gehen Sie auf die Delegierung-Seite und wählen Sie Diese Computer nur für die Delegierung zu bestimmten Diensten vertrauenswürdigen und klicken Sie auf Hinzufügen.
- Im Fenster Benutzer und Computer geben Sie das Benutzerkonto an, das verwendet wurde, um die Datenbank zu starten oder den Namen des Servers, auf dem das RDBMS installiert ist.
- Optional können Sie Namen überprüfen verwenden, um zu überprüfen, ob ein bestimmter Benutzer oder Computer vorhanden ist, und klicken Sie auf OK, wählen dann den erforderlichen Dienst aus und klicken auf OK.
- Installieren und konfigurieren Sie den Kerberos-Client auf Ihrer Maschine.
sudo apt-get install krb5-user libpam-krb5 libpam-ccreds auth-client-config
Bearbeiten Sie die Datei /etc/krb5.conf, um den vollständigen Domänennamen, den Namen des Domänencontrollers und den realm-Parameter hinzuzufügen
Wichtig: Lassen Sie keine mit dem “#”-Zeichen gekennzeichneten Kommentare in der Konfigurationsdatei.[libdefaults] default_realm = DOMAIN.COM # spezifischer Domänenparameter (vollständiger Domänenname) clockskew = 300 ticket_lifetime = 1d forwardable = true proxiable = true dns_lookup_realm = true dns_lookup_kdc = true [realms] DOMAIN.COM = { kdc = hostname.domain.com # spezifischer Domänenparameter (Domänencontrollername) admin_server = hostname.domain.com # spezifischer Domänenparameter (Domänencontrollername) default_domain = DOMAIN.COM # spezifischer Domänenparameter (vollständiger Domänenname) } [domain_realm] .domain.com = DOMAIN.COM # spezifischer Domänenparameter (Domänenname für DNS-Namen) domain.com = DOMAIN.COM # spezifischer Domänenparameter (Domänenname für DNS-Namen) [appdefaults] pam = { ticket_lifetime = 1d renew_lifetime = 1d forwardable = true proxiable = false retain_after_close = false minimum_uid = 0 debug = false }
Für Maschinen unter Windows OS müssen Sie das Kerberos-Protokoll nicht installieren und konfigurieren, es muss jedoch in der Active Directory-Domäne sein. Außerdem wird der Befehl setspn verwendet, um die Dienstprinzipalnamen festzulegen. Unten ist ein Beispiel für die Konfiguration einer Windows-Maschine, um eine Verbindung zur MS SQL Server Datenbank unter Verwendung der AD-Benutzeranmeldeinformationen herzustellen.
Die Proxy-Adresse muss mit dem registrierten SPN des MSSQLSvc-Dienstes übereinstimmen. Verwenden Sie das SetSPN-Tool, um die beiden erforderlichen SPN’s für das Konto des Computers zu registrieren, für den Sie die Delegierung zugelassen haben:
setspn -A MSSQLSvc/proxy-host:proxy-port proxy-host
setspn -A MSSQLSvc/full-fqdn-proxy-host:proxy-port proxy-host
Die Liste aller registrierten SPN’s kann durch den folgenden Befehl abgerufen werden:
setspn -L proxy-host
Um den SPN-Proxy zu löschen, führen Sie folgendes aus:
setspn -D MSSQLSvc/proxy-host:proxy-port proxy-host
Um das Autorisierungsschema zu testen, führen Sie den folgenden Befehl nach der Verbindung zum Server aus:
select auth_scheme from sys.dm_exec_connections where session_id=@@spid
Das Ergebnis wird dem vom Server verwendeten Authentifizierungsschema entsprechen: SQL, NTLM oder KERBEROS.
Falls Sie den Fehler “Kontext von SSPI kann nicht generiert werden” erhalten, konsultieren Sie die Microsoft-Supportanweisungen, um das Problem mit der Sicherheitsunterstützungsanbieter-Schnittstelle zu beheben.
DataSunrise kann als Authentifizierungsproxy für Cloud- und On-Premises-Datenbanken fungieren, um die Risiken unbefugter Benutzerzugriffe zu minimieren, während die Authentifizierungsrichtlinien von Microsoft Active Directory und Kerberos-Protokoll aufrechterhalten werden.
Enthalten Ihre Datenbank oder Cloud-basierter Speicher sensible Informationen, die Schutz erfordern? Müssen Sie GDPR-, SOX- oder HIPAA-Vorschriften einhalten? Entdecken Sie die hochmodernen Lösungen von DataSunrise für die DatenbankPrüfung, Sicherheit und Datenmaskierung. Testen Sie unsere Software kostenlos oder vereinbaren Sie noch heute eine Online-Demo.