Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Известен ли уже метод преобразования паролей в Oracle???  [new]
МаксимЛ
Member

Откуда:
Сообщений: 20
Собственно в чем вопрос:
Господа продвинутые DBA, известно ли уже отображение, которым в Oracl'e преобразуются пароли к виду, в котором хранятся в sys.user$ ... Понятно, что отталкиваются от login'a конктрентного и еще от чего-то ...
В общем, может алгоритм уже известен, а? :)
19 мар 05, 12:00    [1399551]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
Markelenkov
Member

Откуда:
Сообщений: 2312
А зачем он нужен этот алгоритм? Если очень хочется, то можно раскопать. Например, запускаем под отладчиком orapwd и смотрим :)

Только нафига это нужно...
19 мар 05, 12:31    [1399569]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
Александр Соколов
Member

Откуда: Протвино
Сообщений: 1419
http:www.oracle.com/technology/oramag/oracle/04-may/o34asktom.html :

Хешировать или не хешировать

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


Наиболее существенное преимущество – обратное преобразование хеш-значений невозможно, а шифрование должно быть обратимым. Шаги процесса входа в систему:
1. Пользователь предоставляет имя пользователя и пароль.
2. Вы проверяете их корректность.
3. Если они корректны, вы предоставляете право доступа.
4. Если они не корректны, вы аннулируете попытку входа в систему.
Нужно ли хранить пароли для их проверки на шаге 2? Совершенно нет. Мы будем делать это так, как делают Oracle, UNIX и большинство других систем: мы можем использовать хеширование. Шаги использования хеширования просты. Нам нужно только передать заданные имя пользователя и пароль в стандартную хеш-функцию. (Корпорация Oracle исключительно для этих целей предоставляет функцию DBMS_OBFUSCATION_TOOLKIT.MD5 в Oracle8i и Oracle9i и функцию DBMS_CRYPTO.HASH в Oracle 10g.) Мы берем хеш-значение, возвращенное этой функцией, и сравниваем его с хеш-значением, хранимым для данного пользователя. Таким способом мы можем выполнять аутентификацию, но никогда не заботиться о том, что кто-то украдет наши пароли, ведь мы же не храним их! Не существует никакого способа вывода паролей по хранимым хеш-значениям.
Каждый ответственный за информационную безопасность будет спать спокойнее, зная, что у них нет таблицы, заполненной паролями (зашифрованными или незашифрованными), которые могут быть украдены. Более подробно об этой важной теме см. asktom.oracle.com/~tkyte/hash.html.
19 мар 05, 13:00    [1399594]     Ответить | Цитировать Сообщить модератору
 Известен ли уже метод преобразования паролей в Oracle???  [new]
МаксимЛ
Member

Откуда:
Сообщений: 20
Посмотрить бы еще содержимое этой функции ... :) (MD5)
19 мар 05, 13:35    [1399627]     Ответить | Цитировать Сообщить модератору
 Известен ли уже метод преобразования паролей в Oracle???  [new]
МаксимЛ
Member

Откуда:
Сообщений: 20
Точнее процедуры ...
19 мар 05, 13:37    [1399628]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
Александр Соколов
Member

Откуда: Протвино
Сообщений: 1419
Зачем? Как с хеш-значениями паролей обращается Oracle вы можете разобраться по файлу экспорта. Естественно, эта возможность нигде в документации не описана..
19 мар 05, 13:53    [1399637]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
mayton
Member

Откуда: loopback
Сообщений: 49824
МаксимЛ
Посмотрить бы еще содержимое этой функции ... :) (MD5)


MD5 публикуется открытым исходным кодом. Вы можете найти ее в исходных кодах OpenSSL. Или в книге Брюса Шнайдера - Прикладная Криптография.

За кадром остается методика передачи исходных данных на вход к ней. Скорее всего эта функция зависит не только от пароля но и от логина. Попробуйте в Oracle создать две учетки с одинаковыми паролями. Убедитесь что хеши будут отличатся.
19 мар 05, 14:32    [1399663]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
МаксимЛ
Member

Откуда:
Сообщений: 20
mayton
МаксимЛ
Посмотрить бы еще содержимое этой функции ... :) (MD5)


