繁体   English   中英

openssl与windows capi

[英]openssl versus windows capi

哪个更好的使用openssl或windows capi进行ecnryption问题是什么是两者的pro和con列表。 如果有可能在openssl上编写我的加密程序并使用windows capi解密它没有问题或者存在一些问题。

出于加密目的,我发现首先考虑密钥管理更容易。 存储密钥的方式,密钥的创建方式,使用方式以及如何安全销毁密钥。 根据我的经验,密钥管理是限制大多数应用程序结构的因素。

CryptoAPI提供了一个API,用于通过在操作系统中注册的驱动程序(“CSP”)访问存储在任意位置的密钥。 OpenSSL可以在OpenSC的帮助下提供类似的东西 ,但驱动程序应该支持PKCS#11 API。 无论哪种方式,驱动程序都是由构建存储设备的任何人提供的某种DLL(假设密钥是在硬件设备中存储和使用的)。

如果你想能够使用存储在硬件设备中的密钥(设备可能是智能卡,HSM,......任何可以进行加密但会拒绝自己提供密钥的东西)那么你将不得不经历CryptoAPI或PKCS#11。 CryptoAPI本质上只是Windows,因此如果您希望代码可以在非Windows系统(MacOS,Linux,Solaris ......)上运行,那么PKCS#11就是您的选择。 如果你采用PKCS#11方式,你可能想尝试NSS而不是OpenSSL。 NSS是Netscape派生的浏览器(例如Firefox)中使用的库。 它是开源的。

另一方面,如果您只定位Windows系统,那么CryptoAPI可以简化分发,因为它已经存在,不需要额外的DLL。

如果您准备放弃硬件,并且想要使用仅使用软件的加密技术,并将密钥保存在RAM中,那么您可能不会想要使用CryptoAPI,它在实现的算法数量和它接受的变化方面相当不足(例如,CryptoAPI坚持RSA公共指数小于32位 - 这是正常情况,但限制仍然是任意的,可能是令人讨厌的)。 那里有许多加密库; 除了OpenSSL和NSS之外,您可能想要研究Crypto ++ ,它非常成熟并且可以说是C ++友好的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM