Данная статья применима к:
- Astra Linux
Введение
В статье описано применение ПО КриптоПро CSP для проверки отсоединенной электронной подписи файлов, т.е. электронной подписи, сохраненной в отдельном файле (далее - подпись). Данная процедура применима для проверки подписи ISO-образов установочных дисков и оперативных обновлений Astra Linux Special Edition. Предполагается, что ПО КриптоПро уже установлено на компьютере. Подробно порядок установки и работы с КриптоПро CSP описан в статьях Работа с КриптоПро CSP и КриптоПро и сервис электронной подписи fly-csp.
При проверке подписи может выдаваться предупреждение "Один из сертификатов в цепочке просрочен". Это предупреждение не является критичным и, в случае успешного завершения проверки, говорит о том, что сертификат просрочен на момент выполнения проверки (для достоверности подписи сертификат не должен быть просрочен на момент подписания файла).
Загрузка файлов
Далее для примера используется ISO-образ и подпись оперативного обновления Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1..6 БЮЛЛЕТЕНЬ № 20211126SE16 (оперативное обновление 10). При наличии доступа в Интернет загрузить ISO-образ и подпись можно из Интернет-репозитория командами:
Для загрузки файлов с использованием протокола HTTPS требуются пакеты apt-transport-https и пcertificates. В Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6 эти пакеты могут быть не установлены по умолчанию, при подключенных репозиториях установить их можно командой:
Загрузка ISO-образа:
Загрузка подписи:
После выполнения указанных команд ISO-образ и подпись будут сохранены в текущем каталоге в файлах 20211126SE16.iso и 20211126SE16.iso.sig соответственно. Ссылки для загрузки других оперативных обновлений и их подписей доступны в соответствующих бюллетенях, см. Оперативные обновления для Astra Linux Special Edition.
Установка сертификатов УЦ МО РФ
Для проверки подписи, сделанной с использованием сертификатов УЦ МО РФ (период с 31.07.2020 по 07.12.2021) необходимо добавить в локальное хранилище сертификат головного удостоверяющего центра, выдавшего сертификат, использованный для подписания, и список отозванных сертификатов (CRL). В случае проверки ISO-образов оперативных обновлений Astra Linux Special Edition эти данные доступны по ссылке: https://zgt.mil.ru/Udostoveryayushchij-centr/Kornevye-i-otozvannye-sertifikaty, а загрузка и установка сертификата и CRL может быть выполнена командами:
Для сертификатов, выданных УЦ МО РФ в период с 31.07.2020 г. по 07.12.2021:
Загрузка и установка сертификата удостоверяющего центра ГУЦ в хранилище mRoot:
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:
wget https://structure.mil.ru/download/doc/morf/military/files/crl_20.crl -O - | sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mca -stdin -crl
Для сертификатов, выданных УЦ МО РФ в период с 01.08.2019 г. по 31.07.2020 г.:
Загрузка и установка сертификата удостоверяющего центра ГУЦ в хранилище mRoot:
wget https://structure.mil.ru/download/doc/morf/military/files/ca2019.cer -O - | sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -stdinЗагрузка и установка CRL в хранилище mca:
wget https://structure.mil.ru/download/doc/morf/military/files/crl_19.crl -O - | sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mca -stdin -crl
Оба комплекта из сертификата и CRL могут быть установлены одновременно.
Проверка подписи
Проверка подписи выполняется командой /opt/cprocsp/bin/amd64/cryptcp -verify -detached, которую можно использовать в двух вариантах:
Использовать ключ -verall, указывающий, что надо найти всех подписавших, в том числе в сообщении:
/opt/cprocsp/bin/amd64/cryptcp -verify -detached 20211126SE16.iso 20211126SE16.iso.sig -verallВ процессе проверки будет запрошено подтверждение, для завершения проверки нажать "y" и Enter.CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2021.
Утилита командной строки для подписи и шифрования файлов.
Папка './':
20211126SE16.iso... Проверка подписи...
Автор подписи: "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ ""РУСБИТЕХ-АСТРА""", Сивцев, Илья Игоревич, "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ ""РУСБИТЕХ-АСТРА""", Генеральный директор, Москва, 77 г. Москва, RU, "Варшавское шоссе, дом 26, строение 11", 5167746207459, 007726388700, 13527156247
Один из сертификатов в цепочке просрочен.
Вы хотите использовать этот сертификат (Да[Y], Нет[N], Отмена[C])?yПодпись проверена.
[ErrorCode: 0x00000000]
Сообщение "[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Явно указать в качестве хранилища сертификатов саму подпись (ключ -f <имя_файла_подписи>):
/opt/cprocsp/bin/amd64/cryptcp -verify -detached 20211126SE16.iso 20211126SE16.iso.sig -f 20211126SE16.iso.sigCryptCP 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) говорит о том, что проверка подписи завершена успешно.
При этом предупреждение "Один из сертификатов в цепочке просрочен" не является критичным и, в случае успешного завершения проверки, говорит о том, что сертификат просрочен на момент выполнения проверки (для достоверности подписи сертификат не должен быть просрочен на момент подписания файла). В этой форме информация о найденных сертификатах и их состоянии выводится непосредственно в процессе проверки.