Quali sono le migliori pratiche di sicurezza per i client che autenticano gli utenti con password contro LDAP?

1

Per proteggere un ambiente OpenLDAP sto studiando quali sono le migliori pratiche di sicurezza per quanto riguarda l'autenticazione degli utenti con password (ad esempio nessuna autenticazione Kerberos o SSL Client Certificate).

Da quanto ho capito, ci sono due approcci per l'autenticazione dell'utente:

  1. Confronto della password con l'attributo userPassword.
    • Il client si collega al server LDAP utilizzando un utente di binding specificato
    • Il client invia una query LDAP per recuperare la voce utente
    • Il client estrae lo schema di hashing userPassword
    • Il client esegue il hashing della password fornita dall'utente con lo schema di hashing estratto e la confronta con la password con hased nell'attributo userPassword
    • Se entrambi gli hash corrispondono, l'utente viene autenticato correttamente, altrimenti l'autenticazione non è riuscita
  2. LDAP Bind con utente e password
    • Il client si collega al server LDAP utilizzando l'utente che vuole accedere e la password che ha fornito
    • Se il binding LDAP ha avuto successo, l'autenticazione è riuscita, altrimenti l'autenticazione è fallita

Sembra che molte implementazioni stiano ancora utilizzando il primo approccio, mentre il secondo approccio sembra essere più sicuro e consente anche Pass Through l'autenticazione .

  • Se gli utenti devono essere autenticati con una password, quali sono le migliori pratiche di sicurezza per l'autenticazione con LDAP e sono documentate da qualche parte?
  • Ci sono altri approcci oltre a quelli descritti sopra?
posta Florian Feldhaus 27.09.2017 - 09:31
fonte

1 risposta

0

Per la maggior parte delle implementazioni che controllano la password tramite LDAP, il bind semplice è la soluzione migliore. Soprattutto perché la maggior parte delle implementazioni del server LDAP applica restrizioni sui criteri di password (scadenza pw ecc.) Solo durante l'elaborazione delle richieste di bind.

Tuttavia esiste un caso d'uso interessante per l'utilizzo delle richieste di confronto:

In una configurazione LDAP davvero paranoica, l'applicazione si legherebbe con un account di servizio e sarebbe quindi esplicitamente autorizzata tramite ACL a grana fine per verificare la password per conto dell'utente. Un limite di sicurezza aggiuntivo non è quasi possibile con le richieste di binding perché sono sempre anonimi (oltre a consultare l'indirizzo IP del peer o simili).

P.S .: Esistono diversi tipi di autenticazione pass-through. Se si dispone di un proxy a livello di applicazione LDAP, è possibile inoltrare le richieste di confronto ad altri server LDAP.

    
risposta data 17.07.2018 - 12:31
fonte

Leggi altre domande sui tag