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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline Волков  
#1 Оставлено : 24 января 2008 г. 13:44:21(UTC)
Волков

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

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

Закрытый ключ нельзя экспортировать?
Offline Ильшат Абшарипов  
#2 Оставлено : 24 января 2008 г. 19:57:33(UTC)
Ильшат Абшарипов

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

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

Меня тоже интересует данный вопрос. Точно знаю, что в версии 1.1 экспортировать закрытые ключи было нельзя. А в этой версии как обстоят дела?
Offline Максим Коллегин  
#3 Оставлено : 25 января 2008 г. 3:20:24(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 38 раз
Поблагодарили: 748 раз в 643 постах
Средствами Крипто-Про CSP нельзя. Но можно скопировать контейнер (если при создании был указан флаг CRYPT_EXPORTABLE).
Знания в базе знаний, поддержка в центре поддержки
Offline Волков  
#4 Оставлено : 25 января 2008 г. 11:11:29(UTC)
Волков

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

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

Я пытаюсь это сделать виндовыми средствами, т.е запускаю mmc и т.д. При создании контейнера на веб форме был установлен флажок "Пометить ключип как экспортируемые". Но при попытке экспорта *.pfx файл в указанном месте не создается. Так и должно быть или я чего-то не правильно делаю? ЦСП 3 версии.
Offline Максим Коллегин  
#5 Оставлено : 25 января 2008 г. 13:03:38(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 38 раз
Поблагодарили: 748 раз в 643 постах
Средствами Windows тоже нельзя.
Знания в базе знаний, поддержка в центре поддержки
Offline Ильшат Абшарипов  
#6 Оставлено : 25 января 2008 г. 13:25:05(UTC)
Ильшат Абшарипов

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

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

Хм. А скажите, что тогда у меня экспортируется?
Код:

// берем данные провайдера из сертификата
CryptAcquireCertificatePrivateKey(pCert, CRYPT_ACQUIRE_USE_PROV_INFO_FLAG, nil, hProv, KeySpec, CallerFreeProv);
// беру ключи
CryptGetUserKey(hProv, AT_SIGNATURE, hUserKey)
// создаю хеш для создания сессионного ключика из пароля
CryptCreateHash(hProv, CALG_GR3411, 0, 0, hHash)
// пароль в хеш
CryptHashData(hHash, PByte(Password), StrLen(Password), 0)
// на хеше делаю ключ
CryptDeriveKey(hProv, CALG_G28147, hHash, CRYPT_EXPORTABLE, hSessionKey)
// это нашел на форуме Криптопро
algid_export := CALG_PRO_EXPORT;
CryptSetKeyParam(hSessionKey, KP_ALGID, @algid_export, 0);
// узнаю размерчик для экспорта
CryptExportKey(hUserKey, hSessionKey, PRIVATEKEYBLOB, 0, nil, KeyBufLen)
// выделяю память
// экспортирую ключи
CryptExportKey(hUserKey, hSessionKey, PRIVATEKEYBLOB, 0, @Buf, KeyBufLen)
Offline Максим Коллегин  
#7 Оставлено : 25 января 2008 г. 14:04:32(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 38 раз
Поблагодарили: 748 раз в 643 постах
Ильшат Абшарипов - все верно, этот код и используется при копировании контейнеров.
Я имел в виду, что нельзя экспортировать не на ключе (pfx).
Знания в базе знаний, поддержка в центре поддержки
Offline Ильшат Абшарипов  
#8 Оставлено : 25 января 2008 г. 14:27:45(UTC)
Ильшат Абшарипов

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

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

Понятно.
А вдогонку подскажите, почему не импортируется ключ из BLOB? Здесь Dat и DatDataLen - те, что получены из первого куска кода Buf и KeyBufLen
Код:

// провайдер
CryptAcquireContext(hProv, nil, nil, 75, CRYPT_VERIFYCONTEXT)
// тут как и выше, создаем ключ на пароле (код один в один)
CryptCreateHash(hProv, CALG_GR3411, 0, 0, hHash)
CryptHashData(hHash, PByte(Password), StrLen(Password), 0)
CryptDeriveKey(hProv, CALG_G28147, hHash, CRYPT_EXPORTABLE, hSessionKey)
algid_export := CALG_PRO_EXPORT
CryptSetKeyParam(hSessionKey, KP_ALGID, @algid_export, 0)

// а вот тут ошибка: утверждает, что NTE_BAD_TYPE
CryptImportKey(hProv, DatData, DatDataLen, hSessionKey, 0, hKey)

// привязываем ключ и сертификат
CryptSetKeyParam(hKey, KP_CERTIFICATE, pCert.pbCertEncoded, 0)

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

Offline Максим Коллегин  
#9 Оставлено : 25 января 2008 г. 15:04:46(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 38 раз
Поблагодарили: 748 раз в 643 постах
Контекст для импорта PRIVATEKEYBLOB должен быть с контейнером (не CRYPT_VERIFYCONTEXT)
Знания в базе знаний, поддержка в центре поддержки
Offline Ильшат Абшарипов  
#10 Оставлено : 25 января 2008 г. 15:34:42(UTC)
Ильшат Абшарипов

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

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

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