代码之家  ›  专栏  ›  技术社区  ›  Kladskull

如何在我的设备上编写PKCS#11包装?

  •  0
  • Kladskull  · 技术社区  · 5 年前

    我做了一个非常基本的软件HSM——只用于个人学习目的。我想给它添加一个PKCS#11接口。我在哪里可以了解到这一点,或者可能找到一些已经为学习编写的开源软件?

    我意识到这可能只是因为提出了这个问题(安全性差等),但我想确保它严格用于学习目的。

    0 回复  |  直到 5 年前
        1
  •  3
  •   jariq    5 年前

    你首先需要熟悉PKCS#11规范。我已经创建了git存储库 PKCS11-SPECS 所有版本都放在一个地方。我个人认为PKCSα11 V2。20是最后一个“可用”版本,因为在以后的版本中,作者删除了对开发可互操作PKCS#11库(会话生存期等)的任何人来说至关重要的重要部分。我警告过他们不要拆下那些部件,但他们似乎并不在意。所以IMO PKCS#11 v2。20是你最好的选择,除非你需要使用v2中没有的其他闪亮的新算法。20

    你可能会发现我的另一个有用的项目是 EMPTY-PKCS11 .它是实现PKCS#11 v2的简约C库。以最简单的方式提供20个API-所有PKCS#11函数 C_GetFunctionList 函数返回 CKR_FUNCTION_NOT_SUPPORTED 返回值。它已经在多个桌面和移动平台上进行了测试,因此可以用作便携式PKCS#11库开发的轻量级框架。

    之后你还可以看看 PKCS11-MOCK 这是另一个极简的PKCS#11 v2。20.图书馆。它不是一个真正的加密模块,只是一个虚拟的模拟对象,专门为我的一些其他项目的单元测试而设计。

    我希望这些项目能成为你学习过程中坚实的起点。

    推荐文章