Получить оригинальное значение из HASH - PullRequest
1 голос
/ 25 февраля 2011

На днях я столкнулся с таблицей в нашей корпоративной системе - dba_users (oracle).

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

Насколько я знаю (из Google), имя пользователя + пароль соединяются, затем хэшируются.

Вопрос: зная "соль" (мое собственное имя пользователя), "оригинальное значение" (мое собственное)пароль), а также хэшированное значение ... существует ли здесь опасность того, что вы сможете выяснить хеш?

Кроме того - поиск в хеше Oracle 10g - кажется, что некоторые люди думают, что они вычислилихеш-алгоритм отсутствует.И я читал о «радужных таблицах» и «атаках по словарю в автономном режиме» ... И, наконец, я погуглил оракула 11g, и одна из особенностей этой версии заключается в том, что они скрывают хеш-пароль в dba_users, чтобы конечные пользователи моглине вижу.

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

Ответы [ 2 ]

5 голосов
/ 25 февраля 2011

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

Чтобы подчеркнуть: (правильно рассчитанное) хеш-значение пароля, хранящегося в базе данных, совершенно бесполезно без оригинала.

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

3 голосов
/ 25 февраля 2011

Разработка того, что сказал @Goran Jovic, путем объединения (т. Е. Засоления) каждого хешированного пароля с именем пользователя. Делать это доступным не опасно.Чтобы понять это, вы должны понять, как работает радужный стол.Способ взлома последовательности паролей с помощью радужной таблицы заключается в загрузке предварительно вычисленной серии хэшей из паролей в память.Затем поиск в таблице хэшей, связанных с неизвестными паролями, чтобы увидеть, можете ли вы найти совпадение в радужной таблице (из которых вы знаете пароль, соответствующий конкретному хешу).Однако, посолив хэши с уникальным идентификатором (т. Е. Именем пользователя), вы победите эту атаку, потому что даже уже увиденный пароль будет хэшироваться по-разному в зависимости от того, с каким пользователем он связан.Поэтому теперь вместо «радужной таблицы», которая должна обрабатывать миллионы различных возможных комбинаций паролей, теперь она должна содержать хеш каждого возможного пароля плюс каждое возможное имя пользователя.Пространство результатов этого просто слишком велико для поиска, и, если не было квантового скачка в вычислительных технологиях, его невозможно превзойти, используя тактику грубой силы.

...