Комментарии 25
Проверка орфографии, грамматики и пунктуации перед отправкой поста спасет от минусов. А также перечитывание вслух.
Дайджест не компрометирует пароль. Сервер сначала высылает соль, клиент ему отвечает соленым хешом от пароля, так что replay атаки не пройдут, при условии, что соль высылается разная каждый раз.
Спереть SID, конечно, можно всегда, если есть возможность слушать трафик (и нет SSL).
Спереть SID, конечно, можно всегда, если есть возможность слушать трафик (и нет SSL).
Ну так сол выслалась разная, но я то знаю старую соль и под неё хеш пароля, сперев это — будет достаточно. Вариант хранить все использованные соли — нереальный.
Никогда не использовать (или свести к ничтожной вероятность использования) соль повторно — ключевой момент подобных схем авторизации.
Хранить их все и необязательно, можно использовать какой-нибудь автоинкремент.
Хранить их все и необязательно, можно использовать какой-нибудь автоинкремент.
как мне защитится от того что бы украв соль + хеш от соли хацкер не мог воспользоваться? я не вижу другого момента кроме как хранить использованые соли. Или я что-то не понимаю?
Соль-то контролируете Вы, сделайте так, чтобы она не повторялась (или повторение в этой жизни было бы невероятно) — храните в базе/файле последнее значение и увеличивайте на 1 каждый раз, или используйте время с микросекундами, или длинный random number.
ну так вопрос в том что я выслал клиенту соль=5 и он хешнул пароль с ней и выслал мне обратно H(5) и 5, злоумышленик перехватил H(5) и 5 и посылает их мне — как мне понять что это злоумышленик послал, а не клиент? Клиентов много пока я послал соль = 5 и получал хэш я еще послал и 6 и 7 и… 150 до клиентов. Как мне заодно клиента не принять за хацкера? То есть хранить пока соль мне не вернулась, а как только вернулась убить? То есть почти вариант — хранить всё но удалять заюзаные?
То есть хранить пока соль мне не вернулась, а как только вернулась убить?
Конечно. Привяжите ее к чему сможете (IP, логин etc), задайте время жизни. Digest не защитит от MITM (man-in-the-middle), если Вы об этом.
Ну то есть дигест лучше только тем, что пароль не шлётся открытым? А минусы — как невозможность нормального logout и невозможность нормальной формы — имеет?
Типа того.
Аналог digest можно и на AJAX сделать, а дальше таскать обычный SID в куках.
Проще, конечно, завернуть в SSL и забыть.
Аналог digest можно и на AJAX сделать, а дальше таскать обычный SID в куках.
Проще, конечно, завернуть в SSL и забыть.
Не, я про то, что на жаваскрипте можно написать клиентскую часть, которая будет шифровать соль с паролем. Где-то тут проскакивал тред, автор которого доказывал, что ссл небезопасен и перехватывается троянами и предлагал шифровать жаваскриптом в частности.
то есть если я такой умный хацкер что могу снифить — неужто я не смогу взять со страницы JS и понять как он шифрует? :) Ну прикольно. Да даже если во флеш завернуть, то флеш декомпильнуть можно :), но уже вопрос — будет ли взлом стоить потраченных на него денег.
В треде, про который я упоминал, есть доля здравого смысла: я могу допустить, что есть троян, который встраивается в нужный API и шпионит за SSL трафиком в поисках паролей, номеров кредиток и прочих полезностей. Мне сложнее представить, что написан троян, который встраивается в Javascript движок конкретного браузера и выковыривает что-то из кода, написанного под конкретные сайты.
Куку просто делайте с уникальным ID + REMOTE_ADDR. Даже если во время сессии юзера перехватстя куку — использовать её не с IP пользователя не выйдет. Ещё вариант — держать в сессии IP юзера и если он не совпадает — logout с уничтожением сессии, заодно и прологируйте что такая проблема, возможно где-то что-то прошляпили.
Вы реально думаете IP подделать сложно?
Если Ваш клиент со злоумышленником за одним NATом сидят, то и подделывать ничего не надо. Если они из разных подсетей с разными внешними IP, то это нереальный геморрой практически, ибо тот, кто подделывает IP просто не получит посланные ему пакеты.
Проблема с динамическими ИП… Чуваку каждый раз логинеться придётся. Ведь возможно представить ситуацию, когда не выключая броузера я получил новый ИП… Сложно, но можно.
в смысле REMOTE_ADDR?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Digest authentication vs POST authentication