Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Безопасность хранения паролей в БД

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: Кто что посоветует?
Hawkmoth
Отправлено: 05 Февраля, 2012 - 16:41:00
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


Помог: 6 раз(а)




Начитался огромного количества материала по хранению паролей в БД, кое-где противоречивого. Для себя уяснил вот что:

1.Если шифрование, то sha1. Или даже двойное: sha1(md5("password")).
2.Не лишним будет добавить соль. Например, так: sha1("password".$salt).
3.Соль должна быть уникальной для каждого пользователя и генериться случайно.

В связи с этим вопрос: в базе данных будет храниться 160-битный хэш пароля и соль. Но соль-то хранится в явном виде! Какой тогда в ней прок? Объясните, пожалуйста. Или посоветуйте свои методы шифрования, если я копаю не тудаУлыбка
 
 Top
Зверь
Отправлено: 05 Февраля, 2012 - 16:48:41
Post Id



Частый гость


Покинул форум
Сообщений всего: 243
Дата рег-ции: Окт. 2011  


Помог: 7 раз(а)




Ну так весь смысл соли в том чтобы хеш нельзя было подобрать случайным перебором, а если будет доступ к базе то тут уже никакая соль не поможет
(Добавление)
Но можете еще и соль шифровать Ха-ха
 
 Top
Hawkmoth
Отправлено: 05 Февраля, 2012 - 17:04:38
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


Помог: 6 раз(а)




Зверь пишет:
Ну так весь смысл соли в том чтобы хеш нельзя было подобрать случайным перебором, а если будет доступ к базе то тут уже никакая соль не поможет


Не понял. Что значит "Если будет доступ к базе то тут уже никакая соль не поможет"? Смысл соли как раз в том, насколько я понимаю, если будет УКРАДЕНА БАЗА, усложнить жизнь хакеру при брутфорсе. А если доступа к базе априори не будет, пароли можно вообще не шифровать Подмигивание
 
 Top
Зверь
Отправлено: 05 Февраля, 2012 - 17:14:52
Post Id



Частый гость


Покинул форум
Сообщений всего: 243
Дата рег-ции: Окт. 2011  


Помог: 7 раз(а)




Соль нужна для
Цитата:
усложнить жизнь хакеру при брутфорсе

без доступа к бд
 
 Top
Hawkmoth
Отправлено: 05 Февраля, 2012 - 17:20:24
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


Помог: 6 раз(а)




Зверь пишет:
без доступа к бд


Что значит "без доступа к БД"? Любая база по определению уязвима, я отталкиваюсь от этого.
Зачем нам вообще тогда шифровать пароли, если мы уверены в ее недоступности?

Ну хотя бы вот на эту ссылку, что ли, зайдите.

(Отредактировано автором: 05 Февраля, 2012 - 17:26:22)

 
 Top
Самогонщик
Отправлено: 05 Февраля, 2012 - 17:26:56
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


Помог: 8 раз(а)




странные вещи вы тут пишите....

Соль должна быть уникальная для каждого сайта. Уникальная соль для каждого пользователя - сомнительное удовольствие, но всё таки улучшает защиту.

Главное, чтобы соль генерировалась случайно, а не по алгоритму от пароля. Т.к. если этот алгоритм станет распространён, то автоматом пропадает всякий прок от соления.

Храните соль в явном виде, никаких проблем. Со своей задачей превратить подбор пароля в полный перебор, вместо использования радужных таблиц, она прекрасно справится.
 
 Top
Hawkmoth
Отправлено: 05 Февраля, 2012 - 17:34:25
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


Помог: 6 раз(а)




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


Самогонщик, попробую подытожить.

Если в моей БД есть юзер с паролем "123" и соль "&$bhjhkd78", хранимая в открытом виде, и кто-то нехороший получит доступ к моей базе, ему мало не покажется расшифровывать такой пароль? При том, что я, допустим, использую вполне детский алгоритм конкатенации (password.salt), и это ему известно?
 
 Top
snikers987
Отправлено: 05 Февраля, 2012 - 17:39:44
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




Вполне достаточно md5($pass.$salt); или даже md5($pass.md5($salt.$pass));
Соль сделает невозможным подбор хеша по базам, точнее возможным, но бессмысленным.
Даже если будет известна соль и алгоритм, подобрать пароль кроме как банальным перебором не возможно. Главное сделать соль нормальную, а не "ааа".
Цитата:
паролем "123" и соль

такой пароль можно и вручную подобать , даже не получая доступ к бд

(Отредактировано автором: 05 Февраля, 2012 - 17:42:07)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Hawkmoth
Отправлено: 05 Февраля, 2012 - 17:41:16
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


Помог: 6 раз(а)




snikers987 пишет:
Соль сделает невозможным подбор хеша по базам, точнее возможным, но бессмысленным.
Даже если будет известна соль и алгоритм, подобрать пароль кроме как банальным перебором не возможно. Главное сделать соль нормальную, а не "ааа".


snikers987, спасибо. Именно это я и хотел услышать.
 
 Top
Саныч Модератор
Отправлено: 05 Февраля, 2012 - 18:03:00
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




Может конечно у меня параноя, но последнее время стал использовать примерно такой алгоритм для хранения паролей:
0) безусловно засолка пароля
1) неоднократное хеширование засоленого пароля используя разные алгоритмы хеширования
2) для каждого пользователя своя соль, свое количество циклов засолки/хеширования, для каждого цикла свой кусок соли.

Вобщем вот такое я понаписал Улыбка


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
snikers987
Отправлено: 05 Февраля, 2012 - 18:24:20
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




Саныч пишет:
Может конечно у меня параноя, но последнее время стал использовать примерно такой алгоритм для хранения паролей:
0) безусловно засолка пароля
1) неоднократное хеширование засоленого пароля используя разные алгоритмы хеширования
2) для каждого пользователя своя соль, свое количество циклов засолки/хеширования, для каждого цикла свой кусок соли.

Вобщем вот такое я понаписал Улыбка


Ну можно написать программу которая будет работать час, зато пароль не подберут..
Тут смотря от чего пароль, к примеру если хранить пин-коды от БПК то не стоит расслабляться..


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Самогонщик
Отправлено: 05 Февраля, 2012 - 18:30:38
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


Помог: 8 раз(а)




Саныч, нормально. Тут главное помнить суть в двух вещах: соль! всё дело в соли, т.е. злоумышленнику нужно подоблать не просто какой то набор символов, который даст нужный хеш, а содержащие заданные символы в заданных местах (та самая соль); уникальность алгоритма, если вы выпускаете вордпресс с хитрым алгоритмом, то без соли банально составят базу паролей под этот алгоритм, т.к. есть резон.


Hawkmoth пишет:
Если в моей БД есть юзер с паролем "123" и соль "&$bhjhkd78", хранимая в открытом виде, и кто-то нехороший получит доступ к моей базе, ему мало не покажется расшифровывать такой пароль? При том, что я, допустим, использую вполне детский алгоритм конкатенации (password.salt), и это ему известно?
да
 
 Top
Саныч Модератор
Отправлено: 05 Февраля, 2012 - 18:40:02
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




Все же самый лучший вариант - вообще не хранить пароли Улыбка


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
Самогонщик
Отправлено: 05 Февраля, 2012 - 19:01:43
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


Помог: 8 раз(а)




Саныч, кстати, согласен. Но без ява-скрипт такой способ не заведётся.
 
 Top
DlTA
Отправлено: 05 Февраля, 2012 - 19:34:41
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




Саныч пишет:
Все же самый лучший вариант - вообще не хранить пароли

это имеется ввиду вообще отказаться от логирования пользователей
или что?
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB