Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Соль в пароле 
:(
    Опции темы
Ripper
Дата 22.12.2011, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lonely soul...
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 30.6.2004
Где: г. Москва

Репутация: 1
Всего: 23



Здравствуйте.

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

Но если у меня такой случай: я в админке сам добавляю пользователей, и им на почту падает сгенерированный рандомный пароль, то тогда смысла в соли нет?




--------------------
"Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом
PM MAIL ICQ   Вверх
$дмитрий
Дата 22.12.2011, 02:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 17
Всего: 45



Суть соли в том, чтобы при попадании хеша в чужие руки, и дальнейшем восстановлении, хакер(назовем его так) получил НЕ исходный пароль, а белиберду
Причем солить нужно с умом, а не просто так

Цитата

Но если у меня такой случай: я в админке сам добавляю пользователей, и им на почту падает сгенерированный рандомный пароль, то тогда смысла в соли нет?

Хранить пароли в открытом виде нельзя, особенно в таком общественном месте как сайт
PM MAIL   Вверх
Gold Dragon
Дата 22.12.2011, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



если честно, то я не понимаю смысл соли.. Допусти MD5 подобрать перебором используя правила "как правильно назначать пароли" просто не реально.. Тем более если на сайте предусмотрена система контроля ввода паролей..


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
MoLeX
Дата 22.12.2011, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(Gold Dragon @  22.12.2011,  09:31 Найти цитируемый пост)
если честно, то я не понимаю смысл соли..

123 = 202cb962ac59075b964b07152d234b70
123соль = d17108a0680e23556907de0759696b4b

так вот, когда подберут коллизию к 202cb962ac59075b964b07152d234b70 то её будет легко использовать. а вот подобрать правильную коллизию к d17108a0680e23556907de0759696b4b уже нераельно, так как система к 123соль добавит еще соль  и мы получим 05c9255b68ec930dd27e5d16250838c7


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
krundetz
Дата 22.12.2011, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



На мой взгляд, если злоумышленник получил доступ к БД, то скорее всего доступ к скриптам у него тоже есть, получается вычленить механизм добавления соли проще простого. Или я не прав?


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
MoLeX
Дата 22.12.2011, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(krundetz @  22.12.2011,  12:03 Найти цитируемый пост)
Или я не прав? 

да не прав.
SQL иньекция и всех делов. Причем доступа к скриптам нету)

Добавлено через 1 минуту и 51 секунду
обычный пример уязвимости. делай что хочешь. 
Код

mysql_query('SELECT * FROM `table` WHERE `id` = '.$_GET['id']);



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
ksnk
Дата 22.12.2011, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(Ripper @  22.12.2011,  01:51 Найти цитируемый пост)
Я не совсем понимаю в каких случаях нужно добавлять соль к паролю при генерации хеша. Если я верно понял, то допустим пользователь ввел в качестве пароля простое слово, злостный кулхацкер раздобыл хеш, и у него есть база хешей для простых слов. И он сможет быстро подобрать пароль.
В таком случае мы храним в БД столбец с солью для каждого пароля, рандомный набор символов. И тем самым усложняем задачу, генерируя хеш из пароля + соли.

Если думать, что связь идет по https, то из "реальных" возможностей у среднего хакера есть два варианта взлома аккаунта - клавиатурный перехватчик(троян?) на компьютере клиента или воровство базы с сервера(как правило - из-за уязвимостей самого сайта или сопутствующего ПО, хакер получает возможность исполнять sql запросы броузером)... В первом варианте пароль уже есть, а второй означает, что в базе хранятся хеши паролей пользователей, которые можно подобрать перебором. Если рядом с хешем храниться его соль, то смысл в таком солении совершенно отсутствует. Соль должна быть в другом месте.  К примеру, массив солей прописан в файле, а в базе имеется ее индекс. В этом случае хакеру потребуется иметь доступ еще и к файлам сервера, уметь понять логику приложения и получить файл с солями. 



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Ripper
Дата 22.12.2011, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lonely soul...
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 30.6.2004
Где: г. Москва

Репутация: 1
Всего: 23



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

Все равно не понял =\

Коллизия - это если у нас есть например пароль 123 и его какой-то хеш, а потом хакер находит что 543 тоже имеет такой же хеш, и использует его в качестве пароля?
Если так, то когда он получат пароли и соли с ними, он может же перебирать хеши добавляя соль (вначале\вконце). ? 

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

