Статус: Участник
Группы: Участники
Зарегистрирован: 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)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,393 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 717 раз в 621 постах
|
Обновлять КриптоПро .Net при обновлении .Net нужно с вероятностью 90% Для .Net Core мы делаем fork (обсуждается в соседней ветке), но до WCF там ещё далеко. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.12.2019(UTC) Сообщений: 15
|
Спасибо.
Да, форк видели но не решились, поэтому и смесь Core 98% + Framework 2%.
Сосредоточимся тогда на вопросе почему не работает с .NET КриптоПро 7132.
Попробуем ещё раз пересобрать с новым SDK 7132, может что-то упустил.
Насколько важно, что бы .NET КриптоПро был одинаковый на клиенте и на сервере? Мне кажется должно быть все равно. На сервер повлиять мы не сможем.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,393 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 717 раз в 621 постах
|
Автор: pavel.kozak Насколько важно, что бы .NET КриптоПро был одинаковый на клиенте и на сервере? Мне кажется должно быть все равно. На сервер повлиять мы не сможем.
Не должны быть одинаковыми. Постарайтесь собрать трассировку WCF - посмотрим. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.12.2019(UTC) Сообщений: 15
|
Пересобрал с последним SDK.
Если по трейсу, то получается следующий порядок:
Пытаемся вызвать удаленную функцию TestAuthentication
Поставщик токена безопасности открыт. На клиенте запущен сеанс безопасности. Подлинность EndpointReference была определена. Успешно выполнена аутентификациа. Протокол безопасности обеспечил защиту исходящего сообщения. Через канал отправлено сообщение Через канал получено сообщение Через канал запроса получен ответ.
Генерирование исключения "Процессору безопасности не удалось найти заголовок безопасности в сообщении. Это может быть вызвано тем, что сообщение не защищено или имеет место несоответствия привязки между взаимодействующими сторонами. Это может произойти, если служба настроена с режимом безопасности, а клиент не применяет режим безопасности."
Незащищенное или неправильно защищенное сообщение об ошибке было получено от другой стороны.
Протоколу безопасности не может проверить входящее сообщение.
Конец.
Тот же код с предыдущей версией работает корректно. Пока не возможности проверить на чистой машине свежий SDK КриптоПро на старом фреймвекке.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.12.2019(UTC) Сообщений: 15
|
Автор: Максим Коллегин Не должны быть одинаковыми. Постарайтесь собрать трассировку WCF - посмотрим.
Оказывается, все таки есть зависимости. https://br.so-ups.ru/Pub...ws=%5Bobject%20Object%5DКак-то упустил эту новость. Теперь тупичок, придется ещё одну кашу делать и запускать прослойку на машине со старым фремвёрком и старым .NET КриптоПро :(.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,393 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 717 раз в 621 постах
|
Странно, ничего не слышал про это. Изучим вопрос. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 20.02.2017(UTC) Сообщений: 217
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 63 раз в 59 постах
|
Добрый день. Подскажите, какой сейчас 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>
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 13.12.2019(UTC) Сообщений: 15
|
Автор: Максим Коллегин Странно, ничего не слышал про это. Изучим вопрос. Насколько успел узнать, тикет поставщиком сервиса создавался, примерно в то время когда они писали эту новость.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 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 с ошибкой?
Я отправлю в личку, то что собрали в пятницу с нашими настройками, если не подойдет, то позже сниму с вашими рекомендациями.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close