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

Уведомление

Icon
Error

3 Страницы123>
Опции
К последнему сообщению К первому непрочитанному
Offline Valky  
#1 Оставлено : 21 ноября 2011 г. 22:05:48(UTC)
Valky

Статус: Участник

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

Добрый день. Следующая проблема. Есть документ act.xml, есть его подпись signature.sig.

При проверке подписи по адресу http://notary.cryptopro.ru/Detached.aspx всё проходит удачно (ну кроме проверки издателя сертификата).
Результаты проверки:
Цитата:
Время создания отчета: 21 ноября 2011 17:07:31 ( 21 ноября 2011 13:07:31 UTC )
Проверен файл: размер (в байтах) 2814
ЭЦП содержится в файле: созданном 01 января 1970 04:00:00 UTC , размер (в байтах) 1821
Размер обработанного криптографического сообщения (в байтах): 1821
Количество проверенных ЭЦП: 1
Результат подтверждения подлинности ЭЦП номер 1
ЭЦП - ВЕРНА
Время создания ЭЦП: не определено
В проверенном атрибуте подписи (1.2.840.113549.1.9.5) указано время подписания 21 ноября 2011 10:28:24 UTC
Время проверки ЭЦП: 21 ноября 2011 13:07:31 UTC
Информация об ЭЦП:
Алгортим хэширования:
Название:
GOST R 34.11-94
Идентификатор:
1.2.643.2.2.9
Алгортим открытого ключа:
Название:
GOST R 34.10-2001
Идентификатор:
1.2.643.2.2.19
Значение:
C64F AEC8 CF4D 2F0D 876F 8D23 FD68 8B2D A2E0
F088 0EC2 D228 970C 5A98 80CE 06AE 6ACD 0375
2126 4061 66C4 2809 4C85 B14A 9EC0 DD73 CBD0
9B87 881D F3DD 97B3 9DC4
Серийный номер: 589A 72B9 0006 0000 A6CC
Владелец сертификата: Начальник отдела, 2328604, Громов Илья Владимирович, отдел АСУ, "ОАО ""НГК ""Славнефть""", Ярославль, Ярославская область, RU, GromovIV@yanos.slavneft.ru
ЭЦП уполномоченных лиц удостоверяющих центров в цепочке сертификатов - ВЕРНА
Статус сертификата подписи - Издатель сертификата отсутствует в списке доверенных
Количество штампов времени на подпись: 0
Количество OCSP-ответов в подписи: 0
Результат установления статуса цепочки сертификатов
Владелец сертификата: Начальник отдела, 2328604, Громов Илья Владимирович, отдел АСУ, "ОАО ""НГК ""Славнефть""", Ярославль, Ярославская область, RU, GromovIV@yanos.slavneft.ru
Уполномоченное лицо: не найден
Серийный номер: 589A 72B9 0006 0000 A6CC
Результат установления статуса сертификата
Не удалось проверить статус сертификата
Информация о приостановлении или аннулировании сертификата недоступна
Найдено СОС: 0
Найдено статусов в OCSP-ответах: 0
Сертификаты, использованные при подтверждении подлинности ЭЦП
Сертификат X.509:
Сведения о сертификате:
Этот сертификат:
Подтверждает удаленному компьютеру идентификацию вашего компьютера
Защищает сообщения электронной почты
Кому выдан:
Громов Илья Владимирович
Кем выдан:
CA1 KTTK
Действителен с Monday, July 11, 2011 12:36:00 PM UTC по Wednesday, May 17, 2017 1:17:00 PM UTC
Версия: 3 (0x2)
Серийный номер:
589A 72B9 0006 0000 A6CC
Уполномоченное лицо:
CN = CA1 KTTK
O = JSC TransTeleCom Company
L = Moscow
S = Moscow
C = RU
E = cainfo@transtk.ru
Срок действия:
Действителен с:
Monday, July 11, 2011 12:36:00 PM UTC
Действителен по:
Wednesday, May 17, 2017 1:17:00 PM UTC
Владелец сертификата:
T = Начальник отдела
Unstructured Name = 2328604
CN = Громов Илья Владимирович
OU = отдел АСУ
O = ОАО "НГК "Славнефть"
L = Ярославль
S = Ярославская область
C = RU
E = GromovIV@yanos.slavneft.ru
Открытый ключ:
Алгоритм открытого ключа:
Название:
GOST R 34.10-2001
Идентификатор:
1.2.643.2.2.19
Параметры:
30 12 06 07 2a 85 03 02 02 24 00 06 07 2a 85 03 02 02 1e 01
Значение:
0440 50DA 0BB2 B467 275F 23EA C469 2F35 B38C
0651 7DB9 A070 FF34 EB1B 00EC 9ED4 287C 0E67
9788 E547 F954 B302 E8FD 706D 0E89 7F1E 701B
D4D6 0BF1 5388 51A3 B45B 37B9
Расширения X.509
1. Расширение 2.5.29.15 (критическое)
Название:
Key Usage
Значение:
Digital Signature, Non-Repudiation, Key Encipherment, Data Encipherment (f0)
2. Расширение 2.5.29.37
Название:
Enhanced Key Usage
Значение:
Client Authentication (1.3.6.1.5.5.7.3.2)
Secure Email (1.3.6.1.5.5.7.3.4)
Registration Authority user, HTTP, TLS client (1.2.643.2.2.34.6)
Unknown Key Usage (1.2.643.3.37.2.1.1.1)
3. Расширение 2.5.29.14
Название:
Subject Key Identifier
Значение:
f8 2c 9c 07 ba 36 cb 2b b7 1c 45 0c 78 ca c3 0f 4d 3b ca 3e
4. Расширение 2.5.29.35
Название:
Authority Key Identifier
Значение:
KeyID=5a 5c 3b 9e 60 8d 2b 0e 03 38 c2 58 78 ba 48 81 3c 2f 00 52
5. Расширение 2.5.29.31
Название:
CRL Distribution Points
Значение:
[1]CRL Distribution Point
Distribution Point Name:
Full Name:
URL=http://crl1.transtk.ru/current/5A5C3B9E608D2B0E0338C25878BA48813C2F0052.crl
[2]CRL Distribution Point
Distribution Point Name:
Full Name:
URL=http://10.248.8.240/current/5A5C3B9E608D2B0E0338C25878BA48813C2F0052.crl
6. Расширение 1.3.6.1.5.5.7.1.1
Название:
Authority Information Access
Значение:
[1]Authority Info Access
Access Method=On-line Certificate Status Protocol (1.3.6.1.5.5.7.48.1)
Alternative Name:
URL=http://10.248.8.240/OCSPCA1/ocsp.srf
[2]Authority Info Access
Access Method=On-line Certificate Status Protocol (1.3.6.1.5.5.7.48.1)
Alternative Name:
URL=http://ocsp.pki.transtk.ru/OCSPCA1/ocsp.srf
ЭЦП:
Алгоритм ЭЦП:
Название:
GOST R 34.11/34.10-2001
Идентификатор:
1.2.643.2.2.3
Параметры:
05 00
Значение:
9BFF 5D60 4799 7ABA B307 3193 28E2 F86F 6AC1
069E F900 BF3A E9A4 1FC0 9037 07A6 B5DF 9721
B0FA F046 E21B 71D5 05D9 F19E 29F2 5EAC B81B
697F 136F B031 4937 940B


