如何在Windows Phone 7中获得对称密钥?

时间:2010-12-05 18:44:07

标签: encryption windows-phone-7

我正在开发需要一些数据加密的Windows Phone 7应用。我很难找到关于Windows Phone 7的密钥环或DPAPI的任何文档。我已经提出了几种方法,但它们都有缺点。

  1. 生成随机加密密钥并将其存储到IsolatedStorage。这样做的优点是它很简单,而且“只是有效”。缺点是这个密钥可能会显示在备份文件等中。

  2. 生成随机密钥并使用设备ID加密该密钥。优点是它提供了更好的保护。找出设备ID并不难。缺点是,如果他们备份并将其恢复到另一部手机,该密钥将无效。

  3. 不能要求用户输入(即我无法从用户输入中获取密钥)

    我不喜欢这两个中的任何一个。在Windows Phone 7中必须有类似DPAPI或密钥环的东西。还是缺少它?

1 个答案:

答案 0 :(得分:1)

不幸的是,目前没有密钥环/ dpapi暴露给托管代码。如果你不能要求用户输入,那么你就会陷入两种方法之一。就个人而言,我喜欢使用IMEI作为密钥的一部分的方法,即(psudocode)......

shared_secret = sha512(newGuid + IMEI)
这样做的好处是,如果手机丢失或被盗并且SIM卡被换出(对于具有SIM卡(如GSM或Verizon的LTE)的手机),数据将无法访问,如果他们离开旧版本SIM卡可以访问数据,更有可能找到和/或远程擦除手机。