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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Ozzy  
#1 Оставлено : 11 сентября 2013 г. 1:50:55(UTC)
Ozzy

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

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

Добрый день, господа-специалисты.

Реализовал службу STS, сервис и клиент. Для аутентификации клиента используются сертификаты. На сертификатах RSA работает корректно. Если сертификаты заменить на ГОСТ-овские, то не работает.

В конфигурациях биндингов на клиенте, сервере и STS проставил algorithmSuite="BasicGost"

Ошибка происходит при заключительном этапе перед получением клиентом токена. Исключение на клиенте не содержит полезной информации: "An error occurred when verifying security for the message.".

На STS в логах появляется сл ошибка: "Derived Key Token cannot derive key from the secret."
Stacktrace:


Поковырявшись, Я обнаружил, что в методе DerivedKeySecurityToken.Initialize (см. stacktrace) выполняется проверка ключей (X509AsymmetricSecurityKey в моём случае) токена (X509SecurityToken в моём случае) в плане поддержки алгоритма. Какого именно алгоритма - не знаю, но уверен, что какого-то из ГОСТовских. А, поскольку, дефолтная реализация, частью которой являются эти классы, заточена под RSA, то проверка не проходит и порождается исключение, которое всё ломает. Как Я понимаю, вместо этих классов должны были использоваться классы из CryptoPro.NET. В SDK Я обнаружил некое подобие необходимых классов, из чего могу сделать вывод, что интеграция предусмотрена. К тому же, об этом заявлено тут.

Что же нужно дополнительно сделать в данном случае при переходе на ГОСТовские сертификаты?

Готов предоставить более подробную информацию.

Заранее благодарю.
Offline khomenko  
#2 Оставлено : 11 сентября 2013 г. 8:39:51(UTC)
Михаил Хоменко

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

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

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

Требуется доп. информация:
1. Описать сценарий взаимодействия служб, привязок на STS и Сервисе.
2. Собрать информацию об установленном КриптоПро .NET
Для этого выполнить команду:"C:\Program Files\Crypto Pro\.NET\alarm.exe" info
Прислать полученный файл osinfo.xml

Отредактировано пользователем 11 сентября 2013 г. 8:41:25(UTC)  | Причина: Не указана

Offline Ozzy  
#3 Оставлено : 11 сентября 2013 г. 10:35:01(UTC)
Ozzy

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

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

1. Не совсем понятно что требуется. Но попробую описать что есть:

Сценарий взаимодействия со службами:
- клиент принудительно сначала обращается напрямую к STS и получает токен
- далее, при обращении к службе, используется полученный токен

К сожалению, до обращения к службе дело не доходит. Т.е. конечная служба в этом сценарии не участвует совсем! Можно считать, что Я просто сделал клиент и STS, у которого прошу токен для некой службы.

Ошибка происходит при третьем запросе при получении токена:
- Req: RequestSecurityToken Resp: RequestSecurityTokenResponse
- Req: RequestSecurityTokenResponse Resp: RequestSecurityTokenResponseCollection
- Req: EncryptedData Resp: FAULT(An error occurred when verifying security for the message.)

Для создания прокси к STS используется WSTrustChannelFactory, биндинг ws2007HttpBinding

Выдержка из конфигурации STS:



Выдержка из конфигурации клиента:



2. - прикрепил
Вложение(я):
osinfo.xml (136kb) загружен 2 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline khomenko  
#4 Оставлено : 11 сентября 2013 г. 15:03:24(UTC)
Михаил Хоменко

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

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

Поблагодарили: 15 раз в 14 постах
Такой сценарий работы поддерживается.

- Под какой Framework написано ваше приложение?

Возможно решит проблему:
- Установка последних обновлений для FW 3.5, 4.5
- Переустановка КриптоПро .NET


Offline Ozzy  
#5 Оставлено : 12 сентября 2013 г. 8:21:52(UTC)
Ozzy

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

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

Приложение написано под .NET 4.5

Обновление .NET и переустановка КриптоПро.NET не помогли.
Offline khomenko  
#6 Оставлено : 12 сентября 2013 г. 9:08:39(UTC)
Михаил Хоменко

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

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

Поблагодарили: 15 раз в 14 постах
Будем пробовать воспроизвести ошибку.

Какое именно исключение вылетает из
System.ServiceModel.Security.Tokens.DerivedKeySecurityToken.Initialize ?

Для аутентификации клиента используется ГОСТовый сертификат ?

Просьба ещё раз прислать инфорумацию об установленном КриптоПро .NET:
"C:\Program Files\Crypto Pro\.NET\alarm.exe" info
"C:\Program Files (x86)\Crypto Pro\.NET\alarm.exe" info

Из быстрых решений можем предложить:
- Попробовать запуститься на FW 3.5 (потребует изменений в проекте: ранее WIF не входил в состав FW)
- Поробовать работать через WS(2007)FederationHttpBinding, т.е. не получать маркер безопасности явно через WSTrustChannel.

Отредактировано пользователем 12 сентября 2013 г. 9:23:06(UTC)  | Причина: Не указана

Offline Ozzy  
#7 Оставлено : 12 сентября 2013 г. 10:17:38(UTC)
Ozzy

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

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

Исключение:



Для аутентификации клиента и вообще везде используются ГОСТ-овые сертификаты.

> - Поробовать работать через WS(2007)FederationHttpBinding, т.е. не получать маркер безопасности явно через WSTrustChannel.
С начала так и сделал - та же ошибка.

Прикрепляю инфорумацию об установленном КриптоПро .NET, а так же solution, чтобы Вам не пришлось долго воспроизводить ошибку. В нём Я максимально просто реализовал проблемные проекты.
Вложение(я):
C_Program_Files_(x86)_Crypto_Pro.NET_alarm.exe.xml (140kb) загружен 5 раз(а).
C_Program_Files_Crypto_Pro.NET_alarm.exe.xml (149kb) загружен 3 раз(а).
StsTest.zip (147kb) загружен 5 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Ozzy  
#8 Оставлено : 16 сентября 2013 г. 14:43:20(UTC)
Ozzy

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

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

Есть ли какие-то сдвиги по данному вопросу? Будут ли какие-то комментарии от разработчиков?
Offline Максим Коллегин  
#9 Оставлено : 17 сентября 2013 г. 1:12:43(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Не встали исправления на WCF. Попробуйте использовать максимально старый Framework.
Знания в базе знаний, поддержка в техподдержке
Offline Максим Коллегин  
#10 Оставлено : 29 октября 2013 г. 15:37:21(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Все три написали READY при запуске - какое поведение ожидается?
Знания в базе знаний, поддержка в техподдержке
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.