Однако при осуществлении верификации с помощью CriptoPro JCP, результаты плачевные. Делаю всё, как в примере в поставке JCP.

Цитата:

Signature sig = Signature.getInstance(JCP.GOST_EL_SIGN_NAME, JCP.PROVIDER_NAME);
Certificate certificate = getCertificate(signerId); //тут получаем корректный сертификат из хранилища, детали получения не важны, SerialNumber: [ 589a72b9 00060000 a6cc]
sig.initVerify(certificate.getPublicKey());

byte[] data = Array.readFile(document);
sig.update(data);

return sig.verify(Array.readFile(signature)); //возвращает false


При этом, если подписывать документ прямо в JCP, то верификация проходит отлично прямо этим же кодом. Только сертификат другой естественно.

Куда копать? Пробовал менять алгоритмы, но это не помогает. Может какая-то особенная подпись, для валидации которой нужно сделать что-то еще? Или в сертификате проблема?

Спасибо за помощь.

Отредактировано пользователем 22 ноября 2011 г. 18:28:49(UTC)  | Причина: Не указана

Вложение(я):
act.xml (3kb) загружен 25 раз(а).
signature.sig (3kb) загружен 36 раз(а).
Gromov.cer (2kb) загружен 18 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Femi  
#2 Оставлено : 22 ноября 2011 г. 17:59:01(UTC)
Наталья Мовчан

Статус: Padawan

Группы: Администраторы
Зарегистрирован: 02.12.2010(UTC)
Сообщений: 1,381
Женщина
Российская Федерация
Откуда: Москва

Сказала «Спасибо»: 11 раз
Поблагодарили: 69 раз в 47 постах
Ваш вопрос был передан разработчикам.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline bor1  
#3 Оставлено : 22 ноября 2011 г. 19:39:15(UTC)
bor1

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

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

Поблагодарили: 1 раз в 1 постах
Здравствуйте!
Тот код проверки, который приведен для JCP, проверяет подпись не под XML-документом, а под массивом байтов, считанных из файла, в котором хранится XML-документ.
Примеры кода, выполняющего проверку подписи под XML-документами, Вы можете найти jar-архиве примеров, входящих в комплект JCP (samples.jar, samples_src.jar), в папке xmlSign и userSamples.
Offline Valky  
#4 Оставлено : 23 ноября 2011 г. 13:31:52(UTC)
Valky

Статус: Участник

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

Всё верно, я и проверяю подпись под массивом байтов. То, что массив байтов является XML - это частный случай, так что к проблеме, как мне кажется, никакого отношения не имеет.

http://notary.cryptopro.ru/Detached.aspx тоже проверяет подпись над массивом байтов, верно? Однако в результате присутствует "ЭЦП верна", JCP же возвращает false.

Отредактировано пользователем 23 ноября 2011 г. 13:33:19(UTC)  | Причина: Не указана

Offline Kure  
#5 Оставлено : 24 ноября 2011 г. 22:46:26(UTC)
Kure

Статус: Администратор

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

Поблагодарили: 33 раз в 10 постах
В результате все сводится к проверке подписи под массовом байтов. НО.

http://notary.cryptopro.ru/Detached.aspx проверяется подпись в формате PKCS#7 detached
Посмотрите здесь http://notary.cryptopro.ru/Notary_Help.htm на описание процесса и вы пользуясь своим просланным примером эту подпись PKCS#7 проверите!
Вам нужен пример проверки именно PKCS#7 сообщения (в примере может быть обозван как CMS), а даже не XML.
Offline Kure  
#6 Оставлено : 24 ноября 2011 г. 22:50:39(UTC)
Kure

Статус: Администратор

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

Поблагодарили: 33 раз в 10 постах
Посмотрите примеры из samples_src.jar/CMS_samples
Offline Андрей Писарев  
#7 Оставлено : 24 ноября 2011 г. 23:02:07(UTC)
Андрей *

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

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

Сказал «Спасибо»: 553 раз
Поблагодарили: 2245 раз в 1751 постах
Kure написал:
...
Посмотрите здесь http://notary.cryptopro.ru/Notary_Help.htm на описание процесса ...



не помешало бы обновить ссылку на "внешний ресурс"... или удалить ее

Цитата:

Требования к форматам проверяемых сертификатов и электронных документов

сертификаты

Сертификаты открытых ключей должны соответствовать требованиям, определенным приказом Министерства связи и массовых коммуникаций Российской Федерации от 23.03.2009 № 41 "Требования к технологиям, форматам, протоколам информационного взаимодействия, унифицированным программно-техническим средствам подсистемы удостоверяющих центров общероссийского государственного информационного центра" http://minkomsvjaz.ru/3491/766/3432/7201/7329/


Техническую поддержку оказываем тут
Наша база знаний
Offline Максим Коллегин  
#8 Оставлено : 24 ноября 2011 г. 23:48:18(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,396
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 719 раз в 623 постах
Андрей * написал:


не помешало бы обновить ссылку на "внешний ресурс"... или удалить ее


спасибо, удалил.
Знания в базе знаний, поддержка в техподдержке
Offline Андрей Писарев  
#9 Оставлено : 25 ноября 2011 г. 0:50:29(UTC)
Андрей *

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

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

Сказал «Спасибо»: 553 раз
Поблагодарили: 2245 раз в 1751 постах
maxdm написал:
Андрей * написал:


не помешало бы обновить ссылку на "внешний ресурс"... или удалить ее


спасибо, удалил.




вот новая ссылка:

страница: http://minsvyaz.ru/ru/doc/?id_4=164
Техническую поддержку оказываем тут
Наша база знаний
Offline Valky  
#10 Оставлено : 25 ноября 2011 г. 2:12:13(UTC)
Valky

Статус: Участник

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

Kure написал:

Посмотрите здесь http://notary.cryptopro.ru/Notary_Help.htm на описание процесса и вы пользуясь своим просланным примером эту подпись PKCS#7 проверите!
Вам нужен пример проверки именно PKCS#7 сообщения (в примере может быть обозван как CMS), а даже не XML.


Почему вы решили, что представленная мной подпись attached?

Я проверяю ее по адресу http://notary.cryptopro.ru/Detached.aspx и проверка, повторюсь, ПРОХОДИТ. Результаты проверки - в первом сообщении темы.

Таким образом мне нужен код именно для проверки detached signature, я не совсем понял, почему вы вообще заговорили об attached. Именно этот код я и представил в качестве примера в первом сообщении. Также к первому сообщению я приложил подпись, документ и сертификат.

Kure написал:

Посмотрите примеры из samples_src.jar/CMS_samples

Ничего полезного там не подчерпнул, везде проверка производится с помощью того же, что использую и я.

Цитата:

final Signature signature =
Signature.getInstance(JCP.GOST_EL_SIGN_NAME);
signature.initVerify(cert);
signature.update(data);
return signature.verify(sign);


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