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

Уведомление

Icon
Error

3 Страницы<123>
Опции
К последнему сообщению К первому непрочитанному
Offline two_oceans  
#11 Оставлено : 9 октября 2018 г. 12:39:33(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
1. Непонятно как сертификат видно в панели - в панели показываются в первую очередь контейнеры, не сертификаты. А уже потом можно посмотреть сертификаты в выбранном контейнере. Если в контейнер не ставили сертификат, то ошибка просмотра сертификатов в контейнере удивления не вызывает.
Интереснее видимость ссылки в хранилище - без вызова CryptSetKeyParam в хранилище "Личные" у сертификата есть ссылка на закрытый ключ (шага 4 достаточно?) или в хранилище добавляется только сертификат без ссылки? Если со ссылкой, то возможно ли получив pCertContext из хранилища и получив hProv через AcquireCertificatePrivateKey что-то подписать для проверки правильности установки ссылки?

2. Похоже на то, что данные блоба не проходят какую-то проверку. Из справки Майкрософт:
Цитата:
KP_CERTIFICATE
pbData is the address of a buffer that contains the X.509 certificate that has been encoded by using Distinguished Encoding Rules (DER). The public key in the certificate must match the corresponding signature or exchange key.
Выходит, что pCertContext->pbCertEncoded как раз подходит. Вопросы: получение параметра KP_CERTIFICATE случайно не выполнится успешно вместо шага 7? А то может быть сертификат для ключа уже есть в этот момент и ошибка из-за невозможности его перезаписать? Или на удивление ключ на самом деле не AT_KEYEXCHANGE, а AT_SIGNATURE (хотя тогда странно что шаг 6 отработал без ошибок)?
Offline Андрей Писарев  
#12 Оставлено : 9 октября 2018 г. 12:50:59(UTC)
Андрей *

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

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

Сказал «Спасибо»: 495 раз
Поблагодарили: 2035 раз в 1579 постах
two_oceans,
по 1. - Сервис\Протестировать\По сертификату - диалог с установленными сертификатами
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
two_oceans оставлено 09.10.2018(UTC)
Offline Андрей Писарев  
#13 Оставлено : 9 октября 2018 г. 12:53:49(UTC)
Андрей *

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

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

Сказал «Спасибо»: 495 раз
Поблагодарили: 2035 раз в 1579 постах
Автор: NKNikolai Перейти к цитате
UPD: пока состояние такое:

1.) Похоже, что с загруженным в pCertContext сертификатом все в порядке - если добавлять pCertContext или pExtCertCtx через CertAddCertificateContextToStore без вызова CryptSetKeyParam,
то он виден в панели CryptoPro CSP (но найти его через контейнер с приватным ключом нельзя - ошибка 'в контейнере закрытого ключа отсутствуют сертификаты').
Через openssl свойства также просматриваются.


Что мешает после автопоиска установить и записать сертификат в контейнер,а запомнив имя контейнера - найти его при тестировании, аналогично - обработное - протестировать по сертификату - находит этот контейнер и без ошибок тест?
Техническую поддержку оказываем тут
Наша база знаний
Offline Максим Коллегин  
#14 Оставлено : 9 октября 2018 г. 20:17:23(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 704 раз в 613 постах
Почти уверен, что сертификат не соответсвует ключу.
Сравните CertComparePublicKeyInfo из контекста сертификата и из контейнера CryptExportPublicKeyInfo.
Знания в базе знаний, поддержка в техподдержке
thanks 1 пользователь поблагодарил Максим Коллегин за этот пост.
two_oceans оставлено 10.10.2018(UTC)
Offline two_oceans  
#15 Оставлено : 10 октября 2018 г. 11:38:55(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Автор: Максим Коллегин Перейти к цитате
Почти уверен, что сертификат не соответсвует ключу.
Сравните CertComparePublicKeyInfo из контекста сертификата и из контейнера CryptExportPublicKeyInfo.
То есть при установке ссылки на контейнер в контекст сертификата ссылка никак не проверяется на соответствие сертификату?

Offline Максим Коллегин  
#16 Оставлено : 10 октября 2018 г. 14:48:36(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 704 раз в 613 постах
Да, ссылка никак не проверяется и не интерпретируется и может быть любой. Это просто строка.
Знания в базе знаний, поддержка в техподдержке
Offline AlexEr81  
#17 Оставлено : 16 октября 2018 г. 15:12:03(UTC)
AlexEr81

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

Группы: Участники
Зарегистрирован: 09.11.2012(UTC)
Сообщений: 65
Откуда: Ростовская область

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
CryptSetKeyParam( KP_CERTIFICATE ) устанавливает сертификат в контейнер, а как его оттуда удалить?
Offline two_oceans  
#18 Оставлено : 17 октября 2018 г. 5:05:18(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Уже спрашивали подобный вопрос, правда давненько - удаление сертификата из контейнера формата криптопро принципиально не предусмотрено. Замена на другой сертификат тоже невозможна.

Вручную можно экспортировать сертификат и закрытый ключ из хранилища в формат p12/pfx, потом импортировать обратно. При импорте запускается мастер создания нового контейнера криптопро (запрашивается пин-код и место хранения, имя контейнера автоматически генерируется = GUID), причем сертификат в новый контейнер не ставится, то есть экспортом-импортом создается копия исходного контейнера, но без сертификата, что приближенно к удалению сертификата, но дает случайное имя нового контейнера.

Как эти операции реализуются программно - в подробностях я не разбирался, в любом случае вывод мастера импорта убивает саму задумку об автоматизации операций. Еще могу сказать, что утилита p12utility (p12tocp) не может сконвертировать такой экспортированный из криптопро файл в контейнер криптопро напрямую, то есть идея указать для нового контейнера имя контейнера, место хранения и пин-код в параметрах командной строки утилиты тоже обламывается.
Offline Максим Коллегин  
#19 Оставлено : 17 октября 2018 г. 14:42:40(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 704 раз в 613 постах
Скоро в certmgr появится возможность указать контейнер назначения, а удаление сертификата - да, в API невозможно, ровно как и удаление секретного ключа из контейнера.
Знания в базе знаний, поддержка в техподдержке
Offline two_oceans  
#20 Оставлено : 22 октября 2018 г. 6:48:23(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Цитата:
Скоро в certmgr появится возможность указать контейнер назначения
Очень интересная информация, спасибо.
Цитата:
, а удаление сертификата - да, в API невозможно, ровно как и удаление секретного ключа из контейнера
Удаление секретного ключа из контейнера наверно и не нужно, нет необходимости по смыслу для одного сертификата держать разные ключи. А вот для одного секретного ключа могут быть выпущены несколько сертификатов, хорошо бы иметь потенциальную возможность их удалить. Впрочем, копирование без сертификата плюс возможность указать имя создаваемого контейнера программно наверно даже лучше подойдет.

А почему так подчеркнуто про удаление сертификата - "в API невозможно", то есть возможно удалить сертификат каким-то иным способом кроме создания копии контейнера?

Отредактировано пользователем 22 октября 2018 г. 6:51:20(UTC)  | Причина: Не указана

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