ОС Astra Linux и Рутокен — безопасность ИТ-систем, данных и удаленных подключений

ОС Astra Linux и Рутокен — безопасность ИТ-систем, данных и удаленных подключений Электронная цифровая подпись
Содержание
  1. Скачиваем актуальную версию КриптоПро CSP. Может потребоваться авторизация. Далее распаковываем архив и устанавливаем компоненты КриптоПро:
  2. Скачиваем и устанавливаем корневой сертификат УЦ.
  3. Скачиваем КриптоПро ЭЦП Browser plug-in.
  4. Перезапускаем браузер и заходим на тестовую страницу КриптоПро CSP.
  5. Pam_p11
  6. Rutoken s драйвер astra linux
  7. Блокировка компьютера при извлечении токена
  8. Для рутокен эцп
  9. Дополнительные источники информации
  10. Драйверы для *nix
  11. Занесение сертификата в список доверенных
  12. Извлечение сертификата из токена
  13. Конфигурация pam
  14. Модуль pam и его зависимости
  15. Настройка pam_p11
  16. Немного истории
  17. Очистка всех данных с рутокена
  18. Параметры
  19. Поддерживаемые модели
  20. Практическое использование
  21. Примеры использования
  22. Проверка
  23. Проверка работы рутокен в системе
  24. Разработка модуля аутентификации для pam
  25. Руководитель отдела продуктов и интеграций рутокен, актив
  26. Рутокен в astra linux
  27. Собственно разработка модуля
  28. Создание ключа и сертификата
  29. Способ №2
  30. Способ №3
  31. Структура pam
  32. Технический руководитель проектов департамента внедрения и сопровождения гк astra linux
  33. Установка
  34. Установка дополнительный пакетов
  35. Установка дополнительных пакетов
  36. Заключение

Скачиваем актуальную версию КриптоПро CSP. Может потребоваться авторизация. Далее распаковываем архив и устанавливаем компоненты КриптоПро:

/Downloads tar -xf linux-amd64_deb.tgz cd linux-amd64_deb sudo ./install_gui.sh #Установить необходимые компоненты, например, как на скриншоте

# Если необходима автоматическая установка, то можно использовать следующую команду

sudo ./install.sh cprocsp-rdr-pcsc cprocsp-rdr-rutoken cprocsp-rdr-cryptoki

# Ключ cprocsp-rdr-cryptoki указывается, если необходимо работать с библиотекой rtpkcs11ecp через КриптоПро CSP

Скачиваем и устанавливаем корневой сертификат УЦ.

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

Скачиваем КриптоПро ЭЦП Browser plug-in.

/Downloads tar -xf cades_linux_amd64.tar.gz cd cades_linux_amd64

# Устанавливаем пакеты sudo dpkg -i cprocsp-pki-cades_*_amd64.deb sudo dpkg -i cprocsp-pki-plugin_*_amd64.deb

# Копируем файл libnpcades.so в папку с плагинами (если используется Firefox) sudo cp /opt/cprocsp/lib/amd64/libnpcades.so /usr/lib/firefox-addons/plugins/libnpcades.so

Для Google Chrome устанавливаем расширение CryptoPro Extension for CAdES Browser из магазина Chrome.

Перезапускаем браузер и заходим на тестовую страницу КриптоПро CSP.

Источник

Pam_p11

Данный модуль позволяет осуществить двухфакторную аутентификацию пользователей по смарт-картам или USB-токенам с помощью ассиметричной криптографии. Рассмотрим общую схему его работы:

Аутентификация происходит следующим образом:

  1. На токене выполняется поиск сертификата пользователя
  2. Через PAM производится запрос PIN-кода к токену
  3. Если аутентификация на токене прошла успешно, то производится подпись случайных данных с помощью закрытого ключа с токена. Сама подпись выполняется аппаратно.
  4. Полученная ЭЦП проверяется с помощью сертификата пользователя


Если в итоге проверка подписи осуществлена успешно, то модуль говорит наружу, что все хорошо.

В данной схеме используются ключевая пара RSA длины 2048 бит, сгенерированная аппаратно на токене.

Rutoken s драйвер astra linux

Для обеспечения работы с электронными ключами Rutoken в ОС семейства Linux необходимо установить:

1. КриптоПро CSP

2. Пакеты из состава дистрибутива КриптоПро CSP : cprocsp-rdr-pcsc, cprocsp-rdr-rutoken

Блокировка компьютера при извлечении токена

В состав пакета libpam-pkcs11 входит утилита pkcs11_eventmgr, которая позволяет выполнять различные действия при возникновении событий PKCS#11.

Для настройки pkcs11_eventmgr служит файл конфигурации — /etc/pam_pkcs11/pkcs11_eventmgr.conf

Пример файла конфигурации представлен ниже:

pkcs11_eventmgr < # Запуск в бэкграунде daemon = true ;

# Настройка сообщений отладки debug = false ;

# Время опроса в секундах polling_time = 1;

# Установка тайм-аута на удаление карты # По-умолчанию 0 expire_time = 0;

# Выбор pkcs11 библиотеки для работы с Рутокен pkcs11_module = /usr/lib/librtpkcs11ecp .so;

# Действия с картой # Карта вставлена: event card_insert < # Оставляем значения по умолчанию (ничего не происходит) on_error = ignore ;

# Карта извлечена event card_remove < on_error = ignore;

# Вызываем функцию блокировки экрана action = «fly-wmfunc FLYWM_LOCK» ; >

# Карта долгое время извлечена event expire_time < # Оставляем значения по умолчанию (ничего не происходит) on_error = ignore;

После этого добавьте приложение pkcs11_eventmgr в автозагрузку и перезагрузитесь.

Для рутокен эцп

При установке новой версии opensc потребовалось удовлетворить зависимости пакетов. Для этого были взяты следующие пакеты из репозитория Debian squeeze:

Дополнительные источники информации

При возникновении вопроса, на который вам не удалось найти ответ в этой инструкции, рекомендуем обратиться к следующим дополнительным источникам информации:

Веб-сайт содержит большой объем справочной информации об устройствах Рутокен.

Драйверы для *nix

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

Читайте также:  Универсальный инструмент для самозанятых | Такском

Для работы электронных идентификаторов Рутокен в deb-based системе должны быть установлены: библиотека libccid не ниже 1.4.2, пакеты pcscd и libpcsclite1.

Для работы в RPM-based системе должны быть установлены: пакеты ccid, pcscd и pcsc-lite.

Драйверы для Рутокен ЭЦП в современных операционных системах GNULinux не требуются (версия libccid не ниже 1.4.2). Пользователям стабильных или устаревших дистрибутивов может потребоваться внести изменения в конфигурационный файл.

Драйверы для Рутокен Lite в современных операционных системах GNULinux не требуются (версия libccid не ниже 1.4.2). Пользователям стабильных или устаревших дистрибутивов может потребоваться внести изменения в конфигурационный файл.

Необходимо загрузить установочный скрипт, запустить его и следовать указаниям установщика. После завершения процесса установки необходимо подключить Рутокен S в свободный USB-порт.

Занесение сертификата в список доверенных


На данном этапе нам осталось только прочитать с токена сертификат с нужным ID и записать его в файл доверенных сертификатов:

$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ pkcs15-tool -r <certificate_id> > ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates

Извлечение сертификата из токена

вместо нужно подставить ID который вы увидите в выводе команды

Если после строчки

нет ничего, значит устройство пустое. Следует обратиться к администратору или создать ключи и сертификат самостоятельно.

Конфигурация pam

Если приложению требуется аутентификация, то оно должно создать файл со своим именем в каталоге /etc/pam.d, в котором должны быть указаны модули, с помощью которых производится аутентификация и прочие действия. Посмотрим, что лежит в каталоге /etc/pam.d в Ubuntu 11.10

Модуль pam и его зависимости

Для осуществления аутентификации по токену были установлены пакеты:

Настройка pam_p11

К счастью, нам не почти не придется править конфиги руками. Достаточно только создать файл /usr/share/pam-configs/p11 со следующим содержанием:

Name: Pam_p11 
Default: yes 
Priority: 800 
Auth-Type: Primary 
Auth: sufficient pam_p11_opensc.so /usr/lib/opensc-pkcs11.so


