Содержание

Skip to end of metadata
Go to start of metadata

На данный момент поддерживается подпись и проверка подписи документов PDF на алгоритмах ГОСТ 2001-го и 2012-го годов (последний -- в исполнении с ключами длиной 256 бит).
Использовались пакеты:

  • LibreOffice 6.1.5-3+deb10u2~bpo9+1astra1
  • FireFox 68.0.2

Данная статья применима к:

Установка пакетов

  1. Для подписания файлов PDF используются программы, входящие в состав набора офисных программ LibreOffice.
    При стандартной установке ОС Astra Linux эти программы устанавливаются по умолчанию. Если они не были установлены, то установить их можно командой

    sudo apt install libreoffice libreoffice-l10n-ru

  2. Для хранения сертификатов используется КриптоПро CSP 5.0.
    Дистрибутив КриптоПро CSP 5.0 можно скачать с сайта КриптоПро (для скачивания требутся регистрация на сайте).
    Для скачивания выбрать вариант "КриптоПро CSP 5.0 для Linux (x64, deb)".

  3. Распаковать дистрибутив можно командой

    tar xzf linux-amd64_deb.tgz

  4. Для установки

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

      cd linux-amd64_deb
      sudo ./install-gui.sh
      (предполагается, что дистрибутив распакован в текущем каталоге);

    2. В открывшемся приложении выбрать «Next» (нажать клавишу «Enter»);

    3. Отметить все пункты, кроме «КС2 Cryptographic Service Provider»

    4. Выбрать «Next» (нажать клавишу «Enter»);

    5. Выбрать «Install» (нажать клавишу «Enter»);

    6. Дождаться сообщения об успешном завершении установки и нажать клавишу «Enter»;

    7. При наличии лицензии выбрать «Enter the license now» и ввести её, или выбрать пункт «Later» для тестовых целей;

    8. Выбрать «Exit» (нажать клавишу «Enter»);

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

  1. Создать от имени суперпользователя хранилище сертификатов:

    Adding new reader:
    Nick name: HDIMAGE
    Succeeded, code:0x0

  2. Проверить результат создания:

    /opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -fqcn -verifyc

    CSP (Type:80) v5.0.10003 KC1 Release Ver:5.0.11455 OS:Linux CPU:AMD64 FastCode:READY:AVX.
    AcquireContext: OK. HCRYPTPROV: 35348275
    OK.
    Total: SYS: 0,000 sec USR: 0,040 sec UTC: 0,130 sec
    [ErrorCode: 0x00000000

    Сообщение ErrorCode с кодом 0x00000000 обозначает успешное завершение команды.
    Если произошла ошибка код будет ненулевой.
  3. Добавить в хранилище контейнер \\.\HDIMAGE\cert3 для размещения сертификата:

    /opt/cprocsp/bin/amd64/csptest -keyset -newkeyset -cont '\\.\HDIMAGE\cert3'

    1. Выполнить указания программы по генерации случайного ввода с помощью мыши и клавиатуры (не использовать клавишу "Пробел"!!!);

    2. выбрать пароль (можно оставить пустым);

    3. Повторно выполнить указания программы по генерации случайного ввода с помощью мыши и клавиатуры;

  4. Создать запрос на получение сертификата:

    /opt/cprocsp/bin/amd64/cryptcp -creatrqst -dn "E=user@astralinux.ru,C=RU, CN=Фамилия Имя, SN=Фамилия" -hashalg 1.2.643.7.1.1.2.2 -nokeygen -both -ku -cont '\\.\HDIMAGE\cert3' cert3.req
    CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2019.
    Утилита командной строки для подписи и шифрования файлов.
    Запрос успешно создан и сохранен в файле.
    [ErrorCode: 0x00000000]
    Запрос будет сохранён в файле cert3.req

  5. С помощью WEB-браузера открыть ссылку на тестовый удостоверяющий центр КриптоПРО https://www.cryptopro.ru/certsrv/certrqxt.asp

  6. Скопировать в окно с названием «Base-64-шифрованный запрос сертификата (CMC или PKCS #10 или PKCS #7):» содержимое файла с запросом;

  7. Нажать кнопку «Выдать»;

  8. Если всё сделано правильно появится сообщение «Запрошенный вами сертификат был вам выдан.». Всплывающее окно с предложением установить дополнительный плагин для WEB-браузера игнорировать (отказаться от установки);

  9. Выбрать «DER-шифрование»;

  10. Нажать «Загрузить цепочку сертификатов» и сохранить сертификат в файле на локальном компьютере (далее предполагается, что сертификат сохранён в файле ~/Загрузки/certnew.p7b);

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

    1. С помощью граифеского меню запустить графический интерфейс КриптоПРО: "Пуск" - "Утилиты" - "Инструменты КриптоПРо";

    2. Перейти на вкладку "Сертификаты";
    3. Нажать кнопку "Установить сертификаты";
    4. Выбрать файл с цепочкой сертификатов (~/Загрузки/certnew.p7b) и нажать кнопку "Открыть";
    5. Предупреждение о риске установки игнорировать (нажать кнопку "ОК");

Настройка FireFox

  1. Через меню Firefox «Настройки» → «Приватность и защита» → «Устройства защиты» → «Загрузить» добавить в список библиотеку

    /opt/cprocsp/lib/amd64/libcppkcs11.so

    после чего перезапустить Firefox.

  2. После выполнения предыдущих шагов в меню Firefox «Настройки» → «Приватность и защита» → «Просмотр сертификатов»

    1. в секции "Ваши сертификаты" теперь должны отображаться сертификаты, которыми будут подписываться документы;

    2. В секции "Центры сертификации" теперь должны отображаться корневые сертификаты, до которых будет строиться цепочка доверия при проверке подписи и при создании подписи.
      При написании статьи это был сертификат «CRYPTO-PRO LLC»/"CRYPTO-PRO Test Center 2".
      Для каждого центра сертификации, которому вы хотите доверять, необходимо нажать кнопку "Изменить доверие" и в появившемся окне выбрать все степени доверия;

Подписание файла PDF

  1. Запустить текстовый процессор LibreOffice ( Пуск — Офис — Текст LibreOffice);

  2. При необходимости создать тестовый PDF-файл для подписания (меню Файл — Экспорт в PDF...:);

  3. Для подписания

    1. перейти в меню Файл — Цифровые подписи — Подписать PDF и выбрать и открыть нужный файл PDF;

    2. Нажать кнопку «Подписать документ»;

    3. В открывшемся окне нажать кнопку «Подписать документ..»;

    4. В открывшемся списке сертификатов выбрать сертификат и нажать кнопку «Подписать»;

    5. Нажать кнопку «Закрыть»

  4. В результате выполнения вышеперечисленных действий на экране появится сообщение, что подпись верна.

  • No labels