HTTPS加密过程

今天我们说https具体工作原理。

HTTPS概念

HTTPS是一种网络协议,传统的HTTP是明文传输,非常 不安全,所以HTTPS是基于HTTP基础上进行加密传输内容。

HTTPS使用加密传输方式

第一种是非对称加密,是前期建立连接时候使用的数据加密方式。这种加密方式必须有公钥key和私密key。

第二种是对称加密,是后期进行数据传输的加密方式 。

非对称加密与对称加密方式对比,需要消耗大量计算机资源。

HTTPS通讯流程

 上面是HHTPS加密流程,下面详细讲解:

1.第一步建立TCP连接,使用三次握手。

2.由客户端发起请求。这一步,客户端主要向服务器发送以下信息:

(1)客户端支持SSL/TLS协议版本,如 TLS1.2版本。

(2)客户端产生一个随机数,用于后面生产会话秘钥。

(3)客户端支持的加密算法列表,例如RSA加密算法。

3.服务器收到客户端请求后,向客户端发出响应,有以下内容。

(1)确认SSL/TLS版本,如果浏览器不支持,就关闭加密通道。

(2)服务器产生随机数,用于后面用于生产会话秘钥。

(3)确认密码加密列表

(4)  准备服务器的数字证书

4.客户端回应

客户端收到服务器的回应之后,首先通过浏览器或者操作系统中的 CA 公钥,确认服务器的数字证书的真实性。

如果证书验证没有问题,客户端会从数字数字钟去除服务器的公钥,然后进行加密,向服务器发送以下信息:

(1)一个随机数(pre-master key)。该随机数会被服务器公钥加密。

(2)加密通信算法改变通知,表示随后的信息都将用「会话秘钥」加密通信。

(3)客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时把之前所有内容的发生的数据做个摘要,用来供服务端校验。

3.客户端回应

客户端收到服务器的回应之后,首先通过浏览器或者操作系统中的 CA 公钥,确认服务器的数字证书的真实性。

如果证书没有问题,客户端会从数字证书中取出服务器的公钥,然后使用它加密报文,向服务器发送如下信息:

(1)一个随机数(pre-master key)。该随机数会被服务器公钥加密。

(2)加密通信算法改变通知,表示随后的信息都将用「会话秘钥」加密通信。

(3)客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时把之前所有内容的发生的数据做个摘要,用来供服务端校验。

上面第一项的随机数是整个握手阶段的第三个随机数,这样服务器和客户端就同时有三个随机数,接着就用双方协商的加密算法,各自生成本次通信的「会话秘钥」。

4.服务器的最后回应

服务器收到客户端的第三个随机数(pre-master key)之后,通过协商的加密算法,计算出本次通信的「会话秘钥」。然后,向客户端发生最后的信息:

(1)加密通信算法改变通知,表示随后的信息都将用「会话秘钥」加密通信。

(2)服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时把之前所有内容的发生的数据做个摘要,用来供客户端校验。

至此,整个SSL/TLS握手阶段结束。接下来根据会话秘钥进行加密通信。

证书验证

这个"证书"不是一个"纸质"的证书,而是一串数据(类似于一个对象,里面有很多属性),是数字证书,包括以下属性:

1.服务器的URL
2.证书的过期时间
3.颁发证书的机构
4.服务器自己的公钥pub
加密的签名(先对证书的所有数据计算一个校验和,然后由证书自己的私钥pri对签名进行加密)

 

客户端拿到证书后,首先会对证书进行校验:

1.得到初始签名:通过由证书提供的公钥对签名进行解密,拿到初始签名,记为sum1
2.计算现在的签名:客服端使用同样的签名算法,基于证书的所有属性,计算签名sum2
3.比较两个签名是否相同,如果相同,说明证书的内容没有被篡改,如果不相同,说明证书的内容被篡改了,此时客户端的浏览器会弹窗报错!!!

为什么说黑客改变不了加密证书内容

1.黑客将证书中服务器的公钥秘钥A改成自己的公钥秘钥B
2.黑客针对证书的各种属性重新计算签名
3.黑客将证书的内容重新加密,但黑客是不知道证书的私钥A的,所以无法进行加密。(此处是关键,黑客并不是"看不到",而是"改不了") 

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

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

相关文章

Unity 直线间隔放置物体

直线间隔放置物体 0. 新建一个空物体,挂上脚本ZYF_QuickPlaceObj 设置 间隔距离 和 预制体在Scene中拖动即可按间隔距离实例化物体物体的朝向始终朝向统一方向,并且可以在Scene中拖拽更改 传送门

QML-1- qml简介及项目创建

文章目录 1. QML 简介2. 项目创建3. 目录结构4. CMakeLists.txt 简单介绍5. 运行demo 1. QML 简介 根据官网介绍,qml 为qt一个模块,使用Qml语言开发应用程序和库提供了一个框架。它定义并实现了语言和引擎基础结构,并提供了一个API&#xff…

jQuery事件导读+其它方法

jQuery 事件导读一、事件注册二、事件处理1.内容2.例子,微博绑定事件3.off解绑事件4.自动触发事件 三、事件对象 其他方法一、拷贝对象二、多库共存三、插件 事件导读 一、事件注册 单个事件叫注册,多个事件叫处理 二、事件处理 1.内容 2.例子&#…

今日上新——FCP

今年2月,我们FCC-E产品全新上线了专有D区,专门满足用户对高性价比的稀缺大机型需求。 产品研发组的小伙伴们根本停不下来~ 才几个月,我们又又上新了! 今天的新品是FCP(fastone Compute Platform)&#x…

VMware ESXi中安装Proxmox VE

0、巴拉巴拉 前几天某行业HW,闲暇的时候几个技术人员聊天,臭味相投的聊到自己玩的东西。有个玩家说家里用工作站安装Proxmox VE,然后在上面安装软路由、安装NAS。我以前一直想玩玩,没有付诸行动,所以也想弄个集中的方案…

分享目前堪称最好用的车机桌面app,支持画中画模式!

好用的车机桌面了,支持悬浮画中画! 如果你想改变单调的车机桌面,那么这篇文章你不要错过了!支持地图悬浮、画中画的车机桌面,不要错过! 今天阿星给大家分享3款好用、好看的大屏桌面软件,重要的…

如何在Namecheap上购买域名

文章目录 如何在Namecheap上购买国外域名,话不多说直接上步骤↓1:注册Namecheap账号2:选购域名3:如何付款4:付款购买域名5:总结 如何在Namecheap上购买国外域名,话不多说直接上步骤↓ 原文链接…

学习双向链表带哨兵demo

定义 在计算机科学中,链表是数据元素的线性集合,其每个元素都指向下一个元素,元素存储上并不连续。 双向链表,每个元素知道其上一个元素和下一个元素。 以下为示例代码: package com.tfq.arithmetic.linkedlist;imp…

Flask 蓝图路由的模块化开发

基于 Flask 蓝图路由的模块化开发 1. 编程目标 为了提高Flask应用的可维护性和可扩展性,我们通过使用Flask的蓝图(Blueprint)功能,可以将不同的功能模块拆分到独立的文件中,方便后续的开发和维护。 2. 项目结构 项目结构树如下&#xff1…

高斯过程学习笔记

目录 基础知识 例子 推荐 A Visual Exploration of Gaussian Processes (distill.pub) AB - Introduction to Gaussian Processes - Part I (bridg.land) 基础知识 高斯过程回归(Gaussian Process Regression) - 知乎 (zhihu.com) 高斯过程&#x…

马斯克xAI公司获60亿美元融资,超级计算工厂将于2025年秋季前问世

马斯克旗下的xAI公司宣布了一项令人瞩目的计划——建造一个名为“超级计算工厂”的巨型超级计算机。这一前所未有的项目不仅体现了马斯克对于人工智能(AI)技术的深刻洞察,也彰显了他在技术创新上的坚定决心。 据悉,超级计算工厂将…

7个靠谱的副业赚钱方法,个个都可以月入过万!宝妈,上班族,学生党都可以做的兼职副业

你是不是也有过这样的困扰,生活费不够用,想要找个兼职贴补家用或者满足自己的小欲望?今天,我就带你一起走进这个五彩斑斓的兼职世界,让你轻松实现月入过千的小目标! 在我多年的兼职探险历程中,我…

local dimming(局部调光)介绍

文章目录 1. 什么是local dimming2. 工作原理3. 类型4. 优点5. 缺点和局限7. 技术发展趋势 1. 什么是local dimming local dimming(局部调光)是电视和显示器中用于提升画面对比度和画质的背光技术。其基本原理是将背光源(通常是LED&#xff…

C++ ─── string的模拟实现

本博客将简单实现来模拟实现string类,最主要是实现string类的构造、拷贝构造、赋值运算符重载以及析构函数。 下期我们继续讲解完整版string的模拟实现(将不再会是浅拷贝了) 说明:下述string类没有显式定义其拷贝构造函数与赋值运…

Java应用中文件上传安全性分析与安全实践

✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 一. 文件上传的风险 二. 使用合适的框架和库 1. Spr…

从华为云Redis到AWS ElastiCache的操作方法

越来越多企业选择出海,那么就涉及到IT系统的迁移,本文将详细介绍如何将华为云Redis顺利迁移到AWS ElastiCache的操作方法,九河云将为您介绍迁移步骤以帮助您顺利完成这一重要任务。 **1. 确定迁移计划** 在开始迁移之前,首先要制…

科普:水冷负载的工作原理

水冷负载是一种利用水作为冷却介质,将电子设备产生的热量传递到外部环境的散热方式。它广泛应用于各种电子设备,如服务器、数据中心、电力设备等,以提高设备的运行效率和稳定性。本文将对水冷负载的工作原理进行简要科普。 水冷负载的工作原理…

NLP(17)--大模型发展(1)

前言 仅记录学习过程,有问题欢迎讨论 大模型的演化: ElMO : 类似双向lstm 结果和词向量拼接 预训练鼻祖 GPT :使用了Transformer 模型 开始使用Token (发现预训练的作用) Bert:认为双向比单向好 MLM(双向) 优于 LT…

【Linux】POSIX线程库——线程控制

目录 1.线程创建方法 例:多线程创建 2.线程终止 2.1 return nulptr; 2.2 pthread_exit(nullptr); 3. 线程等待 3.1 等待原因 3.2 等待方法 线程终止的返回值问题 4.线程取消 5. 线程分离 5.1 分离原因 5.2 分离方法 6.封装线程 用的接口是POSIX线程库…

音视频开发—音频相关概念:数模转换、PCM数据与WAV文件详解

文章目录 前言1.模拟数字转换(ADC)1.1ADC的关键步骤: 2.数字模拟转换(DAC)2.1DAC 的基本流程包括: 3.PCM数据3.1PCM 数据的关键要素包括: 4.WAV文件4.1 WAV的构成4.2WAV文件的标准块结构4.3WAV的…