HTTPS传输过程

HTTPS:超文本传输安全协议
相较于HTTP明文传输,HTTPS增加了SSL/TLS进行了加密增加了通信的安全性。
SSL和TLS是两个不同的加密方法,SSL是TLS的前身,现在绝大多数浏览器使用的是TLS,所以着重了解以下TLS的概念即可。

首先了解以下加密的概念,信息传输的过程中为了防止别人监听我们就需要对传输的信息进行加密,加密模式有两种对称加密和非对称加密。

  • 对称加密:双方使用相同的公钥和私钥,容易被暴力破解
  • 非对称加密:两个人使用不同的私钥和公钥

非对称加密的过程:

  • 客户端发送自己的公钥
  • 服务器发送自己的公钥,以及使用客户端公钥加密的自己的私钥
  • 客户端发送使用服务器公钥加密的私钥
  • 现在双方都有对方的私钥和公钥就可以进行信息传输了

对称加密也存在它的问题,比如沟通的对象并不能保证是真实的客户端,一旦服务器的私钥泄漏会造成很大的问题,TLS考虑到这种情况采用了两种策略。

  • 数字证书验证
  • 由非对称加密转向对称加密

数字证书这个东西相信都见过,浏览一些问题网站时经常会遇到浏览器提示对方的数字证书有风险

HTTPS四次握手

  • 客户端发送一个client hello,告诉服务端采用的TLS版本及支持的加密套件,同时还有一个随机数这里记作r1

  • 服务器发送一个server hello,告诉客户端,服务器确认支持的TLS版本号及选择的加密套件,生成随机数r2,同时发送服务器的CA证书,如果服务器需要客户端的数字证书的话在这个阶段发出请求

  • 客户端的浏览器根据自己的证书信任列表判断这个服务器是否可信,没问题的话,客户端发送一个client key exchange,使用CA证书中的公钥加密一个随机数r3(预主密钥),同时告诉服务器接下来使用会话密钥通信并提取所有握手数据的摘要供服务器校验

  • 服务器使用私钥对预主密钥进行解密得到第三组随机数,然后使用约定的加密算法使用三组随机数生成会话密钥,服务器进行最后的响应,通知客户端接下来可以使用会话密钥了,同时把之前握手的数据进行提取摘要发送过去供客户端校验

HTTPS优点

  • 整个过程中私钥并未进行传输所以安全性更高,如果服务器的私有不泄露一般不会出现信息泄漏的情况
  • 引入了CA证书,有了证书的加持连接行为变得可控了许多

下面简单看一下数组证书的内容
在这里插入图片描述

使用数字证书的好处可以举一个例子,比如半夜你正在一个使用HTTP的网站看小说,这个时候你的室友想要整蛊你一下,他就可以通过一些工具模拟成一个中间人,你和他之间进行交换密钥,他和网站交换密钥,它可以修改你发送的信息然后修改之后再转发给服务器,这个过程神不知鬼不觉。

CA证书验证过程

  • 使用颁发证书机构提供的公钥提取数字签名得到一个证书内容的哈希值,然后自己对证书内容进行哈希,比较两段内容是否一样

所以说引入了CA证书后就可以确保和你通信的就是他本人了,他对证书内容进行修改的话也会因为没有颁发机构的私钥而无法得到正确的数字签名。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

算法——滑动窗口,按位或

先看最简单的:删除有序数组中的重复项 . - 力扣(LeetCode) 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该…

编曲知识11:吉他扫弦织体编写 基础贝斯编写 采样、小打编写

吉他扫弦织体编写 基础贝斯编写 采样、小打编写小鹅通-专注内容付费的技术服务商https://app8epdhy0u9502.pc.xiaoe-tech.com/live_pc/l_65f033afe4b092c16848e512?course_id=course_2XLKtQnQx9GrQHac7OPmHD9tqbv 吉他编写(二) 扫弦木吉他 扫弦模式开关:先点击点击红色箭…

你知道Linux线程池的重要性吗?带你手撕线程池

⭐小白苦学IT的博客主页 ⭐初学者必看:Linux操作系统入门 ⭐代码仓库:线程池实现源码 ❤关注我一起讨论和学习Linux系统 1.前言 你了解过Linux线程池吗?不了解?没有关系,先来带你了解一下我们的池化技术,以…

【练习】滑动窗口思想

🎥 个人主页:Dikz12🔥个人专栏:Java算法📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香欢迎大家👍点赞✍评论⭐收藏 目录 1.长度最小的子数组 题目解析 讲解 代码实现 2.无…

AI绘画教程:Midjourney使用方法与技巧从入门到精通

文章目录 一、《AI绘画教程:Midjourney使用方法与技巧从入门到精通》二、内容介绍三、作者介绍🌤️粉丝福利 一、《AI绘画教程:Midjourney使用方法与技巧从入门到精通》 一本书读懂Midjourney绘画,让创意更简单,让设计…