Интерес предоставляет последняя строчка конфига, в которой мы указываем тип модуля, имя библиотеки и параметры, передаваемые модулю. Наш модуль принимает в качестве параметра путь к библиотеке PKCS#11.

Теперь нам осталось только выполнить команду

$ pam-auth-update

В появившемся диалоге необходимо выбрать pam_p11. Если вы хотите отключить аутентификацию по паролям, то можно отключить Unix authentication. Поскольку в конфигурационном файле профиля было указано, что модуль будет «sufficient», то при получении от нашего модуля ответа «PAM_SUCCESS» весь процесс аутентификации будет считаться успешным.

ОС Astra Linux и Рутокен — безопасность ИТ-систем, данных и удаленных подключений

Немного истории

В старые добрые времена если приложению в Linux требовалось запросить аутентификацию пользователя, то ему приходилось обращаться к файлам /etc/passwd и /etc/shadow. Такой подход был прост как пробка, но при этом разработчикам приходилось думать не только о работе с файлами, но и о вопросах безопасности.

Решением тому стал проект Linux-PAM. К слову сказать, сама архитектура PAM была впервые предложена компанией Sun в октябре 1995 года, а в августе 1996 года инфраструктура Linux-PAM была включена в дистрибутив Red Hat Linux. В настоящее время существуют три основных реализации PAM:

  1. Linux-PAM – основная реализация архитектуры PAM, рассматривается нами в этой статье
  2. OpenPAM – альтернативная реализация PAM, используемая в BSD-системах и Mac OS X
  3. Java PAM – Java-обертка над Linux-PAM

Очистка всех данных с рутокена

Инициализация утилитой pkcs11-tool:

$ pkcs11-tool —slot 0 —init-token —so-pin ‘87654321’ —label ‘Название_Вашего_токена’ —module /usr/lib/librtpkcs11ecp.so

Также для очистки всех данных воспользуйтесь командами:

Параметры

Утилита запускается из командной строки и имеет следующие параметры:

Поддерживаемые модели

  • Рутокен Lite
  • Рутокен Lite SC
  • Рутокен ЭЦП
  • Рутокен ЭЦП 2.0
  • Рутокен ЭЦП SC
  • Рутокен ЭЦП PKI
  • Рутокен ЭЦП Flash
  • Рутокен ЭЦП 2.0 Flash/touch
  • Рутокен PINPad

Ссылки на загрузку:

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

В качестве подопытного дистрибутива можно было бы взять свежую Ubuntu, но учитывая то, что в 12.04 все слишком хорошо работает, мы решили с пользой для общего дела настроить аутентификацию в релизе «Смоленск» операционной системы Astra Linux Special Edition по USB-токенам Рутокен ЭЦП и Рутокен S.

ОС Astra Linux и Рутокен — безопасность ИТ-систем, данных и удаленных подключений

Примеры использования

Отформатировать один токен с параметрами по умолчанию (для поточного выполнения убрать флаг -q)

Отформатировать токен, задав имя токена RutokenLabel , PIN-код пользователя 123456789 и PIN-код администратора 987654321 .

Читайте также:  Тема 1 Шифрование и электронно-цифровая подпись в системе документооборота (Лабораторная работа) - Лабораторная работа

Проверка

Чтобы проверить наличие сертификатов и ключевых пар на Рутокене введите команду:

В результате в окне терминала отобразится информация обо всех сертификатах и ключевых парах, хранящихся на Рутокене:

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

Проверка работы рутокен в системе

Для проверки работы Рутокена:Подключите устройство к компьютеру.

Разработка модуля аутентификации для pam

В этом разделе мы разберем исходный код модуля pam_p11 и рассмотрим основные моменты, которым стоит уделить внимание при написании своего собственного модуля.

Руководитель отдела продуктов и интеграций рутокен, актив

Компания «Актив» постоянно сотрудничает с производителями российских операционных платформ, интегрируя средства защиты информации Рутокен в самые актуальные и востребованные версии этих продуктов еще до их выхода на рынок. Так было и с ОС Astra Linux 1.7. В результате пользователи с первых дней работы с обновленной операционной системой получили возможность без каких-либо ограничений применять Рутокен в качестве защищенного носителя ключевой информации и устройства для аутентификации.

Рутокен в astra linux

Рутокен S– модель для надежного хранения контейнеров ГОСТ-криптопровайдеров: КриптоПро, VipNet и других. Сертифицированы во ФСТЭК.

Рутокен Lite– модель для надежного хранения контейнеров ГОСТ-криптопровайдеров: КриптоПро, VipNet и других. Сертифицированы во ФСТЭК. Обладает интерфейсом CCID и не требует установки дополнительных драйверов

Рутокен ЭЦП 2.0– имеет встроенный криптопровайдер и высокую производительность. Формирует квалифицированную электронную подпись (КЭП) при помощи сертифицированной реализации российских криптографических алгоритмов непосредственно в самом чипе устройстве, что повышает безопасность использования ЭП — ключ подписи никогда не покидает токен, его невозможно использовать или скопировать без ведома владельца. Работает с алгоритмами ГОСТ 2022. Сертифицированы в ФСБ и ФСТЭК.

Широко используется в системе ЕГАИС с 2022 года. В активном пользовании более полумиллиона устройств с квалифицированной электронной подписью.

Тестирование электронной подписи в Astra Linux:Кроме двухфакторной аутентификации, можно проверять также подписание документов.

Для Рутокен Lite/S подписание проверить через:

1) КриптоАРМ eSign или КриптоАРМ ГОСТ 2) Утилиту csptestf из состава КриптоПро CSP. Подробно в разделе на Подпись средствами «КриптоПро CSP»

Для Рутокен ЭЦП 2.0 подписание можно проверить несколькими способами:

1) КриптоАРМ eSign или КриптоАРМ ГОСТ 2) Тестовый центр регистрации Рутокен Рутокен Плагин 3) OpenSSL Рутокен engine 4) Утилиту csptestf из состава КриптоПро CSP. Подробно в разделе на Подпись средствами «КриптоПро CSP»

Рутокен для Байкала и Эльбруса

Рутокен Lite и Рутокен ЭЦП одинаково хорошо работают на всех платформах, где есть USB-интерфейс.Сейчас для Эльбруса и Байкала Рутокены подписывают через программы:1) Тестовый центр регистрации Рутокен Рутокен Плагин 2) Утилита из КриптоПро CSP 5.0

Собственно разработка модуля


В зависимости от функционала модуля, PAM может требовать от него наличия следующих функций:

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

Для работы с PAM необходимо определить специальные константы, а только затем подключить заголовочные файлы:

#define PAM_SM_AUTH
#define PAM_SM_ACCOUNT
#define PAM_SM_SESSION
#define PAM_SM_PASSWORD
#include <security/pam_appl.h>
#include <security/pam_modules.h>

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

Приступим к написанию функции pam_sm_authenticate. Она имеет следующую сигнатуру:

PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv);

Из важных параметров тут стоит отметить:

Функция должна вернуть одно из следующих значений:


Внутри нашего модуля мы будем пользоваться библиотекой libp11 для работы с API PKCS#11 и OpenSSL для работы с сертификатами.

Первым делом определим переменные, которые нам потребуются:

Создание ключа и сертификата

Для начала создаем ключевую пару RSA длины 2048 бит c ID «45» (id стоит запомнить, он понадобится при создании сертификата).

$ pkcs15-init --generate-key rsa/2048 --auth-id 02 --id 45
 <вводим PIN пользователя>


Проверим сгенерированный ключ:

$ pkcs15-tool --list-keys
Using reader with a card: Aktiv Rutoken ECP 00 00 
Private RSA Key [Private Key] 
Object Flags : [0x3], private, modifiable 
Usage : [0x4], sign Access Flags : [0x1D], sensitive, alwaysSensitive, neverExtract, local
ModLength : 2048 
Key ref : 1 (0x1) 
Native : yes 
Path : 3f001000100060020001 
Auth ID : 02 
ID : 45

Теперь с помощью OpenSSL создадим самоподписанный сертификат. Запускаем openssl и подгружаем модуль поддержки pkcs11:

