美文网首页
小马哥网络课笔记28----https

小马哥网络课笔记28----https

作者: 夜凉听风雨 | 来源:发表于2022-03-14 22:42 被阅读0次

https

  • HTTPS (HyperText Transfer Protocol Secure) ,译为:超文本传输安全协议
    1、常称为HTTP overTLS、HTTP over SSL、HTTP Secure
    2、由网景公司于1994年首次提出

  • HTTPS的默认端口号是443 (HTTP是80)

SSL/TLS

  • HTTPS是在HTTP的基础上使用SSL/TLS来加密报文,对窃听和中间人攻击提供合理的防护

  • SSL/TLS也可以用在其他协议上,比如:
    1、FTP→FTPS
    2、SMTP→SMTPS

图片.png
  • TLS (Transport Layer Security) ,译为:传输层安全性协议
    前身是SSL (Secure Sockets Layer) ,译为:安全套接层

  • 历史版本信息
    SSL 1.0: 因存在严重的安全漏洞,从未公开过
    SSL 2.0: 1995年,已于2011年弃用(RFC 6176)
    SSL 3.0: 1996年,已于2015年弃用(RFC 7568)
    TLS 1.0: 1999年(RFC 2246)
    TLS 1.1: 2006年(RFC 4346)
    TLS 1.2: 2008年(RFC 5246)
    TLS 1.3: 2018年(RFC 8446)

SSL/TLS工作在哪一层

工作在应用层和传输层之间,分为握手层和记录层。

图片.png

https的成本

  • 证书的费用
  • 加解密的计算
  • 降低了访问速度
  • 有些企业的做法是:包含敏感数据的请求才使用HTTPS,其他保持使用HTTP

https的通信过程

总的可以分为3大阶段

  • TCP的3次握手
  • TLS的连接
  • HTTP请求和响应
通信过程.png

TLS 1.2 连接

TLS 1.2连接大致需要10个步骤
图片中省略了中间产生的一些ACK确认

TLS连接步骤.png

通过wireshark抓包,可以看到大致过程。

抓包.png
TLS连接第一步:Client Hello
  • TLS的版本号
  • 支持的加密组件(Cipher Suite) 列表
    加密组件是指所使用的加密算法及密钥长度等
  • 一个随机数(Client Random)
ClientHello抓包内容.png
TLS连接第二步:Server Hello
  • TLS的版本号
  • 选择的加密组件
    是从接收到的客户端加密组件列表中挑选出来的
  • 一个随机数(Server Random)
ServerHello抓包内容.png
TLS连接第三步:Certificate
  • 服务器的公钥证书(被CA签名过的)
Certificate抓包内容.png
TLS连接第四步:Server Key Exchange
  • 用以实现ECDHE算法的其中一个参数(Server Params)
    ECDHE是一种密钥交换算法
    为了防止伪造,Server Params经过了服务器私钥签名
Server Key Exchange抓包内容.png
TLS连接第五步:Server Hello Done
  • 告知客户端,协商部分结束
Server Hello Done抓包内容.png
  • 目前为止,客户端和服务器之间通过明文共享了
    Client Random、 Server Random、 Server Params
  • 而且,客户端也已经拿到了服务器的公钥证书,接下来,客户端会验证证书的真实有效性
TLS连接第六步:Client Key Exchange
  • 用以实现ECDHE算法的另一个参数(Client Params)
Client Key Exchange抓包内容.png
  • 目前为止,客户端和服务器都拥有了ECDHE算法需要的2个参数:Server Params、Client Params
  • 客户端、服务器都可以使用ECDHE算法
  • 根据Server Params、 Client Params计算出一个新的随机密钥串:Pre-master secret
  • 然后结合Client Random、 Server Random. Pre-master secret生成用以加密会话的会话密钥
TLS连接第七步:Change Cipher Spec
  • 告知服务器:之后的通信会采用计算出来的会话密钥进行加密
Change Cipher Spec抓包内容.png
TLS连接第八步:Finished
  • 包含连接至今全部报文的整体校验值(摘要) ,加密之后发送给服务器
  • 这次握手协商是否成功,要以服务器是否能够正确解密该报文作为判定标准
Finished抓包内容.png
TLS连接第九步:Change Cipher Spec
  • 服务器验证第八步客户端发送的加密内容没问题后
  • 告知客户端:之后的通信会采用计算出来的会话密钥进行加密
Change Cipher Spec抓包内容.png
TLS连接第十步:Finished
  • 包含连接至今全部报文的整体校验值(摘要) ,加密之后发送给客户端
Finished抓包内容.png

到此为止,客户端服务器都验证加密解密没问题,握手正式结束
后面开始传输用上面协商的加密方式加密后的的HTTP请求和响应

相关文章

网友评论

      本文标题:小马哥网络课笔记28----https

      本文链接:https://www.haomeiwen.com/subject/nxdddrtx.html