2014-01-24 71 views
0

我正在开发一个开放协议的Android应用程序。检查客户的完整性

它将是开源的,但我希望服务器(封闭源代码)能够检查客户端是原始应用还是修改(由其他人编译)。

这是可能的Android?

+1

您无法辨别您的应用程序中的网络字节与来自敌方的网络字节之间的差异。期。 – SLaks

回答

3

不可能证明没有修改的代码,并且未修改的代码的存在并不意味着未修改的代码是唯一的代码。

想象一下,您的开源应用程序有代码证明其在任何方式的真实性。任何修改都可以简单地保留,继承或复制此真实性信息。 如果真实性信息实际上检查程序的代码或数据本身,攻击者仍然可以使用好程序的代码/数据并假冒它。

+0

thx.not甚至不使用谷歌播放服务? – Slamper

0

您可以使用SSL保护服务器端并需要客户端证书。分发源代码时,请勿分发代码用于与服务器通信的证书。然后,应用程序的修改版本必须创建自己的证书才能与服务器进行通信,并且服务器可以确定使用什么证书来建立SSL连接。

+0

否;攻击者可以从原始客户端提取证书。 – SLaks

+0

@SLaks是的。如果有人想我想他们可以从apk中拉它。 – Volti

+0

以及如何将其放入应用程序的本机(NDK)部分 – Slamper