Dans Kerberos, le serveur d'authentification (AS) et le serveur d'octroi de tickets (TGS) sont généralement implémentés sur le même serveur. Cette machine s'appelle le Key Distribution Center (KDC).
Assurément, il est logique d'implémenter ces services sur la même machine physique, car dans les petits et moyens réseaux, il serait exagéré de séparer ces deux services. De plus, j'ai une source relativement fiable, qui dit (traduit):
TGS et AS doivent accéder au même DB => cela n'a pas beaucoup de sens d'implémenter TGS et AS sur des machines différentes
Cependant, je ne vois pas quelle base de données doit être partagée entre les deux.
C'est mon idée, comment je séparerais AS et TGS, il n'y a pas de bases de données partagées:
- Comme AS et TGS sont séparés, ils ont un Master Secret différent
- L'AS dispose d'une base de données avec tous les utilisateurs avec leur secret principal respectif (utilisé lorsque l'utilisateur se connecte pour crypter la clé de session), ainsi que le secret principal du TGS (pour crypter les TGT demandés).
- Le TGS possède une base de données, qui lui permet de déterminer quel utilisateur est autorisé à utiliser quel service (ACL, liste de révocation, ...), ainsi qu'une base de données avec tous les services avec leurs maîtres secrets respectifs (pour crypter les tickets).
Lorsqu'un utilisateur souhaite utiliser un service (simplifié):
- Authentifiez-vous à l'AS
- Obtenez un Ticket Granting Ticket (TGT), chiffré avec le TGS Master Secret, ainsi que la clé de session, chiffrée avec le maître secret de l'utilisateur.
- Contactez le TGS avec le TGT
- Obtenez un ticket, crypté avec le Master Secret du service
- Contacter le service avec le ticket
Suis-je en train de manquer quelque chose ou n'y a-t-il vraiment aucun problème à séparer l'AS et le TGS?
Réponses:
Votre question est toute théorie. Je répondrai donc en nature. L'AS et le TGS sont des serveurs logiques, et en tant que tels, ils pourraient théoriquement être séparés. Mais dans la pratique, il n'y a aucune bonne raison de les implémenter sur des machines distinctes, et donc personne ne le fait dans la vie réelle. Même les réseaux les plus grands et les plus occupés au monde en termes d'authentification Kerberos n'ont pas besoin de séparer les composants logiques des KDC. Dans les implémentations réelles de Kerberos, toutes les données dont l'AS a besoin et toutes les données dont le TGS a besoin sont toutes stockées dans la même base de données. Il pourrait théoriquement être séparé mais il n'y a tout simplement aucune bonne raison de le faire et ne ferait que compliquer inutilement la mise en œuvre.
la source