За кадром остается методика передачи исходных данных на вход к ней. Скорее всего эта функция зависит не только от пароля но и от логина. Попробуйте в Oracle создать две учетки с одинаковыми паролями. Убедитесь что хеши будут отличатся.


То, что получаемое хэш-значение зависит от логина - это безусловно ...
19 мар 05, 14:44    [1399680]     Ответить | Цитировать Сообщить модератору
 Известен ли уже метод преобразования паролей в Oracle???  [new]
МаксимЛ
Member

Откуда:
Сообщений: 20
Уважаемый, Mayton, если есть возможность - опубликуйте здесь, плз, исходники процедуры ...
Если нет - придется искать книгу :) Или экспорт пойду разбирать...
19 мар 05, 14:47    [1399682]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
Александр Соколов
Member

Откуда: Протвино
Сообщений: 1419
Если вам известно хеш-значение пароля, но не сам пароль, вы, имея соответствующие привилегии можете работать не с самим паролем, а с его хеш-значением. Как это делается, см. в экспорте.

Обратное преобразование считается невозможным...
19 мар 05, 15:07    [1399704]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
Ildarych
Member

Откуда:
Сообщений: 350
mayton
Попробуйте в Oracle создать две учетки с одинаковыми паролями. Убедитесь что хеши будут отличатся.


Ошибаетесь, зависит только от username. Значения хешей одинаковые.
По-крайней мере на 8-ке это так.
19 мар 05, 16:22    [1399750]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
mayton
Member

Откуда: loopback
Сообщений: 49824
ОК. Исходник достану. Только не раньше понедельника.
19 мар 05, 16:22    [1399751]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
mayton
Member

Откуда: loopback
Сообщений: 49824
Ildarych
mayton
Попробуйте в Oracle создать две учетки с одинаковыми паролями. Убедитесь что хеши будут отличатся.


Ошибаетесь, зависит только от username. Значения хешей одинаковые.
По-крайней мере на 8-ке это так.


Только что попробовал в девятке.

SQL> create user scott1 identified by tiger;

User created.

SQL> create user scott2 identified by tiger;

User created.

SQL> select username,password from dba_users where username like 'SCOTT%';

USERNAME                       PASSWORD                                         
------------------------------ ------------------------------                   
SCOTT1                         BD2D1C8B175EB075                                 
SCOTT2                         C44C11D4C34DB67D                                 
19 мар 05, 16:29    [1399759]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
mayton
Member

Откуда: loopback
Сообщений: 49824
МаксимЛ
Уважаемый, Mayton, если есть возможность - опубликуйте здесь, плз, исходники процедуры ...
Если нет - придется искать книгу :) Или экспорт пойду разбирать...


Вот. Нашел один из вариантов реализации.

http://www.faqs.org/rfcs/rfc1321.html
19 мар 05, 16:54    [1399769]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
Ildarych
Member

Откуда:
Сообщений: 350
mayton
Только что попробовал в девятке.


Извиняюсь не внимательно прочитал, почему то подумал, что имеется ввиду одинаковые аккаунты для разных систем :)
19 мар 05, 19:12    [1399863]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
Markelenkov
Member

Откуда:
Сообщений: 2312
Ildarych
mayton
Попробуйте в Oracle создать две учетки с одинаковыми паролями. Убедитесь что хеши будут отличатся.


Ошибаетесь, зависит только от username. Значения хешей одинаковые.
По-крайней мере на 8-ке это так.

С доисторических времен (для подавляющего большинства местных форумщиков) значения хэша пароля пользователя в Oracle вычисляется на основании username и password. Более того, алгоритм преобразования стабилен с тех же времен.

Александр Соколов
Обратное преобразование считается невозможным...

IMHO, следует уточнить, что "за приемлемое время". Так как идея криптографии зиждется на основной идее (и подобным ей), что найти произведение двух чисел гораздо легче, чем по имеющемуся произведению найти сомножители. Но в принципе это возможно.
19 мар 05, 19:33    [1399875]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
Александр Соколов
Member

Откуда: Протвино
Сообщений: 1419
Согласен. Но пароль - не панацея от всех угроз. См., например, мой перевод Шифруем свои ресурсы данных.
19 мар 05, 20:25    [1399916]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
Markelenkov
Member

