Насколько PasswordVault защищает и изолирует данные?

Я рассматриваю возможность использования 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.

0 ответов

Другие вопросы по тегам