Содержание

Перейти к концу метаданных
Переход к началу метаданных

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

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

Все действия выполняются от 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 со следующим содержанием:

/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 пользователя, который задавался при иннициализации токена>

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

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:
(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 пользователя>.

Заключение

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

  • Нет меток