Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使Android客户端请求安全?_Android_Security - Fatal编程技术网

如何使Android客户端请求安全?

如何使Android客户端请求安全?,android,security,Android,Security,我有一个android应用程序,它可以发送服务器购买的更新信息。我现在要做的是,我在服务器端和Android客户端使用相同的密钥生成器,将购买和其他一些共享细节加密到MD5中。但如果有人解码了APK文件,这个人就可以通过生成密钥轻松地进行调用。防止此类攻击的最佳方法是什么?最好的解决方案是实现一些web服务,该服务将返回一个访问密钥(每次需要获取访问密钥时都会更改),您将在POST方法中每次使用该密钥与服务器通信。这是最安全的方法,每个好的网站都在使用它,如Facebook、Twitter等。使

我有一个android应用程序,它可以发送服务器购买的更新信息。我现在要做的是,我在服务器端和Android客户端使用相同的密钥生成器,将购买和其他一些共享细节加密到MD5中。但如果有人解码了APK文件,这个人就可以通过生成密钥轻松地进行调用。防止此类攻击的最佳方法是什么?

最好的解决方案是实现一些web服务,该服务将返回一个访问密钥(每次需要获取访问密钥时都会更改),您将在POST方法中每次使用该密钥与服务器通信。这是最安全的方法,每个好的网站都在使用它,如Facebook、Twitter等。

使用HTTPS与您的服务器通信,以保护传输中的数据。不要试图发明一个安全的协议。如果您想限制对服务器API的访问,请使用某种形式的身份验证:用户名和密码(通过HTTPS)或更好的身份验证令牌(OAuth等)。如果您将密钥和/或密码存储在APK中,任何人都可以通过反编译APK来提取它们。如果您想防止这种情况发生,您需要在令牌过期的地方使用令牌身份验证,如果受到攻击,令牌可能会失效

因为我的问题基本上是通过应用内购买更新服务器,所以我最终在服务器端进行了公钥/私钥验证。Android建议在客户端验证收据,但我们只是将收据转发到服务器,并使用公钥在服务器上进行验证。

md5是不可逆的,它是一种哈希算法。使用它,您最多可以验证完整性。您可以做的一件事是在安装后从服务器获取密码密钥。也许您可以通过https传输日期。