Всем нам постоянно приходится регистрироваться в различных сервисах, а это сопряжено с придумыванием пароля. Количество учетных записей на одного человека всё растет, придумывать оригинальные пароли и держать их все в голове всё сложнее. Кто-то пользуется менеджерами паролей, кто-то просто использует один и тот же пароль для разных учеток. В любом случае встает вопрос о том, как придумать сложный, но легко запоминающийся пароль. И всё бы ничего, но дело в том, что современные подходы к созданию паролей в корне неправильные.
Написать эту заметку меня заставил увиденный комикс:
Собственно, комикс очень наглядный, но всё же попробую его расшифровать.
Tr0ub4dor&3 есть ни что иное, как английское слово troubador, в котором o заменили на 0, a заменили на 4 и дописали два рандомных символа в конце. Собственно, такой подход к созданию паролей и является массово рекомендуемым. Полученный пароль кажется стойким к подбору, но это только на первый взгляд. А вот что точно не вызывает сомнений, так это сложность его запоминания. Да, Вы, скорее всего, вспомните слово-базис, но вот какие Вы буквы заменяли и что приписывали в конце? Попробуйте ка вспомнить это, скажем, через полгода!
Теперь разберемся с утверждением, что сложность подбора такого пароля на самом деле низкая. Когда специалисты по информационной безопасности утверждают, что стойкость пароля Tr0ub4dor&3 высокая, они имеют в виду, что в пароле используются буквы английского алфавита (их 26, а учитывая, что они могут быть как прописными, так и строчными, получаем 52 варианта), цифры (которых 10), и различные символы (которых наберется штук 20-25 в зависимости от того, какие из них принимаются). Итого 87 вариантов. Пароль состоит из 11 знаков, таким образом необходимо перебрать 87 в степени 11. Это очень большое число. В теории такой пароль не взломать при жизни владельца.
В комиксе используется такое понятие, как биты энтропии. По сути, информационная энтропия это неопределенность, а биты энтропии всё то же число вариантов. Компьютер хранит информацию в двоичной форме, и для кодирования 87 символов ему достаточно 7 бит. Так как в пароле 11 знаков, его энтропия будет равна 77 бит. Это очень много.
Но это в теории. В реальной жизни люди не создают пароли из малоосмысленных комбинаций цифр и букв, а используют некое слово. И, безусловно, любой взломщик имеет при себе словарь самых популярных слов, которые используются в паролях.
В базовом английском словаре 60000 слов. Для кодирования такой информации достаточно 16 бит.
Как правило, люди ставят заглавную букву первой. Там им проще запомнить. Проверка этого момента это еще один бит. Уже 17.
o часто заменяется на 0, a часто заменяется на 4. В слове troubador две буквы o и одна a, каждую из них надо попробовать заменить цифрами. Еще три бита энтропии. Уже 20.
Кроме того, пользователи добавляют символы и цифры. Многие сервисы пароли без них просто не принимают. Обычно их ставят в конце — так, опять же, проще запомнить. Цифры от 0 до 9 это три бита, символы 4 бита. Проверка не то, что стоит раньше — символ или цифра — еще один бит. Итого 28 бит энтропии. Такой пароль можно подобрать за 3 дня, а то и быстрее.
Правильный способ составления пароля
Раз уж речь пошла о математике, то единственный способ увеличить стойкость пароля — увеличение информационной энтропии. И самый действенный способ тут — увеличить его длину. Символы и цифры тут не очень-то эффективны и только усложняют запоминание. А легкость запоминания для человека как раз очень важна.
Поскольку отдельные слова перебираются быстро, надо использовать в качестве пароля фразу. Оговоримся, что фраза должна быть бессмысленной, иначе взломщику не составит труда подобрать слова по смыслу.
Авторы комикса исходят из того, что люди генерируют фразы из самых популярных слов, таких не больше двух тысяч, что укладывается в 11 бит энтропии. 4 таких слова это 44 бит энтропии. Подбирать такой пароль придется очень долго.
Впрочем, даже при таком несложном способе, не применяйте один и тот же пароль на разных ресурсах. 🙂
Статьи по теме: