Статус: Участник
Группы: Участники
Зарегистрирован: 15.10.2008(UTC) Сообщений: 14
|
Добрый день, есть клиент-серверное приложение. Используется SSL, с аунтификацией по ключу пользователя. Раньше просто сами генерировали кличи для сервера и для клиентов, теперь встала необходимость использовать готовые ключи пользователей с ключиками по ГОСТ .... Так вот если просто к AuthenticateAsClient подсунуть ключик с шифром по ГОСТу, он ругается примерно так:
"A call to SSPI failed, see inner exception." "Указан недопустимый дескриптор"
Насколько я понял, ему нужно перед этим подсунуть криптопровайдер гостовский (из шарпея), но как и куда я не смог разобраться или я не прав?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2007(UTC) Сообщений: 390 Откуда: КриптоПро Поблагодарили: 2 раз в 2 постах
|
Какой установлен CSP на клиенте и на сервере (укажите по возможности #build). Что используется в качестве сервера: IIS, приложение Net...? Подсовываете ГОСТ ключ на клиента так? sslStream.AuthenticateAsClient(serverName, clientCertificateCollection, SslProtocols.Ssl3, false); На сервере ГОСТ ключ? Enchanced key usage: Server Authentication (1.3.6.1.5.5.7.3.1) в сертификате сервера есть? |
С уважением, Александр. |
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 15.10.2008(UTC) Сообщений: 14
|
1. 3.0.32 (но не суть важно, просто была лицензия под руками) приложение новое и под него будут покупаться дополнительные новые лицензии нужной версии
2. Клиент- сервер основан на классах Net, на стороне сервера слушает TcpListener, потом поднимаеться TcpClient от которого уже передаеться поток в SslStream, а на стороне клиента соответвенно TcpClient конектиться, и отдает поток SslStream (Вообщем все академически :) )
3. X509Certificate2 ret = new X509Certificate2 .... X509CertificateCollection col = new X509CertificateCollection(); col.Add(ret); sslStream.AuthenticateAsClient(infHostTo, col, SslProtocols.Tls, false);
4. На сервере старый исошный остался. 5. Проверка подлинности сервера (1.3.6.1.5.5.7.3.1) - астественно есть.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2007(UTC) Сообщений: 390 Откуда: КриптоПро Поблагодарили: 2 раз в 2 постах
|
1. Не просто важно, а очень ВАЖНО. Если не установлен последний SP на CSP 3.0 то скорее всего что-то подобное ("Указан недопустимый дескриптор") и может получится. Версия 3.0.32 мне не известна, сечас на сайте выложена 3.0.3293. Отредактировано пользователем 15 октября 2008 г. 18:39:50(UTC)
| Причина: Не указана |
С уважением, Александр. |
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 15.10.2008(UTC) Сообщений: 14
|
Хорошо попробую последнюю версию + попробую 3,6 (так же помоему можно для пробы некоторое время без ключа активации).
Но мне немного не понятен механизм, т.е. если я стандартными кламмами нета безу сертификат с ключиком по госту, то он же должен как-то откапать крипто провайдер нужный? Но ведь я ни где это не указываю, я даже сборку шарпея не подключаю. или это делаеться на уровне фреймворка и системных библиотек самого CSP?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2007(UTC) Сообщений: 390 Откуда: КриптоПро Поблагодарили: 2 раз в 2 постах
|
На клиенте вы указывате список сертификатов для аутентификации с сервером. Клиент и сервер договариваются об алгоритме использования ключа (ГОСТ, RSA...), соответственно и об используемом сертификате, этот выбор идет на уровне SSP (windows, системных библиотек, CSP...), Net Framework практически в этом процессе не принимает участия - он вызывает SSP и выполняет ряд вспомогательных действий (разбор сертификата...). |
С уважением, Александр. |
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 15.10.2008(UTC) Сообщений: 14
|
Т.е. я правильно понял, что шарпей для этих целей не нужен, я работаю как работал с исошними сертификатами. А сложившееся ситуация это просто похоже на баг.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2007(UTC) Сообщений: 390 Откуда: КриптоПро Поблагодарили: 2 раз в 2 постах
|
Не совсем. Разбор сертификата, проверка его корректности, выборка секретного ключа по сертификату выполняется на уровне .Net. А вот эта часть в .Net реализована не для всех алгоритмов и для ГОСТ она не работает. Шарпей исправляет .Net, эти исправления происходят в .Net без вашего участия. Если Вы не собираетесь делать в Вашем проекте ничего специфичного для алгоритма ГОСТ, то подключать библиотеки Шарпей к проекту не требуется. Хотя они будут использоваться при установлении двухстороннего SSL соединения без вашего участия. |
С уважением, Александр. |
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close