web-dev-qa-db-fra.com

Est-il sûr d'utiliser LDAP ou LDAPS est-il la seule option sécurisée?

J'utilise actuellement une configuration LDAP. Je me demande s'il est protégé contre les attaques Man-in-the-middle ou d'autres vulnérabilités?

10
mrplow911

LDAP, en soi, n'est pas sécurisé contre les attaquants actifs ou passifs:

  • Les données voyagent "telles quelles", sans chiffrement, de sorte qu'elles peuvent être espionnées par des attaquants passifs.
  • Les attaquants actifs peuvent manipuler le flux et injecter leurs propres demandes ou modifier les réponses aux vôtres.

Au mieux, LDAP de base peut s'appuyer sur un mécanisme d'authentification (via SASL ) qui n'est pas trivialement cassé par un attaquant: si l'authentification est du type "afficher le mot de passe", alors une écoute passive peut apprendre le mot de passe puis se connecter au serveur avec votre identité; des protocoles légèrement plus avancés, comme CRAM-MD5 , évitent ce problème spécifique, mais ne feront toujours rien contre les attaquants détournant vos connexions ou espionnant vos demandes et réponses réelles.

Donc, vraiment, si vous appréciez votre sécurité, utilisez SSL (c'est-à-dire "LDAPS"). À bien des égards, c'est comme HTTP vs HTTPS.


En guise de remarque, le protocole Active Directory de Microsoft, qui s'appuie sur LDAP, offre en option une fonctionnalité "signer et chiffrer", qui semble être une sorte de protocole cryptographique intégré à LDAP (c'est-à-dire comme LDAPS, mais dans l'ordre inverse) , qui pourrait assurer une sécurité suffisante. Je n'ai pas vu de spécification décemment détaillée pour ce protocole, donc je recommande toujours LDAPS dans ce cas.

14
Tom Leek

Le protocole LDAP n'est pas sécurisé par défaut, mais le protocole définit une opération pour établir une session TLS sur une session LDAP existante (l'opération étendue StartTLS). Alternativement, certains mécanismes d'authentification (via SASL) permettent d'établir la signature et le chiffrement. La plupart des serveurs d'annuaire LDAP récents prennent en charge ces modes et ont souvent des paramètres de configuration pour empêcher les communications non sécurisées.

LDAPS, d'autre part, est sécurisé par défaut tant que les chiffres appropriés sont négociés.

7
Ludovic Poitou

Créez un certificat et connectez-vous à votre LDAP avec votre certificat utilisateur que vous installez dans l'entrée admin.

De toute évidence, la session TLS ne fait qu'élever la barre contre le reniflage de paquets, et non la qualité de l'authentification, à moins qu'une authentification de certificat client n'ait lieu dans TLS.

Un mot de passe en texte brut serait la pire option, à partir de là ... SASL, etc.

Si vous êtes préoccupé par le fait que quelqu'un accède à votre serveur LDAP à partir d'Internet et que vous souhaitez toujours autoriser l'accès à "certains" attributs, mais pas à d'autres, vous pouvez configurer un proxy sur 389 pour filtrer les demandes envoyées au serveur. Si vous utilisez les ports par défaut bien connus pour LDAP ou LDAPS, il est plus facile pour les utilisateurs de trouver vos services.

Envisagez également de mettre une entrée d'enregistrement de ressource SRV dans le DNS pour votre serveur LDAP connecté à Internet, afin que les utilisateurs aient la bonne adresse et le bon port pour accéder à votre serveur proxy.

0
c-US