LINUX.ORG.RU

Пара вопросов по безопасному хранению и передаче паролей

 , хеширование


0

1

Раньше не занимался многопользовательскими приложениями и редко приходилось работать с базами, но тут пришлось заняться таким проектом. Есть такая система: по средствам ssl реализовано соединение клиента с сервером. В базе данных сервера хранятся хеши паролей и соль(15 символов) для каждого пользователя. Пароль передается от сервера в незашифрованном виде и на стороне сервера к нему прибавляется соль берется хеш-сумма и сравнивается с той которая лежит в базе.
Вопросы:
1) Насколько жизнеспособна(безопасна) данная система?
2) Как в базе лучше хранить хеши и соль?
(Если, что непонятно, могу разъяснить, пишу уставший)
Спасибо за внимание!

★★★★★

Последнее исправление: deterok (всего исправлений: 1)

1) безопасна, если веришь в ssl и физическую безопасность сервера. если нет - то передавай от клиента только хеш.
2) строки для хешей, инт для соли.

val-amart ★★★★★
()

Да вполне нормально. Кэп подсказывает, что соль должна быть совершенно случайной.

invy ★★★★★
()
Ответ на: комментарий от val-amart

val-amart

1) безопасна, если веришь в ssl и физическую безопасность сервера. если нет - то передавай от клиента только хеш.

и что это даст? Если злоумышленник сольёт базу с хешами, и если именно эти хеши передаются, то этот злоумышленник сможет передать нужный хеш на сервер, и получить доступ к любому аккаунту. Однако, если передаётся пароль, то злоумышленнику будет сложнее - ему потребуется подобрать пароль зная хеш, а это непросто. Что касается перехвата, то злоумышленнику всё равно что перехватывать, ему вполне пойдёт перехваченный хеш из твоей схемы - пароль он не узнает, но пароль и не нужен.

val-amart

2) строки для хешей, инт для соли.

соль тоже можно строкой.

drBatty ★★
()

deterok

Пароль передается от сервера в незашифрованном виде и на стороне сервера к нему прибавляется соль берется хеш-сумма и сравнивается с той которая лежит в базе.
Вопросы:
1) Насколько жизнеспособна(безопасна) данная система?

а есть другие схемы? можно ссылку?

drBatty ★★
()
Ответ на: комментарий от deterok

ну других вроде и нету... Единственное, что могу заметить, так это то, что для соли обычно берут меньше 15и символов. Для надёжности возможно следует использовать соль, в которой есть русские и/или какие-то другие не латинские символы. Соль помогает от быстрого подбора пароля по радужной таблице, а эти таблицы обычно рассчитаны только на латиницу. Ну можно ещё применить двойное md5, что-бы снизить скорость подбора. Хотя это спорный вопрос. Возможно и применение sha вместо md5, хотя как ломать md5 тоже пока никому неизвестно.

drBatty ★★
()

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

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

ae1234 ★★
()

по средствам ssl

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

Harald ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.