【HTTPS】HTTPS RSA握手解析

本文详细介绍了HTTPS中的TLS握手过程,以解决HTTP通信中的窃听、篡改和冒充风险。TLS通过信息加密、校验机制和身份证书确保通信安全。在RSA秘钥交换算法中,客户端与服务端通过四个消息交互完成握手,包括确认TLS版本、选择密码套件、交换证书以及协商会话秘钥。证书链的验证确保了服务器身份的真实性,防止中间人攻击。最后,双方使用会话秘钥进行加密通信,确保数据安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TLS握手过程

HTTP由于是明文传输,所谓的明文,就是客户端与服务端通信的信息都是肉眼可见的,随时用一个抓包工具都可以接活通信的内容。

所以安全上存在一下三个风险:

  • 窃听风险,比如通信链路上可以获取通信内容。
  • 篡改风险,比如强制植入垃圾广告。
  • 冒充风险,比如钓鱼网站。

HTTPS在HTTP与TCP层之间加入了TLS协议,来解决上述的风险。

TLS协议是如何解决HTTP的风险呢?

  • 信息加密:HTTP交互信息是被加密的,第三方就无法窃取。
  • 校验机制:校验信息UR书过程中是否有被第三方篡改过,如果被篡改过,则会有警告提示;
  • 身份证书:证明是真的网站。

可见,有了TLS协议,能保证HTTP通信是安全的了,那么在进行HTTP通信前,需要先进性TLS握手。如图1所示。

图1 TLS的握手过程


上图简要介绍了TLS的握手过程,其中每一个框都是一个记录,记录是TLS收发数据的基本单位,类似于TCP里的segment。多个记录可以组合成一个TCP包发送,所以通常经过四个消息局可以完成TLS握手,也就是需要2个RTT的时延,然后就可以在安全的通信环境里发送HTTP报文,实现HTTPS协议。

所以可以发现,HTTPS是应用层协议,需要先完成TCP连接建立,然后走TLS握手过程,才能建立通信安全的连接。

事实上,不同的秘钥交换算法,TLS的握手过程可能会有一些区别。

秘钥交换算法,因为考虑到性能的问题,所以双方在加密应用信息时使用的是对称加密秘钥,而对称加密秘钥是不能被泄漏的,为了保证对称加密秘钥的安全性,所以使用非对称加密的方式来保护对称加密秘钥的协商,这个工作就是秘钥交换算法负责的。

接下来,我们就以最简单的RSA秘钥交换算法,来看看它的TLS握手过程。

RSA握手过程

传统的TLS握手基本都是使用RSA算法来实现秘钥交换的,在将TLS证书部署服务端时,证书文件中包含一堆公私钥,其中公钥会在TLS握手阶段传递该客户端,私钥则一直留在服务端,一定要确保私钥不能被窃取。

在RSA秘钥协商算法中࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值