在软件KSP中始终使用Cng密钥加密

时间:2018-06-20 09:44:28

标签: security always-encrypted cng

使用默认设置创建CNG密钥时,将在

中创建
%APPDATA%\Microsoft\Crypto\Keys" which maps to "C:\Users\< username>\...

SSMS在MEK向导中检测到此密钥,并且一切正常。我能够加密数据库并在Winforms测试应用程序中查询数据。当我尝试在NetworkService下运行应用程序池的同一框中访问已部署站点的数据时,出现此错误:

  

打开Microsoft密码API:下一代(CNG)密钥:“ Microsoft软件密钥存储提供程序/ Dev_CngKey”时发生错误。确认CNG提供程序名称“ Microsoft Software Key Storage Provider”有效且已安装在计算机上,并且密钥“ Dev_CngKey”存在。

现在,我知道发生这种情况是因为密钥是使用我的帐户创建的。因此,我选择使用CngKey.IsMachineKey=true创建密钥。当我尝试使用向导创建MEK时,该键不会显示在对话框中。但是,我可以使用脚本手动创建MEK。但是,当我尝试创建CEK时,我再次遇到上述错误。

所以我的问题是,如何创建始终加密的Cng密钥,以便NetworkService可以用于应用程序池以及在框上运行的其他进程(WCF服务后端) ?

0 个答案:

没有答案