Откуда:
Сообщений: 2312
Александр Соколов
Согласен. Но пароль - не панацея от всех угроз.

Конечно, особенно от любопытного или вороватого админа :)

Александр Соколов
См., например, мой перевод Шифруем свои ресурсы данных.

Спасибо, завтра почитаю.
19 мар 05, 21:02    [1399930]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
Александр Соколов
Member

Откуда: Протвино
Сообщений: 1419
Markelenkov
Конечно, особенно от любопытного или вороватого админа :)



Однажды, когда я читал лекции для АБД, один слушатель честно признался, что у него просто мания влезать во все, что "плохо лежит".
19 мар 05, 21:32    [1399956]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
Владимир Бегун
Member

Откуда: Redwood Shores, CA USA
Сообщений: 1707
Александр Соколов
один слушатель честно признался, что у него просто мания влезать во все, что "плохо лежит".

Наукой доказано, что клиптомания лечится клаустрафобией :-)
19 мар 05, 21:39    [1399963]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
hell
Member

Откуда:
Сообщений: 3001
Простое хэширование - это не панацея.

Подумайте:
а) можно ли получить такой же хэш, но для другого пароля?
б) является ли преобразование хэширующей функции детерминированной функцией?

Подумав, читаем вот такую штуку:


Файл паролей, зашифрованных однонаправленной функцией, тем не менее, уязвим. Имея запас времени, Мэллори может составить список из миллиона наиболее часто встречающихся паролей. Он обработает этот список однонаправленной функцией и сравнит результаты с файлом паролей - у него есть шанс отыскать совпадения. Это вскрытие с помощью словаря (dictionary attack) может быть удивительно успешным. Для того, чтобы бороться с такой атакой, используется соль - случайная строка, добавляемая к паролям перед обработкой их однонаправленной функцией. В БД компьютера хранятся значения соли и результат однонаправленной функции. Использование достаточно большого числа значений соли практически устраняет возможность вскрытия с помощью словаря.


Ну и моё личное мнение насчет хэшей и шифрования: "Небходимым условием неколизионности хэш функции является длина хэша большая или равная длине хэшируемого сообщения".
19 мар 05, 21:42    [1399965]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
hell
Member

Откуда:
Сообщений: 3001
Очевидно, что для примера с scott/tiger oracle юзает соль - например дату создания юзера..
"The CBO without stats is like a morning without coffee." T.Kyte
19 мар 05, 21:44    [1399967]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
Александр Соколов
Member

Откуда: Протвино
Сообщений: 1419
hell
Очевидно, что для примера с scott/tiger oracle юзает соль - например дату создания юзера..

Давно практически не работаю с Oracle, но, кажется, соль не может зависить от каких-то динамических факторов. Иначе, был бы невозможен экпорт-импорт на разные платформы.
19 мар 05, 22:04    [1399987]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
Владимир Бегун
Member

Откуда: Redwood Shores, CA USA
Сообщений: 1707
hell
Очевидно, что для примера с scott/tiger oracle юзает соль - например дату создания юзера..

Эта "очевидность" c этим "например" ошибочна, это я тебе как хороший друг Scottа говорю :-)
19 мар 05, 22:27    [1400016]     Ответить | Цитировать Сообщить модератору
 Re: Известен ли уже метод преобразования паролей в Oracle???  [new]
hell
Member

Откуда:
Сообщений: 3001
Еще раз поясню идею. Идея в том, что злоумышленник может по хэшу найти пароль, если он уже выполнял преобразование для такого пароля, и запомнил его(допустим обнаружил в базе 2 одинаковых хэша паролей, один из которых он знает, или специально накапливает в какой табличке такие пары), то он может легко его применить. Как это обходят:

hash(mypassword||sysdate) например. Тогда мы храним не только хэш, но и sysdate(соль), и при каждом входе делаем hash(mypassword||sysdate). Так как поверить в совпадение одновременно пароля и sysdate сложно, то ситуация с одинаковым кэшем не повторится. Более того, если даже злоумышленник нашел обратное значение к хэшу - он еще не получил доступ, т.к. надо еще выполнить условие, что конец пароля совпадает с солью. Т.е. мы исключаем подбор по словарю, и оставляем только тупой брутфорс
19 мар 05, 22:31    [1400020]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Oracle Ответить