Windows 8 中的通用密码存储方案

阅读数:952 2011 年 12 月 19 日

话题:安全DevOps语言 & 开发

对于大多数用户来说,管理证书的唯一形式就是在存储在 web 浏览器中的密码。这种方式提供的体验经常让人无法满意,因为密码实际上会存储在特定计算机的特定浏览器中。不借助其它软件的帮助,我们就无法在 IE 和 Firefox 之间,或者办公室和家里的电脑之间共享账户信息。

在 Windows 8 下,你的 Windows Live 账号会成为主密码。使用它我们可以访问标记为“可信任”的 Windows 8 计算机中的所有密码。Windows 一般会自动帮你输入密码,你也可以使用“管理你的证书”界面来查看这些密码。

由于这使得丢失 Windows Live 密码会造成重大的安全风险,所以微软建议用户禁用一般的的密码恢复系统。取而代之,他们可以使用备用邮件地址或者手机号码来恢复密码,但那同样存在风险。

对于应用程序开发这来说,这种新系统提供了一些有趣的功能。Windows 8 证书存储为传统和 Metro 样式的应用程序都提供了 API。这意味着开发者不再需要保证本地存储的密码的安全性,并可以受益于在多台计算机之间共享这些信息。

API 的入口点是PasswordVault类。我们可以从这里通过用户名获得资源列表,也可以通过资源获得用户名。资源只是一个字符串,它表示的可能是 URL 或者应用程序 ID 之类的内容。每个资源 / 用户名对(resource/username pair)都可能拥有与之相关联的密码。

还有一些问题暂时没有答案:

  • 所有应用程序都要访问同一个密码库,还是每个应用程序都拥有自己的密码库?
  • 如果共享证书的话,Windows 如何防止流氓软件一次盗走所有密码?
  • 如果不共享,那么 Windows 如何区分各个应用程序?
查看英文原文:Universal Password Storage in Windows 8