当前位置 IIS7博客首页 > 关于APP与服务端通信数据安全的保障措施 最大化 缩小

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

    作者:Franson 栏目:未分类 时间:2020-06-30 09:19:49

    对于前端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与服务端都是明文通信,一抓包就能看到请求参数以及返回数据,所以为了防止被抓包我们必须要对数据进行加密处理。

    防抓包——数据加密

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

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

    对称加密

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