加密种子的Android设备/帐户特定ID

时间:2011-06-24 18:18:49

标签: android encryption user-experience uniqueidentifier

这可能是以前以多种形式提出过来的问题,但我还没有看到它问过这个问题,我想就如何继续提出一些意见。

我正在开发一个需要将凭据存储到设备上的第三方Web服务的应用程序。我希望加密这些凭据,但我也不希望将种子存储在设备上的代码/中以防止可能的劫持。该应用程序还支持使用Googles云备份功能进行备份,进一步需要加密。

我的想法是,如果我能找到一个唯一的标识符,那么可以用作种子。有一些奇怪的要求使这很困难。

  1. 对于给定的硬件/用户组合,ID必须是唯一且相同的。
  2. 它不能简单地绑定到设备或用户,它必须是两者的组合。
  3. 它必须是可用的无关紧要的; Wifi和蓝牙MAC地址是不可能的,因为它们在关闭时在某些设备上不可用。
  4. 根据我的阅读,TelephonyManager ID(SIM等)并非在所有设备上都可用。
  5. 根据我的阅读,ANDROID_ID将不会出现在任何情况下。
  6. 该应用程序将在多个市场(例如Amazon Appstore)发布,因此Google帐户不一定会出现。
  7. 进行工厂擦除不应影响用于生成此ID的任何内容(这样用户可以不间断地备份,擦除和恢复)。
  8. 执行OTA升级不应影响用于生成此ID的任何内容(请参阅上述原因)。
  9. 如果他们必须在卸载/重新安装后重新进行身份验证,那就没关系。
  10. 我知道其他应用程序显然可以检索到这个值,这就是为什么我打算对它进行哈希处理,进一步由应用程序UID以及<你的建议在这里>。

    如果有人觉得这些要求不切实际,我也希望听到这一点。

    特别是鉴于最近的黑客马拉松,我希望能够至少说“如果有人可以妥协,那么手机上没有任何东西是安全的”。

1 个答案:

答案 0 :(得分:0)

您的要求对于确保安全是合理的,但是您似乎怀疑它们是不现实的。 Android设备支持水平存在太多差异,无法实现。