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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline idtks  
#1 Оставлено : 9 декабря 2014 г. 17:32:07(UTC)
idtks

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

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

Сказал(а) «Спасибо»: 22 раз
Добрый день.

Есть "хорошая" CAdES X Long Type 1 подпись (см. файл "good") - я пытаюсь в ней обновить атрибут 1.2.840.113549.1.9.16.2.14 и получаю файл "bad". Этот файл уже не проходит проверку средствами CSP "КриптоПРО" - получаю ошибку:

"LastError = 0x80131430. Message = "CADES_VERIFY_NO_VALID_CADES_C_TIMESTAMP: В сообщении не найден действительный штамп времени на доказательства подлинности подписи"."

Вроде, все делается согласно RFC 5126 и сравнивая содержимое атрибутов в двух файлах существенных отличий я не нахожу. Можете ли вы как-то более подробно написать, что не нравиться CSP "КриптоПРО" в атрибуте сформированном мной?

Вот фрагмент лога из DbgView:

[7108] cades.dll: {5312} /CChainObserverQueue::lastElement/ ChainValidation.h(327) : #start#
[7108] cades.dll: {5312} /CChainWalker::walk/ ChainValidation.h(1042) : #success#
[7108] cades.dll: {5312} /CChainValidationProcess::validateChain/ ChainValidation.h(1142) : #success#
[7108] cades.dll: {5312} /CadesMsgVerifySignatureImplNamespace::GetEarliestStamp/ cades.cpp(1324) : Stamp certificate verified
[7108] cades.dll: {5312} /CadesMsgVerifySignatureImplNamespace::GetEarliestStamp/ cades.cpp(1327) : Stamp verified
[7108] cades.dll: {5312} /CadesUtils::CalculateHash/ cadesutils.h(55) : Hash calculated
[7108] cades.dll: {5312} /CadesMsgVerifySignatureImplNamespace::GetEarliestStamp/ cades.cpp(1347) : Hash on data without tag and length encoded doesn't match
[7108] cades.dll: {5312} /CadesMsgVerifySignatureImplNamespace::GetEarliestStamp/ cades.cpp(1348) : Trying hash on data with tag ang length.
[7108] cades.dll: {5312} /CadesUtils::CalculateHash/ cadesutils.h(55) : Hash calculated
[7108] cades.dll: {5312} /CadesMsgVerifySignatureImplNamespace::GetEarliestStamp/ cades.cpp(1368) : No valid time stamps found in signature for attribute
[7108] cades.dll: {5312} /CadesMsgVerifySignature/ cades.cpp(1890) : COleException, m_sc=0x80070490
[7108] cades.dll: {5312} /CadesMsgVerifySignature/ cades.cpp(1902) : (res=0, GetLastError=0x80070490
[7108] cades.dll: {5312} /CadesFreeVerificationInfo/ cades.cpp(2717) : (pVerificationInfo=0x0B488CE8)
[7108] cades.dll: {5312} /CadesFreeVerificationInfo/ cades.cpp(2745) : (res=1, GetLastError=0x00000000

С уважением, Константин Ткачук.
Вложение(я):
bad (15kb) загружен 3 раз(а).
good (15kb) загружен 4 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Новожилова Елена  
#2 Оставлено : 9 декабря 2014 г. 17:47:46(UTC)
Новожилова Елена

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

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Если меняете атрибут "1.2.840.113549.1.9.16.2.14" (штамп времени на значение подписи), то нужно менять и атрибут "1.2.840.113549.1.9.16.2.25" - штамп времени CAdES-C (на доказательства)
Второй штамп формируется так: "штамп времени на подпись" + "ссылки на сертификаты" + "ссылки на CRL/OCSP-ответы" -> вычисляется хэш-значение -> на это хэш-значение и получается штамп CAdES-C.

Ошибка, которую вы видите в логе, как раз и говорит о том, что хэш-значение не совпадает.
thanks 1 пользователь поблагодарил Новожилова Елена за этот пост.
idtks оставлено 09.12.2014(UTC)
Offline idtks  
#3 Оставлено : 9 декабря 2014 г. 18:01:40(UTC)
idtks

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

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

Сказал(а) «Спасибо»: 22 раз
Хорошо, теперь обновляю и 1.2.840.113549.1.9.16.2.25 (см. файл "bad25") - получаю ошибку:

"LastError = 0x80131430. Message = "CADES_VERIFY_END_CERT_REVOCATION: Ошибка проверки конечного сертификата на отзыв"."

-- что теперь не так? Если тем же кодом обновляю только 1.2.840.113549.1.9.16.2.25 (без изменения 1.2.840.113549.1.9.16.2.14) получаю корректный CAdES (проверка на CSP "КриптоПРО" проходит успешно)...

С уважением, Константин Ткачук.
Вложение(я):
bad25 (15kb) загружен 4 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Новожилова Елена  
#4 Оставлено : 9 декабря 2014 г. 18:04:43(UTC)
Новожилова Елена

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

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Лог нужно смотреть
Offline idtks  
#5 Оставлено : 9 декабря 2014 г. 18:07:03(UTC)
idtks

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

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

Сказал(а) «Спасибо»: 22 раз
Лог.

С уважением, Константин Ткачук.
Вложение(я):
bad25.LOG (35kb) загружен 5 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Новожилова Елена  
#6 Оставлено : 9 декабря 2014 г. 18:10:30(UTC)
Новожилова Елена

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

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
00000259 17:47:33 [7108] cades.dll: {6936} /COcspCheck::verifyCertificateInOcspResponse/ RevocationCheck.h(467) : OCSP ThisUpdate time > signatureTimeStamp time.
Offline idtks  
#7 Оставлено : 10 декабря 2014 г. 11:39:24(UTC)
idtks

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

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

Сказал(а) «Спасибо»: 22 раз
Нет, не понятно. Откуда берется "OCSP ThisUpdate time"? Ведь в "1.2.840.113549.1.9.16.2.14" заполнены только certificateRefs (*.21) и certValues (*.23). Если из revocationValues (*.24) уровнем выше, от основной подписи, то как там может выполняться неравенство "OCSP ThisUpdate time > signatureTimeStamp time"?
Offline Новожилова Елена  
#8 Оставлено : 10 декабря 2014 г. 14:11:41(UTC)
Новожилова Елена

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

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Время thisUpdate берется из OCSP-ответа в основной подписи. Оно должно быть больше, чем время в штампе времени на значение подписи, это служит доказательством того, что OCSP-ответ был получен после создания подписи.
Когда вы заменяете штамп времени на значение подписи, какое время вы в нем указываете? Текущее? Тогда оно будет гарантировано больше, чем время в OCSP-ответе (который уже присутствовал в подписи и, следовательно, был получен раньше).
В этом случае ничего не доказывает того факта, что OCSP-ответ был получен после создания подписи и может удостоверять действительность сертификата в момент создания подписи. А в логе опечатка, поправим :-)

Отредактировано пользователем 10 декабря 2014 г. 14:12:32(UTC)  | Причина: Не указана

Offline idtks  
#9 Оставлено : 10 декабря 2014 г. 15:32:43(UTC)
idtks

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

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

Сказал(а) «Спасибо»: 22 раз
Елена, похоже, что на вашем тестовом стенде что-то не то :(
Вот лог моей программки с временными метками, которые возвращают ваши сервера (TSP и OCSP):

=== TimeStampInfo.GenTime = 10.12.2014 12:06:37 for http://www.cryptopro.ru/tsp/tsp.srf
=== ThisUpdate = 10.12.2014 12:06:37 for http://www.cryptopro.ru/ocspnc2/ocsp.srf
=== ThisUpdate = 10.12.2014 12:04:09 for http://testca.cryptopro.ru/ocsp/ocsp.srf

--- сервер "http://testca.cryptopro.ru/ocsp/ocsp.srf" отстает более чем на две минуты от других серверов. Поэтому и получается что ответы OCSP датируются временем раньше времени TSP (хотя в коде, конечно, сначала запрашивается TSP, а потом OCSP).

При таком расхождении времени TSP и OCSP, очевидно, нужно выдавать пользователю ошибку?
Стенд починить возможно?
Offline Новожилова Елена  
#10 Оставлено : 10 декабря 2014 г. 16:25:14(UTC)
Новожилова Елена

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

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

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