我刚刚在C#上看了一些微软虚拟学院的视频,上面有一节关于加密的课程。在某种程度上,讲师们使用了ProtectedData.Protect方法。最后一个参数是一个标志,它显示当前用户或本地计算机的访问级别。
他们还说,如果有人偷了你的硬盘,那么他就无法访问加密文件。在这一点上,我认为这种加密依赖于当前机器的某种硬件组合,不是吗?
因此,当你移除一个硬盘时,即使你的操作系统有加密文件,你仍然无法访问它们。如果是这样,如果我更改了一些PC的硬件,该怎么办?它是否会影响解密以前加密的文件的可能性?如果我完全错了,错过了一些非常重要的东西,误解了整个概念,有人能用几句话解释一下吗?
发布于 2014-09-01 18:47:04
在幕后,ProtectedData.Protect使用了一个本地库crypt32.dll,它是Windows Data Protection API的一个接口。据我所知,为了保护/加密数据,DPAPI使用了一种称为MasterKey的东西,它是随机生成的,它存储在磁盘上-这意味着你的PC硬件的变化不会影响解密以前加密的文件的可能性。
关于你的磁盘被盗的情况。我的理解是,如果使用DataProtectionScope.LocalMachine模式,那么窃取您的磁盘的人将能够访问您的数据。请注意documentation对此模式的描述:
我们强烈建议不要在工作站上使用此标志来保护用户数据。但是,对于服务器进程来说,在不允许不受信任的用户登录的服务器上使用该标志是有意义的。本地机器进程使用该标志来保护要存储在机器外或共享驱动器上的数据也是有意义的。
另请参阅this问题。
https://stackoverflow.com/questions/25603604
复制相似问题