Aller au contenu principal

1. Introduction

Le Lightweight Directory Access Protocol (LDAP) [RFC4510] est un protocole puissant d'accès aux annuaires. Il offre des moyens de rechercher, récupérer et manipuler le contenu d'un annuaire, ainsi que des moyens d'accéder à un riche ensemble de fonctions de sécurité.

Il est indispensable que ces fonctions de sécurité soient interopérables entre tous les clients et serveurs LDAP de l'Internet ; il doit donc exister un sous-ensemble minimal de fonctions de sécurité commun à toutes les implémentations qui revendiquent la conformité à LDAP.

Les menaces de base pesant sur un service d'annuaire LDAP comprennent (sans s'y limiter) :

(1) L'accès non autorisé aux données de l'annuaire via des opérations de récupération de données.

(2) L'accès non autorisé aux données de l'annuaire en surveillant les accès d'autrui.

(3) L'accès non autorisé à des informations d'authentification client réutilisables en surveillant les accès d'autrui.

(4) La modification non autorisée des données de l'annuaire.

(5) La modification non autorisée des informations de configuration.

(6) Le déni de service : utilisation (généralement excessive) de ressources dans le but de refuser le service à autrui.

(7) L'usurpation (spoofing) : amener un utilisateur ou un client à croire qu'une information provient de l'annuaire alors que ce n'est pas le cas, soit en modifiant les données en transit, soit en détournant la connexion de transport du client. Amener un utilisateur ou un client à envoyer des informations privilégiées à une entité hostile qui se fait passer pour le serveur d'annuaire sans l'être. Amener un serveur d'annuaire à croire qu'une information provient d'un client donné alors qu'elle provient en réalité d'une entité hostile.

(8) Le détournement de session (hijacking) : un attaquant s'empare du contrôle d'une session de protocole établie.

Les menaces (1), (4), (5), (6), (7) et (8) sont des attaques actives. Les menaces (2) et (3) sont des attaques passives.

Les menaces (1), (4), (5) et (6) proviennent de clients hostiles. Les menaces (2), (3), (7) et (8) proviennent d'agents hostiles situés sur le chemin entre le client et le serveur, ou d'agents hostiles se faisant passer pour un serveur, par exemple par usurpation d'adresse IP.

LDAP offre les mécanismes de sécurité suivants :

(1) L'authentification au moyen de l'opération Bind. L'opération Bind fournit une méthode simple qui prend en charge les mécanismes anonyme, non authentifié et nom/mot de passe, ainsi que la méthode Simple Authentication and Security Layer (SASL), qui prend en charge une grande variété de mécanismes d'authentification.

(2) Des mécanismes pour prendre en charge des dispositifs de contrôle d'accès propres à chaque fournisseur (LDAP n'offre pas de dispositif de contrôle d'accès normalisé).

(3) Un service d'intégrité des données au moyen de couches de sécurité dans les mécanismes Transport Layer Security (TLS) ou SASL.

(4) Un service de confidentialité des données au moyen de couches de sécurité dans les mécanismes TLS ou SASL.

(5) Une limitation de l'utilisation des ressources du serveur au moyen de limites administratives configurées sur le serveur.

(6) L'authentification du serveur au moyen du protocole TLS ou de mécanismes SASL.

LDAP peut également être protégé par des moyens extérieurs au protocole LDAP, par exemple par la sécurité au niveau IP [RFC4301].

L'expérience montre que le simple fait de laisser les implémentations choisir librement les mécanismes de sécurité à mettre en œuvre n'est pas une stratégie qui mène à l'interopérabilité. En l'absence d'obligations, on continuera d'écrire des clients qui ne prennent en charge aucune des fonctions de sécurité prises en charge par le serveur ou, pire, qui ne prennent en charge que des mécanismes offrant une sécurité insuffisante dans la plupart des circonstances.

Il est souhaitable de permettre aux clients de s'authentifier au moyen de divers mécanismes, y compris des mécanismes où les identités sont représentées sous forme de noms distingués [X.501][RFC4512], sous forme de chaîne [RFC4514], ou telles qu'utilisées dans différents systèmes (par exemple de simples noms d'utilisateur [RFC4013]). Comme certains mécanismes d'authentification transmettent les informations d'authentification en clair, et/ou n'offrent pas de services de sécurité des données, et/ou sont exposés à des attaques passives, il est nécessaire de garantir une interopérabilité sûre en identifiant un mécanisme obligatoire à mettre en œuvre pour l'établissement de services de sécurité au niveau de la couche de transport.

L'ensemble des mécanismes de sécurité fournis dans LDAP et décrits dans le présent document vise à satisfaire les besoins de sécurité d'un large éventail de scénarios de déploiement tout en assurant un degré élevé d'interopérabilité entre les diverses implémentations et les divers déploiements de LDAP.

1.1. Relation avec les autres documents​

Le présent document fait partie intégrante de la spécification technique LDAP [RFC4510].

Le présent document, conjointement avec [RFC4510], [RFC4511] et [RFC4512], rend obsolète la RFC 2251 dans son intégralité. Les sections 4.2.1 (en partie) et 4.2.2 de la RFC 2251 sont rendues obsolètes par le présent document. L'annexe B.1 résume les changements substantiels apportés à la RFC 2251 par le présent document.

Le présent document rend obsolète la RFC 2829 dans son intégralité. L'annexe B.2 résume les changements substantiels apportés à la RFC 2829 par le présent document.

Les sections 2 et 4 de la RFC 2830 sont rendues obsolètes par [RFC4511]. Le reste de la RFC 2830 est rendu obsolète par le présent document. L'annexe B.3 résume les changements substantiels apportés à la RFC 2830 par le présent document.

1.2. Conventions​

Les mots clés « MUST », « MUST NOT », « SHALL », « SHOULD », « SHOULD NOT », « MAY » et « OPTIONAL » du présent document doivent être interprétés comme décrit dans la RFC 2119 [RFC2119].

Le terme « user » (utilisateur) désigne toute entité humaine ou applicative qui accède à l'annuaire au moyen d'un client d'annuaire. Un client d'annuaire (ou client) est également appelé agent utilisateur d'annuaire (DUA).

Le terme « transport connection » (connexion de transport) désigne les services de transport sous-jacents utilisés pour véhiculer l'échange de protocole, ainsi que les associations établies par ces services.

Le terme « TLS layer » (couche TLS) désigne les services TLS utilisés pour fournir des services de sécurité, ainsi que les associations établies par ces services.

Le terme « SASL layer » (couche SASL) désigne les services SASL utilisés pour fournir des services de sécurité, ainsi que les associations établies par ces services.

Le terme « LDAP message layer » (couche de messages LDAP) désigne les services LDAP Message (PDU) utilisés pour fournir des services d'annuaire, ainsi que les associations établies par ces services.

Le terme « LDAP session » (session LDAP) désigne l'ensemble des services combinés (connexion de transport, couche TLS, couche SASL, couche de messages LDAP) et leurs associations.

D'une manière générale, les termes de sécurité employés dans le présent document le sont conformément aux définitions fournies dans [RFC2828]. En outre, plusieurs termes et concepts relatifs à la sécurité, à l'authentification et à l'autorisation sont présentés dans l'annexe A du présent document. Bien que la définition formelle de ces termes et concepts sorte du cadre du présent document, leur compréhension est un préalable à celle d'une grande partie du contenu de celui-ci. Les lecteurs peu familiers avec les concepts de sécurité sont invités à consulter l'annexe A avant de lire le reste du présent document.