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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Timur R. Vildanov  
#1 Оставлено : 21 июля 2008 г. 0:31:11(UTC)
Timur R. Vildanov

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

Группы: Участники
Зарегистрирован: 21.07.2008(UTC)
Сообщений: 6
Откуда: Россия, Ханты-Мансийск

Есть два носителя eToken. На них лежат сертификаты с приватными ключами. Все происходит на одном компьютере.
Оба сертификата были импортированы в хранилище MY. Позже, при поднятии сетевого соединения и обмене сертификатами между двумя субьектами, пытаюсь зделать импорт открытого ключа из полученного сертификата для шифрования создания и шифрации сессионного ключа, но GetLastError возвращает, что параметры указаны неверно. Причем вызов CryptImportPublicKeyInfo/Ex на стороне - владельце сертификата, перед отправкой другой стороне вообще вешает исполнение.

Контексты провайдеров получаю по умолчанию для типа 71. В флаге указываю 0, указывал CRYPT_VERIFYCONTEXT, но ситуация не изменялась.
Сертификатами обмениваюсь через создание хранилища сертификатов в памяти, добавления в него контекста личного сертификата, сохранения хранилища в файл и отправкой уже этого файла на другую сторону. Другая сторона получает сертификат в обратном порядке. Сохраняет полученное в файл, открывает его как хранилище и получает оттуда контекст сертификата. Повторюсь, все происходит на одной и той же машине и в одном и том же приложении. Приложение является win32 сервисом. Сервис запускается от имени пользователя для которого установленны сертификаты.

И еще один момент. Сторона A шлет сертификат стороне B. Сторона B прекрасно его проверяет через CertGetIssuerCertificateFromStore. После проверки сторона B шлет в ответ стороне A свой сертификат, но сторона A уже отказывается подтверждать личность стороны B. Корневой сертификат находится, но во флаге сидит значение CERT_STORE_SIGNATURE_FLAG. Оба сертификата подписаны одним и тем же подписчиком и его сертификат конечно же установлен.

Помогите чем можете :) Подскажите что может быть не так...
Offline Timur R. Vildanov  
#2 Оставлено : 21 июля 2008 г. 22:36:59(UTC)
Timur R. Vildanov

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

Группы: Участники
Зарегистрирован: 21.07.2008(UTC)
Сообщений: 6
Откуда: Россия, Ханты-Мансийск

Ну что'ж. Получить ОК из отсылаемого сертификата на принимаемой стороне не получилось. Пришлось экспортировать ОК на хозяйской стороне в BLOB, отправлять отдельно от сертификата и на той стороне он прекрасно импортировался в контекст. Всем спасибо. :)
Offline Максим Коллегин  
#3 Оставлено : 22 июля 2008 г. 2:32:17(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 37 раз
Поблагодарили: 715 раз в 620 постах
Так все сумбурно - неужели функция CryptImportPublicKeyInfo не работает? А почему тип 71? Эти ключи уже запрещено использовать. И зачем хранилища?
Знания в базе знаний, поддержка в техподдержке
Offline Timur R. Vildanov  
#4 Оставлено : 22 июля 2008 г. 15:01:17(UTC)
Timur R. Vildanov

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

Группы: Участники
Зарегистрирован: 21.07.2008(UTC)
Сообщений: 6
Откуда: Россия, Ханты-Мансийск

Да, CryptImportPublicKeyInfo не хочет работать с полученным сертификатом. С созданием временного хранилища для передачи это я намудрил конечно. Теперь просто передаю encoded данные из контекста сертификата и позже CertCreateContext воссоздаю, но иvпорт ОК все равно не производится. Только из переданного отдельно PCERT_PUBLIC_KEY_INFO выдранного ранее из передаваемого сертификата.
С 75 типом тоже такая же ерунда.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.