Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PasswordVault在多大程度上保护和隔离数据?_C#_.net_Security_Passwordvault - Fatal编程技术网

C# PasswordVault在多大程度上保护和隔离数据?

C# PasswordVault在多大程度上保护和隔离数据?,c#,.net,security,passwordvault,C#,.net,Security,Passwordvault,我正在考虑使用在我的Windows应用商店应用程序中存储敏感数据 我已经做了一些基本的研究,研究这个课程提供的保护。我编写了两个示例应用程序,第一个将一些数据写入vault,第二个尝试获取这些数据 看起来,即使第二个应用程序使用与第一个应用程序相同的密钥来保存数据;第二个应用程序无法检索该数据。这很好 有人知道PasswordVault是如何将数据隔离到一个应用程序的吗?要让另一个应用程序获得我的应用程序的密码保险库数据,它必须模拟我的应用程序的sid吗 为清楚起见: App1可以做到这一点

我正在考虑使用在我的Windows应用商店应用程序中存储敏感数据

我已经做了一些基本的研究,研究这个课程提供的保护。我编写了两个示例应用程序,第一个将一些数据写入vault,第二个尝试获取这些数据

看起来,即使第二个应用程序使用与第一个应用程序相同的密钥来保存数据;第二个应用程序无法检索该数据。这很好

有人知道PasswordVault是如何将数据隔离到一个应用程序的吗?要让另一个应用程序获得我的应用程序的密码保险库数据,它必须模拟我的应用程序的sid吗

为清楚起见:

App1可以做到这一点

    const string VAULT_RESOURCE = "App1 Credentials";
    var vault = new PasswordVault();
    vault.Add(new PasswordCredential(VAULT_RESOURCE, "Foo", "Bar"));
        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可以做到这一点

    const string VAULT_RESOURCE = "App1 Credentials";
    var vault = new PasswordVault();
    vault.Add(new PasswordCredential(VAULT_RESOURCE, "Foo", "Bar"));
        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存储的数据

vault中的元素与创建它们的应用程序相关联,因此无法从app2读取app1 vault。查一下Gonzix谢谢,我之前看过那个博客或类似的博客。如果这真的是不可能的,那么就这样发布吧,我会相信你回答了我的问题。没有什么能保护你免于糟糕的编码。。。如果您想知道安全性有多高,请查看Bill Sempf在2013 blackhat上的这篇文章。几个月前,我在cbus参加了Bill的演讲。绝对是好东西,也是我见过的最好的谈话之一。