W Kerberos, serwer uwierzytelniania (AS) i serwer przyznawania biletów (TGS) są zazwyczaj zaimplementowane na tym samym serwerze. To urządzenie nazywa się Centrum dystrybucji kluczy (KDC).
Z pewnością sensowne jest wdrożenie tych usług na tej samej maszynie fizycznej, ponieważ w małych i średnich sieciach rozdzielenie tych dwóch usług byłoby nadmierną przesadą. Dodatkowo mam stosunkowo wiarygodne źródło, które mówi (przetłumaczone):
TGS i AS muszą mieć dostęp do tego samego DB => nie ma sensu wdrażanie TGS i AS na różnych komputerach
Jednak nie widzę, która baza danych musi być dzielona między nimi.
Oto mój pomysł, jak oddzielić AS i TGS, nie ma wspólnych baz danych:
- Ponieważ AS i TGS są oddzielone, mają one inny Master Secret
- AS ma bazę danych ze wszystkimi użytkownikami z ich głównym kluczem tajnym (używanym, gdy Użytkownik loguje się, do szyfrowania klucza sesji), a także kluczem głównym TGS (do szyfrowania żądanych TGT).
- TGS ma bazę danych, która pozwala określić, który użytkownik może korzystać z której usługi (ACL, lista odwołania, ...), a także bazę danych ze wszystkimi usługami z ich odpowiednimi tajnymi kluczami głównymi (do szyfrowania Biletów).
Gdy użytkownik chce skorzystać z usługi (uproszczonej):
- Uwierzytelnij w AS
- Uzyskaj bilet przyznający bilet (TGT), zaszyfrowany przy użyciu głównego klucza tajnego TGS, a także klucz sesji zaszyfrowany przy użyciu głównego klucza tajnego użytkownika.
- Skontaktuj się z TGS z TGT
- Zdobądź bilet, zaszyfrowany głównym sekretem serwisu
- Skontaktuj się z obsługą z biletem
Czy coś mi brakuje, czy naprawdę nie ma żadnego problemu z oddzieleniem AS i TGS?