У Kerberos сервер аутентифікації (AS) та сервер надання квитків (TGS), як правило, реалізовані на одному сервері. Ця машина називається Центром розподілу ключів (KDC).
Безумовно, має сенс впроваджувати ці послуги на тій же фізичній машині, як у малих та середніх мережах було б надмірно розділити ці два сервіси. Крім того, у мене є відносно надійне джерело, яке говорить (перекладається):
TGS і AS повинні мати доступ до однієї БД => це не має особливого сенсу впроваджувати TGS і AS на різних машинах
Однак я не бачу, яку базу даних потрібно ділити між ними.
Це моя ідея, як я б розділяв AS і TGS, спільних баз даних немає:
- Оскільки AS і TGS розділені, вони мають інший Master Secret
- AS має базу даних з усіма користувачами з їх відповідним головним секретом (використовується при вході Користувача для шифрування сеансового ключа), а також головний секрет TGS (для шифрування запитуваних TGT).
- У TGS є база даних, яка дозволяє визначити, якому користувачеві дозволено користуватися якою послугою (ACL, список відкликань, ...), а також базу даних з усіма службами з відповідними основними секретами (для шифрування квитків).
Коли користувач хоче скористатися послугою (спрощеною):
- Аутентифікація в AS
- Отримайте квиток на видачу квитків (TGT), зашифрований головним секретом TGS, а також ключ сесії, зашифрований головним секретом користувача.
- Зверніться до TGS з TGT
- Отримайте квиток, зашифрований головним секретом служби
- Зверніться в службу з квитком
Я щось пропускаю, чи насправді взагалі немає жодної проблеми між розділенням AS та TGS?