Верификация открепленной цифровой подписи

Рейтинг: 0Ответов: 2Опубликовано: 12.04.2023

Есть два файла.

  1. Оригинальный текстовый файл (filename.txt)
  2. Файл цифровой подписи (filename.txt.sig)

Необходимо проверить: к этому ли файлу принадлежит эта подпись (этой ли подписью подписан этот файл), в общем убедиться, что файл оригинальный (не измененный) и подпись это подтверждает.

Формат подписи такой:

-----BEGIN CMS-----
закодировано base64 
-----END CMS-----

C помощью openssl посмотрел дамп этой подписи, скачал crt и crl файлы (url на которые нашёл в дампе), попробовал верифицировать файл с помощью командной строки openssl.

$ openssl cms -verify -content filename.txt -in filename.txt.sig -certfile cert.crt
unable to load certificates

Что я делаю не так? Как нужно делать правильно? Я в этом совершенно не понимаю пока ничего, но надеюсь с вашей помощью разобраться. Онлайн верификаторы сразу нет.

Ответы

▲ 0

Нужно использовать движек для подписей по GOST.

Опенсорсный от Криптоком

Лицензионый от Криптопро

▲ 0

На WSL Debian я собрал openssl с gost-engine

$ openssl version -v
OpenSSL 1.1.1p  21 Jun 2022

$ openssl engine
(rdrand) Intel RDRAND engine
(dynamic) Dynamic engine loading support
(gost) Reference implementation of GOST engine

$ openssl ciphers | tr ':' '\n' | grep GOST
GOST2012-GOST8912-GOST8912
GOST2001-GOST89-GOST89

Пытаюсь проверить:

$ openssl smime -verify -noverify -in file.csv.sig -content file.csv -inform der
Error reading S/MIME message
140193840948480:error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag:crypto/asn1/tasn_dec.c:1149:
140193840948480:error:0D07803A:asn1 encoding routines:asn1_item_embed_d2i:nested asn1 error:crypto/asn1/tasn_dec.c:309:Type=PKCS7

$ openssl cms -verify -noverify -in file.csv.sig -content file.csv -inform der
Error reading S/MIME message
140553009644800:error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag:crypto/asn1/tasn_dec.c:1149:
140553009644800:error:0D07803A:asn1 encoding routines:asn1_item_embed_d2i:nested asn1 error:crypto/asn1/tasn_dec.c:309:Type=CMS_ContentInfo

Что-то делаю не так. А что не знаю. Как нужно правильно не знаю.