- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF108:DrBraun2
Материал из Linuxformat.
Храните пароли в надежном месте
- GPG и немного кодирования позволять вам создать надежную систему хранения паролей. Вот та, которую мы собрали для себя...
Не знаю, как у вас, а у меня столько учетных записей на разных сайтах, что приходится хранить их не только в голове. Раньше я записывал имена и пароли в маленькую черную книжечку, но всегда боялся, что она попадет в руки злоумышленника, и он серьезно испортит мне жизнь. И я решил, что будет безопаснее хранить их в зашифрованном файле: единственное, что тут надо помнить, это пароль для его декодирования. Идея такова: когда мне нужен пароль, я расшифровываю файл, беру оттуда то, что требуется и удаляю текстовую версию хранилища. Итак, мой мини-проект этого месяца – простая утилита для работы с паролями.
Для шифрования я взял gpg, утилиту, использующую схему с открытым/закрытым ключом (для моих целей это даже слишком хорошо), в основе которой лежит достаточно сложная технология. Но вам нужно знать лишь то, что для gpg надо сгенерировать открытый и закрытый ключи и сохранить их в каталоге ~/.gnupg. С помощью открытого ключа файл с паролями шифруется, а закрытого – расшифровывается. Закрытый ключ и сам зашифрован и защищен «парольной фразой». Ее я и буду помнить, чтобы иметь доступ ко всем паролям.
Простоты ради я свернул необходимые команды в небольшой скрипт (который есть на DVD). Он называется “pwm” (управление паролями – password management) и запускается тремя способами:
pwm -i
Это инициализация системы. Для генерации открытого/закрытого ключа вызывается gpg --gen-key, создается начальное (естественно, пока пустое) зашифрованное хранилище паролей. Такой вызов нужен только один раз.
pwm -e
Хранилище паролей расшифровывается в текстовый файл и открывается в редакторе (vi). gpg запросит парольную фразу. При сохранении файла он сразу шифруется, а текстовая версия удаляется. Обратите внимание, что у файла нет определенного синтаксиса – это просто набор строк, которые можно пропускать через grep.
Например, мою учетную запись в Linux Format можно записать так:
Linux Format caligula / L1ttleB00ts
Третий вариант вызова скрипта таков:
pwm запрос
Здесь я ищу пароль. Хранилище расшифровывается, и результат передается в grep для поиска заданной строки. gpg опять же запросит парольную фразу.
Скрипт достаточно прост в работе, если не считать длинного и страшноватого диалога при начальной генерации пары ключей командой gpg --gen-key (его я воспроизводить не буду). В большинстве случаев можно просто использовать варианты по умолчанию. Когда будет запрошено «настоящее имя» (“real name”), нужно ввести имя пользователя (или по крайней строку, где оно есть). Это имя будет использоваться для выбора открытого ключа. Поля «адрес электронной почты» (“email address”) и «комментарий» (“comment”) можно оставить пустыми.
А если нужно графическое (и более изысканное) средство управления паролями, попробуйте Revelation (http://oss.codepoet.no/revelation). В Revelation можно работать с одним или несколькими хранилищами: в каждом могут содержаться данные о множестве сайтов и паролей, и их можно организовать в папки.
Все хранилища зашифрованы и защищены паролем, который нужно ввести для открытия. Требуемый сайт можно найти с помощью панели слева, в стиле проводника, или поля поиска. Как видно на экранном снимке, пароль будет явно показан в окне Revelation, хотя эту возможность можно отключить. После выбора ресурса, нажатие на кнопку Перейти на сайт (Go to) отправит вас на него; соответствующий пароль (в чем и фишка) будет скопирован в буфер обмена, готовый ко вставке.
Revelation – приятное и хорошо продуманное приложение. Меня беспокоит только одно: если оно будет запущено постоянно (а так удобнее всего), то любой подошедший к вашему компьютеру, пока вы пьете кофе в сторонке, увидит имена и пароли. Это почти то же самое, что оставить мою маленькую черную книжечку на столе открытой.
Взгляд в виртуальность
Перейду от глобальных вопросов к мелочам: недавно мое внимание привлекла еще одна интересная штука – JeOS (вероятно, произносится как ‘juice’). Это «обкромсанный» Linux-сервер от Canonical, предназначенный для построения «виртуальных приставок» [appliances] – полных образов компьютеров для запуска в виртуальной среде типа VMware. Для JeOS достаточно 128 МБ памяти и менее 300 МБ жесткого диска. Это серверная система (без графической среды) с ядром 2.6.24, специально оптимизированным для VMware. Если вам интересно взглянуть на нее, загрузите ISO-образ (менее 100 МБ) с сайта http://cdimage.ubuntu.com/jeos.