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

  • Astra Linux

Введение

В статье описано применение ПО КриптоПро CSP для проверки отсоединенной электронной подписи файлов, т.е. электронной подписи, сохраненной в отдельном файле (далее - подпись). Данная процедура применима для проверки подписи ISO-образов установочных дисков и оперативных обновлений Astra Linux Special Edition. Предполагается, что ПО КриптоПро уже установлено на компьютере. Подробно порядок установки и работы с КриптоПро CSP описан в статьях Работа с КриптоПро CSP и КриптоПро и сервис электронной подписи fly-csp.

При проверке подписи может выдаваться предупреждение "Один из сертификатов в цепочке просрочен". Это предупреждение не является критичным и, в случае успешного завершения проверки, говорит о том, что сертификат просрочен на момент выполнения проверки (для достоверности подписи сертификат не должен быть просрочен на момент подписания файла). 

Загрузка файлов


Для загрузки файлов с использованием протокола HTTPS требуются пакеты apt-transport-https и пcertificates. В Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6 эти пакеты могут быть не установлены по умолчанию, при подключенных репозиториях установить их можно командой:

sudo apt install apt-transport-https ca-certificates


  1. Пример файла, подписанного ключами УЦ ООО "Сертум-Про" (для подписей, использующихся с 07.12.2021). Для примера используется ISO-образ и подпись оперативного обновления Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1..6 БЮЛЛЕТЕНЬ № 20220407SE16MD. При наличии доступа в Интернет загрузить ISO-образ и подпись можно из Интернет-репозитория командами::
  2. Пример файла, подписанного ключами УЦ МО РФ:

    Для примера используется ISO-образ и подпись оперативного обновления Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1..6 БЮЛЛЕТЕНЬ № 20211126SE16 (оперативное обновление 10). При наличии доступа в Интернет загрузить ISO-образ и подпись можно из Интернет-репозитория командами:

После выполнения указанных команд ISO-образ и подпись будут сохранены в текущем каталоге в файлах с расширением .iso и расширением .iso.sig соответственно. Ссылки для загрузки других оперативных обновлений и их подписей доступны в соответствующих бюллетенях, см. Оперативные обновления для Astra Linux Special Edition.

Установка сертификатов УЦ МО РФ

Для подписей, использующихся с 07.12.2021, отдельная установка сертификатов УЦ для проверки подписи не требуется.


Для проверки подписи, сделанной с использованием сертификатов УЦ МО РФ (периоды с 01.08.2019 по 31.07.2020 и с 31.07.2020 по 07.12.2021) необходимо добавить в локальное хранилище сертификаты головного удостоверяющего центра, выдавшего сертификат, использованный для подписания, и список отозванных сертификатов (CRL). В случае проверки ISO-образов оперативных обновлений Astra Linux Special Edition эти данные доступны по ссылке: Корневые и отозванные сертификаты в разделе Архив сертификатов УЦ МО РФ, Архив квалифицированных сертификатов. Для установки этих сертификатов:

  1. Скачать архив с сертификатами:

    Архив будет сохранен в текущем каталоге в файле E3ZkKxnPBc.zip.

  2. Извлечь из архива сертификаты и и списки отозванных сертификатов:
    - Для сертификатов, выданных УЦ МО РФ в период с 31.07.2020 по 07.12.2021 — файлы ca2020.cer и crl_20.crl;
    - Для сертификатов, выданных УЦ МО РФ в период с 01.08.2019 по 31.07.2020 — файлы ca2019.cer и crl_19.crl
    Команда для извлечения:

    unzip E3ZkKxnPBc.zip ca2020.cer ca2019.cer crl_20.crl crl_19.crl

  3. Установить нужный комплект из сертификата и CRL или одновременно оба комплекта:

    sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -file ca2020.cer
    sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mca -file crl_20.crl -crl
    sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -file ca2019.cer
    sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mca -file crl_19.crl -crl


Проверка подписи

Проверка подписи выполняется командой /opt/cprocsp/bin/amd64/cryptcp -verify -detached, которую можно использовать в двух вариантах:

  1. Использовать ключ -verall, указывающий, что надо найти всех подписавших, в том числе в сообщении:

    /opt/cprocsp/bin/amd64/cryptcp -verify -detached 20220407SE16MD.tar.gz 20220407SE16MD.tar.gz.sig -f 20220407SE16MD.tar.gz.sig

    CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2021.
    Утилита командной строки для подписи и шифрования файлов.

    Будет использован следующий сертификат:
    Субъект:"ООО ""РУСБИТЕХ-АСТРА""", Ковшов, Олег Юрьевич, RU, 77 г. Москва, Москва, "Ш ВАРШАВСКОЕ, ДОМ 26, СТР 11", "ООО ""РУСБИТЕХ-АСТРА""", Руководитель отдела, 5167746207459, 13849770106, 772879051017, okovshov@astralinux.ru, 7726388700-772601001-013849770106, 7726388700
    Действителен с 07.12.2021 06:54:24 по 07.12.2022 06:57:56

    Цепочки сертификатов проверены.
    Папка './':
    20220407SE16MD.tar.gz... Проверка подписи...     
    Автор подписи: "ООО ""РУСБИТЕХ-АСТРА""", Ковшов, Олег Юрьевич, RU, 77 г. Москва, Москва, "Ш ВАРШАВСКОЕ, ДОМ 26, СТР 11", "ООО ""РУСБИТЕХ-АСТРА""", Руководитель отдела, 5167746207459, 13849770106, 772879051017, okovshov@astralinux.ru, 7726388700-772601001-013849770106, 7726388700
     Подпись проверена.
    [ErrorCode: 0x00000000]

    Сообщение "[ErrorCode: 0x00000000]" (завершение с кодом 0) говорит о том, что проверка подписи завершена успешно.

    Возможное предупреждение "Один из сертификатов в цепочке просрочен" не является критичным и, в случае успешного завершения проверки, говорит о том, что сертификат просрочен на момент выполнения проверки (для достоверности подписи сертификат не должен быть просрочен на момент подписания файла). Для поиска просроченного сертификата можно использовать команду проверки в режиме вывода отладочной информации (CP_PRINT_CHAIN_DETAIL=1):

    CP_PRINT_CHAIN_DETAIL=1 /opt/cprocsp/bin/amd64/cryptcp -verify -verall -detached 20220407SE16MD.tar.gz 20220407SE16MD.tar.gz.sig

  2. Явно указать в качестве хранилища сертификатов саму подпись (ключ -f <имя_файла_подписи>):

    /opt/cprocsp/bin/amd64/cryptcp -verify -detached 20220407SE16MD.tar.gz 20220407SE16MD.tar.gz.sig -verall

    CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2021.
    Утилита командной строки для подписи и шифрования файлов.
    Папка './':
    20220407SE16MD.tar.gz... Проверка подписи...     
    Автор подписи: "ООО ""РУСБИТЕХ-АСТРА""", Ковшов, Олег Юрьевич, RU, 77 г. Москва, Москва, "Ш ВАРШАВСКОЕ, ДОМ 26, СТР 11", "ООО ""РУСБИТЕХ-АСТРА""", Руководитель отдела, 5167746207459, 13849770106, 772879051017, okovshov@astralinux.ru, 7726388700-772601001-013849770106, 7726388700
     Подпись проверена.
    [ErrorCode: 0x00000000]

    Сообщение "[ErrorCode: 0x00000000]" (завершение с кодом 0) говорит о том, что проверка подписи завершена успешно.
    Возможное предупреждение "Один из сертификатов в цепочке просрочен" не является критичным и, в случае успешного завершения проверки, говорит о том, что сертификат просрочен на момент выполнения проверки (для достоверности подписи сертификат не должен быть просрочен на момент подписания файла). В этой форме информация о найденных сертификатах и их состоянии выводится непосредственно в процессе проверки.

