HTTPS加密的简单介绍

news2024/11/19 16:47:56

前言

假设客户端给服务器发送HTTP请求,此时的数据都是明文的,如果黑客在这个过程中截取到了数据,进行篡改是非常容易的,这样就会造成严重后果.

HTTPS和HTTP一样,都是应用层协议.只不过HTTPS在HTTP的基础上又加了一个加密层,保证传输数据的安全性.

下面我们就来探讨一下HTTPS是如何进行加密的.

一.对称秘钥

key

是双方通过同一个key,进行加密和解密. 客户端给服务器发送用key加密后的密文,服务器使用key进行解密。

在这里插入图片描述

一个服务器可以连接多个客户端,每个客户端的key都是不同的.如果服务器储存这么多不同key的信息,管理起来会很麻烦。于是在传密文前先约定key,也就是在客户端和服务器建立连接时发送key。
在这里插入图片描述
接下来,客户端就能发送加密后的密文了。
但是,发送的key仍然是明文的,黑客一旦窃取到,后续就能在客户端发送用key加密的密文时,使用key进行解密。

所以,我们怎么保证key安全呢?
在约定key时,对key进行加密,这样就算黑客拿到加密后的key,也无法解密,也就拿不到key.

二.非对称密钥

pub和pri

一对公钥(pub)和私钥(pri).一个加密,另一个就可以解密。可以互换身份,但是私钥绝对不可以泄露出去

保证key的安全,就可以使用非对称密钥。

1.客户端向服务器索要服务器的公钥pub,服务器向客户端发送pub
2.客户端向服务器发送用pub加密后的key。服务器再使用私钥pri进行解密。拿到key之后,回复ok。建立连接成功
后续客户端就能发送用key加密的密文了。

在这里插入图片描述
但是,上述过程并非安全,黑客可以拿到pub,也就可以篡改pub(偷梁换柱)。自己生成一组非对称密钥pub1和pri1,将服务器的pub替换成自己的pub1,客户端用pub1对key进行加密后,黑客使用pir1进行解密,拿到key值。接下来,又用服务器的pub对key进行加密,服务器使用pri解密成功。没有发现异常。
此时的黑客就神不知鬼不觉的拿到key了。

那我们如何解决这个问题呢?关键在于保证客户端拿到的pub一定是正确的属于服务器的pub。
所以我们需要把服务器的pub给存储起来。此时,就可以使用证书了。

三.证书

在客户端和服务器刚一建立连接的时候, 服务器给客户端返回一个 证书.这个证书包含了服务器的公钥, 也包含了网站的身份信息。(类似于我们的身份证)

校验和

在服务器给客户单返回证书之前,先将证书中的所有属性计算一遍,得到校验和sum1,证书自己拥有一对、组非对称密钥(pub2和pri2)。通过pri2对sum1进行加密。得到签名,放入证书中,一起返回给客户端。

当客户端收到证书时,会对这个证书中的属性进行验证,以防白被篡改。
1.客户端使用pub2将签名进行解密,得到sum1;
(pub2是绝对正确的,是系统自动分配给 客户端的)
2.客户端重新计算一遍校验和,得到sum2;
3.客户端比较sum1和sum2,如果不同,则被修改了。

那么如果黑客修改了校验和呢?因为黑客也可以拿到pub2,幼也可以拿到sum1。
这是不可以的。因为黑客拿不到私钥pri2,无法对修改后的新校验和进行加密。

双重保障

在证书中,黑客有两种手段,但都无法实现。

  • 修改证书中的服务器公钥pub
    这样在比较校验和时,会发现sum1≠sum2。
  • 修改证书中的服务器公钥pub以及签名
    无法修改签名。黑客解密签名,拿到校验和sum1,按照修改后的属性重新计算一遍得到新校验和,也无法对其进行加密。(没有证书私钥pri2)

在这里插入图片描述

总结

