前后端通信安全RSA+AES混合加密

前言

前后端安全通信一直是头疼的问题,如何保证前后端安全通信?
读完这篇文章教你学会前后端安全通信。

什么是前后端通信?

前后端通信安全RSA+AES混合加密_第1张图片

客户端向服务端获取资源(如:html/css/js/jpg/json/api接口数据)的过程需要通信,常见的通信有TCP/UDP等。

什么是通信安全?

通信安全是指用户在使用登录、注册、用户列表等功能时请求被拦截导致用户数据泄露,请求过程如下图:
前后端通信安全RSA+AES混合加密_第2张图片
如上图,不管是请求被拦截还是响应被拦截用户和系统提供方都是无法接受的。
那么如何保证通信安全?

那么如何保证通信安全?

1.使用https通信

前后端通信安全RSA+AES混合加密_第3张图片
如果你觉得https就一定能保证前后端安全那就打错特错了,使用不安全证书通信很容易被黑客拦截后伪造证书导致数据被窃取,如下图:
前后端通信安全RSA+AES混合加密_第4张图片
黑客通过拦截用户请求or响应并伪造证书一样可以达到破解数据目的
配置免费安全的证书,地址:https://www.saintnong.com/#/info?blogOid=33

2.使用AES加密

我们通过在前端使用约定好的加密Private Key。
众所周知前端Private Key是存在客户端的,而前端代码又是开源的,无法保证Key的安全。

3.使用RSA+AES混合加密

为什么使用RSA+AES混合加密?因为RSA具有公钥加密私钥才能解密的特点,能保证加密的key无法使用其本身解密,但是RSA缺点也很明显,使用RSA加密效率太低使得系统吞吐量降低,而AES加密恰恰相反。
由于用户不会频繁的登录,所以登录成功后使用AES加密提高系统吞吐量,流程如图:
前后端通信安全RSA+AES混合加密_第5张图片

步骤一:前端生成RSA的公钥和私钥。
步骤二:前端将用户信息(如:用户名、密码、短信验证码)、前端生成的公钥使用约定好的公钥加密传输给后端。
步骤三:后端使用约定好的私钥进行内容解密。
步骤四:查询出用户信息后使用解密好的公钥把参数(用户信息、生成的AES密钥)加密传给前端。
步骤五:前端使用生成好的私钥对响应内容解密。

以上步骤就是前后端通信安全解决方案,后续会使用后端AES密钥加密、解密所有请求、响应参数。

原文地址:https://www.saintnong.com/info?id=1672442257202143234

你可能感兴趣的:(前端,后端,web安全)