C# 写/格式化受保护的USB闪存或USB令牌

C# 写/格式化受保护的USB闪存或USB令牌,c#,security,certificate,token,disk,C#,Security,Certificate,Token,Disk,我正在开发C#.NET应用程序,该应用程序将使用证书对使用私钥发送的数据进行签名,并在接收方使用公钥验证签名。我正在用U盘向用户发送*.p12(PKCS#12格式)文件,但希望阻止用户格式化或写入。有没有办法做到这一点 有些人建议我使用USB令牌,但我没有任何经验。是否可以将*.p12文件存储在USB令牌中,或者它们只包含一些证书类型 如果以上都不适合,请告诉我一些更好的方法 闪存的问题不在于用户可以写入,而在于可以从中复制机密信息(私钥)。相反的USB加密令牌允许您使用密钥,但不能复制密钥 U

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

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


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

闪存的问题不在于用户可以写入,而在于可以从中复制机密信息(私钥)。相反的USB加密令牌允许您使用密钥,但不能复制密钥

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

如果您想让用户出于任何原因复制和分发密钥(例如,使用Windows证书存储的密钥安装证书),那么USB Cryptoken将无法很好地用于您的任务(虽然可以将其用作闪存,但这将是过分的)

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