Emacs Password Manager

10 August 2009 #emacs #security

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

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

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

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

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

Если org-mode установлен и настроен, то после открытия файла появляются два пункта меню: Org и Tbl. Вот вторым мы и воспользуемся. Выбираем создание таблицы и указываем формат 4x2, то есть четыре столбца и 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 встроена и работает из коробки, не требуя предварительной настройки…