Kerberos : Quid du SSO par domaine de confiance
Kerberos ?
Le protocole Kerberos a vu le jour au MIT (massachusetts Institute of Technology) à la fin des années 1980. Etymologiquement, « Kerberos » provient de la mythologie grecque, et désigne le nom du chien à 3 têtes protégeant l’accès aux portes de l’enfer.
A l’origine, Kerberos était un ensemble de serveurs d’authentification (AS : Authentication servers) et avait été créé pour une utilisation OS UNIX afin d’authentifier des utilisateurs distants à l’aide de tickets/jetons.
SSO et Kerberos
Pendant près de 10 ans, Kerberos est resté cantonné aux mondes universitaire et militaire. C’est Microsoft, séduit par le schéma d’authentification de ce dernier, qui l’a adopté et en a fait son système d’authentification avec Windows 2000. Et Kerberos prit son envol.
L’intérêt du Kerberos est qu’il fournit nativement, au sein d’Active Directory, une solution d’authentification unique des utilisateurs stockés dans ce dernier, par simple paramétrage des applications à l’aide de jetons d’authentification.
Kerberos s’appuie sur trois idées simples :
- Une centralisation du référentiel utilisateurs.
- Le chiffrement des échanges (Cryptographie à clefs symétriques)
- L’établissement d’une relation de confiance avec un serveur central (pour approuver les authentifications)
La centralisation du référentiel utilisateurs n’est pas la partie la plus délicate, du simple fichier à l’annuaire LDAP, le Kerberos peut s’adapter à peu près à n’importe quel type de référentiel d’identités. Son innovation se trouve plutôt dans la réponse aux problématiques de chiffrement des échanges et de relation de confiance.
Pour y répondre, Kerberos utilise un système de cryptographie à clefs symétriques qui permet l’échange et la validation de 2 types de tickets : Les Ticket Granting Ticket (TGT) et Ticket Granting Service (TGS), sous l’autorité du KDC (Kerberos Distribution Center)
TGT : Le ticket d’authentification, également connu sous le nom de TGT, est un petit fichier d’identification crypté avec une période de validité limitée. Ce fichier contient une clé de session, une date d’expiration ainsi que l’adresse IP de l’utilisateur.
TGS : Le TGS est un composant logique du KDC qui valide l’utilisation d’un TGT pour un besoin spécifique.
KDC : Le centre de distribution de clefs du Kerberos est un service réseau qui fournit des tickets et des clefs de session aux utilisateurs et aux ordinateurs au sein d’un domaine active directory.
Les exemples de schema Kerberos sur internet sont souvent extrêmement complexes à comprendre. Il est pourtant simple à résumer et peut se traduire ainsi :
- Un utilisateur s’authentifie sur le serveur central KDC (1)
- Si l’authentification est validée, le KDC délivre un ticket TGT (2)
- Le TGT signifie « tu es authentifié, je te connais. Quand tu voudras accéder à une application (3), donne moi ton TGT (4), je te donnerai alors un autre ticket, le TGS (5)
- L’utilisateur fournit le TGS à l’application (6), ce ticket n’est valable que pour cette même application. Le module kerberos de l’application demande au KDC si le TGS est valide(7). Si oui, l’utilisateur accède à l’application car ils sont dans un même domaine de confiance.
Le système du Kerberos, reposant sur les notions de tickets et de relations de confiance, a été repris par de nombreuses entités, notamment par le Central Authentication Service (CAS), développé à l’université de Yale, et qui permet notamment de ne se connecter qu’une seule fois sur tous les sites web utilisant le même serveur CAS.
Comme tout système, Kerberos a ses faiblesses, et malgré son efficacité, il n’est pas un idéal de conception. Sa première limite est liée à la portée du jeton. En effet, le pattern de SSO par ticket Kerberos reste souvent restreint au monde de l’intranet/extranet. Il est en effet difficile de faire passer un TGT au travers d’une barrière de proxies. La deuxième limite est que les applications clientes et serveurs du domaine de confiance doivent techniquement pouvoir véhiculer et manipuler un système de tickets et jetons ; Si certaines applications type « IIS, IE, Firefox » sont des applications avec un Kerberos natif, il n’en est pas de même pour d’autres.
Saâd
Consultant Sécurité