Spécialité : Génie logiciel – Master-I
Module : sécurité informatique
cours sécurité informatique
Cours Sécurité informatique, [Link] Laouni 1
Système de sécurisation des architectures web - solution ( LDAP)
1- Définition:
LDAP (Lightweight Directory Access Protocol) est un protocole de
communication client-serveur ou serveur/serveur utilisé pour accéder et
gérer des informations d'annuaire (bases d’informations). Les objectifs
principaux sont:
1- Accès et recherche de données : Le protocole LDAP permet d'accéder et
de rechercher des données stockées dans un annuaire LDAP.
2- Gestion des annuaires : LDAP facilite la gestion des annuaires en
fournissant des mécanismes pour ajouter, comparer, modifier et supprimer des
données dans l'annuaire.
De plus:
-LDAP permet de centraliser et de sécuriser les informations
d'identification et les autorisations des utilisateurs.
- LDAP offre une intégration facile avec d'autres systèmes
d'authentification et des fonctionnalités de sécurité avancées.
Système de sécurisation des architectures web - solution ( LDAP)
2- Principes de fonctionnement du protocole LDAP
Le protocole LDAP fonctionne sur un
modèle (plus souvent) client-
serveur, où un client LDAP envoie
des requêtes au serveur LDAP pour
accéder et manipuler les données
d'un annuaire LDAP.
1- Le client LDAP: 1- Connexion / Authentification :
a)- Connexion: le client LDAP établit une connexion avec le serveur LDAP en utilisant le protocole TCP/IP.
b)- Authentification : le client LDAP peut être invité à s'authentifier en fournissant des informations
d'identification telles que le nom d'utilisateur et le mot de passe.
2- Le serveur LDAP: 2- Résultat authentification: Si les informations d'identification sont valides, le
serveur LDAP renvoie une réponse positive à l'application web.
3- Le client LDAP: 3- Opérations: le client LDAP envoie des opérations pour faire les requêtes, les mises à
jour et les connexion. les opérations de base définies par le protocole LDAP sont :
Requête : Search, compare. Mise à jour : add, delete, modify. Connexion : bind, unbind, abandon.
4- Le serveur LDAP: 4- Réponses: Le serveur LDAP traite les opérations du client et renvoie des réponses
correspondantes.
5- Le client LDAP: 5- Fin de session: l'utilisateur met volontairement fin à sa session de connexion.
6- Le serveur LDAP: 6- Déconnexion: une fois que le client a terminé ses opérations, il peut fermer la
connexion avec le serveur LDAP pour libérer les ressources réseau et terminer la session.
Système de sécurisation des architectures web - solution ( LDAP)
3- Les modèles utilisé par LDAP:
Le protocole LDAP utilise généralement cinq modèles pour définir ses
opérations à différents niveaux. Les 5 modèles sont :
1- Modèle d’information,
2- Modèle de nommage,
3- Modèle fonctionnel,
4- Modèle de sécurité,
5- Modèle de duplication.
Ces cinq modèles fournissent une structure conceptuelle globale pour la
conception, l'implémentation et la gestion des systèmes LDAP, en couvrant
différents aspects tels que la structure des données, l'identification des
objets, les fonctionnalités, la sécurité et la duplication.
Système de sécurisation des architectures web - solution ( LDAP)
3.1- Modèle d’information: ce modèle définit la structure des données
stockées dans l'annuaire LDAP. Il spécifie:
1- les types d'attributs,
2- les classes d'objet, et
3- les relations entre les entrées (schéma).
• La structure des données LDAP est représenté sous forme d’une
arborescence de données hiérarchiques appelées DIT (Directory
Information Tree).
Système de sécurisation des architectures web - solution ( LDAP)
3.1.1- les types d'attributs
Chaque entrée dans l'annuaire est composée d'un ensemble d'attributs qui
décrivent l'objet correspondant. Ces attributs sont représentés sous forme de
paires clé/valeur. Deux types d'attributs sont présents :
1- Les attributs normaux : Ils incluent les informations classiques telles que le
nom, le prénom, et d'autres caractéristiques habituelles de l'objet.
Les attributs opérationnels (systèmes) : Ce sont des attributs spéciaux
auxquels seul le serveur a accès. Ils sont utilisés pour manipuler les données de
l'annuaire, comme les dates de modification et d'autres informations liées à la
gestion interne.
Chaque attribut se caractérise par plusieurs éléments :
* Un nom qui sert à l'identifier.
* Un Object Identifier (OID) qui permet également de l'identifier de manière unique.
* Une indication s'il est mono-valué (1 seule valeur) ou multi-valué (+ieurs valeurs).
* Une syntaxe et des règles de comparaison spécifiques (matching rules) qui
définissent le format et les conditions de comparaison des valeurs.
* Un format ou une limite de taille associée à la valeur de l'attribut.
Système de sécurisation des architectures web - solution ( LDAP)
3.1. 2- Les classes d'objet
Les classes d'objets sont utilisées pour modéliser des objets réels ou
abstraits en les décrivant par une liste d'attributs qui peuvent être optionnels ou
obligatoires. Une classe d'objet est définie par les éléments suivants :
* Un nom qui sert à l'identifier de manière unique.
* Un OID (Object Identifier) qui permet également de l'identifier de manière unique.
* Des attributs obligatoires qui doivent être présents pour chaque instance de la
classe.
* Des attributs optionnels qui peuvent être présents, mais ne sont pas obligatoires
pour chaque instance de la classe.
•Un type de classes qui peut être structurel, auxiliaire ou abstrait et qui définit le
rôle et la nature de la classe dans le modèle. (La plupart des classes d’objet dans
un annuaire sont structurelles, car elles définissent une entrée).
• Classe d'objet structurelle: est une classe qui peut être utilisée pour créer des
entrées réelles dans l'annuaire LDAP. Elle représente une entité concrète avec des
attributs spécifiques. Chaque entrée dans l'annuaire doit être basée sur une classe
d'objet structurel.
Système de sécurisation des architectures web - solution ( LDAP)
3.1. 2- Les classes d'objet
•Classe d'objet auxiliaire : est une classe qui ne peut pas être utilisée pour créer
des entrées directement, mais qui peut être utilisée en tant qu'extension optionnelle
d'une classe d'objet structurelle.
•Classe d'objet abstraite: Les classes d'objet abstraites sont utilisées pour
l'héritage et la définition de propriétés communes partagées par plusieurs classes
d'objet structurelles.
3-1.3 Les schémas:
Schéma est une définition formelle du contenu et de la structure des données
d’un annuaire. Les schémas existants sont issus de X.500, plus des ajouts de
LDAP ou d’autres consortium industriels. Il existe plusieurs formats pour décrire
un schéma LDAP :
• [Link] : fichier de configuration utilisé par U-M slapd, OpenLDAP et Netscape Directory.
• ASN.1 : grammaire utilisée dans les documents décrivant les standards LDAP e t X.500.
• LDAPv3 : LDAPv3 introduit l’obligation pour un serveur de publier son schéma via LDAP en le
stockant dans l’entrée subschema.
Système de sécurisation des architectures web - solution ( LDAP)
1- Exemple de syntaxe [Link]
Système de sécurisation des architectures web - solution ( LDAP)
2. Exemple de syntaxe ASN.1
Système de sécurisation des architectures web - solution ( LDAP)
3. Exemple de syntaxe LDAPv3
Schema checking (vérification du schéma)
Quand une entrée est créée, le serveur vérifie si sa syntaxe est
conforme à sa classe ou ses classes d’appartenance.
I.e: vérifier la syntaxe du schéma LDAP pour s'assurer qu'elle est
correcte. Cela implique de vérifier la validité des déclarations, des
attributs, des classes d'objets, des règles de syntaxe, etc.
Système de sécurisation des architectures web - solution ( LDAP)
3.2 Modèle de nommage: Le modèle de nommage d'un annuaire LDAP définit la
manière dont les entrées sont identifiées et organisées dans une structure
hiérarchique Directory Information Tree (DIT). Chaque entrée est identifiée par un
DN (Distinguished Name) qui représente son emplacement unique dans
l'arborescence de l'annuaire, ce qui facilite la recherche et la gestion des données.
Au sommet de l’arbre se trouve l’entrée Suffix ou Root Entry ou BaseDN,
qui caractérise une base LDAP.
Système de sécurisation des architectures web - solution ( LDAP)
3.3 Modèle fonctionnel: Le modèle fonctionnel définit l'accès aux données et les
opérations qui peuvent être effectuées sur ces données. Ces opérations permettent
d’accéder au serveur pour la recherche, la modification ou l’ajout des entrées ou de
la structure de l’arbre de l’annuaire. On cite 5 types d’opérations :
1- Opérations d’interrogation,
2- Opérations de comparaison,
3- Opérations de mise à jour,
4- Opérations d’authentification et de contrôle,
5- Les opérations étendus (V3).
3.3. 1- Opérations d’interrogation
Dans LDAP, il n'y a pas d'opération de lecture d'entrée directe. Pour obtenir le
contenu d'une entrée, vous devez effectuer une requête spécifique qui cible cette
entrée.
Exemple de requête d’interrogation LDAP: rechercher d'une entrée avec le nom
d'utilisateur « Mohamed »
Réponse: (&(objectClass=personne)(cn=Mohamed))
- Exprimez cette requête: (&(objectclass=inetOrgPerson)(!(mail=*)))
Système de sécurisation des architectures web - solution ( LDAP)
Une requête est composée de 8 paramètres :
Les filtres de recherche est de la forme: (opérateur (opération de recherche) (opération de recherche)...))
Système de sécurisation des architectures web - solution ( LDAP)
3.1.2- Opérations de comparaison
Opérations de comparaison est équivalent à une requête de recherche qui renvoie
l’entrée si vrai et ne renvoie rien (code d’erreur) dans deux cas :
• si l’attribut ne contient pas cette valeur,
• si l’attribut n’existe pas.
Exemple: COMPARE id=med, ou=users, dc=student id med123
3.3.3- Opérations de mise à jour: 4 opérations : add, delete, rename, modify
-Add: ajout d'une entrée ajout d'une entrée
-Modify: modification du contenu d'une entrée.
-Delete: suppression d'un objet.
-Rename (Modify DN): modification du DN d'une entrée
1- Exemple Add: dn: cn=med ahmed, ou=users, dc=student
changetype: add
objectClass: personne
objectClass: univ
cn: med ahmed
sn: med
givenName: ahmed
mail: medahmed@[Link]
Système de sécurisation des architectures web - solution ( LDAP)
3.3.3- Opérations de mise à jour
2- Exemple Modify
dn: cn=med ahmed, ou=users, dc=student
changetype: modify
replace: mail mail: newemail@[Link]
3- Exemple Delete
dn: cn=med ahmed, ou=users, dc=student
changetype: delete
3- Exemple Rename (Modify DN)
dn: cn=med ahmed, ou=users, dc=student
changetype: modrdn
newrdn: cn=Ali
deleteoldrdn: 1
Système de sécurisation des architectures web - solution ( LDAP)
3.3.4- Opérations d’authentification et de contrôle
Trois opérations peuvent être effectuées: bind, unbind, abandon
• bind = connexion au serveur (dn, pw=123).
• unbind = déconnexion
• abandon= le client indique au serveur qu’il laisse tomber la requête
qu’il avait envoyé. Celui-ci abandonne alors le process.
3.3.5- Les opérations étendus (V3): Les opérations étendues en LDAP V3 sont:
1- StartTLS (Transport Layer Security) : Cette opération étendue permet d'établir une
connexion sécurisée TLS/SSL avec le serveur LDAP.
2- Extended Request/Response : Ces opérations permettent d'envoyer des requêtes
personnalisées au serveur LDAP et de recevoir des réponses correspondantes.
3- Cancel : Cette opération étendue permet d'annuler une opération en cours sur le
serveur LDAP.
4- Whoami : Cette opération étendue permet de récupérer l'identité de l'utilisateur
connecté au serveur LDAP.
5- Password Modify : Cette opération étendue permet à un utilisateur de modifier son
propre mot de passe stocké dans le serveur LDAP.
Système de sécurisation des architectures web - solution ( LDAP)
4- Modèle de sécurité
Ce modèle définit les mécanismes de sécurité utilisés pour protéger les données et
les opérations LDAP. Il inclut des fonctionnalités telles que l'authentification des
utilisateurs, l'autorisation d'accès basée sur les rôles, le chiffrement des
communications et la protection contre les attaques de sécurité. Le modèle de
sécurité garantit la confidentialité et l'intégrité des données LDAP.
Les bonnes pratiques:
Les serveurs LDAP prennent en charge des mécanismes de sécurité tels que
SSL/TLS pour chiffrer les communications entre le client et le serveur.
Il est recommandé d'utiliser SSL/TLS pour assurer la confidentialité et l'intégrité
des données transmises.
Les serveurs LDAP peuvent également mettre en œuvre des mécanismes
d'authentification forte, tels que l'authentification basée sur des certificats, pour
renforcer la sécurité.
Système de sécurisation des architectures web - solution ( LDAP)
5- Modèle de duplication
Le protocole LDAP fournit des outils pour dupliquer ou synchroniser des
données entre plusieurs serveurs LDAP. Pour y parvenir:
• Dupliquer des données: le protocole LDAP définit un modèle de
duplication (comment dupliquer l’annuaire sur plusieurs serveurs).
Cette duplication a pour but de:
* Synchroniser des données:
Résister à une panne d’un serveur ou à une coupure réseau.
Partager la charge entre l’ensemble des serveurs possédant le
même annuaire.
La déplication est supportée dans le modèle LDAP par le protocole LDUP
(Lightweight Directory Update Protocol) qui est un standard en cours.
- Le modèle de duplication garantit la disponibilité des données LDAP.