Для подписей, использовавшихся до 07.12.2021:

  1. Использовать ключ -verall, указывающий, что надо найти всех подписавших, в том числе в сообщении:

    /opt/cprocsp/bin/amd64/cryptcp -verify -detached 20211126SE16.iso 20211126SE16.iso.sig -verall

    CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2021.
    Утилита командной строки для подписи и шифрования файлов.
    Папка './':
    20211126SE16.iso... Проверка подписи...     
    Автор подписи: "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ ""РУСБИТЕХ-АСТРА""", Сивцев, Илья Игоревич, "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ ""РУСБИТЕХ-АСТРА""", Генеральный директор, Москва, 77 г. Москва, RU, "Варшавское шоссе, дом 26, строение 11", 5167746207459, 007726388700, 13527156247
    Один из сертификатов в цепочке просрочен.
    Вы хотите использовать этот сертификат (Да[Y], Нет[N], Отмена[C])?y

     Подпись проверена.
    [ErrorCode: 0x00000000]

    В процессе проверки будет запрошено подтверждение, для завершения проверки нажать "y" и Enter.
    Сообщение "[ErrorCode: 0x00000000]" (завершение с кодом 0) говорит о том, что проверка подписи завершена успешно.
    При этом предупреждение "Один из сертификатов в цепочке просрочен" не является критичным и, в случае успешного завершения проверки, говорит о том, что сертификат просрочен на момент выполнения проверки (для достоверности подписи сертификат не должен быть просрочен на момент подписания файла). Для поиска просроченного сертификата можно использовать команду проверки в режиме вывода отладочной информации (CP_PRINT_CHAIN_DETAIL=1):
    CP_PRINT_CHAIN_DETAIL=1 /opt/cprocsp/bin/amd64/cryptcp -verify -verall -detached 20211126SE16.iso 20211126SE16.iso.sig 

  2. Явно указать в качестве хранилища сертификатов саму подпись (ключ -f <имя_файла_подписи>):

    /opt/cprocsp/bin/amd64/cryptcp -verify -detached 20211126SE16.iso 20211126SE16.iso.sig -f 20211126SE16.iso.sig

    CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2021.
    Утилита командной строки для подписи и шифрования файлов.

    Будет использован следующий сертификат:
    Субъект:"ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ ""РУСБИТЕХ-АСТРА""", Сивцев, Илья Игоревич, "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ ""РУСБИТЕХ-АСТРА""", Генеральный директор, Москва, 77 г. Москва, RU, "Варшавское шоссе, дом 26, строение 11", 5167746207459, 007726388700, 13527156247
    Действителен с 11.02.2021 07:33:28 по 30.12.2021 22:00:00

    Цепочка сертификатов не проверена для следующего сертификата:
    Субъект:"ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ ""РУСБИТЕХ-АСТРА""", Сивцев, Илья Игоревич, "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ ""РУСБИТЕХ-АСТРА""", Генеральный директор, Москва, 77 г. Москва, RU, "Варшавское шоссе, дом 26, строение 11", 5167746207459, 007726388700, 13527156247
    Действителен с 11.02.2021 07:33:28 по 30.12.2021 22:00:00

    Один из сертификатов в цепочке просрочен.
    Вы хотите использовать этот сертификат (Да[Y], Нет[N], Отмена[C])?y

    Цепочки сертификатов проверены.
    Папка './':
    20211126SE16.iso... Проверка подписи...     
    Автор подписи: "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ ""РУСБИТЕХ-АСТРА""", Сивцев, Илья Игоревич, "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ ""РУСБИТЕХ-АСТРА""", Генеральный директор, Москва, 77 г. Москва, RU, "Варшавское шоссе, дом 26, строение 11", 5167746207459, 007726388700, 13527156247
    Один из сертификатов в цепочке просрочен.
    Вы хотите использовать этот сертификат (Да[Y], Нет[N], Отмена[C])?y

     Подпись проверена.
    [ErrorCode: 0x00000000]

    В процессе проверки будет дважды запрошено подтверждение, для продолжения проверки нажать "y" и Enter.

    Сообщение "[ErrorCode: 0x00000000]" (завершение с кодом 0) говорит о том, что проверка подписи завершена успешно.

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

  • No labels