首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >希望将加密文件存储在PKCS#11兼容的硬件令牌上

希望将加密文件存储在PKCS#11兼容的硬件令牌上
EN

Stack Overflow用户
提问于 2014-05-22 23:35:34
回答 2查看 1.4K关注 0票数 2

我的C# .NET4程序一直将数据存储在常规.NET4文件系统上的加密文件中,我们的一位客户要求我们将该程序与PKCS#11令牌(此后称为“令牌”)集成。经过一番研究,我发现了NCryptoki,我相信这将在我的程序和一个兼容的令牌之间提供必要的接口。

我有几个问题,我似乎找不到答案,我希望这里的经验丰富的人能帮助我。总的来说,我对PKCS#11和密码学原理还是很陌生的,所以这些问题中的一些看起来有点幼稚。

  1. 我的理论是,令牌可以插入到计算机中,并且使用实现NCryptoki库的程序中的方法,加密的文件可以直接保存到计算机上。这些文件只能通过我的程序中的向导访问。只要令牌有空间,我应该能够继续在驱动器上保存文件。这一切都是对的吗?
  2. 我在令牌上至少需要64K内存,并且令牌必须是FIPS 140-2级别2的最小值,最好是级别3。我已经看过并且只看到了SafeNet iKey 4000。我知道必须有更多的兼容PKCS#11的令牌,它们至少有64K的存储空间。我花了几个小时通过FIPS 140-1/2验证的密码模块寻找USB存储PKCS#11令牌,但没有多少运气。有没有人知道还有其他公司卖我要找的东西?这可能是USB设备,甚至是智能卡。我们希望能够为客户提供多种选择。
  3. 在此之前,有没有人有过这种实现的经验,可以为我提供一些“经验教训”或一些需要注意的东西?

此外,如果这不是正确的地方放置这个,请让我知道在哪里重新发布。我感谢所有的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-23 05:48:03

虽然PKCS#11支持在设备上存储应用程序数据,但是设备本身(我现在说的是USB密码令牌和智能卡)是为了不同的目的而设计的。特别是,它们被设计用来保存小块秘密或敏感数据。它们不是数据存储。一些供应商提供混合令牌,其中USB加密令牌与闪存盘相结合。但即使在这种情况下,在一种情况下,这也是两种设备。

可以以下列方式修改您的方案,以便您:

  1. 生成会话密钥(可能就在设备上)
  2. 使用此密钥加密敏感数据。
  3. 将加密数据存储在其他地方(例如,在混合设备的USB磁盘部分),并使用USB加密令牌对数据进行加密/解密。

顺便提一句:几乎所有的密码设备都要求将它们的驱动程序安装到系统中。与USB磁盘和闪存卡不同,操作系统中没有通用驱动程序可以让您插入USB密码令牌并在不安装驱动程序的情况下立即使用它。从用户的角度来看,这是一个麻烦,所以也要考虑到这一点。

票数 2
EN

Stack Overflow用户

发布于 2014-05-25 05:57:32

虽然NCryptoki很好,而且使用它可能没有任何问题,但我建议您查看PKCS11Interop。它是完整的单元测试,甚至单元测试也被记录下来并作为示例。这是joy用它:) (免责声明:我不是这个图书馆的作者。我只是碰巧认识作者,并且经常使用这个图书馆。)

  1. 这可能是可能的。作为参考,如何将数据对象保存在智能卡上,请查看此keypass插件
  2. 我曾与Gemalto卡和西门子卡工作,但我不知道他们是否有FIPS 140-2认证。当我搜索那个键盘插件时,我发现了隐孢子虫。没有说明它是否有图,但它有共同的标准5认证,所以它可能是值得一看。
  3. 看看我提到的keypass插件。它是使用我前面提到的PKCS11Interop实现的。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23818785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档