上述加密过程涉及到了三组密钥:

  • 一组非对称密钥:证书的公钥pub2和密钥pri2;
  • 一组非对称密钥:服务器的公钥pub和密钥pri;
    一组对称密钥:客户端的对称密钥key。

HTTPS的工作流程大致如下:
1.在客户端和服务器建立连接时,客户端向服务器找索要证书,拿到证书后使用证书公钥pub2对签名进行解密,检验校验和是否一致;
2.验证成功后,客户端使用拿到的服务器pub对key进行加密,发送给服务器,服务器收到后使用pri对加密后的key进行解密,拿到key;
3.确保服务器拿到key后,客户端使用key对要传输的数据进行加密,发送给服务器,服务器收到后,使用key进行解密,拿到数据。

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

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

相关文章

档案八防设备之新型产品多合一恒湿净化一体机

档案馆档案库房用加湿除湿除尘除酸净化一体机【囊括加湿机、除湿机、消毒机、净化机功能】 集成:加湿、除湿、消毒、净化四合一的智能一体机 一、简介 北京盛世宏博科技有限公司档案库房系列加湿除湿除尘除酸净化一体机是档案库房恒湿、和净化式,HB-670…

Oracle数据库中了locked1勒索病毒,用友nchome配置文件损坏该如何解除

随着互联网技术的不断发展,网络安全问题也越来越受到人们的关注。其中,勒索病毒是一种比较常见的网络安全威胁。最近很多集团企业在使用Oracle数据库的过程中,遭遇到了locked1勒索病毒的攻击,导致企业的用友nchome配置文件损坏&am…

Word控件Aspose.Words教程:在 PowerPoint 中使用变形过渡

Aspose.Words是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。 Aspose API支持流行文件格式处理,并…

现代 CMake 模块化项目管理指南

文章目录 一、基于CMake,对文件/目录组织规范1.推荐的目录组织方式2.划分子项目3.根项目的 CMakeLists.txt 配置4.子项目的 CMakeLists.txt 配置5.子项目的头文件6.子项目的源文件补充:GLOB 和 GLOB_RECRUSE 的区别7.头文件和源文件的一一对应关系8.只有…

揭秘神秘的JS混淆加密技术

在编程的世界里,沉香舞动着一种强大的力量,就像母亲为了救子不惜一切的决心。而在JavaScript的领域中,我们也有一种神秘的技术,它能够将代码变得晦涩难懂,宛如沉香救母一般,守护着程序的安全。今天&#xf…

Anaconda 安装并使用 PyTorch(PyCharm)

文章目录 Anaconda 安装并使用 PyTorch(PyCharm)1. Anaconda 安装1.1 下载安装包1.2 安装1.3 测试1.4 更改镜像源 2. PyTorch 安装2.1 创建虚拟环境2.3 激活/关闭环境2.4 CUDA2.5 conda 安装 PyTorch 3. PyCharm 使用3.1 安装 PyCharm3.2 登录3.3 使用虚…

Lookup-包含查找

lookup函数有个特性: LOOKUP(lookup_value, lookup_vector, [result_vector]) 如果 LOOKUP 函数找不到 lookup_value,则该函数会与 lookup_vector 中小于或等于 lookup_value 的最大值进行匹配。 这个特性,我这里简称:包含查找…

高丰度铈磁体

随着烧结钕铁硼应用领域的不断拓展和产量的快速增长,相应的稀土资源也被大量开采。稀土矿中各种稀土元素是共生的,但在钕铁硼的制备过程中,利用的主要是在轻稀土中质量分数为25%的镨Pr和钕Nd元素,这样对轻稀土中占比为质量分数49%…

档案馆档案管理的八防指的是哪些?

档案库房档案安全保护的“八防”:即防高温、防潮湿、防盗、防火、防霉菌、防光、防尘、防虫等要求。 “八防”实现了档案库房安全保护由被动人工管理向现代化、智能化、科学化、人性化管理的历史性跨越。该系统采用模块化设计,系统功能强大,…

