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

Уведомление

Icon
Error

3 Страницы123>
Опции
К последнему сообщению К первому непрочитанному
Offline pavel.kozak  
#1 Оставлено : 10 января 2020 г. 10:23:50(UTC)
pavel.kozak

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

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

Добрый день.

Пока вопрос туманный, т.к. нет полного понимания происходящего.

Есть устоявшийся проект с использованием КриптоПро 4.0 + КриптоПро .NET (6893 работает стабильно), используется для подключения к Web сервису по WCF (Гост 2012).

Начали миграцию проекта на NET Core 3.x + .NET Framework 4.7.2, до этого была смесь Core 2.x + .NET Framework 4.6.1.

Предположительно(т.к. ставим средствами VS 2019, что он там ещё тянет под сомнением) после установки на машину SDK Core 3.x + SDK .NET Framework 4.8 + соответственно сам коре и фреймфорк получаем проблемы с WCF в существующем проекте, т.е. изменений в сам проект ещё не внесли, только установили Core + FrameWork посвежее.

При попытке подключения к сервису с авторизацией по ГОСТ ключу 2012, получаем ошибку:

Коллекция шифрования маркера не поддерживает алгоритм "urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2012-256".

Т.е. поведение, как будто не установлен КриптоПро .NET. Переустанавливаем весь комплект КриптоПро + КриптоПро .NET. Результата нет.

Проверено на двух машинах Windows 10 И Windows Server 2012 R2.
Сответсвующие лицензии есть и на рабочие станции и на сервер.
Для проверки пришлось VS 2019 на сервер поставить, т.к. думали причина в Windows 10.


Интересный момент, попробовали поднять версию Крипто Про .NET (SDK Крипто Про .NET поднимали соответственно) до 7132

Выше указанная ошибка на этапе подключения пропала, но при вызове получили другую ошибку:
System.ServiceModel.FaultException: An error occurred when verifying security for the message.

Попробую узнать какую версию SDK Крипто Про использует поставщик Web Сервиса.

Отредактировано пользователем 10 января 2020 г. 10:25:30(UTC)  | Причина: Не указана

Offline Максим Коллегин  
#2 Оставлено : 10 января 2020 г. 10:54:47(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 704 раз в 613 постах
Обновлять КриптоПро .Net при обновлении .Net нужно с вероятностью 90%
Для .Net Core мы делаем fork (обсуждается в соседней ветке), но до WCF там ещё далеко.
Знания в базе знаний, поддержка в техподдержке
Offline pavel.kozak  
#3 Оставлено : 10 января 2020 г. 11:02:18(UTC)
pavel.kozak

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

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

Спасибо.

Да, форк видели но не решились, поэтому и смесь Core 98% + Framework 2%.

Сосредоточимся тогда на вопросе почему не работает с .NET КриптоПро 7132.

Попробуем ещё раз пересобрать с новым SDK 7132, может что-то упустил.

Насколько важно, что бы .NET КриптоПро был одинаковый на клиенте и на сервере?
Мне кажется должно быть все равно. На сервер повлиять мы не сможем.
Offline Максим Коллегин  
#4 Оставлено : 10 января 2020 г. 11:11:32(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 704 раз в 613 постах
Автор: pavel.kozak Перейти к цитате

Насколько важно, что бы .NET КриптоПро был одинаковый на клиенте и на сервере?
Мне кажется должно быть все равно. На сервер повлиять мы не сможем.

Не должны быть одинаковыми.

Постарайтесь собрать трассировку WCF - посмотрим.
Знания в базе знаний, поддержка в техподдержке
Offline pavel.kozak  
#5 Оставлено : 10 января 2020 г. 13:10:45(UTC)
pavel.kozak

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

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

Пересобрал с последним SDK.


Если по трейсу, то получается следующий порядок:

Пытаемся вызвать удаленную функцию TestAuthentication

Поставщик токена безопасности открыт.
На клиенте запущен сеанс безопасности.
Подлинность EndpointReference была определена.
Успешно выполнена аутентификациа.
Протокол безопасности обеспечил защиту исходящего сообщения.
Через канал отправлено сообщение
Через канал получено сообщение
Через канал запроса получен ответ.

Генерирование исключения
"Процессору безопасности не удалось найти заголовок безопасности в сообщении. Это может быть вызвано тем, что сообщение не защищено или имеет место несоответствия привязки между взаимодействующими сторонами. Это может произойти, если служба настроена с режимом безопасности, а клиент не применяет режим безопасности."

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

Протоколу безопасности не может проверить входящее сообщение.

Конец.

