与Linux上的硬件安全模块连接

Dee*_*rma 4 c openssl pkcs#11 hsm

我必须使用HSM设备来满足项目中的安全要求.我对HSM如何在Linux机器上与C接口感到困惑.

用户如何访问HSM内部存储器以执行不同的操作?

Dun*_*nes 6

每个HSM供应商都支持至少一个加密API.PKCS#11是一个特别常见的选择,但还有许多其他选择.例如,OpenSSL通过引擎接口支持HSM .

除了它实现的"标准"API之外,供应商通常还会公开专有API.专有API通常提供对标准API中可能表达的关键安全属性和密钥使用的更大程度的控制.

使用HSM时,通常会发出命令以从安全存储加载密钥并检索密钥对象的句柄.此句柄是抽象层,允许HSM安全地执行密钥操作,而不会暴露密钥材料.

关于您的项目,重要的是您不要简单地将HSM"推"到解决方案的某个位置,以使其看起来更安全.相反,要仔细思考系统的安全属性以及加密技术如何帮助您抵御攻击.一旦确定了攻击媒介(以及相关的加密防御),就要考虑哪种加密API可以支持您的用例.只有这样,您才能从支持该API的人那里选择最好的供应商.

根据我的经验,标准API仅适用于简单的安全系统.对于复杂项目,几乎总是需要使用特定供应商的专有API.在这种情况下,在确定真正满足您需求的产品之前,在供应商的支持和概念验证方面非常依赖.


小智 2

HSM 供应商应该为您提供一个库。您可以使用此库通过 PKCS#11 接口与 HSM 交互。为此,您的项目中需要 PKCS#11 头文件。查看此网站http://www.calsoftlabs.com/whitepapers/public-key-cryptography.html以获取介绍