受保护的数据是否在多台计算机上工作

本文关键字:计算机 工作 数据 是否 受保护 | 更新日期: 2023-09-27 18:36:33

我正在考虑在我正在处理的应用程序中存储一些敏感数据。 我一直在看Microsoft提供的ProtectedData类,它看起来很简单。 但是,我有几个关于它如何工作的问题。

首先,我看到它使用"用户的登录凭据"来生成加密密钥。 我在文档中看到,只有当前用户才能解密数据。 这不是问题,我只想知道如果同一个用户在不同的机器上登录,他们是否能够解密数据? 我计划通过OneDrive共享保存的信息,因此希望它可以在同一用户使用的任何设备上访问。

前任:

User A logs in on desktop computer, saves encrypted file abc.txt
User A then logs in on tablet, loads file abc.txt

用户 A 是否可以在平板电脑上访问abc.txt

其次,一旦用户更改密码会发生什么? 在我看来,加密密钥会有所不同,这不会导致使用先前加密密钥的数据的解密不再可恢复吗?

前任:

User A logs in on desktop computer, saves encrypted file abc.txt
User A changes password
User A logs in on desktop computer, loads file abc.txt

用户 A 是否可以访问abc.txt

受保护的数据是否在多台计算机上工作

用户 A 在平板电脑上可以访问 abc.txt 吗?

"要使 DPAPI 在使用漫游配置文件时正常工作,域用户必须仅登录到域中的一台计算机。如果用户想要登录到域中的另一台计算机,用户必须注销用户登录到第二台计算机之前的第一台计算机。如果用户同时登录到多台计算机,很可能DPAPI将无法正确解密现有的加密数据。- http://support.microsoft.com/kb/309408

用户 A 是否可以访问 abc.txt?在单台计算机上,更改密码后,用户仍应能够访问以前加密的文件。 我的理解是以前生成的密钥仍然存储在列表中以允许这样做。 (每次用户更改密码时都必须解密和重新加密所有以前存储的数据,这将是昂贵的操作,因此他们只保留旧密钥。

但是,有一些管理工具允许您以可能破坏密码的方式更改密码。

我不知道在机器 A 上更改密码会对机器 B 产生什么影响。 我假设漫游配置文件可以正确处理这个问题,但这可能是一个无效的假设。

我不会在 DPAPI 中存储数据,如果不将其备份到某个地方,这是至关重要的。 当然,这会带来其他与安全相关的复杂性,具体取决于数据的敏感性。

数据保护 API (DPAPI) 可与漫游配置文件一起正常工作。因此,这将涵盖用户可以通过网络解密数据的事实。使用 IsolationStorage 用于存储跨多个应用程序应用的数据,并且不绑定到任何特定应用程序,例如用户名或许可证信息。

创建隔离漫游存储的示例:

using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Domain | IsolatedStorageScope.Assembly, null, null))
    {
        isoStore.CreateDirectory("TopLevelDirectory");
        isoStore.CreateFile("abc.txt");
    }

获取隔离漫游存储的示例:

IsolatedStorageFile isoFile =
IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
    IsolatedStorageScope.Assembly |
    IsolatedStorageScope.Roaming, null, null);