Проверка пользовательских паролей Oracle для сброса приложения - PullRequest
1 голос
/ 02 марта 2010

Это смесь программирования и системного администратора, но я решил, что это скорее проблема программирования.

В настоящее время работает над созданием веб-приложения для управления паролями для управления учетными записями пользователей Oracle (C #).

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

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

Мы используем AD в качестве основной аутентификации, но учетные записи AD не привязаны к учетным записям Oracle, поэтому это просто предварительная проверка.

Порядок подачи заявки (если это поможет):

  1. AD Проверка правильности домена (интрасети)
  2. Пользователь вводит имя пользователя / пароль Oracle
  3. Вводит старый пароль, новый пароль + подтверждение
  4. Сбросить пароль, если правильный

Ответы [ 3 ]

1 голос
/ 03 марта 2010

Как предполагает dpbradley, я бы подключился к базе данных, используя предоставленные учетные данные. Если это удастся, позвольте им сменить пароль.

1 голос
/ 03 марта 2010

Алгоритм хеширования паролей Oracle хорошо известен, и его нетрудно дублировать .Таким образом, вы можете взять запись пользователя, хэшировать ее, используя тот же алгоритм, и сопоставить ее со значением хеш-функции.Это значение отображается в DBA_USERS до 11g или в SYS.USER $ в противном случае.

Опасность такого подхода состоит в том, что доступность хэша допускает взлом пароля паролем (именно поэтому 11g делает хешзначение меньше видимого).

0 голосов
/ 25 мая 2010

При вызове Alter User вы можете добавить ключевое слово Replace, чтобы оно изменило пользователя только в том случае, если вы ввели правильный старый пароль (например, alter user userName, идентифицированное newPassword, заменяет oldPassword.) В некоторых случаях это не приведет ошибка, если вы ввели неправильный старый пароль, но вы можете найти его, если у вас возникнут проблемы с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...