Welcome! Log In Create A New Profile

Advanced

Re: Авторизация

Pavel V.
January 23, 2014 05:30AM
Здравствуйте, Михаил.

Вы писали 23 января 2014 г., 15:35:37:

> Здравствуйте, Pavel.

>>>> Всё просто. Суёшь в авторизационную куку логин пользователя и хэш.
>>>> А на стороне сервера считаешь хэш от логина, пароля, подсети и
>>>> salt и смотришь, равен ли он тому, что пришёл в куках.

>>> Я не специалист по криптографии, но насколько понимаю просто хэша
>>> тут недостаточно, нужен HMAC.
>>> В инете на эту тему за 5 минут нашел только такую статью:
>>> http://rdist.root.org/2009/10/29/stop-using-unsafe-keyed-hashes-use-hmac/

>>> Но встречал и более наглядные объяснения, почему нельзя в куке для
>>> авторизации хранить просто хэш и нужен именно HMAC.

>> Кто-нибудь может кинуть ссылку на более наглядные объяснения с более
>> человекопонятной схемой, как это ломается? Либо может быть кто-то
>> разъяснит "на пальцах", как злоумышленник, имея одну или несколько
>> пар "userId + keyedhash" сможет сгенерировать пару "admin_userId +
>> valid_keyedhash"?

> Как ломается, сам пока не разобрался. Но атака ведётся на поиск
> константной строки, которая конкатенируется к данным (в Вашем случае к
> userId ). Когда она или её замена найдены, то берётся админский
> userID, найденная строка и получается подпись для админа. Далее она
> суётся в куку вместе с id админа и у юзера права админа.

Хорошо. Т.е. если на сервере проверка при этом делается по схеме

- Получили из куки userId
- Получили некий зависимый от userId идентификатор, например номер телефона
- вычислили HashFunction( userId, StaticOrRollingKey, GetSomeUserData(userId))
- сравнили хеш из куки и и вычисленный

то такая схема "более безопасна" и относительно стойка к вышеприведенной атаке?

Но из-за наличия функции GetSomeUserData(), обращающейся к некоему центральному хранилищу,
хеширование можно заменить на "rand()" и с тем же успехом начать хранить в хранилище
непосредственно значение этой авторизационной куки.
Правда получится разница из-за наличия некоторого объема записи в хранилище сессий.





--
С уважением,
Pavel mailto:pavel2000@ngs.ru

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Авторизация

oklas January 20, 2014 01:48PM

Re: Авторизация

Михаил Монашёв January 20, 2014 03:42PM

Re: Авторизация

Anton Yuzhaninov January 20, 2014 03:56PM

Re: Авторизация

Daniel Podolsky January 20, 2014 04:52PM

Re: Авторизация

oklas January 21, 2014 04:53AM

Re: Авторизация

Daniel Podolsky January 21, 2014 05:30AM

Re: Авторизация

oklas January 21, 2014 05:56AM

Re[2]: Авторизация

Михаил Монашёв January 21, 2014 12:52PM

Re[2]: Авторизация

Михаил Монашёв January 22, 2014 03:42AM

Re: Re[2]: Авторизация

Daniel Podolsky January 22, 2014 04:06AM

Re[4]: Авторизация

Михаил Монашёв January 22, 2014 04:22AM

Re: Re[4]: Авторизация

Daniel Podolsky January 22, 2014 04:32AM

Re[6]: Авторизация

Михаил Монашёв January 22, 2014 04:40AM

Re: Re[6]: Авторизация

Daniel Podolsky January 22, 2014 08:26AM

Re: Авторизация

Pavel V. January 23, 2014 03:22AM

Re[2]: Авторизация

Михаил Монашёв January 23, 2014 03:36AM

Re: Авторизация

Pavel V. January 23, 2014 05:30AM

Re: Авторизация

Daniel Podolsky January 23, 2014 01:42PM

Re: Авторизация

Pavel V. January 24, 2014 03:10AM

Re[2]: Авторизация

Михаил Монашёв January 24, 2014 03:38AM

Re: Авторизация

Pavel V. January 24, 2014 05:20AM

Re: Авторизация

Maxim Dounin January 24, 2014 06:52AM

Re[2]: Авторизация

Михаил Монашёв January 24, 2014 07:50AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 230
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready