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

Уведомление

Icon
Error

3 Страницы<123
Опции
К последнему сообщению К первому непрочитанному
Offline Андрей_  
#21 Оставлено : 16 апреля 2010 г. 20:42:50(UTC)
Андрей_

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

Группы: Участники
Зарегистрирован: 07.05.2009(UTC)
Сообщений: 41

К сожалению корневой сертификат Вашего сертификата test-ca у меня отсутствует. На общем тестовом сайте выложен другой корневой- Test Center CRYPTO-PRO. И к Вашему сертификату у меня "формируется недоверие". Нужен корневой...По-моему, чтобы не было аналогичной проблемы нужно класть в xml всю цепочку сертификатов

Отредактировано пользователем 16 апреля 2010 г. 20:59:47(UTC)  | Причина: Не указана

Offline Андрей_  
#22 Оставлено : 19 апреля 2010 г. 15:55:16(UTC)
Андрей_

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

Группы: Участники
Зарегистрирован: 07.05.2009(UTC)
Сообщений: 41

Добрый день!

Проверка InfoPath дает положительный результат только при первой подписи в С#. Потом можно сверху подписывать в InfoPath сколько угодно душе. К сожалению мне нужен смешанный вариант. Т.е. сначала Infopath, а потом C#. И я раньше делал по-другому. Я брал Вашу Form1 подписывал в infoPath (т.е. первая подпись в InfoPath) потом пытался подписать сверху программой на C#. И результат в InfoPath был отрицательный, т.е. первая подпись автоматически становилась недействительной! Хотя вторая подпись приходит она туда куда нужно - в правильное место...И верифицируется!
Хотелось бы понять почему это так...Отличие похоже единственное - разные алгоритмы рачета DigestMethod

У Вас
DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411"

В InfoPath
DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"

Смена алгоритмов в двух местах ничего не дает . Значение хэша даже не меняется. В преобразованиях ну все идентично.......



С уважением, Андрей

Отредактировано пользователем 19 апреля 2010 г. 16:55:06(UTC)  | Причина: Не указана

Offline Челпанов А.  
#23 Оставлено : 19 апреля 2010 г. 18:12:43(UTC)
Челпанов А.

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

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

Поблагодарили: 2 раз в 2 постах
Цитата:
У Вас
DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411"

В InfoPath
DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"

Смена алгоритмов в двух местах ничего не дает . Значение хэша даже не меняется. В преобразованиях ну все идентично.......

Надо менять в трех :)
1.
Код:
reference2.DigestMethod = CPSignedXml.XmlDsigGost3411UrlObsolete;

2.
Код:
reference.DigestMethod = CPSignedXml.XmlDsigGost3411UrlObsolete;

3.
Код:
signedXml.SignedInfo.SignatureMethod = CPSignedXml.XmlDsigGost3410UrlObsolete;

Цитата:
К сожалению корневой сертификат Вашего сертификата test-ca у меня отсутствует.

Приложил и корневой и CRL.
Цитата:
По-моему, чтобы не было аналогичной проблемы нужно класть в xml всю цепочку сертификатов
Всю цепочку, не включая корневой.
Цитата:
Я брал Вашу Form1 подписывал в infoPath (т.е. первая подпись в InfoPath) потом пытался подписать сверху программой на C#.
Проверьте какая настройка на форме. Одна подпись, несколько независимых или подпись на подпись?
Вложение(я):
test-ca.cer (1kb) загружен 16 раз(а).
certcrl.crl (1kb) загружен 14 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
С уважением, Александр.
Offline Андрей_  
#24 Оставлено : 19 апреля 2010 г. 19:04:35(UTC)
Андрей_

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

Группы: Участники
Зарегистрирован: 07.05.2009(UTC)
Сообщений: 41

Спасибо за сертификаты. Ваш пример проверился успешно. Изменения на алгоритмы провел.

1. Добавил в Ваш пример подпись на InfoPath, и своим сертификата на С#. Потом Info_path с проверкой. Результат тот же - отрицательный, ошибка.
2. Подписал третьей подписью Ваш пример (т.е. две Ваших подписи). Результат- отрицательный, НЕДЕЙСТВИТЕЛЬНЫЕ на первых двух подписях.
Интересно, что у Вас у двух подписей первые дайджесты идентичны, вторые и подписи нет. А у третьей подписи нет идентичности с первыми двумя даже по первому дайджесту...

Свойства формы взяты из Вашего шаболона, я ничего не менял.


С уважением, Андрей

Отредактировано пользователем 19 апреля 2010 г. 19:41:53(UTC)  | Причина: Не указана

Вложение(я):
2.jpg (366kb) загружен 17 раз(а).
1_info_path.xml (12kb) загружен 17 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Андрей_  
#25 Оставлено : 19 апреля 2010 г. 20:09:57(UTC)
Андрей_

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

Группы: Участники
Зарегистрирован: 07.05.2009(UTC)
Сообщений: 41

Нет слов... Нет слов...
Все дело было всего в одной строке...

// Формат документа без пробелов.
doc.PreserveWhitespace = true;

А было наоборот

Так это работает....И проверяет и подписывает...


С уважением, Андрей
Offline Челпанов А.  
#26 Оставлено : 19 апреля 2010 г. 20:31:38(UTC)
Челпанов А.

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

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

Поблагодарили: 2 раз в 2 постах
Цитата:
Все дело было всего в одной строке...

При чтении подписанного документа пробельные символы конечно нужны.

Есть еще одно различие в приведенном вами документе - различные namespace.
С уважением, Александр.
Offline Андрей_  
#27 Оставлено : 19 апреля 2010 г. 20:48:43(UTC)
Андрей_

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

Группы: Участники
Зарегистрирован: 07.05.2009(UTC)
Сообщений: 41

Разница то действительно есть.... Похоже вы говорите об этих расхождениях...

У Вас
xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2010-04-16T11:51:47

У меня
xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2010-04-14T06:06:32

Но как в распределенной системе обеспечить полную идентичность?
Неужели подписывающая повторно программа должна выщучить предшествующее значение и сделать аналогично?

C уважением, Андрей

Offline Челпанов А.  
#28 Оставлено : 19 апреля 2010 г. 20:53:02(UTC)
Челпанов А.

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

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

Поблагодарили: 2 раз в 2 постах
Код:
// Получаем namespace my
XmlNode root = doc.SelectNodes("/*")[0];
string myns = root.GetNamespaceOfPrefix("my");
С уважением, Александр.
Offline Челпанов А.  
#29 Оставлено : 19 апреля 2010 г. 20:55:10(UTC)
Челпанов А.

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

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

Поблагодарили: 2 раз в 2 постах
Идентичность особо и не требуется с точки зоения подписи. Требуется чтобы namspace внутри одного документа был один и узлы "вырезаемые из этого документа" вырезались бы имменно с этим же namespace, а не с разными.
С уважением, Александр.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (6)
3 Страницы<123
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.