HTTPS 加密工作过程

引言

HTTP 协议内容都是按照文本的方式明文传输的,这就导致在传输过程中出现一些被篡改的情况。例如臭名昭著的运营商劫持。显然, 明文传输是比较危险的事情,为此引入 HTTPS ,HTTPS 就是在 HTTP 的基础上进行了加密, 进一步的来保证用户的信息安全。

一、加密解密的基本概念

回过头来说,那么 HTTPS 是如何实现对数据加密的呢?为了解答这个问题,首先要引入一组概念:

加密:就是把 明文 (要传输的信息)进行一系列变换,生成 密文

解密:就是把 密文 再进行一系列变换,还原成 明文

密钥:在这个加密和解密的过程中,往往需要一个或者多个中间的数据,辅助进行这个过程,这样的数据称为 密 钥

加密的方式:加密是一个复杂的过程,方式有很多,目前我们讨论宏观过程将其分成两大类:对称加密 和 非对称加密。

二、HTTPS 的工作过程

1、对称加密

概念: 对称加密其实就是通过同一个密钥 key,把明文加密成密文,并且也能把密文解密成明文。

这个过程就类似于按位异或操作:

明文=1234,对称密钥 key=6666
加密密文=明文^key=1234^6666=7896
解密明文=密文^key=7896^6666=1234

对称密钥工作过程:

通过对称加密,即使数据被黑客截获,但是由于没有密钥,无法对数据进行解密,因此可以保证数据传输的安全。

但是上述情况并不现实,对于服务器来说,通常要给很多个客户端提供服务,如果密钥全部都相同,那么当黑客作为客户端,也就可以获取到密钥 key,这对于网络数据传输来说显然是行不通的;

因此为了杜绝以上情况,需要保证每个客户端与服务器之间的密钥是唯一的,此处就需要让客户端在于服务器建立连接的时候,生成一个自己的对称密钥 key,然后通过网络发送给服务器,此后每个客户端与服务器数据传输过程就通过各自的对称对称密钥实现加密传输。但是这样真的可行吗?我们先看一张示例图:

可以看到,由于密钥 key 是明文传输的,一旦传输过程中被黑客截获,那么后面的加密传输就是形同虚设了。因此 密钥的传输也必须加密传输 为此引入了非对称加密。

2、引入非对称加密

概念:

  1. 非对称加密要用到两个密钥,一个叫做 “公钥 pub”,一个叫做 “私钥 pri”,并且公钥和私钥是配对的。
  2. 此处约定自己留着的是私钥,公布给别人的是公钥。
  3. 可以通过私钥 pri 对明文加密,使用配对的公钥 pub 对密文解密;亦可以使用公钥 pub 对明文加密,使用配对的私钥 pri 对密文解密。

非对称密钥工作过程:

  1. 为了保证对称密钥能够安全到达服务器,引入非对称加密,保护对称密钥。非对称加密在完成对称密钥的传输后就结束了。
  2. 对称密钥相较于非对称密钥,效率要高很多。对于客户端和服务器的业务数据传输,通常使用对称加密的方式。

中间人攻击

那么引入了非对称加密,数据传输就彻底安全了吗?其实在这个过程中黑客还有另一种手段称作“中间人攻击”,黑客可以通过伪造公钥 pub 的方式获取对称密钥 key,具体过程如下图:

很显然,通过上述“中间人攻击”的方式,黑客可以“神不知鬼不觉”地获取到使用非对称加密传输的对称密钥 key,从而获取到接下来的业务传输数据。为了防止这种“中间人攻击”的情况发生,下面引入证书。

3、引入证书

中间人攻击破解的关键就是能够让客户端信任公钥。服务器在搭建的时候就需要向权威机构提交材料,申请证书,证书中就包含了服务器自己的公钥 pub 和一些其他属性,其中一个关键的属性就是 加密的签名,这个签名是由证书的颁发机构根据证书中的所有属性按照一定的算法计算得到的校验和,并且使用颁发机构的一对非对称密钥 pub (客户端操作系统内置)、pri(机构自己持有) 中的私钥 pri 进行加密得到的。

引入证书之后,客户端就不再直接从服务器请求公钥了,而是直接请求服务器的证书:


