Verktyget som används för att kryptera ett lösenord för användning med LDAP beror på den specifika hashalgoritmen du vill använda och LDAP -servern du ansluter till. Det finns inget enda "LDAP -lösenordskryptering." Istället använder du Hashing-verktyg för allmänt lösenord och berättar sedan LDAP-servern vilken hash-typ du har använt.
Här är en uppdelning av vanliga metoder och verktyg:
1. Vanliga hash -algoritmer för LDAP:
* {ssha} (Salted SHA-1): Detta är äldre men ändå allmänt stöd. Den förbereder ett slumpmässigt genererat salt till lösenordet innan hashing med SHA-1, och sedan baserar Base64-konkodar resultatet tillsammans med saltet. SHA-1 anses kryptografiskt svagt och bör undvikas i nya utplaceringar.
* {SSHA256} (Salted SHA-256): Ett starkare alternativ till SSHA med SHA-256. Föredraget framför SSHA.
* {SSHA512} (Salted SHA-512): Ännu starkare än SSHA256, med SHA-512. Rekommenderas för nya distributioner där det stöds.
* {MD5} (MD5): Detta är * mycket * avskräckt. MD5 är trasig och bör aldrig användas för lösenordshash. Många LDAP -servrar kanske inte ens tillåter det längre.
* {SMD5} (Salted MD5): Att använda ett salt gör det * något * bättre än vanlig MD5, men rekommenderas fortfarande inte. Undvik detta också.
* {Crypt} (Crypt (3)): Använder systemets "Crypt ()" -funktion, som vanligtvis standarder till DES-baserad hashing. DES anses vara mycket svag. Detta är i allmänhet ett dåligt val.
* {clearText}: Lösenordet lagras i vanlig text. Använd aldrig detta i en produktionsmiljö.
* {pbkdf2} :(PBKDF2-SHA256, PBKDF2-SHA512) En mer modern nyckel härledningsfunktion som är mer resistent mot brute-force-attacker. Detta är ett bra val om din LDAP -server stöder den.
2. Verktyg och metoder för att generera hash:
* `slappasswd` (openldap): Detta är det vanligaste och rekommenderade verktyget, särskilt om du använder OpenLDAP. Den är utformad specifikt för att generera LDAP -lösenordshash. Det stöder olika algoritmer, inklusive SSHA, SSHA256, SSHA512 och mer.
`` `bash
Slappasswd -S MysecretPassword # Standard:SSHA (vanligtvis)
slappasswd -h '{ssha256}' -s mysecretpassword
slappasswd -h '{ssha512}' -s mysecretPassword
slappasswd -h '{pbkdf2}' -s mysecretPassword
`` `
`Slappasswd` matar ut den korrekt formaterade strängen, som du sedan använder i attributet 'UserPassword' i ditt LDAP -post.
* `lDappasswd`: Detta används främst för att * ändra * ett lösenord på en befintlig LDAP -post. Den använder vanligtvis samma Hashing -algoritmer som stöds av LDAP -servern. Medan du * kunde * använda det för att generera ett nytt lösenordshash, är `slappasswd` det föredragna verktyget för inledande lösenordsskapande.
* `OpenSSL Passwd`: Detta är ett mer allmänt verktyg för kommandorad för att generera lösenordshash. Det stöder en rad hash -algoritmer, men du måste vara noga med att formatera utgången korrekt för LDAP. Det hanterar inte saltgenerationen och kodningen för dig lika snyggt som "Slappasswd" gör. Det är vanligtvis bättre att använda "Slappasswd" för LDAP.
`` `bash
OpenSSL PASSWD -SALT -SHA256 MYSECRETPASSWORD
`` `
Du skulle då behöva förbereda `{ssha256}` till utgången.
* Programmeringsspråk (Python, Perl, Java, etc.): Du kan använda bibliotek på olika programmeringsspråk för att generera hash. Detta ger dig mest flexibilitet, men det kräver också att du förstår hash -algoritmerna och hur du genererar och kodar saltet korrekt. Till exempel i Python:
`` `python
import hashlib
Importera bas64
importsystem
def ssha256_password (lösenord):
Salt =OS.URANDOM (8) # 8 byte är en bra saltstorlek
SALED_PASSWORD =Password.encode ('UTF-8') + Salt
hashed_password =hashlib.sha256 (salted_password) .digest ()
kombinerad =hashed_password + salt
kodad =bas64.b64enCode (kombinerad) .decode ('ascii')
returnera "{ssha256}" + kodad
Password_hash =SSHA256_Password ("MySecretPassword")
Skriv ut (lösenord_hash)
`` `
Detta är bara ett exempel. Du måste justera koden för andra hash -algoritmer.
* Webbaserade LDAP-lösenordsgeneratorer: Det finns några onlineverktyg som kan generera LDAP -lösenordshash. Var extremt försiktig med dessa, särskilt med känsliga lösenord. Du litar på en tredje part med ditt lösenord. Det är mycket säkrare att använda ett lokalt verktyg som `Slappasswd '.
3. LDAP -serverkonfiguration:
Det är avgörande att konfigurera din LDAP -server för att förstå vilka hashalgoritmer som är tillåtna och föredragna. Till exempel, i OpenLDAP, skulle du vanligtvis konfigurera detta i `slapd.conf` eller den dynamiska konfigurationen med` cn =config '.
Exempel (openldap, `cn =config`):
`` `LDIF
dn:olcdatabase ={0} config, cn =config
ChangeType:Modify
Lägg till:olcpasswordhash
olcpasswordhash:{ssha512}
-
Lägg till:olcpasswordhash
olcpasswordhash:{ssha256}
-
Lägg till:olcpasswordhash
olcpasswordhash:{ssha}
`` `
Detta konfigurerar servern för att tillåta SSHA512, SSHA256 och SSHA, i den ordningen. När en klient använder "LDAPPASSWD" för att ändra ett lösenord kommer servern att försöka använda den starkaste algoritmen i listan "OlcPasswordHash" som klienten begär (eller den första om klienten inte anger en preferens).
4. Vilket verktyg att välja:
* `slappasswd` är det bästa valet för att generera initiala lösenordshash. Det är utformat för LDAP, hanterar saltet korrekt och stöder en mängd olika algoritmer. Det är den säkraste och mest pålitliga metoden.
* Använd `LDAPPASSWD` för att * ändra * lösenord på en befintlig LDAP -server, eftersom den integreras direkt med serverns konfiguration.
* Undvik `OpenSSL Passwd` såvida du inte vet vad du gör och kan formatera utgången korrekt.
* Undvik online -lösenordsgeneratorer på grund av säkerhetsrisker.
* Programmeringsspråk ger flexibilitet men kräver noggrann implementering.
Säkerhetsöverväganden:
* Använd starka hashalgoritmer: Föredrar SSHA512 eller PBKDF2 om din LDAP -server stöder dem. Undvik MD5, SHA-1, DES och vanlig text.
* Använd ett starkt slumpmässigt salt: Saltet bör vara minst 8 byte (64 bitar) och kryptografiskt slumpmässigt.
* Begränsa de tillåtna hash -algoritmerna: Konfigurera din LDAP -server för att bara tillåta starka hashalgoritmer.
* Överväg lösenordspolicy: Implementera lösenordskomplexitet och utgångspolicy för att ytterligare förbättra säkerheten.
* Skydda din LDAP -server: Säkra din LDAP -server från obehörig åtkomst.
Sammanfattningsvis är `Slappasswd 'det mest lämpliga verktyget för att generera LDAP -lösenordshash. Se till att du väljer en stark hash -algoritm och konfigurerar din LDAP -server i enlighet därmed för optimal säkerhet. Prioritera alltid de säkraste tillgängliga alternativen.