2009-04-15 92 views
1

我需要一種方法來保護移動設備上的私鑰。任何可用於.NET Compact Framework或Windows Mobile的DPAPI?

我知道在「編寫安全代碼」章節「保護祕密數據」中說「Windows CE」不能用於安全環境。但是這本書現在已經有許多年了,2003年。

這仍然是這種情況嗎?告訴我,事實並非如此。今天必須有一種方法來保護私鑰。

回答

3

DPAPI包含在一組Win32函數CryptProtectDataCryptUnprotectData中。這些功能在Windows CE和Windows Mobile平臺上可用(請參閱鏈接),但我不知道他們添加了哪些版本的支持。

DPAPI的.NET包裝是System.Security.Cryptography命名空間(程序集System.Security.dll)中的ProtectedData類。但是,我不認爲.NET Compact Framework實現了這一點,所以如果使用.NET,則必須使用P/Invoke。

0

使用標準加密算法有什麼問題?

+1

沒有什麼,因爲事實上我使用的是標準的加密算法。它有一個私鑰,我可以在哪裏安全地將這個私鑰存儲在.NET Compact Framework或Windows Mobile中? – 2009-04-18 13:16:03

1

如果用戶有權訪問設備,那麼您不能100%安全地存儲密鑰。您可以舉起酒吧,但無法將其刪除。

您必須外部訪問密鑰,例如,用戶輸入用戶名和/或密碼或通過其他方法發送到設備(例如通過網絡連接進行非對稱加密)。這是Windows Mobile程序員建議的安全性。

在設備上存儲密鑰的任何方式都可以進行反向設計。這包括使用CryptProtectData和CryptUnprotectData API。

相關問題