...
Поддерживаемые модели токенов Рутокен
...
- Рутокен S– модель для хранения контейнеров ГОСТ-криптопровайдеров: КриптоПро, VipNet и других.
...
- Сертифицирована ФСТЭК. Для работы требуется установить драйвер https://www.rutoken.ru/support/download/get/rtDrivers-x64-deb.html;
- Рутокен Lite – упрощенная модель для хранения контейнеров ГОСТ-криптопровайдеров: КриптоПро, VipNet и других.
...
- Сертифицирована ФСТЭК. Не имеет встроенного криптопровайдера. Поддерживает стандарт PKCS #15 используя интерфейс CCID и не требует установки дополнительных драйверов (поддерживается без использования дополнительных драйверов начиная с Astra Linux Special Edition x.7 с установленным обновлением БЮЛЛЕТЕНЬ № 2021-1126SE17 (оперативное обновление 1.7.1)
...
- ;
- Рутокен ЭЦП 2.0 – высокопроизводительная модель со встроенным криптопровайдером. Формирует квалифицированную электронную подпись (КЭП) при помощи сертифицированной реализации российских криптографических алгоритмов непосредственно в самом чипе устройстве, что повышает безопасность использования ЭП — ключ подписи никогда не покидает токен, его невозможно использовать
...
- без
...
- наличия токена. Работает с алгоритмами ГОСТ 2012.
...
- Сертифицирована ФСБ и ФСТЭК. Используется в системе ЕГАИС с 2016 года
...
- ;
- Рутокен ЭЦП PKI и Рутокен ЭЦП 3.0
См. также информацию производителя: https:/dev.rutoken.ru/pages/viewpage.action?pageId=66814078
...
- КриптоАРМ ГОСТ.
- Утилиту csptestf из состава КриптоПро CSP. Подробно в разделе на Подпись средствами «КриптоПро CSP». Подробнее см. Работа с КриптоПро CSP.
Для Рутокен ЭЦП 2.0 подпись документа можно проверить с помощью:
- КриптоАРМ ГОСТ.
- Тестовый центр регистрации Рутокен + Рутокен Плагин.
- OpenSSL + Рутокен engine.
- Утилиту csptestf из состава КриптоПро CSP. Подробно в разделе на Подпись средствами «КриптоПро CSP» Подробнее см. Работа с КриптоПро CSP.
Токены Рутокен для платформ Байкал и Эльбрус
Токены Рутокен Lite и Рутокен ЭЦП одинаково хорошо работают на всех платформах, имеющих USB-интерфейс. Для подписи с использованием Рутокен можно использовать:
...
- Программное обеспечение из репозиториев Astra Linux:
- пакетlibccid;
- пакет pcscd;
- пакет libpcsclite1;
- пакет pcsc-tools;
- пакет opensc;
- пакет libengine-pkcs11-openssl;
- Программное обеспечение, предоставляемое разработчиком оборудования:
- для работы с Рутокен ЭЦП — пакет librtpkcs11ecp (аналог библиотеки libengine-pkcs11-openssl1.1 входящей в состав Astra Linux);
- для работы с Рутокен S — пакет ifd-rutokens (драйвер токена, предоставляемый производителем).
Установка пакетов может быть выполнена с помощью Графический менеджер пакетов synaptic или из командной строки командой:
...
Для установки пакета librtpkcs11ecp загрузить актуальную версию по ссылке: https://www.rutoken.ru/support/download/pkcs/ и выполнить установку из этого загруженного файла:
Command |
---|
sudo apt install ./librtpkcs11ecp_*_amd64.deb |
При установке пакета устанавливается библиотека librtpkcs11ecp.so В разных обновлениях эта библиотека может размещаться в различных каталогах. Далее в примерах предполагается, что библиотека расположена в файле /usr/lib/librtpkcs11ecp.so. Для того, чтобы определить путь до реальное расположение библиотеки можно использовать команду:
Command |
---|
find /usr/*(lib|lib64) -name librtpkcs11ecp.so |
...
Для установки пакета ifd-rutokens загрузить актуальную версию по ссылке: https://www.rutoken.ru/support/download/get/rtDrivers-x64-deb.html и выполнить установку из загруженного файла:
Command |
---|
sudo apt install ./ifd-rutokens_*_amd64.deb |
Проверка работы токенов
...
в системе
Для проверки работы токена необходимо подключить токен к компьютеру.
...
Инструмент pscsc_scan входит в пакет pcsc-tools. Для его работы требуется установка пакета pcscd. Команда для вывода информации о подключенном токене:
...
- --init-token — команда инициализации токена;
- --module — указание интерфейсного модуля токена. Не используется для Рутокен S и Рутокен Lite, обязательно для Рутокен ЭЦП;;
- ----so-pin 87654321 — обязательный параметр — действующий PIN-код администратора (офицера безопасности, SO-PIN);
- --label — обязательный параметр — новая метка токена;
Изменение SO-PIN
Предупреждение |
---|
В целях обеспечения защиты принятые по умолчанию PIN-коды администратора и пользователя в обязательном порядке должны быть изменены. |
Пример Также для очистки всех данных можно использовать команды:
Command |
---|
pkcs11pkcs15-tool init --module /usr/lib/librtpkcs11ecp.so --login --login-type so erase-card |
Где:
-- |
...
label 'User PIN' -- |
...
auth-id 02 --pin '12345678' --puk '' --so-pin '87654321' --finalize |
Изменение SO-PIN
...
Предупреждение |
---|
В целях обеспечения защиты принятые по умолчанию PIN-коды администратора и пользователя в обязательном порядке должны быть изменены. |
На момент написания статьи заданный по умолчанию PIN-код пользователя был 12345678, PIN-код администратора - 87654321.
По умолчанию принятPIN-код администратора 87654321 (см. Какой PIN-код Администратора установлен по умолчанию?). |
Пример командыКоманда для установки (переустановки) PIN-кода пользователя:
Command |
---|
pkcs11-tool --module /usr/lib/librtpkcs11ecp. soso --login --login-type so --so-pin 87654321 -- initchange-pin -- pin <PIN_код_пользователя> |
Команда для изменения PIN-кода пользователя пользователем:
Command |
---|
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --login --pin <старый_PIN-код> --change-pin --new-pin <новый_PIN-код> |
При успешном выполнении будет выдано сообщение о том, что PIN-код успешно изменен:
Блок кода |
---|
Using slot 0 with a present token (0x0)
PIN successfully changed |
Работа с сертификатами и ключевыми парами на устройствах Рутокен ЭЦП
Создание ключевой пары
new-pin 987654321 |
Где:
- --login и --login-type so — параметры входа в сессию администратора;
- --so-pin — действующий PIN-код администратора;
- --change-pin — команды смены PIN-кода;
- --new-pin — новый PIN-код.
Далее в примерах используется PIN-код администратора, принятый по умолчанию.
Задание и изменение PIN-кода пользователя
Предупреждение |
---|
В целях обеспечения защиты принятые по умолчанию PIN-коды администратора и пользователя в обязательном порядке должны быть изменены. |
Команда для установки (переустановки) PIN-кода пользователяДля генерации ключевой пары в терминале следует ввести команду:
Command |
---|
Command |
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --label "название_ключа" so-pin 87654321 --keypairgen init-pin -key - type rsa:2048 -l -- id 45 |
Проверка наличия сертификатов и ключевых пар
Чтобы проверить наличие сертификатов и ключевых пар на токене введите команду:
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O -l --pin <PIN_код_пользователя> |
В результате выполнения команды отобразится информация обо всех сертификатах (Certificate Object) и публичных ключах (Public Key Object), хранящихся на токене:
Далее в примерах используется необязательная опция --pin, задающая PIN-код пользователя непосредственно в команде. В практических применениях эта опция может не использоваться, PIN-код при этом будет запрашиваться в интерактивном режиме.
Команда для изменения PIN-кода пользователя пользователем:
Command |
---|
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --login --pin <старый_PIN-код> --change-pin --new-pin <новый_PIN-код> |
При успешном выполнении будет выдано сообщение о том, что PIN-код успешно изменен:
Блок кода |
---|
Using slot 0 |
Блок кода |
Using slot 0 with a present token (0x0) PublicPIN Keysuccessfully changed |
Работа с сертификатами и ключевыми парами на устройствах Рутокен ЭЦП
Создание ключевой пары
Для генерации ключевой пары в терминале следует ввести команду:
Command |
---|
|
Проверка наличия сертификатов и ключевых пар
Чтобы проверить наличие сертификатов и ключевых пар на токене введите команду:
Command |
---|
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O -l --pin <PIN_код_пользователя> |
В результате выполнения команды отобразится информация обо всех сертификатах (Certificate Object) и публичных ключах (Public Key Object), хранящихся на токене:
Блок кода |
---|
Using slot 0 with a present token (0x0) Public Key Object; RSA 2048 bitsObject; RSA 2048 bits label: Test ID: 45 Usage: encrypt, verify, wrap Certificate Object, type = X.509 cert label: Test ID: 45 45 Usage: encrypt, verify, wrap Certificate Object, type = X.509 cert label: Test ID: 45 |
Идентификаторы ключей и объектов (ID) используются для выбора сертификатов при выполнении операция с .
...
Command | |||||
---|---|---|---|---|---|
| |||||
OpenSSL> req -engine pkcs11 -new -key 0:45 -keyform engine -x509 -out название_вашего_сертификата.crt -outform DER
|
Примечание | ||
---|---|---|
Для того чтобы определить путь до библиотеки pkcs11.so введите команду:
2) Т.к. вышеуказанные Вышеуказанные команды должны быть неразрывны, их следует обязательно вводить в консоли openssl Иначе , иначе openssl не сможет обратиться к закрытому ключу. |
...
Установить следующие пакеты:
- libccid;
- pcscd;
- libpam-p11;
- libpam-pkcs11;
- libp11-2;
- libengine-pkcs11-openssl;
- opensc.
Для установки использовать Графический менеджер пакетов synaptic или команду в терминале:
Command |
---|
sudo apt install opensc libengine-pkcs11-openssl libp11-2 libpam-pkcs11 libpam-p11 pcscd libccid |
Регистрация сертификата в
...
ОС
Для регистрации сертификата с ОС:
Конвертировать
...
сертификат в текстовый формат:
Command Title openssl OpenSSL>
...
x509
...
-
in
...
<название_сертификата>.crt
...
-out
...
<название_сертификата>.pem
...
-inform
...
DER
...
-outform
...
PEM
где
...
<название_сертификата>.pem - сертификат из токена в текстовом формате.
...
Прочитать с токена сертификат с нужным идентификатором и записать его в файл доверенных сертификатов.
...
Для добавления сертификат в список доверенных сертификатов текущего пользователя:
Command mkdir ~/.eid
chmod 0755 ~/.eid
cat
Ваш_сертификат_из_токена.pem >> ~/.eid
/authorized_certificates
chmod 0644 ~/.eid/authorized_certificates
Для привязки токена к
...
другому пользователю
...
указать его
...
домашний каталог например таким образом:
Command sudo mkdir
...
/home/
...
<имя_пользователя>/.eid
sudo chmod
...
0755
...
/home/
...
<имя_пользователя>/.eid
...
sudo chown <имя_пользователя>:<имя_пользователя> /home/<имя_пользователя>/.eid
cat
<название_сертификата>.pem | tee -a
/home/<имя_пользователя>
/.eid/authorized_certificates
sudo chown <имя_пользователя>:<имя_пользователя> /home/<имя_пользователя>/.eid/authorized_certificates
sudo chmod
...
0644
...
/home/user/.eid/authorized_certificates
Информация |
---|
Важно помнить, что при При регистрации нескольких токенов на одном компьютере , необходимо указывать пользователям различные id. |
Настройка аутентификации
Пуск - утилиты - Терминал Fly
...
Создать файл /usr/share/pam-configs/p11
...
со следующим содержимым:
Блок кода Name: Pam_p11
...
Default: yes
...
Priority: 800
...
Auth-Type: Primary
...
Auth: sufficient pam_p11_opensc.so /usr/lib/librtpkcs11ecp.so
...
Выполнить команду:
Command sudo
pam-auth-update
в появившемся окне отметить пункт Pam_p11 и нажать OK
Проверка
Пуск - утилиты - Терминал Fly
...
В состав пакета 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 |
...
После этого добавьте приложение pkcs11_eventmgr в автозагрузку и перезагрузитесь.
Очистка всех данных с Рутокена
...
Command |
---|
$ pkcs11-tool --slot 0 --init-token --so-pin '87654321' --label 'Название_Вашего_токена' --module /usr/lib/librtpkcs11ecp.so |
Также для очистки всех данных воспользуйтесь командами:
...
= "/bin/false";
}
} |
После создания конфигурации добавить приложение pkcs11_eventmgr в автозагрузку и перезагрузить ОС.
Инструмент командной строки для администрирования токенов Рутокен rtadmin
Инструмент командной строки rtadmin предоставляется производителем оборудования и предназначен для автоматизации процедур форматирования и администрирования устройств Рутокен: смены метки токена, изменения PIN-кодов и их параметров, управления разделами Flash-памяти. При работе с инструментом рекомендуется подключать не подключать более одного устройства. Поддерживаемые модели токенов:
...
Инструмент (оформлен не как пакет Debian, а как отдельный исполняемый файл) доступен по ссылке: https://dev.rutoken.ru/pages/viewpage.action?pageId=7995615.
Примеры использования
Отформатировать один токен с параметрами по умолчанию (для поточного выполнения убрать флаг -q):
Command ./rtadmin -f -q
Отформатировать один токен, задав имя токена
RutokenAstra
, PIN-код пользователя123456789
и PIN-код администратора987654321:
Command ./rtadmin -f -z /usr/lib/librtpkcs11ecp.so -L RutokenAstra -u 123456789 -a 987654321 -q
Параметры
Инструмент rtadmin поддерживает следующие параметры:
1 | Форматирование токена | -f | - |
2 | Текущий PIN-код администратора | -o [PIN-код (≤ 32)] | Значение по умолчанию 87654321. |
3 | Текущий PIN-код пользователя | -с [PIN-код (≤ 32)] | Значение по умолчанию 12345678. |
4 | Устанавливаемый PIN-код администратора | -a [PIN-код (≤ 32)] | Значение по умолчанию 87654321. |
5 | Устанавливаемый PIN-код пользователя | -u [PIN-код (≤ 32)] | Значение по умолчанию 12345678. |
6 | Устанавливаемый PIN2-код (для Рутокен PINPad. Устанавливается на экране устройства) | -t | - |
7 | Генерация PIN-кода администратора (используется при форматировании) | -G <длина PIN-кода (8-32)> | - |
8 | Генерация PIN-кода пользователя (используется при форматировании) | -g <длина PIN-кода (8-32)> | - |
9 | Загрузка значений пар PIN-кодов из файла | -b <имя файла> | - |
10 | Политика смены PIN-кода пользователя | -p <код>:
| 2 |
11 | Минимальная длина PIN-кода администратора | -M <длина PIN-кода>:
| 6 |
12 | Минимальная длина PIN-кода пользователя | -m <длина PIN-кода>:
| 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/) — компонент для любых браузеров и операционных систем для прямой работы с криптографией на устройстве.
...