
Konfiguration des Kerberos-Authentifizierungsprotokolls
Kerberos-Authentifizierung ist eine sichere, standardbasierte Methode zur Überprüfung von Benutzern in verteilten Netzwerken. Sie stellt sicher, dass sowohl der Benutzer als auch der Dienst, auf den er zugreift, die Identität des jeweils anderen bestätigen können, ohne Passwörter im Klartext zu übertragen.
Was ist Kerberos-Authentifizierung?
Die Kerberos-Authentifizierung ist ein von MIT entwickeltes Protokoll, das verschlüsselte Tickets verwendet, um Identitäten auf sichere und skalierbare Weise zu bestätigen. Es wird in Unternehmensnetzwerken häufig eingesetzt, insbesondere in Active Directory-Umgebungen, bei Single Sign-On (SSO) und cloudbasierten Anwendungen.
Anders als die einfache Validierung von Benutzername und Passwort vermeidet die Kerberos-Authentifizierung die Übertragung von Zugangsdaten über das Netzwerk. Stattdessen wird ein vertrauenswürdiger Dritter – das sogenannte Key Distribution Center (KDC) – verwendet, um zeitlich begrenzte Sitzungstoken auszustellen.
Die Nachrichten im Kerberos-Protokoll sind durch symmetrische Verschlüsselung gegen Wiederholungsangriffe und Abhören geschützt. Der Hauptzweck von Kerberos besteht darin, die Übertragung verschlüsselter Passwörter im Netzwerk zu vermeiden. Dadurch wird das Risiko von Packet Sniffern reduziert und die Gesamtsicherheit des Netzwerks erhöht.
Warum die Kerberos-Authentifizierung wichtig ist
Die Kerberos-Authentifizierung ist ein grundlegendes Protokoll für eine sichere, zentralisierte Benutzerüberprüfung in Unternehmensnetzwerken. Sie ermöglicht ein gegenseitiges Vertrauen zwischen Benutzern und Diensten, ohne dass Passwörter über das Netzwerk gesendet werden, was die Gefahr von Zugangsdatenklau und Man-in-the-Middle-Angriffen verringert.
Heutzutage wird Kerberos in Active Directory-Domänen, unternehmensweiten Single Sign-On-Systemen und sicheren Cloud-Umgebungen weit verbreitet eingesetzt. Sein ticketbasiertes Modell sorgt für eine skalierbare und effiziente Authentifizierung, besonders in komplexen, mehrschichtigen Infrastrukturen.
Werkzeuge wie DataSunrise unterstützen die Kerberos-Authentifizierung, indem sie als sicherer Proxy fungieren, Active Directory-Richtlinien durchsetzen und dabei den Zugriff auf kritische Datenressourcen – ob vor Ort oder in der Cloud – verwalten.
Obwohl der Kerberos-Sicherheitsanbieter effektiv gegen schwerwiegende Sicherheitsbedrohungen vorgeht, kann die Implementierung aufgrund verschiedener Einschränkungen schwierig sein:
- Wenn der Kerberos-Server ausfällt, können sich Benutzer nicht anmelden. Das Problem kann durch den Einsatz von Fallback-Authentifizierungsmechanismen und mehreren Kerberos-Servern gelöst werden.
- Die Uhren der beteiligten Hosts müssen synchronisiert werden. Andernfalls schlägt die Authentifizierung fehl, da Kerberos-Tickets eine bestimmte Gültigkeitsdauer haben.
- Die Kerberos-Authentifizierung kann nicht verwendet werden, wenn Benutzer von nicht vertrauenswürdigen Systemen auf Dienste zugreifen möchten.
- Wenn symmetrische Kryptografie verwendet wird, ermöglicht ein kompromittierter KDC einem Angreifer, sich als beliebiger Benutzer auszugeben.
- Jeder Netzwerkdienst, der einen anderen Hostnamen benötigt, benötigt einen eigenen Satz von Kerberos-Schlüsseln.
Wie die Kerberos-Authentifizierung funktioniert

