Emacs Password Manager

Думаю, что объяснять, для чего нужны Password Managers не нужно. Ресурсов много, желательно для каждого использовать свои логины и пароли, причем пароли должны быть стойкими. Запомнить их проблематично, а когда количество ресурсов становиться более сотни – то и не реально.

Для хранения паролей используются специализированные программы, типа keepassx, fpm2… Но часто, работая в Emacs просто не хочется переключаться на другие программы. Да и зачем собственно? Если в Emacs уже присутствует интерфейс для работы с GPG (свободная реализация PGP). Давайте попробуем создать свой Password Manager на основе Emacs?

Для этого создаем файл с расширением .org.gpg. И открываем его в Emacs. Двойное расширение используется для указания режимов, в которых будет работать емакс после открытия данного файла.

org – используется для указания режима org-mode, подробно на нем останавливаться не буду, чуть позже только покажу, для чего мы будем использовать его, расскажу чуть позже.

gpg – используется для указания того, что данный файл кодируется с применением GnuPG.

Если org-mode установлен и настроен, то после открытия файла появляются два пункта меню: Org и Tbl. Вот вторым мы и воспользуемся. Выбираем создание таблицы и указываем формат 4×2, то есть четыре столбца и 2 строки.

Заполняем заголовки нужными нам значениями (по сути формируем таблицу так, как считаем нужным), я выбрал следующие поля и начал заполнять значения:

Создание таблицы

Создание таблицы

Режим org-mode очень удобен при создании таблиц тем, что при заполнении таблицы ширина столбцов меняется автоматически (обратите внимание на то, как изменилась ширина при изменении содержимого стобцов):

Изменение ширины столбцов

Изменение ширины столбцов

После того, как заполнили таблицу, просто сохраняем файл (Ctrl+x Ctrl+s), на что получаем вопрос об используемом ключе:

Запрос на использование ключа

Запрос на использование ключа

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

Если же просто нажать ОК, то будет использоваться симметричное шифрование. В данном случае сложность шифрования зависит только от выбранного пароля.

Ввод пароля

Ввод пароля

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

Далее возможно два варианта: или введенный пароль будет кешироваться и в следующий раз при открытии данного файла пароль уже запрашиваться не будет (в течение текущей сессии), или же пароль будет спрашиваться каждый раз. Регулировать данное поведение можно устанавливая значение переменной epa-file-cache-passphrase-for-symmetric-encryption в файле конфигурации емакса:

(setq epa-file-cache-passphrase-for-symmetric-encryption t)

в данном случае пароль будет кэшироваться, а если

(setq epa-file-cache-passphrase-for-symmetric-encryption nil)

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

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

зы: совсем забыл указать, что в версии емакса 23.1 работа с gpg встроена и работает из коробки, не требуя предварительной настройки…

Похожие записи:

  1. Emacs Tramp-mode
  2. Emacs на рельсах…
  3. emacs –daemon
  4. Emacs jabber
  5. Juick-el

Метки:

Отзывов (8) на «Emacs Password Manager»

  • круто, я именно так и храню свои пароли уже примерно год, очень удобно. Еще обычно открыт буфер dired с дирой, где все мои org файлы, нажал на файлике с паролями v, ввел пароль и получил свою базу.

  • я не претендовал на открытие… просто решил поделиться методами работы… =)
    орг-моде используешь для организации паролей?

  • Я использую epa для хранения паролей к различным сервисам (mail, twitter, jabber, lastfm,…), следующим образом:

    (defun my-auth-info ()
    (interactive)
    (save-excursion
    (find-file «~/.emacs.d/private.el.gpg»)
    (eval-buffer)
    (kill-buffer)))

    (add-hook ‘after-init-hook ‘my-auth-info)

  • в данном случае файл private.el.gpg содержит описание функций авторизации на данные сервисы? причем сервисы используются в самом емаксе? я правильно понимаю?

  • Я так думаю у него в файле private.el.gpg просто переменные с логинами/паролями, которые после эвала используются различными приложениями в Emacs.

    А для меня обязательной функцией менеджера паролей является генерирование случайного пароля при добавлении записи, т.к. я добавляю её обычно в тот момент, когда регистрируюсь в сервисе.
    Можно написать генератор на Elisp, а можно просто использовать один из многочисленных cli генераторов паролей.

    P.S. Я раньше использовал для управления паролями шелл-скрипт:
    http://pavel.vyazovoi.info/articles/bash-password-manager/pass?attredirects=0
    А сейчас использую портативный keepass с ключами в симбиозе с truecrypt.

  • Я тоже так подумал, что именно в таком виде он использует… Но в статье говориться немного о другом…
    Для меня генерирование пароля тоже важная часть менеджера. Тут просто ее еще не реализовал. Надо будет попробовать…
    А пока, как и несколько лет подряд уже, использую keepassx… Начинал давненько уже с keepass…
    А в последнее время еще обратил внимание на lastpass, хорошая вещь для веба.

  • Гм, у меня не появляется список средств асимметричного шифрования,
    как на скриншоте:

    http://www.juev.ru/wordpress/wp-content/uploads/2009/08/emacs-pass-3.png

    Хотя выбор способа и предлагают (из 0 вариантов).
    Я даже не против симметричного, но хотелось бы просто понять
    в чем дело.

    ОС: Win XP SP 2
    GNU Emacs 23.1.50.1 (i386-mingw-nt5.1.2600)
    gpg (GnuPG) 1.4.9 (из Cygwin)

    P.S. За статью спасибо, очень кстати – беру на вооружение :)

  • Под Win я не пробовал использовать Emacs с GnuPG, потому точного ответа даже не могу дать, почему вам не дают вариантов шифрования.

Вы можете оставить свой комментарий...

Имя (required)
Почта (обязательно)
Сайт