写入/格式化受保护的USB闪存盘或USB令牌

时间:2014-10-24 11:10:56

标签: c# security certificate token disk

我正在开发C#.NET应用程序,该应用程序将使用证书对要使用私钥发送的数据进行签名,并在接收方使用公钥验证签名。我向USB闪存盘中的用户提供* .p12(PKCS#12格式)文件,但希望阻止用户格式化或写入。有没有办法做到这一点?

有人建议我使用USB令牌,但我没有任何使用经验。是否可以将* .p12文件存储在USB令牌中,或者它们只包含一些证书类型?

如果以上都不适合,请告诉我一些更好的方法。

1 个答案:

答案 0 :(得分:1)

闪存磁盘的问题不是用户可以写入它们,而是可以从中复制秘密信息(私钥)。相反的USB cryptotokens让你使用密钥但不复制它。

USB cryptotokens不存储“文件”(尽管其中一些可以存储不同大小的“应用程序数据”)。它们存储证书,公钥,私钥和对称(秘密)密钥。 PKCS#12文件是证书和相关私钥的集合,因此您可以使用USB令牌在USB令牌中存储PKCS#12文件的内容

如果您想让用户出于某种原因复制和分发密钥(例如,使用Windows证书存储密钥安装证书),那么USB cryptotoken将无法很好地完成您的任务(尽管可以使用它作为一个闪存盘,这将是矫枉过正的)。

至于对USB闪存盘进行写保护 - 是的,在控制器级别上,这些设备可以设置为只读,但我不确定这是否可以通过C#实现。