Есть ли правила истечения срока действия пароля, снижающие безопасность системы?

Эта проблема

У меня регулярно возникают дебаты с моим техническим директором, который обычно начинается примерно так...

CTO: My password expired, that should never happen. 
Me : It's a security risk to never expire passwords. 
CTO: It's a security risk to force passwords to be reset because users have bad habits. 
Me : Yes but the security is in the user not the system, enforcing password expiry ensures the system is secure in the event of an unknown breach of the userbase.

Это поднимает интересный вопрос о том, что ни один из нас, в первую очередь, не являющийся системным администратором, но являющийся стороной, которой мы должны применить политику в этом отношении, не совсем согласен с тем, каким должен быть правильный ответ.

Мое положение

Система становится более безопасной, если вы заставляете всех пользователей менять свои пароли в течение X времени, в течение которого X вычисляется путем определения силы алгоритма, используемого для защиты пароля, и приблизительного времени взлома (с помощью грубой силы) необработанного значения обратно в оригинальный пароль.

Постоянный технический директор

Акт принуждения пользователей к изменению своих паролей все время приводит к шаблонам / ****123 "подобным" шаблонам с течением времени, или пользователи записывают пароли, что означает, что "плохая привычка" пользователей представляет для системы больший риск, чем данные. быть скомпрометированным более техническим способом (например, из-за грубого принуждения).

Так что я хотел бы знать

Есть ли какой-то способ, которым я могу доказать погоду или нет, мы должны применять политику сброса пароля на основе лучших отраслевых практик?

ИЛИ ЖЕ

Один из нас просто неправ?

4 ответа

Ваш технический директор более прав, но это более сложный вопрос. NIST ( https://csrc.nist.gov/), вероятно, является справочником "Лучшие отраслевые практики".

Когда дело доходит до длины паролей, а не сложности или частых изменений, это путь. ( https://nakedsecurity.sophos.com/2016/08/18/nists-new-password-rules-what-you-need-to-know/) Они предлагают фразы или предложения, а не одно слово.

Вы описываете хеширование паролей перед их сохранением, что является логически лучшей альтернативой, чем простой текст. Проблема состоит в том, что в системах с несколькими графическими процессорами можно вычислить и проверить десятки или сотни хешей в секунду.

Ссылки ниже обсуждают изменения. Я бы посоветовал обратить особое внимание на использование паролей перед их хэшированием.

https://nakedsecurity.sophos.com/2016/08/18/nists-new-password-rules-what-you-need-to-know/

https://www.passwordping.com/surprising-new-password-guidelines-nist/

https://softwareengineering.stackexchange.com/questions/216998/updating-password-hashing-without-forcing-a-new-password-for-existing-users

Да, это увеличивает риски безопасности, если вы не заставляете пароли истекать.

Как сказал ваш технический директор, поскольку у нас есть вредные привычки, пароли рано или поздно утекут, например, введите пароль в поле ввода пользователя, оставьте его незашифрованным в каком-либо файле конфигурации приложения и т. Д.

Принуждение пользователей к смене паролей усиливает безопасность с точки зрения доступности: утечка пароля, срок действия которого истекает через 15 дней, заставит злоумышленника воспользоваться им в течение следующих 2 недель, тогда как постоянный пароль оставит дверь открытой для внешней опасности.

Если вы видите это и с точки зрения злоумышленника, то довольно неприятно знать, что вы сможете прослушать пароль после нескольких недель кражи данных только для того, чтобы увидеть, как на полпути обрабатываются все эти пароли, и вам нужно начинать заново.

Иногда лучший способ усложнить взлом системы - не сделать ее более надежной, а полностью избежать вреда, давая людям понять, что они будут тратить свое время впустую.

Мне кажется, у вас есть ленивый технический директор, который не хочет придумывать новые пароли.

Как обычно, это непросто.

В настоящее время (ситуация, вероятно, была иной, когда вопрос был задан изначально) время, необходимое для подбора «плохого» пароля (например, одного словарного слова, сделанного «безопасным» с помощью некоторых обычных правил замены), намного короче, чем любой промежуток времени, который вы можете использовать. Я бы рассмотрел срок действия пароля, по крайней мере, если доступна база данных хэшей паролей.

С другой стороны, взломать «хороший» пароль (например, 16 случайных буквенно-цифровых символов) по-прежнему невозможно взломать в течение нескольких лет, если только у злоумышленника НЕ ​​БОЛЬШОЙ бюджет. А если вы играете против крупных игроков, стандартные пароли, вероятно, в любом случае вам не подойдут.

Многие другие проблемы, такие как уже упомянутые «плохие привычки пользователей», также применимы.

Еще следует учитывать, что срок действия паролей также приводит к снижению производительности и дополнительным затратам/работе на ИТ-поддержку.

Итак, ИМХО, лучшим выбором, чем вмешиваться в истечение срока действия паролей в настоящее время, может быть инвестирование в оборудование для сейфов паролей, биометрических/смарт-карт или других методов двухфакторной аутентификации...

Но обычно вы не получите окончательного ответа, не наняв человека, который проведет очень подробный анализ ваших требований, рисков и возможностей.

Вы ошибаетесь, а ваш технический директор прав.

Принудительная смена пароля будет раздражать пользователей и заставлять их уклоняться от системы безопасности. Это вызывает очевидные недостатки безопасности, такие как:

  1. Наклейки на мониторы с написанными на них паролями.
  2. суффиксный счетчик в пароле (например, пароль1 превращается в пароль2 — и если вы сможете это обнаружить, то у вас возникнут НАСТОЯЩИЕ БОЛЬШИЕ проблемы, поскольку вы храните пароли в виде обычного текста.)

Обратите внимание, что вариант 2) здесь прямо противоречит вашему аргументу безопасности о неизвестных нарушениях безопасности. Если злоумышленник выяснит, что ваш пароль был «пароль124», он Попытается ввести «пароль125». Наряду с любыми другими распространенными мутациями.

Более подробную информацию о правильном управлении паролями см. также в рекомендациях таких организаций, как правительство США:

Верификаторам НЕ СЛЕДУЕТ требовать произвольного изменения запомненных секретов (например, периодически). Однако верификаторы ДОЛЖНЫ принудительно внести изменения, если есть доказательства компрометации аутентификатора.

В переводе на нетехнический язык это означает, что срок действия == плохой, но если у вас есть разумные основания полагать, что пароль пользователя раскрыт, вы применяете его в каждом конкретном случае. Или глобальный, если произошла утечка всей вашей таблицы пользователей.

См. также этот вопрос на Security.se.

Другие вопросы по тегам