我正在开放协议上开发Android应用程序。
它将是开源的,但我希望服务器(封闭源代码)能够检查客户端是原始应用程序还是修改(由其他人编译)。
这可以在Android上使用吗?
答案 0 :(得分:3)
不可能证明缺少修改后的代码,并且未修改代码的存在并不意味着未修改的代码是唯一的代码。
想象一下,您的开源应用程序具有以任何方式证明其真实性的代码。任何修改都可以简单地保留,转移或复制此真实性信息。 如果真实性信息实际上检查了程序的代码或数据本身,那么攻击者仍然可以使用好程序的代码/数据并模拟它。
答案 1 :(得分:0)
您可以使用SSL保护服务器端并需要客户端证书。分发源代码时,请不要分发代码用于与服务器通信的证书。然后,修改后的应用程序版本必须创建自己的证书才能与服务器通信,服务器可以确定用于建立SSL连接的证书。