HTTPS行为大赏(三分钟了解加密过程)

news2024/11/20 10:30:39

文章目录

  • 前言
  • 1.没有加密的时候
  • 2.对称密钥加密传输
  • 3.非对称加密
  • 4.引入数字证书(对称加密+非对称加密)

前言

既然要对HTTPS进行解读,我们首先了解,HTTPS是什么?HTTPS就相当于HTTP+SSL/TLS这样的组合,HTTP(超文本传输协议),HTTPtcp/ip组中的协议之一运用在应用层,也是互联网上应用最为广泛的协议之一,所有的WWW(万维网)文件都必须遵循这个标准。而设计HTTP协议的最终目的是用来在互联网上传输HTML文件,而SSL/TLS就是一种加密算法。

下面会对HTTPS加密的进化过程进行解析。

1.没有加密的时候

这个时候,客户端与服务器之间都已明文的方式传输,你只要在中间截取到数据,就可以看到客户端和服务器在干些什么。
在这里插入图片描述
这样做是比较方便、节约成本,但是我们在传输过程中全以明文方式传输,谁都可以看的见,谁都可以看的懂;如果我们这传输的是金钱交易,很容易就被黑客劫持,让黑客篡改了数据。故有了下面对称密钥加密的方式传输。
在这里插入图片描述

2.对称密钥加密传输

对称密钥加密传输是客户端先生成一个密钥,客户端发送数据时,先使用密钥给明文加密,让他变成密文,在将密文和密钥传输给服务器,服务器再通过客户端发送的密钥进行解密得到明文。
在这里插入图片描述
对称密钥加密能解决传输中的安全问题吗?显然是不能的。在客户端生成密钥之后,我们是要将密钥发送给服务器的,这样服务器有了密钥才可以对客服端发送的密文解密,在这个过程中,密钥是经过传输才能到达服务器,如果在传输过程中被黑客劫持了,那么黑客也可以通过密钥将密文解密了。

既然对称加密无法破解,那就再引入一个新的加密方法:非对称加密。

3.非对称加密

非对称加密是服务器生成两个密钥,我们称这两个密钥:一个公钥(pub)、一个私钥(pri);他两个是一对,用公钥加密的数据,必须用私钥才能解密;用私钥加密的数据,必须用公钥解密。
在这里插入图片描述
客户端在发送数据时,先给服务器大哥要公钥,客户端拿到公钥后,使用公钥加密完数据再发给服务器,服务器通过与公钥配对的私钥进行解密,这样就算在中间遇见了黑客截取数据,我们也不怕,因为黑客就算拿到了公钥和数据,黑客也无法使用公钥对数据解密。

非对称加密是否安全呢?这里的答案还是不安全;黑客这时使用“来骗来偷袭”的阴险招式来放到客户端这个老同志。

客户端在给服务器大哥要公钥,当服务器发来公钥时,黑客来了一个偷梁换柱、暗度陈仓将服务器的公钥A换成了公钥B,黑客将公钥B发送给了客户端,客户端就有公钥B进行加密数据,发送给服务器,黑客再次截取,通过私钥B将数据解密,之后再用公钥A加密发给服务器大哥,就这样黑客神不知鬼不觉就将数据拿到了手。在个期间,黑客手中有公钥A公钥B私钥B公钥B私钥B是黑客自己生成的,公钥A是黑客截取服务器的。
在这里插入图片描述

4.引入数字证书(对称加密+非对称加密)

既然上方的方法都不安全,只能再修改了,引入数字证书,数字证书由可信任的第三方权威机构颁发,相当于一个身份证,可以验证服务器的身份。数字证书包含了证书持有者的信息和公钥信息等。

