是否可以在不使用盐的情况下配置OpenLDAP加密密码?

问题描述 投票:1回答:2

从文档我得到这个配置,但有效,但使用盐,

password-hash {CRYPT} password-crypt-salt-format“$ 6 $%。16s”

我需要将密码存储在LDAP目录中,这些密码是在没有加密盐的情况下生成的。

ldap openldap salt sha512 sha2
2个回答
1
投票

您最好使用另一种不像{SHA}或{MD5}而不是{CRYPT}执行salting的密码存储方案:

password-hash {SHA}

如果要求使用{CRYPT}:

  • 你仍然可以提供一个静态盐(!坏,不安全,几乎没有盐!),只需符合给定的格式: password-crypt-salt-format "$6$%.16s" $6$SHA512模式的密码标识符,我们提供16个字符长盐: ~$ mkpasswd -m sha-512 --salt 'verybadseasoning' secret1 $6$verybadseasoning$Q2kceqwB2uYT2tU./QF.qRCIWjMQdObEAZ71Ni5Ko1zJOnxUwpu3oMeyjtgiR3hSVHIT20Ay9V1.pXaNhkHYk/ ~$ mkpasswd -m sha-512 --salt 'verybadseasoning' secret2 $6$verybadseasoning$SHof1u2BCPJhYoVOk.LkWax7n5g28rzMkNCRAC5NmlT29GSeWLAlv2AoSkOS4rYfMUXsmTcyIxKDUU8aL7TlP0 请注意,mkpasswd不允许使用空盐: ~$ mkpasswd -m sha-512 --salt '' secret Wrong salt length: 0 bytes when 8 <= n <= 16 expected.
  • 或者您可以尝试使crypt忽略给定/生成的盐字符串(通过从中获取零字符): password-crypt-salt-format "$6$%.0s" 它告诉crypt()使用SHA512算法,%s被一串零字符的盐(%.0s)取代。我无法判断slapd是否强制执行%s转换,但是设置"$6$"而不替换salting可能会起到作用,因为它意味着相同(没有盐),即: ~$ php -r 'print(crypt("secret", "$6$"));' $6$$2M9DchxW4txWyTYoZrH9D3VvAAQxBpEezYsLY6Cao.jwzEXpyL9xwip9hiUZX7GqTqe/E/z6iKvZqXUuqniQH.

slapd.conf(5)

请注意,缺少盐会使您的系统受到字典攻击。


0
投票

您可以使用不带salt的现有userPassword值导入用户条目。如果哈希方案是本地OpenLDAP安装支持的方案,则密码验​​证将起作用。

设置新密码时,config指令使用password-hash和password-crypt-salt格式。

© www.soinside.com 2019 - 2024. All rights reserved.