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

Уведомление

Icon
Error

3 Страницы123>
Опции
К последнему сообщению К первому непрочитанному
Offline nick_stan  
#1 Оставлено : 6 декабря 2011 г. 18:46:50(UTC)
nick_stan

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

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

Столкнулись с проблемой, что надо подключиться к Web-сервису, который работает в режиме BasicHttpBinding, но требуется ГОСТовую подпись.

Для BasicHttpBinding в отличие от WsHTTPBinding обязательно требуется сертификат сервиса (ClientsCredential.ServiceCertificate.SetDefaultCertificate).
Там я указываю ГОСТ-овый сертификат. При этом при формировании SOAP запроса WCF выпадает в exception - The public Key is not RSA key.
Как я понимаю это происходит именно из-за сервисного сертификата. Т.к. если там поставить RSA-ыйный сертификат, то происходит другое исключение:

The token's crypto collection does not support algorithm 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001'.

Как я понимаю это из-за того, что стоит AlgorithmSuite - BasicGost - и при попытке работать с RSA сертификатом выпадает такая ошибка.

Существует ли какая-то возможность работать с сервисом в BasicHTTPBinding режиме, но с подписью CryptoPro?



Offline khomenko  
#2 Оставлено : 6 декабря 2011 г. 20:15:01(UTC)
Михаил Хоменко

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

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

Поблагодарили: 15 раз в 14 постах
Добрый день,

Возможно прислать описание используемого binding'а ? Тогда можно будет воспроизвести ситуацию у нас.

Известно, что BasicHttpBinding ни в каком security mode не работает с clientCredentials : Certificate.
Offline nick_stan  
#3 Оставлено : 6 декабря 2011 г. 20:30:54(UTC)
nick_stan

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

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

khomenko написал:
Добрый день,
Известно, что BasicHttpBinding ни в каком security mode не работает с clientCredentials : Certificate.


Так именно это и нужно - подписанный запрос SOAP в режиме BasicHttpBinding.

Собственно вот сам пример (если поставить сертификаты не ГОСТовых - то все работает - естественно подпись RSA и убрать AlgorithmSuite):

BasicHttpBinding myBinding = new BasicHttpBinding("SmevUnifoServiceSOAP");
myBinding.Security.Mode = BasicHttpSecurityMode.Message;
myBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
myBinding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.Certificate;
myBinding.Security.Message.AlgorithmSuite = CryptoPro.Sharpei.ServiceModel.GostAlgorithmSuite.BasicGost;


EndpointAddress ea = new EndpointAddress("http://xx.xx.xx.xx:7777/gateway/services/SID0003026?wsdl");

SMEVService.SmevUnifoServiceClient cln = new SMEVService.SmevUnifoServiceClient(myBinding, ea);

cln.Endpoint.Contract.ProtectionLevel = System.Net.Security.ProtectionLevel.Sign;


cln.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindBySubjectName, "MYCERTNAME");
cln.ClientCredentials.ServiceCertificate.SetDefaultCertificate(StoreLocation.CurrentUser, StoreName.AddressBook, X509FindType.FindBySubjectName, "xx.xx.xx.xx");

cln.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.None;

.... (опускаю подробности - здесь заполнение полей запроса)


// вызов самого сервиса - здесь и происходит падение в exception
SMEVService.UnifoTransferMsg tran_resp = cln.UnifoTransferMsg(tran_mes.UnifoTransferMsg);


Offline khomenko  
#4 Оставлено : 6 декабря 2011 г. 20:31:26(UTC)
Михаил Хоменко

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

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

Поблагодарили: 15 раз в 14 постах
Замечание: BasicHttpBinding работает с clientCredentials : Certificate в режимах безопасности: Transport и Transport With Message Credentials
Offline khomenko  
#5 Оставлено : 6 декабря 2011 г. 20:42:01(UTC)
Михаил Хоменко

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

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

Поблагодарили: 15 раз в 14 постах
BasicHttpBinding в режиме безопасности Message с clientCredentials : Certificate не работает с ГОСТом.

Почему не использовать wsHttpBinding ?
Offline nick_stan  
#6 Оставлено : 6 декабря 2011 г. 21:29:53(UTC)
nick_stan

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

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

wsHttpBinding не поддерживает поставщик сервиса... это их требование...
Offline khomenko  
#7 Оставлено : 6 декабря 2011 г. 21:48:16(UTC)
Михаил Хоменко

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

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

Поблагодарили: 15 раз в 14 постах
Как вариант можно попробовать построить Custom Binding аналогичный BasicHttpBinding.

Про поддержку со стороны Sharpei сейчас немогу ничего сказать.
BasicHttpBinding + Message security + GOST не правился, потому что им фактически никто не пользовался.
Offline nick_stan  
#8 Оставлено : 6 декабря 2011 г. 21:52:56(UTC)
nick_stan

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

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

Понятно, будем думать... А в планах такое есть? Как я понимаю все gosuslugi так будут работать - поэтому спрос должен быть...

Offline khomenko  
#9 Оставлено : 7 декабря 2011 г. 15:00:22(UTC)
Михаил Хоменко

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

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

Поблагодарили: 15 раз в 14 постах
Есть принципиальные причины, почему BasicHttpBinding + Message security не работает на ГОСТе.
Скорей всего и CustomBinding не поможет.

В сценарии требуется шифрование + подпись сообщения ?
Offline nick_stan  
#10 Оставлено : 7 декабря 2011 г. 15:18:43(UTC)
nick_stan

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

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

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