2012-07-31 8 views
5

Per la vita di me, non riesco a trovarlo da nessuna parte e se qualcuno può anche solo darmi un collegamento sarei molto riconoscente.Come attivare l'hashing della password (SSHA) in openLDAP

Stiamo cercando di attivare l'hashing SSHA in openLDAP. Di default memorizza le password in testo in chiaro, che penso sia criminale, ma hey, io sono un ragazzo AD, quindi cosa ne so. Ma penseresti che renderebbero facile trovare le informazioni necessarie per attivare l'hashing, se lo desideri. E non vorresti scegliere?

+1

Vale la pena notare qui per altri: memorizzare le password hash nel proprio database di autenticazione (LDAP, AD o qualsiasi altra cosa) non è proprio la panacea di sicurezza che sembra essere . SASL migliora notevolmente la sicurezza sul cavo (attraverso la rete), ma richiede che la password originale sia disponibile per entrambe le estremità del collegamento. Quindi il compromesso è una migliore sicurezza nel datastore (hashing) contro una migliore sicurezza sul filo (SASL). –

+0

Da 'man slapo-ppolicy': Specificare che le password in chiaro presenti nelle richieste Aggiungi e Modifica devono essere sottoposte a hashing prima di essere archiviate nel database. Ciò viola il modello di informazioni X.500/LDAP, ma potrebbe essere necessario per compensare i client LDAP che non utilizzano l'operazione estesa Password Modifica per gestire le password. –

risposta

7

È possibile utilizzare 'password-hash' per modificare l'algoritmo di hashing, quello predefinito è SSHA (non chiaro).

Si noti che, slapd utilizza quanto sopra solo se la password inviata dai client è in testo normale, se il client sta inviando una password con hash, verrà memorizzata così com'è.

per esempio: con pam_ldap, utilizzare exop pam_password (o trasparente)

come è prove di resistenza della password eseguiti sul server se la password è in arrivo hash e so che è una caratteristica bagarini OpenLDAP ?

Se hai inviato le password hash, slapd non posso eseguire prove di resistenza, in modo che i clienti devono inviare le password in chiaro (ppolicy ha l'opzione di accettare/rifiutare hash password).

Nota:

  1. assicurarsi che i client utilizzano SSL/TLS (in modo che il passwd non vengono inviati in chiaro)
  2. userPassword contiene caratteri speciali ({}) in modo da avere a che fare un base64 -d per identificare l'algoritmo di hash utilizzato.

es: normalmente gli attributi vengono restituiti nel seguente formato (:: indicano il risultato è codificata base64)

userPassword:: e1NTSEF9QjU0VXNmQWhJN1dQZ3FvbDVSQ1l5RHUzTlVqa1luVVhYV2ljbmc9PQ= 
= 

$ echo e1NTSEF9QjU0VXNmQWhJN1dQZ3FvbDVSQ1l5RHUzTlVqa1luVVhYV2ljbmc9PQ==|openssl base64 -d 
{SSHA}B54UsfAhI7WPgqol5RCYyDu3NUjkYnUXXWicng== 
+2

Grazie Naj. I tuoi suggerimenti sono diventati parte della nostra soluzione. Il mio commento sul test della forza stava in realtà mettendo in discussione altri che suggerivano che l'hashing avrebbe dovuto aver luogo prima di inviarlo a LDAP per l'autenticazione. La dichiarazione di cui sopra è stata una cosa che mi è venuta in mente e che mi ha fatto sospettare del commento. Grazie ancora ... la vittoria ti va amico mio. –

1

OpenLDAP supporta una varietà di schemi di archiviazione da cui l'amministratore può scegliere. Lo strumento che utilizzi per creare account deve essere configurato per eseguire l'hashing. Il server memorizzerà le password nel formato richiesto dal client. Se hashing è fatto correttamente, ldapsearch mostrerà le password hash come questo:

userPassword: {SSHA}d0Q0626PSH9VUld7yWpR0k6BlpQmtczb 

Vedi http://www.openldap.org/doc/admin24/security.html per i dettagli.

Quando si tratta di strumenti di amministrazione Io personalmente consigliamo http://phpldapadmin.sourceforge.net

+0

Davvero? Quindi stai dicendo che l'unico modo per avere un hashing delle password è avere il client o, in altre parole, farlo da una fonte esterna. Sembra meno che ottimale e un po 'pericoloso. Nel mondo AD è centralmente fatto e gestito centralmente. Questo è difficile per me da credere. –

+0

Aspetta, come vengono eseguiti i test di forza della password sul server se la password è in arrivo con hash e so che è una funzione tout di openLDAP? –

+0

LDAP è solo una directory. L'applicazione dei criteri password dipende dal livello di autenticazione e non dal livello di archiviazione. È così che funziona il mondo UNIX, c'è uno strumento che fa solo una cosa e fa bene. Per applicare le norme sulle password è necessario configurare lo strumento che gli utenti useranno per modificare la propria password, sia che si tratti di un'interfaccia Web o di un'utilità della riga di comando. Capisco che questo potrebbe essere difficile da credere che non ci sia una cosa "centrale" che fa tutto, ma questa è l'idea della modularità. – anttix

2

Le specifiche LDAP richiede password in chiaro per l'interoperabilità. Il link sopra riportato sulla sicurezza ti darà l'opzione per i tipi di hash predefiniti che il server può imporre, ma considera le implicazioni.

+0

Si è certi del requisito per l'invio di testo normale. Immagino sia per questo che openLDAP richiede l'attivazione di SL prima che sia possibile configurarlo per avviare le password di hashing. La mia domanda è, perché consente a uno di inviare password in testo normale con hashing disattivato. Per quanto riguarda la sicurezza, non sarebbe meglio avere l'hashing attivato fin dall'inizio e richiedere all'utente di spegnerlo. Una sorta di modello BSD, tutto chiuso per impostazione predefinita che richiede al dotto di accendere i materiali pericolosi. –

1

Quando si è tentato di memorizzare attributo userPassword in aggiunta/modifica operazioni LDAP, Il valore userPassword viene memorizzato come testo normale. Ma puoi ignorare questo comportamento usando l'opzione ppolicy_hash_cleartext nel modulo di sovrapposizione ppolicy in OpenLDAP. Una volta abilitato, quando il client invia una password in testo semplice, viene memorizzato come SSHA per impostazione predefinita.È possibile trovare maggiori dettagli sull'attivazione della password hash in OpenLADP da here

Problemi correlati