HTTPS的加密方式超详细解读

news2024/11/29 8:40:30

 在了解https的加密方式之前,我们需要先行了解两个特别经典的传统加密方式:

1、对称加密

1.1、定义

需要对加密和解密使用相同密钥的加密算法。所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。

注意:对称加密也叫密钥加密。

1.2、密钥形式

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。

1.3、优缺点

优点:对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。 缺点:对称加密,密钥管理的安全性很低,因为加密和解密都使用同一个密钥,在密钥的发送过程中,密钥可能被第三方截取,导致第三方也可以破解密文。

1.4、具体实现

在每次发送真实数据之前,客户端先生成一把密钥,然后先把密钥传输给服务端。之后客户端给服务端发送真实数据的时候,会用这把密钥对数据进行加密,服务端收到加密数据之后,用刚才收到的密钥进行解密。

1.5、图解


2、非对称加密


2.1、定义

非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

2.2、密钥形式

公钥与私钥是一对。传输双方均有自己的一对密钥(也就是双方每方均有:公、私密钥一把,双方加起来共4把)

例子:传输双方比如是甲乙双方,甲方有配对的公、私密钥一对,且公钥负责加密,私钥负责解对应的公钥加的密。乙方同理。

2.3、优缺点

非对称密钥的算法强度复杂(是优点也是缺点),安全性依赖于算法与密钥。 优点:安全性较高,比对称密钥安全性高很多。 非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。 缺点:由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。

2.4、具体实现

1.客户端要向服务器发送信息,客户端和服务器都要产生一对用于加密和解密的公钥和私钥。

2.客户端的私钥保密,客户端的公钥告诉服务器;服务器的私钥保密,服务器的公钥告诉客户端。

3.客户端要给服务器发送信息时,客户端用服务器的公钥加密信息,因为服务器的公钥是公开的,客户端可以得到。

4.客户端将这个消息发给服务器(已经用服务器的公钥加密消息)。

5.服务器收到这个消息后,服务器用自己的私钥解密客户端的消息。其他所有收到这个报文的人都无法解密,因为只有服务器才有服务器的私钥。

2.5、图解

3、https的加密方式

上述的两种加密方式各有千秋,所以HTTPS作为最后出场的大佬,当然集大成者,采用的是处理信息的方式是:结合对称加密+非对称加密这两种方式,我们可以用非对称加密的方式来传输对称加密过程中的密钥,之后我们就可以采取对称加密的方式来传输数据了。

3.1、对称加密+非对称加密

服务器用明文的方式给客户端发送自己的公钥,客户端收到公钥之后,会生成一把密钥(对称加密用的),然后用服务器的公钥对这把密钥进行加密,之后再把密钥传输给服务器,服务器收到之后进行解密,最后服务器就可以安全得到这把密钥了,而客户端也有同样一把密钥,他们就可以进行对称加密了。

但是,非对称加密的方式也并非万无一失,在此举个例子:

服务器以明文的方式给客户端传输公钥的时候,中间人截取了这把属于服务器的公钥,并且把中间人自己的公钥冒充服务器的公钥传输给了客户端。

之后客户端就会用中间人的公钥来加密自己生成的密钥。然后把被加密的密钥传输给服务器,这个时候中间人又把密钥给截取了,中间人用自己的私钥对这把被加密的密钥进行解密,解密后中间人就可以获得这把密钥了。

最后中间人再对这把密钥用刚才服务器的公钥进行加密,再发给服务器。

毫无疑问,在这个过程中,中间人获取了对称加密中的密钥,在之后服务器和客户端的对称加密传输中,这些加密的数据对中间人来说,和明文没啥区别。

3.2、证书

非对称性加密之所以不安全,是应为客户端不知道,这把公钥是不是服务器的。因此,我们需要找到一种策略来证明这把公钥就是服务器的,而不是别人冒充的,就像身份证一样,唯一标识我们服务器的公钥,解决这个问题的方式就是使用数字证书,具体是这样的:

而我们需要一个在互联网世界中充当公理的机构来签发这个证书,它就是CA机构,它是如今互联网世界正常运作的前提,而CA机构颁发的“身份证”就是数字证书:

