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

Уведомление

Icon
Error

3 Страницы<123>
Опции
К последнему сообщению К первому непрочитанному
Offline mois  
#11 Оставлено : 30 июля 2009 г. 3:49:26(UTC)
mois

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

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

По поводу пароля, действительно очень не удобно. Но мы его почти не используем (а точнее я вообще ни разу не встречал, чтобы мы или наши клиенты использовали пароль), поэтому в нашем конкретном случае, это не критично. Теперь стало понятно почему у вас возник вопрос, о том как мы сопостовляем сертификат с контейнером. Тогда сразу возникает встречный вопрос, есть ли другой способ определить соответсвует ли сертификат контейнеру, не требующий прав доступа к контейнеру?

И по поводу привязки. Вы имели ввиду, что сертификат установленный в хранилище на компьютере будет иметь привязку только к одному контейнеру? Если да, то нам надо установить сертификат только в контейнер закрытого ключа.

P.S. У меня есть еще несколько вопросов к вам, но я и так уже отклонился от темы топика, поэтому думаю лучше задать их в отдельной теме.
Offline Челпанов А.  
#12 Оставлено : 30 июля 2009 г. 16:43:30(UTC)
Челпанов А.

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

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

Поблагодарили: 2 раз в 2 постах
Цитата:
По поводу пароля, действительно очень не удобно. Но мы его почти не используем (а точнее я вообще ни разу не встречал, чтобы мы или наши клиенты использовали пароль), поэтому в нашем конкретном случае, это не критично. Теперь стало понятно почему у вас возник вопрос, о том как мы сопостовляем сертификат с контейнером. Тогда сразу возникает встречный вопрос, есть ли другой способ определить соответсвует ли сертификат контейнеру, не требующий прав доступа к контейнеру?
Документированных способов нет, недокументированные описывать не буду ).
Цитата:
И по поводу привязки. Вы имели ввиду, что сертификат установленный в хранилище на компьютере будет иметь привязку только к одному контейнеру? Если да, то нам надо установить сертификат только в контейнер закрытого ключа.
Да, я писал именно о привязке с сертификата установленного в хранилище MY на контейнер. В любом случае, установка сертификатов во все контейнеры - "ничего страшного" не принесет.
Цитата:
P.S. У меня есть еще несколько вопросов к вам, но я и так уже отклонился от темы топика, поэтому думаю лучше задать их в отдельной теме.
К Вашим услугам Angel
С уважением, Александр.
Offline chikory  
#13 Оставлено : 7 января 2013 г. 9:23:02(UTC)
chikory

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

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

Добрый день.
Чтобы не плодить тем, осмелюсь задать вопрос тут.
Не подскажите ли каким образом через криптопро .net можно получить следующую цепочку носитель->контейнер->сертификат?
Задача вести учет таких связок. По этому функции списка носителей, контейнеров на каждом носителе и сертификатов в них были бы весьма удобны.
Я понял из общения выше, прямого способа через .net пока что нет.
Offline Максим Коллегин  
#14 Оставлено : 10 января 2013 г. 0:41:57(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 704 раз в 613 постах
Подобного api нет. Принятые абстракции для CSP - контейнеры, для ОС - сертификаты, от последних и стоит отталкиваться.
Знания в базе знаний, поддержка в техподдержке
Offline chikory  
#15 Оставлено : 11 января 2013 г. 14:34:36(UTC)
chikory

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

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

Т.е. я полагаю, чтобы по сертификату узнать серийный номер носителя на котором он записан, нужно через P\invoke получить список носителей и имена контейнеров, затем по сертификату выяснить имя контейнера для сертификата и сопоставить (может есть более простой способ?)
Просмотрел темы на форуме где используют функцию CryptGetProvParam(hProv, PP_ENUMREADERS, sb, ref pdwDataLen, dwFlags). Опробовал ее. список контейнеров получить у меня вышло, а вот список считывателей не получается, не подскажите в чем моя ошибка, или может быть уже была тема с разъяснением?

Пишу на c#:

Код:

      
        [DllImport("advapi32.dll", SetLastError = true)]
        public static extern bool CryptGetProvParam(
        IntPtr hProv,
        uint dwParam,
        [In, Out] byte[] pbData,
        ref uint dwDataLen,
        uint dwFlags);

        [DllImport("advapi32.dll", SetLastError = true)]
        public static extern bool CryptGetProvParam(
        IntPtr hProv,
        uint dwParam,
        [MarshalAs(UnmanagedType.LPStr)] StringBuilder pbData,
        ref uint dwDataLen,
        uint dwFlags);
        
        [DllImport("advapi32.dll")]
        public static extern bool CryptReleaseContext(
        IntPtr hProv,
        uint dwFlags);

        const uint PP_ENUMREADERS = 114;
        const uint CRYPT_FIRST = 0x00000001;
        const uint PROV_RSA_FULL = 0x00000001;
        static uint CSPKEYTYPE = 0;	//default is CU keystores

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

Offline chikory  
#16 Оставлено : 11 января 2013 г. 14:44:35(UTC)
chikory

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

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

public string[] GetReaderNames()
{
int BUFFSIZE = 512;
ArrayList readernames = new ArrayList();
uint pdwDataLen = 0;
String provider = "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider";
IntPtr hProv = IntPtr.Zero;
uint dwFlags = CRYPT_FIRST;



StringBuilder sb = null;
CryptGetProvParam(hProv, PP_ENUMREADERS, sb, ref pdwDataLen, dwFlags);
BUFFSIZE = (int)(2 * pdwDataLen);
sb = new StringBuilder(BUFFSIZE);

/* ---------- Get KeyContainer Names ------------- */
while (CryptGetProvParam(hProv, PP_ENUMREADERS, sb, ref pdwDataLen, dwFlags))
{
dwFlags = 0; //required to continue entire enumeration
readernames.Add(sb.ToString());
}
if (hProv != IntPtr.Zero)
CryptReleaseContext(hProv, 0);

if (readernames.Count == 0)
readernames.Add("0 штук");

return (string[]) readernames.ToArray(Type.GetType("System.String"));
}

Ну и плюс функция которая вызывает метод

Отредактировано пользователем 15 января 2013 г. 15:31:54(UTC)  | Причина: Не указана

Offline chikory  
#17 Оставлено : 16 января 2013 г. 13:30:17(UTC)
chikory

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

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

Разобрался, указывал не совсем те параметры и не совсем те значения.
Offline chikory  
#18 Оставлено : 17 января 2013 г. 9:50:50(UTC)
chikory

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

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

Не подскажите пример как через p\invoke, зная имя контейнера, извлечь сертификат?
Offline Андрей Писарев  
#19 Оставлено : 17 января 2013 г. 10:04:45(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Автор: chikory Перейти к цитате
Не подскажите пример как через p\invoke, зная имя контейнера, извлечь сертификат?


По списку установленных сертификатов в цикле пройти и сверить информацию по контейнеру ... (?)
Техническую поддержку оказываем тут
Наша база знаний
Offline chikory  
#20 Оставлено : 17 января 2013 г. 10:20:59(UTC)
chikory

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

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

Автор: Андрей * Перейти к цитате
Автор: chikory Перейти к цитате
Не подскажите пример как через p\invoke, зная имя контейнера, извлечь сертификат?


По списку установленных сертификатов в цикле пройти и сверить информацию по контейнеру ... (?)


Я имел в виду случай, когда сертификаты не установлены в хранилище сертификатов.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
3 Страницы<123>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.