HTTPS是什么?SSL/TLS握手过程

HTTPS是在HTTP基础上通过SSL/TLS实现数据加密的安全通信协议。服务端需申请由CA颁发的SSL证书,包含公钥和私钥。TCP三次握手后,客户端与服务端进行TLS握手,包括ClientHello、ServerHello、证书交换、密钥协商等步骤,最终双方生成相同的会话密钥进行后续加密通信。此过程涉及非对称加密,资源消耗较大,但确保了数据安全性。
摘要由CSDN通过智能技术生成

学过http的都知道http发送数据都是明文方式,数据是没有安全性的,因此诞生了https,https就是在http的基础上进行SSL/TLS加密(现如今都是TLS加密)。

服务端需要申请SSL证书,这个SSL证书是需要向CA第三方机构申请的,这个证书表明域名属于谁,这个证书里还包括了特定的公钥和私钥,服务器安装SSL证书后,用户就可以通过HTTPS来访问服务器了

学过http的都知道http是建立在tcp上的,而https就是在tcp三次握手后在进行一次TLS握手,这个握手是如何进行的如下所示:

(首先得知道服务端持有公钥和私钥)

1.client hello(客户端发给服务端)

客户端把自己支持的TLS版本,加密套件发送给服务端,并同时生成一个随机数给服务端(称其为第1个随机数)。

2.server hello(服务端发给客户端)

服务端确认支持的TLS版本以及选择的加密套件,并且服务器也生成一个随机数给客户端(称其为第2个随机数)。

3.certificate(服务端发给客户端)

服务端向客户端发送证书

4.server key exchange(服务端发给客户端)

服务端向客户端发送公钥

5.server hello done(服务端发给客户端)

服务端确认发送完毕后,会告诉客户端都发送完毕。

6.客户端收到server hello done后,再生成一个随机数(第3个随机数,也成为预主密钥)

7.client key exchange,change cliper spec,encrypted handshake message(客户端发给服务端)

客户端生成的第三个随机数不是直接发送给服务端的,是通过服务端发送来的公钥进行加密,然后再发送给服务端;然后服务端接收到加密的预主密钥通过私钥解密得到了真正的第3个随机数。

进行上面的7步后,客户端和服务端都会有三个随机数,并且只有他们自己知道,除非私钥被泄露。

8.encryted handshake message(服务端发送给客户端)

这样客户端和服务端都通过这三个随机数计算出会话密钥,并且得到的会话密钥是相同的,TLS握手已经成功了,可以进行加密数据交换了。

上面的整个过程就是非对称加密,这个过程资源消耗很大;所以接下来的会话不会采用这个加密方式。

因为得到了会话密钥,而且这个密钥只有他们自己知道,所以后面的会话直接通过这个会话密钥对数据加密就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值