Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 谷歌LVL策略的实施是否合理安全?_Android_Algorithm_Google Play_Android Lvl_Access Rights - Fatal编程技术网

Android 谷歌LVL策略的实施是否合理安全?

Android 谷歌LVL策略的实施是否合理安全?,android,algorithm,google-play,android-lvl,access-rights,Android,Algorithm,Google Play,Android Lvl,Access Rights,Google在其应用程序中提供的默认ServerManagedPolicy依赖于服务器响应来确定许可证重新验证间隔。这导致需要每隔几天进行一次永久性的重新验证。这不仅对用户来说是一个麻烦,而且对于那些长时间没有连接的用户来说也是一个严重的问题。(我们刚刚收到一位用户的询问,他预计几周内无法连接互联网,这正是这个问题的动机。) 总之,我正在寻找一种能够完成两件事的算法: 与服务器管理策略相比,大大降低了连接要求 提供相同级别的反盗版保护 对于建议的策略算法的一个答案是忽略来自谷歌服务器的响应中提供

Google在其应用程序中提供的默认
ServerManagedPolicy
依赖于服务器响应来确定许可证重新验证间隔。这导致需要每隔几天进行一次永久性的重新验证。这不仅对用户来说是一个麻烦,而且对于那些长时间没有连接的用户来说也是一个严重的问题。(我们刚刚收到一位用户的询问,他预计几周内无法连接互联网,这正是这个问题的动机。)

总之,我正在寻找一种能够完成两件事的算法:

  • 服务器管理策略相比,大大降低了连接要求
  • 提供相同级别的反盗版保护
  • 对于建议的策略算法的一个答案是忽略来自谷歌服务器的响应中提供的时间,而是使用大约一个月的许可有效期,每几天尝试一次许可证检查(如果收到许可响应,则延长有效期)

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

    下面的算法实现了第一个目标,但我不知道第二个目标。任何指出该算法弱点的评论,或对另一种方法的建议,都是欢迎的

  • 在第一次运行时,进行许可证检查,并在提供完整功能之前坚持使用许可证响应。收到后,设置一个相对较短的到期期限(但比Google Play提供的退款期限长,目前为15分钟)。此外,还要登记几天的宽限期
  • 许可证到期后,应用程序将再次开始检查。如果它无法连接(飞机模式等),在宽限期到期之前,它仍然可以工作
  • 宽限期到期后,在允许应用程序正常运行之前,请坚持使用第二个许可响应
  • 在收到第二个许可响应后,永久启用应用程序的所有功能,不再麻烦再次检查
  • 如果在任何时候收到未经许可的响应,则永久禁用全部功能。(当然,用户可以通过删除所有应用程序数据返回到步骤1。)
  • 其他要点:

    • 有人建议放弃第一次许可证检查,并在执行许可证检查之前等待返回期到期。坚持第一个许可响应的目的是防止在许可证检查失败后,用户只是停止应用程序进程、清除应用程序数据并重新启动应用程序的漏洞。(即使一次只能使用15分钟,该应用程序也能提供价值。)
    • 坚持使用第二个许可响应的目的是绕过buy run backup return restore漏洞
    • 我不是问回拨许可证检查是否是一个好主意(这是谷歌提供的,以取代他们不推荐的拷贝保护机制)。我也很清楚,没有任何反盗版保护是万无一失的,谷歌的整个许可机制也可以规避(在这种情况下,所有关于策略算法设计的问题都是无关紧要的)。这个问题的要点是,与其他策略(如
      ServerManagedPolicy
      )相比,上述算法的相对风险(对我们)和好处(对用户)

    关于盗版,总是有风险的,你所做的任何事情都无法完全阻止它

    与其他风险不同的是,你有可能用一个他们无法使用的应用程序来打乱你的客户

    我预计会有很多不开心的客户的0*评论,他们甚至无法使用他们付费的应用程序,因为该应用程序已被禁用,而免费获得该应用程序的人可能不会被打断。这就像买了一张dvd,当盗版者得到不间断的观看时,你的脸上满是版权警告

    在购买应用程序时,我会坚持使用许可响应,而不会为第二个响应而烦恼。如果有人能在一个回答周围找到自己的方法,他们就会在第二个回答周围找到自己的方法


    编辑:我同意KCopock的观点,即购买20分钟后的授权支票会对客户造成最小的干扰,并避免您提到的退款错误

    一次性批准会受到一个非常简单且众所周知的漏洞的影响:1)购买应用程序;2) 运行它并获得许可的响应;3) 备份你的设备;4) 返回应用程序(在15分钟退款窗口内);5) 从备份中还原你的应用程序。瞧,这是一款未购买的应用程序,自认为获得了许可。为了防止这种情况,在返回窗口关闭后,必须至少进行一次许可证检查。我应该补充一点,问题是拟议的策略是否比LVL附带的默认策略(永远需要每隔几天检查一次)具有更多的盗版或其他风险。为什么不在首次发布后将许可检查(允许全部功能)延迟约20分钟?那么你就在返回窗口之外了。@kcopock-是的,这可能是个好主意。这与发布的建议是一致的。真正的问题是,依赖过期后交付的单个许可响应是否会使我们面临比
    ServerManagedPolicy
    的默认行为更大的风险,为了防止这种情况而走极端只会让你的付费客户更加恼火。我不了解ServerManagedPolicy,所以我不能说任何东西来进行比较,但一旦您从退款窗口后的时间框架中获得了一个许可响应,我会在这一点上放弃它。@kcoppock-我不是要说走极端。我在问你要加什么