02.08.2006 7:21:28Генерация открытого и закрытого ключей Ответов: 5
Александр
Описываю ситуацию: распределённое приложение, 1 сервер, N-клиентов. Приложение работает в режиме - "запрос-ответ" (клиент делает запрос, сервер отвечает).

Платформа: .NET 2.0

Для организации доверительного взаимодействия клиента с сервером и наоборот использую ЭЦП, то есть подписываю само сообщение (SignedCms). Для подписи использую сертификаты (закрытый ключ лежит на клиенте, открытый на сервере для запроса - "клиент -> сервер").

Сертификаты (закрытый и открытый ключи) генерю с помощью утилит: makecert, cer2spc, pvkimport. На выходе у меня 2 файла: public.cer, private.pfx.

Устанавливаю их программно (используюу возможности .NET 2.0)

Всё хорошо работает. Всё устанавливается, подписывается, верифицируется и т.д.

ОДНО "НО"!!!
НЕ МОГУ СГЕНЕРИРОВАТЬ СЕРТИФИКАТЫ (ЗАКРЫТЫЙ И ОТКРЫТЫЙ КЛЮЧИ) В АВТОМАТИЗИРОВАННОМ РЕЖИМЕ (программно, по запросу). Только использую вышеперечисленные утилиты (makecert, и т.д.)

Вопрос:
1. Можно ли это автоматизировать? Если да, то каким образом?

2. Ваш продукт КриптоПро CSP 3.0 - умеет это делать автоматизировано? Если да, то можете привети пример описания, или пример вызовов функций?
 
Ответы:
02.08.2006 17:54:45Kirill Sobolev
1) Можно. Если поставите службу MS CA, то сможете получать сертификаты через COM API, который она предоставляет (класс CCertRequest).
2) Нет, криптопровайдер реализует совершенно другую функциональность, сертификаты он не создает.
03.08.2006 11:48:53Александр
Спасибо за ответ.

Тогда есть ещё 1 вопрос, на который я ищу ответ, но пока не могу найти ответ.

Говорят, что если в программном комплексе используется шифрование или ЭЦП, то по требованиям ФАПСИ необходимо и ОБЯЗАТЕЛЬНО использование, например, продукта КриптоПро.

Вопросы:
1. Так ли это?
2. Если да, то можно увидеть ссылки на соответствющие нормативные акты?

Сразу скажу, что наша система не занимается хранением данных государственной важности.
03.08.2006 14:39:42fav
Видимо вопрос об использовании сертифицированных и несертифицированных средств.
Ознакомтесь с документом: Положение о разработке, производстве, реализации и ЭКСПЛУАТАЦИИ шифровальных (крипографических) средств защиты информации (ПКЗ-2005). В Гаранте либо Консультатнте вы его без труда найдете. Для коммерческих организаций (для тех, которые не попадают под требования данного положения) он носит рекомендательный характер. Однако, надо принимать во внимание и ряд других федеральных законов и ведомственных нормативных актов регламентирующих обмен информацией в той или иной информационной системе. Например, вы планируете использовать ЭЦП для юридически значимого документооборота (а не только для подтверждения целостности и авторства передаваемых сообщений), согласно ФЗ "Об ЭЦП" подтверждение подлинности ЭЦП осуществляется с использованием сертифицированного средства ЭЦП (КриптоПро как раз такое средство и есть).
03.08.2006 19:48:35Александр
В предыдущем посте Вы написали, что автоматизировано сертификаты можно получать черех класс CCertRequest.

Приведите, пожалуйста, пример использования этого класса для генерации 1 сертификата с private-ключем. Всё что я находил в интернете, не работоспособно, и информации по этому поводу очень мало.

Что требуется для того, чтобы настроить службу MS CA?

Заранее благодарю.
04.08.2006 14:22:10Kirill Sobolev
Сертификат не содержит секретный ключ, секретный ключ обычно генерится там же где и запрос на сертификат.
Примеры есть здесь
http://msdn.microsoft.com/library/en-us/seccrypto/security/icertrequest.asp?frame=true
http://msdn.microsoft.com/library/en-us/seccrypto/security/icertrequest2.asp?frame=true
Для того чтобы настроить MS CA нужен 2000/2003 сервер - служба в них входит, ставится через установку компонент Windows.