Дерево страниц

Seahorse — входящее в состав репозитория Astra Linux Common Edition графическое приложение для управления PGP и SSH ключами.
Приложение поддерживает интеграцию с Nautilus, gedit и почтовым клиентом  Evolution для защитного преобразования данных.
Также имеется поддержка работы с серверам ключей HKP и LDAP.

Программа основана на GnuPG и распространяется как свободное программное обеспечение под лицензией GNU GPL.


Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10, РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12

Графический менеджер паролей и ключей Seahorse

Установка пакета

Пакет seahorse включен в репозиторий Astra Linux Common Edition и может быть установлен с помощью графического менеджера пакетов (см. Графический менеджер пакетов synaptic) или из командной строки командой:

apt install seahorse

При написании статьи использовалась версия пакета 3.20.0

Запуск приложения

После установки пакет доступен для запуска из командной строки:

seahorse

Основные приемы работы с пакетом

Главное окно программы отображает хранимую информацию, распределенную по четырем категориям:

  • пароли;
  • сертификаты;
  • безопасная оболочка;
  • ключи PGP;
  • секретный ключ.

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

Отключение запроса пароля к основной связке ключей

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

Следует помнить, что отключение пароля снижает общую защищенность системы. Более безопасным вариантом исключения повторного ввода пароля является использование PAM-модуля pam-gnome-keyring.

Для отключения запрос пароля:

  • Правой кнопкой мыши выбрать связку ключей "Вход" в категории "Пароли" (в зависимости от используемой версии ОС или системного языка связка может называться "Основная" или "Login");
  • В появившемся окне ввести пароль от этой связки ключей;
  • В появившемся окне для ввода нового пароля оставить поля ввода пустыми, и нажать кнопку "Продолжить";
  • Программа выдаст предупреждение о возможных последствиях. Еще раз нажать кнопку "Продолжить".

При необходимости возврат пароля для доступа к связке ключей осуществляется аналогичными действиями.

PAM-модуль pam-gnome-keyring

Модуль pam-gnome-keyring (пакет libpam-gnome-keyring) позволяет автоматически разблокировать связку ключей "Вход" паролем, который пользователь вводит при входе в систему, что исключает необходимость повторного ввода пароля при запуске приложений. Пароли от других связок ключей могут храниться в связке "Вход", тогда и другие связки разблокируются автоматически.

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

Установка пакета

Пакет libpam-gnome-keyring включен в репозиторий Astra Linux Common Edition, и может быть установлен с помощью графического менеджера пакетов или из командной строки командой:

apt install libpam-gnome-keyring

Работа пакета

Работа пакета подробно описана в документации разработчика.

Общий порядок работы:

  • При аутентификации пользователя или при входе в сессию, модуль проверяет наличие переменной окружения GNOME_KEYRING_CONTROL.
    Если переменная отсутствует, предполагается, что gnome-keyring-daemon не запущен для этой сессии.

    • Если указана опция auto_start модель запускает gnome-keyring-daemon.

    • Если указана опция only_if то опция auto_start отрабатывается только в том случае, если процесс есть в списке.
      Например, auto_start only_if=fly_dm запустит gnome-keyring-daemon только для fly_dm.

  • При аутентификации пользователя модуль пытается разблокировать связку ключей 'Вход' паролем, который ввёл пользователь.
    • Если связка ключей 'Вход' не существует, она будет создана с паролем пользователя.
    • Если связка 'Вход' является перовой и единственной связкой ключей, то она становится используемой по умолчанию.
  • При завершении этапа если gnome-keyring-daemon был запущен модулем, то демон будет остановлен.

  • Когда пользователь меняет пароль, модуль также меняет пароль связки 'Вход'.
    • При необходимости, на этом этапе также запускается gnome-keyring-daemon .

    • Если суперпользователь меняет пароль, или /etc/shadow редактируется напрямую, в силу отсутствия старого пароля связка Вход' не будет обновлена.
  • Если связка существует 'Вход' и разблокирована, то при каждом последующем приглашении пользователю разблокировать иную связку ключей будет предоставляться возможность включить автоматическую разблокировку при следующем входе ("Automatically unlock this on login")
    • При согласии пользователя пароль связки будет добавлен в связку 'Вход'
    • Перед тем, как запросить согласие пользователя на автоматическую разблокировку, модуль проверяет, нет ли уже пароля от этой связки в связке 'Вход'.

Настройка авторизации

В зависимости от задач возможно разное применение модуля. Для вызова модуля при прохождении PAM-стека используются следующие основные варианты:

Вариант вызова модуляТиповое размещениеНазначениеКомментарий
password optional pam_gnome_keyring.so/etc/pam.d/common-passwordОбновление пароля связки ключей при смене пароляУстанавливается автоматически при установке пакета
auth optional pam_gnome_keyring.so/etc/pam.d/common-authПолучение ранее введенного текущего пароля пользователя и сохранение его для последующего использования.

