我需要一种方法来保护移动设备上的私钥。
我知道在“编写安全代码”一章“保护秘密数据”中说“Windows CE”不能在安全环境中使用。但这本书现在已经有好几年了,2003年。
这仍然是这样吗?告诉我事实并非如此。今天必须有一种方法来保护私钥。
答案 0 :(得分:3)
DPAPI体现在一组Win32函数CryptProtectData和CryptUnprotectData中。这些功能在Windows CE和Windows Mobile平台上可用(参见链接),但我不知道他们添加了哪些版本支持。
DPAPI的.NET包装器是System.Security.Cryptography命名空间(程序集System.Security.dll)中的ProtectedData类。但是,我认为.NET Compact Framework还没有实现它,所以如果使用.NET,你将不得不使用P / Invoke。
答案 1 :(得分:1)
如果用户有权访问设备,则不能100%安全地存储密钥。您可以提高标准但不能将其删除。
您必须外部化对密钥的访问权限,例如用户输入用户名和/或密码或通过其他方法发送到设备(例如,通过网络连接进行非对称加密)。这是Windows Mobile程序员推荐的安全性。
将密钥存储在设备上的任何方式都可以进行逆向工程。这包括使用CryptProtectData和CryptUnprotectData API。
答案 2 :(得分:0)
使用标准加密算法有什么问题?
答案 3 :(得分:0)