Статус: Новичок
Группы: Участники
Зарегистрирован: 08.11.2011(UTC) Сообщений: 4
|
Проблема сама собой не решилась. У нас есть сертификат на техническую поддержку SDK, можем ли мы продолжать общение в форуме, либо есть другая процедура запроса тех. поддержки? Код приведённый maxdm работает наполовину - он позволяет подписать сообщение так, чтобы СМЭВ его понял, но ответ СМЭВ он не проверяет (всегда возвращает false) Отредактировано пользователем 5 июня 2012 г. 11:20:08(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Padawan
Группы: Администраторы
Зарегистрирован: 02.12.2010(UTC) Сообщений: 1,383   Откуда: Москва Сказала «Спасибо»: 11 раз Поблагодарили: 70 раз в 48 постах
|
Цитата:У нас есть сертификат на техническую поддержку SDK, можем ли мы продолжать общение в форуме, либо есть другая процедура запроса тех. поддержки? Да. Для этого у нас есть портал технической поддержки. http://www.cryptopro.ru/...derzhki-dobro-pozhalovat |
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 25.07.2012(UTC) Сообщений: 5  Откуда: программинг Сказал «Спасибо»: 2 раз
|
При проверке сообщения, приведенного по второй ссылке, сервис http://188.254.16.92:7777/gateway/services/SID0003038 выдает ошибку с кодом 3 "Неверная ЭП сообщения". Получается код приведенный по первой ссылке неверный?
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 08.08.2012(UTC) Сообщений: 3
|
День добрый. Возникли сложности при взаимодействии с сервисом СМЭВ с использованием библиотеки КриптоПро .NET. Конкретнее - речь идет о примере .NET SDK \Examples\WCF.zip\SMEV\SMEV.2010.sln . По порядку: - мы скачали и установили КриптоПро .NET (1.0.4583.3 от 2012-07-19) и КриптоПро .NET SDK (http://cryptopro.ru/sites/default/files/products/net/files/net-win32-eng.msi и http://cryptopro.ru/site...les/netsdk-win32-eng.msi соответственно) - получили тестовый сертификат (http://www.cryptopro.ru/certsrv/) - открыли пример \.NET SDK\Examples\WCF.zip\SMEV\SMEV.2010.sln - т.к. к примеру не было приложено никаких сертификатов, переписали строковые констатнты отпечатков serverCertThumbprint и clientCertThumbprint (указали отпечаток тестового сертификата) - также пришлось повозиться с ошибкой "Значение свойства 'algorithmSuite' не может быть проанализировано. Ошибка: Значение "BasicGostObsolete" не является допустимым экземпляром типа "System.ServiceModel.Security.SecurityAlgorithmSuite"." Прописали его явно в коде (убрав из app.config). В результате происходит вызов сервиса, но теперь происходит следующая ошибка: "Маркер подписывания System.IdentityModel.Tokens.X509SecurityToken не имеет ключа, поддерживающего набор алгоритмов CryptoPro.Sharpei.ServiceModel.GostAlgorithmSuite."
И вот тут варианты решения закончились. Подскажите, пожалуйста, в чем загвоздка? Может дело в сертификате (или в том, что он по неверному алгоритму сформирован в тестовом уц, в списке ГОСТ-Р так и не удалось найти)? Или же нужно еще какие модификации примера выполнить? код Program.cs http://pastebin.com/dw26z9gpкод app.config http://pastebin.com/bCNFrc2rОтредактировано пользователем 8 августа 2012 г. 14:20:23(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 09.08.2012(UTC) Сообщений: 8
|
Приветствую. Возникли аналогичные проблемы с сервисами для СМЭВ и примером .NET SDK \Examples\WCF.zip\SMEV\SMEV.2010.sln. Основная проблема что не работает Пример взаимодействия с сервисом СМЭВ из SDK: не получается через конфиг сервиса задать algorithmSuite="BasicGostObsolete" и добавить Extensions для Binding'га.
Помогите пожалуйста. И в блоге был обещан пример для WCF. не смог найти его.
Заранее благодарю.
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 08.08.2012(UTC) Сообщений: 3
|
Win написал:Приветствую. Возникли аналогичные проблемы с сервисами для СМЭВ и примером .NET SDK \Examples\WCF.zip\SMEV\SMEV.2010.sln. Основная проблема что не работает Пример взаимодействия с сервисом СМЭВ из SDK: не получается через конфиг сервиса задать algorithmSuite="BasicGostObsolete" и добавить Extensions для Binding'га.
Помогите пожалуйста. И в блоге был обещан пример для WCF. не смог найти его.
Заранее благодарю. Копаем уже несколько дней. Возможно будет полезной информация: 1. Необходимо установить .Net, затем .Net SDK (версия должна совпадать с .Net) и CSP 3.6 R2 (если более раннюю поставить, не будет возможности "протестировать" созданный сертификат, на вкладке "сервис" в CSP просто не будет кнопки). 2. Получить тестовые сертификаты (проверки подлинности клиента и проверки подлинности сервера) на https://cryptopro.ru/certsrv/ (убедиться, что пункт "CSP: Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider" в списке параметров ключа присутствует). Для каждого сертификата свой ключ создать (если нужно в дальнейшем его копировать, ставить признак "экспортируемости" ключа перед созданием). Установить в системе полученные сертификаты (по умолчанию встали в "Личное"). 3. Открыть пример. У нас не получилось вписать новые отпечатки созданных сертификатов (вписать получилось, но всё-равно по ним ничего не находит). Поэтому просто берем из реестра "Личное" первый и второй сертификат (для примера этого достаточно). 4. Запустить. Сразу оговорюсь, получить ответ от сервиса и прочесть его в консоли нам так и не удалось. На текущий момент боремся с ошибкой: "Незащищенное или неправильно защищенное сообщение об ошибке было получено от другой стороны. Код ошибки и описание см. внутреннее исключение. SMEV-100013: При обработке запроса произошла ошибка: Неверный формат сертификата"С ошибкой "algorithmSuite="BasicGostObsolete"" сталкивались. Либо нужно всё сделать как описано выше и тогда ошибки не будет. Либо еще вариант, в коде перед установкой модифицированной привязки прописать: binding.Elements.Find<SecurityBindingElement>().DefaultAlgorithmSuite = GostAlgorithmSuite.BasicGostObsolete; а из app.config убрать атрибут algorithmSuite="BasicGostObsolete". Но это уже модификация примера, хотя он и в изначальном виде работает, как оказалось :) И еще линки полезные http://cryptopro.ru/foru....aspx?g=posts&t=2930http://www.cryptopro.ru/....aspx?g=posts&t=4570Отредактировано пользователем 9 августа 2012 г. 15:20:22(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 09.08.2012(UTC) Сообщений: 8
|
Спасибо за ответ. У меня задача следующая: У нас сервис, который должен подписать сво ответ для смэв по госту и т.п..(Ну и по желанию проверить сертификат смэв при вызове сервиса)
Хотелось бы конечно на текущий сервис, добавить настройки через конфиг. подключить сборки и все. А так необходимо конфигурировать сервис через код. примеры из SDK не заводятся.(
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 28.03.2012(UTC) Сообщений: 11 Откуда: Питер
Поблагодарили: 1 раз в 1 постах
|
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.12.2008(UTC) Сообщений: 22 Откуда: Смоленск
Сказал(а) «Спасибо»: 4 раз
|
Не стал создавать новую тему... Была сделана подпись запросов XML для СМЭВ на основе примера SignSmevRequest.cs, все работало, но пару недель назад почти все сервисы (разных ведомств) стали возвращать ошибку "SMEV-100001: При обработке запроса произошла ошибка: Внутренняя ошибка сервиса". Сделали запрос к СМЭВ, они ответили: "Данная ошибка возникает из-за того, что запрос, отправляемый к сервису, не был каноникализирован перед подписанием. Это видно по дублирующимся namespace "http://www.w3.org/2000/09/xmldsig#". Каноникализация является одним из требований МР." Странно, что 1. раньше именно эти запросы выполнялись без ошибок; 2. эти подписанные запросы проходят проверку подписи в сервисе проверки ЭП-ОВ (http://188.254.16.92:7777/gateway/services/SID0003038?wsdl). В подписанном запросе действительно несколько раз встречался этот namespace (BinarySecurityToken я вырезал): Цитата:<?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <SOAP-ENV:Header> <wsse:Security SOAP-ENV:actor="http://smev.gosuslugi.ru/actors/smev"> <wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="SenderCertificate">...</wsse:BinarySecurityToken> <ds:Signature> <SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/> <Reference URI="#body"> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/> <DigestValue>g4etCFCxH2y5uTpSlmy9f6vdlo3q+9hK1Q1SXHRntdI=</DigestValue> </Reference> </SignedInfo> <SignatureValue xmlns="http://www.w3.org/2000/09/xmldsig#">3ozFPeMFVHIdQpZdzSGuiGJUIvYwjLKzDsn+q88CmwvB6hBpskVBK6fsf8XzZAfNTHZl8s08F2oB5mxsGM6X6w==</SignatureValue> <ds:KeyInfo> <wsse:SecurityTokenReference> <wsse:Reference URI="#SenderCertificate" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/> </wsse:SecurityTokenReference> </ds:KeyInfo> </ds:Signature> </wsse:Security> Методом подбора удалось найти вариант, когда ошибки нет: Цитата:<?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <SOAP-ENV:Header> <wsse:Security SOAP-ENV:actor="http://smev.gosuslugi.ru/actors/smev"> <wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="SenderCertificate">...</wsse:BinarySecurityToken> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/> <Reference URI="#body"> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/> <DigestValue>g4etCFCxH2y5uTpSlmy9f6vdlo3q+9hK1Q1SXHRntdI=</DigestValue> </Reference> </SignedInfo> <SignatureValue>3ozFPeMFVHIdQpZdzSGuiGJUIvYwjLKzDsn+q88CmwvB6hBpskVBK6fsf8XzZAfNTHZl8s08F2oB5mxsGM6X6w==</SignatureValue> <ds:KeyInfo> <wsse:SecurityTokenReference> <wsse:Reference URI="#SenderCertificate" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/> </wsse:SecurityTokenReference> </ds:KeyInfo> <Signature> </wsse:Security> Я добился этого просто изменяя уже подписанный запрос, но это не красиво. Как нужно правильно модифицировать SignSmevRequest.cs, чтобы сразу получать допустимый XML? В Методических рекомендациях везде используется нэймспэйс ds (<ds:SignedInfo> и т.д.), но я не понимаю, как его можно получить из SignedXml... Заранее спасибо.
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.12.2008(UTC) Сообщений: 22 Откуда: Смоленск
Сказал(а) «Спасибо»: 4 раз
|
Неужели никто не знает, как можно заставить формировать SignedXml все идентификаторы в пространстве имен "ds:"? Ведь из примера они получаются "<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#">" вместо "ds:SignedInfo" ит.д., а это не соответствует Методическим рекомендациям.
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close