您的位置:新闻资讯 >文章内容
Https协议的通信原理及加密算法
来源:本站 作者:admin 时间:2019-04-26 17:18:10

很多人只知道Https比Http更安全,至于为什么更安全,那就不太清楚了,因为别人都这么说。其实,Https就是在Http基础上通过SSL协议进行加密之后的网络传输,并通过非对称和对称加密算法来对密码和数据进行加密。


Https协议的通信原理及加密算法


我们先来看一张图,再辅以说明其通信过程:


1、Client明文将自己支持的一套加密规则、一个随机数(Random_C)发送给Server。


2、Server返回自己选择的加密规则、CA证书(服务器地址、加密公钥、证书颁发机构)以及一个通过加密规则和HASH算法生成的随机数(Random_S)。


3、Client收到Server的消息之后会有以下行为:


a、验证证书(地址是否是正在访问的、机构是否合法的);


b、自己生成一个随机的密码(Pre_master)并使用CA证书中的加密公钥进行加密(enc_pre_master);


c、计算出一个对称加密的enc_key,通过Random_C、Random_S、Pre_master生成握手信息;


d、使用约定好的Hash算法计算握手信息,并通过enc_key和约定好的加密算法对消息进行加密。


4、Client将enc_pre_master、加密之后的握手消息发送给Server。


5、Server收到握手消息之后会有以下行为:


a、收到enc_pre_master之后,会通过私钥进行解密(非对称加密算法)得到pre_master;


b、通过pre_master、Random_C、Random_S计算得到协商密码enc_key;


c、通过enc_key解密握手信息,验证Hash是否和客户端发来的一致;


d、生成握手信息同样使用enc_key和约定好的加密算法。


6、Server发送握手信息给Client,也就是说Server验证通过了Client,并再次发送消息给Client让其验证自己。


7、Client拿到握手信息解密,握手结束。客户端解密并计算握手信息的Hash,如果与Server发来的Hash一致,此时握手过程结束。


8、正常加密通信,握手成功之后,所有的通信数据将由之前协商密钥enc_key及约定好的算法进行加密解密。


其中Https使用到的加密算法如下:


非对称加密算法:RSA,DSA/DSS;


对称加密算法:AES,RC4,3DES;


HASH算法:MD5,SHA1,SHA256。


相关文章内容简介
在线客服
大客户VIP渠道
点击这里给我发消息
讨论QQ群
HTTP代理IP爬虫
客服电话
13318873961