【问题标题】:How much effort do I put in my security for Android In App Billing?我为 Android In App Billing 的安全性付出了多少努力?
【发布时间】:2012-03-13 09:33:39
【问题描述】:

我在我的 Android 应用程序中实现了应用内计费。我几乎按照示例 (Dungeon) 应用程序来让它工作。到目前为止,它似乎运行良好。我现在需要决定我应该在安全部分投入多少精力。

我确实有一个服务器可以用来实现 Security.java 的东西。我目前也在使用标准的 PurchaseDatabase 实现。

截至目前,我正在考虑仅使用设备特定密钥加密 .db 文件,而单独保留 Security.java。

我的想法是,我的应用程序是一个非常小众的应用程序,我不希望有很多黑客攻击它。如果有人努力节省几块钱(每件要购买的商品只需 1 美元),那就这样吧。

我想我正在寻找其他人对此的看法......似乎没有 100% 安全的实施......只是让黑客不值得付出努力的实施。其他人是否看到过大量的 In App Purchases 黑客行为?

【问题讨论】:

    标签: android security in-app-billing


    【解决方案1】:

    您说得对:您不需要实现非常复杂的保护功能,您需要实现需要花费太多时间才能找到和删除的保护功能 这是来自 Google I/O 2011 的有关减少技术的视频“ leechers”:http://www.youtube.com/watch?v=TnSNCXR9fbY,我彻底推荐它。您可能想尝试的一些技术是:

    • 使用 LVL;
    • 混淆代码;
    • 从后台线程随机调用 LVL;
    • 插入与普通代码混合的许可证检查;
    • CRC 代码文件;
    • 勤劳:在 JNI 中使用反射检查签名;
    • 加密核心库/资源并即时加载它们。

    其中一些技术非常简单,而另一些则需要付出不可忽视的努力。最好的建议是要有创意,将支票隐藏在饼干意想不到的地方。

    另一个重要的一点是,如果您怀疑存在盗版,请让您的应用程序正常降级。例如,不要抛出“无效许可证”,因为您的许可证检查需要在应用程序启动时访问网络;相反,在某处存储一个“有效期为两个月”的令牌并随机更新它。在随机天数后检查它(例如,30-60 天范围内的随机整数)。客户不会注意到这张支票,而且很难破解,因为经过很长时间后它才会显现出来,比破解者愿意花在单个应用程序上的时间要多得多。

    【讨论】:

    • +1 以获得出色的答案。 This one 也是一个很好的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    相关资源
    最近更新 更多