2009-04-15 95 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。

相关问题