Добавлено через 5 минут и 47 секунд
ksnk, а, вот - соли не должны хранится в БД. Тогда понятно. Только вот я просто узнал про неё из Ion auth, а она позволяет хранить соли в БД.


--------------------
"Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом
PM MAIL ICQ   Вверх
MoLeX
Дата 22.12.2011, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(Ripper @  22.12.2011,  12:28 Найти цитируемый пост)
Коллизия - это если у нас есть например пароль 123 и его какой-то хеш, а потом хакер находит что 543 тоже имеет такой же хеш, и использует его в качестве пароля?

да так

Цитата(Ripper @  22.12.2011,  12:28 Найти цитируемый пост)
Если так, то когда он получат пароли и соли с ними, он может же перебирать хеши добавляя соль (вначале\вконце). ? 

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

Добавлено через 1 минуту и 51 секунду
Цитата(Ripper @  22.12.2011,  12:28 Найти цитируемый пост)
ksnk, а, вот - соли не должны хранится в БД. 

 smile 

я делаю смешание, грубо говоря такое:
Код

md5($login."\r\n".$secret."\r\n".$pass);


\r\n - это банальная защита от перебора по радужным таблицам)


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
$дмитрий
Дата 22.12.2011, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 17
Всего: 45



Цитата

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

Имеет смысл подсалить, мало ли

Цитата

если злоумышленник получил доступ к БД, то скорее всего доступ к скриптам у него тоже есть, получается вычленить механизм добавления соли проще простого

Если получен доступ к скриптам, дальше замарачиваться с БД никто не будет

Цитата

Если так, то когда он получат пароли и соли с ними, он может же перебирать хеши добавляя соль (вначале\вконце). ?

Он не получит соль если она хранится в файле

PM MAIL   Вверх
Gold Dragon
Дата 22.12.2011, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



MoLeX, по радужным таблицам получают уже готовый пароль smile так что есть ли соль или нет - без разницы.. И добавлять соль в том варианте какой ты показал - на мой взгляд полная бессмыслица..

И вообще, коллизия и MD5 - это великая(!) теория чем практика... Да и вредит она только сопоставления, а не подбору

Даже если ты боишься, то лучше соль использовать так

ПЕРВАЯ_ЧАСТЬ_ПАРОЛЯ + КАКАЯ_ТО_ХРЕНЬ + ВТОРАЯ_ЧАСТЬ_ПАРОЛЯ

имеем: пароль: 202cb962ac59075b964b07152d234b70 и хрень: a3b

получаем: 202cb962ac59075ba3b964b07152d234b70

А вот теперь ни одна радужная таблица не поможет

Добавлено @ 14:55
и ещё раз повторюсь - пароль должен быть НОРМАЛЬНЫМ а не qwerty. А радужные таблицы это всего-лишь пароль=MD5(пароль)... Так что "нормальные" пароль просто там не должен быть

Это сообщение отредактировал(а) Gold Dragon - 22.12.2011, 14:56


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Ripper
Дата 22.12.2011, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lonely soul...
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 30.6.2004
Где: г. Москва

Репутация: 1
Всего: 23



А, кстати, а что если в файле просто прибавлять к паролю секретную строку.
Ведь смысл насколько я понял в том, чтобы если у хакера есть доступ к БД, то усложнить ему подбор хешей. Если соли хранить в БД - это плохо. Ок. Храним в файле в надежде что к файлам у него доступа нет.
Но ведь можно просто тогда в файле использовать единую соль для всех, ведь он все равно не имеет доступ к файлу, и перемешивать с ней.



--------------------
"Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом
PM MAIL ICQ   Вверх
Gold Dragon
Дата 22.12.2011, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



так я про это и сказал smile просто хеш имеет 32 знака, а вот если он будет иметь 33, то как его проверить? только перебирать и подбирать

Добавлено через 50 секунд
ps
в данном случае (по количеству символом) имею в виду MD5


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
krundetz
Дата 22.12.2011, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Цитата(MoLeX @  22.12.2011,  12:22 Найти цитируемый пост)
SQL иньекция и всех делов.

а если SQL инъекция не возможна в принципе?
Цитата(MoLeX @  22.12.2011,  12:22 Найти цитируемый пост)
mysql_query

не использую, PDO наше все



--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
$дмитрий
Дата 22.12.2011, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 17
Всего: 45



Цитата

А, кстати, а что если в файле просто прибавлять к паролю секретную строку.

Имеешь в виду так
Код

md5(SECRET.$sPassword)

Тогда это неправильно
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1771 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.