可见证书起到的主要作用就是 校验

  1. 客户端拿到证书后,首先使用系统中内置权威机构的公钥,针对证书中的 加密签名进行解密,得到初始签名 sum1
  2. 客户端使用相同签名计算算法,基于证书中的属性重新计算,得到 sum2
  3. 比较两个签名是否相同,如果相同,说明证书中的数据都是未篡改过的原始数据;如果不同,说明证书中的数据被篡改过,客户端浏览器弹窗报错。

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

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

相关文章

九、互联网技术——记忆背诵

文章目录 一、网络操作系统的功能和特性二、网络操作系统的逻辑构成四、主动攻击和被动攻击五、安全机制和安全服务六、信息与数据七、数据处理与数据管理八、数据模型九、概念模型的E-R表示方法十、四种数据模型十一、数据库系统组成十二、DBMS主要功能十三、数据库系统的3级模…

【C++初阶(二)C——C++过渡必看】

文章目录 前言一、C关键字🍎二、命名空间🍅1.命名空间的定义🍒2.命名空间使用🍓 三、C输入&输出🍑四、缺省参数🫑1. 缺省参数概念🍉2. 缺省参数分类🥝 五、函数重载&#x1f965…

集中发现服务DCPSInfoRepo通信端口和ORB交互流程

OpenDDS集中发现服务DCPSInfoRepo,为OpenDDS的pub和sub通信终端提供主题匹配和通信协商和中介服务,是基于TAO的ORB机制完成的,GIOP协议。 1、集中发现服务DCPSInfoRepo的相关通信端口 1)集中发现服务DCPSInfoRepo通信端口 DCPSInfoRepo -ORBListenEndpoints iiop://192.…

【maven】idea中基于maven-webapp骨架创建的web.xml问题

IDEA中基于maven-webapp骨架创建的web工程&#xff0c;默认的web.xml是这样的。 <!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name…

mac文件为什么不能拖进U盘?

对于Mac用户来说&#xff0c;可能会遭遇一些烦恼&#xff0c;比如在试图将文件从Mac电脑拖入U盘时&#xff0c;却发现文件无法成功传输。这无疑给用户带来了很大的不便。那么&#xff0c;mac文件为什么不能拖进U盘&#xff0c;看完这篇你就知道了。 一、U盘的读写权限问题 如果…

模拟滤波器的基础知识和设计

信号处理工作中滤波器的应用是非常广泛的&#xff0c;可以分成模拟滤波器和数字滤波器两种&#xff0c;数字滤波器主要包括两种&#xff0c;IIR和FIR&#xff0c;这两种滤波器后面统一说&#xff0c;今天先来说一说模拟滤波器&#xff08;主要是我先用Python实现了Matlab书里面…

【iOS】——仿写计算器

文章目录 一、实现思路二、实现方法三、判错处理 一、实现思路 先搭建好MVC框架&#xff0c;接着在各个模块中实现各自的任务。首先要创建好UI界面&#xff0c;接着根据UI界面的元素来与数据进行互动&#xff0c;其中创建UI界面需要用到Masonry布局。 二、实现方法 在calcu…

八、互联网技术——物联网

文章目录 一、智慧物联案例分析二、M2M技术三、数据保护综合案例分析一、智慧物联案例分析 智能物流是一种典型的物联网应用。一个物流仓储管理系统架构如下图所示: [问题1] 图中的三层功能:仓库物品识别、网络接入、物流管理中心,分别可对应到物联网基本架构中的哪一层? …

分页查询(关键词: limit)

MySQL从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129334507?spm1001.2014.3001.5502 比如现在有一张表emp有15条数据 我想每页只显示5条数据,分3页,这样看起来简捷一些,我该怎么实现呢 语法格式: select */列名 from 表名 limit 初…

Dubbo3应用开发—Dubbo3注册中心(zookeeper、nacos、consul)的使用

Dubbo3注册中心的使用 zookeeper注册中心的使用 依赖引入 <dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-dependencies-zookeeper-curator5</artifactId><version>${dubbo.version}</version><type>p…

三十一、【进阶】B+树的演变过程

1、B树简单介绍 &#xff08;1&#xff09;介绍&#xff1a;B树也属于B树&#xff0c;是B树的变种 &#xff08;2&#xff09;特点&#xff1a;所有的数据都位于叶子节点上&#xff0c;叶子节点上的所有元素形成了一个单项链表 &#xff08;3&#xff09;图示&#xff1a; 2…

