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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline kmosolov  
#1 Оставлено : 13 ноября 2024 г. 16:14:32(UTC)
kmosolov

Статус: Новичок

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

Сказал(а) «Спасибо»: 1 раз
Добрый день, в нашем ПО реализована возможность подписания с использованием DSS, соответственно мы используем DSS REST API.
Для имперсонации вызовов API подписания используется настроенное доверие DSS к ЦИ нашего продукта, мы обмениваем токен нашего ПО на токен DSS используя endpoint /STS/oauth/token и затем уже происходят вызовы API подписания с использованием персонализированного токена DSS.

Всё работает если при настройке отношений доверия (Add-DssIdentityProviderSigningCertificate) был указан сертификат RSA.
Если же попытаться указать сертификат ГОСТ и соответственно отправлять на /STS/oauth/token токен подписанный этим сертификатом, то STS отвечает кодом 400 с сообщением {"error":"invalid_request","error_description":"The token specified by 'subject_token' parameter is invalid or malformed."}

На самом сервере в логе STS при этом возникает ошибка

Код:
Instance Unique Identifier: 1/STS.
Source: TokenExchangeGrantValidator.
The 'subject_token' parameter is invalid. Cannot process token type 'urn:ietf:params:oauth:token-type:jwt' and value '<token>'.
Error 'IDX10502: Signature validation failed. Key tried: 'CryptoPro.DSS.Identity.Services.Tokens.IdSrvX509SecurityKey'.
Exception caught:
 'System.InvalidOperationException: AsymmetricSecurityKey.GetHashAlgorithmForSignature('urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512') threw an exception.
AsymmetricSecurityKey: 'CryptoPro.DSS.Identity.Services.Tokens.IdSrvX509SecurityKey'
SignatureAlgorithm: 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512', check to make sure the SignatureAlgorithm is supported.
Exception: 'System.NotSupportedException: Алгоритм шифрования "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512" в этом контексте не поддерживается.
   в System.IdentityModel.Tokens.X509AsymmetricSecurityKey.GetHashAlgorithmForSignature(String algorithm)
   в CryptoPro.DSS.Identity.Services.Tokens.GostSignatureProvider..ctor(AsymmetricSecurityKey key, String algorithm, Boolean willCreateSignatures)'.
   в CryptoPro.DSS.Identity.Services.Tokens.GostSignatureProvider..ctor(AsymmetricSecurityKey key, String algorithm, Boolean willCreateSignatures)
   в CryptoPro.DSS.Identity.Services.Tokens.GostSignatureProviderFactory.CreateForVerifying(SecurityKey key, String algorithm)
   в System.IdentityModel.Tokens.JwtSecurityTokenHandler.ValidateSignature(Byte[] encodedBytes, Byte[] signature, SecurityKey key, String algorithm)
   в System.IdentityModel.Tokens.JwtSecurityTokenHandler.ValidateSignature(String token, TokenValidationParameters validationParameters)'.
token: '{"alg":"G12G512","kid":"DE5CB38D9A212300218FA6F7DC42871140AA4144","x5t":"3lyzjZohIwAhj6b33EKHEUCqQUQ","typ":"JWT"}.{"unique_name":"boss","role":"Users","nbf":1731499238,"exp":1731499538,"iat":1731499238,"iss":"Test identity provider"}'.


Пробовал другой сертификат, с длинной ключа в 256 бит, всё то-же самое, только в тексте ошибки "alg":"G12G512" меняется на "alg":"G12G256" и urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512 на urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256

Версия DSS последняя доступная (2.0.4762).

Пробовал зарегистрировать криптопровайдер для STS, не помогло.

Код:
Add-DssCryptoProviderProfile -DisplayName $STSAppName -Type GOST -Name "Cryptographic Service Provider Profile" -PrimaryProviderName "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider" -PrimaryProviderType 80
Add-DssCryptoProviderProfile -DisplayName $STSAppName -Type GOST -Name "Strong Cryptographic Service Provider Profile" -PrimaryProviderName "Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider" -PrimaryProviderType 81


Помогите, пожалуйста, разобраться с ситуацией, хочется понять в чем причина: или такое не возможно реализовать или некорректно настроен DSS или некорректно сформирован токен.

Отредактировано пользователем 14 ноября 2024 г. 15:51:34(UTC)  | Причина: Не указана

Offline Георгий Садофьев  
#2 Оставлено : 13 ноября 2024 г. 16:24:27(UTC)
Георгий Садофьев

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

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

Поблагодарили: 31 раз в 30 постах
Добрый день!

Подскажите, пожалуйста, установлен ли на сервере DSS продукт КриптоПро .NET? Если установлен, то какой версии?
Техническую поддержку оказываем тут
Наша база знаний
Offline kmosolov  
#3 Оставлено : 13 ноября 2024 г. 16:30:56(UTC)
kmosolov

Статус: Новичок

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

Сказал(а) «Спасибо»: 1 раз
Автор: Георгий Садофьев Перейти к цитате
Подскажите, пожалуйста, установлен ли на сервере DSS продукт КриптоПро .NET?


Нет, только CSP версии 5.0.13000 и сам DSS (2.0.4762).

Нужно установить КриптоПро .NET? Нужна какая-нибудь определенная версия?
Offline Георгий Садофьев  
#4 Оставлено : 13 ноября 2024 г. 22:19:17(UTC)
Георгий Садофьев

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

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

Поблагодарили: 31 раз в 30 постах
Да, нужно установить КриптоПро .NET, актуальный дистрибутив (КриптоПро .NET 2.0.8973.0 от 26.07.2024) можете взять с сайта из раздела загрузок.
Обратите внимание, что для использования КриптоПро .NET нужна соответствующая лицензия (поставляется на том же бланке, что и лицензия КриптоПро DSS), при первой установке активируется дкмонстрационная лицензия на три месяца.
Техническую поддержку оказываем тут
Наша база знаний
Offline kmosolov  
#5 Оставлено : 14 ноября 2024 г. 15:26:46(UTC)
kmosolov

Статус: Новичок

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

Сказал(а) «Спасибо»: 1 раз
Установка КриптоПро .NET помогла, спасибо!

Я правильно понял, что при покупке DSS лицензия на КриптоПро .NET входит в стоимость и идет "в комплекте"? Клиентам нашим ничего докупать не потребуется?
Offline Георгий Садофьев  
#6 Оставлено : 14 ноября 2024 г. 15:35:58(UTC)
Георгий Садофьев

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

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

Поблагодарили: 31 раз в 30 постах
Да, всё верно, лицензия на КриптоПро .NET входит в стоимость КриптоПро DSS.
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Георгий Садофьев за этот пост.
kmosolov оставлено 14.11.2024(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.