LDAP & LDAPS
1. Bref rappel sur Active Directory ?
Avant de plonger dans LDAP et LDAPS, rappelons brièvement ce qu'est Active Directory :
- L'Active Directory est un service d'annuaire développé par Microsoft.
- Il permet de stocker, organiser et gérer des informations relatives aux utilisateurs, groupes, ordinateurs, imprimantes, etc. au sein d'un réseau d'entreprise.
- Il centralise notamment l'authentification et l'autorisation des ressources sous Windows.
- Il utilise plusieurs protocoles standards, dont LDAP pour l'interrogation et la mise à jour de l'annuaire.
2. Présentation du protocole LDAP
2.1 Définition
- LDAP (Lightweight Directory Access Protocol) est un protocole ouvert et standardisé qui permet d'interroger et de manipuler des services d'annuaire.
- Il repose principalement sur le modèle client-serveur.
- Il est apparu pour remplacer ou alléger le protocole DAP (Directory Access Protocol) qui était lui-même associé à X.500.
2.2 Fonctionnement général
- Port par défaut : Le port standard non chiffré de LDAP est le 389.
- Requêtes : Les clients (stations, serveurs d'applications, etc.) envoient des requêtes LDAP aux contrôleurs de domaine (serveurs AD). Par exemple, rechercher le compte d'un utilisateur, vérifier son appartenance à un groupe, etc.
- Arbre LDAP (Directory Information Tree) : Les objets d'Active Directory sont organisés hiérarchiquement (domaines, unités d'organisation, conteneurs, etc.) et peuvent être identifiés par leur DN (Distinguished Name).
2.3 Utilisation dans Active Directory
- Microsoft a basé la structure d'Active Directory sur LDAP, ce qui facilite l'interopérabilité avec d'autres systèmes ou applications pouvant elles aussi communiquer via LDAP.
- Les outils d'administration (comme l'Active Directory Users and Computers) utilisent en réalité des requêtes LDAP pour consulter et modifier l'annuaire.
- De nombreuses applications tierces (logiciels de messagerie, portail web, solutions de SSO, etc.) peuvent s'appuyer sur LDAP pour authentifier leurs utilisateurs contre l'Active Directory.
Limite principale :
- En version "simple", LDAP ne chiffre pas la communication, donc les mots de passe et données sensibles peuvent transiter en clair sur le réseau.
3. Qu'est-ce que LDAPS ?
3.1 Définition
- LDAPS (LDAP over SSL/TLS) est la version sécurisée de LDAP.
- Il utilise un chiffrement via SSL (Secure Sockets Layer) ou plus couramment TLS (Transport Layer Security) pour protéger les échanges de données.
3.2 Fonctionnement général
- Port par défaut : Le port standard pour LDAPS est le 636.
- Tunnel chiffré : Lorsqu'un client se connecte en LDAPS, il ouvre une session chiffrée via SSL/TLS avant d'envoyer les requêtes LDAP à proprement parler.
- Authentification mutuelle (optionnelle) : Il est possible d'implémenter une authentification mutuelle, où le serveur AD présente un certificat au client, et le client peut également présenter le sien.
3.3 Avantages de LDAPS
- Confidentialité : Les identifiants (nom d'utilisateur, mot de passe) et toutes les données sensibles sont chiffrées sur le réseau.
- Intégrité : Protège des modifications ou interceptions malveillantes, car tout se passe dans un tunnel chiffré.
- Conformité : Dans certains environnements, l'usage de LDAP en clair n'est plus autorisé pour des raisons de conformité ou de politiques de sécurité internes.
4. Pourquoi utiliser LDAPS au lieu de LDAP ?
- Sécurité des informations d'identification : Avec LDAP non chiffré, un attaquant réalisant une attaque de type "écoute réseau" (sniffing) pourrait récupérer des mots de passe en clair ou d'autres informations sensibles.
- Meilleur respect des recommandations : Les bonnes pratiques de sécurité recommandent de chiffrer tout ce qui concerne l'authentification.
- Nouvelles normes : De plus en plus, les environnements exigent l'utilisation de protocoles sécurisés sur tous les fronts (HTTPS au lieu de HTTP, LDAPS au lieu de LDAP, etc.).
5. Mettre en place LDAPS dans un environnement Active Directory
5.1 Pré-requis
- Certificat SSL/TLS : Chaque contrôleur de domaine doit disposer d'un certificat valide (provenant soit d'une autorité de certification interne AD CS, soit d'une autorité de certification tierce).
- Nom de service (SAN) : Le certificat doit correspondre au nom de domaine complet (FQDN) du contrôleur de domaine pour éviter les avertissements de sécurité.
- Ouverture du port 636 : Le pare-feu doit autoriser les connexions entrantes sur le port LDAPS.
5.2 Étapes de configuration
- Installer un certificat sur le contrôleur de domaine :
- Utiliser l'autorité de certification interne (AD CS) ou une autorité publique.
- Émettre un certificat de type "Server Authentication" avec les bons attributs (nom DNS du contrôleur, etc.).
- Vérifier la liaison du certificat avec le service AD DS (Directory Services) :
- Les services AD DS doivent automatiquement détecter le certificat dans le magasin Personnel (Personal) de l'ordinateur.
- Assurez-vous que les bonnes clés et droits sont configurés.
- Configurer les clients :
- Les clients doivent faire confiance à l'autorité de certification qui a émis le certificat du contrôleur de domaine.
- Utiliser le FQDN (et non l'adresse IP) pour cibler le contrôleur de domaine afin que le certificat corresponde parfaitement.
- Tester la connexion LDAPS :
- À l'aide d'un outil comme ldp.exe (fourni par Microsoft) ou ldapsearch (sous Linux), tester la connexion sur le port 636 pour s'assurer que le canal est bien chiffré.
6. LDAP/S et d'autres protocoles de sécurisation au sein d'Active Directory
6.1 StartTLS
Outre LDAPS (LDAP sur port 636), il existe aussi une méthode appelée LDAP StartTLS :
- Le client se connecte au serveur LDAP sur le port 389 (LDAP standard), puis négocie dynamiquement une couche TLS avant l'envoi des informations sensibles.
- Cette approche permet de n'utiliser qu'un seul port, tout en assurant la sécurité lorsque c'est nécessaire.
- Cependant, dans les environnements AD Windows, LDAPS (port 636) est plus couramment utilisé et plus simple à configurer dans de nombreux scénarios.
6.2 Kerberos et NTLM
- Kerberos : Active Directory utilise Kerberos comme protocole d'authentification principal. Le protocole LDAP s'appuie donc souvent sur Kerberos pour valider l'identité des utilisateurs. Les informations LDAP (par exemple des recherches sur l'annuaire) peuvent être sécurisées via LDAPS, tandis que l'authentification est gérée par Kerberos.
- NTLM : Protocole plus ancien, toujours pris en charge pour des raisons de compatibilité, mais moins sécurisé que Kerberos.
7. Bonnes pratiques et recommandations
- Privilégier LDAPS : Dans la mesure du possible, configurez LDAPS pour toutes les interactions avec l'annuaire, surtout si des informations sensibles sont échangées.
- Refuser LDAP en clair : Dans un environnement sécurisé, il est souhaitable de désactiver (ou bloquer par pare-feu) le port 389 non chiffré, après avoir validé que tous vos clients utilisent LDAPS.
- Mettre à jour les certificats : Surveiller la date d'expiration des certificats utilisés par vos contrôleurs de domaine et la confiance de vos autorités de certification.
- Auditer les connexions : Utiliser les journaux (Event Viewer) et outils d'audit pour vérifier que les connexions LDAP s'établissent bien en sécurité (LDAPS ou StartTLS).
- Conformité : Si vous devez vous conformer à des normes (PCI-DSS, ISO 27001, etc.), l'utilisation de canaux chiffrés est généralement obligatoire pour les authentifications.
8. En bref...
- LDAP est le protocole standard et central qui permet aux clients de chercher, lire et modifier des informations dans l'Active Directory.
- LDAPS est la même communication, mais chiffrée, pour assurer la confidentialité et l'intégrité des données échangées.
- Dans un environnement professionnel, il est vivement recommandé (et de plus en plus exigé) d'utiliser LDAPS pour toutes les opérations d'authentification et d'accès à l'annuaire.
- La mise en place de LDAPS requiert un certificat valide sur chaque contrôleur de domaine et la confiance de l'autorité de certification sur tous les clients.
- Finalement, que vous soyez administrateur système ou développeur d'applications, connaître la différence entre LDAP et LDAPS est primordial pour respecter les règles de sécurité et assurer la fiabilité de vos services d'authentification.
En suivant ces principes et bonnes pratiques, vous assurerez la protection des informations d'identification de vos utilisateurs et la conformité de votre environnement Active Directory aux standards de sécurité actuels.