21.11.2002 18:57:29CAPICOM и CryptoPro Ответов: 9
Александр
Уважаемые гуру безопасности,
подходит ли CAPICOM для шифрования с открытым ключом, используя CryptoPro?
Если да, то можно ли найти примеры?

Заранее благодарю
 
Ответы:
21.11.2002 19:26:14kure
На нашем сайте http://www.cryptopro.ru/CryptoPro/capicom.html есть ссылка на страницу Микрософт, где лежит CAPICOM. В состав дистрибутива входят примеры использования.
Для шифрования нужно пользовать метод Enveloped. Метод Encrypted работать с ГОСТом не будет, т.к. шифруется на пароле, алгоритмы шифрования перечисленны. Eveloped аналогичен CryptEncryptMessage из CryptoAPI и на выходе формирует формат PKCS#7 Enveloped.
24.11.2002 18:23:29Vsevolod V. Burkutsky
Автор предыдущего ответа забыл уточнить, что метод ЕnvelopedData.Encrypt так-же как и ЕncryptedData.Encrypt для симметричного шифрования может использовать только небольшой набор алгоритмов ( RC2, RC4, DES, 3DES ) т.е. шифровать при помощи ГОСТ 28147 не удасться :((
25.11.2002 10:02:06kure
Enveloped с ГОСТом работает. Алгоритм определяется автоматически по алгоритмам открытых ключей получателей.
Не будет работать если у получателей разные сертификаты (RSA и ГОСТ).
25.11.2002 17:40:05Vsevolod V. Burkutsky
Дело в том, что следует различать два вида алгоритмов - с открытым ключом и симметричное шифрование. Так вот, что делает метод EnvelopedData.Encrypt (кратко), он случайным образом генерит симметричный ключ для одного из алгоритмов ( перечисленны выше, определяються свойством Algorithm объекта EnvelopedData ). Шифрует на нём данные. Затем берёт список сертификатов получателей, на основе его ( обычно первого ) получает контекст провайдера, затем шифрует симметричный ключ при помощи алгоритмов и открытых ключей из сертификатов получателей, и добавляет зашифрованные ключи к сообщению. Здесь две проблема:
1) - как уже было сказано, в качестве симметричных алгоритмов ГОСТ 28147 не может быть использован ( особенность CAPICOM ), таким образом на основе CAPICOM _нельзя_ построить систему удовлентворяющюю требованиям ФАПСИ.
2) ( не только для CAPICOM, верно и для CryptoAPI ) Как уже было сказоно, если у получателей разные сертификаты, т.е. в них указаны различные алгоритмы с открытым ключом ( например ГОСТ 34.10 и RSA ) то зашифровать сообщение для таких получателей не удасться - это уже проблема CryptoPro, т.к. её создатели по неизвестным причинам ( алгоритм RSA - давно открытый ) не посчитали нужным включить поддержку RSA в своего криптопровайдера.
25.11.2002 18:13:00kure
По поводу второго полностью с Вами согласен. Нельзя использовать при шифровании одновременно ГОСТ и RSA, так как в интерфейсах CryptoAPI нет такой возможности.

Говорить, можно или нет использовать КритпоПро CSP с CAPICOM и CryptoAPI по моему безсмысленно.
Пробовали?




25.11.2002 18:40:45Vsevolod V. Burkutsky
ГОСТ 28147 и CryptoPro CSP - это две разные веши :)) Первое - один из алгоритмов симметричного шифрования, сертифицированный ФАПСИ, и поддерживаетмый CryptoPro, но как уже было сказоно, CAPICOM _не позволяет_ его использовать, алгоритмы которые он позволяет использовать ( RC2, RC4, DES, 3DES ) _не сертифицированы_ ФАПСИ, таким образом, сообщение зашифрованное CAPICOM, пусть даже с использованием ГОСТ 34.10 _не является защищённым_ с точки зрения ФАПСИ, и не может быть использовано в системе электронного документооборота. Второе - это криптопровайдер реализующий определённые криптоалгоритмы ( например семейство ГОСТ-89 ), _CAPICOM с ним работает_, но использует только алгоритмы c открытым ключом и алгоритмы хеширования. Повторюсь, множестово алгоритмов симметричного шифрования, которые он может использовать _не включает_ ГОСТ 28147.
26.11.2002 9:44:34kure
Полностью с вами согласен ГОСТ 28147 и CryptoPro CSP - это две разные веши.
И попробую еще подробнее объяснить.
CryptoPro CSP это реализация CSP, в котором используются алгоритмы:
34.10-94 (2001) для подписи
34.11-94 для хеширования
28147-89 для симметричного шифрования
и алгоритм Диффи Хелмана для экспорта симметричных ключей.

Теперь утверждение (только не говорите, что это не работает до тех пор пока не попробуете):
CryptoPro CSP можно использовать с CAPICOM для шифрования данных. При этом формируется симметричных ключ для 28147-89. Этим ключом по 28147-89 шифруется сообщение. Этот ключа для каждого получателя экспортируется по алгоритму DH.

26.11.2002 17:20:40Alexander
"
Теперь утверждение (только не говорите, что это не работает до тех пор пока не попробуете):
CryptoPro CSP можно использовать с CAPICOM для шифрования данных. При этом формируется симметричных ключ для 28147-89. Этим ключом по 28147-89 шифруется сообщение. Этот ключа для каждого получателя экспортируется по алгоритму DH.
"

Можно ли увидеть официальное подтверждение этих слов?
26.11.2002 17:23:00Vsevolod V. Burkutsky
Да действильно, приношу свои извинения, Меня ввели в заблуждение MSDN и результат метода CAPICOM EnvelopedData.Algorothm.Name ( судя по всему, если желаемый алгоритм (свойство Algorothm) не доступен, используется симметричный алгоритм CSP, установленный по умолчанию - в нашем случае это ГОСТ 28147 )