Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

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

Testcommand
$ sudo apt-get install libccid pcscd libpcsclite1 pcsc-tools opensc

...

Для установки библиотеки librtpkcs11ecp.so следует перейти по указанной ссылке и скачать необходимую версию:
https://www.rutoken.ru/support/download/pkcs/

Testcommand
$ sudo dpkgapt -iinstall ./librtpkcs11ecp_1.8.2.0-1_amd64.deb

...

Способ №1

Введите команду:

Testcommand
$ pcsc_scan



Способ №2

Введите команду:


Testcommand
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T


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

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

Command
$
find /usr/*(lib|lib64) -name librtpkcs11ecp.so



Способ №3

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

...

Для изменения pin-кода Рутокена введите команду:
Testcommand
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --login --pin ваш_старый_пин --change-pin --new-pin ваш_новый_пин

...

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

Testcommand
 pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O -l


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

...

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


Testcommand
$ pkcs11-tool --module module /usr/lib/librtpkcs11ecp.so -r -y cert  --id {id} > название_вашего_сертификата.crt

...

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

Testcommand

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --label "название_ключа" --keypairgen --key-type rsa:2048 -l --id 45

...

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

Command
Title

...

openssl

OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1  -pre LOAD -pre MODULE_PATH:/usr/lib/librtpkcs11ecp.so

(dynamic) Dynamic engine loading support
[Success]: SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so
[Success]: ID:pkcs11
[Success]: LIST_ADD:1
[Success]: LOAD
[Success]: MODULE_PATH:/usr/lib/librtpkcs11ecp.so
Loaded: (pkcs11) pkcs11 engine


Примечание

В Astra Linux SE 1.6 pkcs11 libengine-pkcs11-openssl версии 1.0.2 не совместим с библиотекой librtpkcs11ecp.so. Для корректного функционирования, следует скачать и установить подписанный пакет

 libengine

libengine-pkcs11-openssl1.1 версии 0.4.4-4 для Смоленска 1.6:

 libengine-pkcs11-openssl1.1_0.4.4-4_amd64.deb

OpenSSL>

...

req

...

-engine

...

pkcs11

...

-new

...

-key

...

0:45

...

-keyform

...

engine

...

-x509

...

-out

...

название_вашего_сертификата.crt

...

-outform

...

DER

Блок кода
engine "pkcs11" set.
Enter PKCS#11 token PIN for Rutoken ECP <no label>:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Moscow
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Rusbitech   
Organizational Unit Name (eg, section) []: Astra
Common Name (e.g. server FQDN or YOUR name) []:Makhmadiev Shuhrat
Email Address []:shuhrat@astralinux.ru

OpenSSL> exit








Примечание

1) Путь до библиотеки pkcs11.so может отличаться

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

Command
$
find /usr/*(lib|lib64) -name pkcs11.so

2) Т.к. вышеуказанные команды должны быть неразрывны, их следует обязательно вбивать вводить в консоли openssl (warning) Иначе openssl не сможет обратиться к закрытому ключу.



Загрузка сертификата на токен

Создав свой личный сертификат, его следует загрузить на рутокен:

Testcommand
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w название_вашего_сертификата.crt -a "Имя_сертификата_в_токене" --id 45

...

Проверка ключей и сертификатов в Рутокене:
test$
Command
Title
pkcs11-tool
--module
/usr/lib/librtpkcs11ecp.so
-O

Using slot 0 with a present token (0x0)
Public Key Object; RSA 2048 bits
  label:      название_ключа
  ID:         45
  Usage:      encrypt, verify, wrap
Certificate Object, type = X.509 cert
  label:      имя_сертификата_в_токене
  ID:         45

...

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

Testcommand
$ sudo apt-get install opensc libengine-pkcs11-openssl libp11-2 libpam-pkcs11 libpam-p11 pcscd libccid

...

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

test
Command
Title
openssl
$ OpenSSL> x509 -in название_вашего_сертификата.crt -out cert.pem -inform DER -outform PEM

...

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

Testcommand
mkdir ~/.eid
chmod 0755 ~/.eid
cat Ваш_сертификат_из_токена.pem >> ~/.eid/authorized_certificates
chmod 0644 ~/.eid/authorized_certificates

...

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

Testcommand
mkdir /home/user/.eid
chmod 0755 /home/user/.eid
cat Ваш_сертификат_из_токена.pem >> ~/.eid/authorized_certificates
chmod 0644 /home/user/.eid/authorized_certificates

...

Информация

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

...


Настройка аутентификации

Пуск - утилиты - Терминал Fly

Testcommand
$

sudo

nano

/usr/share/pam-configs/p11

записываем в файл следующую информацию:

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

записываем в файл следующую информацию

сохраняем файл, нажимаем нажав Alt + X, а затем Y
после этого выполняем, после чего выполнить команду:

Command
Test
$ sudo pam-auth-update

в появившемся окне ставим галку в отметить пункт Pam_p11 и нажимаем нажать OK 

Проверка

Пуск - утилиты - Терминал Fly

Command

...

sudo login

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

...

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

Testcommand

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

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

Testcommand

$ 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

...