APP客户端与服务器通信安全设计方案

一、客户端与服务器的通行采用安全通道

       1、使用SSL/TLS方式通信,客户端与服务器采用双向认证,例如https

二、采用多重加解密方式对客户端与服务器的通信数据进行加密传输

       1、客户端软件发布前,客户端保存一个公钥,服务器保存一个私钥,客户端与服务器的基础通信接口采用这对秘钥进行加解密 和签名验证;

       2、用户身份验证成功后与设备进行绑定,如果更换设备则需要重新认证用户身份。用户与设备绑定后服务器未每个用户生成加解密证书(非对称加密),如果更新设备需要重新生成新的证书,这个证书用于客户端用户与服务器数据交互的加解密使用;

      3、系统设置证书更新策略对用户的证书进行更新。

三、身份确认机制,服务器对每个请求都要验证是否合法

     1、客户端对每一个api访问请求需要加入时间戳,客户端对业务数据(业务数据需要加密)加上时间戳使用证书进行签名;

     2、服务收到请求后首先对数据包进行签名验证,验证数据是否合法,在网络传输过程中是否被串改;

     3、服务器使用当前用户的秘钥对业务数据包进行解密,验证业务数据是否合法。

四、对客户端的请求进行一次性有效校验,防止请求被重放

    1、服务器通过接收客户端的签名和时间戳,验证请求是否在有效的时间范围内发送,服务器维护在这个时间范围类的所有请求的签名集合,来验证请求是否被重复处理,从而达到请求被重放的目的;

五、数据格式采用自定义二进制协议(破解难度大,开发成本稍高)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容