Het hulpprogramma dat wordt gebruikt om een wachtwoord te coderen voor gebruik met LDAP is afhankelijk van het specifieke hash-algoritme dat u wilt gebruiken en de LDAP-server waarmee u verbinding maakt. Er bestaat niet één enkel hulpprogramma voor LDAP-wachtwoordversleuteling. In plaats daarvan gebruikt u algemene wachtwoordhashing-tools en vertelt u de LDAP-server welk hashtype u heeft gebruikt.
Hier volgt een overzicht van veelgebruikte methoden en hulpprogramma's:
1. Algemene hashingalgoritmen voor LDAP:
* {SSHA} (gezouten SHA-1): Dit is ouder, maar wordt nog steeds breed ondersteund. Het voegt een willekeurig gegenereerde salt toe aan het wachtwoord voordat het wordt gehasht met SHA-1, en codeert vervolgens het resultaat samen met de salt met base64. SHA-1 wordt als cryptografisch zwak beschouwd en moet worden vermeden bij nieuwe implementaties.
* {SSHA256} (gezouten SHA-256): Een sterker alternatief voor SSHA, met behulp van SHA-256. Voorkeur boven SSHA.
* {SSHA512} (gezouten SHA-512): Zelfs sterker dan SSHA256, met behulp van SHA-512. Aanbevolen voor nieuwe implementaties, indien ondersteund.
* {MD5} (MD5): Dit wordt *sterk* afgeraden. MD5 is kapot en mag nooit worden gebruikt voor het hashen van wachtwoorden. Veel LDAP-servers staan dit misschien niet eens meer toe.
* {SMD5} (gezouten MD5): Het gebruik van een zout maakt het *iets* beter dan gewone MD5, maar nog steeds niet aanbevolen. Vermijd dit ook.
* {CRYPT} (crypt(3)): Gebruikt de `crypt()`-functie van het systeem, die doorgaans standaard op DES-gebaseerde hashing gebruikt. DES wordt als zeer zwak beschouwd. Dit is over het algemeen een slechte keuze.
* {CLEARTEXT}: Het wachtwoord wordt in platte tekst opgeslagen. Gebruik dit nooit in een productieomgeving.
* {PBKDF2} :(PBKDF2-SHA256, PBKDF2-SHA512) Een modernere sleutelafleidingsfunctie die beter bestand is tegen aanvallen met brute kracht. Dit is een goede keuze als uw LDAP-server dit ondersteunt.
2. Hulpprogramma's en methoden voor het genereren van hashes:
* `slappasswd` (OpenLDAP): Dit is het meest voorkomende en aanbevolen hulpprogramma, vooral als u OpenLDAP gebruikt. Het is speciaal ontworpen voor het genereren van LDAP-wachtwoordhashes. Het ondersteunt verschillende algoritmen, waaronder SSHA, SSHA256, SSHA512 en meer.
``` bash
slappasswd -s mysecretpassword # Standaard:SSHA (meestal)
slappasswd -h '{SSHA256}' -s mijngeheimwachtwoord
slappasswd -h '{SSHA512}' -s mijngeheimwachtwoord
slappasswd -h '{PBKDF2}' -s mijngeheimwachtwoord
```
`slappasswd` levert de correct geformatteerde tekenreeks op, die u vervolgens gebruikt in het kenmerk `userPassword` in uw LDAP-invoer.
* `ldappasswd`: Dit wordt voornamelijk gebruikt voor het *wijzigen* van een wachtwoord voor een bestaand LDAP-item. Het gebruikt doorgaans dezelfde hash-algoritmen die worden ondersteund door de LDAP-server. Hoewel je het potentieel *zou* kunnen gebruiken om een nieuwe wachtwoord-hash te genereren, is `slappasswd` het voorkeurshulpmiddel voor het maken van een aanvankelijk wachtwoord.
* `openssl passwd`: Dit is een meer algemeen opdrachtregelhulpprogramma voor het genereren van wachtwoord-hashes. Het ondersteunt een reeks hash-algoritmen, maar u moet erop letten dat u de uitvoer correct formatteert voor LDAP. Het verwerkt de salt-generatie en codering niet zo goed voor je als `slappasswd` dat doet. Het is meestal beter om `slappasswd` te gebruiken voor LDAP.
``` bash
openssl passwd -salt -sha256 mijngeheimewachtwoord
```
U zou dan handmatig `{SSHA256}` aan de uitvoer moeten toevoegen.
* Programmeertalen (Python, Perl, Java, enz.): U kunt bibliotheken in verschillende programmeertalen gebruiken om de hashes te genereren. Dit geeft u de meeste flexibiliteit, maar vereist ook dat u de hash-algoritmen begrijpt en weet hoe u de salt correct kunt genereren en coderen. In Python bijvoorbeeld:
```python
hashlib importeren
importbasis64
importeer os
def ssha256_wachtwoord(wachtwoord):
salt =os.urandom(8) # 8 bytes is een goede salt-grootte
salted_password =wachtwoord.encode('utf-8') + zout
hash_password =hashlib.sha256(salted_password).digest()
gecombineerd =gehasht_wachtwoord + zout
gecodeerd =base64.b64encode(gecombineerd).decode('ascii')
return "{SSHA256}" + gecodeerd
wachtwoord_hash =ssha256_password("mijngeheimwachtwoord")
afdrukken(wachtwoord_hash)
```
Dit is slechts een voorbeeld. U zou de code moeten aanpassen voor andere hash-algoritmen.
* Webgebaseerde LDAP-wachtwoordgeneratoren: Er zijn enkele online tools die LDAP-wachtwoordhashes kunnen genereren. Wees uiterst voorzichtig als u deze gebruikt, vooral met gevoelige wachtwoorden. U vertrouwt uw wachtwoord toe aan een derde partij. Het is veel veiliger om een lokale tool zoals `slappasswd` te gebruiken.
3. LDAP-serverconfiguratie:
Het is van cruciaal belang om uw LDAP-server te configureren, zodat u begrijpt welke hash-algoritmen zijn toegestaan en de voorkeur hebben. In OpenLDAP configureert u dit bijvoorbeeld doorgaans in `slapd.conf` of de dynamische configuratie met behulp van `cn=config`.
Voorbeeld (OpenLDAP, `cn=config`):
```ldif
dn:olcDatabase={0}config,cn=config
wijzigingstype:wijzigen
voeg toe:olcPasswordHash
olcPasswordHash:{SSHA512}
-
voeg toe:olcPasswordHash
olcPasswordHash:{SSHA256}
-
voeg toe:olcPasswordHash
olcPasswordHash:{SSHA}
```
Hiermee configureert u de server om SSHA512, SSHA256 en SSHA toe te staan, in die volgorde van voorkeur. Wanneer een client `ldappasswd` gebruikt om een wachtwoord te wijzigen, zal de server proberen het sterkste algoritme te gebruiken in de `olcPasswordHash`-lijst waar de client om vraagt (of de eerste als de client geen voorkeur specificeert).
4. Welk hulpprogramma moet je kiezen:
* `slappasswd` is de beste keuze voor het genereren van initiële wachtwoord-hashes. Het is ontworpen voor LDAP, verwerkt het zout op de juiste manier en ondersteunt een verscheidenheid aan algoritmen. Het is de veiligste en meest betrouwbare aanpak.
* Gebruik `ldappasswd` voor het *wijzigen* van wachtwoorden op een bestaande LDAP-server, omdat dit direct integreert met de configuratie van de server.
* Vermijd `openssl passwd` tenzij je echt weet wat je doet en de uitvoer correct kunt formatteren.
* Vermijd online wachtwoordgeneratoren vanwege veiligheidsrisico's.
* Programmeertalen bieden flexibiliteit, maar vereisen een zorgvuldige implementatie.
Beveiligingsoverwegingen:
* Gebruik krachtige hash-algoritmen: Geef de voorkeur aan SSHA512 of PBKDF2 als uw LDAP-server deze ondersteunt. Vermijd MD5, SHA-1, DES en platte tekst.
* Gebruik een sterk willekeurig zout: De salt moet minimaal 8 bytes (64 bits) groot zijn en cryptografisch willekeurig zijn.
* Beperk de toegestane hash-algoritmen: Configureer uw LDAP-server zo dat alleen sterke hash-algoritmen zijn toegestaan.
* Overweeg wachtwoordbeleid: Implementeer wachtwoordcomplexiteit en vervalbeleid om de beveiliging verder te verbeteren.
* Bescherm uw LDAP-server: Beveilig uw LDAP-server tegen ongeautoriseerde toegang.
Samenvattend is `slappasswd` het meest geschikte hulpprogramma voor het genereren van LDAP-wachtwoordhashes. Zorg ervoor dat u een sterk hash-algoritme selecteert en configureer uw LDAP-server dienovereenkomstig voor optimale beveiliging. Geef altijd prioriteit aan de veiligste beschikbare opties. |