![]() |
|
||||||||||
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Цитата:
Поэтому храня не только хеш чистого пароля, а еще и хеш суммы пароля с ключевым словом, мы получаем уже два хеша, и тут коллизия не поможет. |
|
|||||
|
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Ну, ну я так и знал, что разговор обязательно уйдёт в русло секьюрности... Я то просто обрисовал, как всё примерно работает, чтобы автор знал, куда копать и по каким ключевым словам искать.
А уж как хранить пароли - это оооочень большая тема. Ей не то, что отдельного топика - ей отдельного форума мало будет. P.S. Вариант md5(pass) + md5(pass+salt) тоже имеет недостаток. Взлом первого хеша может упростить взлом второго (если мы нашли то самое слово). Кроме того, вероятно существует (но возможно пока неизвестен) алгоритм, который может восстанавливать сразу из двух хешей, благо это даёт нам больше информации. P.P.S. В IPB, если я не ошибаюсь, используется md5(md5(pass)+md5(salt)) |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Цитата:
Если нет, то это значит, что получив слово PASS2 из HASH1 (хотя оригинал был PASS1) и добавив к нему ключевой слово KEY (PASS2+KEY), вы получите HASH3. Хотя PASS1 + KEY дадут HASH2. Где бы взять два слово дающих коллизию для проверки? ![]() Цитата:
![]() А сделайете md5(md5(pass)+md5(pass)+md5(salt)) и работа у взломщиков пойдет впустую. Вывод один. Храня пароль не как хеш первого порядка, вы ставите злоумышлинников в тупиковое положение, так как не зная алгорим сохранения, а они даже теоретически не смогут получить из хеша пароль. Последний раз редактировалось iNils; 22.03.2008 в 20:32. |
|
|||||
|
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Цитата:
Даже если брать банальный брутфорс - количество вариантов у нас уже резко сокращается, так как мы знаем часть исходной строки. Я не знаю, как работает rainbow hack, но не исключено, что информация о некоторой части исходного слова ему может здорово помочь. Цитата:
А если знают, то автоматически они знают, что у нас 1-й символ равен 33-му, 2-й символ равен 34-му и т.д. Кроме того, они знают, что у нас используются только цифры и буквы a, A, b, B, c, C, d, D, e, E, f, F. Таким образом по крайний мере "верхний" md5 сковырнуть уже будет проще. --------------- Хотел поискать в гугле примеры коллизий MD5. Два коротких слова, состоящих из ASCII символов не нашёл, зато нашёл исходник генератора коллизий: http://www.stachliu.com/md5coll.c Последний раз редактировалось WindWalker; 22.03.2008 в 22:19. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Цитата:
Да нет же.Допустим 1. Пароль был WORD1. У вас есть HASH1 и HASH2. Задача: выяснить значение WORD1 2. md5 (WORD1) = HASH1 md5 (WORD2) = HASH1 И заметьте, WORD1 и WORD2 могут быть различной длины. 3. (если это действительно так, иначе смысла разговор не имеет на эту тему) md5 (WORD1 + KEY) = HASH2 md5 (WORD2 + KEY) = HASH3 Однако из HASH1 можно получить только WORD2 (при условии, что идет узнавание именно через обратимость, у нас ведь не числа чтобы был корень из дискриминанта дающий два различных корня в квадратном уровнении, поэтому вы получаете только один вариант) Теперь у вас есть WORD2 и HASH2. Только толку то? Посомтрите на пункт 3. Знание WORD2 ни как не приблизило вас к узнаванию WORD1, у вас из трех значение WORD1, KEY и HASH2, есть только HASH2. А для вычисления KEY через WORD2, надо знать значения HASH3. Но его у вас нет, и будет (понято почему?) |
|
|||||
|
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Ну я сразу же заметил:
Цитата:
Если же нашли WORD2 - значит нам крупно неповезло. Действительно крупно, потому что вероятность такого события крайне мала. Кстати, на plain-text, насколько я понял, ищут строки ограниченной длины и состоящие из ограниченного набора символов. Поэтому всегда или находят WORD1, или не находят ничего. ------------ Ну да ладно. Тема это вечная. Я сразу сказал, что md5(pass) - это примитивнейший вариант. Действительно md5(pass+key) - это уже гораздо лучше. А md5(md5(md5(pass)+md5(pass+key))+md5(key)) - это совсем здорово. А если md5 заменить на sha1 - то совсем супер. Вот только я так и не понял, чем шары хуже кукисов, если во всём, кроме способа хранения на компе юзера, принцип один и тот же ![]() Последний раз редактировалось WindWalker; 22.03.2008 в 23:00. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Так в том то и дело, что вероятность найти WORD1 ничтожна мала (на один хеш можно приходиться 1000, 10000, 100000 и тп коллизий ). Из WORD1...WORDN имеющих одинаковый хеш, можно получить только одно слово. А как узнать другие?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 07:03. |
|
|
« Предыдущая тема | Следующая тема » |
|
|