「网络安全」SQL注入攻击的真相

前言 点击此处即可获得282G网络安全学习资料 我们生活在数据的黄金时代。有些公司将其分析为更好的自己&#xff0c;有些公司为了获利而进行交易&#xff0c;没有一家公司因其价值而自由放弃 - 对于他们的业务和犯罪分子。 SQL&#xff08;结构化查询语言&#xff09;是一种…

【技术干货】如何通过 DP 实现支持经典蓝牙的联网单品设备与 App 配对

经典蓝牙模块&#xff08;Classic Bluetooth&#xff09;主要用于呼叫和音频传输&#xff0c;所以经典蓝牙最主要的特点就是功耗大&#xff0c;传输数据量大。蓝牙耳机、蓝牙音箱等场景大多采用经典蓝牙&#xff0c;因为蓝牙是为传输声音而设计的&#xff0c;是短距离音频传输的…

钡铼DLT645和IEC104转Modbus协议网关BL120DT:构建智能电力网的关键角色

在电力行业中&#xff0c;DLT645和IEC104转Modbus协议网关已成为重要的通信工具&#xff0c;用于将电力设备的数据和状态信息转换为Modbus协议&#xff0c;以便于远程监控和管理。以下是关于钡铼DLT645和IEC104转Modbus协议网关BL120DT在电力行业应用的案例介绍。 某电力公司需…

自动化项目实战->测试博客系统

1.熟悉项目-->哪些场景容易出现问题 2.针对核心流程设计测试用例(手工测试用例) 3.将手工测试用例转换为自动化测试用例 4.部署到服务器 一、针对核心流程设计测试用例 二、将手工测试用例转换为自动化测试用例 2.1设计自动化测试用例的代码结构 初始化动作:BeforeAll--…

[图论]哈尔滨工业大学(哈工大 HIT)学习笔记23-31

视频来源&#xff1a;4.1.1 背景_哔哩哔哩_bilibili 目录 1. 哈密顿图 1.1. 背景 1.2. 哈氏图 2. 邻接矩阵/邻接表 3. 关联矩阵 3.1. 定义 4. 带权图 1. 哈密顿图 1.1. 背景 &#xff08;1&#xff09;以地球为建模&#xff0c;从一个大城市开始遍历其他大城市并且返回…

SSM - Springboot - MyBatis-Plus 全栈体系(二十一)

第四章 SpringMVC 四、RESTFUL 风格设计和实战 1. RESTFul 风格概述 1.1 RESTFul 风格简介 RESTful&#xff08;Representational State Transfer&#xff09;是一种软件架构风格&#xff0c;用于设计网络应用程序和服务之间的通信。它是一种基于标准 HTTP 方法的简单和轻量…

[架构之路-232]:目标系统 - 纵向分层 - 操作系统 - 数据存储:文件系统存储方法汇总

目录 前言&#xff1a; 一、文件系统存储方法基本原理和常见应用案例&#xff1a; 二、Windows FAT文件系统 2.1 概述 三、Linux EXT文件系统 3.1 基本原理 3.2 索引节点表&#xff08;Inode Table&#xff09; 3.2.1 索引节点表层次结构 3.2.2 间接索引表的大小和表项…

Netty全面了解, 使用,有这一篇就够了

目录 引言&#xff1a; 什么是Netty&#xff1f; Netty和Tomcat有什么区别&#xff1f; 为什么Netty受欢迎&#xff1f; Netty为什么并发高 Netty为什么传输快 为什么说Netty封装好&#xff1f; 使用示例&#xff1a; 步骤1: 添加Netty依赖 步骤2: 创建服务器启动类 步…

OpenResty安装-(基于Nginx的高性能Web平台,可在Nginx端编码业务)

文章目录 安装OpenResty1.安装1&#xff09;安装开发库2&#xff09;安装OpenResty仓库3&#xff09;安装OpenResty4&#xff09;安装opm工具5&#xff09;目录结构6&#xff09;配置nginx的环境变量 2.启动和运行3.备注 安装OpenResty 1.安装 首先你的Linux虚拟机必须联网 …