我正在使用DPAPI来存储XML数据。 CryptProtectData之后的数据存储在文件中。在我的一个用例中,需要在任何用户登录工作站之前解密此数据。由于,我不能在此使用用户专用密钥,我在加密时设置标志“CRYPTPROTECT_LOCAL_MACHINE”。熵键是静态文本。
Unprotect在所有方案中都有效,除非我在登录前调用它(没有用户登录)。它返回错误87(参数不正确)。
我重新阅读了整个DPAPI文档,以了解如何生成密钥。但是,遗憾的是,这个特定的旗帜没有足够的信息。
CryptUnprotectData会在这种情况下工作吗?是否可以由在某个用户会话下运行的应用程序调用?任何帮助表示赞赏。
谢谢, d
答案 0 :(得分:2)
我们使用DPAPI存储服务所需的密码:
使用CRYPTPROTECT_LOCAL_MACHINE进行加密CRYPTPROTECT_UI_FORBIDDEN。
使用CRYPTPROTECT_UI_FORBIDDEN解密
服务在机器启动时(即登录前)运行;一切正常。
答案 1 :(得分:1)
在这一点上,Microsoft文档确实含糊不清。 Passcape做了一个非常好的写作DPAPI Secrets。
您问题的相关部分是Recovering wireless connection passwords in Windows 7,其中详细介绍了解密所需的数据:
E:/Windows/System32/Microsoft/Protect/S-1-5-18/User
" 根据名称,如果这些文件受操作系统保护并且只有登录用户可以访问,我不会感到惊讶,尽管其他人可能能够确认。