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

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

Ключ

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

...

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

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

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

...

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

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

...

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

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


Проверка работы

...

токена в системе

...

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

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

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

Command
pcsc_scan


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

...

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


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

...

...

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

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

...

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

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

...

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

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




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

...

токена

...

Для

...

изменения

...

PIN-кода

...

токена ввести

...

команду:

Command
pkcs11-tool --module /usr/lib/libjcPKCS11-2.so --login --pin ваш_старый_пин --change-pin --new-pin ваш_новый_пин

...

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


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

...

в токене

...

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

Command
 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

...

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

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

...

Примечание

Расположение библиотеки 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/libjcPKCS11-2.so


    Блок кода
    $ 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. Для корректного функционирования токенов следует:


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

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


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

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


    Блок кода
    OpenSSL> req -engine pkcs11 -new -key 131071: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) []:Astra-user
    Email Address []:Astra-user@astralinux.ru
    


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

    Блок кода
    exit


...

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

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

    Command
    openssl x509 -in название_сертификата.crt -out название_сертификата.pem -inform DER -outform PEM

    где название_сертификата.pem - имя файла сертификата из токена в текстовом формате;

  2. Прочитать с токена сертификат с нужным идентификатором (ID);

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

    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


...

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

    Command
    sudo login Astra-user


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

...