Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Image Removed

Оглавление
outlinetrue

...

USB-токены и смарт-карты JaCarta, работающие с

...

Astra Linux

  • JaCarta PKI - сертифицированные USB-токены и смарт-карты с аппаратной реализацией зарубежных криптоалгоритмов, предназначенные для работы с инфраструктурой открытых ключей (PKI)

...

...

  • для использования в качестве сертифицированного средства ЭП (усиленной квалифицированной электронной подписи — УКЭП) и полноценного СКЗИ в системах электронного документооборота (ЭДО), дистанционного банковского обслуживания (ДБО) и др. для обеспечения юридической значимости и неотказуемости действий пользователей, а также для обеспечения целостности и конфиденциальности передаваемых данных

...

  • ;

  • JaCarta SF/ГОСТ – продукт предназначен для безопасного хранения и транспортировки информации ограниченного доступа (ДСП,

...

  • государственная тайна) и состоит из:
    • аппаратного средства, выполненного в форм-факторе USB-токена (далее - токен);

    • ПО для ввода в эксплуатацию, управления и администрирования.

Установка программного обеспечения

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

  • ПО из репозиториев Astra Linux:
    • библиотека libccid

...

    • ;
    • библиотека libengine-pkcs11-openssl1.1 (но не libengine-pkcs11-openssl);
    • пакет libpcsclite1;
    • пакет pcscd;
    • пакет opensc;

...

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

...

Для установки пакетов из репозиториев Astra Linux в терминале выполнить команду:

Command
sudo apt install libccid pcscd libpcsclite1 pcsc-tools opensc

...

 libengine-pkcs11-openssl1.1


Примечание

В Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6 без установленных оперативных обновлений используется пакет libengine-pkcs11-openssl, несовместимый с библиотекой libjcPKCS11-2.so, а пакет  libengine-pkcs11-openssl1.1 отсутствует. Для корректного функционирования токенов следует:

