PasswordVaultを使用して機密データを Windows ストア アプリに保存することを検討しています。
このクラスが提供する保護を調べるための基本的な調査をすでに行っています。私は 2 つのサンプル アプリケーションを作成しました。1 つ目はボールトに少しのデータを書き込み、2 つ目はそのデータを取得しようとします。
2 番目のアプリケーションは、データの保存に使用された最初のアプリと同じキーを使用しているように見えます。2 番目のアプリはそのデータを取得できません。これはいい。
PasswordVault がデータを 1 つのアプリに分離する方法を知っている人はいますか? 別のアプリが私のアプリの 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 は、そのような資格情報が存在しないことを示す例外を受け取ります。これはいい。私が理解したいのは、App1 が保存したデータを手に入れるために、App2 がどの程度まで行く必要があるかということです。