Как добавление идентификатора серии помогает в этой реализации постоянного входа в систему?

Исходная реализация входа в систему «запомнить меня»: http://fishbowl.pastiche.org/2004/01/19/persistent_login_cookie_best_practice/

Дополнение: http://jaspan.com/improved_persistent_login_cookie_best_practice.

Оригинальная реализация Миллером постоянной функции входа в систему «Запомнить меня» достаточно проста для меня, чтобы понять - никаких проблем.

Что меня озадачивает, так это то, как помогает добавление дополнительного «идентификатора серии» в улучшенной версии, поскольку, если файл cookie «запомнить меня» украден, злоумышленник просто представляет этот файл cookie сайту и может использовать его до тех пор, пока первоначальный пользователь пытается использовать свой собственный файл cookie, и в этот момент, поскольку учетные данные не совпадают, данные удаляются из базы данных, а пользователь и злоумышленник «выходят из системы».

Однако до тех пор, пока этот первоначальный пользователь не попытается использовать свой файл cookie, не может ли злоумышленник просто использовать украденные учетные данные?


person Richard    schedule 23.07.2015    source источник
comment
Неужели ни у кого нет информации? :-(   -  person Richard    schedule 26.07.2015


Ответы (1)


Если я правильно понял, проблема с реализацией Миллера согласно Jaspan заключается в том, что жертва не знает, что ее файл cookie был украден. Цель состоит в том, чтобы отобразить сообщение пользователю о том, что он стал жертвой захвата сеанса.

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

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

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

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

person Jyo de Lys    schedule 30.07.2015
comment
Другая (даже более важная) цель — избежать немедленного выхода пользователя из системы при обнаружении недействительного файла cookie. Если бы у него не было идентификатора серии пользователей, я мог бы легко запретить кому-либо использовать систему, если бы знал его идентификатор пользователя. - person Jan B.; 17.09.2016