Периодическая сменяемость паролей
Даже при наличии "изюминок" схема аутентификации пользователей путем проверки их паролей имеет один очень серьезный недостаток. Ведь не исключено, что линия связи, соединяющая персональный компьютер Антона с сервером информационно-коммерческой службы, проходит по территориям 33-х стран, законодательство которых по-разному трактует права своих и иностранных граждан на сохранение в тайне их личной переписки. И поэтому узнать пароль Антона, в принципе, может любой, кто сумеет подключиться к этой линии связи или обратиться в память сервера и узнать пароль. прежде чем для него будет вычислено соответствующее хэш-значение. Чтобы уменьшить ущерб от компрометации пароля, его следует периодически менять. Делается это следующим образом.
Антон генерирует случайное число R и пересылает его серверу, который вычисляет, исходя из этого числа и однонаправленной функции f значения x 1 = f (R), x 2 =f (f (R)), x 3 = f (f (f(R))) и т.д. 101 раз. Первые 100 вычисленных значений x 1 , х 2 , . . , x 100 передаются Антону в качестве списка паролей, который он должен хранить в тайне. A x 101 запоминается на сервере.
Теперь, когда Антон захочет зарегистрироваться для работы на сервере, ему достаточно ввести свое имя и число х 100 . Сервер вычислит f(x 100 ) и сравнит его с х 101 . В случае совпадения Антону будет разрешен доступ к серверу, который затем заменит х 101 на х 100 . А Антон вычеркнет х 101 из своего списка паролей.
В следующий раз, когда Антон снова захочет получить доступ к серверу, он найдет в списке паролей следующее по порядку не зачеркнутое значение х j . Сервер вычислит f(x j ) и сравнит с запомненным X j+ 1 .
Злоумышленник Зиновий, взломавший сервер, все равно не сможет узнать очередной пароль Антона x j по хранимому на сервере значению x j+l, поскольку функция f является однонаправленной. По той же самой причине. даже если Зиновий перехватит x j , это позволит ему зарегистрироваться под именем Антона всего лишь один раз. А значения x 1 , x 2 , ... , х j -1 так и останутся для Зиновия тайной за семью печатями при условии, что Антон достаточно ответственно относится к хранению списка паролей, полученного им с сервера.