HTTPS TSL/SSL详解

HTTPS实际上是HTTP Security的简称,从本质上说https还是http,只不过对于https,在传输层多了一步,加密。

先说传统的http通信,http属于应用层协议,那么它本质上是tcp/ip协议的表现层而已,那么tcp处于传输层,ip处于网络层,

https即是在被打包传输之前多了一步加密,它使用的协议是ssl/tsl,现在很少说ssl,按照国际标准应该是tsl,tsl是Transport Layer Security,

那么tsl就属于传输层的另一种协议,大家晓得tcp/ip会话,会进行三次握手,那么tsl呢?

   TSL在通信过程中会进行四次握手,这里我只说明我们常见的一般网站的https,不会对于银行金融私有密钥的https来说明。

    实际上这个图怎么说,刚一开始看你也看不懂,说实话这图也根本看不出tsl跟tcp有何区别,不过我这里只是进行一种理解式的阐述,并不做深入的专业的探讨。

第一次通信:当我们请求https://github.com,首先浏览器会携带以下信息:client hello,支持的tsl版本,一个随机数,支持的加密方法(通常为rsa及其变种)。

这里我得解说一个概念:首先你得明白什么是对称密钥,什么是非对称密钥。对称密钥就是一对密钥,非对称就是两对,双发各持对方一个公钥,自己撰着自己的私钥,

双发所持的对方的公钥可以解开对方用私钥加密的信息。那么这里我说明,tsl是使用的是非对称密钥进行加密通信的。

这里再进行一个解说:rsa这是一种算法,这种算法是根据大公因式分解的非逆向性来设计的,由两个固定常数加两组随机数构成。大概理解就行,详细可以去搜。

第二次通信:server端收到信息后,如果客户端的版本它支持,那么它会往回发送一次server hello,确定双发使用的协议版本通常为tsl1.1,加密方式,一个随机数,还有一个很重要的它网站自己的证书。

在客户端收到server端发来的证书,它会去这个专门的机构网站拿着这证书去获取它的信息,这信息里一般会包含网站域名信息,网站的公钥,证书实际上也就是网站身份信息,之所以server给客户端发这个证书,就是为了让客户端确认所访问的身份。

第三次通信:在客户端确认了server端的身份后,客户端自己再生成一组随机数,此时,共有三组随机数,这个时候就可以生成一对对称密钥,一个留作自己加密,另一个作为公钥,用server端发来的公钥对自己的公钥进行加密,然后连带这次产生的随机数发给服务端。

第四次通信:服务端收到客户端发来的信息用自己网站私钥进行解密后,自己再根据三次随机数生成一对对称密钥,并留自己的私钥,把这次生成的公钥通过对方的公钥加密发送回去,并确认本次会话结束,接下来双发就构成了两对非对称密钥,此后的会话都属于正常的http通信,只是有了加密。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值