Срок действия токенов сброса пароля

Когда пользователи забывают свои пароли, они могут сбросить их (на большинстве веб-сайтов). Они делают это, получая электронное письмо с токеном сброса, а затем используя его для установки нового пароля. Срок действия этого токена обычно истекает через некоторое время для защиты от угадывания.

Допустим, токен 256-битный. Брутфорс с большим количеством суперкомпьютеров по-прежнему занимает (очень приблизительно) 10 ^ 50 лет. т.е. это невозможно сделать с текущими знаниями, определенно не в течение 1 часа (обычное время истечения). Теперь вопрос: почему мы вообще защищаемся от угадывания?


person Rien Heuver    schedule 19.10.2017    source источник
comment
Предполагая, что вы имели в виду 256 байт. Также Вы ни разу не упомянули метод шифрования. Даже с огромным ключом, если у вас плохое шифрование, его легко взломать.   -  person Trickycm    schedule 19.10.2017
comment
Нет, я имел в виду бит, просто число, без ключа шифрования. В основном это просто угадывание 256-битного числа.   -  person Rien Heuver    schedule 19.10.2017
comment
Ах, конечно, вы долгое время.   -  person Trickycm    schedule 19.10.2017


Ответы (1)


Угадывание — это не совсем то, от чего вы его защищаете. Как вы поняли, об этом позаботится только размер энтропии.

Срок действия служит в первую очередь для предотвращения возможного несанкционированного доступа к этому токену, поскольку существует множество способов его утечки из сообщения электронной почты. Точно так же, почему вы не должны отправлять пароль пользователя на его адрес электронной почты.
Кто-то другой может иметь временный доступ к учетной записи электронной почты, читать вместе с владельцем учетной записи или стоять за ним и т. д. Все виды возможны махинации.

Кроме того, никому не нужна таблица базы данных, заполненная старыми, но якобы временными одноразовыми токенами — каждый разработчик любит очищать данные от мусора.

person Narf    schedule 19.10.2017
comment
Вы действительно не можете запретить кому-то еще доступ к учетной записи электронной почты, потому что этот человек может просто запросить новый токен в то время, я бы сказал. Защиты от того, кто заглядывает вам через плечо, можно избежать двумя вещами. Во-первых, токен представляет собой 256-битную случайность, которую нелегко запомнить. Во-вторых, вы можете скрыть его в кнопке (html-письмо). (Я думаю, очистка вашей базы данных — хороший аргумент, но не столько связанный с безопасностью, сколько то, что может, например, подождать 48 часов.) - person Rien Heuver; 19.10.2017
comment
Конечно, вы можете сделать много мелких косметических вещей, чтобы скрыть токен, но никто не гарантирует это, и это не совсем важно - процесс должен быть безопасным по дизайну, а не зависеть от какого-то внешнего колдовства. И да, конечно, если кто-то имеет постоянный доступ к учетной записи, он может запросить новый ключ, но ключевые слова здесь — утечка и временный. - person Narf; 19.10.2017