C 与Linux上的硬件安全模块接口

C 与Linux上的硬件安全模块接口,c,openssl,pkcs#11,hsm,C,Openssl,Pkcs#11,Hsm,我必须使用HSM设备来满足项目中的安全要求。我对HSM如何在Linux机器上与C接口感到困惑 用户如何访问HSM内部内存以执行不同的操作?HSM供应商应该为您提供一个库。您可以使用此库通过PKCS11接口与HSM交互。为此,您需要在项目中使用PKCS11头文件。 请访问此网站以获取简介每个HSM供应商至少支持一个加密API。PKCS11是一个特别常见的选择,但还有许多其他选择。例如,OpenSSL通过一个接口支持HSMs 供应商通常会公开其实现的标准API之外的专有API。专有API通常提供比标

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


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

HSM供应商应该为您提供一个库。您可以使用此库通过PKCS11接口与HSM交互。为此,您需要在项目中使用PKCS11头文件。
请访问此网站以获取简介

每个HSM供应商至少支持一个加密API。PKCS11是一个特别常见的选择,但还有许多其他选择。例如,OpenSSL通过一个接口支持HSMs

供应商通常会公开其实现的标准API之外的专有API。专有API通常提供比标准API更大程度的对密钥安全属性和密钥使用的控制

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

对于您的项目,重要的是不要简单地将HSM放在解决方案中的某个位置以使其看起来安全。相反,请仔细考虑系统的安全属性,以及加密技术如何帮助您抵御攻击。一旦确定了攻击向量和相关的密码防御,那么考虑哪些加密API可以支持用例。只有这样,您才能从支持该API的供应商中选择最佳供应商


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

我知道这已经是一年前的事了,但如果有其他人遇到它,请在此链接进行更详细的讨论:

包括我添加的一些长格式工作代码。您也可以通过以下链接直接获取我的代码:

祝你好运