这个过程中一共有五把密钥,一把是客户端生成的对称密钥,用来加密业务数据;服务器生成的非对称密钥公钥A私钥A用于加密对称密钥;颁布证书机构的非对称密公钥B私钥B(私钥机构自己持有,公钥客户端电脑系统内置),用来加密证书的签名。
在这里插入图片描述

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

  1. 得到初始的签名:客户端使用系统中内置的权威机构的公钥(权威机构的公钥内置在操作系统当中),针对证书中的加密签名进行解密,得到初始签名(这个签名是权威机构算出来的设为sum1);
  2. 计算现在的签名;客户端使用相同的签名计算算法,基于证书中的属性重新计算,得到sum2;
  3. 比较两个签名是否相同;如果相同,说明证书中的数据是未被修改的原始数据,如果签名不同,说明证书的数据被篡改过,客户端的浏览器就会弹窗报错。

在这个过程中,黑客可以得到我们发送的证书,也可以修改,不过黑客修改过后,客服端在用权威机构的公钥解密后的签名与计算后得到的现有签名会出现不一致,这个时候我们就知道被攻击了。

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

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

相关文章

软考 软件设计师计算机网络笔记

网络设备 物理层的互联设备有中继器和集线器,集线器是一种特殊的多路多端口中继器 数据链路层的互连设备有网桥,交换机,交换机是一个多端口的网桥 网络层互连设备有路由器 协议簇 所有带T的除了TFTP其他都是TCP,所有不带T的除…

BFT 最前线 | ChatGPT登顶App Store;国产中文大语言模型「天河天元」发布;华为招募天才少年;阿里分拆上市

原创 | 文 BFT机器人 AI视界 TECHNOLOGY NEWS 01 ChatGPT上架App Store登顶榜首 OpenAI:很快也将出现在安卓上 近日,ChatGPT正式发布App版本,上架APP Store,支持iPhone和iPad设备。OpenAI表示,ChatGPT iOS APP可免费…

两阶段鲁棒优化及列与约束生成算法(CCG)的基本原理(超详细讲解,附matlab代码)

本文的主要参考文献: Zeng B , Zhao L . Solving Two-stage Robust Optimization Problems by A Constraint-and-Column Generation Method[J]. Operations Research Letters, 2013, 41(5):457-461. 1.两阶段鲁棒优化问题的引入 鲁棒优化是应对数据不确定性的一种优…

探索【Stable-Diffusion WEBUI】的图片超分辨插件:StableSR

文章目录 (零)前言(一)图片放大(二)图片超分辨率放大脚本插件(StableSR)(2.1)下载组件(2.2)使用(2.3)实例对比…

bat脚本语法与实战

一、什么是bat脚本 bat脚本就是将一系列DOS命令按照一定顺序排列而形成的集合,运行在windows命令行环境上。通过本文的学习,基本可以实现一些简单的脚本。 二、为什么学习bat脚本? 使用bat可以提高办公效率,可以直接使用Notepad编…

JavaEE(系列12) -- 常见锁策略

目录 1. 乐观锁和悲观锁 2. 轻量级锁与重量级锁 3. 自旋锁和挂起等待锁 4. 互斥锁和读写锁 5. 可重入锁与不可重入锁 6. 死锁 6.1 死锁的必要条件 6.2 如何避免死锁 7. 公平锁和非公平锁 8. Synchronized原理及加锁过程 8.1 Synchronized 小结 8.2 加锁工作过程 8.2.1 偏向锁…

MySQL保证主备一致,如何解决循环复制?

备库只读,是如何和主库同步数据的? 你可能会问,我把备库设置成只读了,还怎么跟主库保持同步更新呢? 这个问题,你不用担心。因为 readonly 设置对超级 (super) 权限用户是无效的,而用于同步更新…

用Typescript 的方式封装Vue3的表单绑定,支持防抖等功能。

Vue3 的父子组件传值、绑定表单数据、UI库的二次封装、防抖等,想来大家都很熟悉了,本篇介绍一种使用 Typescript 的方式进行统一的封装的方法。 基础使用方法 Vue3对于表单的绑定提供了一种简单的方式:v-model。对于使用者来说非常方便&…

