Ключевое слово в защите информации
ключевое слово
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline iDmitry  
#1 Оставлено : 23 января 2026 г. 13:24:58(UTC)
iDmitry

Статус: Новичок

Группы: Участники
Зарегистрирован: 15.04.2025(UTC)
Сообщений: 4
Российская Федерация

Делаю формирование CAdES-X Long Type 1 и застрял на последнем этапе, а именно формирование хеша для атрибута 1.2.840.113549.1.9.16.2.25 id-aa-ets-escTimeStamp Штампа времени для доказательства
по rfc5126 он формируется как(условно)
значение для escTimeStamp = hash_gost_256(bin_concat(сигнатура из cms (64 байта для гост 12-256), id-aa-timeStampToken, id-aa-ets-certificateRefs, id-aa-ets-revocationRefs))

Но, что брать для id-aa-timeStampToken, id-aa-ets-certificateRefs, id-aa-ets-revocationRefs
целиком их sequence или только value?


Для проверки сделал проще, вытаскиваю отдельно бинарные блоки из подписи проходящей проверку (приложил ниже,
просто сохраненные отдельно блоки unsiged attributes из ЭЦП (разложена на состовляющие))

Читаю байты из файлов и рассчитываю хеш (Блоки не формируются, они уже готовые из проверенной эцп).

хеш из MessageImprint для escTimeStamp = 23B4ACBED49ACD82B4C3A900585BCB50CD5DCB1998185811FB1F6344AD517BB8
сигнатура = 7EED5367EF02C940F714C1B848AF6A8BFD185025621EAD8835B62571FE884953C845AF567EA55E4B8A419D86EBFF747FE1FD756B3BE2D78D5AEC4C6D9F48D07F

добавляю блоки CertRef, RevocRef, считаю хеш ГОСТ256-12, получаю:
074C9C615920D9453FE740344E3CC30D180EDB36A8615F40595AB10175214F97? Что не равно 23B4ACBED49ACD82B4C3A900585BCB50CD5DCB1998185811FB1F6344AD517BB8

Как правильно хеш считать? Пробывал Value, убирал заголовой тег set и тп. Не совпадают.

extract_test_xlt1.txt.sgn.zip (84kb) загружен 2 раз(а).

Отредактировано пользователем 23 января 2026 г. 14:06:26(UTC)  | Причина: Не указана

Offline Андрей *  
#2 Оставлено : 23 января 2026 г. 13:56:45(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,085
Мужчина
Российская Федерация

Сказал «Спасибо»: 612 раз
Поблагодарили: 2375 раз в 1868 постах
Здравствуйте.

А почему не используется готовое и сертифицированное решение?

или задача - реализовать свою версию?
Техническую поддержку оказываем тут
Наша база знаний
Offline iDmitry  
#3 Оставлено : 23 января 2026 г. 14:09:22(UTC)
iDmitry

Статус: Новичок

Группы: Участники
Зарегистрирован: 15.04.2025(UTC)
Сообщений: 4
Российская Федерация

Автор: Андрей * Перейти к цитате
Здравствуйте.

А почему не используется готовое и сертифицированное решение?

или задача - реализовать свою версию?



Нужна именно своя реализация.
Offline iDmitry  
#4 Оставлено : 23 января 2026 г. 14:55:07(UTC)
iDmitry

Статус: Новичок

Группы: Участники
Зарегистрирован: 15.04.2025(UTC)
Сообщений: 4
Российская Федерация

А все разобрался. Читая внимательно ETSI TS 101 733

The CAdES-C-time-stamp attribute is an unsigned attribute. It is a time-stamp token of the hash of the electronic
signature and the complete validation data (CAdES-C). It is a special-purpose TimeStampToken Attribute that time-
stamps the CAdES-C. Several instances of this attribute may occur with an electronic signature from different TSAs.
NOTE 1: It is recommended that the attributes being time-stamped be encoded in DER. If DER is not employed,
then the binary encoding of the ASN.1structures being time-stamped should be preserved to ensure that
the recalculation of the data hash is consistent.
NOTE 2: Each attribute is included in the hash with the attrType and attrValues (including type and length) but
without the type and length of the outer SEQUENCE.

в переводе
ПРИМЕЧАНИЕ 2: Каждый атрибут включается в хеш вместе с полями attrType (тип атрибута) и attrValues (значения атрибута),
включая их тип и длину, но без учета типа и длины внешней структуры SEQUENCE.»

Нужно внешний Sequence викинуть. Стало сходиться.
пример
Sequence <-- Без него
ObjectIdentifier(1.2.840.113549.1.9.16.2.14)
Set
Sequence
ObjectIdentifier(1.2.840.113549.1.7.2)
Tagged [CONTEXT 0]
Offline iDmitry  
#5 Оставлено : 23 января 2026 г. 15:24:40(UTC)
iDmitry

Статус: Новичок

Группы: Участники
Зарегистрирован: 15.04.2025(UTC)
Сообщений: 4
Российская Федерация

Но вопросы остались, например, если подпись делаю через КриптоАрм, то в атрибуте 2.14 (обычный TimeStamp) в ответе TSP лежат и списки озывов и сертификат CA, сертификат tsp.
Если делаю я запрос, то только сертификат самого TSP (а запрашиваю полный пакет). Проверяю потом отдельно и складываю в 2.21, 2.22, 2.23, 2.24

Как узнать более подробно что с подписью не так, так как если локально проверять, все ок, cryptcp, КриптоАрм, Инструменты КриптоПро сообщают все отлично
Подпись 1/1: успешно проверена
Тип подписи: CAdES-X Long Type 1
Cубъект: E=test@test.ru, CN=Иванов Иван Иванович,...
Отпечаток: 8A3788D82F3F17CF096E16A66EED8B607B43CB01
Время подписания: 23/01/2026 12:44:12 UTC
Алгоритм подписи: ГОСТ Р 34.10-2012 256 бит (1.2.643.7.1.1.1.1)
Алгоритм хэширования: ГОСТ Р 34.11-2012 256 бит (1.2.643.7.1.1.2.2)
Алгоритм открытого ключа: ГОСТ Р 34.10-2012 256 бит (1.2.643.7.1.1.1.1)
Цепочка: Тестовый УЦ ООО "КРИПТО-ПРО" → Иванов Иван Иванович
Подпись проверена.
[ErrorCode: 0x00000000]


А https://dss.cryptopro.ru сообщает
Подпись действительна Исходный документ test_xlt1.txt
Дополнительная информация Подпись успешно проверена.
В подписи есть признаки формата CAdES-XLT1, но подпись не соответствует всем требованиям формата.
Подпись была проверена без учёта формата CAdES-XLT1.
В отчете больше подробностей хотелось бы видеть.

Отредактировано пользователем 23 января 2026 г. 15:58:31(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.