In Kerberos werden der Authentifizierungsserver (AS) und der Ticket Granting Server (TGS) im Allgemeinen auf demselben Server implementiert. Diese Maschine wird als Key Distribution Center (KDC) bezeichnet.
Sicherlich ist es sinnvoll, diese Dienste auf derselben physischen Maschine zu implementieren, da es in kleinen und mittleren Netzwerken übertrieben wäre, diese beiden Dienste zu trennen. Zusätzlich habe ich eine relativ zuverlässige Quelle, die sagt (übersetzt):
TGS und AS müssen auf dieselbe Datenbank zugreifen => Es ist wenig sinnvoll, TGS und AS auf verschiedenen Computern zu implementieren
Ich sehe jedoch nicht, welche Datenbank zwischen den beiden geteilt werden muss.
Dies ist meine Idee, wie ich AS und TGS trennen würde, es gibt keine gemeinsam genutzten Datenbanken:
- Da AS und TGS getrennt sind, haben sie ein anderes Hauptgeheimnis
- Der AS verfügt über eine Datenbank mit allen Benutzern mit ihrem jeweiligen Hauptgeheimnis (das beim Anmelden des Benutzers zum Verschlüsseln des Sitzungsschlüssels verwendet wird) sowie über das Hauptgeheimnis des TGS (zum Verschlüsseln der angeforderten TGTs).
- Das TGS verfügt über eine Datenbank, mit der ermittelt werden kann, welcher Benutzer welchen Dienst verwenden darf (ACL, Sperrliste, ...), sowie über eine Datenbank mit allen Diensten mit ihren jeweiligen Hauptgeheimnissen (zum Verschlüsseln von Tickets).
Wenn ein Benutzer einen Dienst nutzen möchte (vereinfacht):
- Authentifizieren Sie sich bei der AS
- Holen Sie sich ein Ticket Granting Ticket (TGT), das mit dem TGS-Hauptgeheimnis verschlüsselt ist, sowie den Sitzungsschlüssel, der mit dem Hauptgeheimnis des Benutzers verschlüsselt ist.
- Kontaktieren Sie das TGS mit dem TGT
- Holen Sie sich ein Ticket, das mit dem Master Secret des Dienstes verschlüsselt ist
- Kontaktieren Sie den Service mit dem Ticket
Vermisse ich etwas oder gibt es überhaupt kein Problem zwischen AS und TGS?