Тот же код с предыдущей версией работает корректно. Пока не возможности проверить на чистой машине свежий SDK КриптоПро на старом фреймвекке.








Offline pavel.kozak  
#6 Оставлено : 10 января 2020 г. 13:19:38(UTC)
pavel.kozak

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

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

Автор: Максим Коллегин Перейти к цитате

Не должны быть одинаковыми.
Постарайтесь собрать трассировку WCF - посмотрим.


Оказывается, все таки есть зависимости.

https://br.so-ups.ru/Pub...ws=%5Bobject%20Object%5D

Как-то упустил эту новость.

Теперь тупичок, придется ещё одну кашу делать и запускать прослойку на машине со старым фремвёрком и старым .NET КриптоПро :(.
Offline Максим Коллегин  
#7 Оставлено : 10 января 2020 г. 20:27:26(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 704 раз в 613 постах
Странно, ничего не слышал про это. Изучим вопрос.
Знания в базе знаний, поддержка в техподдержке
Offline Артём Макаров  
#8 Оставлено : 13 января 2020 г. 8:31:35(UTC)
Артём Макаров

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 54 раз в 53 постах
Добрый день.

Подскажите, какой сейчас target framework задан в проекте?

Какая привязка используется?

Если возможно приложите файл конфигурации клиента (app.config).

Можете приложить wcf trace и messssage log с ошибкой?

Как собирать можно посмотреть тут - https://docs.microsoft.c...figuring-message-logging
Пример -
Код:
<system.diagnostics>
	<sources>
	  <source name="System.ServiceModel.MessageLogging" switchValue="All">
		<listeners>
		  <add type="System.Diagnostics.DefaultTraceListener" name="Default">
			<filter type="" />
		  </add>
		  <add name="ServiceModelMessageLoggingListener">
			<filter type="" />
		  </add>
		</listeners>
	  </source>
	  <source name="System.ServiceModel" switchValue="All" propagateActivity="true">
		<listeners>
		  <add type="System.Diagnostics.DefaultTraceListener" name="Default">
			<filter type="" />
		  </add>
		  <add name="ServiceModelTraceListener">
			<filter type="" />
		  </add>
		</listeners>
	  </source>
	</sources>
	<sharedListeners>
	  <add initializeData="C:\logs\my_service_web_messages.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
		<filter type="" />
	  </add>
	  <add initializeData="C:\logs\my_serice_web_tracelog.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
		<filter type="" />
	  </add>
	</sharedListeners>
	<trace autoflush="true" />
  </system.diagnostics>
Техническую поддержку оказываем тут
Наша база знаний
Offline pavel.kozak  
#9 Оставлено : 13 января 2020 г. 10:01:40(UTC)
pavel.kozak

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

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

Автор: Максим Коллегин Перейти к цитате
Странно, ничего не слышал про это. Изучим вопрос.


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

Offline pavel.kozak  
#10 Оставлено : 13 января 2020 г. 10:11:57(UTC)
pavel.kozak

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

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

Автор: Артём Макаров Перейти к цитате

Подскажите, какой сейчас target framework задан в проекте?


Проверяли несколько, поведение и ошибка одинаковые и на 4.6.2, 4.7.1, 4.8.
Версия .NET Крипто про - 7132. Основной Крипто Про ставился последний 4.0, 9963.


Автор: Артём Макаров Перейти к цитате

Какая привязка используется?

WSHttpBinding

Это пример со стенда, в основном проекте вместо конфига настройка из кода идет. Но значения те же.

<wsHttpBinding>
<binding name="wsHttpCertificateBinding" closeTimeout="01:00:00" openTimeout="01:00:00" receiveTimeout="01:00:00" sendTimeout="01:00:00"
maxBufferPoolSize="52428800" maxReceivedMessageSize="52428800">
<readerQuotas maxStringContentLength="2147483647"/>
<security>
<message clientCredentialType="Certificate" negotiateServiceCredential="false"/>
</security>
</binding>
</wsHttpBinding>


<endpoint address="http://br.so-ups.ru:8091/PersonalApi/PersonalApiService.svc/ByCertificate"
binding="wsHttpBinding" bindingConfiguration="wsHttpCertificateBinding"
contract="PersonalApiService.IPersonalApiService" name="wsHttpCertificateEndpoint">
<identity>
<certificateReference findValue="5cee4b2593de373e184377a718bb5af83dea466b" x509FindType="FindByThumbprint"
storeLocation="LocalMachine" storeName="My" />
</identity>
</endpoint>


Автор: Артём Макаров Перейти к цитате

Можете приложить wcf trace и messssage log с ошибкой?


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