Вопрос говорит сам за себя. Мы разрабатываем систему, в которой безопасность очень важна. Одна из идей, которую кто-то предложил, заключалась в том, чтобы заставить пользователей менять пароли каждые 3 месяца. Я считаю, что это более безопасно, поскольку пароль часто меняется, но в то же время заставляет пользователей помнить постоянно меняющиеся пароли и повышает вероятность того, что они просто запишут его где-нибудь, чтобы не забыть.
Аналогично, действительно ли хорошо заставлять пользователей использовать супер трудноугадываемый пароль со всякими символами «%&%» и прописными/строчными буквами. Я знаю, что придумывать такой пароль и запоминать его довольно хлопотно.
Но мы также не хотим, чтобы кто-то использовал 12345.
Итак. Есть ли какие-нибудь документы на эту тему? Я говорю о сайте, созданном на PHP.
Ответ 1
Я думаю, что могу быть в меньшинстве (основываясь на своем ограниченном опыте общения с ИТ-отделами в школе и на работе), но я считаю, что обязательная политика смены паролей по времени в лучшем случае бесполезна, а в худшем – вредна. Люди, как правило, очень плохо выбирают хорошие пароли и хранят их в секрете. Политика истечения срока действия пароля призвана смягчить эту проблему, ограничивая время, в течение которого один пароль может быть взломан/социально сконструирован/похищен; однако на практике она этого не достигает, в основном потому, что заставляет пользователей постоянно заново узнавать свой пароль. Затрудняя запоминание паролей, вы заставляете пользователей выбирать более слабые пароли и/или записывать их где-нибудь, где их могут найти посторонние люди.
Более того, если заставить пользователя регулярно менять пароль, он будет выбирать пароли, которые соответствуют очень узнаваемому шаблону, например, [базовая строка][цифра]. Допустим, пользователь хочет использовать в качестве пароля кличку своего кота. Он может начать с пароля fluffy, затем изменить его на fluffy1, fluffy2, fluffy3 и так далее. В этом случае политика не очень помогает безопасности; даже если пользователь выберет более надежную базовую строку, и даже если он надежно запомнит свой пароль, единственный суффиксный символ, который меняется каждые несколько месяцев, очень мало помогает смягчить взлом или атаки социальной инженерии.
Ответ 2
Мое личное мнение заключается в том, что это излишне и даже контрпродуктивно.
Вкратце, это сводится к двум причинам:
Принуждение пользователя постоянно менять пароль приводит к появлению плохих паролей. Не будет недостатка в доказательствах этого, но логично, что, если я вынужден запоминать что-то новое каждые x дней, я сделаю так, чтобы эти вещи было легко запомнить, и, вероятно, они будут связаны друг с другом. Пользователи с гораздо большей вероятностью выберут «угадываемые» пароли типа «Jan2010» или «Password05», если они знают, что их придется скоро менять. Строгая политика в отношении символов, скорее всего, приведет лишь к добавлению восклицательного знака или полного написания имени, а не аббревиатуры. Существует большая разница между технически сложным паролем и паролем, который невозможно угадать.
Принуждение к регулярной смене паролей не предотвращает атаки, а лишь снижает риск (и то не намного). Подумайте, если ваш пароль будет угадан или каким-то образом обнаружен, сколько времени потребуется злоумышленнику, чтобы воспользоваться этой информацией? Поставьте себя на место злоумышленника. Вы только что узнали пароль. Неужели вы не войдете в систему и не извлечете все возможные сведения сразу же, на случай, если это кто-то узнает? Через 30 дней у вас уже будет все, что вы хотите.
Мои рекомендации:
Установите чрезвычайно строгую политику паролей (например, 15 символов с верхним, нижним, цифровым и специальными знаками, без английских слов > 3 символов).
Никогда не заставляйте пользователя менять пароль. Если они должны написать пароль на бумажке и хранить ее в бумажнике, это вполне нормально. Люди хорошо умеют хранить листки бумаги, но не так хорошо запоминают случайные строки символов.
Ответ 3
Если этого требует политика безопасности, вы должны заставлять своих пользователей менять пароль каждые n дней. Я работаю в государственном агентстве, и это требование, навязанное офисом государственного аудитора. Я ничего не могу с этим поделать, поэтому мне приходится принудительно менять пароли. Если вы не обязаны принудительно менять пароли, не принуждайте к этому. Убедитесь, что пароли, которые все же устанавливаются, отвечают определенным минимальным требованиям сложности. Длина превосходит сложность для большинства систем паролей, поэтому, на мой взгляд, лучше всего использовать переменные стандарты.
Например:
Пароль не должен состоять менее чем из 10 символов.
Для паролей от 10 до 25 символов потребуется как минимум 3 набора символов.
Пароли от 25 до 40 символов требуют не менее 2 наборов символов.
Пароли длиной более 40 символов могут использовать один набор символов.
Встроенные схемы сложности для таких вещей, как Active Directory, не поддерживают подобную многоуровневую систему. Если вы создадите свою собственную среду смены паролей, вы сможете сделать что-то подобное. Поскольку каждое использование клавиши shift увеличивает вероятность данного события, длинные пароли с несколькими наборами символов имеют гораздо большую вероятность событий неудачного входа в систему, особенно на этапе обучения. Если у вас есть система блокировки учетных записей, это может стать серьезной проблемой. Для человека, который использует 3-ю строку своего любимого стихотворения (63 символа!) в качестве ключевой фразы, отсутствие необходимости вводить ее делает вход быстрым и эффективным.
Если технология или среда риска существенно изменятся и ваши пароли станут не такими сложными, как должны быть, предусмотрите возможность истечения срока действия паролей в течение определенного периода времени. Люди будут ворчать по поводу необходимости, особенно если вы никогда раньше не меняли пароли, но это поможет вам поддерживать уровень безопасности.
Ответ 4
Трудноугадываемые пароли – это хорошая практика. Обеспечение таких уровней сложности, при которых пользователи забывают свои пароли или вынуждены их записывать, – это плохо, поскольку при этом полностью теряется вся безопасность, достигнутая за счет сложности. В идеальном мире (в котором мы, к сожалению, не живем) должен существовать баланс между сложностью и удобством использования. Конечно, разные люди будут видеть эту точку равновесия в разных местах.
Логика регулярной смены паролей через х дней мне немного непонятна. Обычно я слышу, что это делается для того, чтобы ограничить полезность украденного пароля, на что я отвечаю, что любой реальный ущерб почти наверняка будет нанесен в течение первых нескольких часов. Например, Фред «знакомится» с паролем Мэри. Если это не происходит почти в то же время, когда Мэри меняет пароль, то какая разница, будет ли он изменен завтра или в следующем месяце? Действительно ли вероятно, что Фред подождет еще неделю или две, прежде чем воспользоваться паролем (если предположить, что так и было задумано с самого начала)? Очевидно, что смена паролей при наличии каких-либо причин или подозрений, что это может быть необходимо, – это совсем другое дело.
Security