HTTPS

HTTPS

https全称(Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),简单来说它是http的安全版,即http加入SSL层,https的安全基础就是SSL,它是一个URL。用于安全的http(文本)数据传输

https涉及到的主题

1、客服端如(IE、chrome、)自己编写的客户端程序
2、服务端,指支持https访问的网站 如 百度、阿里
3、CA(Certificate Authorities)机构。Https证书签发和管理机构,比如Symantec、Comodo、GoDaddy、GlobalSign。

为什么使用https?

https保证了数据传输的私密性、安全性、完整性。因为http是明文传输,如果我们用它进行传输。
就会被一些不法人员使用网络的抓包具进行拦截如wireShark。那么很有可能我们的个人隐私、支付信息…都会被泄露掉,甚至信息被篡改。所以今天的我们,将自己的敏感信息进行传播的时候,就不用担心这个问题了

https的工作流程

在这里插入图片描述

1、初始化阶段。

Clienthello

客户端创建随机数,发送Client,Hello将随机数连同自己支持的协议版本、加密算
法和压缩算法发给服务器。服务器回复ServerHello将自己生成的随机数连同选择
的协议版本、加密算法和压缩算法给客户端

这个是用wireshark的一个工具、进行网络抓包,可以清楚看见客户端与服务端的一个交互

在这里插入图片描述

另外我们还可以看见里面的详细信息

在这里插入图片描述
不难看出这里面分别包含了:
1.版本信息(TLS 1.2)
2.随机数
3.Session ID(用于加快握手过程)
4.加密套
5.压缩算法

同样我们的服务端也会做出一个回应:Serverhello在这里插入图片描述

2.认证阶段 Certificate。

服务器发送Server Hello的同时可能将包含自己公钥的证书发送给客户端,并请求客户端的证书

上面的Server Hello已经制定了接下来的非对称加密算法

服务端下发证书,客户端验证服务端身份,并且取出证书携带的公钥,这个公钥是交换加密算法的公钥。也就是在Server Hello阶段指定(EC Diffie-Hellman)算法,也是通常说的DH加密。

接着服务端会发送:Server hello Done
在这里插入图片描述

这个Server Hello Done ,就像TCP协议的ACK确认包已将,服务端也给了个确认的信息,通知客户端已经做好进入下一个阶段的准备。

3.密钥协商阶段。

客户端验证证书,如果收到Certificate Request则发送包含自己公钥的证书,同时对此前所有握手信息进行散列运算,并使用加密算法进行加密发送给服务器。同时创建随机数pre-master-secret使用服务器公钥进行加密发送。服务器收到ClientKeyExchange之后解密得到pre-master-secret。服务器和客户端利用1阶段的随机数,能够计算得出master-secret。

Client Key Exchange

这里,客户端不直接生成加密密钥,而是通过之前客户端和服务端生成的随机数又再生成一个随机数,使用前面协商好的用 EC Diffie-Hellman 算法进行加密传输给服务端。这个值又被称为 “premaster secret“。

服务端收到这个报文之后,会使用私钥解开这个随机数
在这里插入图片描述

4.握手终止。

服务器和客户端分别通过ChangeCipherSpec消息告知使用master-secret对连接进行加密和解密,并向对方发送终止信息(Finshed)。

Change Cipher Spec(Client)

客户端通知服务端,咱俩可以进行密文传输了。

Encrypted Handshake Message(Client)

这里就是客户端的 Client Finished 消息。

也是整个 SSL 过程中,发送给服务端的第一个加密消息。

服务端接收后,服务端用同样的方式计算出已交互的握手消息的摘要,与用主密钥解密后的消息进行对比,一致的话,说明两端生成的主密钥一致,完成了密钥交换

Change Cipher Spec(Server)

服务端通知客户端,OK,咱俩后续的报文将会被加密。

Encrypted Handshake Message(Server)

这里就是服务端的 Server Finish 消息。

和上面的客户端的 Encrypted Handshake Message 一样,是服务端发出的第一条加密信息。

客户端按照协商好的主密钥解密并验证正确后,SSL 握手阶段完成。

对于目前的技术来讲HTTPS还是相对可靠的:如百度、阿里…所以我们将敏感信息进行传送的时候,足以看出https对我们的重要性!

																				Jason_Gu
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值