На тему паролей написано кучу статей как на хабре, так и в интернете. Удивительно, но до сих пор никто не описал еще один способ, которым пользуюсь я и который казалось бы очевиден.
Сразу же хотел бы отметить, что я не пользуюсь смартфоном, поэтому всяческие менеджеры паролей на кнопочном телефоне для меня недоступны.
Изначально я, как и большинство пользователей, имел 1-2 пароля, которые вставлял для всех сайтов. Писать про недостатки данного способа нет смысла, их море. Со временем пришло понимание, что данный подход надо менять. Пользоваться генераторами сложных паролей на сторонних сайтах неудобно, поскольку после генерации данный пароль забывается и после истечения сессии приходится его менять. С одной стороны это хорошо, т.к заставляет нас постоянно менять пароли усложняя их подбор. Но есть сайты, где сессия заканчивается буквально за сутки, и смена их начинает раздражать.
Какими же качествами должен обладать пароль, чтобы он подошел под наши условия и также удовлетворил условия сайтов?
Быть уникальным для каждого сайта
Иметь набор из букв разного регистра, цифр и спецсимволов
Иметь возможность удовлетворять политике сайта, где смена происходит раз в N месяцев
Первое, что мне пришло в голову, это использование хеша сайта и кастомного правила. Я взял за основу md5, т.к генератор md5 есть как онлайн, так и в виде приложения для мобильного.
Далее составляется базовое правило генерации пароля, которое используется для всех сайтов.
Суть правила такова - для генерации пароля мы берем строку login@site.com. Далее мы берем первые/последние N символов в зависимости от сложности пароля. Большинству сайтов достаточно 10 символьного пароля. Получается строка, которая уже содержит сложный набор из цифр и букв. Полученный пароль уже гораздо сложней обычного, но его по прежнему можно подобрать. Плюс к этому, большинство сайтов требует, чтобы в пароле присутствовали спецсимволы и буквы в разных регистрах. Для этого мы придумаем и введем правило, которое будет общим для всех паролей.
Например, первую цифру мы увеличим на 2, а третью на 1 (если у нас происходит перескок через 10, то все идет по кругу и 9 + 2 дает нам 1, а 9 + 1 дает 0). Первую букву сделаем заглавной, а в конце поставим спецсимвол, который будет равняться последней цифре с шифтом. Это позволит нам избежать случайного угадывания, если вдруг кто то поймет, что мы используем именно этот способ и попытается его применить.
Если применить это к моему случаю, то получится следующее:
noroots@habr.com = c05184b3af6965b29f15571556a4cccd
берем первые 10 симвлов, получаем c05184b3af
добавляем к первому числу 2, а к третьему 1 и получаем c25284b3af
первую букву делаем заглавной, а в конце ставим спецсимвол, соответствующий последней цифре C25284b3af#
Итого получаем пароль C25284b3af#, который уже удовлетворит политике большинства сайтов.
Все, что нам нужно, это придумать правило, которое будет храниться в голове и по нему генерировать пароль для любого сайта.
Сейчас об исключениях. Иногда может получиться так, что хеш будет содержать только числа, или всего одну букву и мы не сможем удовлетворить требованиям о буквах с разными регистрами. Для этого просто можно увеличить длину строки с 10 до 15, либо использовать более гибкое правило, что мы берем не N символов, а строку, которая длинней N символов и включает как минимум 2 буквы. Также некоторые сайты требуют периодической смены пароля (например банковские сайты или google). Решается это просто - в строку login@site.com мы добавляем год и квартал (месяц, полугодие, в зависимости от частоты смены), что позволит нам опять же всегда иметь актуальный пароль и возможность его восстановить в памяти.
datt
Эм? На кнопочных телефонах есть приложение — генератор md5?
noroots Автор
Нет, но оно есть в интернете. Логично предположить, что если вы пытаетесь зайти на сайт, то у вас он (интернет) есть.
inkelyad
Итого пароль или его значительная часть становится виден этому сайту с калькулятором. С тем же успехом можно онлайновым Password-manager-ом пользоваться.
noroots Автор
Для этого и используется правило, которое хранится в голове. Я предпочитаю пароли хранить в голове, а не в приложениях или сайтах.
inkelyad
К сожалению, человек очень плох в придумывании и запоминании костомных правил. Вот даже если на глаз посмотреть — сколько бит энтропии все это правило добавляет? И я не удивлюсь, если подбиральщиках паролей переборы вариантов "взять MD5 от сайта и слега его изменить" — уже давным-давно предусмотрены.
Paranoich
«А голова предмет темный и исследованию не подлежит»
Мой хороший знакомый отличался безупречной памятью и все пароли помнил наизусть, аж с 2000 года начиная. Снисходительно смотрел на мои KeePass и KeePass2Android. А 2 года назад начал путаться. Чем дальше — тем больше. Возраст виной, диабет или сотрясение мозга, после попытки перехода проезжей части в положенном месте и на зелёный… Неизвестно.
Никто из нас не застрахован. 2 или 3 места для хранения паролей всяко лучше одного.
Часть паролей я ему восстановил — остался файл kdbx, с того времени, когда я пытался ему КиПасс втюхать насильственно. Часть восстановили штатно — телефон, почта резервная и т. д. Но часть аккаунтов так и осталась недоступна.
OleksiyT
Выглядит бредово.
Пароли куда нужны? Правильно, на онлайн-сервисы.
А там же всегда есть альтернативный вариант восстановления. На тот же email.
Нафига пароли вообще помнить либо записывать.
Сбросят сессию, восстановишь в пару кликов, проблему нашли.
Mitya78
Ну мне вот один сервис предлагает открытку прислать, бумажную, на адрес по которому давно не живу.
Bringoff
Ну, либо для криптокошелька, в котором завалялся десяток биткоинов ;)
KGeist
>А 2 года назад начал путаться. Чем дальше — тем больше
Я имел привычку использовать пароли на основе алгоритма, вычисляемого в уме (в основном для throwaway-регистрации), но последнее время стали происходить странные вещи - вроде всё правильно сделал, а не подходит :)
Shished
На каких кнопочных телефонах?