2015-01-16 4 views
1

у меня есть эти настройки для подключения к LDAP:Подключение к LDAP с MD5 пароля

Hashtable<String, String> env = new Hashtable<String, String>(); 
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); 
env.put(Context.PROVIDER_URL, "ldap://urlTomyLDAP:389"); 
env.put(Context.SECURITY_AUTHENTICATION, "simple"); 
env.put(Context.SECURITY_PRINCIPAL, name); 
env.put(Context.SECURITY_CREDENTIALS, password); 

Когда пароль в «ясно» все работает отлично. Но этот пароль получает от веб-клиента, и это хэш (с JavaScript).
Так что у меня нет пароля в ясном виде. Можно ли настроить карту окружения с моим хэшированным паролем? И как ?

+0

Это невозможно, так как ldap требует пароль в виде простого текста (не хэшируется). – jHilscher

ответ

1

Это невозможно, и было бы неправильно делать это.

Хеши используются для защиты открытого текста с четким текстом, если они доступны (например, администратором) или украдены. Поэтому LDAP обычно сохраняет хэш пароля пользователя. Если кто-то получает доступ к сохраненному хэшу пароля LDAP, оригинальный пароль пользователя не отображается, поэтому он не может использоваться для аутентификации.

Если вы принимаете хэш пароля в качестве допустимого метода проверки подлинности, то получение доступа к хешу позволит кому-то пройти аутентификацию, не зная исходного пароля.

Если вам абсолютно нужна аутентификация, сделанная в браузере, тогда было бы безопаснее доставлять хэш пароля из LDAP клиенту и проверять ввод пользователя на полученный хэш с помощью JavaScript. В таком случае соль является абсолютной необходимостью, и на самом деле это не так, как вы должны внедрять безопасность.

0

Кажется, что вы не понимаете хэширование как операцию. Когда вы используете хэш-строку, вы не можете ее вернуть.

Единственное, что имеет смысл с хешированием, - это сравнить с другой хешированной строкой. Если обе хэшированные строки одинаковы, вы можете заключить, что обе предварительно хешированная строка одинакова (равна).

Для вашей конкретной ситуации - вы должны оставить хэширование в качестве меры безопасности, так как вы не сможете войти в систему с помощью хешированного пароля.

Если вы хотите узнать больше - отметьте this.

Смежные вопросы