Ein Key Distribution Center besteht aus einem Authentication Server (AS) und einem Ticket Granting Server (TGS). TGT steht für Ticket Granting Ticket.
- Der Benutzer gibt den Login und das Passwort ein. Die unverschlüsselte Benutzer-ID wird an den Authentication Server (AS) mit einer Anfrage für Dienste im Namen des Benutzers gesendet.
- AS prüft, ob der Benutzerlogin in der Datenbank vorhanden ist. Falls Informationen über den Benutzer vorhanden sind, kann AS einen clientseitigen Geheimschlüssel basierend auf der Benutzer-ID und dem Passwort generieren. AS sendet an den Benutzer:
- Den Client/TGS-Sitzungsschlüssel (verschlüsselt mit dem clientseitigen Geheimschlüssel);
- Das TGT, das die Benutzer-ID, die Netzwerkadresse und die Ticketgültigkeitsdauer + den Client/TGS-Sitzungsschlüssel (verschlüsselt mit dem TGS-Geheimschlüssel) enthält.
- Der Benutzer entschlüsselt die erste Nachricht, kann aber die zweite nicht entschlüsseln, da ihm der TGS-Geheimschlüssel fehlt. Der Client sendet eine Nachricht an den TGS:
- Das von AS erhaltene TGT + Server-ID + den TGS/Client-Sitzungsschlüssel (verschlüsselt mit dem TGS-Geheimschlüssel);
- Den Authenticator, der die Client-ID und einen Zeitstempel enthält (verschlüsselt mit dem Client/TGS-Sitzungsschlüssel).
- Der TGS entschlüsselt die erste Nachricht, erhält das TGT + den TGS/Client-Sitzungsschlüssel, mit dem 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 nicht die Ticketgültigkeitsdauer überschreitet. Falls alles korrekt ist, sendet der TGS an den Benutzer:
- Die verwendete ID, die Netzwerkadresse, die Ticketgültigkeitsdauer + den Client/Server-Sitzungsschlüssel (verschlüsselt mit dem Server-Geheimschlüssel);
- Den Client/Server-Sitzungsschlüssel (verschlüsselt mit dem Client/TGS-Sitzungsschlüssel).
- Der Client sendet Folgendes an den Server, zu dem er Zugriff erhalten möchte:
- Die verwendete ID, die Netzwerkadresse, die Ticketgültigkeitsdauer + den Client/Server-Sitzungsschlüssel (verschlüsselt mit dem Server-Geheimschlüssel);
- Den Authenticator, der die ID und den Zeitstempel enthält (verschlüsselt mit dem Client/Server-Sitzungsschlüssel).
- Der Zielserver entschlüsselt die Nachrichten des Benutzers, überprüft, ob die Benutzer-ID in beiden Nachrichten denselben Wert hat und ob die Gültigkeitsdauer nicht überschritten ist, und sendet dann an den Client:
- Zeitstempel + 1 (verschlüsselt mit dem Client/Server-Sitzungsschlüssel).
Dieser Prozess bestätigt, dass sowohl der Benutzer als auch der Server sind, wer sie vorgeben zu sein. Mit Kerberos-Authentifizierung können beide Seiten der Sitzung vertrauen, dass sie sicher ist.
Moderne Kerberos-Anwendungen
Kerberos bleibt in den heutigen Unternehmensumgebungen von zentraler Bedeutung. Cloud-Anbieter integrieren Kerberos in ihre Identitätsdienste. Die Multi-Faktor-Authentifizierung verstärkt 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 verwenden Kerberos für sichere CI/CD-Workflows. Systeme für das Mobile Device Management integrieren Kerberos-Prinzipien. Zero Trust-Architekturen bauen oft auf Kerberos-Grundlagen auf. Föderierte Identitätslösungen erstrecken Kerberos über organisatorische Grenzen hinweg. Automatisiertes Zertifikatsmanagement vereinfacht die Wartung von Kerberos. Moderne Implementierungen lösen viele der traditionellen Einschränkungen von Kerberos.
Konfiguration des Kerberos-Authentifizierungsprotokolls
Um das Kerberos-Protokoll zu konfigurieren, müssen Sie Folgendes tun:
- Einen Active Directory-Benutzer erstellen (alternativ können Sie auch einen bestehenden Benutzer verwenden).
- Melden Sie sich am Domain-Controller an, klicken Sie auf Start → Verwaltungstools und starten Sie Active Directory-Benutzer und -Computer.
- Falls noch nicht ausgewählt, klicken Sie auf den Knoten für Ihre Domäne (domain.com).
- Klicken Sie mit der rechten Maustaste auf Benutzer, wählen Sie Neu und dann Benutzer aus.
- Geben Sie im Dialogfeld Neues Objekt → Benutzer die Parameter des neuen Benutzers an. Es kann sich um einen regulären 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 sollte nicht aktiviert sein) und das Passwort für das Konto sollte dauerhaft gültig sein (das Kontrollkästchen Passwort läuft nie ab sollte aktiviert sein).
- Weisen Sie den Prinzipalnamen auf dem Domain-Controller die verschlüsselten Schlüssel zu. Für Maschinen unter Linux erstellen Sie eine keytab-Datei, die Paare von Kerberos-Prinzipalen und verschlüsselten Schlüsseln enthält. Eine keytab-Datei wird verwendet, um sich an verschiedenen entfernten Systemen mithilfe von Kerberos zu authentifizieren, ohne ein Passwort eingeben zu müssen.
- Erstellen Sie eine keytab-Datei mit dem ersten Eintrag unter Verwendung des ktpass-Tools:
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 mit dem Parameter princ angegeben wird, dem angegebenen Domänenkonto zu. /pass Gibt das Passwort für den Prinzipal-Benutzernamen an. /ptype Gibt den Typ des Prinzipals an. Nutzen Sie KRB5_NT_PRINCIPAL. /crypto Gibt die Schlüssel an, die in der keytab-Datei generiert werden. /out Weist ein Verzeichnis und einen Namen für die Ausgabedatei *.keytab zu. -setupn Setzt den Benutzerprinzipalnamen nicht zusammen mit dem Dienstprinzipalnamen. - Erstellen Sie einen zweiten Eintrag in der keytab-Datei für die Verbindung zur Datenbank unter Verwendung des AD-Benutzers.
Das folgende Beispiel zeigt, wie Einträge in der keytab-Datei für die Verbindung zur Vertica-Datenbank unter Verwendung des AD-Benutzers erstellt werden. Für andere Datenbanken oder GUI-Authentifizierung führen Sie denselben Befehl mit dem entsprechenden Dienstnamen im Parameter /princ 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 eine keytab-Datei mit dem ersten Eintrag unter Verwendung des ktpass-Tools:
- Konfigurieren Sie die Active Directory-Delegierung.
- Öffnen Sie auf dem Domain-Controller die Active Directory-Benutzer und -Computer und suchen Sie das Konto der Maschine, für die Sie Kerberos konfigurieren möchten.
- Gehen Sie im Eigenschaften-Bereich zur Registerkarte Delegierung, wählen Sie Diesem Computer nur die Delegierung an vertraute Dienste gestatten und klicken Sie auf Hinzufügen.
- Geben Sie im Fenster Benutzer und Computer das Benutzerkonto an, das zum Starten der Datenbank verwendet wurde, oder den Namen des Servers, auf dem das RDBMS installiert ist.
- Optional können Sie die Funktion Namen überprüfen nutzen, um zu prüfen, ob ein angegebener Benutzer oder Computer existiert, und klicken Sie auf OK, wählen Sie anschließend den erforderlichen Dienst aus und klicken Sie erneut 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 vollqualifizierten Domänennamen, den Namen des Domain-Controllers und den Parameter realm hinzuzufügen.
Wichtig: Lassen Sie in der Konfigurationsdatei keine Kommentare stehen, die mit dem Zeichen “#” gekennzeichnet sind.[libdefaults] default_realm = DOMAIN.COM # domänenspezifischer Parameter (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 # domänenspezifischer Parameter (Name des Domain-Controllers) admin_server = hostname.domain.com # domänenspezifischer Parameter (Name des Domain-Controllers) default_domain = DOMAIN.COM # domänenspezifischer Parameter (vollständiger Domänenname) } [domain_realm] .domain.com = DOMAIN.COM # domänenspezifischer Parameter (Domänenname für DNS-Namen) domain.com = DOMAIN.COM # domänenspezifischer Parameter (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 mit dem Windows-Betriebssystem müssen Sie das Kerberos-Protokoll nicht installieren und konfigurieren, jedoch muss die Maschine Mitglied der Active Directory-Domäne sein. Zur Festlegung der Dienstprinzipalnamen wird zudem der Befehl setspn verwendet. Nachfolgend ein Beispiel für die Konfiguration einer Windows-Maschine, die mithilfe der AD-Benutzeranmeldedaten auf die MS SQL Server-Datenbank zugreift.
Die Proxy-Adresse muss mit dem registrierten SPN des MSSQLSvc-Dienstes übereinstimmen. Verwenden Sie das SetSPN-Tool, um die beiden erforderlichen SPNs für das Konto des Computers, für den die Delegierung erlaubt wurde, zu registrieren:
setspn -A MSSQLSvc/proxy-host:proxy-port proxy-host
setspn -A MSSQLSvc/full-fqdn-proxy-host:proxy-port proxy-host
Die Liste aller registrierten SPNs kann mit folgendem Befehl abgerufen werden:
setspn -L proxy-host
Um den SPN proxy zu löschen, führen Sie Folgendes durch:
setspn -D MSSQLSvc/proxy-host:proxy-port proxy-host
Um das Test-Autorisierungsschema zu überprüfen, führen Sie nach der Verbindung zum Server folgenden Befehl aus:
select auth_scheme from sys.dm_exec_connections where session_id=@@spid
Das Ergebnis entspricht dem vom Server verwendeten Authentifizierungsschema: SQL, NTLM oder KERBEROS.
Falls Sie die Fehlermeldung „Cannot generate SSPI context“ erhalten, konsultieren Sie die Microsoft-Supportanweisungen, wie Sie das Problem mit der Security Support Provider Interface beheben können.
DataSunrise kann als Authentifizierungsproxy für Cloud- und On-Premises-Datenbanken fungieren, um die Risiken eines unbefugten Benutzerzugriffs zu minimieren und gleichzeitig die Authentifizierungsrichtlinien von Microsoft Active Directory und der Kerberos-Authentifizierung einzuhalten.
Enthält Ihre Datenbank oder cloudbasierte Speicherung sensible Informationen, die geschützt werden müssen? Müssen Sie die Vorgaben der DSGVO, SOX oder HIPAA einhalten? Entdecken Sie die hochmodernen Lösungen von DataSunrise für Auditing von Datenbanken, Sicherheit sowie Maskierung von Daten. Testen Sie unsere Software kostenlos oder vereinbaren Sie noch heute eine Online-Demo.
Fazit
Mit implementierter Kerberos-Authentifizierung erhalten Ihre Systeme eine zuverlässige, standardbasierte Grundlage für die sichere Benutzerüberprüfung. Ob vor Ort oder in der Cloud bereitgestellt – sie bietet essenzielle Schutzmaßnahmen für das moderne Identitätsmanagement und die zentralisierte Zugriffskontrolle.
Das Verständnis und die Implementierung der Kerberos-Authentifizierung kann Ihrem Unternehmen helfen, unbefugten Zugriff zu verhindern, den Diebstahl von Passwörtern zu reduzieren und den Zutrittskontrollstandards von Unternehmensniveau zu entsprechen.