TCP/IP详解——HTTPS 协议

news2024/11/14 3:59:10

文章目录

  • 1. HTTPS 协议
    • 1.1 HTTPS 原理
    • 1.2 HTTPS 过程
    • 1.3 从数据包角度看 HTTPS 交互过程
    • 1.4 常见的 HTTPS 数据包解码
      • 1.4.1 ClientHello 数据包
      • 1.4.2 ServerHello 数据包
    • 1.5 思考

1. HTTPS 协议

1.1 HTTPS 原理

HTTPS概念

HTTPS 是以安全为目标的HTTP通道,并不是独立于HTTP的一个全新协议,而是在HTTP协议的基础上,添加了**SSL/TLS **握手以及数据加密传输,也属于应用层协议。HTTPS 工作在TCP协议的==443==端口。

在这里插入图片描述

HTTP缺点

  1. 通信的时候使用的是明文,内容可能会被窃听。
  2. 不验证通信方的身份信息,有可能遭遇身份伪造。
  3. 无法证明报文的完整性,有可能信息以及被修改。

HTTPS = HTTP + 加密 + 认证 + 完整性保护。

定义

  • HTTPS(全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。

1.2 HTTPS 过程

在这里插入图片描述

HTTPS和HTTP的过程没有什么区别,只是多了一个通过SSL建立加密通道的一个操作。

一开始进行TCP三次握手建立连接,双方开始交互报文。然后建立SSL加密通道,在加密通道中进行HTTP协议的通信。这个时候传输的数据就是密文了。最后数据传输结束后连接断开。

因此在进行HTTPS协议流量分析的时候,往往是分析SSL加密隧道的建立过程。通过对SSL加密隧道的建立过程,可以了解一些信息,判断连接是否安全。

1.3 从数据包角度看 HTTPS 交互过程

image-20231114202349625

  • 在三次握手结束后,由客户端发送一个ClientHello的数据包,在ClientHello的数据包中,客户端会先声明自己所使用的HTTPS的版本,以及声明客户端自己支持的一些加密算法等信息。
  • 服务器在收到ClientHello数据包的时候,会在ClientHello数据包中发来的众多的加密算法中选择安全性最高的一种,作为之后双方交互时使用的加密算法。Server将会选中其中一个算法,发送ServerHello报文。
  • 然后还会发送一个自己的证书(Certificate)给Client。在服务器发送的证书中包含有公钥。属于非对称加密算法,使用公钥加密的数据只能使用私钥去解密,使用私钥加密的数据只能使用公钥去解密。
  • 最后服务器会发送一个SeverHelloDone的消息通知客户端ServerHello结束了。在ServerHello结束后在客户端会生成一个密钥,这个密钥是用于他们以后所有的交互所使用的正常的加密密钥。(这个密钥是使用对称加密算法生成的如:AES,3-DES等典型的对称加密算法)将这个生成的密钥通过Server发送过来的公钥进行加密,这个生成的密钥只能由服务器去解密(公钥加密只能私钥解密)。
  • 客户端会把使用Server公钥加了密的密钥发送给服务器。
  • 客户端发送一个Change Cipher Spec消息表示之后都使用这个加了密的密钥来进行通信。ChangeCipherSpec 是一个独立的协议,体现在数据包中就是一个字节的数据,用于告知服务端,客户端已经切换到之前协商好的加密套件(Cipher Suite)的状态,准备使用之前协商好的加密套件加密数据并传输了。
  • Clinet Finished客户端握手结束通知, 表示客户端的握手阶段已经结束。
  • 服务器使用加了密的密钥来加密一些数据发送给客户端,双方进行测试。如果测试成功的话,双方都使用对称加密算法进行加密了。
  • Server Finished服务端握手结束通知。
  • ⑩… 所以在协商好密钥之后,以后所有的内容都是通过对称加密算法的密钥进行加密了。

1.4 常见的 HTTPS 数据包解码

1.4.1 ClientHello 数据包

客户端发送给服务器的Client数据包

image-20231124214347845

image-20231124214645328

1.4.2 ServerHello 数据包

服务器发送给客户端的ServerHello数据包

服务器会在ClientHello数据包中众多的密码套件中选择一种

image-20231124215029399

image-20231124220005266

1.5 思考

为什么在浏览器使用http协议访问到某一站点时,最终交互时会使用https协议

  1. 服务器强制重定向
    • 服务器可以通过配置强制将HTTP请求重定向到HTTPS。这意味着当尝试使用HTTP访问某个站点时,服务器会发送一个特殊的响应,告诉你使用HTTPS访问。浏览器接收到这个响应后会自动将请求的URL修改为HTTPS,并重新发送请求。
  2. HSTS(HTTP Strict Transport Security)策略
    • 当你首次使用HTTPS访问一个网站时,网站可以在响应头中设置HSTS策略。HSTS是一种安全机制,它告诉浏览器在一段时间内(通常是几个月),只能使用HTTPS与该网站进行通信,不再尝试使用HTTP。当你再次尝试使用HTTP访问该网站时,浏览器会自动将请求转换为HTTPS。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1315661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在线弹钢琴网站源码,带练习教学和推销乐谱功能

源码介绍 AutoPiano-在线弹钢琴网站源码,在线钢琴模拟器,自由在线弹奏虚拟钢琴,是所有人的绝佳音乐平台。 背景图片在./static/images, 另外需要在js内的0.7fc8a67cbbcb823cf89e.js和1.f9a3f1dba143d1b59ca4.js修改图片对应路径。 钢琴声…

Docker 部署 Lobe Chat 服务

拉取最新版本的 Lobe Chat 镜像: $ sudo docker pull lobehub/lobe-chat:latest使用以下命令来运行 Lobe Chat 容器: $ sudo docker run -d --name lobe-chat -p 10084:3210 -e OPENAI_API_KEYsk-xxxx -e OPENAI_PROXY_URLhttps://api.openai.com/v1 -e ACCESS_CO…

《Linux C编程实战》笔记:实现自己的ls命令

关键函数的功能及说明 1.void display_attribute(struct stat buf,char *name) 函数功能:打印文件名为name的文件信息,如 含义分别为:文件的类型和访问权限,文件的链接数,文件的所有者,文件所有者所属的组…

2023年【公路水运工程施工企业安全生产管理人员】考试总结及公路水运工程施工企业安全生产管理人员试题及解析

题库来源:安全生产模拟考试一点通公众号小程序 公路水运工程施工企业安全生产管理人员考试总结根据新公路水运工程施工企业安全生产管理人员考试大纲要求,安全生产模拟考试一点通将公路水运工程施工企业安全生产管理人员模拟考试试题进行汇编&#xff0…

PCL点云处理之自定义生成多种类型的圆柱点云(C++)(二百二十五)

PCL点云处理之自定义生成多种类型的圆柱点云(C++)(二百二十五) 一、算法介绍1.空心圆柱点云2.实心圆柱点云二、算法实现1.生成方法1(空心)2.生成方法2(实心)一、算法介绍 根据自己指定的圆柱长度、圆柱半径、以及中心轴的方向,生成一个圆柱点云数据,保存在PCD文件中…

c#可变参数(params)关键字

通过使用 params 关键字,可以指定采用可变数量参数的方法参数。 可以发送参数声明中指定类型的参数的逗号分隔列表,也可以发送指定类型的参数数组。您也可以不发送任何参数。如果未发送任何参数,则参数列表的长度为零。 方法声明中的 param…

Anaconda中使用Jupyter出现’No module named ‘pymysql‘问题解决

问题截图: 解决办法: 一.找到Anaconda所在文件夹,文件夹处输入 cmd 进入命令控制 二. 在打开的cmd中输入‘conda install pymysql’ 三、输入y 安装完成~ 测试: import pandas as pd from sqlalchemy import create_engine …

同义词替换降低论文抄袭率的有效性探讨 papergpt

大家好,今天来聊聊同义词替换降低论文抄袭率的有效性探讨,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧,可以借助此类工具: 标题:同义词替换降低论文抄袭率的有效性探…

Redis实现延迟队列

目录 一、什么是延时队列 二、延时队列的应用 三、举例说明 我的设计思想: 一、什么是延时队列 延时队列相比于普通队列最大的区别就体现在其延时的属性上,普通队列的元素是先进先出,按入队顺序进行处理,而延时队列中的元素在入队时会指定…

【Android12】WindowManagerService架构分析

Android WindowManagerService架构分析 WindowManagerService(以下简称WMS) 是Android的核心服务。WMS管理所有应用程序窗口(Window)的Create、Display、Update、Destory。 因为Android系统中只有一个WMS(运行在SystemServer进程),可以称其为…

拼多多ID取商品详情API:电商行业的秘密武器与实时数据获取的智慧之路

一、引言 电商行业是一个不断发展和创新的领域,各种电商平台不断涌现,为消费者提供了更加便捷和多样化的购物体验。拼多多作为中国电商市场的一匹黑马,以其独特的社交电商模式和丰富的商品资源,吸引了大量用户。为了满足用户对商…

多模态融合-MVP

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言在这里插入图片描述 通过将激光点云3D BBox投影道2D图像,可以发现激光对远处的目标检测要弱于传统的2D detector,所以作者想用2D的图像信息去补充3D的点云信息。一、MVP优势二、MVP方法1.Lid…

【QT】非常简单的登录界面实现

本系列是作者自学实践过程的记录 本文是关于登录界面设计 有问题欢迎讨论 效果图: 一、创建项目和主界面 创建Qt Widget Application 这里我们使用qmake而不是cmake 这是主界面,登录界面等后面再创建,这里要勾选上generate form&#xff0…

AI智能化办公:ChatGPT使用方法与技巧

文章目录 ChatGPT简介✨ChatGPT的使用方法✨登录与访问发送请求调整参数 ChatGPT技巧分享✨清晰的提问实验不同的温度值多轮对话 图书推荐✨AI智能化办公内容简介获取方式 AI短视频内容简介获取方式 随着人工智能技术的不断发展,AI助手在办公场景中扮演着越来越重要…

windows10 php8连接sql server

一、环境安装 文章目录 一、环境安装1.安装php拓展2.在 Windows 上安装PHP驱动程序3.在 Windows 上安装ODBC驱动 二、php连接sqlserver三、注意事项数据库相关设置相关语法sqlsrv_fetch_array 的示例:sqlsrv_fetch 的示例:echo 和 print_r 的不同 所用资…

抠图软件哪个好用?什么软件可以抠图换背景?

抠图软件哪个好用?在图片处理中,抠图换背景是一项常见的操作。很多新手可能会对此感到困惑,不知道应该使用什么软件来进行抠图换景。实际上,现在市面上有很多图片处理软件都具备抠图换背景的功能,每款软件都有其优缺点…

王世军:铁笔翰墨染丹青 九峰冠华传千古

鸡是十二生肖中一员,在民间过年时常被剪成窗花,贴于窗户大门上。为表达人们对鸡的喜爱,将正月初一定为“鸡日”,鸡谐音“吉”,意为大吉大利,讨个好彩头。鸡又为“五德之君”,鸡的五德谓之文、武…

前端基础——鼠标事件对象属性和方法

button:0(未按下)1(左键)2(右键)4(中键) clientX/clientY(表示事件在客户端区域的水平和垂直坐标,左上为原点) ctrlKey表示鼠标事件发生时是否按下了ctrl键 MouseEvent.offsetX和MouseEvent.offsetY表示鼠标相对于目标节点内部填充区域的偏移量 MouseEvent.screenX和MouseE…

终端安全管理软件安装详细攻略来了

随着信息技术的不断发展,终端安全管理软件在企业和组织中发挥着越来越重要的作用。为了确保终端设备的安全和稳定运行,安装终端安全管理软件是必不可少的。以下是一份终端安全管理软件的安装详细攻略,供大家参考。 一、选择合适的软件 首先&…

空洞文件读取空洞部分的返回值

在空洞文件中,未显式写入的部分被称为"空洞"。当读取空洞部分时,系统会返回字节值为0的数据。 这意味着,当你在空洞文件中读取一个偏移量处的数据,而该偏移量位于空洞部分时,读取操作将返回一个全是0的字节…