网站在使用HTTPS前,需要向CA机构申领一份数字证书,数字证书里含有证书持有者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书里获取公钥就行了,证书就如身份证,证明“该公钥对应该网站”。而这里又有一个显而易见的问题,“证书本身的传输过程中,如何防止被篡改”?即如何证明证书本身的真实性?身份证运用了一些防伪技术,而数字证书怎么防伪呢?解决这个问题我们就接近胜利了!

3.3、数字签名

有了数字整数之后,我们又,如何防止整数篡改呢?

我们把证书原本的内容生成一份“签名”,比对证书内容和签名是否一致就能判别是否被篡改。这就是数字证书的“防伪技术”,这里的“签名”就叫数字签名:

3.3.1、数字签名的制作过程:

CA机构拥有非对称加密的私钥和公钥。

CA机构对证书明文数据T进行hash。

对hash后的值用私钥加密,得到数字签名S。

明文和数字签名共同组成了数字证书,这样一份数字证书就可以颁发给网站了。

3.3.2、浏览器验证过程:

拿到证书,得到明文T,签名S。

用CA机构的公钥对S解密(由于是浏览器信任的机构,所以浏览器保有它的公钥。详情见下文),得到S’。

用证书里指明的hash算法对明文T进行hash得到T’。

显然通过以上步骤,T’应当等于S‘,除非明文或签名被篡改。所以此时比较S’是否等于T’,等于则表明证书可信。

这样的加密和验证方式的双重保险之下,基本就能保证我们的连接以及数据交互的安全,拥有这样证书和签名的网站我们访问起来有一把小锁的标识,说明我们的访问是安全的。

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

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

相关文章

MojoUserAgent库

Mojo::UserAgent 是 Perl 编程语言中的一个库,用于创建和管理 HTTP 请求。它提供了一个简单而强大的接口,用于发送 HTTP 请求并处理响应。 以下是一个使用 Mojo::UserAgent 的简单示例: use Mojo::UserAgent;创建一个 Mojo::UserAgent 对象…

小红书优质达人标准是什么,达人投放攻略!

众所周知kol、koc投放,相较于信息流和竞价广子而言,在投放结果上,存在更多的浮动因素。而想要把控kol、koc的投放结果,就需要在匹配优质达人方面多下功夫。今天为大家分享下小红书优质达人标准是什么,达人投放攻略&…

包含3的数字-第10届蓝桥杯省赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第2讲。 包含3的数字&#…

微信小程序:实现多个按钮提交表单

效果 核心步骤 通过data-type给不同按钮进行设置&#xff0c;便于很好的区分不同按钮执行不同功能 data-type"" 完整代码 wxml <form action"" bindsubmit"formSubmit"><button style"margin-bottom:5%" data-type"pa…

技术共建,飞桨与OpenVINO™ 共创开放AI生态

在智能新时代&#xff0c;百度和英特尔作为行业引领者&#xff0c;一直专注于构建强大的产品组合和开放的软件生态系统。为此&#xff0c;百度飞桨打造功能丰富、开源开放的产业级深度学习平台&#xff0c;英特尔推出OpenVINO™工具套件&#xff0c;并致力于借助双方技术来增强…

云栖大会 | 科技改变生活,移远通信实力引领智能未来

科技对生活的改变体现在出行方式、娱乐方式、支付方式等多个方面&#xff0c;已经融入了我们的日常生活&#xff0c;为我们带来了便捷、高效、舒适的体验。 10月31日—11月2日&#xff0c;云栖大会在杭州盛大召开。本次大会以“计算&#xff0c;为了无法计算的价值”为主题&…

亚马逊云科技实操教学带你注册并使用海外服务器

手把手教你注册和使用亚马逊云科技海外服务器。 前置条件 准备&#xff1a; 一个在用邮箱 一张在用的有Visa或者Master标志的信用卡 一部在用的电话 一个支持key文件导入的ssh客户端 注册亚马逊云科技 在任意浏览器上搜索“亚马逊云科技”&#xff0c;打开官网&#xff0c…

Padding负值遮挡视图(下拉刷新头部)

padding值为负值时&#xff0c;表示当前视图被遮住了一部分。 可使用 view.set Padding( int left , int top , int right , int bottom) 方法进行动态设置。 下拉刷新头部的实现&#xff1a; (1) 获取屏幕大小。(2) 设置 刷新头高度&#xff08;定值&#xff09; 设置 显…

新手学计算机编程入门,自学编程入门从哪里入手开始学习

