假设有人访问我的所有硬盘,我想弱点将是我的Windows密码.在不知道/无法检索的情况下,数据应该非常安全,不是吗?
我特别要求,因为维基百科中的EFS条目表明了这一点
在Windows 2000中,本地管理员是默认的数据恢复代理,能够解密任何本地用户使用EFS加密的所有文件.
和EFS碰巧使用DPAPI.这同样适用于我自己使用此保护的数据:
ProtectedData.Protect(plain, null, DataProtectionScope.CurrentUser);
Run Code Online (Sandbox Code Playgroud)
如果确实如此,我怎么能阻止它呢?
[编辑]注:我试图保存凭据WinForms应用程序,使用户不必输入密码每次登录的时间.换句话说,如果有人能够登录为用户(即知道用户密码),那么他们很可能会成为能够读取加密的数据.
哪个 - 不是来自Windows背景 - 现在让我想知道 - 本地管理员不能像任何本地用户一样登录吗?在这种情况下,我不应该担心管理员无论如何都能够检索密码......
[Edit2]正如谷歌所揭示的,看起来管理员不能像任何用户一样登录而不首先重置/更改密码.所以我的问题似乎仍然相关......
假设我加密数据并将其写入如下文件:
byte[] encrypted =
ProtectedData.Protect(plain, null, DataProtectionScope.CurrentUser);
File.WriteAllBytes(filename, encrypted);
Run Code Online (Sandbox Code Playgroud)
解密就像直截了当:
byte[] encrypted = File.ReadAllBytes(filename);
byte[] decrypted =
ProtectedData.Unprotect(encrypted, null, DataProtectionScope.CurrentUser);
Run Code Online (Sandbox Code Playgroud)
现在,当我在保护和取消保护的调用之间更改我的Windows密码时,Unprotect将抛出异常.我确实希望将加密数据链接到我的用户帐户,但我也希望它能够在密码更改后继续使用.
我想我必须交给Windows中的数据,而不是将其写入到我自己的文件,以便Windows可以在更改密码重新加密.我只是找不到告诉我如何的文档.有人知道吗?