Наш wiki-портал переехал на новый движок и доступен по адресу http://wiki.astralinux.ru

Эта версия портала обновляться больше не будет.

Rutoken

Материал из AstraLinux Wiki
Перейти к: навигация, поиск

Электронный идентификатор Rutoken и операционные системы Astra Linux

Электронный идентификатор Rutoken - это компактное устройство в виде USB-брелока, которое служит для авторизации пользователя в сети или на локальном компьютере, защиты электронной переписки, безопасного удаленного доступа к информационным ресурсам, а также надежного хранения персональных данных. Электронные идентификатор Rutoken ECP совместим с операционной системой Astra Linux Special Edition версии 1.2 и корректно функционирует под ее управлением.

Инструкция по настройке Rutoken ECP в операционной системе Astra Linux Special Edition:

Инструкция по настройке:

Все действия выполняются от root.

Настройка ОС Astra Linux для аутентификации пользователей с использованием Рутокен ЭЦП

Необходимые пакеты

Конфигурация стенда (пакеты необходимо устанавливать в указанном порядке)

На стенд была установлена ОС Astra Linux и пакеты:

- libopenct1_0.6.20-1.2_amd64.deb
- openct_0.6.20-1.2_amd64.deb
- opensc_0.12.2-2_amd64.deb

Дополнительно установлены следующие пакеты из репозитория Debian squeeze:

- libltdl7_2.2.6b-2_amd64.deb

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

- libp11-1_0.2.7-2_amd64.deb
- libpam-p11_0.1.5-1+b1_amd64.deb
- libengine-pkcs11-openssl_0.1.8-2_amd64.deb

Инициализация токена

#pkcs15-init --erase-card
#pkcs15-init --create-pkcs15 --so-pin "87654321" --so-puk ""
#pkcs15-init --store-pin --label "User PIN" --auth-id 02 --pin "12345678" --puk "" --so-pin "87654321" --finalize

Аутентификация по сертификатам

В данном разделе подробно рассмотрим действия по настройке аутентификации по сертификату X.509

Настройка pam_p11

До начала работы с токеном стоит настроить модуль 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

Для Astra Linux Special Edition версии 1.3 путь изменится на: /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so

Обновим конфигурацию PAM:

#pam-auth-update

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

Создание ключей на токене

Создаем ключевую пару 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> 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 - это пара slot:id. Если OpenSSL не видит токен, то стоит попробовать другой номер слота.

OpenSSL при этом предложит ввести PIN-код и заполнить информацию о сертификате. Теперь можно выйти из OpenSSL (команда exit) и проверить новый сертификат. Проверим созданный сертификат: В текущем каталоге должен создаться файл самоподписанного сертификата с именем cert.pem.

Примечание: если при создании сертификата в OpenSSL убрать ключ -x509, то на выходе получим заявку на сертификат.

#openssl verify -CAfile cert.pem cert.pem

cert.pem: OK

Сохраним сертификат на токен:

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

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

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

#mkdir ~/.eid
#chmod 0755 ~/.eid
#pkcs15-tool -r <certificate_id, в нашем случае 45 без скобок> > ~/.eid/authorized_certificates
#chmod 0644 ~/.eid/authorized_certificates

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

#mkdir /home/user/.eid
#chmod 0755 /home/user/.eid
#pkcs15-tool -r <certificate_id> > /home/user/.eid/authorized_certificates
#chmod 0644 /home/user/.eid/authorized_certificates

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

Login

Вход выполняется с подключенным токеном к компьютеру. При графическом входе в поле Login вводится имя пользователя, в поле Password вводится <PIN пользователя>. При консольном входе все аналогично, только в момент ввода пароля будет сообщено, что требуется <PIN пользователя>.

Заключение

Описанных выше действий достаточно для аутентификации по токену.

Инструкция по настройке Rutoken ECP в операционной системе Astra Linux Special Edition в режиме ALD:

Rutoken ALD

Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты