22.6.21

Что лучше - длина или объем или почему спецсимволы в пароле не нужны?

Думаю все мы сталкивались с советами, что для того, чтобы выбираемый пароль был надежным, он должен быть больше 8 символов, содержать не только буквы, но и цифры и спецсимволы, а буквы должны быть в разном регистре. Именно такие советы всегда даются на вопрос, как сделать пароль стойким к подбору. На днях я в своем Telegram-канале провел опрос, в котором задал схожий вопрос и получил очень интересные результаты (на основе 773 голосов). Обратите внимание, длина пароля попала на третье месте среди факторов, которые влияют на надежность пароля, а ведь на самом деле именно длина является самым главным, а на самом деле единственно важным параметром, который и определяет, насколько сложно будет хакерам подобрать ваш пароль.  


Доказательством тому является формула Андерсона. Я не знаю, учат ли сейчас ее в институтах, но в мое время ее преподавали. С помощью нее определяют время подбора пароля, который характеризуется двумя параметрами - длиной (количество символов) и объемом алфавита (количество вариантов символа в каждой позиции пароля). Школьный курс комбинаторики подсказывает нам, что число возможных комбинацией пароля из L символов и объеме (мощности) алфавита A будет равно A^L (A в степени L). В формуле Андерсона также присутствует такой параметр как скорость перебора пароля (V). В итоге мы получаем следующую формулу, которая и показывает время перебора пароля определенной длины и определенной мощности алфавита при заданной скорости. Понятно, что чем, мощнее у нас компьютер или кластер компьютеров, тем быстрее будет производиться перебор (отсюда отличия в картинках, которые можно найти в Интернете и которые показывают сколько лет будут ломать ваш пароль).
Есть и другой вариант этой формулы, в которой P - это вероятность подбора пароля за указанный интервал времени, G - число попыток подбора за 1 такт времени, T -  число тактов времени и A^L - число возможных комбинаций пароля.

И вот вновь нужно вспомнить курс школьной математики, а именно раздел степенных функций, которым и относится формула подсчета числа возможных паролей. Так вот это число растет быстрее, если увеличивать показатель степени (длину пароля), а не основание (мощность алфавита). При увеличении основания значение функции тоже растет, но не так быстро. Отсюда вывод - длина пароля гораздо важнее используемого в нем алфавита, то есть этих ваших спецсимволов, регистров, комбинаций цифр и букв и т.п.

Понятно, что речь не идет о просто длинных словах. Какая-нибудь "электрификация" (14 символов) хоть и длинна, но все-таки это слово присутствует в словарях, которые могут быть использованы при переборе. Слово "метоксихлордиэтиламинометилбутиламиноакридин" (44 символа) я бы тоже не стал использовать, а то кто знает, может у хакеров есть и словари названий химических веществ. Но вот какое-нибудь "модясачепродвшузаиувсезанобовынемо" (34 символа) вполне себе подойдет (немного шучу, но только немного). Запомнить его несложно - это первые два символа из начала "Евгения Онегина" ("Мой дядя самых честных правил..."). На самом деле начало у Онегина другое ("Не мысля гордый свет забавить..."), но "мой вариант" более привычен.

У такого совета (опираться на длину пароля, а не спецсимволы) есть и другое преимущество - нестандартные клавиатуры, на которых приходится искать непонятные символы. Помните в "Падение Олимпа", когда главный герой вводит код отмены запуска баллистических ракет, мучается с тем как ввести "решетку", которую ему назвали среди других символов кода (советник по нацбезопасности вовремя подсказала, что это будет Shift+3)? 

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