Джефф Этвуд (Jeff Atwood), основатель небезызвестного ресурса Stack Overflow, опубликовал на страницах своего блога развернутое послание, обращенное ко всем без исключения разработчикам. Свою тираду Этвуд озаглавил доходчиво и лаконично: «Правила составления паролей – это хе*ня».
Этвуд пишет, что у современных паролей насчитывается множество самых разных проблем, но главная из них – ужасные правила составления этих самых паролей. Чтобы не быть голословным, разработчик приводит несколько ярких примеров и даже дает ссылки на два Tumblr-блога (1 и 2), основная тема которых — странные требования к паролям.
If we don't solve the password problem for users in my lifetime I am gonna haunt you from beyond the grave as a ghost pic.twitter.com/Tf9EnwgoZv
— Jeff Atwood (@codinghorror) August 11, 2015
Этвуд объясняет, что зачастую требования к паролям переходят границы здравого смысла и попросту не позволяют использовать генератор действительно надежных и случайных паролей. Ведь согласно правилам, такой рендомный пароль может содержать недостаточно цифр. Или специальных символов. Или каких-то определенных букв. В итоге пользователь буквально вынужден вручную создавать более короткую и простую комбинацию, потому что автоматика не справляется. По мнению эксперта, подобные правила только вредят и ухудшают и без того неблагоприятную ситуацию. При этом Этвуд отмечает:
«В наши дни, учитывая мощности облачных вычислений и взлом парольных хешей с помощью GPU, иметь любой пароль длиной восемь символов или меньше – это практически то же самое, что не иметь пароля вообще».
Длине паролей эксперт вообще посвятил немалую часть текста, объясняя, что в наши дни пароли должны насчитывать не менее десяти символов в длину. Ведь даже если рассмотреть список из 25 самых плохих и используемых паролей, только пять из них длиннее десяти символов. При этом называть все длинные пароли надежными, разумеется, тоже ошибочно, потому как «passwordpassword» или «0123456789012345689» вряд ли можно вообще назвать паролями.
Так Этвуд подводит читателей к основной мысли своей публикации: «Серьезно, ради всего святого, завязывайте с этой хе*ней и произвольными правилами составления паролей. Если не верите мне, почитайте официальные рекомендации NIST 2016 относительно паролей. Всё прямо там: “никаких правил составления паролей”. Впрочем, здесь я вижу одну ошибку, там стоило написать “никаких хе*овых правил составления паролей”».
Далее разработчик перечисляет методики усиления паролей, которые действительно работают и могут быть полезными. К примеру, он советует чаще использовать Unicode, так как это позволяет существенно удлинить и усложнить пароль. Также Этвуд призывает проверять энтропию паролей и в понятной форме доносить до пользователей, чем плох пароль «aaaaaaaaaa», несмотря на его длину. Кроме того, он рекомендует разработчикам чаще сверяться со словарем и базами утечек, попросту запрещая пользователям применять самые простые и распространенные пароли. Также следует запрещать и пароли, совпадающие с именем пользователя и его email-адресом (тот же принцип относится к URL, домену и названию приложения, для которых создается пароль). В качестве иллюстрации своих слов исследователь приводит простую и очень наглядную статистику:
- 1,6% пользователей имеют пароли из числа худших 10;
- 4,4% пользователей имеют пароли из числа худших 100;
- 9,7% пользователей имеют пароли из числа худших 500;
- 13,2% пользователей имеют пароли из числа худшей 1000;
- 30% пользователей имеют пароли из числа худших 10 000.