Проверка Пользователя Пароли Oracle для приложения Сброса

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

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

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

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

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

Поток приложения (если это помогает):

  1. AD Проверка на надлежащий домен (интранет)
  2. Пользователь вводит Имя пользователя Oracle
  3. Вводит старый пароль, новый пароль + Подтверждение
  4. Измените пароль, если корректный
1
задан Forrest Marvez 2 March 2010 в 15:48
поделиться

3 ответа

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

1
ответ дан 3 September 2019 в 01:08
поделиться

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

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

1
ответ дан 3 September 2019 в 01:08
поделиться

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

0
ответ дан 3 September 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: