Яндекс.Метрика

    Реклама

    Paranotic — для заметок, для паролей

    Я хочу поделиться с вами необычным менеджером паролей (for Win), который сделал около года назад. Думаю, что теперь его не стыдно показать и возможно он найдет здесь своих пользователей: www.paranotic.com

    Год назад объем моих паролей от хостингов, регистраторов, FTP и email аккаунтов превысил пресловутые 10% возможностей мозга. Я, как и многие здесь, генерировал пароли по какому-то своему алгоритму, так, чтобы можно было всегда вспомнить, а также имел набор «проверенных временем» и «исторически сложившихся» паролей.

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

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

    1. Ежедневный бэкап на веб-сервер.

    Чтобы не беспокоится о потерянной флешке и, как вариант, иметь возможность «достать» свои пароли, не имея под рукой заветного файлика, но имея доступ в Сеть.

    2. Хранение данных в произвольной текстовой форме, примерно, как в блокноте.

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

    3. Полнотекстовый поиск

    К поиску у меня вообще требования жесткие были. Хотелось иметь возможность по первым буквам найти заметку из сотни других. Например «Кредитка VTB», не важно где эти слова встречаются в заметке и в каком порядке. Мне нужно найти данные кредитки VTB! Также необходим список последних поисковых запросов, чтобы минимизировать использование клавиатуры.

    4. Удобный, минималистичный интерфейс.

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

    5. Естественно, надежный алгоритм шифрования и работы с данными.

    Этот пункт, к счастью, выполняют все известные менеджеры паролей.

    От слов к делу


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

    Главное требование к модулю (после наличия алгоритма BlowFish) — наличие функции PBKDF2. Как известно, ключ, которым шифруются данные, получают с помощью какой-нибудь «сильной» хэш-функции, например, SHA-256. При генерации пароль хэшируется и получается ключ. Та же операция происходит при взломе перебором паролей. А главное в переборе — скорость. И чтобы уменьшить скорость перебора паролей, ученые придумали Password-Based Key Derivation Function — грубо говоря, пароль хэшируется не один, а скажем 1000 раз, что практически не заметно при открытии шифрованного файла, но существенно заметно при переборе, так как потребует в 1000 раз больше операций при той же длине пароля.

    Определившись с «движком», я начал работу над программой.
    Далее концепция по пунктам:

    1. Данные хранятся в одном файле, зашифрованном одним Мастер-паролем

    Тут ничего необычного. Все как у большинства хранителей паролей. Алгоритм шифрования BlowFish, ключ 448 bit. Генерации ключа: SHA256 x PBKDF2

    2. Данные разбиваются на заметки.

    Скажем, одна заметка про хостинг (логин, пароль, регистрационный емайл, ссылка на панель управления, телефон поддержки), другая — про подозрительного соседа (во сколько приходит, кого приводит + телефон кого_следует), третья — телефон госдепа, данные кипрского счета и т.д.

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

    3. Поисковый запрос разбивается пробелом на отдельные «слова».

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

    4. Автосохранение при создании и редактировании заметок.

    Тут все понятно. Редактируете заметку, и изменения автоматически сохраняются. Можно отключить, если жить не можете без Ctrl+S.

    5. «Нежное» удаление заметок.

    Чтобы ненужные или устаревшие заметки не болтались в общей ленте, можно их смело удалять. А в случае необходимости найти на вкладке Deleted.

    6. Бэкап зашифрованного файла на сервер.

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

    Механизм восстановления (получения файла с сервера) следующий:
    Включая функцию бэкапа, вы указываете емайл, на который будет выслан файл по вашему требованию. Раз в сутки, при наличии изменений, файл загружается на сервер. В случае потери фала вы идете на paranotic.com/restore и запрашиваете восстановление файлов. Если в базе есть файлы, соответствующие указанному емайлу, на этот емайл вы получаете письмо со ссылками на свои файлы. Скачиваете их и открываете своим мастер-паролем.

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

    7. Быстрый доступ к данным

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

    Параметр: значение

    позволит копировать значение одним кликом. Чтобы визуально скрыть пароли, достаточно после параметра поставить звездочку:

    Пароль*: симсим

    После сохранения эта строка будет выглядеть так:

    Пароль*: ******

    и чтобы скопировать симсим в буфер, нужно будет просто кликнуть по звездочкам.

    8. Hot keys

    При редактировании заметки, или при просмотре можно нажать горячие клавиши и быстро создать, например, заметку вида Логин-Пароль-Url.

    Ctrl+L — вставить Login:
    Ctr+P — вставить Password:
    Ctrl+G — генерировать пароль (если нажать Ctrl+G несколько раз подряд, генерируемый пароль «усложняется»).

    9. Скрывающееся окно программы.

    Окно паранотика можно сдвинуть к краю стола и тогда оно смешно уедет за экран, чтобы не мешать работе. Чтобы оно смешно выскочило — просто подведите мышку к краю экрана. Если надо — можно закрепить окно кнопочкой Fix, чтобы не скрывалось.

    10. Автоматическая блокировка файла.

    Оставлять файл открытым, согласитесь, не целесообразно, даже если вы отошли на 10 минут на обед или к шефу за зарплатой. Поэтому файл блокируется после определенного времени простоя, либо при закрытии окна программы. Но и вводить сложный мастер-пароль каждый раз тоже замучаешься…

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

    11. Замести следы, убрать свидетелей.

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

    Кстати, у КипАса есть такая фишка, как специальное поле для ввода мастер-пароля. Типа никто не сможет перехватить вводимый пароль… Я тоже так хотел, пока не перехватил ввод пароля в КипАс тупейшим перебором нажатых клавиш. Так что от этой фишки я отказался и пароль вводится в обычное «запароленное» поле. Пожалуй, это самое слабое место всех хранителей паролей. Но я надеюсь, здесь все уже пользуются антивирусами.

    Как всем этим пользоваться?


    В двух словах как паранотиком пользуюсь я: у меня есть мобильник, который я использую как флешку. В нем хранится зашифрованный файл. Во время работы я подключаю мобильник к компьютеру, выскакивает паранотик и просит пароль. Ввожу пароль, закрываю паранотик. Если в процессе работы мне требуется что-то записать — мышку влево до упора (выскочил паранотик), ввод пинкода — все! Заметки открыты. Записываю или ищу что мне надо. Отключил мобильник от компьютера — паранотик закрылся, дамп очистился. Очень удобно.

    В заключение


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

    Ваши планы на будущее?


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

    Благодарю за комментарии и замечания.