Ещё один простой блог в интернете, одного из жителей Сызрани, который считает себя дизайнером, WEB-мастером и фотографом-любителем

просто блог

QR CODE для записиQR CODE для записи “¡No PASSarán”

¡No PASSarán

Предлагаю Вашему вниманию новый инновационный плагин менеджера паролей для браузеров Firefox, Chrome, Opera и других браузеров поддерживающих XPI или CRX дополнения, а также онлайн версию ¡No PASSarán. Особенность данного плагина в том, что он не хранит пароли ни в какой базе, а генерирует пароли налету. Эту базу нельзя ни украсть, ни потерять. Нельзя потерять то, чего нет! Подробности ниже.

¡No PASSarán

Скачать и установить

Последние версии плагинов можно найти на GitHub

Актуальные версии

Бета-версии

Онлайн версия

Онлайн ¡No PASSarán. Зеркало 1
Онлайн ¡No PASSarán. Зеркало 2
Онлайн ¡No PASSarán. Зеркало 3

Предисловие

Если вы интересовались темой хранения паролей, то должны знать два основных принципа, или правильнее сказать — варианта, надежности паролей. Оба эти варианта описаны на популярной в сети картинке:

Генерация сложного пароля

Второй вариант вроде бы взламывается дольше, если верить картинке и некоторым исследованиям, но это теоретически. Практически, если он будет один и везде, что многие и делают (везде используют один пароль), то украв его однажды — можно взломать и угнать множество аккаунтов. А по моим наблюдения (не претендую на истину) и взломать можно проще, ибо можно собрать базу часто используемых слов (особенно в языках без суффиксов и окончаний) и подобрать их пары, ведь большинство будут использовать от 2 до 4 слов, это примерно как брутить 2-4 символьные пароли, но только по чуть большей базе, ведь со спец.символами количество «слов» тоже немаленькое. А сюда ещё можно добавить ограничение сервисов — некоторые сервисы разрешают только ограниченное число символов, что ещё больше сокращает перебор. А для пользователя очередная трудность — надо запоминать или придумывать новый пароль, или использовать везде более короткую версию.

Очень давно у меня появилась идея реализовать особый генератор паролей, который имеет много общего с обоими вариантами паролей. Я бы даже сказал, что эта идея построена на обоих вариантах. От второго варианта то, что надо иметь 3 слова (я их назвал соль, алгоритм и мастер пароль),а от первого — финальная версия пароля получается в MD5, а ведь именно часто в MD5 хранится пароль на сервере.

Конечно изначально я придумал и использовал простенький алгоритм для сайтов, типа такого:

  • Был мастер пароль, допустим quaka42eqava
  • Далее брал сайт, например example.com, и получал из него другие части, например: example, 7, com, moc, 3; думаю понятно что из чего следует?
  • Третьим шагом получал новый пароль moc3quaka42eqava7example

Данный вариант лёгок в запоминание, не надо с собой таскать базу и удовлетворяет обоим требованиям, которые описаны на картинке. Но у него есть узкие места:

  • например я попал бы на сайт злоумышленника и ввёл там свой пароль, созданный для его сайта сайтзлоумышленника.рф => фр2quaka42eqava18сайтзлоумышленника. Посмотрев на пароль — он мог бы понять его алгоритм и угнать часть моих аккаунтов
  • постоянно разбивать домен и считать символы надоедает

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

Итак, представьте, что свой личный проект забросили (извините, конечно же отложили, чтобы вернуться, когда будет время!)


(в статье и где-то в комментариях на Хабрахабре)

Описание ¡No PASSarán

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

После этого, в зависимости от придуманного алгоритма будет генерироваться уникальный для сайта пароль.

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

Как пользоваться

Допустим вы придумали три части, для примера: Мастер пароль, как и раньше quaka42eqava, соль — имя домашнего питомца «Кузя» и алгоритм — свой номер телефона (Пароль — чувствителен к регистру, а соль и алгоритм нечувствительны к регистру). Вбиваем соль и пароль в настройки плагина и они сохранятся там. Затем переходим на интересующий нас сайт, где хотим зарегистрироваться/авторизироваться, ставим курсор на поле с паролем и нажимаем кнопочку плагина на панели браузера, после чего в появившемся окне вбиваем мастер пароль и жмём кнопку OK или Enter. Пароль будет автоматически сгененрирован и вставлен в поле, где был курсор.

Данный плагин и онлайн версию можно использовать не только для сайтов. Если вам необходим пароль для сторонней программы, то необходимо в онлайн версии или в гостевом режиме плагина поставить галочку на «Забыть про домен».

Дополнительно доступны 4 кнопки (в онлайн версии 3):
Кнопки-иконки ¡No PASSarán

  • Копировать пароль в буфер обмена
  • Показать сгенерированный пароль
  • Расширенные настройки генерации пароля
  • Гостевой режим (не доступно в онлайн версии, потому что онлайн версия изначально и воспроизводит гостевой режим)

Алгоритмы генерации

Алгоритмы строятся следующим образом. Например мы указали телефон 88005555555, соль Кузя и мастер пароль quaka42eqava, для сайта example.com. Далее будет три этапа автоматической генерации исходя из алгоритма:

  1. Получаем все части (не буду дублировать части):
    • 8 — Первая половина мастер пароля — это quaka4
    • 0 — Доменное имя целиком — это example
    • 5 — Количества символов в зоне — это зона COM, а следовательно 3
  2. Полученное складывается в строку, но в начале обязательно добавляется мастер пароль, это дополнительная предосторожность: quaka42eqavaquaka4quaka4exampleexample3333333. Неплохой длины получается пароль, да? Кто сможет прикинуть сколько лет надо на подбор?
  3. Последним шагом уменьшаем число лет на подбор, а именно перегоняем эту строку в MD5 => md5(quaka42eqavaquaka4quaka4exampleexample3333333) => f837bab2e4d20a53e884a42e9473708a

Алгоритмы возможно строить двумя способами — базовым и расширенным.

Базовые способ построения алгоритма

Для базового алгоритма доступны все буквы (русские и английские) и цифры, их надо указывать единым «словом».

  • 0 — Доменное имя целиком (alias: a, k, u, а, й, у, э)
  • 1 — Доменная зона целиком (alias: b, l, v, б, к, ф, ю)
  • 2 — Первая половина домена (alias: c, m, w, в, л, х, я)
  • 3 — Вторая половина домена (alias: d, n, x, г, м, ц)
  • 4 — Количества символов в домене (alias: e, o, y, д, н, ч)
  • 5 — Количества символов в зоне (alias: f, p, z, е, о, ш)
  • 6 — Соль целиком (alias: g, q, ё, п, щ)
  • 7 — Мастер пароль целиком (alias: h, r, ж, р, ъ)
  • 8 — Первая половина мастер пароля (alias: i, s, з, с, ы)
  • 9 — Вторая половина мастер пароля (alias: j, t, и, т, ь)

Расширенные способ построения алгоритма

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

  • 10 — Перевернутое доменое имя целиком
  • 11 — Перевернутая доменая зона целиком
  • 12 — Перевернутая первая половина домена
  • 13 — Перевернутая вторая половина домена
  • 14 — нет
  • 15 — нет
  • 16 — Перевернутая соль целиком
  • 17 — Перевернутый мастер пароль целиком
  • 18 — Перевернутая первая половина мастер пароля
  • 19 — Перевернутая вторая половина мастер пароля
  • 160 — Первая половина соли
  • 161 — Вторая половина соли
  • 162 — Перевернутая первая половина соли
  • 163 — Перевернутая вторая половина соли

То есть например 8-8-0-0-163-10-13

Расширенные настройки

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

Есть сайты, которые запрещают использовать более определённого числа символов в пароле. На таких сайтах можно включить настройку обрезания. В ¡No PASSarán используется стандартная javascript функция substr, поэтому подробности, как обрезать строку можно посмотреть в документации к этой функции. Пример использования:
Предположим у нас будет сгенерирована строка «абвгдеёжзи», то вбив в поле «Обрезать» числа, у нас будет следующее

-3, 2  => жз
-3     => жзи
 1     => бвгдеёжзи
-20, 2 => аб

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

Преимущества и недостатки

Теперь не надо хранить сотни паролей ни на компьютере, ни в голове, ни в блокнотике. Все пароли уникальные и взломать или украсть их почти невозможно. Пароль состоит из двух частей (трех элементов): Мастер пароль и алгоритм с солью, которые отделены друг от друга. Алгоритм и соль хранятся в браузере и их могут украсть, завладев вашим компьютером, но злоумышленники всё равно не смогут получить пароли ваши. Если же будет украден мастер-пароль, например с помощью кейлоггера, то не зная алгоритм и соль — они не смогут получить доступ к паролям.

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

Данные пароли сложно поддаются социальной инженерии.

Пароли можно передавать по незащищённому (http) соединению. Даже если пароль будет перехвачен для текущего сайта, пароли от других сайтов останутся в безопасности.

Из недостатков:

  • Необходимо помнить три ключевых «слова». Хотя соль и алгоритм можно не запоминать, а написать на листочке и спрятать в сейф, чтобы когда нибудь восстановить, если вдруг потребуется, но тогда не будет доступна онлайн версия, если вы забудете.
  • Необходимо иметь под рукой компьютер с плагином или зайти на онлайн версию.
  • На данный момент нет спецсимволов, но они запланированы

Ещё немного о ¡No PASSarán

В последней версии добавлена возможно генерировать пароль в режиме гостя. Благодаря этому можно на одном сайте иметь несколько аккаунтов с разными сгенерированными паролями. Для этого можно, например, в поле «Соль» прописать текущий логин и используя эту соль-логин будет сгенерирован уникальный пароль. Зная очередной логин — не надо будет вспоминать пароль, ведь всё остальное (алгоритм и мастер-пароль) используется как и прежде.

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

Рубрики: JavaScript | 2 комментария
  1. Александр # link

    Гений просто, все гениально и просто, а не думаешь еще хоть на Corodva к примеру накидать такую же програмулину, для Android, для начала хоть просто apk

  2. BaNru # link

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

    В планах думал о приложение, скорее всего на node.js с хромиумом (WebKit), но ещё не делал приложений.

Оставить комментарий

В блоге включена ручная модерация комментариев. Нет смысла повторно отправлять комментарий.
Поля отмеченный звездочкой * обязательны к заполнению

Перед отправкой формы: