2016-11-07 44 views
0

在我的服务器上,我需要确保仅接收来自Android设备的连接。 这可能吗?要存储客户端证书在定制android组装,这是抵抗生根?或者我可以在根植设备上完全隐藏任何东西?并且无法通过任何方式避免生根(前者提供我自己的android组装固件)?因为即使我设置了程序根检查 - 应用程序可以通过3D方重建以避免此检查。任何有用的想法赞赏。 Thx提前。仅通过设备的Android客户端证书授权

+0

你在说什么样的连接?套接字(TCP)或HTTP甚至?有一些方法可以让黑客用虚假来源与Android设备建立不同的连接,例如通过自己的握手来实现一个协议,如果握手失败,那么在连接完成之前立即删除连接。对于HTTP,还有其他方法可以完成此握手方法。 因此,知道你在谈论什么样的连接很重要。 – kevto

+0

Ssl。证书意味着https。 – AlexInspired

+0

不完全。 SSL证书也可用于安全套接字连接。但是,感谢这些信息,如果我是你,我会更新你的问题,其余的是通过HTTPS完成通信。 – kevto

回答

0

1)OAuth2是认证和授权协议,它被大型甚至更小的公司广泛使用。想想Facebook API。如果用户没有身份验证或无权进行该呼叫,则可以删除入站请求。这是一种方法。

2)第二种方法是将您自己的用户代理添加到您的HTTP标头和其他自定义HTTP标头。如果您的服务器检查这些标头,则可以删除入站请求。

您不必在客户端上存储SSL证书,因为客户端将启动与具有SSL证书的服务器的安全连接。

无论如何,使用证书客户端可以很好地加密数据,但我不相信Android Java支持这一点。如我错了请纠正我。如果您确实碰巧使用该密钥加密数据,则可以加密某个字符串或多个字节,您可以将其解析为您的一个自定义HTTP标头,但是如果有人发现加密的字符串是什么,他/她仍然可以伪造一个连接。不过,我不建议将您的SSL证书存储在客户端的设备上。


不管你可能会做什么,总有一个办法是假像它的HTTP/HTTPS连接的FROM Android设备来,但你可以使用这两种方法缩小传入的HTTPS请求,并使其更难。一个例子是PokémonGO。 GitHub上有很多非官方的API可以伪造来自官方应用程序的连接。