Оглавление | ||
---|---|---|
|
См. также: Запуск службы pcscd с ненулевыми мандатными атрибутами
Поддерживаемые модели токенов Рутокен
- Рутокен 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
Проверка электронной подписи в Astra Linux
С помощью токенов, кроме двухфакторной аутентификации, можно проверять подписи документов:
Для Рутокен Lite/S подпись документа можно проверить с помощью:
- КриптоАРМ ГОСТ.
- Утилиту csptestf из состава КриптоПро CSP. Подробнее см. Работа с КриптоПро CSP.
Для Рутокен ЭЦП 2.0 подпись документа можно проверить с помощью:
- КриптоАРМ ГОСТ.
- Тестовый центр регистрации Рутокен + Рутокен Плагин.
- OpenSSL + Рутокен engine.
- Утилиту csptestf из состава КриптоПро CSP. Подробнее см. Работа с КриптоПро CSP.
Токены Рутокен для платформ Байкал и Эльбрус
Токены Рутокен Lite и Рутокен ЭЦП работают на всех платформах, имеющих USB-интерфейс. Для подписи с использованием Рутокен можно использовать:
- Тестовый центр регистрации Рутокен + Рутокен Плагин.
- Утилита из КриптоПро CSP 5.0.
- КриптоАРМ ГОСТ.
- Для платформы Байкал М1 под управлением Astra Linux можно использовать предлагаемый разработчиками КриптоПРО пакет cryptoarm-gost-v2.5.12.linux-aarch64.deb (доступен по ссылке: https://github.com/CryptoARM/CryptoARMGOST/releases/tag/v2.5.12).
Рутокен S не поддерживается на платформе Эльбрус.
Установка ПО
Для выполнения действий данной инструкции необходимо установить следующее программное обеспечение:
- Программное обеспечение из репозиториев Astra Linux:
- пакетlibccid;
- пакет pcscd;
- пакет libpcsclite1;
- пакет pcsc-tools;
- пакет opensc;
- пакет libengine-pkcs11-openssl1.1;
- Программное обеспечение, предоставляемое разработчиком оборудования:
- для работы с Рутокен ЭЦП — пакет librtpkcs11ecp (аналог библиотеки libengine-pkcs11-openssl1.1 входящей в состав Astra Linux);
- для работы с Рутокен S — пакет ifd-rutokens (драйвер токена, предоставляемый производителем).
Установка пакетов может быть выполнена с помощью Графический менеджер пакетов synaptic или из командной строки командой:
Command |
---|
sudo apt install libccid pcscd libpcsclite1 pcsc-tools opensc libengine-pkcs11-openssl1.1 |
Для установки пакета 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 |
Проверка работы токенов в системе
Для проверки работы токена необходимо подключить токен к компьютеру.
Инструмент pcsc_scan
Инструмент pscsc_scan входит в пакет pcsc-tools. Для его работы требуется установка пакета pcscd. Команда для вывода информации о подключенном токене:
Command |
---|
pcsc_scan |
После запуска pscsc_scan проверяет наличие подключенного токена. Если токен обнаружен - выводит информацию о нем. Программа не завершает работу сама, ожидая подключение следующего токена. Для завершения работы программы нажать Ctrl+C.
Пример вывода команды:
Блок кода |
---|
Using reader plug'n play mechanism Scanning present readers... 0: Aktiv Rutoken lite 00 00 Fri Mar 31 13:29:35 2023 Reader 0: Aktiv Rutoken lite 00 00 Event number: 0 Card state: Card inserted, ATR: 3B 8B 01 52 75 74 6F 6B 65 6E 6C 69 74 65 C2 ATR: 3B 8B 01 52 75 74 6F 6B 65 6E 6C 69 74 65 C2 + TS = 3B --> Direct Convention + T0 = 8B, Y(1): 1000, K: 11 (historical bytes) TD(1) = 01 --> Y(i+1) = 0000, Protocol T = 1 ----- + Historical bytes: 52 75 74 6F 6B 65 6E 6C 69 74 65 Category indicator byte: 52 (proprietary format) + TCK = C2 (correct checksum) Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): 3B 8B 01 52 75 74 6F 6B 65 6E 6C 69 74 65 C2 |
Команда pkcs11-tool
Команда для проверки доступности модуля:
Command |
---|
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T |
Пример вывода команды:
Блок кода |
---|
vailable slots: Slot 0 (0x0): Aktiv Rutoken lite 00 00 token label : Rutoken token manufacturer : Aktiv Co. token model : Rutoken lite token flags : login required, rng, SO PIN to be changed, token initialized, PIN initialized, user PIN to be changed hardware version : 65.4 firmware version : 30.2 serial num : 419b79e8 pin min/max : 6/32 |
Графический инструмент XCA
См. XCA: графический инструмент для работы с сертификатами и ключевыми носителями.
Настройка токенов для выполнения двухфакторной аутентификации
См. Двухфакторная PAM-аутентификация с использованием ключевых носителей: пакет libpam-csp.
Работа с токенами Рутокен ЭЦП
Command |
---|
Дальнейшая статья применима только к Рутокен ЭЦП. |
Инициализация токена
Для очистки токенов можно использовать команду pkcs11-tool:
Информация | ||
---|---|---|
Если при работе с ранее находившимся в эксплуатации токеном выполнение указанной команды заканчивается ошибкой вида
то токен следует переформатировать инструментом rtadmin, предоставляемым производителем, разрешив смену пароля администратором и пользователем. |
Command |
---|
pkcs11-tool --init-token --module /usr/lib/librtpkcs11ecp.so --so-pin 87654321 --label "Astra Linux" |
Где:
- --init-token — команда инициализации токена;
- --module — указание интерфейсного модуля токена;
- --so-pin 87654321 — обязательный параметр — действующий PIN-код администратора (офицера безопасности, SO-PIN). Для примера использовано значение кода 87654321, принятое по умолчанию. Использование этого значения при эксплуатации недопустимо;
- --label — обязательный параметр — новая метка токена;
Изменение SO-PIN
Предупреждение |
---|
В целях обеспечения защиты принятые по умолчанию SO-PIN-коды администратора и пользователя в обязательном порядке должны быть изменены. По умолчанию принят SO-PIN-код администратора 87654321 (см. Какой PIN-код Администратора установлен по умолчанию?). |
Пример команды для замены заданного по умолчанию SO-PIN (87654321) на 987654321:
Command |
---|
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --login --login-type so --so-pin 87654321 --change-pin --new-pin 987654321 |
Где:
- --login и --login-type so — параметры входа в сессию администратора;
- --so-pin — действующий SO-PIN-код администратора;
- --change-pin — команды смены PIN-кода;
- --new-pin — новый SO-PIN-код.
Далее в примерах используется SO-PIN-код администратора, принятый по умолчанию.
Задание и изменение PIN-кода пользователя
Предупреждение |
---|
В целях обеспечения защиты принятые по умолчанию PIN-коды администратора и пользователя в обязательном порядке должны быть изменены. |
Команда для установки (переустановки) PIN-кода пользователя:
Command |
---|
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --so-pin 87654321 --init-pin --pin <PIN_код_пользователя> |
Далее в примерах используется необязательная опция --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 |
Работа с сертификатами и ключевыми парами на устройствах Рутокен ЭЦП
Создание ключевой пары
Для генерации ключевой пары в терминале следует ввести команду:
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 bits label: Test ID: 45 Usage: encrypt, verify, wrap Certificate Object, type = X.509 cert label: Test ID: 45 |
Идентификаторы ключей и объектов (ID) используются для выбора сертификатов при выполнении операция с .
Извлечение сертификата из токена
Команда для извлечения сертификата:
Command |
---|
|
вместо {id} подставить ID который вы увидите в выводе команды
Если после строчки
Using slot 0 with a present token (0x0)
нет ничего, значит устройство пустое. Следует обратиться к администратору или создать ключи и сертификат самостоятельно.
Создание самоподписанного сертификата
Для генерации ключевой пары в терминале следует ввести команду:
Command |
---|
|
Для создания самоподписанного сертификата в терминале следует ввести команду:
Command | |||||
---|---|---|---|---|---|
| |||||
OpenSSL> req -engine pkcs11 -new -key 0:45 -keyform engine -x509 -out название_вашего_сертификата.crt -outform DER
|
Примечание |
---|
Вышеуказанные команды должны быть неразрывны, их следует обязательно вводить в консоли openssl, иначе openssl не сможет обратиться к закрытому ключу. |
Загрузка сертификата на токен
Создав свой личный сертификат, его следует загрузить на токен:
Command |
---|
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w название_вашего_сертификата.crt -a "Имя_сертификата_в_токене" --id 45 |
Проверка ключей и сертификатов в токене:
Command | ||
---|---|---|
| ||
Using slot 0 with a present token (0x0) |
Локальная аутентификация в Astra Linux по токену Рутокен
Установка дополнительных пакетов
Установить следующие пакеты:
- libccid;
- pcscd;
- libpam-p11;
- libpam-pkcs11;
- libp11-2;
- libengine-pkcs11-openssl;
- opensc.
Для установки использовать Графический менеджер пакетов synaptic или команду в терминале:
Для Astra Linux Special Edition x.7:
Command sudo apt install opensc libengine-pkcs11-openssl libpam-pkcs11 libpam-p11 pcscd libccid
Для более ранних обновлений Astra Linux Special Edition и для Astra Linux Common Edition:
Command sudo apt install opensc libengine-pkcs11-openssl libp11-2libp11- 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. |
Настройка аутентификации
Создать файл /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
Command |
---|
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 в автозагрузку и перезагрузить ОС.
Якорь | ||||
---|---|---|---|---|
|
Инструмент командной строки rtadmin предоставляется производителем оборудования и предназначен для автоматизации процедур форматирования и администрирования устройств Рутокен: смены метки токена, изменения PIN-кодов и их параметров, управления разделами Flash-памяти. При работе с инструментом рекомендуется подключать не более одного устройства. Поддерживаемые модели токенов:
- Рутокен Lite
- Рутокен Lite SC
- Рутокен ЭЦП
- Рутокен ЭЦП 2.0
- Рутокен ЭЦП SC
- Рутокен ЭЦП PKI
- Рутокен ЭЦП Flash
- Рутокен ЭЦП 2.0 Flash/touch
- Рутокен PINPad
Инструмент (оформлен не как пакет Debian, а как отдельный исполняемый файл) доступен по ссылке: https://dev.rutoken.ru/pages/viewpage.action?pageId=7995615.
Примеры использования
Информация по опциям инструмента доступна на web-сайте производителя: https://dev.rutoken.ru/display/PUB/rtadmin+3.1.
Примеры использования
- Rtadmin версия 3.х:
- Отформатировать токен,
Отформатировать один токен с параметрами по умолчанию (для поточного выполнения убрать флаг -q):
Отформатировать один токенCommand ./rtadmin -f -q
- разрешив смену пароля администратором и пользователем и установи SO_PIN:
Command ./rtadmin format -
-pin-change-policy both -r -l "LABEL" --new-so-pin "SO_PIN"
- Более ранние версии:
Отформатировать один токен с параметрами по умолчанию (для поточного выполнения убрать флаг -q)
RutokenAstra
, PIN-код пользователя123456789
и PIN-код администратора 987654321:
Command ./rtadmin -f -
q
Отформатировать один токен разрешив смену пароля администратором и пользователем:
Command ./rtadmin -f -q -p 3
Отформатировать один токен, задав имя токена
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.
Используется только при форматировании без указания параметра -o
Значение по умолчанию 12345678.
Используется только при форматировании без указания параметра -c
-a [PIN-код (≤ 32)]
Значение по умолчанию 87654321.
Используется только при форматировании без указания параметра -a
Значение по умолчанию 12345678.
Используется только при форматировании без указания параметра -u
Устанавливаемый PIN2-код (для Рутокен PINPad. Устанавливается на экране устройства)
-t-7Генерация PIN-кода администратора (используется при форматировании)-G <длина PIN-кода (8-32)>
-Параметры инструмента описаны на web-сайте производителя:
8Генерация PIN-кода пользователя (используется при форматировании)-g <длина PIN-кода (8-32)>-9Загрузка значений пар PIN-кодов из файла-b <имя файла>-10Политика смены PIN-кода пользователя
-p <код>:
- 1 – администратор,
- 2 – пользователь,
- 3 – пользователь и администратор]
2
11Минимальная длина PIN-кода администратора
-M <длина PIN-кода>:
- 6-31 для Рутокен ЭЦП и Рутокен Lite;
- 1 для Рутокен S
6
12Минимальная длина PIN-кода пользователя
-m <длина PIN-кода>:
- 6-31 для Рутокен ЭЦП и Рутокен Lite;
- 1 для Рутокен S
Максимальное количество попыток ввода PIN-кода администратора
-R <число попыток (3-10)>1014Максимальное количество попыток ввода PIN-кода пользователя
-r <число попыток (1-10)>1015Метка токена в кодировке Windows-1251-L <метка токена>-16Метка токена в кодировке UTF-8-D <метка токена>-17Конвертация в UTF-8 (флаг для параметров, связанных с PIN-кодами)-UПо умолчанию PIN-коды не конвертируются в UTF-818Ограничение количества выполняемых итераций до одной-q-19Используемая библиотека PKCS#11-z <путь к библиотеке>librtPKCS11ecp.so20Путь к конфигурационному файлу-n <путь к файлу>-21Протоколирование-l <путь к файлу журнала>Путь: каталог, в котором находится исполняемый файлИмя файла: rtadmin.log
ПО для браузеров Рутокен Web Плагин
Рутокен Плагин (https://www.rutoken.ru/products/all/rutoken-plugin/) — компонент для любых браузеров и операционных систем для прямой работы с криптографией на устройстве.
Не требует административных прав при установке.
Дополнительные источники информации
При возникновении вопросов, ответы на которые не удалось найти в настоящей инструкции, рекомендуем обратиться к следующим дополнительным источникам информации:
- Web-сайт: https://rutoken.ru. Сайт содержит большой объем справочной информации об устройствах Рутокен.
- Web-сайт для разработчиков: https://dev.rutoken.ru. Содержит техническую информацию об устройствах Рутокен и руководства по их интеграции.
- База знаний: https://kb.rutoken.ru/display/kb. Содержит инструкции по решению большинства ошибок, полезные статьи и ответы на часто задаваемые вопросы. Доступен поиск по ключевым словам.
- Форум: https://forum.rutoken.ru. Здесь можно задать вопрос разработчикам и сотрудникам службы технической поддержки Рутокен.
- Применение Рутокен для Госуслуг без использования КриптоПро: https://dev.rutoken.ru/pages/viewpage.action?pageId=78479384;
- Служба технической поддержки Рутокен: https://www.rutoken.ru/support/feedback:
- Сервис диагностики: https://help.rutoken.ru;
- Электронная почтв: hotline@rutoken.ru;
- тел.: +7 495 925-77-90.