在应用程序购买中,如何混淆购买数据库?

时间:2012-03-12 21:16:07

标签: android

在应用内购买示例中:

http://developer.android.com/guide/market/billing/index.html

PurchaseDatabase类具有以下注释:

/**
 * An example database that records the state of each purchase. You should use
 * an obfuscator before storing any information to persistent storage. The
 * obfuscator should use a key that is specific to the device and/or user.
 * Otherwise an attacker could copy a database full of valid purchases and
 * distribute it to others.
 */

有道理,攻击者可以将数据库复制到另一台设备,我的应用程序会认为所有购买数据都是合法的。

因此,我不确定他们希望我们如何使用特定于该设备的密钥进行模糊处理(我没有任何"用户"数据,所以不要'我认为这在我的案例中真的是一个选项")。我猜这可能是这样的:

  1. 创建一个独特的" ID"对于安装,可能只是我在安装时生成的时间戳。
  2. 将ID存储在共享首选项中。
  3. 使用该ID加密我对数据库的所有值。
  4. 如果攻击者将其数据库复制到另一台设备,则另一台设备将使用不同的时间戳ID进行加密。因此,当我的应用尝试解密来自PurchaseDatabase的任何内容时,它应该都是无效数据。
  5. 这是他们的意思吗?很容易想出天真的安全措施,感觉这是一个很好的机会做一些没有额外保护的傻瓜,

    由于

0 个答案:

没有答案