[Paran0ik]
16.07.2008, 09:17
пользователь регистрируется, вводит пасс, с хешем, перед записью его в БД, делается небольшое изменение - один из его символов, выбранный случайным образом, мы заменяем случайным
т.е. для мд5 хеша от пароля 123:
202cb962ac59075b964b07152d234b70
в базу пойдет
202cb962ac5907bb964b07152d234b70, или
202c7962ac59075b964b07152d234b70, или
202cb962ac59075b964b01152d234b70 и т.д.
когда же пользователь будет авторизовываться, будет происходить следующая проверка - из введенного пользователем пароля получается мд5 хеш, затем посимвольно он сравнивается с хешем из БД, если получаем совпадение 31 символа из 32, то авторизация признается успешной...
если же подобный хеш попадет в чьито руки, то чтобы сбрутить его, необходимо будет или перебрать в 2^128 раза больше хешей или написать модуль для ПассвордПро, который будет проводить подобную, как и при авторизации, проверку, однако мы получим заметное замедление брута во-первых из-за дополнительных операций (сравнения хешей посимвольно) и во-вторых уменьшение скорости пропорционально количеству хешей (по аналогии для хешей с солью - для каждого хеша необходимы новые вычисления), а также невозможность прогнать хеш по радужным табличкам...
т.е. для мд5 хеша от пароля 123:
202cb962ac59075b964b07152d234b70
в базу пойдет
202cb962ac5907bb964b07152d234b70, или
202c7962ac59075b964b07152d234b70, или
202cb962ac59075b964b01152d234b70 и т.д.
когда же пользователь будет авторизовываться, будет происходить следующая проверка - из введенного пользователем пароля получается мд5 хеш, затем посимвольно он сравнивается с хешем из БД, если получаем совпадение 31 символа из 32, то авторизация признается успешной...
если же подобный хеш попадет в чьито руки, то чтобы сбрутить его, необходимо будет или перебрать в 2^128 раза больше хешей или написать модуль для ПассвордПро, который будет проводить подобную, как и при авторизации, проверку, однако мы получим заметное замедление брута во-первых из-за дополнительных операций (сравнения хешей посимвольно) и во-вторых уменьшение скорости пропорционально количеству хешей (по аналогии для хешей с солью - для каждого хеша необходимы новые вычисления), а также невозможность прогнать хеш по радужным табличкам...