我正在考虑使用PasswordVault在我的 Windows Store 应用程序中存储敏感数据。
我已经围绕检查这个类提供的保护做了一些基础研究。我编写了两个示例应用程序,第一个将一些数据写入保管库,第二个尝试获取该数据。
看来,即使第二个应用程序使用的密钥与第一个应用程序用于保存数据的密钥相同;第二个应用程序无法检索该数据。这很好。
有人知道 PasswordVault 如何将数据隔离到一个应用程序吗?对于另一个应用程序来获取我的应用程序的 PasswordVault 数据,它是否必须模拟我的应用程序的 sid?
为了清楚起见:
App1 这样做
const string VAULT_RESOURCE = "App1 Credentials";
var vault = new PasswordVault();
vault.Add(new PasswordCredential(VAULT_RESOURCE, "Foo", "Bar"));
App2 这样做
var vault = new PasswordVault();
const string VAULT_RESOURCE = "App1 Credentials";
try
{
var creds = vault.FindAllByResource(VAULT_RESOURCE).FirstOrDefault();
if (creds != null)
{
UserName = creds.UserName;
Password.Text = vault.Retrieve(VAULT_RESOURCE, "Foo").Password;
}
}
catch (COMException)
{
// this exception likely means that no credentials have been stored
}
现在 App2 收到一个异常,指示不存在此类凭据。这很好。我想了解的是 App2 需要达到什么程度才能掌握 App1 存储的数据。