闪存磁盘的问题不是用户可以写入它们,而是可以从中复制秘密信息(私钥)。相反的USB cryptotokens让你使用密钥但不复制它。
USB cryptotokens不存储“文件”(尽管其中一些允许您存储不同大小的“应用程序数据”)。它们存储证书,公钥,私钥和对称(秘密)密钥。 PKCS#12文件是证书和相关私钥的集合,因此您可以使用USB令牌进行存储 内容 USB令牌中的PKCS#12文件。
如果您想让用户出于某种原因复制和分发密钥(例如,使用Windows证书存储的密钥安装证书),那么USB cryptotoken将无法很好地完成您的任务(尽管可以将其用作闪存盘,这将是矫枉过正的)。
至于写保护USB闪存盘 - 是的,在控制器级别,这些设备可以设置为只读,但我不确定这是否可以从C#。