Pull to refresh

Генерация мнемонических сильных паролей

Reading time4 min
Views16K
Эта статья написана хабрапользователем stboris в рамках идеи "Green card".

В своей жизни я часто сталкиваюсь с необходимостью придумать пароль для своего (а также и не своего) нового аккаунта/логина.

Пароли должны быть достаточно сложны, иначе они могут быть легко подобраны (привет счастливым обладателям паролей god, sex, love). Также они должны по возможности быть разными, т.к. если вы даже и придумали очень сложный пароль, но пользуетесь им везде, то это легко может привести к компрометации.
Запомнить несколько десятков паролей, состоящих из случайного набора букв разных регистров, цифр, спецсимволов не такая уж тривиальная задача.

Моя память работает по какому-то своему особому принципу, что-то вроде «тут помню, тут не помню». С девушкой одного моего друга я знакомился 4 раза, не мог ее запомнить и все тут. Но есть у моей памяти и бонус — она очень хорошо работает с ассоциациями.
А еще, раньше я весьма много играл в разные игрушки: Кваку, Линягу, ВоВ и много еще чего сетевого и не очень и давно заметил, что для записи ников часто используют не только буквы, но и цифры и специальные символы.

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


Задача



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

Решение



Допустим, я решил поиграть в онлайн-игру «Овощной магнат» (игра выдумана, все совпадения случайны). Создаю там аккаунт и мне нужен пароль.

Осмысленность


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

У меня возникла ассоциация «баклажан»

Латиница


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

Поскольку я не знаю латыни — перевожу на английский. Получилось — aubergine

Регистр


В пароле должны присутствовать буквы в разных регистрах. Для простоты запоминания мы переводим половину слова в верхний регистр. Тут также есть несколько вариантов: правая — левая половины и, если количество букв нечетное, со средней или без.

Я беру первую половину со средней буквой и перевожу в верхний регистр. Получилось — AUBERgine

Спецсимволы


Также в пароле должны присутствовать цифры и специальные символы. Для этого надо для части букв алфавита придумать замену из зрительно похожих символов и цифр. Пароль после этого останется вполне удобочитаемым. Кстати для кул-хацкеров и про-геймеров в этом нет ничего нового, многие из них свои ники именно так и записывают. Например, a=@, e=3, i=! и т.д. Нюанс — не нужно заменять весь алфавит, достаточно лишь некоторой части, т.к. может получиться, что пароль будет состоять из одних лишь спецсимволов – тоже не очень хорошо.
Есть вариант использовать спецсимволы только из цифровых клавиш, т.к. если в каком-либо сервисе не будет возможности использовать спецсимволы, вы просто «дауншифтите» их на соответствующие им цифры. Например @=2, !=1 и т.д.

Применяем замену. Получилось — @UB3Rg!n3
В случае с сервисом, не позволяющем использовать спецсимволы. Получилось — 2UB3Rg1n3


Длина пароля


Для этого вводятся понятия «открывающего» и «закрывающего» символа. Иногда нужно сделать пароль короче (бывает, ставят ограничение на длину) для этого мы можем убрать «символы». Некоторые сервисы криво работают с паролями, начинающимися со спецсимволов. В частности, Aurvote для дистрибутива Arch Linux некорректно обрабатывает пароли, начинающиеся с символа «$». Поэтому может быть логичным «открывающий» символ делать цифрой, а «закрывающий» — спецсимволом.

Добавляю «открывающую» цифру «1» и «закрывающий» спецсимвол «)». Получилось — 1 @UB3Rg!n3)

Чтож, помоему не так уж и плохо — одиннадцатисимвольный пароль, содержащий все типы символов и при этом достаточно свободно читается, по большому счету требуется помнить только слово-ассоциацию.

Итого



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

Плюсы


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

Минусы


Могут быть небольшие проблемы, если вы печатаете на нестандартной клавиатуре, но это решаемо (находите в интернете картинку стандартной раскладки). Данный пароль слабее, чем случайно сгенерированный пароль, т.к. можно составить словарь на основе этих правил, но никто не мешает вам добавить свои правила, о которых никто кроме вас не знает.

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

Рекомендации



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



Программы для хранения паролей



В этой статье нет ни слова о программах для хранения паролей в силу того, что статья не о них =) Тем более, что я пока не пользуюсь ни одной из них, т.к. просто не было случая/периодически забываю флешку где-нибудь/не везде можно подрубить флешку, а пароли все равно вводить надо. Да и вообще одно другому не мешает.

P.S.



Конструктивная критика приветствуется.

UPD: Убрано упоминание об эсперанто, т.к., как оказалось, в эсперанто есть диакритические знаки. Извиняюсь перед всеми, кого ввел в заблуждение или обидел.
Tags:
Hubs:
+67
Comments146

Articles

Change theme settings