簡體   English   中英

ProtectedData是否可以在多台計算機上運行?

[英]Does ProtectedData work on multiple computers?

我正在研究將一些敏感數據存儲在我正在處理的應用程序中。 我一直在查看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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM