Инструкция по проверке подписи ядра

Проверка подписи при помощи КриптоПро

Для проверки отсоединенной электронной подписи архива с исходным кодом без проверки цепочки сертификатов необходимо выполнить следующую входящую в пакет КриптоПро CSP команду со скаченными с портала Технологического Центра файлами, содержащими архив с исходным кодом и его подпись:

user@astra:~$ /opt/cprocsp/bin/amd64/cryptcp -nochain -vsignf linux-stable-5.10.119.tar.xz -f linux-stable-5.10.119.tar.xz.sgn 
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2021.
Утилита командной строки для подписи и шифрования файлов.

Будет использован следующий сертификат:
Субъект:1037700067327, 05337637969, 7709006125, 771411271348, khoroshilov@ispras.ru, ИСП РАН, 11 отдел, Ведущий научный сотрудник, ИСП РАН, Хорошилов, Алексей Владимирович, RU, МОСКВА, г. Москва, "УЛ. АЛЕКСАНДРА СОЛЖЕНИЦЫНА, Д.25"
Действителен с 18.05.2022 06:15:38 по 18.05.2023 06:25:38

Папка './':
linux-stable-5.10.119.tar.xz... Проверка подписи...     
Автор подписи: 1037700067327, 05337637969, 7709006125, 771411271348, khoroshilov@ispras.ru, ИСП РАН, 11 отдел, Ведущий научный сотрудник, ИСП РАН, Хорошилов, Алексей Владимирович, RU, МОСКВА, г. Москва, "УЛ. АЛЕКСАНДРА СОЛЖЕНИЦЫНА, Д.25"
 Подпись проверена.
[ErrorCode: 0x00000000]

В случае успешной проверки выполнение команды завершается с кодом 0 (сообщение [ErrorCode: 0x00000000]). Данные автора подписи должны в точности совпадать с данными в приведенном выше примере.

Для проверки отсоединенной электронной подписи архива с исходным кодом с проверкой цепочки сертификатов необходимо добавить в локальное хранилище сертификат головного удостоверяющего центра, доступного по ссылке.

>wget http://reestr-pki.ru/cdp/guc2022.crt -O - | sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -stdin

--2022-06-14 20:15:19--  http://reestr-pki.ru/cdp/guc2022.crt
Распознаётся reestr-pki.ru (reestr-pki.ru)… 185.194.32.242
Подключение к reestr-pki.ru (reestr-pki.ru)|185.194.32.242|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… Certmgr 1.1 (c) "КРИПТО-ПРО", 2007-2021.
Программа для работы с сертификатами, CRL и хранилищами.
200 OK
Длина: 1365 (1,3K) [application/x-x509-ca-cert]
Сохранение в: «STDOUT»

-                                              100%[====================================================================================================>]   1,33K  --.-KB/s    за 0s      

/2022-06-14 20:15:19 (313 MB/s) - записан в stdout [1365/1365]

Идёт установка: 
=============================================================================
1-------
Издатель            : E=dit@digital.gov.ru, C=RU, S=77 Москва, L=г. Москва, STREET="Пресненская набережная, дом 10, строение 2", O=Минцифры России, OGRN=1047702026701, INNLE=7710474375, CN=Минцифры России
Субъект             : E=dit@digital.gov.ru, C=RU, S=77 Москва, L=г. Москва, STREET="Пресненская набережная, дом 10, строение 2", O=Минцифры России, OGRN=1047702026701, INNLE=7710474375, CN=Минцифры России
Серийный номер      : 0x00951FA3477C61043AADFA858627823442
SHA1 отпечаток      : 2f0cb09be3550ef17ec4f29c90abd18bfcaad63a
Идентификатор ключа : c91358b14ca7623a7ed23f3ca6e7147c9d70a386
Алгоритм подписи    : ГОСТ Р 34.11-2012/34.10-2012 256 бит
Алгоритм откр. кл.  : ГОСТ Р 34.10-2012 256 бит (512 бит)
Выдан               : 08/01/2022  13:32:39 UTC
Истекает            : 08/01/2040  13:32:39 UTC
Ссылка на ключ      : Нет                 
Тип идентификации   : При личном присутствии
=============================================================================

