【问题标题】:Android piracy prevention with server requests使用服务器请求防止 Android 盗版
【发布时间】:2012-04-03 11:45:21
【问题描述】:

我正在开发一个需要服务器来完成大部分繁重工作的应用程序。我想防止盗版客户端向该服务器发送请求。有没有办法在请求中发送一些标识符,以便我的服务器可以向 Android Market 询问具有该 ID 的人是否真的购买了该应用程序?我该怎么做呢?

请注意,仅使用 LVL 保护应用程序是行不通的,因为人们可以很容易地编写一个应用程序来与服务器交互,并且仍然提供与付费应用程序相同的功能。

【问题讨论】:

    标签: android security apk


    【解决方案1】:

    首先:您在不受您控制的设备(例如您的 Android 设备)上运行的任何东西都没有 100% 的安全性。

    您可以通过多种措施使“虐待”更加困难:

    • 在有时间限制的成功登录后发出一个随机会话密钥(加密安全),以便在经过一定时间后重新登录
    • 为每个通信步骤发出一个随机交互密钥(加密安全),在使用后立即失效
    • 当成功登录时,终止与登录之前可能处于活动状态的相同凭据关联的任何其他会话
    • “节流”使用,即限制每分钟/小时允许多少次调用或类似的调用(根据具体应用可能不可能)

    如果您真的想让它变得非常困难,您可以颁发特定于设备的客户端证书(当客户端购买您的应用程序时)并使用基于证书的客户端身份验证(在 SSL 标准中定义) - 您可以使证书无效如果您发现滥用行为对其他设备的合法用户没有伤害,则与该设备相关联...

    【讨论】:

    • 这一切我都知道,但是如何向在市场上购买该应用程序的人发放密钥?没有这样的回调可用。
    • @Overv 你不需要回调...只需让应用程序在第一次启动时下载它(您可以即时生成证书).. . 至于市场互动工具Licensing
    【解决方案2】:

    摘自这篇帖子Android Game Keeps Getting Hacked我的解决方案

    实现您自己的许可库

    我还建议您从 Google I/O 2011 YouTube 录制中查看此内容:

    Evading Pirates and Stopping Vampires

    编辑:

    The Presentation Notes from 逃避海盗和阻止吸血鬼

    一些基本的关键点

    演示说明包含基本示例和修改方向。不过,在 youtube 视频中,讨论了服务器端身份验证以及它与盗版和资产下载等的关系。特别是使用许可证服务器、In App Billing 和 App Engine。 但这是学习的良好基础无论您选择如何处理解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-12
      • 2010-10-28
      • 2011-05-02
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      相关资源
      最近更新 更多