Kerberos: Trennung von AS und TGS

9

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?

Misch
quelle
1
Es hört sich so an, als wären Sie viel zu tief in Kerberos-Interna. Die übliche Art der Skalierung besteht darin, einfach weitere KDCs hinzuzufügen. Ich bin mir also nicht sicher, was Sie erreichen möchten.
Michael Hampton
1
Richtig - mit welchem ​​Problem sind Sie tatsächlich konfrontiert, das Sie zu lösen versuchen?
Mfinni
1
Ich versuche nicht, ein konkretes Problem zu lösen. Ich versuche nur, die Kerberos-Interna (für eine Prüfung) zu verstehen, ohne sie im Moment tatsächlich verwenden zu wollen. Die Frage ist rein theoretisch, ich möchte nur wissen, ob ich etwas falsch verstanden habe oder ob das Zitat in meiner Frage nicht ganz richtig ist.
Misch

Antworten:

4

Ihre Frage ist alles Theorie. Also werde ich in Form von Sachleistungen antworten. AS und TGS sind logische Server und können daher theoretisch getrennt werden. In der Praxis gab es jedoch keinen guten Grund, sie auf separaten Maschinen zu implementieren, und so tut dies im wirklichen Leben niemand. Selbst die größten und geschäftigsten Netzwerke der Welt in Bezug auf die Kerberos-Authentifizierung müssen die logischen Komponenten der KDCs nicht trennen. In realen Implementierungen von Kerberos werden alle vom AS benötigten Daten und alle vom TGS benötigten Daten in derselben Datenbank gespeichert. Es könnte theoretisch getrennt werden, aber es gibt keinen guten Grund dafür und würde die Implementierung nur unnötig komplizieren.

Ryan Ries
quelle
1
Ich habe gerade ein anderes Problem beim Trennen von AS und TGS gefunden: Es ist nicht nur möglich, TGTs von der AS zu erhalten, sondern Sie können auch ein Ticket für einen anderen Dienst anfordern (z. B. wenn Sie wissen, dass Sie nur dieses eine Ticket benötigen) kein Umweg über TGT erforderlich). Dies bedeutet, dass der AS zusätzlich alle Daten benötigt, von denen ich angenommen habe, dass nur der TGS sie benötigt.
Misch