编曲知识12:了解弦乐 四部和声 弦乐群奏写作 编组、文件夹轨应用

认识弦乐 认识提琴 String:弦乐 Basse:倍大提琴 Cello:大提琴 Viola:中提琴 Violin:小提琴 音源介绍(一) LA Scoring Strings 简称:Lass/拉丝弦乐 Basses:倍大提琴组 Cellos:大提琴组 LASS Ensemble Patches:大齐奏 Violas:中提琴组 ViolinsⅠ:小提琴一组 Violin…

数字乡村发展蓝图:科技赋能农村实现全面振兴

目录 一、数字乡村发展蓝图的内涵与目标 二、科技赋能农村:数字乡村发展的动力与路径 (一)加强农业科技创新,提升农业生产效率 (二)推进农村电商发展,拓宽农民增收渠道 (三&…

【C++】C++11的新特性

目录 一. 列表初始化1. 列表初始化的原理: initializer_list 二. 类型的声明1. auto2. decltype 三. nullptr四. 范围 for五. STL容器变化六. 类的新功能 一. 列表初始化 在 C 语言中, 就可以使用 {} 对数组或结构体进行初始化, 而 C11 扩大了 {} 的使用范围, 使其可以初始化所…

探索http-vue-loader的奥秘:原理、使用方法、在Vue开发中的应用

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

《深度学习入门之PyTorch》书籍阅读笔记

《深度学习入门之PyTorch》书籍阅读笔记 ISBN 978-7-121-32620-2 多层全连接神经网络 Pytorch基础 Tensor张量 是一个多维矩阵,pytorch的tensor可以和numpy的ndarray相互转换,但numpy的ndarray只能在CPU上运行。不同数据类型的Tensor,t…

2024 年高效开发的 React 生态系统

要使用 React 制作应用程序,需要熟悉正确的库来添加您需要的功能。例如,要添加某个功能(例如身份验证或样式),您需要找到一个好的第三方库来处理它。 在这份综合指南中,我将向您展示我建议您在 2024 年使用…

多协议支持 API 调测客户端:Postman 的强力替代品 | 开源日报 No.210

Kong/insomnia Stars: 32.6k License: Apache-2.0 insomnia 是一个开源的、跨平台的 API 客户端,支持 GraphQL、REST、WebSockets、SSE 和 gRPC 协议,并提供云存储、本地存储和 Git 存储。 调试各种流行协议和格式的 API。使用原生 OpenAPI 编辑器设计…

计算机网络-HTTP相关知识(一)

HTTP基础 基本概念:HTTP是一种计算机之间交流通信的规范,它允许数据在两点之间传输,这个过程可以包括中转或接力。HTTP不仅仅包括文本,还可以包括图片、音频等超文本。状态码:HTTP状态码分为五类: 2xx&…

11-SpringSecurity:Session共享,菜鸟驿站java面试题

pom依赖 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-security org.springframework.boot spring-boot-starter-data-redis org.springframework.session spring-session-data-redis org.projectlombok lombok …

蓝桥杯第十五届抱佛脚(八)并查集

蓝桥杯第十五届抱佛脚(八)并查集 基本概念 并查集是一种数据结构,用于管理一系列不交集的元素集合,并支持两种操作: 查找(Find): 查找操作用于确定某个元素属于哪个集合&#xf…

Java基础学习: JDK动态代理

文章目录 一、什么是JDK动态代理二、JDK动态代理的特点三、JDK动态代理类如何使用四、JDK动态代理原理分析1、创建代理对象2、生成代理类 一、什么是JDK动态代理 JDK动态代理是Java提供的一种动态生成代理类和代理对象的技术。它主要利用Java的反射机制实现,在运行…

Lucene及概念介绍

Lucene及概念介绍 基础概念倒排索引索引合并分析查询语句的构成 基础概念 Document:我们一次查询或更新的载体,对比于实体类 Field:字段,是key-value格式的数据,对比实体类的字段 Item:一个单词&#xff0…

【计算机网络】四层负载均衡和七层负载均衡

前言 1、分层方式 首先我们知道,在计算机网络中,常用的协议分层方式:OSI和TCP/IP,以及实际生产中使用的协议划分方式。 在OSI中,各层的职责如下: 应用层:对软件提供接口以使程序能使用网络服…

都江堰操作系统系统架构图

都江堰操作系统设计思想源于中国传统的“天人合一,道法自然”哲学思想,内核调度系统采用事件调度,全球首创,突破单机桎梏,实现异构网络调度,开拓新赛道,实现换道超车。“有事就动,没…

Linux的中间件

我们先补充点关于awk的内容 awk的用法其实很广。 $0 表示整条记录 变量: NF 一行中有多少个字段(表示字段数) NR : 代表当前记录的序号,从1开始计数。每读取一条记录,NR的值就会自动增加1。(…