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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Skarvon  
#1 Оставлено : 4 июня 2024 г. 12:30:44(UTC)
Skarvon

Статус: Активный участник

Группы: Участники
Зарегистрирован: 17.09.2012(UTC)
Сообщений: 31
Мужчина
Откуда: Москва

Сказал «Спасибо»: 4 раз
Уважаемые коллеги,
Обнаружена проблема успешной проверки подписи со стороны сервиса КриптоПро:
https://dss.cryptopro.ru/verify/#/signature

Суть проблемы в том, что сервис успешно проверяет подпись с некорректным алгоритмом подписи, когда алгоритм ключа проверки подписи является ГОСТ-ым (1.2.643.7.1.1.1.1), а алгоритм подписи указан RSA (1.2.840.113549.1.1.1). Ваш сервис игнорирует указание алгоритма подписи, поле ASN.1 signatureAlgorithm, и успешно проверяет её по алгоритму ключа проверки.

Вот из спецификации RFC 5652, "Cryptographic Message Syntax (CMS)":
SignerInfo ::= SEQUENCE
{
version CMSVersion,
sid SignerIdentifier,
digestAlgorithm DigestAlgorithmIdentifier,
signedAttrs [0] IMPLICIT SignedAttributes OPTIONAL,
signatureAlgorithm SignatureAlgorithmIdentifier,
signature SignatureValue,
unsignedAttrs [1] IMPLICIT UnsignedAttributes OPTIONAL
}
signatureAlgorithm identifies the signature algorithm, and any associated parameters, used by the signer to generate the digital signature.
5.5. Signature Generation Process
...The object identifier, along with any parameters, that specifies the signature algorithm employed by the signer is carried in the signatureAlgorithm field.
5.6. Signature Verification Process
...The details of the signature verification depend on the signature algorithm employed.


Из рекомендации ТК26 Р 1323565.1.025-2019, "Форматы сообщений, защищенных криптографическими методами":
signatureAlgorithm - определение алгоритма подписи и его параметров, используемых отправителем при подписи.
7.5 Процесс формирования подписи
...Детали процесса формирования подписи зависят от используемого алгоритма подписи (см. 7.7). Идентификатор объекта наряду со всеми параметрами, которые задают алгоритм подписи, находится в поле signatureAlgorithm.
7.6 Процесс проверки подписи
...Детали проверки подписи связаны с используемым алгоритмом (см. 7.7).
7.7. Специфика данных типа «подписанные данные» по ГОСТ Р 34.10-2012
...Идентификаторы алгоритма подписи указаны в поле signatureAlgorithm структуры Signerlnfo (см. 7.3), вложенной в структуру SignedData...


Аналогично из рекомендаций ТК26, Протокол №13 от 24.04.2014 года, "Использование алгоритмов ГОСТ 28147-89, ГОСТ Р 34.11 и ГОСТ Р 34.10 в криптографических сообщениях формата CMS":
Идентификаторы алгоритма подписи указываются в поле signatureAlgorithm структуры SignerInfo, вложенной в структуру SignedData.

Подпись действительно является ГОСТ-ой и соответствуют алгоритму ключа проверки, но игнорирование указания алгоритма подписи приводит к тому, что результат проверки несоответствует результату других сервисов и инструментов.
Например, проверка подписи с неверным алгоритмом подписи со стороны следующих сервисов:
АИС Единый Криптографический Сервис https://eks.mos.ru/Services/VerifySign
Результат: Подпись не верна
Проверка корректной подписи проходит успешно с комментарием, что представленные данные не являются сертификатом/файлом подписи/штампом времени (так и есть)

Удостоверяющий центр ППК "Роскадастр" https://crypto.kadastr.ru/SVS/Verify/
Результат: Подпись не действительна, с комментарием:
Не удалось проверить подпись CAdES-BES. Ошибка: [Указан неправильный алгоритм]. Код: [0x80090008].Сертификат, на ключе которого было подписано сообщение, не найден.

Некорректная подпись прилагается. sample.txt.p7s (3kb) загружен 9 раз(а).
Возможно, это ошибка, проверьте пожалуйста...

P.S.
Такую ошибочную подпись можно сформировать, если для функции CryptMsgOpenToEncode, в параметрах структуры CMSG_SIGNER_ENCODE_INFO, указать в качестве дескриптора hCryptProv, дескриптор соответствующего контейнера КриптоПро, а в качестве алгоритма HashEncryptionAlgorithm.pszObjId, алгоритм RSA "1.2.840.113549.1.1.1".

Отредактировано пользователем 4 июня 2024 г. 12:33:14(UTC)  | Причина: Не указана

Offline Андрей *  
#2 Оставлено : 4 июня 2024 г. 14:56:43(UTC)
Андрей *

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

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

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

Запрос зарегистрирован: CPCSP-14442


Далее по сервисам:

1) https://eks.mos.ru/Services/VerifySign
сервис вернул:
Подпись не верна
Представленные данные не являются сертификатом/файлом подписи/штампом времени

т.е. он не распознал, но прочитал сведения о подписанте.

2) https://crypto.kadastr.ru/SVS/Verify/
там установлен сервис SVS, но, предположу, версия CSP старая, поэтому такая ошибка.



+ дополнительно:

3) https://www.gosuslugi.ru/pgu/eds

ЭП 1: ВЕРНА

Snimok ehkrana ot 2024-06-04 15-43-22.png (47kb) загружен 4 раз(а).

4) через Инструменты КриптоПРО - тоже проверяется успешно...

5) не успешно через эту утилиту, в ней добавлена проверка эта и случай, когда гост 2001\2012 смешивали OIDы
Snimok ehkrana ot 2024-06-04 15-10-42.png (39kb) загружен 9 раз(а).






Техническую поддержку оказываем тут
Наша база знаний
Offline Санчир Момолдаев  
#3 Оставлено : 1 июля 2024 г. 12:11:46(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 100 раз
Поблагодарили: 274 раз в 254 постах
т.к. в нативный CryptoAPI на Windows позволяет прописать мусор в эту секцию. и т.к. эта секция не является криптографически защищенной - доработки поведения производиться не будут.
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.