Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.10.2008(UTC) Сообщений: 70
|
Я подписываю сертификат ключом ЦС алгоритмом, который написал чуть выше. Он правильный или нет? Просто для меня это самый ключевой вопрос на данный момент. В makecert.с я нашел только примерно вот что:
1) ищется в хранилище корневой сертификат ЦС. 2) из него берутся параметры issure и тип криптопровайдера. 3) новый сертификат создается при помощи полученного в пункте 2 криптопровайдера
Но в этом примере нет упоминания о секретном ключе ЦС, поэтому я посчитал, что это мне не подходит.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:2) из него берутся параметры issure и тип криптопровайдера. не только тип, но еще и контейнер с секретным ключем - он возвращается в параметре hProv. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.10.2008(UTC) Сообщений: 70
|
То есть получается, что если я сам создам криптопровайдер (предположим, что параметры его всегда используются одинаковые), импортирую туда секретный ключ, то это будет тоже самое?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Для подписи - да. Для проверки - нет. Для проверки подписи в окне сертификата используется сертификат ЦС из хранилища. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.10.2008(UTC) Сообщений: 70
|
Я уже голову сломал. Не пойму, что не так. По-прежнему пишет, что сертификат содержит не действительную цифровую подпись. Может есть какие-нибудь нюансы. Делаю по прежнему алгоритиму 1) Создать провайдер1 и сгенерировать с его помощью пару ключей. Открытый ключ отдать в структуру CERT_INFO. 2) Создать "временный" провайдер2 и загрузить в него с помощью CryptImportKey секретный ключ центра сертификации. 3) Вызвать CryptSignAndEncodeCertificate для провайдер2. Таким образом у нас должен получиться сертификат с сгенерированным открытым и подписанный при помощи секретного ключа центра сертификации. Секретный ключ ЦС я проверял - в провайдер2 загружаю именно его. Сбился с ног P.S. А вот еще вопрос в пункте 2) я загружаю секретный ключ в провайдер, а нужно ли еще передавать ему открытый, или он сам сгенерирует? Отредактировано пользователем 6 ноября 2008 г. 23:44:45(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:По-прежнему пишет, что сертификат содержит не действительную цифровую подпись. Может есть какие-нибудь нюансы. а откуда можно взять открытый ключ, чтобы эту подпись проверить? Цитата:P.S. А вот еще вопрос в пункте 2) я загружаю секретный ключ в провайдер, а нужно ли еще передавать ему открытый, или он сам сгенерирует? да, по секретному ключу можно получить открытый. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.10.2008(UTC) Сообщений: 70
|
Цитата:а откуда можно взять открытый ключ, чтобы эту подпись проверить?
Прошу прощения, не совсем понял. Это вопрос? Я так понимаю, что windows сам берет открытый ключ из корневого сертификата (ведь цепочка у меня построена и во вкладке "Путь сертификации "отображается дерево) и проверяет им подпись на созданном только что сертификате.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
В построенной цепочке сертификат ЦС именно тот которым подписывали? Можно его подпись проверить ключем из 2) с помощью CryptVerifyCertificateSignature? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.10.2008(UTC) Сообщений: 70
|
Цитата:В построенной цепочке сертификат ЦС именно тот которым подписывали?
Не совсем понял. В построенной цепочке лежит тот сертификат, открытый ключ которого соответствует закрытому, которым я подписываю новый созданный сертификат для пользователя. Цитата:Можно его подпись проверить ключем из 2) с помощью CryptVerifyCertificateSignature?
Спасибо, попробую
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.10.2008(UTC) Сообщений: 70
|
Я проверил созданный сертификат открытым ключом, созданной пары (CryptVerifyCertificateSignature вернуло ошибку с описанием "Неверная подпись") Мне кажется, что я все-таки что то делаю не так. Я создаю пару для hProv. Загружаю в hProvCA закрытый ключ. В CERT_INFO передаю public_key от hProv. И создаю сертификат с hProvCA . Что то тут не так. Отредактировано пользователем 14 ноября 2008 г. 14:57:25(UTC)
| Причина: Не указана
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close