Эти вызовы должны быть добавлено вручную.Вызовы модуля следует добавить в секцию "The additional".


session optional pam_gnome_keyring.so auto_start/etc/pam.d/common-sessionЗапуск службы ключей Gnome Keyring.
Разблокировка связки ключей с использованием ранее сохраненного пароля пользователя.

Опции модуля pam_gnome_keyring:

Опция \ Этап сессииauthsessionpassword
auto_startЗапустить демон gnome-keyring, если он еще не запущен.На этапе password демон запускается всегда, а если опция auto_start не указана - демон будет остановлен после смены пароля.
only_if=список_сервисовЕсли PAM-сессия запущена сервисом, не находящимся в списке, PAM-модуль не будет выполнять никаких действий (запуск демона, разблокировка, смена пароля). Пример: only_if=fly_dm
use_autktokИгнорируетсяИспользовать ранее заданный пароль и не запрашивать новый, даже если пароль не задан.

Инструмент командной строки gpg (gpg2)

Для управления ключами пользователя в состав дистрибутивов Astra Linux включен пакет gnupg.
Пакет устанавливается автоматически при установке системы.

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

Основные инструменты пакета gnupg:

  • gpg - основной инструмент для работы с ключами. Подробная справка по работе с файлами доступна по ссылке или по команде man gpg. Примеры команд:
    • Получение ключей с сервера ключей по отпечатку ключа:

      gpg --keyserver keys.gnupg.net --receive-keys 6FB2A1C265FFB764

    • Вывод списка зарегистрированных открытых ключей (по умолчанию - для текущего пользователя):

      gpg --list-keys
      Пример вывода команды:

      $ gpg --list-keys
      /home/user/.gnupg/pubring.kbx
      ---------------------------
      pub   rsa2048 2011-03-10 [SC]
            972FD88FA0BAFB578D0476DFE1F958385BFE2B6E
      uid         [ неизвестно ] X2go Debian/Ubuntu Packaging <debian@x2go.org>
      sub   rsa2048 2011-03-10 [E]

      pub   rsa4096 2012-05-08 [SC] [   годен до: 2019-05-07]
            ED6D65271AACF0FF15D123036FB2A1C265FFB764
      uid         [ неизвестно ] Wheezy Stable Release Key <debian-release@lists.debian.org>
    • Удаление открытого ключа:

      gpg --delete-keys debian-release@lists.debian.org
      Пример вывода команды:

      $ gpg --delete-keys debian-release@lists.debian.org
      gpg (GnuPG) 2.2.12; Copyright (C) 2018 Free Software Foundation, Inc.
      This is free software: you are free to change and redistribute it.
      There is NO WARRANTY, to the extent permitted by law.

      pub  rsa4096/6FB2A1C265FFB764 2012-05-08 Wheezy Stable Release Key <debian-release@lists.debian.org>

      Удалить данный ключ из таблицы? (y/N) y
  • gpg-zip - инструмент для защитного преобразования и подписания архивов. См. man gpg-zip;
  • gpgconf - настройка параметров работы с ключами. См. man gpgconf.

Управление ключами SSH

Управление ключами SSH c помощью конфигурационного файла

Для SSH-подключения к другим компьютерам по умолчанию используются приватные ключи, расположенные в файлах ~/.ssh/id_rsa и ~/.ssh/id_dsa. Дополнительные файлы с ключами могут быть указаны в конфигурационном файле  ~/.ssh/config параметром IdentityFile. При этом может быть указано несколько ключей, которые будут применяться при подключении в порядке их указания. Например:

Host * 
 IgnoreUnknown UseKeychain 
 UseKeychain yes 
 AddKeysToAgent yes 
 IdentityFile ~/.ssh/github
 IdentityFile ~/.ssh/gitlab

Подробную информацию про конфигурационный файл см. man ssh_config.

Управление ключами SSH c помощью gnome-keyring

Для передачи управления ключами службе gnome-keyring:

  1. Включить автоматический запуск необходимых служб, для чего в менеджере автозапуска ("Панель управления" -> "Автозапуск" -> "Общесистемный автозапуск") отметить три службы gnome-keyring:
    1. Агент ключей SSH;
    2. Служба безопасного хранения;
    3. Хранилище сертификатов и ключей;

  2. В переменной окружения SSH_AUTH_SOCK указать каталог $XDG_RUNTIME_DIR/keyring/ssh:

    export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/keyring/ssh
    Чтобы значение переменной устанавливалось автоматически можно указать в файле ~/.bashrc новое значение:

    SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/keyring/ssh

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