inclusion Kerberos

This commit is contained in:
Paul Marillonnet 2017-03-30 16:10:09 +02:00
parent fa27218837
commit 2136eb1607
2 changed files with 57 additions and 59 deletions

58
doc.md
View File

@ -39,64 +39,6 @@ TODO Paul
Utilisé pour la plateforme FranceConnect
Plus facile à mettre en place que des solutions basées SAML ?
## Kerberos (RFC1510)
TODO bouquin o'Reilly
TODIG
- Mutual Authentication :
Le client s'authentifie auprès du serveur, et réciproquement. Cette double authentification limite les risque d'usurpation d'identité (*identity spoofing*)
Trusted Third-Party
SESAME's limited delegation
L'algorithme de chiffrement symétrique utilisé par Kerberos est DES.
Notion de principal
Chiffrement des tickets envoyés
Ticket delivery service
Les clés distribuées par le service (de délivrement de tickets) ont une durée limitée dans le temps, ce qui diminue le risque d'attaques de type *replay* (rejeu frauduleux d'une session par un tiers non autorisé).
On parle alors de clé de session.
### Recommandations/spécifications de la RFC
#### Déroulement de la phase d'authentfication :
- Le client envoie une requête d'accès à un service donné,
- Le serveur d'authentification Kerberos renvoie les accès, chiffré avec la clé publique du client. Ces accès contiennent un ticket initial et une clé cde session (clé temporaire).
- Le client va utiliser le ticket pour contacter le serveur. Ce ticket contient l'identité du client et la clé de session chiffrée avec la clé publique du serveur (associé au service demandé par le client).
- La clé temporaire initie l'authentification (pas forcément mutuelle), puis la négociation d'un paramètres de communication chiffrée entre client et serveur.
#### Accès à l'AS
Deux façons de réaliser la première étape (demande d'accès du client au serveur d'authentification) :
* D'abord un TGT (*Ticket-Granting Ticket*) pour contacter le TGS (*Ticket-Granting Server*)
* Sinon, le TGS est un serveur d'application comme les autres, pas de méthode de communication spécifique.
L'accès à la base de données des principaux se fait selon le protocole KADM (Kerberos Administration).
#### *Realms* (Royaumes)
A un serveur d'authentification est associé un royaume. Les royaumes représentent donc une unité organisationnelle nécessitant un mécanisme d'authentification pour ses principaux.
On remarquera ainsi que le nom du royaume apparaît dans l'identifiant de tout principal de ce royaume.
Il peut cependant être intéressant de mettre en place des mécanismes de communication (et d'authentification) inter-royaume.
//TODO cross-realm operations
Ces communications inter-royaumes nécessitant que l'admin sys mette en place des clés prévues à cet effet. Elles permettront les échanes chiffrés entre les royaumes.
Concrètement, le TGS d'un royaume est enregistré en tant que principal du second royaume. Tout client local peut alors contacter le TGS distant à l'aide un TGT classique.
La communication entre deux royaumes peuvent transiter par plusieurs royaumes intermédiaires, pourvu qu'une clé inter-royaume soit disponible pour chaque échange direct.
On parle alors de chemin d'authentification (*authentication path*).
En conséquence, pour des raisons pratiques, on met en place une organisation hiérarchique des royaumes entre eux, selon une structure arborescente.
Dans un tel modèle, tout royaume a un père et potentiellement plusieurs fils.
Cette hiérarchie est déduite des chemins d'authentification usuels.
TODO Question : comment est mise en place la base de données de principaux ? revoir KADM dans le cas de plusieurs royaumes.
On remarquera enfin que le processus d'authentification n'est par nature pas transparent pour l'application. Elle connaît, à l'aide du ticket, les differents royaumes impliqués dans le chemin d'authentification. Elle peut alors en déduire la fiabilité du processus d'authentification en fonction des différents acteurs mis en jeu.
TODO : Section 1.2 (*Environmental Assumptions*) mérite d'être détaillée ici
# Identity Management
## Principes généraux

View File

@ -704,7 +704,63 @@ pointeurs TODO
### Authentification et SSO
#### Kerberos (?)
#### Kerberos (RFC1510)
TODO bouquin o'Reilly
TODIG
- Mutual Authentication :
Le client s'authentifie auprès du serveur, et réciproquement. Cette double authentification limite les risque d'usurpation d'identité (*identity spoofing*)
Trusted Third-Party
SESAME's limited delegation
L'algorithme de chiffrement symétrique utilisé par Kerberos est DES.
Notion de principal
Chiffrement des tickets envoyés
Ticket delivery service
Les clés distribuées par le service (de délivrement de tickets) ont une durée limitée dans le temps, ce qui diminue le risque d'attaques de type *replay* (rejeu frauduleux d'une session par un tiers non autorisé).
On parle alors de clé de session.
##### Recommandations/spécifications de la RFC
###### Déroulement de la phase d'authentfication :
- Le client envoie une requête d'accès à un service donné,
- Le serveur d'authentification Kerberos renvoie les accès, chiffré avec la clé publique du client. Ces accès contiennent un ticket initial et une clé cde session (clé temporaire).
- Le client va utiliser le ticket pour contacter le serveur. Ce ticket contient l'identité du client et la clé de session chiffrée avec la clé publique du serveur (associé au service demandé par le client).
- La clé temporaire initie l'authentification (pas forcément mutuelle), puis la négociation d'un paramètres de communication chiffrée entre client et serveur.
###### Accès à l'AS
Deux façons de réaliser la première étape (demande d'accès du client au serveur d'authentification) :
* D'abord un TGT (*Ticket-Granting Ticket*) pour contacter le TGS (*Ticket-Granting Server*)
* Sinon, le TGS est un serveur d'application comme les autres, pas de méthode de communication spécifique.
L'accès à la base de données des principaux se fait selon le protocole KADM (Kerberos Administration).
###### *Realms* (Royaumes)
A un serveur d'authentification est associé un royaume. Les royaumes représentent donc une unité organisationnelle nécessitant un mécanisme d'authentification pour ses principaux.
On remarquera ainsi que le nom du royaume apparaît dans l'identifiant de tout principal de ce royaume.
Il peut cependant être intéressant de mettre en place des mécanismes de communication (et d'authentification) inter-royaume.
//TODO cross-realm operations
Ces communications inter-royaumes nécessitant que l'admin sys mette en place des clés prévues à cet effet. Elles permettront les échanes chiffrés entre les royaumes.
Concrètement, le TGS d'un royaume est enregistré en tant que principal du second royaume. Tout client local peut alors contacter le TGS distant à l'aide un TGT classique.
La communication entre deux royaumes peuvent transiter par plusieurs royaumes intermédiaires, pourvu qu'une clé inter-royaume soit disponible pour chaque échange direct.
On parle alors de chemin d'authentification (*authentication path*).
En conséquence, pour des raisons pratiques, on met en place une organisation hiérarchique des royaumes entre eux, selon une structure arborescente.
Dans un tel modèle, tout royaume a un père et potentiellement plusieurs fils.
Cette hiérarchie est déduite des chemins d'authentification usuels.
TODO Question : comment est mise en place la base de données de principaux ? revoir KADM dans le cas de plusieurs royaumes.
On remarquera enfin que le processus d'authentification n'est par nature pas transparent pour l'application. Elle connaît, à l'aide du ticket, les differents royaumes impliqués dans le chemin d'authentification. Elle peut alors en déduire la fiabilité du processus d'authentification en fonction des différents acteurs mis en jeu.
TODO : Section 1.2 (*Environmental Assumptions*) mérite d'être détaillée ici
#### SAML
#### SAML