| ||||
| ||||
Уважаемые гуру безопасности, подходит ли CAPICOM для шифрования с открытым ключом, используя CryptoPro? Если да, то можно ли найти примеры? Заранее благодарю | ||||
Ответы: | ||||
| ||||
На нашем сайте http://www.cryptopro.ru/CryptoPro/capicom.html есть ссылка на страницу Микрософт, где лежит CAPICOM. В состав дистрибутива входят примеры использования. Для шифрования нужно пользовать метод Enveloped. Метод Encrypted работать с ГОСТом не будет, т.к. шифруется на пароле, алгоритмы шифрования перечисленны. Eveloped аналогичен CryptEncryptMessage из CryptoAPI и на выходе формирует формат PKCS#7 Enveloped. | ||||
| ||||
Автор предыдущего ответа забыл уточнить, что метод ЕnvelopedData.Encrypt так-же как и ЕncryptedData.Encrypt для симметричного шифрования может использовать только небольшой набор алгоритмов ( RC2, RC4, DES, 3DES ) т.е. шифровать при помощи ГОСТ 28147 не удасться :(( | ||||
| ||||
Enveloped с ГОСТом работает. Алгоритм определяется автоматически по алгоритмам открытых ключей получателей. Не будет работать если у получателей разные сертификаты (RSA и ГОСТ). | ||||
| ||||
Дело в том, что следует различать два вида алгоритмов - с открытым ключом и симметричное шифрование. Так вот, что делает метод EnvelopedData.Encrypt (кратко), он случайным образом генерит симметричный ключ для одного из алгоритмов ( перечисленны выше, определяються свойством Algorithm объекта EnvelopedData ). Шифрует на нём данные. Затем берёт список сертификатов получателей, на основе его ( обычно первого ) получает контекст провайдера, затем шифрует симметричный ключ при помощи алгоритмов и открытых ключей из сертификатов получателей, и добавляет зашифрованные ключи к сообщению. Здесь две проблема: 1) - как уже было сказано, в качестве симметричных алгоритмов ГОСТ 28147 не может быть использован ( особенность CAPICOM ), таким образом на основе CAPICOM _нельзя_ построить систему удовлентворяющюю требованиям ФАПСИ. 2) ( не только для CAPICOM, верно и для CryptoAPI ) Как уже было сказоно, если у получателей разные сертификаты, т.е. в них указаны различные алгоритмы с открытым ключом ( например ГОСТ 34.10 и RSA ) то зашифровать сообщение для таких получателей не удасться - это уже проблема CryptoPro, т.к. её создатели по неизвестным причинам ( алгоритм RSA - давно открытый ) не посчитали нужным включить поддержку RSA в своего криптопровайдера. | ||||
| ||||
По поводу второго полностью с Вами согласен. Нельзя использовать при шифровании одновременно ГОСТ и RSA, так как в интерфейсах CryptoAPI нет такой возможности. Говорить, можно или нет использовать КритпоПро CSP с CAPICOM и CryptoAPI по моему безсмысленно. Пробовали? | ||||
| ||||
ГОСТ 28147 и CryptoPro CSP - это две разные веши :)) Первое - один из алгоритмов симметричного шифрования, сертифицированный ФАПСИ, и поддерживаетмый CryptoPro, но как уже было сказоно, CAPICOM _не позволяет_ его использовать, алгоритмы которые он позволяет использовать ( RC2, RC4, DES, 3DES ) _не сертифицированы_ ФАПСИ, таким образом, сообщение зашифрованное CAPICOM, пусть даже с использованием ГОСТ 34.10 _не является защищённым_ с точки зрения ФАПСИ, и не может быть использовано в системе электронного документооборота. Второе - это криптопровайдер реализующий определённые криптоалгоритмы ( например семейство ГОСТ-89 ), _CAPICOM с ним работает_, но использует только алгоритмы c открытым ключом и алгоритмы хеширования. Повторюсь, множестово алгоритмов симметричного шифрования, которые он может использовать _не включает_ ГОСТ 28147. | ||||
| ||||
Полностью с вами согласен ГОСТ 28147 и CryptoPro CSP - это две разные веши. И попробую еще подробнее объяснить. CryptoPro CSP это реализация CSP, в котором используются алгоритмы: 34.10-94 (2001) для подписи 34.11-94 для хеширования 28147-89 для симметричного шифрования и алгоритм Диффи Хелмана для экспорта симметричных ключей. Теперь утверждение (только не говорите, что это не работает до тех пор пока не попробуете): CryptoPro CSP можно использовать с CAPICOM для шифрования данных. При этом формируется симметричных ключ для 28147-89. Этим ключом по 28147-89 шифруется сообщение. Этот ключа для каждого получателя экспортируется по алгоритму DH. | ||||
| ||||
" Теперь утверждение (только не говорите, что это не работает до тех пор пока не попробуете): CryptoPro CSP можно использовать с CAPICOM для шифрования данных. При этом формируется симметричных ключ для 28147-89. Этим ключом по 28147-89 шифруется сообщение. Этот ключа для каждого получателя экспортируется по алгоритму DH. " Можно ли увидеть официальное подтверждение этих слов? | ||||
| ||||
Да действильно, приношу свои извинения, Меня ввели в заблуждение MSDN и результат метода CAPICOM EnvelopedData.Algorothm.Name ( судя по всему, если желаемый алгоритм (свойство Algorothm) не доступен, используется симметричный алгоритм CSP, установленный по умолчанию - в нашем случае это ГОСТ 28147 ) | ||||