2011年12月26日星期一

新的 Android 软件许可验证服务被破解?来自 Google 第一时间的回应

翻译前言:

之前 Roger 报道了 Google 新推出的软件许可验证服务,并认为它有助于缓解目前 Android 平台上破解泛滥的问题,从而改善软件开发者们在 Android 生态系统里面的生存环境,这样才能使得 Android 平台在软件上向 iOS 发起真正的竞争(否则按照目前的状况,莫说是10w个 Apps,就是 100w,也是一堆垃圾里面埋了几颗珍珠而已…)。

另外也针对有兴趣在自己收费应用里面采用这项验证服务的开发者们,摘要翻译了官方开发文档里面相关的文章,希望可以帮助各位快速了解一些技术上的细节。

谷奥日前报道了一篇文章,是关于这项软件许可验证服务被破解的传闻,也摘要翻译了 Google 的回应。下面是 Google 官方回应的更完整的译文,希望能够帮助读者清楚了解事情的来龙去脉。特别是对于开发者朋友们,希望可以打消这项服务已被破解,出师未捷身先死的疑虑。

翻译正文:

有传闻说有人已经找到并发布了破解一些 Android 应用的方法(这些应用使用了新的许可验证服务),破解后的应用不再跟我们 Android Market 许可验证服务器进行通讯,而直接显示验证通过。我们后续还会继续关注事情的发展,不过有几点是值得现在声明的:

  • 许可验证服务,虽然刚刚推出不久,但这是保护应用不被非法拷贝的十分重要的一步,在线验证的方式比以前简单的通过系统权限限制来防止拷贝的方式要有效的多。即使是提供破解方法的作者也写到:

    目前而言, Google 提供的许可验证服务,在我看来,仍然是防止非法拷贝的最佳方式。

  • 许可验证服务提供了一个基础设施,开发者可以使用它来为自己的应用自定义需要的权限检查。许可验证服务库的第一个版本附带了一个非常简单,容易理解的样例实现,这个样例主要目的是为了让开发者理解如何使用许可验证服务,并且加以修改后可以运用到自己的应用中,样例本身没有太多关注安全方面的问题。
  • 一些开发者没有加以修改就复制了整个样例,而这种做法使得他们的应用十分容易被攻击。实际上目前我们所知的被破解应用,被破解的原因都是因为没有做代码混淆,而我们强烈建议这一点,并且后续还会发布相关的教程来指导如何对应用做代码混淆。
  • 目前使用许可验证服务的应用数量还很少,但是后续会持续增加,因为这种方式比起之前要有效很多。
  • 只要系统允许第三方应用运行,100% 的防拷贝保护就很难实现,但是使用在线验证的方式,当您的应用正确使用了该服务并按照自己的需求进行客制化时,就可以极大增加了破解的难度和成本。
  • 而对抗非法拷贝的最佳方式就是让非法拷贝的工作困难重重并且代价高昂,同时使获得您的应用的合法途径变得更直截了当,简单,快捷。当用户在十分容易购买到需要的应用和不得不访问难以信任的黑市之间进行选择的时候,我们相信结果是不言而喻的。

菜市场已经提供一个安全有效的途径,帮助开发者把他们的应用发布给用户。而新的许可验证服务将会使这个发布途径更安全,并且我们还会持续加以改进。我们正在帮助开发者对抗非法拷贝,并且这将是持续不变方向。

译后语:

从 Google 的回应来看,所谓的破解并不是真正破解了 Google 的许可验证服务,因为验证是在线进行的,要破解,实际上要做到:

1,劫持 Market App 跟 Google 验证服务器之间的通讯,或者劫持 3rd App 跟 Market App 之间的通讯,即是说要去 hack Market App

2,并且要能够正确伪造加密后的数据(破解加密算法和能够获得加密用的公钥)

可见,要同时做到上面这两点,实际上并不是那么容易。

传闻中所谓的破解,实际上是破解使用了验证服务的应用,可能是用一个 Fake LVL 去替换应用里面 Google 提供的 LVL 库。Fake LVL 自然不会真正的去跟 Market App 通讯,而是直接返回验证通过来瞒过应用。要防止这样的破解,只需要按照 Google 的建议做代码混淆即可,另外后续的 LVL,Roger 认为也有可能以源码的方式提供,这样开发者可以以更灵活和隐秘的方式在自己的应用里面使用验证服务。

不过正如 Google 而言,提供一个直截了当,简单,快捷的购买应用的途径是非常的重要,而菜市场在这方面还实在不够给力啊。

Via : Android Developers

没有评论:

发表评论