Недавно мы писали о том, почему даже не слишком квалифицированные злоумышленники с лёгкостью взламывают пароли большинства посетителей различных интернет-сайтов. Возникает закономерный вопрос: а можно ли придумать такой пароль, который, с одной стороны, был бы достаточно устойчивым ко взлому, а с другой — легко запоминаемым.
Прежде всего стоит помнить о том, что взломать (подобрать, угадать) можно абсолютно любой пароль. Вопрос лишь в ресурсах — вычислительных и временных. Поэтому устойчивость пароля имеет смысл оценивать с точки зрения оправданности затрат на его взлом: если в течение некоторого времени он не поддаётся вскрытию при помощи доступных ресурсов, то его можно считать безопасным.
Для различных категорий пользователей применяются принципиально разные критерии. Для взлома пароля аккаунта простой школьницы в социальной сети никто не будет задействовать столько же ресурсов, сколько для вскрытия учётной записи руководителя крупной фирмы или (тем более) для доступа к каким-то особо защищённым государственным и оборонным сетям. Пароль, который в первом случае можно считать практически абсолютно безопасным, в двух других может быть абсолютно уязвимым. При этом наша абстрактная школьница, разумеется, никогда не будет использовать генератор случайных паролей промышленного класса и менять пароль всякий раз после его ввода.
Поговорим о некоем «среднестатистическом» случае — то есть о пользовательских паролях для интернет-сервисов, которые, оставаясь достаточно стойкими для таких применений, не заставят человека вести образ жизни клинического параноика.
Длина — это главное
В отличие от многих других случаев, для пароля длина — это главное. Пароли длиной до шести символов включительно, составленные из 95 ASCII-символов (26 букв латинского алфавита в обоих регистрах, 10 цифр и 33 служебных символов), взламываются методом полного перебора («грубой силы») на обычном персональном компьютере при помощи «числодробилки» современной видеокарты буквально за считанные минуты. Но добавление даже одного–двух символов уже серьёзно усложняет задачу, удлиняя время перебора до нескольких дней и даже месяцев.
Однако длина — пусть и главный, но далеко не единственный критерий оценки стойкости пароля. Принципиальное значение имеет отсутствие какого-то предсказуемого шаблона в самом наборе и неслучайности в последовательности символов пароля. Мера непредсказуемости появления таких символов носит название «информационной энтропии», и эта величина, рассчитываемая в битах энтропии, позволяет со значительной степенью точности оценить сложность пароля. Так, энтропия на один символ для пароля из всех ASCII-символов составит порядка 6,56 бит; таким образом, сложность 6-символьного пароля будет составлять 39,36 бита энтропии, 7-символьного — уже 45,95 бит, а 8-символьного — 52,48 бит.
Чтобы взломать пароль 52-битной сложности методом перебора, потребуется количество попыток, равное 2 в 52-й степени. При использовании пары современных видеокарт класса GeForce GTX 570, способных подбирать по 1,5 миллиарда паролей в секунду, перебор всех возможных комбинаций займёт примерно пару месяцев непрерывной работы, что, в общем, и даёт представление о стойкости такого пароля.
Однако это касается исключительно паролей, не содержащих каких-то предсказуемых шаблонов, то есть сгенерированных машинно, с теоретически максимальной энтропией. Для поведения же человека типична предсказуемость, поэтому при составлении пароля он подсознательно будет использовать какие-то знакомые сочетания и комбинации цифр, символов и букв. Непроизвольно вспоминаются памятные даты, дни рождения, имена дорогих людей, названия знакомых мест и предметов.
На деле это означает значительно большую уязвимость, поскольку метод «грубого подбора» всегда применяется в комбинации с другими способами взлома, в частности со словарным подбором. При этом использование известных масок и шаблонов значительно упрощает задачу. Помимо обычных словарей и словарей реальных пользовательских паролей, «утёкших» со взломанных сайтов, широко известны маски на подстановку отдельных букв или добавление чисел, популярные числовые последовательности — шаблоны дат, телефонов, индексов, номеров социального страхования, а также многие другие уловки, напрасно кажущиеся их авторам чрезвычайно оригинальными.
По оценкам Национального института стандартов и технологий США (NIST), энтропия первого символа из букв нижнего регистра и цифр в паролях, придуманных человеком, составляет 4 бита, последующих семи — 2 бита, а применение верхнего регистра и служебных символов добавляет ещё 6 битов, что в сумме даёт всего 24 бита, то есть в два с лишним раза меньше по сравнению с теоретическим максимумом для заданного набора символов и длины. То есть время подбора такого пароля даже методом «грубой силы» уменьшается вдвое, в реальности же «гибридная» атака позволит злоумышленнику добиться успеха намного быстрее.
И здесь мы снова возвращаемся к длине: сложность пароля длиной 14 символов теоретически составит 91,84 бита, а длиной 20 символов — уже 131,2 бита, и на взлом таких паролей только методом перебора при существующих вычислительных мощностях уйдёт несколько десятков, а то и сотен лет. Гибридные методики, разумеется, значительно снижают стойкость подобных кодов, а «человеческий фактор» делает их ещё уязвимее. Тем не менее длина делает своё дело: для обычного пользовательского пароля, даже если в нём есть не слишком явные шаблоны, рекомендуемое количество символов на сегодня должно быть не менее 14. Такой пароль будет намного безопасней, чем «суперстойкие» когда-то пароли из 6–8 символов.
Не будьте предсказуемы
После рассуждений о предсказуемости как свойстве человеческой натуры такой совет может прозвучать странно, и тем не менее. Для составления достаточно безопасного пароля вовсе не обязательно устанавливать генераторы и пытаться потом запомнить абракадабру. Можно просто попытаться стать чуть более «внезапными».
Среди самых банальных рекомендаций — не используйте псевдопароли и комбинации псевдопаролей вроде QWERTY, 123456 и тому подобных. Даже если часть такой последовательности будет присутствовать в вашем пароле, это кардинально снизит его безопасность. Недопустима повторяемость отдельных символов и их сочетаний: как цифр, так и чисел, как букв, так и слов.
Самое глупое, что можно придумать, — это вводить в качестве паролей русские слова в латинской раскладке. Если даже пресловутый Punto Switcher способен в реальном времени переключать раскладку, то странно ожидать отсутствия такой возможности у специализированного ПО.
Не используйте предсказуемые числа — даты, номера телефонов и индексы, номера соцстраховок и автомобилей. Поскольку профессиональные взломщики всё-таки отчасти математики, не стоит применять в паролях и какие-то хорошо известные константы — например, число «пи». Числовые последовательности (например, числа Фибоначчи) тоже вряд ли станут хорошей идеей.
Подстановка «похожих» символов в словарные слова не даст никакого эффекта, поскольку все взломщики давно в курсе, что «@» может заменять «a», а «5» — «s». Гораздо более эффективный вариант — исковеркать известные слова каким-то только одному вам понятным способом. Например, превратить «password» в «p&sUprtDt» — типичный шаблон тут отсутствует, поэтому словарный подбор ничего не даст, а если пароль будет достаточно длинным, то и метод «грубой силы» окажется малоэффективным.
В общем, проявите творческий подход, и у вас всё получится. Оценить результаты своих усилий можно, к примеру, на сайте GRC.com, который, в отличие от пародийного интеловского «калькулятора» даёт реальное представление об устойчивости пароля. Разумеется, оценив, придётся придумывать новый пароль — если вы действительно печётесь о безопасности.
Стёпка, хочешь щец?
Даже если вы придумали отличные пароли (а они — в целях вашей же безопасности — должны быть индивидуальны абсолютно для каждого интернет-сервиса), возникает проблема, как же их все запомнить. Конечно, можно воспользоваться встроенной в любой браузер функцией запоминания паролей, но если злоумышленник каким-то образом получит доступ к вашей машине, это будет означать, что он сможет залезть не только на вашу страничку в соцсети, но и, например, в ваш интернет-банкинг.
Некоторые люди обладают фотографической памятью на символы, и для них не составляет труда запомнить даже самую нелепую абракадабру. Другим же приходится пользоваться иным способом, который описан в заголовке этой части статьи. Автор вовсе не сошёл с ума, просто в этом заголовке приведена часть мнемонического правила для запоминания глухих согласных в русском языке: «СТёПКа, ХоЧеШь ЩеЦ? — Фи!» Мнемотехника облегчает запоминание любой информации при помощи ассоциативных связей, подменяя абстрактные данные яркими образами.
Даже самый сложный пароль можно запомнить, используя мнемотехнику, особенно какую-то близкую вам тематику. К примеру, «AsTKp2eshe:)»: «Аркадий съел большую тарелку каши, попросил две ещё, улыбнулся» и т. п. Фразы не обязательно должны быть осмысленными: напротив, чем они абсурднее, тем легче запоминаются. Техник запоминания огромное множество, и если вы освоите хотя бы некоторые из них, они пригодятся вам не только для паролей. И повторим, что это отличный способ запомнить множество сложных паролей.
* * *
Пароли — лишь одно из средств защиты информации, пусть и из числа самых распространённых. Но даже с хорошими паролями нужно уметь правильно обращаться. Среди главных правил «парольной гигиены» — не использовать одинаковые пароли на разных ресурсах и регулярно их менять. Для интернет-сервисов достаточно проводить такую замену раз в два–три месяца, если не считать экстренных ситуаций с утратой компьютера, его взломом или взломом веб-аккаунта.
Не вводите свои пароли на чужих компьютерах, особенно тех, к которым имеет доступ большой или неограниченный круг людей. Даже если коварные злоумышленники не установили там кейлоггеры, запоминающие все нажатия клавиш, в настройках системы, браузера или ПО может быть по умолчанию предусмотрено запоминание всех вводимых паролей, неочевидное для пользователя. Если же вам всё-таки пришлось воспользоваться таким компьютером, поспешите заменить пароль с безопасной машины.
Наконец, никогда и никому не высылайте свои пароли ни электронной почтой, ни через службы мгновенных сообщений: никакой интернет-сервис никогда не потребует от вас прислать ваш же пароль. Если понадобилось переслать пароль знакомым, надиктуйте его голосом по телефону либо пришлите фотографию с мобильного. И снова — в целях безопасности — при возможности сразу же поменяйте такой пароль на новый.