openssl по сравнению с окнами capi

Который лучше для использования openssl или окон capi для проблем шифрования, что является списком за и против для обоих. и если это возможный записать мою программу утройства шифрования на openssl и дешифровать его с окнами capi без проблемы или существует некоторая проблема с этим.

6
задан oren 12 March 2010 в 10:43
поделиться

1 ответ

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

CryptoAPI предлагает API для доступа к ключам, которые хранятся в произвольных местах, через драйвер («CSP»), зарегистрированный в операционной системе. OpenSSL может предложить нечто подобное с помощью OpenSC , но тогда драйвер должен поддерживать API PKCS # 11. В любом случае драйвер представляет собой своего рода DLL, предоставленную тем, кто построил устройство хранения (при условии, что ключ хранится и используется в аппаратном устройстве).

Если вы хотите иметь возможность использовать ключи, хранящиеся на аппаратных устройствах (где устройством может быть смарт-карта, HSM, ... все, что может выполнять некоторые криптографические операции, но откажется предоставить сам ключ), тогда у вас будет пройти через CryptoAPI или PKCS # 11. CryptoAPI по своей природе предназначен только для Windows, поэтому PKCS # 11 - это то, что вам нужно, если вы хотите, чтобы ваш код потенциально работал в системах, отличных от Windows (MacOS, Linux, Solaris ...). Если вы пойдете по пути PKCS # 11, вы можете попробовать NSS вместо OpenSSL. NSS - это библиотека, используемая в браузере, производном от Netscape (например, Firefox). Это открытый исходный код.

С другой стороны, если вы нацеливаетесь только на системы Windows, CryptoAPI упрощает распространение, поскольку он уже существует, и нет необходимости в дополнительной DLL.

Если вы готовы отказаться от оборудования и хотите использовать только программную криптографию с ключами, хранящимися в ОЗУ, то вам, вероятно, не захочется использовать CryptoAPI, который довольно слаб по количеству реализуемых алгоритмов и вариаций. он принимает (например, CryptoAPI настаивает на том, чтобы открытые экспоненты RSA были меньше 32 бит - это нормальный случай, но ограничение по-прежнему является произвольным и потенциально утомительным). Есть много криптографических библиотек; Помимо OpenSSL и NSS, вы можете изучить Crypto ++ , который является достаточно зрелым и предположительно дружественным к C ++.

9
ответ дан 10 December 2019 в 02:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: