08.07.2004 11:10:10Private key в сертификате Ответов: 14
Demiurg
Задача: необходимо осуществлять передачу данных в шифрованном виде. Можно ли каким-то образом выковорить из сертификата его закрытый ключ (с открытым проблем нет) и использовать эту ключевую пару для шифрования асимметричным алгоритмом (тем же RSA).
Есть электронный USB ключ eToken (версия R2) с действующим сертификатом. Приходит значит человечек, вставляет ключик, прога берет из него (из сертификата) закрытый ключ и расшифровывает необходимый текст. Схема такая.

Резюме: так можно (если да, то как) получить ДОСТУП к закрытому ключу сертификата.

Заранее благодарен.
 
Ответы:
08.07.2004 12:52:14SiM
Сертификат содержит ТОЛЬКО открытый ключ (читайте стандарты)
08.07.2004 14:24:08Demiurg
Сертификат СОДЕРЖИТ закрытый ключ ("Есть закрытый ключ, соответствующий этому сертификату"). Раз есть ключ, вроде должен быть и доступ...
12.07.2004 9:36:46kure
Дейтвительно в сертификате нет закрытого ключа. Соответсвует это не значит содержит.
Другое дело, когда вы ведете речь о ключевом носителе (том же eToken). Он как раз предназначен чтобы хранить закрытый ключ и сертификат.
12.07.2004 10:43:01Demiurg
Начальство хотело воспользоваться уже существующим ключом, который по идее должен был лежать в сертификате.
И если сертификат ключ все-таки не содержит, то зачем в CryptoApi существует функция CryptAcquireCertificatePrivateKey
12.07.2004 10:47:40kure
Еще раз.
Сертификат не содержит ключа.
Спавочник сертификатов может хранить как сертификаты, так и вместе с каждым из сертификатов, дополнительную информацию (атрибут). Одним из таких атрибутов является ссылка на закрытый ключ. Она содержит имя криптопровайдера, который использовался для создания закрытого ключа и имя ключа (ключевого контейнера). Когда вызывается функция, о которой вы говорите, используется эта ссылка, инициализируется криптопровайдер и читается ключ.
12.07.2004 12:05:48Demiurg
Спасибо большое за разъяснения.
И все-таки проблема остается.
Есть сервер сертификатов, который собственно эти сертификаты выдает. Можно ли сделать, чтобы к этим сертификатам цеплялись ключевые контейнеры (key containers) с парой открытый/закрытый ключ.
Сертификат вместе с контейнером кладется на USB электронный ключ (тот же eToken). Ключ вставляется, програ хавает из него закрытый ключ и расшифровывает информацию, т.е. расшифровать информацию может только владелец USB брелка.
12.07.2004 12:18:01kure
А чем проблема?
Вы рассказали, как вам нужно сделать. Нормальная схема.
12.07.2004 12:36:06Demiurg
Схема то нормальная, но КАК это сделать?
Нужен конкретный механизм реализации способа подключения ключевого контейнера к сертификату. В идеале - подробная инструкция с примерами, но буду благодарен просто за ссылку по теме. Только чтобы тема соответствовала...
Я просто первый раз с проблемой шифрования столкнулся, по работе понадобилось, так что очень мало во всем этой пока что понимаю...
12.07.2004 12:45:44kure
Вы собираетесь программировать или использовать готовые решения?
12.07.2004 13:03:16Demiurg
Лично я бы сам все программировал, но начальство хотело бы использовать готовое решение (само шифрование предполагается осуществлять средствами CryptoApi и/или CAPICOM)
12.07.2004 14:03:05Василий
Есть готовое решение - наша разработка "Приложение командной строки"
http://www.cryptopro.ru/CryptoPro/products/command.asp
Оно позволяет осуществлять ЭЦП и шифрование на сертификатах, которые берутся из хранилища сертификатов компьютера или из файлов сертификатов.

Есть наш пример (с исходниками) реализации ЭЦП и шифрования с помощью CryptoAPI - http://www.cryptopro.ru/CryptoPro/test/sample2_0.zip
12.07.2004 17:11:14Demiurg
Спасибо, пример скачал. Осталось самое простое. Поставить C# и разобраться как все это дело работает. Кстати, а хелпа к проге из примера нет?
14.07.2004 15:27:26Demiurg
Не знаю, наверное ущи у меня холодные... Скачал с вашего сайта КриптоПро 2.0, установил, никаких ярлыков нигде не появилось. Хелп не работает, запускается, но просит какой-то ключ. Исполняемые файлы из папку, в которую установил КриптоПро, запускаются, висят в списке процессов и всё. Что делать?
14.07.2004 16:25:57Василий
После установки нашего CSP иконка "КриптоПро CSP" появляется в Панели управления.
При перезагрузке криптопровайдер стартует автоматически.
Я не совсем понял - что Вы понимаете под словом "хелп"?
Много документации есть на http://www.cryptopro.ru/CryptoPro/products/documentation.asp