Оглавление | ||
---|---|---|
|
Установка
...
- библиотека libccid, librtpkcs11ecp.so;
- пакеты libpcsclite1 и pcscd;
- pcsc-tools
- opensc
Для установки в терминале введите команду:
$ sudo apt-get install libccid pcscd libpcsclite1 pcsc-tools opensc
Для установки библиотеки librtpkcs11ecp.so следует перейти по указанной ссылке и скачать необходимую версию:
https://www.rutoken.ru/support/download/pkcs/
dpkg -i librtpkcs11ecp_1.8.2.0-1_amd64.deb
Проверка работы Рутокен в системе
Для проверки работы Рутокена:
Подключите устройство к компьютеру.
Способ №1
Введите команду: $ pcsc_scan
Способ №2
Введите команду: #pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Информация | ||
---|---|---|
| ||
Для того чтобы определить путь до библиотеки librtpkcs11ecp.so введите команду: |
Изменение PIN-кода Рутокен
Для изменения pin-кода Рутокена введите команду:
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --login --pin ваш_старый_пин --change-pin --new-pin ваш_новый_пин
После чего система оповестит Вас о том, что PIN-код успешно изменен:
Using slot 0 with a present token (0x0)
PIN successfully changed
Проверка наличия сертификатов и ключевых пар на Рутокен ЭЦП
Проверка
...
Блок кода |
---|
Using slot 0 with a present token (0x0)
Public Key Object; RSA 2048 bits
label: Test
ID: 45
Usage: encrypt, verify, wrap
Certificate Object, type = X.509 cert
label: Test
ID: 45 |
Если после строчки выводится информация о ключах и сертификатах, то необходимо считать сертификат:
Извлечение сертификата из токена
pkcs11-tool --module
/usr/lib/librtpkcs11ecp
.so -r -y cert --
id
{
id
} >
название_вашего_сертификата.crt
вместо {id} нужно подставить ID который вы увидите в выводе команды
Если после строчки
Using slot 0 with a present token (0x0)
нет ничего, значит устройство пустое. Следует обратиться к администратору или создать ключи и сертификат самостоятельно.
Создание самоподписанного сертификата
Для генерации ключевой пары в терминале следует ввести команду:
pkcs11-tool --module
/usr/lib/librtpkcs11ecp
.so --label "название_ключа" --keypairgen --key-
type
rsa:2048 -l --
id
45
Для создания самоподписанного сертификата в терминале следует ввести команду:
$ 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
...
Рутокен S– модель для надежного хранения контейнеров ГОСТ-криптопровайдеров: КриптоПро, VipNet и других. Сертифицированы во ФСТЭК.
Рутокен Lite – модель для надежного хранения контейнеров ГОСТ-криптопровайдеров: КриптоПро, VipNet и других. Сертифицированы во ФСТЭК. Обладает интерфейсом CCID и не требует установки дополнительных драйверов
Рутокен ЭЦП 2.0 – имеет встроенный криптопровайдер и высокую производительность. Формирует квалифицированную электронную подпись (КЭП) при помощи сертифицированной реализации российских криптографических алгоритмов непосредственно в самом чипе устройстве, что повышает безопасность использования ЭП — ключ подписи никогда не покидает токен, его невозможно использовать или скопировать без ведома владельца. Работает с алгоритмами ГОСТ 2012. Сертифицированы в ФСБ и ФСТЭК.
Широко используется в системе ЕГАИС с 2016 года. В активном пользовании более полумиллиона устройств с квалифицированной электронной подписью.
Тестирование электронной подписи в 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
Установка
...
Для выполнения действий данной инструкции необходимо установить следующее программное обеспечение:
- библиотека libccid, librtpkcs11ecp.so;
- пакеты libpcsclite1 и pcscd;
- opensc
pcsc-tools
Для установки в терминале введите команду:
Test |
---|
$ sudo apt-get install libccid pcscd libpcsclite1 pcsc-tools opensc |
Для установки библиотеки librtpkcs11ecp.so следует перейти по указанной ссылке и скачать необходимую версию:
https://www.rutoken.ru/support/download/pkcs/
Test |
---|
$ sudo dpkg -i librtpkcs11ecp_1.8.2.0-1_amd64.deb |
Проверка работы Рутокен в системе
...
Для проверки работы Рутокена:
Подключите устройство к компьютеру.
Способ №1
Введите команду:
Test |
---|
$ pcsc_scan |
Способ №2
Введите команду:
Test |
---|
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T |
Информация | ||
---|---|---|
| ||
Для того чтобы определить путь до библиотеки librtpkcs11ecp.so введите команду: |
Способ №3
графическая утилита XCA:
XCA: графический интерфейс для работы с токенами
Изменение PIN-кода Рутокен
...
Для изменения pin-кода Рутокена введите команду:
Test |
---|
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --login --pin ваш_старый_пин --change-pin --new-pin ваш_новый_пин |
После чего система оповестит Вас о том, что PIN-код успешно изменен:
Using slot 0 with a present token (0x0)
PIN successfully changed
Проверка наличия сертификатов и ключевых пар на Рутокен ЭЦП
...
Проверка
Чтобы проверить наличие сертификатов и ключевых пар на Рутокене введите команду:
Test |
---|
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O -l |
В результате в окне терминала отобразится информация обо всех сертификатах и ключевых парах, хранящихся на Рутокене:
Блок кода |
---|
Using slot 0 with a present token (0x0)
Public Key Object; RSA 2048 bits
label: Test
ID: 45
Usage: encrypt, verify, wrap
Certificate Object, type = X.509 cert
label: Test
ID: 45 |
Если после строчки выводится информация о ключах и сертификатах, то необходимо считать сертификат:
Извлечение сертификата из токена
Test |
---|
|
вместо {id} нужно подставить ID который вы увидите в выводе команды
Если после строчки
Using slot 0 with a present token (0x0)
нет ничего, значит устройство пустое. Следует обратиться к администратору или создать ключи и сертификат самостоятельно.
Создание самоподписанного сертификата
Для генерации ключевой пары в терминале следует ввести команду:
Test |
---|
|
Для создания самоподписанного сертификата в терминале следует ввести команду:
$ 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 |
Примечание |
---|
В Astra Linux SE 1.6 pkcs11 libengine-pkcs11-openssl версии 1.0.2 не совместим с библиотекой librtpkcs11ecp.so. Для корректного функционирования, следует скачать и установить подписанный пакет libengine-pkcs11-openssl1.1 версии 0.4.4-4 для Смоленска 1.6: |
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 |
Примечание |
---|
Для того чтобы определить путь до библиотеки pkcs11.so введите команду: 2) Т.к. вышеуказанные команды должны быть неразрывны, их следует обязательно вбивать в консоли openssl Иначе openssl не сможет обратиться к закрытому ключу |
Загрузка сертификата на токен
Создав свой личный сертификат, его следует загрузить на рутокен:
Test |
---|
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w название_вашего_сертификата.crt -a "Имя_сертификата_в_токене" --id 45 |
Проверка ключей и сертификатов в Рутокене:
Test |
---|
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
|
...
Установка дополнительный пакетов
Пуск - Настройки - Менеджер пакетов
через Быстрый фильтр или через поиск находим и отмечаем к установке следующие пакеты:
- libccid
- pcscd
- libpam-p11
- libpam-pkcs11
- libp11-2
- libengine-pkcs11-openssl
- opensc
Либо воспользовавшись терминалом FLY:
Test |
---|
$ sudo apt-get install opensc libengine-pkcs11-openssl libp11-2 libpam-pkcs11 libpam-p11 pcscd libccid |
Регистрация сертификата в системе
Конвертируем сертификат в текстовый формат
Test |
---|
$ |
Информация |
---|
где cert.pem - Ваш сертификат из токена в текстовом формате |
Теперь нам необходимо прочитать с токена сертификат с нужным ID и записать его в файл доверенных сертификатов:
Добавляем сертификат в список доверенных сертификатов
Test |
---|
|
Для привязки токена к определенному пользователю необходимо указать его домашнюю директорию, например таким образом:
Test |
---|
|
Информация |
---|
Важно помнить, что при регистрации нескольких токенов на одном компьютере, необходимо указывать пользователям раличные id. |
Настраиваем аутентификацию
Пуск - утилиты - Терминал Fly
Test |
---|
|
|
записываем в файл следующую информацию
сохраняем файл, нажимаем Alt + X, а затем Y
после этого выполняем
Test |
---|
|
в появившемся окне ставим галку в Pam_p11 и нажимаем OK
Проверка
Пуск - утилиты - Терминал Fly
|
Вход выполняется с подключенным токеном к компьютеру. При графическом входе в поле Login вводится имя пользователя, в поле Password вводится <PIN пользователя>. При консольном входе все аналогично, только в момент ввода пароля будет сообщено, что требуется <PIN пользователя>.
Блокировка компьютера при извлечении токена
В состав пакета libpam-pkcs11 входит утилита pkcs11_eventmgr, которая позволяет выполнять различные действия при возникновении событий PKCS#11.
Для настройки pkcs11_eventmgr служит файл конфигурации - /etc/pam_pkcs11/pkcs11_eventmgr.conf
Пример файла конфигурации представлен ниже:
|
После этого добавьте приложение pkcs11_eventmgr в автозагрузку и перезагрузитесь.
Очистка всех данных с Рутокена
...
Инициализация утилитой pkcs11-tool:
Test |
---|
$ pkcs11-tool --slot 0 --init-token --so-pin '87654321' --label 'Название_Вашего_токена' --module /usr/lib/librtpkcs11ecp.so |
Также для очистки всех данных воспользуйтесь командой:
Test |
---|
$ 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 |
Утилита администрирования Рутокен (rtAdmin)
...
Утилита rtAdmin предназначена для автоматизации процедур форматирования и администрирования устройств Рутокен: смены метки токена, PIN-кодов и их параметров, управления разделами Flash-памяти.
При работе с утилитой рекомендуется не подключать более одного устройства.
Поддерживаемые модели
- Рутокен Lite
- Рутокен Lite SC
- Рутокен ЭЦП
- Рутокен ЭЦП 2.0
- Рутокен ЭЦП SC
- Рутокен ЭЦП PKI
- Рутокен ЭЦП Flash
- Рутокен ЭЦП 2.0 Flash/touch
- Рутокен PINPad
Ссылки на загрузку:
https://dev.rutoken.ru/pages/viewpage.action?pageId=7995615
Примеры использования
Отформатировать один токен с параметрами по умолчанию (для поточного выполнения убрать флаг -q)
./rtAdmin -f -q
Отформатировать токен, задав имя токена
RutokenLabel
, PIN-код пользователя123456789
и PIN-код администратора987654321
../rtAdmin -f -z rtPKCS11ecp.so -L RutokenLabel -u
123456789
-a
987654321
-q
Параметры
Утилита запускается из командной строки и имеет следующие параметры:
1 | Форматирование токена | -f | - |
2 | Текущий PIN-код администратора | -o [PIN-код (≤ 32)] | 87654321 Значение по умолчанию используется только при форматировании без указания параметра -o |
3 | Текущий PIN-код пользователя | -с [PIN-код (≤ 32)] | 12345678 Значение по умолчанию используется только при форматировании без указания параметра -c |
4 | Устанавливаемый PIN-код администратора | -a [PIN-код (≤ 32)] | 87654321 Значение по умолчанию используется только при форматировании без указания параметра -a |
5 | Устанавливаемый PIN-код пользователя | -u [PIN-код (≤ 32)] | 12345678 Значение по умолчанию используется только при форматировании без указания параметра -u |
6 | Устанавливаемый PIN2-код (для Рутокен PINPad. Устанавливается на экране устройства) | -t | - |
7 | Генерация PIN-кода администратора (используется при форматировании) | -G [длина PIN-кода (8-32)] | - |
8 | Генерация PIN-кода пользователя (используется при форматировании) | -g [длина PIN-кода (8-32)] | - |
9 | Загрузка значений пар PIN-кодов из файла | -b [имя файла] | - |
10 | Политика смены PIN-кода пользователя | -p [кто может менять PIN-код: | 2 |
11 | Минимальная длина PIN-кода администратора | -M [длина PIN-кода (6-31 для Рутокен ЭЦП и Рутокен Lite, 1 для Рутокен S)] | 6 |
12 | Минимальная длина PIN-кода пользователя | -m [длина PIN-кода (6-31 для Рутокен ЭЦП и Рутокен Lite, 1 для Рутокен S)] | 6 |
13 | Максимальное количество попыток ввода PIN-кода администратора | -R [число попыток (3-10)] | 10 |
14 | Максимальное количество попыток ввода PIN-кода пользователя | -r [число попыток (1-10)] | 10 |
15 | Метка токена в кодировке Windows-1251 | -L [метка токена] | - |
16 | Метка токена в кодировке UTF-8 | -D [метка токена] | - |
17 | Конвертация в UTF-8 (флаг для параметров, связанных с PIN-кодами) | -U | По умолчанию PIN-коды не конвертируются в UTF-8 |
18 | Ограничение количества выполняемых итераций до одной | -q | - |
19 | Используемая библиотека PKCS#11 | -z [путь к библиотеке] | librtPKCS11ecp.so |
20 | Путь к конфигурационному файлу | -n [путь к файлу] | - |
21 | Протоколирование | -l [путь к файлу лога] | Путь: каталог, в котором лежит утилита |
ПО для Рутокен Web Плагин
...
Рутокен Плагин (https://www.rutoken.ru/products/all/rutoken-plugin/) — компонент для любых браузеров и операционных систем для прямой работы с криптографией на устройстве.
Не требует административных прав при установке
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 |
Информация |
---|
|
Создав свой личный сертификат, его следует загрузить на рутокен:
Загрузка сертификата на токен
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w название_вашего_сертификата.crt -a "Имя_сертификата_в_токене" --id 45
Проверка ключей и сертификатов в Рутокене:
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
...
Установка дополнительный пакетов
Пуск - Настройки - Менеджер пакетов
через Быстрый фильтр или через поиск находим и отмечаем к установке следующие пакеты:
- libccid
- pcscd
- libpam-p11
- libpam-pkcs11
- libp11-2
- libengine-pkcs11-openssl
- opensc
Либо воспользовавшись терминалом FLY:
$ sudo apt-get install opensc libengine-pkcs11-openssl libp11-2 libpam-pkcs11 libpam-p11 pcscd libccid
Регистрация сертификата в системе
Конвертируем сертификат в текстовый формат
...
OpenSSL> x509 -
in
название_вашего_сертификата.crt -out cert.pem -inform DER -outform PEM
...
Теперь нам необходимо прочитать с токена сертификат с нужным 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. |
Настраиваем аутентификацию
Пуск - утилиты - Терминал Fly
...
$
sudo
nano
/usr/share/pam-configs/p11
записываем в файл следующую информацию
...
Name: Pam_p11
Default:
yes
Priority: 800
Auth-Type: Primary
Auth: sufficient pam_p11_opensc.so
/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so
...
...
$
sudo
pam-auth-update
в появившемся окне ставим галку в Pam_p11 и нажимаем OK
Проверка
Пуск - утилиты - Терминал Fly
...
$
sudo
login
Вход выполняется с подключенным токеном к компьютеру. При графическом входе в поле Login вводится имя пользователя, в поле Password вводится <PIN пользователя>. При консольном входе все аналогично, только в момент ввода пароля будет сообщено, что требуется <PIN пользователя>.
Блокировка компьютера при извлечении токена
В состав пакета 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 ;
action =
"/bin/false"
;
}
# Карта извлечена
event card_remove {
on_error = ignore;
# Вызываем функцию блокировки экрана
action =
"fly-wmfunc FLYWM_LOCK"
;
}
# Карта долгое время извлечена
event expire_time {
# Оставляем значения по умолчанию (ничего не происходит)
on_error = ignore;
action =
"/bin/false"
;
}
}
После этого добавьте приложение pkcs11_eventmgr в автозагрузку и перезагрузитесь.
Очистка всех данных с Рутокена
Для очистки всех данных воспользуйтесь командой:
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
ПО для Рутокен Web
Плагин Рутокен Web позволяет браузеру опознавать устройство и работать с ним. С помощью инструмента администрирования можно просмотреть содержимое USB-токена Рутокен Web,
сменить PIN-, и PUK- коды, а также код восстановления. Для того чтобы установить плагин Рутокен Web, необходимо загрузить соответствующий установочный файл,
запустить его и следовать указаниям на экране. После завершения процесса установки необходимо подключить USB-токен в свободный USB-порт компьютера.
Дополнительные источники информации
...
При возникновении вопроса, на который вам не удалось найти ответ в этой инструкции, рекомендуем
обратиться к следующим дополнительным источникам информации:
...