安全的REST服务仅由特定的Android应用使用

安全的REST服务仅由特定的Android应用使用,第1张

概述我的服务器公开了许多REST服务,我想以某种方式保护网络服务,使其只能由我所拥有的android应用使用.基本上,客户端(Android应用程序)和服务器都是我开发的;而且我只需要将REST服务公开给我的android应用.我想到了一些保护REST服务的方法,例如>使用基于用户名/密码的身份验证>JWT

我的服务器公开了许多REST服务,我想以某种方式保护网络服务,使其只能由我所拥有的android应用使用.

基本上,客户端(Android应用程序)和服务器都是我开发的;而且我只需要将REST服务公开给我的androID应用.

我想到了一些保护REST服务的方法,例如

>使用基于用户名/密码的身份验证
> JWT令牌
>基于签名的验证
>等

在所有情况下,AndroID应用都应将密码存储在应用中;在这种情况下,黑客可以轻松地反编译应用程序并获取密码.

如何保护只能由androID应用访问的REST?

编辑:
客户端应用不需要用户的任何身份验证

解决方法:

您可以将SSL与客户端身份验证一起使用.服务器必须知道应用程序的公共密钥,而应用程序必须知道服务器的公共密钥.使用密钥库将应用程序的私钥存储在应用程序本身中,这是防止反编译的安全方法,请查看https://developer.android.com/training/articles/keystore.html

替代:

获取您应用的哈希值

public voID traceKeyHash(Activity activity){    try {        PackageInfo info = activity.getPackageManager().getPackageInfo("your.package.here", PackageManager.GET_SIGNATURES);        for (Signature signature : info.signatures) {            MessageDigest md = MessageDigest.getInstance("SHA");            md.update(signature.toByteArray());            Log.i(getClass().getname(), "Share - KeyHash: " + Base64.encodetoString(md.digest(), Base64.DEFAulT));        }    }    catch (Exception e) {        e.printstacktrace();    }}

现在您必须将哈希发送到服务器,但是…为了避免嗅探请求,您必须对哈希进行加密.使用存储在密钥库中的私钥对哈希进行加密,然后使用服务器端的公钥对消息解密,检查哈希是否与您注册的哈希匹配.

总结

以上是内存溢出为你收集整理的安全的REST服务仅由特定的Android应用使用全部内容,希望文章能够帮你解决安全的REST服务仅由特定的Android应用使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1078744.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存