3. Introduction
Les services que nous devons rendre aux utilisateurs de
notre réseau sont divers et variés. Un point primordiale est
l’authentification. Il constitue le premier service rendu, le
plus utilisé, mais aussi l’un de nos plus gros problèmes.
Ainsi plusieurs solutions ont émergées parmi les quelles
Samba ; Active Directory ou Ldap en présentant aux
utilisateurs un identifiant unique : login/mot de passe.
Cependant à tour de rôle ils ont chacun montrés leurs
limites soit du point de vue de la sécurité ; soit de la taille
du réseau ; soit de la lourdeur de traitement.
Il faut donc fournir aux usagers un service Single Sign On
(SSO) c’est-à-dire s’authentifier qu’une seule fois et
qu’après tous les services compatibles ne redemandent
pas une authentification :
il s’agit de Kerberos avec son service de ticket
4. Présentation de Ldap
Ldap est un protocole d’accès a un annuaire. Il est
caractérisé par un accès rapide mais des mise à jours
lentes. Il présente une structure d’arborescence et
l’échange des données se fait le langage de recherche
LDIF (LDAP Data Interchange Format)
Chaque entrée est référencée de manière unique dans le
DIT (Directoty Information Tree) par son distinguished
name (DN). Le DN représente le nom de l'entrée sous la
forme du chemin d'accès à celle-ci depuis le sommet de
l'arbre. On peut comparer le DN au path d'un fichier Unix.
CN (common name), il s'agit du nom de la personne
OU (organizational unit), il s'agit du service de
l'entreprise à laquelle appartient la personne O
(organization), il s'agit de l'entreprise de la personne, DC
(Domain Country) il du nom de domaine de l’entreprise.
5. Présentation de Ldap
Schéma LDAP
DIT .sn
Root
UAHB UCAD estm
DC
Science Gestion Droit
O
Licence Master I Master II
OU
Ababacar Moussa Cheikh
CN
6. Rôle de Ldap
Initialement, Ldap pour Lightweight Directory Access
Protocol est un frontal d’accès à des bases d’annuaires
X500. Il devient natif (standalone Ldap) utilisant sa
propre base de données sous l’impulsion d’un groupe de
l’université de Michigan. Ldap définit :
Un protocole d’accès
Un modèle d’information
Un modèle de nommage
Un modèle fonctionnel
Un modèle de sécurité
Un modèle de duplication
Des API pour développer des applications clientes
Des LDIF un format d’échange de données
7. Rôle de Ldap
Le protocole définit :
Comment s’établit la communication client serveur:
commande pour se connecter se déconnecter, chercher,
comparer, créer, modifier ou effacer des entrées.
Comment s’établit la communication serveur serveur :
échanger leur contenu, synchroniser, créer des liens
permettant de relier des annuaires
Le format de transport des données et mécanisme de
sécurité: méthodes de chiffrement et d’authentification,
mécanismes de règles d’accès au données
Les opérations de base à savoir interrogation (search,
compare), mise à jour (add, delete, modify, rename),
connexion au service (bind, unbind,abandon)
8. Rôle de Ldap
Établissement de la connexion, échange et déconnexion
entre un server Ldap et un client Ldap
9. Limites de Ldap
Lorsque qu’un système d’authentification est architecturé
autour de l’annuaire Ldap, le service est réalisé par un fast
bind sur l’annuaire du couple uid/password . Ainsi :
les clients Unix se base sur le module pam_ldap ;
Les clients Windows XP utilise le module pgina;
Les montages NFS sont effectués sans authentification;
Les applications web sont CASifiées;
Les clients Windows impriment via des montages smb
Les clients Unix impriment via pam_ldap
Ldap est très adapté dans des environnements mixtes et
est le plus disponible cependant:
10. Limites de Ldap
Les mots de passe des usagers doivent impérativement
être acheminer en clair depuis les postes de travail qui
hébergent ses services jusqu’aux serveurs Ldap chargés
des opérations de contrôle.
L’utilisation de Ldaps (Ldap sur TLS) permet de
contourner ce problème puisque impose une session TLS
avant tout dialogue Ldap.
Aussi pour chaque service il faut une réauthentification,
ce parfois mal vu par l’usager car a chaque fois c’est le
même couple uid/password à remettre ; mais aussi même
si les mots de passe sont cryptés et que en théorie le
chiffrement est non réversible une comparaison du mots
de passe avec une table de mots de passe déjà utilisés est
possible avec une telle fréquence de passage des mots de
passe utilisateurs
11. Solution Kerberos
Présentation de Kerberos
Kerberos est un protocole d'authentification réseau qui repose sur un
mécanisme de clés secrètes (chiffrement symétrique ) et l'utilisation
de tickets, et non de mots de passe en clair, évitant ainsi le risque
d'interception frauduleuse des mots de passe des utilisateurs. Créé au
Massachusetts Institute of Technology (MIT), il porte le nom grec de
Cerbère, gardien des Enfers (un chient à 3 tête). Kerberos fonctionne
en environnement hétérogène, assurant la sécurité des échanges sur
un réseau non sûr et permettant la mise en place d'un véritable service
d'authentification unique. Kerberos utilise un système de chiffrement
symétrique pour assurer un dialogue sécurisé entre deux
protagonistes. Les dialogues s'opèrent en utilisant une clef secrète et
partagée. Les algorithmes de chiffrement sont publics (AES, DES,
3DES, ...), toute la sécurité du système repose sur la confidentialité de
la clef de chiffrement. Pour faciliter la gestion d'un tel système,
Kerberos repose sur l'utilisation d'un tiers de confiance qui distribue
les clefs aux utilisateurs et services abonnés (les principals). Un
serveur Kerberos est appelé KDC
12. Solution Kerberos
Kerberos est un service sûr qui assure la confidentialité, l'intégrité des
données ainsi que la non-répudiation . Le service d'authentification
assure l'identification unique du client et lui procure un ticket de
session . Kerberos assure deux fonctionnalités : le service
d'authentification et de délivrement de tickets de services.
KDC : Key Distribution Center : base de données des clients et
serveurs ainsi que les clés privées.
TGS (Ticket Garanting Service) : c’est le service d’émission de
tickets
Principal : triplet composé du Primary name, l’insistance et Realm.
Primary name : nom d’utilisateur ou du service
Insistance : rôle ou groupe du Primary
Realm : domaine d’administration associé à un serveur Kerberos
Ticket : crédit temporaire permettant de vérifier l’identité du
détenteur
Client : entité pouvant obtenir un ticket
TGT : ticket particulier permettant au détenteur d’obtenir d’autres
tickets pour le même données
13. Solution Kerberos
Le TGS reçoit alors son ticket et
il peut le déchiffrer avec sa clé
Fonctionnement de Kerberos
secrète KTGS Le TGS peut alors
émettre un ticket d'accès au
Le client envoie
serveur. Ce ticket est chiffré
son nom au
grâce à la clé secrète du serveur
serveur de clés et
KS
lui indique le
TGS qui
l'intéresse
Après vérification sur
2 1 l'identité du client le serveur
le client envoie une demande 2’ de clés lui envoie alors un
de ticket auprès du TGS. 1’ ticket TTGS. Ce ticket
autorise le client à faire des
Cette requête contient un requêtes auprès du TGS.
identifiant chiffré avec la clé
de session Le client envoie
aussi le ticket qui lui avait
été transmis par le serveur
de clés.
3
Le client reçoit le ticket pour accéder aux services kerberisés du serveur ainsi
que l'information chiffrée contenant la clé de session entre lui et le serveur.
Le serveur vérifie que le ticket est valide (il le déchiffre avec sa clé secrète KS)
et autorise l'accès au service si tout est correct.
14. Solution Kerberos
Sécurité de Kerberos
Une fois qu'un client s'est identifié, celui-ci obtient un ticket
(généralement, un fichier texte - mais son contenu peut aussi être
stocké dans une zone de mémoire sécurisée). Le ticket joue le rôle
d'une carte d'identité à péremption assez courte, huit heures
généralement. Si nécessaire, celui-ci peut être annulé prématurément.
Sous les systèmes Kerberos c’est via la commande « kdestroy ».
La sécurité de Kerberos repose sur la sécurité des différentes
machines qu'il utilise. Une attaque sur le serveur de clés serait
dramatique car elle pourrait permettre à l'attaquant de s'emparer des
clés privées des clients et donc de se faire passer pour eux. Un autre
problème qui pourrait survenir sur la machine du client est le vol des
tickets. Ils pourraient être utilisés par une tierce personne pour
accéder aux services offerts par les serveurs (si la clé entre le client et
le serveur est connue).
15. Solution Kerberos
Sécurité de Kerberos
L'expiration du ticket permet de limiter les problèmes liés au vol des
tickets. De plus, un ticket peut contenir l'adresse IP du client et le
ticket n'est alors valable que s'il est employé depuis cette IP (ce
champ est toutefois optionnel dans Kerberos, qui peut tout à fait être
utilisé sur un réseau attribuant dynamiquement les IP au travers de
DHCP). Une attaque sur les identifiants échouera car Kerberos leur
ajoute un élément. Cela évite les attaques par renvoi d'identifiants qui
auraient été interceptés. Les serveurs conservent l'historique des
communications précédentes et peuvent facilement détecter un envoi
frauduleux.
L'avantage de Kerberos est de limiter le nombre d'identifiants et de
pouvoir travailler sur un réseau non-sécurisé. Les identifications sont
uniquement nécessaires pour l'obtention de nouveaux tickets d'accès
au TGS.
16. Implémentation
Implémentation de Ldap
1 - Vérification des RPMs à installer pour la configuration
d’openldap
2 - Vérification des RPMs à installer pour la configuration
du DNS
18. Implémentation
Configuration du fichier zone directe: on édite le fichier
/etc/var/named/admin.zone
Configuration de la zone indirecte: on édite le fichier
/etc/var/named/minda.zone
19. Implémentation
éditer le fichier /etc/resolv.conf ; y renseigner l’adresse
Ip et le nom de domaine du serveur DNS
Faire des test pour voir si notre serveur marche mais
avant il faut penser à redemarrer le service named
21. Implémentation
On peut crypter le mot de passe Ldap en exécutant la
commande suivante
Pour les modification en compte on redémarre le
service Ldap
On peut ainsi démarrer la migration des fichiers
/etc/passwd et /etc/group ; éditer le fichier suivant :
23. Implémentation
On exporte les fichiers d’authentification /etc/passwd et
/etc/group en des fichiers .ldif compréhensible par Ldap
pour l’échange de données
On crée le fichier que l’on nomme /tmp/temps.ldif dans
lequel est défini l’arborescence ou la structure de notre
serveur Ldap : on fait : #vim /tmp/temps.ldif
30. Implémentation
on donne à l’utilisateur dchico tous les droits sur son répertoire et on
configure Ldap et httpd afin qu’ils soient à START au démarrage ;
puis on redémarre le serveur avec la commande reboot
Et nous voyons qu’après redémarrage , le serveur nous demande de
nous connecter avec le mot de passe Ldap
31. Implémentation
Implémentation de la solution Kerberos
Vérification des paquets à utiliser
Modifiez les fichiers de configuration /etc/krb5.conf et
/var/kerberos/krb5kdc/kdc.conf afin qu'ils reflètent le nom
de votre zone (realm) et les mappages domaine-zone.
Editons le fichier : vim /etc/krb5.conf
34. Implémentation
Ensuite on passe à la création de la base de données
Kerberos en exécutant :
/usr/kerberos/sbin/kdb5_util create -s
Voila la base de données est ainsi créée. Pour le voir
on fait un « ls » du répertoire /var/kerberos/krb5kdc/
35. Implémentation
Maintenant on passe à la définition des administrateurs de
la base de donnée kerberos
Pour cela éditons : vim /var/kerberos/krb5kdc/kadm5.acl
On ajoute les users (principal) définis dans le fichier
précédent. Pour cela exécuter sur le KDC pour
administrer la base de donnée kerberos : kadmin.local
36. Implémentation
Ajout d’un autre principal
Vérifions les différents principaux en exécutant toujours
kadmin.local puis listprincs
37. Implémentation
A noter que pour administrer le serveur kerberos en
réseau exécuter plutôt kadmin au lieu de kadmin.local
On redémarre les services krb5kdc, kadmin et krb524
38. Implémentation
Démarrage automatique des services :
A présent le serveur est en mesure de délivrer des tickets
Pour un aperçu exécuter, pour s’authentifier et obtenir un
ticket (certificat d’identité): kinit root/admin
40. Conclusion
L’authentification dans un système est d’une importance
capitale. Ldap bien qu’étant un excellant annuaire
présente des limites quand il s’agit de l’authentification.
Kerberos en lui-même apporte beaucoup d’ éléments de
possibilités de services, de sécurité. Il existe depuis des
années mais n’a pas vraiment percé. Son principal
inconvénient reste sa configuration. Chaque client doit
avoir un compte et chaque service un compte relié à ce
client. Même si cela est automatisé il reste compliqué.
Cependant avec Kerberos on bénéficie d’un SSO ; ce qui
un gain en terme de sécurité pour l’ingénieur et un gain en
terme de simplicité pour l’usager.