关于APP与服务端通信数据安全的保障措施

对于前端app在与后台服务端交互过程中,如果不加相应措施,将很容易导致系统安全,稳定性方面的问题。如通信数据被抓包导致非法获取后端的数据,恶意攻击后端发出大量的无效请求导致后端服务瘫痪等。

对此,我们将针对不同的问题提出对应的解决方案。

  1. 防非法调用——身份认证
  2. 防抓包——数据加密
  3. 防重放攻击——时间戳+随机字符串
  4. 防篡改——签名机制

防非法调用——身份认证

身份认证是指只有经过合法授权的用户才能调用我们的接口,这里我们采用Token验证机制。

APP与服务端的整个通信过程如下:

 

 详细流程如下:

  1. 用户首先需要输入账号密码进行登录;
  2. APP带上用户输入的账号密码请求服务端登录接口;
  3. 服务端校验账号密码,校验成功返回一个唯一Token作为用户身份凭证;
  4. APP将Token缓存,同时登录成功;
  5. 用户使用APP浏览数据,APP每次向服务端请求数据时须同时带上缓存的Token;
  6. 服务端收到请求,首先会校验Token的合法性,校验成功正常返回数据,校验失败直接返回错误;

Token验证机制解决了什么问题?

设想一个场景,我们检测到API接口正在被恶意调用,因为所有的接口都必须带Token才能调用,根据Token我们就能快速反查到对应的用户,所以Token验证机制可以帮助我们快速确定调用者的身份。

发现恶意调用,我们通过Token确定调用者的身份后可以采取Token失效、封禁帐号等措施来阻止恶意调用继续。

Token验证机制能防止抓包吗?

Token验证机制并不能防止APP被抓包,因为Token同样存在泄露的风险,恶意调用者只需要带上Token再请求我们的API接口同样还是能获取到数据。

因为APP与服务端都是明文通信,一抓包就能看到请求参数以及返回数据,所以为了防止被抓包我们必须要对数据进行加密处理。

防抓包——数据加密

数据加密的过程,就是对原来明文传输的数据按某种加密算法进行加密处理,使其成为不可读无意义的密文。

加密算法大体上可分为对称加密、非对称加密和散列算法等几种方式,后面我们的方案都会涉及到。

对称加密

对称加密是一种可逆的加密算法,其中“对称”的意思是加密过程和解密过程使用的是同一个密钥。

 

posted @ 2020-06-30 09:13  Franson  阅读(758)  评论(0编辑  收藏  举报