Android卸载许可证验证到可信服务器


Android Offload license validation to a trusted server

我一直在阅读关于LVL的内容,并在我的应用程序中使用启动屏幕检查许可。但我相信你能猜到它很容易被破解。我不是想要确保我的应用程序是100%的傻瓜,但只是想让它令人沮丧的骇客尝试。

因为我的应用程序需要在线连接,并且经常从我的服务器获取数据,我想在服务器端实现许可证检查,如果许可证有效,它将返回数据,如果没有,什么都不会返回。

我在这里读过这篇博文:

"如果你的应用程序有一个在线组件,一个非常强大的防止盗版的技术是发送一个许可证服务器响应的副本,包含在ResponseData类中,连同它的签名,到你的在线服务器。然后,您的服务器可以验证用户是否获得许可,如果没有,则拒绝提供任何在线内容。

由于许可证响应是加密签名的,您的服务器可以检查以确保许可证响应没有被使用存储在Android Market发行者控制台的公共RSA密钥篡改。

在执行服务器端验证时,您将需要检查以下所有内容:

响应签名是有效的。许可证服务返回了一个已许可的响应。确保包名称和版本代码与正确的应用程序匹配。license响应没有过期(请额外查看VT license响应)。您还应该记录userId字段,以确保被破解的应用程序不会重播来自另一个许可用户的许可响应。(这可以通过来自单个userId的异常多的许可证检查来看到。)"

我只是需要帮助开始如何执行服务器端验证。是的,我可以获得响应签名、LICENSE或NOT_LICENSED响应、包名、许可证过期,但我如何在服务器上签入?

任何帮助开始将非常感激。感谢您的宝贵时间。

这可能会帮助你开始:android-market-license verification php项目

这应该可以让你开始:

http://php.net/manual/en/function.openssl-verify.php

我无法验证这是如何工作的,尽管我们的PHP人员仍在工作