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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline SukhovPro  
#1 Оставлено : 15 октября 2008 г. 16:40:04(UTC)
SukhovPro

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

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

Добрый день, есть клиент-серверное приложение.
Используется SSL, с аунтификацией по ключу пользователя. Раньше просто сами генерировали кличи для сервера и для клиентов, теперь встала необходимость использовать готовые ключи пользователей с ключиками по ГОСТ ....
Так вот если просто к AuthenticateAsClient подсунуть ключик с шифром по ГОСТу, он ругается примерно так:

"A call to SSPI failed, see inner exception."
"Указан недопустимый дескриптор"

Насколько я понял, ему нужно перед этим подсунуть криптопровайдер гостовский (из шарпея), но как и куда я не смог разобраться или я не прав?
Offline Челпанов А.  
#2 Оставлено : 15 октября 2008 г. 17:36:36(UTC)
Челпанов А.

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

Группы: Участники
Зарегистрирован: 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) в сертификате сервера есть?
С уважением, Александр.
Offline SukhovPro  
#3 Оставлено : 15 октября 2008 г. 18:32:09(UTC)
SukhovPro

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

Группы: Участники
Зарегистрирован: 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) - астественно есть.
Offline Челпанов А.  
#4 Оставлено : 15 октября 2008 г. 18:38:04(UTC)
Челпанов А.

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

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

Поблагодарили: 2 раз в 2 постах
1. Не просто важно, а очень ВАЖНО. Если не установлен последний SP на CSP 3.0 то скорее всего что-то подобное ("Указан недопустимый дескриптор") и может получится. Версия 3.0.32 мне не известна, сечас на сайте выложена 3.0.3293.

Отредактировано пользователем 15 октября 2008 г. 18:39:50(UTC)  | Причина: Не указана

С уважением, Александр.
Offline SukhovPro  
#5 Оставлено : 15 октября 2008 г. 18:55:32(UTC)
SukhovPro

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

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

Хорошо попробую последнюю версию + попробую 3,6 (так же помоему можно для пробы некоторое время без ключа активации).

Но мне немного не понятен механизм, т.е. если я стандартными кламмами нета безу сертификат с ключиком по госту, то он же должен как-то откапать крипто провайдер нужный? Но ведь я ни где это не указываю, я даже сборку шарпея не подключаю. или это делаеться на уровне фреймворка и системных библиотек самого CSP?
Offline Челпанов А.  
#6 Оставлено : 15 октября 2008 г. 19:27:03(UTC)
Челпанов А.

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

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

Поблагодарили: 2 раз в 2 постах
На клиенте вы указывате список сертификатов для аутентификации с сервером. Клиент и сервер договариваются об алгоритме использования ключа (ГОСТ, RSA...), соответственно и об используемом сертификате, этот выбор идет на уровне SSP (windows, системных библиотек, CSP...), Net Framework практически в этом процессе не принимает участия - он вызывает SSP и выполняет ряд вспомогательных действий (разбор сертификата...).
С уважением, Александр.
Offline SukhovPro  
#7 Оставлено : 15 октября 2008 г. 19:36:40(UTC)
SukhovPro

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

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

Т.е. я правильно понял, что шарпей для этих целей не нужен, я работаю как работал с исошними сертификатами. А сложившееся ситуация это просто похоже на баг.
Offline Челпанов А.  
#8 Оставлено : 15 октября 2008 г. 19:46:03(UTC)
Челпанов А.

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

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

Поблагодарили: 2 раз в 2 постах
Не совсем.
Разбор сертификата, проверка его корректности, выборка секретного ключа по сертификату выполняется на уровне .Net. А вот эта часть в .Net реализована не для всех алгоритмов и для ГОСТ она не работает. Шарпей исправляет .Net, эти исправления происходят в .Net без вашего участия.
Если Вы не собираетесь делать в Вашем проекте ничего специфичного для алгоритма ГОСТ, то подключать библиотеки Шарпей к проекту не требуется. Хотя они будут использоваться при установлении двухстороннего SSL соединения без вашего участия.
С уважением, Александр.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.