【011】C++选择控制语句 if 和 switch 详解

C控制语句之if和switch语句 引言一、选择控制语句if1.1、if 语句的形式1.2、if...else...语句的形式1.3、if...else if... else...语句 二、选择控制语句switch2.1、switch语句形式 三、switch和if...else if...else...比较四、注意事项总结 引言 💡 作者简介&#…

企业工程行业管理系统源码-专业的工程管理软件-提供一站式服务

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示1…

Doo Prime 德璞资本:期货开户条件全解析!让你不再困惑!

期货市场是金融市场中一个非常重要的部分,对于许多投资者来说,期货市场是一个非常有吸引力的投资选择。然而,要进行期货交易,必须首先开设期货账户,这就需要满足一些期货开户条件,因此本文将介绍期货开户条…

认识SpringCloud(一) 注册中心Eureka

Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理。在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服…

(原创)getX+Dio实现Flutter悬浮置顶的页面效果

前言 Flutter的开发相对已经比较成熟了,现在市面上不少商业应用也在使用这个技术 老实说,Flutter去实现一些基础的ui界面,效率还是很高的 当然前提是你对它要有一定的了解。 今天就演示一下,如何去实现一个基础悬浮置顶的页面效果…

OSTrack 中的边界框回归策略

目录 一、裁剪和标签的设置 二、模型的预测输出的边界框回归 一、裁剪和标签的设置 1、添加偏移量,得到偏移后的边界框 jittered_anno [self._get_jittered_box(a, s) for a in data[s _anno]] 2、以偏移后的边界框为中心,进行裁剪 首先以偏移边界…

Apache Pulsar入门指南

1.概述 Apache Pulsar 是灵活的发布-订阅消息系统(Flexible Pub/Sub messaging),采用计算与存储分离的架构。雅虎在 2013 年开始开发 Pulsar ,于 2016 年首次开源,目前是 Apache 软件基金会的顶级项目。Pulsar 具有支…

面试官:写一个单例模式

1. 什么是单例模式 了解单例模式之前,我们需要先了解什么是设计模式。 设计模式是一种抽象的编程思想,不局限于编程语言,简单来说,就是一些大佬程序猿针对一些典型的场景,给出一些典型的解决方案,只要按照这…

04-CSS3-渐变色、2D转换、3D转换

一、渐变色 CSS渐变色(Gradient)是指在元素背景中使用两种或多种不同的颜色进行过渡,超过两个颜色可以形成更为细腻的渐变效果。常见的CSS渐变色有线性渐变和径向渐变。 1. 线性渐变:Linear Gradients 向下/向上/向左/向右/对角…

SVN 修改URL路径-使用重新定位(relocate)命令和找不到问题解决

当svn服务器url发生变更,又不想在本地重新进行checkout操作,这时候可以使用svn relocate命令进行url的重新定位; 在windows下以TortoiseSVN为例,在仓库文件夹上右键,TortoiseSVN-(重新定位)relocate, 1、Windows TortoiseSVN客户端: 在工作复本的根目录上右键->TortoiseSV…

DOUBLETROUBLE: 1

文章目录 DOUBLETROUBLE: 1实战演练一、前期准备1、相关信息 二、信息收集1、nmap探测目标靶机端口2、扫描目标网址目录3、访问网站,发现secret下有个图片4、将图片下载5、查看图片所含内容6、破解密码并查看7、登陆邮箱8、创建反弹shell9、上传反弹shell10、监听11…

Jeecg-Boot 未授权SQL注入漏洞(CVE-2023-1454)

本文转载于:https://blog.csdn.net/qq_27536045/article/details/129944987 环境搭建 JDK: 1.8 (小于11) Maven: 3.5 MySql: 5.7 Redis: 3.2 Node Js: 10.0 Npm: 5.6.0 Yarn: 1.21.1 下载源码 后端源码 https://github.com/jeecgboot/jeecg-boot/tree/v…