$ openssl
OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:opensc-pkcs11.so
(dynamic) Dynamic engine loading support
[Success]: SO_PATH:/usr/lib/engines/engine_pkcs11.so
[Success]: ID:pkcs11
[Success]: LIST_ADD:1
[Success]: LOAD
Loaded: (pkcs11) pkcs11 engine

Создаем сертификат в PEM-формате:

OpenSSL> req -engine pkcs11 -new -key 1:45 -keyform engine -x509 -out cert.pem –text

В последней команде 1:45 — это пара :. Таким образом, мы создали сертификат на базе ключевой пары, хранящейся на токене. При этом в текущем каталоге должен создаться файл сертификата с именем cert.pem.

Читайте также:  Получение электронной подписи через МФЦ


Теперь сохраним сертификат на токен:

$ pkcs15-init --store-certificate cert.pem --auth-id 02 --id 45 --format pem 
<Вводим PIN пользователя>

Способ №2

путь до библиотеки librtpkcs11ecp.so может различаться

Для того чтобы определить путь до библиотеки librtpkcs11ecp.so введите команду:

Способ №3

графическая утилита XCA:

Структура pam


Для начала разберемся, что же такое «Модуль PAM». Модули представляют собой библиотеки, в которых прописаны обработчики операций, которые может направлять к ним сам PAM. Для примера, стандартный модуль pam_unix умеет следующее:

Ниже представлена общая схема работы PAM

ОС Astra Linux и Рутокен — безопасность ИТ-систем, данных и удаленных подключений

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

  1. Приложение инициализирует библиотеку PAM (libpam.so)
  2. PAM в соответствии с конфигурационным файлом для приложения обращается к требуемым модулям
  3. Модули выполняют возложенные на них действия
  4. Приложению возвращается результат операции

Конечно, PAM позволяет проводить не только аутентификацию. Функции PAM классифицируются по типу модулей. В скобках указаны обозначения модулей в конфигурационных файлах:


Сейчас нам интересна только аутентификация, поэтому рассмотрение остальных функций оставим любопытству читателя.

Технический руководитель проектов департамента внедрения и сопровождения гк astra linux

Множество российских организаций давно использует ОС Astra Linux и устройства линейки Рутокен, и все они периодически обновляют свои ИТ-системы. Подтверждение корректной работы актуальных смарт-карт и USB-токенов в среде нашей ОС — это гарантия того, что клиентам при переходе на более новые версии тех или иных решений не придется беспокоиться об их совместимости с ОС. Удобство для заказчиков и экономия их времени — это одни из ключевых приоритетов нашей компании, и мы в рамках программы Ready for Astra Linux активно тестируем работу технологических стеков и официально сертифицируем те продукты, в работоспособности которых под Astra Linux уверены.

Установка

Для выполнения действий данной инструкции необходимо установить следующее программное обеспечение:

  • библиотека libccid, librtpkcs11ecp.so;
  • пакеты libpcsclite1 и pcscd;
  • opensc;

Для установки в терминале введите команду:

Установка дополнительный пакетов

Пуск — Настройки — Менеджер пакетов

через Быстрый фильтр или через поиск находим и отмечаем к установке следующие пакеты:

  • libccid
  • pcscd
  • libpam-p11
  • libpam-pkcs11
  • libp11-2
  • libengine-pkcs11-openssl
  • opensc

Либо воспользовавшись терминалом FLY:

Регистрация сертификата в системе

Конвертируем сертификат в текстовый формат

где cert.pem — Ваш сертификат из токена в текстовом формате

Теперь нам необходимо прочитать с токена сертификат с нужным ID и записать его в файл доверенных сертификатов: Добавляем сертификат в список доверенных сертификатов:

Для привязки токена к определенному пользователю необходимо указать его домашнюю директорию, например таким образом:

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

Установка дополнительных пакетов

Для начала пришлось установить некоторые пакеты. Для работы Рутокен S необходима старая версия OpenSC: 0.11.13, а для работы Рутокен ЭЦП – более новая: 0.12.2. В качестве middleware для обоих токенов используется OpenCT версии 0.6.20.


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

Заключение

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

Описанные шаги по настройке системы аутентификации можно использовать как инструкцию в любом современном дистрибутиве Linux.

Оцените статью
ЭЦП Эксперт
Добавить комментарий