Исходное положение: Сделайте процедуру замены пароля легкой и убедите пользователей менять пароли.
Угроза: Прямой подбор пароля, похищение аккаунта.
Многие специалисты по безопасности выступают против использования «защиты через неизвестность» (практика сохранения чего-либо в скрытом виде) в качестве механизма обеспечения закрытости системы. Но пароли и опознавательные сертификаты - центральное звено многих защитных систем - и есть не что иное, как защита через неизвестность. Эффективность пароля полностью зависит от наших ожиданий, что никто не сможет вычислить или угадать пароль.
При достаточном количестве времени злоумышленник может раскрыть пароль, либо взломав уязвимые места системы, либо применив метод прямого подбора пароля. Наша единственная защита - регулярная смена пароля. Именно поэтому неотъемлемой характеристикой любого web-приложения должна быть возможность менять пароли.
Можно привести пример деятельности одной компании, которая пользуется финансовой торговой программой. Это приложение запрашивало регистрацию пользователей каждый раз при осуществлении продажи. Так как большинство брокеров выполняли операцию по продажи много раз за день, они просто сворачивали обозреватель Интернет на своих экранах и оставались зарегистрированными. Брокеры были недовольны тем, что им постоянно приходится проходить аутентификацию из-за лимита времени сеанса, поэтому разработчики сняли все ограничения времени сеанса с сервера. В конце концов, брокеры просто оставляли свои компьютеры включенными, а большинство из них даже не выходило из приложения обозревателя Интернет. Иногда случалось так, что некоторые пользователи всю неделю пользовались одним-единственным обозревателем Интернет сеанса связи.
Сохранение сеанса связи открытым представляет собой большой риск, но еще большим риском было то, как приложение управляло изменением паролей. Для установки нового пароля люди просматривают страницу предпочтений, нажимают на ссылку замены пароля и затем вводят новый пароль. Но представьте себе следующий сценарий: другой брокер ждет, пока «жертва» уходит на обед, и затем устанавливает новый пароль, используя открытый сеанс и не зная предыдущего пароля. Сеанс не прерывается на протяжении следующей недели, но другой брокер имеет полный доступ к аккаунту с новым паролем. И пока «жертву» не принудили заново войти в сеть, она не в курсе, что пароль изменился.
Если пользователи не меняют свои пароли регулярно, они сталкиваются с возрастающей вероятностью того, что их пароли будут раскрыты и, следовательно, кто-то получит доступ к их аккаунтам. Чем труднее пользователям менять пароли, тем меньше они хотят это делать, особенно если никто не требует от них регулярного изменения пароля. Используя такие приемы, как ввод предыдущего пароля, окончание срока действия сеанса связи и оповещение пользователя об изменениях, злоумышленник может пользоваться аккаунтом на протяжении довольно длительного времени, не выдав себя.
Разработайте систему таким образом, чтобы замена пароля представляла собой интуитивно простой процесс. Избегайте крайних мер, отбивающих желание проводить замену пароля - установка чрезмерно жестких, сложных требований. До и после замены пароля всегда запрашивайте аутентификацию пользователя.
После того, как пользователь войдет в систему, предоставьте ему быструю ссылку на наиболее общие задания по управлению аккаунтами, включая и изменение пароля. Если ваши методы безопасности не предусматривают самостоятельную замену пользователем устаревшего пароля, отправьте ему простое предупреждение с прикрепленной ссылкой.
Страница изменения пароля должна состоять из трех бланков для текста: один для ввода предыдущего пароля, второй для ввода нового пароля и ещё один - для подтверждения нового пароля.
Чтобы предотвратить атаки прямого подбора пароля, сделайте страницу замены пароля доступной только для активных сеансов связи аутентифицированных пользователей.
Способы защиты
- Всегда разрешайте пользователям самим менять пароли.
- Сделайте процедуру замены паролей простой и понятной для пользователей.
- Напоминайте пользователям о необходимости регулярно менять пароли.
- Требуйте старый пароль при замене его на новый.
- Запрашивайте новый пароль дважды для подтверждения правильности написания.
- Уточняйте легальность изменения состояния счета через электронную почту или другие средства связи.
- Заканчивайте все активные сеансы связи и требуйте опознавания после изменения пароля.