夏天已至,放手一搏—V6.0.6版本发布

夏日莺啼,新品绽放。轻盈而来,清凉沁心。 香气四溢,舒缓暑气。一份清爽,满足您的期待。 预订新品,共享仲夏芬芳。 本次更新:经过一个月的细节打磨, V6.0.6版本发布,APP构建能力强…

Knowledge-Based Systems latex论文模板

Knowledge-Based Systems 杂志官网https://www.sciencedirect.com/journal/knowledge-based-systems Knowledge-Based Systems 期刊投稿网址 Editorial Manager LetPub 投稿经验和评论: KNOWLEDGE-BASED SYSTEMS 影响因子8.139分,是几区,20…

掌握RDD算子2

文章目录 扁平映射算子案例任务1、统计不规则二维列表元素个数方法一、利用Scala来实现方法二、利用Spark RDD来实现 按键归约算子案例任务1、在Spark Shell里计算学生总分任务2、在IDEA里计算学生总分第一种方式:读取二元组成绩列表第二种方式:读取四元…

控制系统典型应用车型 —— 潜入顶升式AMR

车型介绍: “潜入顶升AMR”是由驱动装置车身装置升降装置等结构组成的高性能移动机器人。通过复杂的智能技术来合理的路径规划,以适应环境并在其中导航,结合近距离激光雷达、碰撞传感器等技术,可以在高速运转的同时,潜伏至货物固…

【Python】布尔类型 ( 布尔类型变量 | 比较运算符 )

文章目录 一、布尔类型变量二、比较运算符三、代码示例 一、布尔类型变量 Python 中的 布尔类型 ( bool ) 用于 逻辑判断 , 布尔类型 是 数字类型 ( Number ) 的一种 , 其有两种 字面量 取值 : 真 : True , 其本质是数字 1 ;假 : False , 其本质是数字 0 ; 代码示例 : # 布尔…

电脑清灰记录(惠普暗影精灵5)

如果选择自己清灰,请确保自己处于精神平静,耐心可控,无粗暴动作倾向,无孩童打扰的状态。 新手全程大概需要2个半小时,老手比较顺利的话半个小时搞定。以下电脑,首次尝试。参考链接暗影精灵四笔记本电脑拆机…

AI绘画新秀-免费使用-Leonardo(Midjourney对手)注册教程

本教程收集于:AIGC从入门到精通教程 AI绘画新秀-免费使用-Leonardo(Midjourney对手) 保姆级注册教程 目录 一、写在前面的话。 二、纯文字教程 2.1 Leonardo注册教程:

一个Python的轻量级搜索工具--Whose

本文将简单介绍 Python 中的一个轻量级搜索工具Whoosh,并给出相应的使用示例代码。 # Whoosh 简介 Whoosh 由 Matt Chaput 创建,它一开始是一个为 Houdini 3D 动画软件包的在线文档提供简单、快速的搜索服务工具,之后便慢慢成为一个成熟的搜…

数字人的新革命,BAT的“冲高”战场

配图来自Canva可画 ChatGPT横空出世,让人们看到了数字人的另一种可能,将ChatGPT与虚拟数字人融合,研发出更加智能化、拟人化的虚拟数字人成为数字人厂商的新命题、新方向。 2月份,岭南股份、风语筑、开普云等10多家公司&#xf…

java设备台账管理系统myeclipse定制开发mysql数据库网页模式java编程jdbc

一、源码特点 java设备台账管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助 mysql数据库,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 java设备台账管理系统myeclipse定制开发mysql 二、功能介绍 此次系统…

3D控件Aspose.3D入门教程(11):通过简单的步骤生成条形码

Aspose.3D 是一个功能丰富的游戏软件和计算机辅助设计(CAD)的API,可以在不依赖任何3D建模和渲染软件的情况下操作文档。API支持Discreet3DS, WavefrontOBJ, FBX (ASCII, Binary), STL (ASCII, Binary), Universal3D, Collada, glTF, GLB, PLY…