![]() |
У "человечного" паролясвойства какие? (а) Держать в голове. (б) Вводить с клавиатуры. Ради этих свойств мы жертвуем длиной и разнообразием символов. А та секретная последовательность, которая предназначена для хранения в клиентской программе, вовсе не должна этим жертвовать. Разделяемый ключдолжен: (1) сразу иметь максимальную длину, (2) состоять из произвольных байтов и (3) не быть единственным для аккаунта.
Ныне большинство ресурсов используют именно пароль, то есть неявно подразумевают, что пользователь будет держать его в голове, а вводить руками при каждой авторизации. Ёмкость памяти хомо сапиенса и некоторые его ментальные свойства никак не позволяют этого делать. Два-три важных пароля самые добросовестные из нас действительно помнят. Остальные сто сорок девять – извини-и-ите. А если так, от большинства паролейследует отказаться.
Следует заменить их на машинный разделяемый ключтакой длины, чтоб исключался его подбор и обращение хеша. И у каждого пользователя может быть несколько ключей от одного аккаунта – по одному для каждого компьютера, с которого он соединяется. В случае компрометации каждый из них может быть сменён независимо от других. Держать свои ключи (бывшие пароли) в браузере – вовсе не западло; для большинства ресурсов риск при этом более чем приемлемый. Только давайте делать это более логично.