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

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

Ключ

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


Оглавление
outlinetrue

Аладдин RD JaCarta в AstraLinux

...

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

...

Astra Linux

...

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

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

...

  • аппаратного средства, выполненного в форм-факторе USB-токена;

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

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

...

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

  • ПО из репозиториев Astra Linux:
    • библиотека libccid
    , libjcPKCS11-2
    • ;
    пакеты
    • пакет libpcsclite1
    и
    • ;
    • пакет pcscd;
    • пакет opensc;
    • пакет pcsc-tools (необязательно)

  • .

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

    • ;

  • ПО, предоставляемое производителем аппаратного средства:
    • библиотека libjcPKCS11-2 (пакет jcPKCS11-2);

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

Command
sudo
Command
sudo apt install libccid pcscd libpcsclite1 pcsc-tools opensc

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

  1. Загрузить файл с пакетом: jcPKCS11-2_2.4.0.2946_amd64.deb (или скачать более новую версию пакета с web-сайта Аладдин: https://www.aladdin-rd.ru/support/downloads/jacarta). ;

...

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

    Command
    sudo dpkg -i jcPKCS11-2_2.4.0.2946_amd64.deb


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

...

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

Способ №1

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

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

Command
pcsc_scan


Способ №2

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

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

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



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

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

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

Способ №3

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



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

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

...

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

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

...

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

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

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

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

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

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


Информация
titleПараметры команды pkcs11-tool:

--slot 0x1ffff — указывает в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.;
--init-token – команда инициализации токена.;
--pin - пин код пользователя JaCarta. По умолчанию имеет значение 11111111;
--so-pin 00000000 – ПИН код администратора JaCarta PKI. По умолчанию имеет значение 00000000;
--label 'JaCarta PKI' - метка(название) устройства.;
--module - указывает путь до библиотеки libjcPKCS11-2.so.


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

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

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



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

...

ДляДля изменения pin-кода JaCarta введитеввести команду:
Command
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 введите выполнить команду:

Command
 pkcs11-tool --module /usr/lib/libjcPKCS11-2.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

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

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

 выводится информация строчки выводится информация о ключах и сертификатах, то из токена можно считать сертификат (см. ниже).

...

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

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

...

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

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

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

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

Using slot 0 with a present token (0x0) 

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

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

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

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

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

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

...

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

Command

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

...

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

Command
openssl

...

Примечание

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

Command
find /usr/*{lib,lib64} -name pkcs11.so2

Приведенные ниже команды должны быть неразрывны и выполнены в одной сессии командной оболочки openssl, иначе openssl не сможет обратиться к закрытому ключу.

Номер слота указывается в десятичной системе счисления. Число 131071 в шестнадцатеричной системе = 0x1ffff.

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

    Command
    openssl


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

  2. В командной оболочке openssl выполнить команду для подключения библиотеки 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/

...

  1. libjcPKCS11-2.so

...


  1. Блок кода
    $ 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/libjcPKCS11-2.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/libjcPKCS11-2.so
    Loaded: (pkcs11) pkcs11 engine
    


    Примечание

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

    • Либо загрузить и установить п

...

    • одписанный пакет libengine-pkcs11-openssl1.1 версии 0.4.4-4 для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6):  libengine-pkcs11-openssl1.1

...

...

    • ;


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

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

...

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

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

...

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

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

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

  1. 
    Organizational Unit Name (eg, section) []: Astra
    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

...

с использованием JaCarta

...

Установка

...

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

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

...

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

...

  1. найти и

...

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

...

    1. libccid;
    2. pcscd;
    3. libpam-p11;
    4. libpam-pkcs11;
    5. libp11-2;
    6. libengine-pkcs11-openssl;
    7. opensc

...

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

Или выполнить командуЛибо воспользовавшись терминалом FLY:

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

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

...

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

    Command
    openssl x509 -in название

...

  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 сертификат_из_токена.pem | sudo tee -a ~Astra-user/.eid/authorized_certificates


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

      Command
      sudo chmod 0644 ~/.eid/authorized_certificates


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

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



Информация

При

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

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

Command
mkdir /home/user/.eid
chmod 0755 /home/user/.eid
cat Ваш_сертификат_из_токена.pem >> /home/user/.eid/authorized_certificates
chmod 0644 /home/user/.eid/authorized_certificates
Информация

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

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

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

...

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

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

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

  1. В файл /usr/share/pam-configs/p11

...

  1. внести следующую информацию:

    Блок кода
    Name: Pam_p11

...

  1. 
    Default: yes

...

  1. 
    Priority: 800

...

  1. 
    Auth-Type: Primary

...

  1. 
    Auth: sufficient pam_p11_opensc.

...

  1. so /usr/lib/libjcPKCS11-

...

  1. 2.so


  2. Выполнить

...

  1. команду:

    Command
    sudo pam-auth-update

...


  1. В открывшемся окне поставить отметку в пункте Pam_p11

...

  1. ;

  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 в автозагрузку и перезагрузитесьперезагрузить компьютер.

Дополнительные источники информации

При возникновении вопроса, на который вам не удалось найти ответ в этой инструкции, рекомендуем 
обратиться к следующим дополнительным источникам информации:

...

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

https://kbp.aladdin-rd.ru/
База знаний содержит инструкции по решению большинства ошибок, полезные статьи и ответы на 
на часто задаваемые вопросы. Здесь вы можете найти нужную информацию по ключевым словам.

https://www.aladdin-rd.ru/support/downloads Центр Загрузки