2014-07-21 142 views
1

我的.NET应用程序包含一些RSA加密。 而我的问题:where to store the keys如何存储加密密钥.NET

经过一段googleing后,我看不到任何真正的建议。我见过的东西

  1. 拆分它们并存储到不同的文件夹中。
  2. 使用ProtectedData。但是如果我使用受保护的数据,我仍然需要存储密钥的加密结果。还是同样的问题,在哪里存储?

有更好的选择?

+2

你想要避免读取加密数据。如何解决问题取决于您的威胁模型(对于某些威胁模型而言它不可解决) –

+0

要回答的信息不足 - 正如斯科特所说的那样需要威胁模型。 – CodesInChaos

回答

1

的标准方法被存储在密钥容器关键,网具有一个API来做到这一点。请参阅 How to: Store Asymmetric Keys in a Key Container 您可以将密钥容器存储为私有密钥,在这种情况下只有您可以访问该密钥。如果您想在计算机中的不同用户或程序之间共享密钥,则应使用机器级密钥容器。要存储在机器水平,你只需要在容器中的标志UseMachineKeyStore

CspParameters cp = new CspParameters(); 
cp.KeyContainerName = ContainerName; 
cp.Flags = UseMachineKeyStore 

请记住,您使用的计算机密钥存储中的任何时候,你需要设置标志的参数添加。这种配置有一些安全音乐会可靠信息是多么明智。您可以使用访问规则限制对创建容器的访问。

我希望这些信息对您有用。