新手学计算机编程入门&#xff0c;自学编程入门从哪里入手开始学习 给大家分享一款中文编程工具&#xff0c;零基础轻松学编程&#xff0c;不需英语基础&#xff0c;编程工具可下载。 这款工具不但可以连接部分硬件&#xff0c;而且可以开发大型的软件&#xff0c;向如图这个…

哪些指标可以评估实施MES管理系统的效益

在现代制造业的浪潮下&#xff0c;MES生产管理系统已成为众多企业的得力助手。然而&#xff0c;如何判断MES管理系统是否真的为企业创造了价值&#xff1f;本文将为您解析三个核心指标&#xff0c;助您深入了解MES管理系统的实际效益&#xff0c;确保您的投资决策明智有据。 一…

PHP解析带BOM头的JSON数据,对接他人接口的时候,使用json_decode(),返回null的问题与解决方法

在php开发中会遇到和他人对接接口&#xff0c;对方使用json传输数据&#xff0c;使用json_decode()函数却无法将json数据转换为数组。 先看封装的代码 private function curlPost($url, $post_data []) {$ch curl_init() or die (curl_error());curl_setopt($ch, CURLOPT_…

《向量数据库指南》——用 Milvus Cloud和 NVIDIA Merlin 搭建高效推荐系统结果

结果 以下展示基于 CPU 和 GPU 的 3 组性能测试结果。该测试使用了 Milvus 的 HNSW(仅 CPU)和IVF_PQ(CPU 和 GPU)索引类型。 商品向量间相似度搜索 对于给定的参数组合,将 50% 的商品向量作为查询向量,并从剩余的向量中查询出 top-100 个相似向量。我们发现,在测试的参…

el-cascader级联选择器选中一个全选中问题

问题 只选中一个却把同级全选中 解决 :props中添加label、value、children属性 label、value、children属性值需要和后端返回的集合中的字段名保持一致 后端返回数据&#xff1a;

基于寄生捕食算法的无人机航迹规划-附代码

基于寄生捕食算法的无人机航迹规划 文章目录 基于寄生捕食算法的无人机航迹规划1.寄生捕食搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用寄生捕食算法来优化无人机航迹规划。 …

交换机基础(零):交换机基础配置

一、华为设备视图 常用视图 名称 进入视图 视图功能 用户视图 用户从终端成功登录至设备即进 入用户视图&#xff0c;在屏幕上显示 kHuawei> 用户可以完成查看运行状态和统 计信息等功能。在其他视图下 都可使用return直接返回用户视 图 系统视图 在用户视图下&…

面试常考:从lc24《两两交换链表中的节点》 到 lc25《K 个一组翻转链表》带你认识链表递归

1 lc24《两两交换链表中的节点》 1.1 描述 1.2 题解 1.2.1 递归解法 下面的三行注释要理解透彻&#xff0c; public ListNode swapPairs(ListNode head) {if(headnull||head.nextnull)return head;// 具体的两两交换过程ListNode nexthead.next; ListNode nextNexthead.next…

(C)求x/1!-........

#include<stdio.h> #include<stdlib.h> #include<math.h> void main() {double a1,b1,c0,x;int i,j1;printf("输入x的值:");scanf_s("%lf",&x);for(i1;i<10;i){a*x;b*i;cj*a/b;j-j;}printf("s%10.5f",s); }

Mysql基础+高级一文搞定

创建数据库 create database db_yassels; 切换数据库 use db_yassels; 创建table create table Persons1( Id_P int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) ); 查看table select *from Persons1; 插入数据 insert…

Pattern Recognition:最大化高斯性准则

近日&#xff0c;清华大学、昆明理工大学、北京邮电大学联合在模式识别权威杂志 Pattern Recognition (IF 8.0) 上发表论文&#xff0c;报告了一种最大化高斯性 (Maximum Gaussianality) 的训练准则&#xff0c;用于对数据分布进行规整。 分布规整与标准化流模型 我们知道数据…

电视「沉浮录」:跌出家电“三大件”?

【潮汐商业评论/原创】 “这年头谁还看电视&#xff0c;家里电视近一年都没打开过了&#xff0c;我明天就打算把它二手卖掉。”想到已落灰许久的电视机&#xff0c;Andy打开了二手平台。 “要不是这几年孩子网课多&#xff0c;我是真没考虑换新电视&#xff0c;家里用了8年的…