После чего выполнить ту же команду cryptcp с измененными опциями:

/opt/cprocsp/bin/amd64/cryptcp -verify -detach linux-stable-5.10.119.tar.xz linux-stable-5.10.119.tar.xz.sgn -verall
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2021.
Утилита командной строки для подписи и шифрования файлов.
Папка './':
linux-stable-5.10.119.tar.xz... Проверка подписи...     
Автор подписи: 1037700067327, 05337637969, 7709006125, 771411271348, khoroshilov@ispras.ru, ИСП РАН, 11 отдел, Ведущий научный сотрудник, ИСП РАН, Хорошилов, Алексей Владимирович, RU, МОСКВА, г. Москва, "УЛ. АЛЕКСАНДРА СОЛЖЕНИЦЫНА, Д.25"
 Подпись проверена.
[ErrorCode: 0x00000000]

В случае успешной проверки выполнение команды завершается с кодом 0 (сообщение [ErrorCode: 0x00000000]). Данные автора подписи должны в точности совпадать с данными в приведенном выше примере.

Проверка подписи на портале государственных услуг

Шаг 1: Вычисление хэш суммы архива

Для скаченного архива с ядром (например, linux-stable-5.10.119.tar.xz) вычислите значение хэш-функции по алгоритму ГОСТ Р 34.11-2012 с размером хэша 256 бит.

Для этого можно воспользоваться штатными средствами используемого дистрибутива Linux, если в нем поддерживается вычисление значения хэш-функции по алгоритму ГОСТ Р 34.11-2012.

Например, в дистрибутиве Astra Linux можно использовать команду gostsum:

$ gostsum linux-stable-5.10.119.tar.xz
f506e0b0bbb1fadb2ce29e1814cd070773c2f4c85bf8cfbbf6ca4ad8e4e24bc7 linux-stable-5.10.119.tar.xz

В Альт СП и РЕД ОС при наличии установленного в системе пакета поддержки ГОСТ в OpenSSL можно использовать команду openssl dgst -md_gost12_256:

$ openssl dgst -md_gost12_256 linux-stable-5.10.119.tar.xz
md_gost12_256(linux-stable-5.10.119.tar.xz)=f506e0b0bbb1fadb2ce29e1814cd070773c2f4c85bf8cfbbf6ca4ad8e4e24bc7

Также это значение можно получить при помощи утилиты cpverify из пакета КриптоПро, которую можно скачать со страницы подтверждения электронной подписи портала государственных услуг и применить в соответствии с инструкциями с этой страницы, добавив в опции утилиты указание алгоритма -alg GR3411_2012_256:

$ /opt/cprocsp/bin/amd64/cpverify -mk linux-stable-5.10.119.tar.xz -inverted_halfbytes 0
F506E0B0BBB1FADB2CE29E1814CD070773C2F4C85BF8CFBBF6CA4AD8E4E24BC7

Кроме того можно использовать исходный код эталонной реализации ГОСТ Р 34.11-2012 для сборки бинарной утилиты gost3411-2012, при помощи которой затем получить необходимое значение хэш-функции.

Шаг 2: Проверка подписи

Для проверки на странице подтверждения электронной подписи портала государственных услуг надо выбрать последний пункт из списка сверху — электронного документа. ЭП — отсоединенная, в формате PKCS#7 по значению хэш-функции.

В поле Введите значение хэш-функции: необходимо ввести значение хэш-функции, вычисленное на предыдущем шаге.

Далее надо нажать кнопку Загрузить файл и в открывшемся окне выбора файла выбрать скаченный с портала Технологического Центра файл с подписью архива исходного кода. После чего в поле ввода Введите код на изображении: ввести цифровой код с изображения слева от поля и нажать кнопку Проверить.

В случае успешной проверки должно появиться следующее сообщение:

Подтверждение подлинности документа

Данные владельца должны в точности совпадать с данными на приведенном выше снимке экрана.