Как запомнить кучу безопасных паролей, и не сойти с ума

    Коллега тут просил поделиться моей схемой «паролирования», т.е. придумывания удобно запоминаемых (или вспоминаемых) паролей. Поскольку это фактически значит раскрыть значительную часть фишки моих паролей, что сделает их очень уж уязвимыми, решил доработать схему с учетом того, что мне не понравилось по результатам довольно длительного использования (более полугода, пожалуй).
    Дабы при виде картинки вроде этой
    вы не становились похожи на этого мужика
    image image
    Читайте топик дальше.

    Зачем?


    Преимущества схемы паролирования над менеджером паролей как принципа:
    • отсутствие необходимости в специальном софте;
    • как следствие, мобильность и независимость от файлов;
    Недостатки:
    • требует некоторой подготовки к использованию (ниже — подробнее);
    • требует умственного напряжения при создании и вспоминании пароля.
    Я знаю, что особые умники скажут, что менеджер паролей может быть portable и на флешке, которая всегда с собой. Но он вряд ли может быть кросплатформенным, не требующем никакой настройки случайного компа и защищенным от утери флэшки.
    Отличия от других схем создания паролей:
    • детерминированность (строгий закон создания паролей; может быть как недостатком, так и преимуществом);
    • хм. Нет, больше отличий от тех схем, что я видел, на ум не приходит.
    Итак, вопрос «зачем?» считаем решенным и решительно отброшенным.

    Disclaimer


    Схему предполагается пользовать для генерирования паролей на всю кучу веб-сервисов (в первую очередь именно их, почему — ниже), которые не имеют принципиальной важности, но теми людьми, которые серьезно подсели на инет и не хотят пасть жертвой виртуальной вражины или мошенника, который может обрушить всю вашу виртуальную жизнь, узнав один пароль, ибо вы не соблаговолили пользоваться ни менеджерами паролей, ни схемой паролирования. Т.о., на очередную левую социалку, форум и бложик — пойдет, а вот на почту или webmoney надо генерить хотя бы по той же схеме, но с другим «ключом». Вполне очевидно.
    Да и вообще схема создания паролей эффективна, пока о ней никто не знает. Индивидуальна и трудно узнаваема. Так что maybe I'm doing a mistake. Теперь все мои пароли похитят!11
    Также следует учесть, что в современных компьютерных технологиях защиты наиболее слабым звеном является человек, то есть вы, пользователь этих паролей. Всевозможные лохотроны и фишинг-сайты наполнили интернеты, так что, какой бы крутой пароль у вас ни был, вам надо еще не слить его прямо в руки злоумышленнику. Ну и, опасаться терморектального криптоанализа.
    Еще, я не являюсь специалистом по криптографии или подобному, и если кто-то знает, почему предлагаемая схема плоха, как ее улучшить — милости прошу в комменты. Меня действительно интересует мнение хакера/специалиста по защите, в крайнем случае — киньте ссылкой на не очень сложную для освоения литературу (за плечами основы матана, линейки и тервера, хотя не претендую на действительно хорошее знание предметов, последний из названных я на 90% забыл).
    Также, я не являюсь вундеркиндом, но так же и не считаю, что описываемый способ генерации настолько сложен, что им некомфортно пользоваться. В конце концов, я никого не агитирую.
    Понять сразу может быть не очень просто, но вы хотя бы начало почитайте — может, идея покажется стоящей.

    Общие сведения о паролях


    Этот раздел можете пропустить, если и так знаете, каков должен быть нормальный пароль.
    А он должен быть таким:
    • состоять из заглавных и строчных латинских (и только их) букв, цифр и спецсимволов (не стоит злоупотреблять, на мобильных устройствах траблы со вводом будут)
    • иметь длину от 8 символов, что обеспечивает хрен пойми что, но вариантов пароля теоретически будет (26*2 (буквы строчные и заглавные) + 10 (цифры) + 10 спецсимволы (те, которые в английской раскладке на цифрах в qwerty)) ^ 8 = (72)^8 = 722204136308736 = 722 * 10^12 вариантов. цифра впечатляет, однако реальной инфой о «вскрываемости» такого пароля в реальных условиях я не обладаю.
    Далее

    Дополнительные требования, на основе которых строится данная схема паролирования


    Вот они:
    • пароль должен «вспоминаться» путем каких-либо хитрых и никому кроме вас неизвестных, но достаточно простых для осуществления при каждодневном логине не на один сервис, операций. По сути эти операции будут операциями по расшифровке, и ключ может быть как открытым, так и закрытым. Наиболее удобным открытым ключом шифрования представляется доменное имя веб-сервиса. Закрытым — какая-либо хитромудрая ассоциация образа с данным сервисом (только очень уж она недетерминирована получается, сложно вспоминать.) Поэтому берем открытый ключ, а подробнее об этом — ниже.
    • при получении злоумышленниками пароля (и даже не одного, а штук, скажем 10 — при парольной базе средне-активного юзера интернетов в 100 пассвордов это 10%) они не должны смочь узнать последовательность, правила, желания вашей левой пятки и все прочее, что вы использовали для генерации аналогичных паролей к другим сервисам. Подробнее — опять же ниже.
    • ну и само собой, совпадений (по крайней мере, умышленных) быть не должно. Генерить пароли надо уникальными. Если уж не повезло — то бог с ним, совпадение 1 пароля из 100 с другим из 100 не считаем критичным.

    Идея


    Так вот. Что у нас предстает наиболее общим и доступным идентификатором веб-сервиса? Правильно — доменное имя. Рассмотрим какой-нибудь не очень далекий от жизни пример.
    Собрались вы поиграть в Warhammer Online по случаю безлимитного триала. Ну, надо регистрироваться. Пройдя по какой-то там ссылке где-то на сайте попадаете вы на страницу с адресом вроде
    https://accounts.eamythic.com/war/trial
    Ну и на ней вводите всю регистрационную инфу, в т.ч. и пароль. Вот пароль и генерим: берем, например, число символов в каждой части доменного имени, отделенной точкой, складываем (8 + 8 + 3 = 19), получаем первые 2 символа пароля. Дальше берем либо осмысленную фразу, которая у вас будет четко ассоциироваться с этой игрой («Warhammer», например; сие не является хорошим вариантом, т.к. осмысленность в пароле — зло), либо постоянный надежный восьмизначный пароль, который вы предварительно заучили и сможете назвать даже будучи разбуженными в 3 часа ночи (пусть будет JE82adw] ).

    Генерим например так:
    19 8 JE 8 82 ad 3 w]
    Т.е. первые 2 цифры — сумма числа символов в первой, второй и третьей части доменного имени (до точки, между двумя точками, после точки). На второй позиции — число символов в первой части доменного имени, на третьей — 2 символа из нашего заготовленного пароля, на четвертой — вторая часть доменного имени, ну, я думаю, суть вы поняли. Получили 13-значный пароль, из которых 8 символов мы и так заботали, а остальные 5 получаются из доменного имени. В общем суть в том, что в один и тот же ваш пароль вы вставляете куски, которые получаете дешифровкой легкодоступной инфы. Ясное дело, что в явном виде использовать доменное имя — большое палево, кодировать, например, l33t'ом — тоже словарем подбирается, посему нужно изощряться (хотя, коль скоро пароль не является полностью l33t-кодированным, как составляющие применять, я считаю, можно). В общем, закон шифрования — какой хотите. Хотите — в степень возводите, хотите ищите разность между числом 100 и длиной названия веб-сервиса — что угодно. Хоть длину трехмерного вектора из длин 3 частей доменного имени ищите. Что важно — так это то, чтобы выбранный вами закон был одинаков для всей «серии» сервисов. Пусть будет для помоек один, для рядовых — другой, для важных — третий. Но вы должны четко знать где какой, иначе потом придется ради каждого логина восстанавливать пароль.

    Важная мысль, до которой я дошел лишь в процессе описания схемы


    Такая схема теряет смысл при получении нескольких паролей из одной серии. По двум паролям находится общая подпоследовательность, и это уже больше половины пароля. Закон найти тоже не тяжело. Да даже если он не найден — зная места, на которых должны быть цифры, и зная, что там лишь цифры, подобрать его становится очень просто.
    Здесь варианты — либо дробить пароли на группы, в пределах которых будет одинаковая постоянная часть, либо создавать шифруемую часть такой, что даже после узнавания постоянной части пароли остается сложно подобрать, либо еще дробить на группы, в пределах которых будет одинаковый закон шифрования. Если шифруемая часть будет тоже безопасна (8 символов, хотя бы буквы/цифры) — то это уже снижение безопасности при получении 2 паролей только (условно) в 2 раза (я знаю, что от длины пароля сложность его подбора зависит не линейно). А лучше объединить эти 3 варианта вместе.

    Итоговый вариант


    Таким образом, надо:
    • завести несколько категорий паролей, примерно равных по объему, и таких, что понять вам, какой пароль из какой категории, не составит труда. В пределах категории одна константная часть и один закон шифрования (можно и сильнее дробить, но тогда есть шанс свихнуться). Если паролей мало и заморачиваться влом — пусть категория будет одна, но вы предупреждены выше.
    • для каждой категории придумать постоянную часть пароля. Пример: профессиональная деятельность — постоянная часть m2f~(kJB; социальные сети — постоянная часть 5O((eT!1;
    • для каждой категории придумать закон шифрования. Пример: профессиональная деятельность — закон шифрования — в начало и конец первый и последний символы доменного имени и число символов в каждой части доменного имени; социальные сети — закон шифрования — в начало — число символов в первой части доменного имени, в середину — во второй, в конец — в третьей, и в конец первые 2 символа доменного имени, идущие прямо перед точкой, в обратном порядке;
    • понять, что такие пароли удобно вводить так: сначала постоянная часть, затем шифруемые добавления к ней (перемещая курсор в нужные места);
    • начать пользоваться схемой. Пересилить себя и начать генерировать пароли. Первое время, возможно, придется их восстанавливать, но менять нужно опять же на тот, который должен быть по схеме. Примеры пароля с означенными выше постоянными частями и правилами шифрования: habrahabr.ru (профессиональная деятельность) — h92m2f~(kJBu92; vkontakte.ru (социальные сети) — (первой части доменного имени нет, считаем ее www) 35O((9eT!12et; facebook.com (социальные сети) — 35O((9eT!13ko.

    Результаты


    Получаем:
    • нужно запомнить столько паролей, сколько у вас категорий веб-сервисов, и столько же законов генерирования. Я полагаю, это число будет точно меньше десятка, а скорее всего — 4-5. 5 восьмизначных паролей и сопутствующих законов генерирования считаю вполне возможным запомнить;
    • каждый отдельный пароль очень устойчив к подбору;
    • при получении множества паролей одной группы и определенной их обработке (т.е. понимания, почему на определенных местах стоят определенные символы) можно сгенерить все остальные пароли этой группы. Сгенерить получится после получения 2-3 паролей, если хакер не имбецил. То есть требование к устойчивости остальной схемы при получении части паролей выполняется совсем не полностью, но, как минимум все пароли остаются неизвестными при узнавании стольких паролей из разных групп, сколько есть этих групп, а далее — «взламываются» по очереди группы, но не весь банк паролей сразу.
    • использовать такую схему для не-веб-приложений сложнее ввиду, как правило, неоднозначности названия того, куда надо ввести пароль. Если это веб-сервис — вы поднимаете глаза на адресную строку и видите его доменное имя. Если это, например, ключ шифрования флэшки — с семантической привязкой куда сложнее;
    • закон генерирования ниэпически сложный! Автор, убейся!11 На самом деле, я использую куда более простые законы. А тут — для примера возможностей, для параноиков, и для тех, кто скажет, что все это очень легко взломать.
    Спасибо тем, кто дочитал до конца.
    Надеюсь, пост был вам полезен, милости прошу в обсуждение.
    P.S. Если сочтете пост нужным — перенесу в подходящий блог.

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 28

      0
      Можно, но чаще всего упирается в «а нафига?».
        0
        Мурашки по коже от Ваших схем брейнгена!
          +2
          Это все здорово, конечно, но может стоит «аппаратные мощности» использовать для чего-то более интересного, а пароли доверить KeePass?
            0
            нишевое решение, подходит не всем, но идеи любопытные.
              0
              Идея интересная, но по мне так катит и такая схема:
              1) Warhammer Online, Форум 1, Форум 2.., разные сайты на которые наплевать — один простой запоминаемый пароль + имя домена (или без него)
              2) GMail, PayPal, eBay… несколько важных сайтов — на них все-таки можно зазубрить разные пароли их же не много
                0
                xmarks запомнит за Вас ваши пароли :-)
                  0
                  Как запомнить кучу безопасных паролей, и не сойти с ума

                  Тут можно сойти с ума уже на стадии генерации паролей ;)
                    +2
                    Вы правда не осилили сложение однозначных чисел и простейшие операции над строками?
                  +4
                  8 + 8 + 3 = 11

                  В чем прикол?
                    0
                    Исправлено. Прикол был в том, что было 8 + 3 = 11, а вторая восьмерка забыта.
                    +1
                    Я по стихам делаю. Учишь одно длинное стихотворение и на каждый сервис по заглавным буквам четверостишья генеришь пароль, поворачивая в английскую раскладку, первой и третьей строкой ставя заглавные, либо наоборот. К примеру:

                    Однажды, в студеную зимнюю пору,
                    Я из лесу вышел; был сильный мороз.
                    Гляжу, поднимается медленно в гору
                    Лошадка, везущая хворосту воз.

                    Имеем: JDCPGzbd,cvUGVDUkd[d

                    Стихотворений благо насочиняли море :)
                      0
                      Есть недостаток. Выстроить потом в голове ассоциации, данного сервиса к данному произведению литературы. В противном случае рискуешь получить докторскую степень в литературавединьи. Но так и не попасть на нужный тебе ресурс.
                        0
                        Ну может быть, для кого как, может быть…

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

                        Можно к имени логина добавлять цифру, символизирующую номер четверостишья, можно букву первого слова четверостишья, можно просто по слову из него запомнить и проассоциировать. Кому как удобнее.
                        0
                        Это слишком просто брутфорчится — менять раскладку и регистр умеют любые программы перебора по словарям.
                          0
                          В фразе «Это слишком просто брутфорсится», ключевое слово «брутфорсится. Захотят и не по словарю забрутят, если конечно технически им сайтовладелец даст. В остальном, это долго и малоперспективно, если в словари не заряжены все сочинение поэтов мира. Да и длинна варьируется только так, к примеру: LKUKRPDGUZnpnlhlbcgLKCKEH,rbhhju (четверостишье ниже) — брутиться будет очень не мало.

                          Десять лет — грустных лет!- как заброшен в приморскую глушь я.
                          Труп за трупом духовно родных. Да и сам полутруп.
                          Десять лет — страшных лет!- удушающего равнодушья
                          Белой, красной — и розовой — русских общественных групп.
                            –1
                            А вы вспомните через пару месяцев неиспользования пароля где вы использовали минус, где дефис, где вставили пробел и где его пропустили? Да еще и опечатки разные. А если вы используете штук 30 паролей? Будете таскать с собой томик со стихами?
                              +1
                              Зачем мне вспоминать где я дефис ставил. Перечитайте как я пароли образовываю. Я ж даже с примерами написал, дважды.

                              Я штук сто стихотворений наизусть помню точно, еще пачку вспомню, если потребуется :))) И на штук 30 и больше выучится на раз. Уж Бородино, хотя-бы в школе все учили наверное? Вполне сгодится для начала :)

                              И потом, я же не навязываю. Просто один из способов, из личного опыта, так сказать.
                        +1
                        Меня вполне устраивает KeePass — он кроссплатформенный (Windows, Linux), имеет мастер-пароль, который единственный можно держать в голове и шифрует саму базу данных. Даже если потеряется флешка с базой, то расшифровать её будет затруднительно.

                        В общем вы сами себе придумываете проблему и пытаетесь найти к ней решение, которое приносит еще больше головной боли. Ну а потом любая схема составления пароля забывается после 1-2 лет неиспользования (проверено на опыте), куча архивов под паролями у меня валяется на болванках к которым я реально не помню пароль и даже не помню схему по которой он был составлен (раньше я не пользовался менеджерами паролей).

                        Я просто не вижу минусов в использовании менеджера паролей с шифрованием, особенно когда паролей несколько десятков и сами пароли от 15 символов.
                          0
                          Поверьте, мне это решение головной боли не приносит.

                          А переставать использовать схему нет причин — если и узнали из нее одну группу паролей, она меняется, все остальное по-прежнему безопасно.
                          0
                          Эм… может я туплю с утра, но как можно складывая 8+8+3 получить 11?
                            0
                            это в восемнадцатиричной системе счисления ^_^
                              0
                              Это я туплю с утра, сейчас поправлю.
                              +1
                              Вот вам еще идея:
                              берем название домена + ваше слово, идем на закладочку с md5 генератором (в онлайне немеряно) =
                              генерим ваш оооочень сложный пароль.
                              + пароль очень сложный и imho обратно никак не приводим к изначальному варианту
                              + в том что генератор всегда под рукой, если есть инет.
                              + у вас нигде и никогда не будут совпадать пароли.
                              — вручную вводить умаетесь :)
                                0
                                Нет, суть именно в том, чтобы вручную без дополнительных приблуд ввести.
                                  0
                                  Хороший способ для тех сайтов, на которые вы ходите только с нормального компьютера. А если нужно будет срочно зайти на такой сайт при помощи Opera Mini с мобильника? =)
                                    0
                                    Так же как и в том случае если пароли хранятся в кейпассе — никак, или почти никак :)
                                    Хотя можно изголиться, у меня в нокии например есть буфер обмена, вот только им пользоваться — почти невозможно/очень коряво.
                                    Еще можно попробовать найти мобильный генератор md5 :)
                                      0
                                      да есть такое наверняка для Java или Symbian

                                Only users with full accounts can post comments. Log in, please.