L'utilitaire utilisé pour chiffrer un mot de passe à utiliser avec LDAP dépend de l'algorithme de hachage spécifique que vous souhaitez utiliser et du serveur LDAP auquel vous vous connectez. Il n’existe pas d’« utilitaire de chiffrement de mot de passe LDAP ». Au lieu de cela, vous utilisez des outils de hachage de mot de passe à usage général, puis indiquez au serveur LDAP le type de hachage que vous avez utilisé.
Voici une liste des méthodes et utilitaires courants :
1. Algorithmes de hachage courants pour LDAP :
* {SSHA} (SHA-1 salé) : Ceci est plus ancien mais toujours largement pris en charge. Il ajoute un sel généré aléatoirement au mot de passe avant de le hacher avec SHA-1, puis encode en base64 le résultat avec le sel. SHA-1 est considéré comme faible sur le plan cryptographique et doit être évité dans les nouveaux déploiements.
* {SSHA256} (SHA-256 salé) : Une alternative plus puissante à SSHA, utilisant SHA-256. Préféré à SSHA.
* {SSHA512} (SHA-512 salé) : Encore plus puissant que SSHA256, utilisant SHA-512. Recommandé pour les nouveaux déploiements lorsqu'ils sont pris en charge.
* {MD5} (MD5) : Ceci est *fortement* déconseillé. MD5 est cassé et ne doit jamais être utilisé pour le hachage de mot de passe. De nombreux serveurs LDAP ne le permettent même plus.
* {SMD5} (MD5 salé) : L'utilisation d'un sel le rend *légèrement* meilleur que le MD5 ordinaire, mais n'est toujours pas recommandé. Évitez cela aussi.
* {CRYPTE} (crypt(3)) : Utilise la fonction `crypt()` du système, qui est généralement par défaut un hachage basé sur DES. Le DES est considéré comme très faible. C'est généralement un mauvais choix.
* {CLEARTEXT} : Le mot de passe est stocké en texte brut. Ne l'utilisez jamais dans un environnement de production.
* {PBKDF2> :(PBKDF2-SHA256, PBKDF2-SHA512) Une fonction de dérivation de clé plus moderne et plus résistante aux attaques par force brute. C'est un bon choix si votre serveur LDAP le prend en charge.
2. Utilitaires et méthodes de génération de hachages :
* `slappasswd` (OpenLDAP) : Il s'agit de l'utilitaire le plus courant et recommandé, surtout si vous utilisez OpenLDAP. Il est spécialement conçu pour générer des hachages de mots de passe LDAP. Il prend en charge divers algorithmes, notamment SSHA, SSHA256, SSHA512, etc.
```bash
slappasswd -s mon mot de passe secret # Par défaut :SSHA (généralement)
slappasswd -h '{SSHA256}' -s mon mot de passe secret
slappasswd -h '{SSHA512}' -s mon mot de passe secret
slappasswd -h '{PBKDF2}' -s mon mot de passe secret
```
`slappasswd` génère la chaîne correctement formatée, que vous utilisez ensuite dans l'attribut `userPassword` de votre entrée LDAP.
* `ldappasswd` : Ceci est principalement utilisé pour *changer* un mot de passe sur une entrée LDAP existante. Il utilise généralement les mêmes algorithmes de hachage pris en charge par le serveur LDAP. Bien que vous *pourriez* potentiellement l'utiliser pour générer un nouveau hachage de mot de passe, `slappasswd` est l'outil préféré pour la création initiale de mot de passe.
* `openssl passwd` : Il s'agit d'un utilitaire de ligne de commande plus généraliste permettant de générer des hachages de mots de passe. Il prend en charge une gamme d'algorithmes de hachage, mais vous devez veiller à formater correctement la sortie pour LDAP. Il ne gère pas la génération de sel et l'encodage pour vous aussi bien que `slappasswd`. Il est généralement préférable d'utiliser `slappasswd` pour LDAP.
```bash
openssl mot de passe -salt -sha256 mon mot de passe secret
```
Vous devrez alors ajouter manuellement « {SSHA256} » à la sortie.
* Langages de programmation (Python, Perl, Java, etc.) : Vous pouvez utiliser des bibliothèques dans différents langages de programmation pour générer les hachages. Cela vous donne le plus de flexibilité, mais cela nécessite également que vous compreniez les algorithmes de hachage et comment générer et encoder correctement le sel. Par exemple, en Python :
```python
importer du hashlib
importer base64
importer le système d'exploitation
def ssha256_password(mot de passe) :
salt =os.urandom(8) # 8 octets est une bonne taille de sel
salted_password =mot de passe.encode('utf-8') + sel
hasched_password =hashlib.sha256(salted_password).digest()
combiné =mot de passe haché + sel
encodé =base64.b64encode(combiné).decode('ascii')
renvoie "{SSHA256}" + codé
password_hash =ssha256_password("mon mot de passe secret")
imprimer (mot de passe_hash)
```
Ceci est juste un exemple. Vous devrez ajuster le code pour d'autres algorithmes de hachage.
* Générateurs de mots de passe LDAP basés sur le Web : Certains outils en ligne peuvent générer des hachages de mots de passe LDAP. Soyez extrêmement prudent en les utilisant, surtout avec des mots de passe sensibles. Vous confiez votre mot de passe à un tiers. Il est beaucoup plus sûr d'utiliser un outil local comme `slappasswd`.
3. Configuration du serveur LDAP :
Il est crucial de configurer votre serveur LDAP pour comprendre quels algorithmes de hachage sont autorisés et préférés. Par exemple, dans OpenLDAP, vous configurez généralement cela dans `slapd.conf` ou dans la configuration dynamique en utilisant `cn=config`.
Exemple (OpenLDAP, `cn=config`) :
```ldif
nom de domaine :olcDatabase={0}config,cn=config
changetype :modifier
ajouter :olcPasswordHash
olcPasswordHash :{SSHA512}
-
ajouter :olcPasswordHash
olcPasswordHash :{SSHA256}
-
ajouter :olcPasswordHash
olcPasswordHash :{SSHA}
```
Cela configure le serveur pour autoriser SSHA512, SSHA256 et SSHA, dans cet ordre de préférence. Lorsqu'un client utilise `ldappasswd` pour changer un mot de passe, le serveur essaiera d'utiliser l'algorithme le plus puissant de la liste `olcPasswordHash` demandée par le client (ou le premier si le client ne spécifie pas de préférence).
4. Quel utilitaire choisir :
* `slappasswd` est le meilleur choix pour générer des hachages de mot de passe initiaux. Il est conçu pour LDAP, gère correctement le sel et prend en charge une variété d'algorithmes. C'est l'approche la plus sûre et la plus fiable.
* Utilisez `ldappasswd` pour *changer* les mots de passe sur un serveur LDAP existant, car il s'intègre directement à la configuration du serveur.
* Évitez « openssl passwd » à moins que vous ne sachiez vraiment ce que vous faites et que vous puissiez formater correctement la sortie.
* Évitez les générateurs de mots de passe en ligne en raison des risques de sécurité.
* Les langages de programmation offrent de la flexibilité mais nécessitent une mise en œuvre minutieuse.
Considérations de sécurité :
* Utilisez des algorithmes de hachage puissants : Préférez SSHA512 ou PBKDF2 si votre serveur LDAP les prend en charge. Évitez MD5, SHA-1, DES et le texte brut.
* Utilisez un sel fort aléatoire : Le sel doit être d'au moins 8 octets (64 bits) et cryptographiquement aléatoire.
* Limiter les algorithmes de hachage autorisés : Configurez votre serveur LDAP pour autoriser uniquement les algorithmes de hachage puissants.
* Considérez les règles relatives aux mots de passe : Mettez en œuvre des politiques de complexité et d’expiration des mots de passe pour améliorer encore la sécurité.
* Protégez votre serveur LDAP : Sécurisez votre serveur LDAP contre tout accès non autorisé.
En résumé, `slappasswd` est l'utilitaire le plus approprié pour générer des hachages de mots de passe LDAP. Assurez-vous de sélectionner un algorithme de hachage puissant et de configurer votre serveur LDAP en conséquence pour une sécurité optimale. Donnez toujours la priorité aux options les plus sécurisées disponibles.
|