Для установки библиотеки libjcpkcs11-2:

  1. Загрузить архив с актуальной версией ПО с web-сайта Аладдин: https://www.aladdin-rd.ru/support/downloads/jacarta).
  2. Распаковать архив:

    Command
    unzip jacartauc_*_al_x64.zip


  3. Установить загруженный пакет:

    Command
    sudo apt install ./jcpkcs11-*_amd64.deb

    В зависимости от используемого обновления ОС установленная библиотека libjcpkc11-2.so может располагаться в разных каталогах. Определить расположение библиотеки можно командой:

    Command
    find /usr/*{lib,lib64} -name libjcPKCS11-2.so


Проверка доступности токена

Информация
Для проверки доступности токена подключить его к компьютеру.

Проверка с помощью команды pcs_scan

Выполнить команду:

Command
pcsc_scan

Пример вывода команды:

Блок кода
collapsetrue


Проверка с помощью команды pkcs11-tool

Выполнить команду:

Command
pkcs11-tool --module /usr/lib/libjcPKCS11-2.so -T

Пример вывода команды:

Блок кода
Available slots:
Slot 0 (0x1ffff): Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00
  token label        : JaCarta-2 GOST
  token manufacturer : Aladdin R.D.
  token model        : JaCarta GOST 2.0
  token flags        : login required, rng, token initialized, PIN initialized, other flags=0x800
  hardware version   : 1.0
  firmware version   : 2.55
  serial num         : 4E46001310573957
  pin min/max        : 6/32


Проверка с помощью графической утилиты XCA

См. XCA: графический инструмент для работы с сертификатами и ключевыми носителями.

Инициализация токена

Предупреждение

Инициализация устройства удалит все данные на токене без возможности восстановления. Важно: количество попыток ввода паролей ограничено. При превышении ограничения токены блокируются. Если заблокированы (забыты) пароли пользователя и администратора, то токен JaCarta полностью теряет свой функционал, дальнейшая работа с ним невозможна. Восстановление заводских настроек (сброс на заводские настройки) не поддерживаются. 

Актуальную информацию о применяемых по умолчанию паролях см. PIN-коды (пароли) ключевых носителей JaCarta по умолчанию.

Далее в примерах используется PIN-код администратора 00000000 (восемь нулей). 

В токенах Аладдин JaCarta ГОСТ-2 PIN-код администратора не используется, вместо него используется PUK-код. Подробнее см. документацию, предоставляемую производителем оборудования. Дальнейшие примеры неприменимы к токенамх Аладдин JaCarta ГОСТ-2.

Инициализировать токен командой pkcs11-tool:

Command
pkcs11-tool --module /usr/lib/libjcPKCS11-2.so --init-token --so-pin 00000000 --label 'JaCarta PKI'

Задать PIN-код пользователя командой:

Command
pkcs11-tool --module /usr/lib/libjcPKCS11-2.so --init-pin --so-pin 00000000 --pin 11111111

Где:

  • --init-token – команда инициализации токена;
  • --pin - PIN-код пользователя JaCarta;
  • --so-pin 00000000 – PIN-код администратора;
  • --label 'JaCarta PKI' - метка (название) токена;
    --module - расположение библиотеки libjcPKCS11-2.so.

Изменение PIN-кода токена

Для изменения PIN-кода токена выполнить команду:

Command
pkcs11-tool --module /usr/lib/libjcPKCS11-2.so --login --pin <старый_PIN-код_пользователя> --change-pin --new-pin <новый_PIN-код_пользователя>

После ввода команды система сообщит, что PIN-код успешно изменен:

Блок кода
Using slot 0 with a present token (0x0)
PIN successfully changed 

Здесь и далее в примерах используется опция --pin, позволяющая задать PIN-код пользователя в командной строке. В практических применениях эта опция может быть пропущена, в этом случае PIN-код будет запрошен в интерактивном режиме.

Проверка наличия сертификатов и ключевых пар в токене

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

Command
 pkcs11-tool --module /usr/lib/libjcPKCS11-2.so --pin <PIN-код_пользователя> -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

Если после сообщения

Блок кода
Using slot 0 with a present token (0x0)

 выводится информация о ключах и сертификатах, то из токена можно считать сертификат (см. ниже). Если после указанного сообщения не выводится никаких данных, то устройство пустое. Следует обратиться к администратору или создать ключи и сертификат самостоятельно.

Экспорт сертификата из токена

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

Command
pkcs11-tool --

Для установки библиотеки libjcPKCS11-2 следует  скачать:

View file
namejcPKCS11-2_2.4.0.2946_amd64.deb
height250
Test
sudo dpkg -i jcPKCS11-2_2.4.0.2946_amd64.deb

Проверка работы JaCarta в системе

Для проверки работы JaCartaа:
Подключите устройство к компьютеру.

Способ №1

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

Test
pcsc_scan

Image Removed

Способ №2

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

Test
pkcs11-tool --module /usr/lib/libjcPKCS11-2.so -T

Image Removed

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

Для того чтобы определить путь до библиотеки libjcPKCS11-2.so введите команду:
find /usr/*(lib|lib64) -name libjcPKCS11-2.so

Способ №3

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

XCA: графический интерфейс для работы с токенами

Инициализация токена JaCarta

Для инициализации токена необходимо воспользоваться утилитой pkcs11-tool.

Test
pkcs11-tool --slot 0x1ffff --init-token --so-pin 00000000 --label 'JaCarta PKI' --module /usr/lib/libjcPKCS11-2.so

Для задания ПИН кода пользователя используйте команду:

Test
pkcs11-tool --slot 0x1ffff --init-pin --so-pin 00000000 --login --pin 11111111 --module /usr/lib/libjcPKCS11-2.so
Информация

--slot 0x1ffff — указывает в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.

--init-token – команда инициализации токена.

--pin - пин код пользователя JaCarta. По умолчанию имеет значение 11111111

--so-pin 00000000 – ПИН код администратора JaCarta PKI. По умолчанию имеет значение 00000000

--label 'JaCarta PKI' - метка(название) устройства.

--module - указывает путь до библиотеки libjcPKCS11-2.so

Image Removed

Предупреждение

Внимание! Инициализация устройства удалит все данные на JaCarta PKI без возможности восстановления. 

Изменение PIN-кода JaCarta

Для изменения pin-кода JaCarta введите команду:
Test
pkcs11-tool --module /usr/lib/libjcPKCS11-2.so --login --pin ваш_старый_пин --change-pin --new-pin ваш_новый_пин
После чего система оповестит Вас о том, что PIN-код успешно изменен:
Using slot 0 with a present token (0x0)
PIN successfully changed 

Проверка наличия сертификатов и ключевых пар на JaCarta 

Проверка

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

Test
 pkcs11-tool --module /usr/lib/libjcPKCS11-2.so -O -l

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

Блок кода
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

...

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

...

module /usr/lib/libjcPKCS11-2.so -r -y cert  --

...

id <id> > <название_сертификата>.crt

Вместо <id> указать идентификатор (ID), полученный при проверке наличия сертификатов. 

Вместо <название_сертификата>.crt указать имя файла, в который будет экспортирован сертификат.

Генерация ключевой пары


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

Command

pkcs11-tool --module /usr/lib/libjcPKCS11-2.so --label "Astra Linux" --keypairgen --key-type rsa:2048 -l --id 45



Создание самоподписанного сертификата

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

  1. Выполнить команду:

    Command
    openssl

    При выполнении команды будет запущена командная оболочка openssl;

  2. В командной оболочке openssl:

    1. Выполнить команду для подключения библиотеки jcPKCS11-2:

      Блок кода
      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/libjcPKCS11-2.so

      Пример:

      Блок кода
      $ openssl
      
      OpenSSL> engine dynamic -pre 

вместо {id} нужно подставить ID который вы увидите в выводе команды

Если после строчки 

Using slot 0 with a present token (0x0) 

нет ничего, значит устройство пустое. Следует обратиться к администратору или создать ключи и сертификат самостоятельно.

Создание ключевой пары

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

Test

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

Image Removed

Создание самоподписанного сертификата

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

$ openssl

...

    1. SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so

...

    1.  -pre ID:pkcs11 -pre LIST_ADD:

...

    1. 1 -pre LOAD -

...

    1. pre MODULE_PATH:/usr/lib/libjcPKCS11-2.so

...

    1. 
      
      (dynamic) Dynamic engine loading support

...

    1. 
      [Success]: SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so

...

    1. 
      [Success]: ID:pkcs11

...

    1. 
      [Success]: LIST_ADD:1

...

    1. 
      [Success]: LOAD

...

    1. 
      [Success]: MODULE_PATH

...

1) В Astra Linux SE 1.6 pkcs11 libengine-pkcs11-openssl версии 1.0.2 не совместим с библиотекой libjcPKCS11-2.so. Для корректного функционирования, следует скачать и установить подписанный пакет libengine-pkcs11-openssl1.1 версии 0.4.4-4 для Смоленска 1.6:

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

    1. :/usr/lib/libjcPKCS11-2.so
      Loaded: (pkcs11) pkcs11 engine
      


    2. Выполнить команду:

      Блок кода
      req -engine pkcs11 -new -key 131071:45 -keyform engine -x509 -out название_сертификата.crt -outform DER

      Пример:

      Предупреждение

      В поле Common Name указать имя пользователя ОС (в примере ниже и далее используется имя Astra-user).

      Пример:

      Блок кода

...

    1. OpenSSL> req -engine pkcs11 -new -key 131071:45 -keyform engine -x509 -out название

...

    1. _сертификата.crt -outform DER

...

    1. 
      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

...

    1.  

...

    1.  

...

    1.  
      Organizational Unit Name (eg, section) []: Astra

...

    1. 
      

...

Предупреждение

В поле Common Name должно быть указано имя пользователя ОС.

...

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

Для того чтобы определить путь до библиотеки pkcs11.so введите команду:
$ find /usr/*(lib|lib64) -name pkcs11.so

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

    1. Common Name (e.g. server FQDN or YOUR name) []:Astra-user
      Email Address []:Astra-user@astralinux.ru
      


    2. Выйти из командной оболочки openssl выполнив команду:

      Блок кода
      exit

...


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

...

Созданный личный сертификат

...

загрузить

...

в JaCarta:

...

Command
pkcs11-tool --module /usr/lib/libjcPKCS11-2.so -l -y cert -w 

...

<название_

...

сертификата>.crt -a "Имя_сертификата_в_токене" --id 45

...

Проверить наличие ключей

...

и

...

сертификатов

...

в

...

JaCarta:

Command

...

Titlepkcs11-tool

...

--module

...

/usr/lib/libjcPKCS11-2.so

...

-O

...

-l

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


Локальная аутентификация в Astra Linux

...

Image Removed

Установка дополнительный пакетов

Пуск - Настройки - Менеджер пакетов

...

с использованием JaCarta и пакета libpam-p11

Установка дополнительных пакетов

  1. Открыть Графический менеджер пакетов synaptic;
  2. Через Быстрый фильтр или через поиск

...

  1. найти и

...

  1. отметить к установке следующие пакеты:

...

    1. libccid;
    2. pcscd;
    3. libpam-p11;
    4. libpam-pkcs11;
    5. libp11-3 для Astra Linux Special Edition x.7 или libp11-2 для Astra Linux Special Edition 1.6;
    6. libengine-pkcs11-openssl;
    7. opensc

...

    1. ;
  1. Установить выбранные пакеты;

Или выполнить команду:

Command

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

...

sudo apt

...

 install opensc libengine-pkcs11-openssl libp11-

...

\* libpam-pkcs11 libpam-p11 pcscd libccid

Регистрация сертификата в системе

...

  1. Конвертировать ранее созданный сертификат в текстовый формат:

...

  1. Command
    openssl x509 -in 

...

  1. <название_

...

  1. сертификата>.crt -out название_

...

  1. сертификата.pem -inform DER -outform PEM

...

  1. где название_

...

  1. сертификата.pem -

...

  1. имя файла сертификата из токена в текстовом формате;

...


  1. Прочитать с токена сертификат с нужным

...

  1. идентификатором (ID);

  2. Записать полученный сертификат в файл доверенных сертификатов, для чего:

    1. Создать в домашнем каталоге пользователя подкаталог .eid. Для примера используется имя пользователя Astra-user:

      Command
      sudo mkdir ~Astra-user/.eid


    2. Назначить созданному подкаталогу права доступа:

      Command
      sudo chmod 0755 ~Astra-user/.eid


    3. Добавить в файл .eid/authorized_certificates сертификат (если файл не существует, то он будет создан):

      Command
      cat 
    1. сертификат_из_токена.pem | 

...

    1. sudo tee -a ~Astra-user/.eid/authorized_certificates

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

...


    1. Установить права доступа на файл:

      Command
      sudo chmod 0644 

...

    1. ~/.eid/authorized_certificates

...


    1. Если пользователю разрешено самому модифицировать свой список доверенных сертификатов, то передать ему владение созданным подкаталогом и файлом:

      Command
      sudo chown -R Astra-user:Astra-user ~/.eid



Информация

При

...

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

...

разные идентификаторы сертификатов.

Настраиваем аутентификацию 

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

...

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

Для настройки аутентификации:

  1. В файл /usr/share/pam-configs/p11 внести следующую информацию:

    Блок кода
    Name: Pam_p11

...

  1. 
    Default: yes

...

  1. 
    Priority: 800

...

  1. 
    Auth-Type: Primary

...

  1. 
    Auth: sufficient pam_p11

...

  1. .so

...

  1.  /usr/lib/libjcPKCS11-2.so

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

...


  1. Выполнить команду:

    Command
  1. sudo pam-auth-update

...


  1. В открывшемся окне включить отметку в пункте Pam_p11 (остальные отметки изменять не требуется);

  2. Нажать OK .

Проверка аутентификации по токену

Для проверки аутентификации по токену:

  1. Подключить токен к компьютеру;
  2. Выполнить команду:

    Command
    sudo login Astra-user


  3. При выполнении команды вместо пароля пользователя будет запрошен <PIN пользователя>;
  4. После ввода PIN-кода пользователя вход в сессию этого пользователя должен быть выполнен успешно.

Настройка блокировка

...

Вход по токену

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

...

sudo login

Вход выполняется с подключенным токеном к компьютеру. В момент ввода пароля будет сообщено, что требуется <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 библиотеки для работы с JaCarta
    pkcs11_module = /usr/lib/libjcPKCS11-2.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 в автозагрузку и

...

перезагрузить компьютер.

Дополнительные источники

...

информации

...

...

 Веб-сайт содержит большой объем справочной информации об устройствах JaCarta.

https://kbp.aladdin-rd.ru/

...

База знаний содержит инструкции по решению большинства ошибок, полезные статьи и ответы

...

на часто задаваемые вопросы. Здесь вы можете найти нужную информацию по ключевым словам.

https://www.aladdin-rd.ru/support/downloads

...

Центр Загрузки