LINUX.ORG.RU

Слать при регистрации\авторизации в браузере хэш пароля это плохая мысль?

 , ,


0

1

Форма отсылается по SSL. И всетаки мне ненравится идея отсылать на сервер пароль в plaintext.
С отправкой хэша тоже вижу проблемы, в первую очередь изза отсутствия встроенного в браузеры и доступного из js (доверенного) механизма хэширования.
с другой стороны не попахивает ли это клинической паранойей - ведь раз у нас уже шифрованный канал, то зачем эти пляски.

вообщем хочу услышать аргументированные мнения, спасибо

https вообще не безопасен, доверять левым дядям безопасность...

Int0l ★★
()

И всетаки мне ненравится идея отсылать на сервер пароль в plaintext.

Начнем с того что у вас, похоже, пароли и в базе плейнтекстом лежат, это так?

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

нет естественно, в базе только хэши (перед релизом планируется перевести на соленые хэши)

genryRar ★★
() автор топика

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

anonymous
()
Ответ на: комментарий от anonymous

не ну я планировал хэш, который пришел с клиента солить перед сравнением. а в базе уже соленые (будут). такчто это не тоже самое.
но вот есть ли в этом смысл? мне начинает казаться что я лезу в **лупу

genryRar ★★
() автор топика
Ответ на: комментарий от anonymous

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

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

не ну я планировал хэш, который пришел с клиента солить перед сравнением. а в базе уже соленые (будут).

но вот есть ли в этом смысл?

Если клиент отправляет хэш, который вы солите и сравниваете с БД, то это то же самое, что и пароль плейнтекстом.

Вам нужно делать так - в БД лежит хэш с солью. На стороне пользователя форма логина также генерирует хэш с солью. Только сначала сервер передает какой-то «сессионный» хэш (то есть он разный всегда), пользователь добавляет к нему хэш своего пароля с солью и берет хэш полученной строки, и потом его отправляет на сервер. На сервере сравниваете пришедшие данные по тому же алгоритму (соленый хэш пароля у вас в базе, сессионный вы знаете), ну и в ответ возвращаете какой-нибудь сессионный токен. (Ехал хэш через хэш, ага). Таким образом перехватив данные от клиента не получится повторно их использовать. Плюс для сессионных данных добавляете проверку по айпишнику, юзерагенту или чего там еще придумаете, чтоб минимизировать возможность угона сессии.

Это все, конечно, не панацея, и если сильно загнаться с mitm можно и это победить, но имхо если вы не делаете так - шлите тогда тупо плейнтекстом пароль, не тратьте такты на хэширование. Хотите чтоб было секьюрно - заводите еще и второй фактор.

И то что вы используете SSL это вообще само собой разумеется, это необходимо вообще во всех случаях без исключения.

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

И то что вы используете SSL это вообще само собой разумеется, это необходимо вообще во всех случаях без исключения.

поддержу. это нужно даже в том случае, если никакой авторизации на сайте вообще нет

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

поддержу. это нужно даже в том случае, если никакой авторизации на сайте вообще нет

А зачем? Вот зачем https на сайтах новостей, на anekdot.ru, даже на linux.org.ru без авторизации?

monk ★★★★★
()

Отправляешь с сервака рандомный запрос, шифруешь его в js ключом клиента, отправляешь обратно. Проверяешь.

crutch_master ★★★★★
()

Прекрати страдать хернёй и шли текстом.

Если у тебя кто-нибудь упрёт базу данных или хакнет сервер — тебе это никак не поможет.
Если кто-нибудь инжектирует свой яваскрипт в твоего клиента — тебе это тоже никак не поможет.
Если кто-нибудь перехватит соединение — тебе это тоже никак не поможет, ибо он просто инжектирует свой яваскрипт и перехватит всё что надо ещё в форме до хеширования.

Мораль сей басни: не надо изобретать велосипед, если от него никакого толку даже в теории быть не может.

Goury ★★★★★
()

за неуловимого Джо знаешь?

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