PBKDF2 password encryption configuration known issues and considerations

Known issues and considerations with PBKDF2 password encryption configuration.

Known issues

  • Replication and Distributed Directory (Proxy ldap server) Support: When PBKDF2 is desired to be used in a replicated or distributed directory environment, all the servers MUST be updated to use the same configuration in Configuring PBKDF2 password encryption with Security Verify Directory. You do this task by setting ibm-slapdPwEncryption to one of PBKDF2 algorithm and ibm-slapdUseNonFIPSCrypt to TRUE in cn=Configuration entry of ibmslapd.conf file. Failing to update the configuration results in unusable passwords across different ldap servers in topology.
  • The following replication topologies are not supported with PBKDF2:
    • Master - Forwarder - Replica
    • Gateway to Gateway
  • Supported replication topologies for PBKDF2 are:
    • Master - Replica
    • Peer-to-Peer
  • Passwords with special characters must be passed as parameters with single quotes around it.

    For example,

    idsldapsearch -p 389 -D cn=user1,o=sample -w 'Passw0Rd$678' -b o=sample -s sub objectclass=*

    This rule is applicable to all supported older algorithms.

  • After changing the encryption method from PBKDF2-SHA* to aes256 (or any aes* encryption method) : If ibm-slapdUseNonFIPSCrypt is set to false or removed altogether from the ibmslapd.conf file, then the bind with valid credentials for an existing user whose password is still encrypted using PBKDF2* methods will fail.
  • Migration from SDS 6.4 to IBM Security Directory Suite Virtual Appliance 8.0.1:Migration from SDS 6.4 to ISDS VA 8.0.1 with PBKDF2 encryption mechanism set in configuration file is currently not supported. Server may not start or migration might not work at all. idsimigr command might fail.
  • Web Admin Tool support:Configuring PBKDF2 password encryption mechanism is not supported through Web Admin Tool. Command idsldapmodify can be used to configure PBKDF2 password encryption mechanism.
  • Attribute encryption support:Attribute encryption is not supported with PBKDF2 encryption mechanism. PBKDF2 mechanism is supported only for password encryption.

Additional notes

  • Only ibm-slapdPwEncryption attribute can be dynamically updated with idsldapexop operation, other attributes ibm-slapdUseNonFIPSCrypt and environment variable ibm-slapdPBKDFNumIterations require server restart when their values are updated. Only positive values must be given for environment variable ibm-slapdPBKDFNumIterations. Minimum allowed value for ibm-slapdPBKDFNumIterations is 1000 and Maximum allowed value for ibm-slapdPBKDFNumIterations is 10000000.
  • How and when do passwords get updated to use newly configured PBKDF2 method?

    When an instance gets configured with PBKDF2 algorithm, all the existing users will continue to have existing encrypted passwords without any change. A configuration change will not update userpassword on all users with newly configured encryption methods. As users keep changing their passwords, the userpassword is encrypted with the currently configured encryption method. To update all of the user's passwords to use PBKDF2, administrator must ask users to update their passwords or administratively reset the passwords.

  • The following table displays random generated salt length for each of the supported PBKDF2 encryption methods. The random salt gets generated when a password update takes place.
    Table 1. Random generated salt length for supported PBKDF2 encryption methods
    Encryption Method Salt Length (Bytes)
    PBKDF2-SHA1 20
    PBKDF2-SHA224 28
    PBKDF2-SHA256 32
    PBKDF2-SHA384 48
    PBKDF2-SHA512 64
  • Guidelines to set iterations based on operationResponseTime for Bind. For a higher number of iterations, a longer time is taken for the bind operations. The operationRespnoseTime may differ based on your system specifications .
    Table 2. An estimate of how the iteration count affects the bind performance
    Encryption Method Iterations operationResponseTime for Bind from Audit.log (milliseconds)
    PBKDF2-SHA512 1000 50
    PBKDF2-SHA512 10000 78
    PBKDF2-SHA512 100000 212
    PBKDF2-SHA512 1000000 1542
    PBKDF2-SHA512 10000000 14358