Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Оглавление


Информация
titleДанная статья применима к:
  • 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 эти пакеты могут быть не установлены по умолчанию, при подключенных репозиториях установить их можно командой:

Command
sudo apt install apt-transport-https ca-certificates



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

    Раскрыть
    titleНажмите чтобы раскрыть...

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


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

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

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


wget https://structure.mil.ru/download/doc/morf/military/files/

— файлы ca2020.cer и crl_20.crl

-O - | sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mca -stdin -crl 

;
- Для сертификатов, выданных УЦ МО РФ в период с 01.08.2019 г. по 31.07.2020 г.:

Загрузка и установка сертификата удостоверяющего центра ГУЦ в хранилище mRoot

— файлы ca2019.cer и crl_19.crl
Команда для извлечения:

Раскрыть
titleНажмите, чтобы раскрыть...

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

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

    Command

    wget https://zgt.mil.ru/

Udostoveryayushchij-centr/Kornevye-i-otozvannye-sertifikaty
  1. upload/site228/document_file/E3ZkKxnPBc.zip

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

  2. Извлечь из архива сертификаты и и списки отозванных сертификатов:
    -

, а загрузка и установка сертификата и CRL может быть выполнена командами:
  1. Для сертификатов, выданных УЦ МО РФ в период с 31.07.2020 г. по 07.12.2021 :

    Загрузка и установка сертификата удостоверяющего центра ГУЦ в хранилище mRoot:

    Command
    wget https://structure.mil.ru/download/doc/morf/military/files/ca2020.cer -O - | sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -stdin

    Загрузка и установка CRL в хранилище mca:

Command
Command
wget https://structure.mil.ru/download/doc/morf/military/files/ca2019.cer -O - |

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


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

    Command

    sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -

    stdin

    Загрузка и установка CRL в хранилище mca:

    Commandwget https://structure.mil.ru/download/doc/morf/military/files/crl_19.crl -O - |

    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 -

    stdin -crl 
  • Оба комплекта из сертификата и CRL могут быть установлены одновременно.
    1. file crl_19.crl -crl



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

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

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

      Command
      Title/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):

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


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

      Command
      Title/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:

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

      Command
      Title/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):

      Command
      CP_PRINT_CHAIN_DETAIL=1 /opt/cprocsp/bin/amd64/cryptcp -verify -verall -detached 20211126SE16.iso 20211126SE16.iso.sig 


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

      Command
      Title/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) говорит о том, что проверка подписи завершена успешно.

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