非对称加密算法原理
在客户端公开公钥,服务端保存私钥
1.客户端第一次请求先请求443端口,从443端口下载公钥。
2.客户端将数据进行公钥+算法进行加密,将秘文发送到服务端
服务端收到秘文后,通过私钥+算法进行解密得到明文数据。
3.服务端将数据进行私钥+算法进行加密发送给客户端,
客户端进行公钥+算法进行解密。
(注意:公钥加密,公钥无法解开,私钥不能传输。因为第一次客户端申请公钥时,第三方中途拦截得到公钥,如果可以用公钥进行解密,那么数据传输就会不安全。 )
非对称加密的不安全性:
在客户端第一次请求服务器端获得公钥时,有可能由第三方进行拦截,代理客户端进行请求服务器并获得公钥,下发客户端假的公钥。用真实的公钥再次请求服务器拿去真正的数据。
CA机构(收费)对公钥进行认证
1.服务端将公钥提交给CA认证中心,CA认证中心对服务端进行身份认证后,将公钥进行算法非对称加密生成证书,将证书给到服务端。
2.客户端在进行请求服务端时,服务端将证书返回客户端,此证书将公钥和服务器信息进行了加密。
3.通过网络传输返回给客户端,如果中间有第三方获取到证书,又通过算法进行解密得到公钥,但是没有CA机构的私钥无法进行加密后再传输给客户端(客户端不认可)。
4.客户端收到证书后,通过操作系统内置的私钥进行解密,得到公钥,然后用服务器证书里面的公钥进行加密数据,返回到服务端。
5.此时中间第三方将无法解开加密的数据了(因为第三方只有公钥,没有私钥进行解密 )
必须是正版操作系统