2012-07-27 66 views
15

Google在其License Verification Library中提供的默认ServerManagedPolicy依赖于服务器响应来确定许可证重新验证时间间隔。这导致需要每隔几天重新验证一次,永久性的。这不仅对用户造成滋扰,对于长时间没有连接的用户而言,这可能是一个严重的问题。 (我们刚刚从谁希望是没有互联网连接了几个星期的用户,这是什么促使这个问题的询问)这个Google LVL策略实施是否合理安全?

总之,我正在寻找一种算法,将完成两件事情:

  1. ServerManagedPolicy相比,大大降低了连接要求;
  2. 提供了相同级别的反盗版保护。

在回答this question建议的策略算法忽略从谷歌的服务器的响应提供的时间,而不是使用的许可到期时间大约一个月,有许可证检查被每隔几天试图(以如果收到LICENSED响应,则延长到期期限)。

虽然这种方法部分解决了第一个目标,但它仍然要求用户每月在使用应用程序时连接一次,因此它不适用于(至少一个)用户。

以下算法完成第一个目标,但我不知道第二个目标。任何意见指出这种算法的弱点,或对另一种方法的建议,将受到欢迎。

  1. 第一次运行时,请在执行许可检查并坚持授权响应之前提供全部功能。收到后,请设置较短的到期期限(但超过Google Play提供的退款期限,目前为15分钟)。还要注册几天后的宽限期。
  2. 该应用程序将在许可证到期后再次开始检查。如果连接失败(飞行模式等),它将一直运行到宽限期到期。
  3. 宽限期到期后,在允许正常应用运行之前,坚持第二次获得许可响应。
  4. 收到第二个LICENSED响应后,永久启用应用程序的所有功能,并且再也不用再检查。
  5. 如果在任何时候收到UNLICENSED响应,则永久禁用完整功能。 (用户可以,当然,还原通过删除所有的应用程序的数据到步骤1。)

附加点:

  • 有人建议放弃所述第一许可检查,并等待直到期满执行许可证检查前的返回期限。坚持第一个LICENSED响应的目的是为了防止在许可证检查失败后用户简单地停止应用程序进程,清除应用程序数据并重新启动应用程序。 (即使每次只能使用15分钟,该应用程序也能提供价值。)
  • 坚持第二个许可响应的目的是解决buy-run-backup-return-restore攻击。
  • 我不是问回拨许可证检查是否是个好主意(这是Google提供的代替他们不赞成使用的版权保护机制)。我也很清楚,没有反盗版保护是万无一失的,Google的整个许可机制可以被规避(在这种情况下,有关策略算法设计的所有问题都是无关紧要的)。这个问题的要点是与其他策略(例如ServerManagedPolicy)相比,上述算法对用户的相对风险(对我们)和对用户的好处。
+0

从“无形”转变退款虫“购买,还需要验证”到“购买,不再需要验证”有问题。只需在某些设置对话框中,您需要在应用程序的某个位置反映该位置。 (许可证:临时某处,如果在“返回窗口”关闭后点击,则强制执行检查*然后*,如果它“过早”以获得永久许可证则生成错误消息。一旦第二次验证(自动,或手动),成为许可证:永久。) – Yakk 2015-06-18 21:21:24

+0

@Yakk - 我不知道你看到什么问题。是否需要控制第二次检查的时间? – 2015-06-18 21:30:56

+1

所以有人购买你的产品,知道它“离线工作”。然后他们下载它,运行它,它工作。接下来,他们失去了连接(无论什么原因没有数据,wifi关闭)。 3天后,他们的应用程序停止工作,几乎没有诊断。重点是能够说“一旦它说永久许可证,应用程序离线*”。对客户来说显然是一个重要的状态变化:使客户看到状态变化是重要的。 – Yakk 2015-06-19 01:13:52

回答

5

关于盗版问题,总会存在风险,您所做的任何事情都无法完全防止。

与其他风险相反,您冒着不适用客户的应用程序的风险。

我期望有很多来自不满意客户的0 *评论,他们甚至无法使用他们支付的应用程序,因为它已被禁用,而免费获得该应用程序的人可能不会中断。这就像买DVD一样,当盗版者收到不间断的观看时,让你的脸上充满版权警告。

我会坚持在购买应用程序时获得许可的回应,而不会打扰第二个回应。如果有人能够找到他们的答案,他们会发现他们在第二个附近。

编辑:我kcoppock同意购买后,有执照的检查20分钟会导致对客户的干扰最小,避免你提到

+2

一次性审批受制于一个非常容易和众所周知的漏洞:1)购买应用程序; 2)运行它并获得授权响应; 3)备份您的设备; 4)退回应用程序(在15分钟退款窗口内); 5)从备份恢复您的应用程序。 Voilà - 一款未经授权的应用程序。为了防止这种情况,返回窗口关闭后必须至少进行一次许可证检查。我应该补充一点,问题是,拟议的政策是否比LVL的默认政策(每隔几天会永远执行检查)具有更多的盗版或其他风险。 – 2012-07-27 18:47:27

+1

为什么不在第一次启动后延迟约20分钟的授权检查(允许全部功能)?然后你在返回窗口之外。 – kcoppock 2012-07-27 19:49:20

+0

@kcoppock - 是的,这可能是一个好主意。这与[在此]发布的建议保持一致(http://www.androidpolice.com/2010/08/24/response-to-a-response-more-on-googles-android-licensing-service/)。真正的问题是,是否依赖于过期后发布的单一LICENSED响应,使我们面临比“ServerManagedPolicy”的默认行为更大的风险。 – 2012-07-27 20:08:55