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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline drinkerq  
#1 Оставлено : 26 августа 2011 г. 17:22:38(UTC)
drinkerq

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

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

Здравствуйте!

В рамках учебного проекта я написал криптопровайдер который реализует мои собственные алгоритмы и успешно регистрируется в Windows. Алгоритмы я предварительно регистрирую с помощью функции CryptRegisterOIDInfo. Кроме того с помощью функции CryptInstallOIDFunctionAddress я установил для function set CryptDllConvertPublicKeyInfo и CryptDllEncodePublicKeyAndParameters собственные реализации. Моя функция из function set CryptDllEncodePublicKeyAndParameters возвращает публичный ключ в ASN1 структуре OCTET STRING. Я устанавливаю CA с типом Enterprise root CA и выбираю в списке CSP свой провайдер. После установки CA я получаю сертификат, который отображается как корректный. Я устанавливаю сертификат в хранилище Personal. Затем с помощью функции CertSetCertificateContextProperty (dwPropId = CERT_KEY_PROV_INFO_PROP_ID) я привязываю закрытый ключ к сертификату в хранилище "MY".

У меня возникли следующие вопросы:
1) При просмотре сертификата длина Public Key равна 0. С чем это может быть связано? это связано с тем что Windows не может верно интерпритировать мою ASN1 структуру?

2) При попытке подписать документ Word 2007 с помощью моего сертификата выдается ошибка "Не удается добавить подпись в документ". При этом обращений к моему CSP не происходит. Что может быть не так с моим сертификатом?

3) При попытке подписать письмо в Outlook 2007 выдается сообщение о том что сертификат не связан с моим электронным адресом. Как привязать email к сертификату?

4) При установке CA возникает следующая проблема: тип моего провайдера = 26 (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Test_CSP\Type). Если при установке CA, CSP Type = 26, то CSP не отображается в списке CSP. Я ставлю тип 1, затем устанавливаю CA со своим провайдером и затем изменяю тип CSP обратно на 26. Как можно избежать этого?

я буду рад любым советам по описанным проблемам :]
Offline Максим Коллегин  
#2 Оставлено : 26 августа 2011 г. 19:20:16(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 37 раз
Поблагодарили: 719 раз в 623 постах
Все эти вопросы задайте в MS. Эта функциональность обеспечивается патчами к ОС.
Знания в базе знаний, поддержка в техподдержке
Offline drinkerq  
#3 Оставлено : 26 августа 2011 г. 19:51:16(UTC)
drinkerq

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

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

Была у меня такая мысль когда я увидел detoured.dll в списке загруженных модулей некоторых процессов после установки демо КриптоПро CSP :]

Подскажите пожалуйста, как связывается сертификат и email. Подозреваю что с подписыванием писем в outlook это не поможет, но это не должно делаться с помощью патчей.
Offline Максим Коллегин  
#4 Оставлено : 26 августа 2011 г. 19:53:18(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 37 раз
Поблагодарили: 719 раз в 623 постах
в CN сертификата есть поле для email.
Знания в базе знаний, поддержка в техподдержке
Offline drinkerq  
#5 Оставлено : 26 августа 2011 г. 20:05:11(UTC)
drinkerq

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

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

Спасибо, еще раз посмотрю.
Offline drinkerq  
#6 Оставлено : 12 сентября 2011 г. 23:40:26(UTC)
drinkerq

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

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

Подскажите пожалуйста, перехват какой функции нужно выполнить для корректного отображения длины Public Key в сертификате? Хотя бы dll в которой она находится :]
Offline Максим Коллегин  
#7 Оставлено : 13 сентября 2011 г. 4:15:10(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 37 раз
Поблагодарили: 719 раз в 623 постах
crypt32.dll.I_Crypt_DefaultCryptProv
Знания в базе знаний, поддержка в техподдержке
Offline drinkerq  
#8 Оставлено : 13 сентября 2011 г. 14:55:45(UTC)
drinkerq

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

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

Большое спасибо!
Offline drinkerq  
#9 Оставлено : 21 сентября 2011 г. 0:09:48(UTC)
drinkerq

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

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

Перехват I_CryptGetDefaultCryptProv успешно заработал, благодаря этому перехвату происходит вызов CPGetProvParam с ключом KP_KEYLEN, который возвращает отображаемое значение.

Подскажите пожалуйста, что нужно перехватывать для того что бы избежать смены типа провайдера при установке СА?
Offline Максим Коллегин  
#10 Оставлено : 21 сентября 2011 г. 1:50:09(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 37 раз
Поблагодарили: 719 раз в 623 постах
Там хуже - нужно патчить certocm.dll или регистрировать криптопровайдер второго типа.
Знания в базе знаний, поддержка в техподдержке
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.