ProtectedData.Protect和硬件更改

时间:2014-09-01 10:18:35

标签: c# .net encryption

我刚刚在C#上观看了一些Microsoft Virtual Academy视频,并且有关于加密的课程。在某些时候,讲师使用ProtectedData.Protect方法。最后一个参数是一个标志,显示访问级别 - 仅限当前用户或本地计算机。

他们还说如果有人偷了你的硬盘,那么他就无法访问加密文件了。此时我认为这种加密取决于当前机器的某些硬件组合,不是吗?

因此,即使使用具有加密文件的操作系统删除硬盘,您仍然无法访问它们。如果是这样,如果我改变了我的一些PC的硬件怎么办?它会影响解密以前加密的文件的可能性吗?如果我完全错了,错过了一些非常重要且误解整个概念的东西,那么任何人都可以用几句话来解释它吗?

1 个答案:

答案 0 :(得分:1)

引擎盖 ProtectedData.Protect 使用本机库 crypt32.dll ,它是Windows Data Protection API的接口。据我所知,为了保护/加密数据,DPAPI使用随机生成的MasterKey,它存储在磁盘上 - 这意味着PC硬件的更改不会影响解密先前加密文件的可能性。

关于磁盘被盗的情况。我的理解是,如果使用 DataProtectionScope.LocalMachine 模式,那么窃取磁盘的人将能够访问您的数据。请注意documentation对此模式的说法:

我们强烈建议不要在工作站上使用此标志来保护用户的数据。但是,对于服务器进程在不允许不信任用户登录的服务器上使用该标志确实有意义。对于本地机器进程来说,使用该标志来保护数据存储在机器或共享驱动器上也是有意义的。

另见this问题。