当前位置: 首页 > news >正文

HTTPS协议原理---详解六个加密方案

目录

一、HTTPS

1.加密与解密

2.我们为什么要加密?

3.常见加密方式

①对称加密

②非对称加密

4.数据摘要

5.数字签名

二、HTTPS的加密方案

1.只是用对称加密​

2.只使用非对称加密 

3.双方都使用非对称加密

4.非对称加密+对称加密

中间人攻击

证书

CA认证

理解数据签名

5.非对称加密+对称加密+证书认证

完整流程

查看浏览器所信任的证书发布机构

 中间人有没有可能篡改该证书?

中间人是否可以掉包整个证书呢?

如何成为中间人?

总结:


一、HTTPS

        上一篇博客,详细讲述了HTTP协议(超文本传输协议)的一些细节,在最后我们提到,无论如何HTTP 协议内容都是按照⽂本的⽅式明⽂传输的,这就导致在传输过程中出现⼀些被篡改的情况,所以当今的网站都是用的是HTTPS 协议,HTTPS 也是⼀个应⽤层协议. 是在 HTTP 协议的基础上引⼊了⼀个加密层。

1.加密与解密

        什么是加密?就是将明文转换为密文。

        什么是解密?就是将密文转换为明文。

        在这两个过程中,通常要密钥来辅佐。密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。

例子:
        

         

         通过密钥我们可以将密文转换为明文,反之亦然。

2.我们为什么要加密?

        我们都会经历过这样一个现象。明明下载的是我们想要的软件,却弹出另一个软件的下载。

        这就是臭名昭著的运营商的劫持。关于运营商劫持,我们要到后面才会讲到。

        如图,我们发送HTTP请求,运营商接收到这个请求之后,发现请求为www.baidu.com,运营商就会将HTTP响应替换为新浪的官网。        

        因为http的内容是明⽂传输的,明⽂数据会经过路由器、wifi热点、通信服务运营商、代理服务 器等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传 输的信息且不被双⽅察觉,这就是中间人攻击 ,所以我们才需要对信息进⾏加密。

        所以针对防止中间人攻击,我们要对数据进行加密,下文会讲述到“道与魔之间的对抗”,我们呢拼尽全力抵抗数据被截取,中间人总用方法来获取信息。可谓“道高一丈魔高一尺”。

3.常见加密方式

①对称加密

        采⽤单钥密码系统的加密⽅法,同⼀个密钥可以同时⽤作信息的加密和解密,这种加密⽅法称为对称加密,也称为单密钥加密,特征:加密和解密所⽤的密钥是相同的。

        常⻅对称加密算法:DES、3DES、AES、TDEA、Blowfish、RC2等 

        特点:算法公开、计算量⼩、加密速度快、加密效率⾼

例如:

②非对称加密

        需要两个密钥来进⾏加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥 (private key,简称私钥)。

        常⻅非对称加密算法(了解):RSA,DSA,ECDSA

        特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,⽽使得加密解密速度没有对 称加密解密的速度快。

        非对称加密要⽤到两个密钥, ⼀个叫做 "公钥", ⼀个叫做 "私钥". 公钥和私钥是配对的. 最⼤的缺点就是运算速度⾮常慢,⽐对称加密要慢很多.

        通过公钥对明⽂加密, 变成密⽂                      

        通过私钥对密⽂解密, 变成明⽂

或者

        通过私钥对明⽂加密, 变成密⽂                      

        通过公钥对密⽂解密, 变成明⽂

4.数据摘要

        数据摘要(数据指纹)这是通过利用单向散列函数(Hash函数)对信息进行运算,生成一段固定长度的数据摘要。

        摘要常见算法:有MD5、SHA1、SHA256、SHA512等。

        摘要特征:和加密算法的区别是,摘要严格意义不是加密,因为没有解密,只不过从摘要很难反推 原信息,通常⽤来进⾏数据对⽐。

        这个摘要就像这个资源的身份证号一样,相同的几率微乎其微,我们可以通过数据摘要来比对判断不同资源是否相同。因为更改一个标点符号就会导致前后数据摘要不一样。

        例如:当我上传电影时,会发现这个资源有时会瞬间就会被告知上传成功,但是有时需要很长时间几兆几兆的上传。只是因为,上传的软件会将电影等资源利用单向散列函数形成数据摘要,将数据摘要与服务器中的资源的数据摘要进行对比,如若有数据摘要与当前上传的文件的数据摘要相同,就证明服务器中有我们上传的这份资源,此时就不需要我们上传了,所以会被告知上传完毕。

        注意,不可能通过数据摘要反向推出资源来,因为是使用单向散列函数来运算的。

5.数字签名

        数字摘要通过加密就得到了数字签名。

二、HTTPS的加密方案

1.只是用对称加密

        哇,这样不错诶,黑客(中间人)拿到的只是密文,看不到我的明文内容,这样多安全。

        但事情绝没有这么简单,服务端同时给很多客户端提供服务,它们的密钥之间必是不同的,如果是相同的,就容易扩散,黑客很容易拿到。所以密钥之间是不同的。所以,需要服务端来维护每个客户端和服务端之间的密钥关系,也是一个麻烦的工程。

        较为理想的情况为,在每次服务端和客户端建立关系之前就协商好密钥是什么。

        但是,这个密钥在网络传输(协商)中是不是也要加密啊,不加密又要被黑客获取,但是加密又要使用密钥,这就是“先有鸡还是先有蛋”的问题了,所以这个方法行不通。

2.只使用非对称加密  

         这样很是不错,因为中间人只能获得我的公钥和密文,但是获得不了私钥,所以解密不了,但是,这有很大隐患,只能由客户端发信息,而不能由服务端发信息。

        因为客户端只有公钥,所以服务端只能用私钥加密,发送信息 ,这时中间人截取信息,通过先前截取的公钥就可以获得信息。那如果服务端通过公钥加密,那客户端没有私钥就不能解密。

        只使用非对称加密是行不通的。

3.双方都使用非对称加密

        上个方案只是客户端有公钥,服务端有私钥,保证单方面的保密可行。这一次客户端和服务端都具有独有的公钥与私钥,然后互换公钥。

          这种方法可行,但是非对称加密速度与对称加密相比慢得多,会产生效率问题,并且还会有安全问题。

4.非对称加密+对称加密

        服务器具有非对称公钥1和私钥1。

        客户端发起Http请求,获取公钥1。

        客户端形成对称密钥2,通过公钥1,将对称密钥2发给服务端,中间人因为没有私钥1,所以获取之后解密不了,服务端获取密文通过私钥1解密之后获得对称密钥2.

        之后客户端和服务端都使用对称密钥2来加密解密,快捷可靠。

中间人攻击

        这几个方案都逃不过中间人攻击这个手段。

        我们以方案四作为底层方案,设想一下,如果在建立http请求的时候中间人,伪装成客户端和服务端,与不同的双方交流都伪装成对面的一端,这样方案四就漏洞百出,我们根据图示理解。

         中间人干了这么多事情最主要的是假装自己对方通信的另一端,最终为了获取客户端的对称密钥,这样接下来的客户端和服务端之间的通信对中间人毫无秘密可言。

证书

CA认证

        服务端在使⽤HTTPS前,需要向CA机构申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信 息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端 公钥的权威性。

        我们下一个方案需要证书的帮助。

理解数据签名

        数据签名的目的是防止数据被篡改。

        如果中间人拿到数字签名的数据,将其中的数据做修改,然后通过散列函数形成散列值,但是中间人没有签名者的私钥,不能将散列值转换为签名(即无法将更改之后的数据转换为签名,即使使用自己的私钥加密之后将签名更换,之后的还需要有签名者的公钥来解密,就会原形毕露),最后再验证的时候原有的签名经过签名者的公钥得出的散列值和已经被篡改的数据形成的散列值不一致,这个数字签名就没有用了。

5.非对称加密+对称加密+证书认证

        在客户端和服务器刚⼀建⽴连接的时候, 服务器给客户端返回⼀个证书,证书包含了之前服务端的公钥, 也包含了⽹站的⾝份信息。

        当客户端获取证书后,会检查证书的证伪。

        判断证书的有效期是否过期。

        判断发布证书的机构是否受信任。

        验证证书是否被篡改。从系统中拿到发布证书的机构的公钥,将签名解密,得到hash1(数据摘要),再将数据(证书)通过散列函数得到hash2,比对hash1与hash2的值,相同则为该证书未被篡改过。

完整流程

查看浏览器所信任的证书发布机构

        在edge浏览器中,此处就可以查看

        我们点开一个证书查看细节。

        我们会发现他们包含了我们所说的关键信息。

 中间人有没有可能篡改该证书?

        先前我们说过,这里在简洁的表述。

        中间人篡改证书,将原文修改,但是他没有CA机构的私钥,无法将更改的数据经过hash再通过私钥转形成签名。如果强⾏篡改,客⼾端收到该证书后会发现明⽂和签名解密后的值不⼀致,则说明证书已被篡改, 证书不可信,从⽽终⽌向服务器传输信息,防⽌信息泄露给中间⼈。

中间人是否可以掉包整个证书呢?

        我们要知道,客户端在认证时都是通过认证机构的公钥来检查证书的真伪的,所以中间人没有响应的私钥就是不可行的,转而去申请真的证书,然后用自己的证书将客户端接受的证书进行调换。

        方法是可行的,但是证书明⽂中包含了域名等服务端认证信息,如果整体掉包,客户端依旧能够识别出来。

如何成为中间人?

        ARP欺骗:在局域⽹中,hacker经过收到ARP Request⼴播包,能够偷听到其它节点的 (IP, MAC) 地址。例, ⿊客收到两个主机A, B的地址,告诉B (受害者) ,⾃⼰是A,使得B在发送给A 的数据包 都被⿊客截取。

        ICMP攻击:由于ICMP协议中有重定向的报⽂类型,那么我们就可以伪造⼀个ICMP信息然后发送给 局域⽹中的客⼾端,并伪装⾃⼰是⼀个更好的路由通路。从⽽导致⽬标所有的上⽹流量都会发送到 我们指定的接⼝上,达到和ARP欺骗同样的效果。

总结:

        第一组非对称密钥,CA机构拥有的私钥,客户端拥有公钥,这两个密钥合作起来,来检查证书的真伪。

        第二组非对称密钥,客户端生成对称密钥,通过公钥,将对称密钥加密,发回给服务端,服务端通过私钥解密,获得对称密钥。

        第三组对称密钥,客户端和服务器后续传输的数据都通过这个对称密钥加密解密。

   

        感谢观看,如有错误请指出,我们下次再见。

相关文章:

HTTPS协议原理---详解六个加密方案

目录 一、HTTPS 1.加密与解密 2.我们为什么要加密? 3.常见加密方式 ①对称加密 ②非对称加密 4.数据摘要 5.数字签名 二、HTTPS的加密方案 1.只是用对称加密​ 2.只使用非对称加密 3.双方都使用非对称加密 4.非对称加密+对称加密 中间人攻…...

纯css实现坤坤经典动作-“铁山靠”

背景 2023年2月16日,晴,今天没有工作,一直在掘金摸鱼,摸的我好累。 不行!我得找点有意义的事情做! 此时间,我发的一条沸点竟然有小黑子给我评论,\ 我看到之后气不打一处来&#xff…...

Linux 操作系统原理 — NUMA 体系结构

目录 文章目录 目录NUMA 体系结构NUMA 的基本概念查看 Host 的 NUMA TopologyBash 脚本DPDK 脚步NUMA 体系结构 NUMA(Non-Uniform Memory Access,非一致性存储器访问)的设计理念是将 CPU 和 Main Memory 进行分区自治(Local NUMA node),又可以跨区合作(Remote NUMA nod…...

cesium学习记录01

1,将右弦GISer的cesium实战系列的大部分功能(25-110) 都又跟着走了一遍(大部分是CTRL CCTRL V) 2,代码SVN地址(用户名:liu 密码:123) (如果我没有遗漏上传…...

Linux延时队列工作原理与实现

当进程要获取某些资源(例如从网卡读取数据)的时候,但资源并没有准备好(例如网卡还没接收到数据),这时候内核必须切换到其他进程运行,直到资源准备好再唤醒进程。 waitqueue (等待队列) 就是内核…...

【Python】scipy稀疏矩阵的奇异值分解svds

文章目录基本原理scipy实现测试基本原理 当AAA是方阵时,可以很容易地进行特征分解:AWΣW−1AW\Sigma W^{-1}AWΣW−1,其中Σ\SigmaΣ是AAA的特征值组成的对角矩阵。如果WWW由标准正交基组成,则W−1WTW^{-1}W^TW−1WT,…...

网络安全等级保护基础知识汇总

等保 全称是网络安全等级保护,分为两个阶段 等保1.0 1994年国务院147令《中华人民共和国计算机信息系统安全保护条例》 等保2.0 2017年 网络安全法,21条规定的 国家实行网络安全等级保护制度,等保进入了有法可依阶段。 2019年国标22239-2019版…...

ros1使用过程中遇到的问题记录

Failed to fetch current robot state如果使用的是moveit助手生成的demo.launch文件启动机械臂的话,应该是其他在运行的自己写的节点代码中少了spin函数,因为getCurrentPose函数依赖于spin,也可以使用AsyncSpinner。具体看下面这个链接https:…...

centos7给已有分区进行扩容

1、背景 最近我在虚拟机上安装软件,发现磁盘空间不足,通过上网查找资料,发现可以通过如下方法进行磁盘扩容,此处进行记录一下。 2、实现扩容 1、虚拟机上添加一个新的硬盘 2、查看我们刚刚加入的硬盘 此处我们可以看到/dev/nvm…...

package.json

{"name": "project-name", 项目名字"version": "0.1.0", 版本号"private": true, 项目包,不需要发版"scripts": { 脚本"serve": "vue-cli-service serve", 运行命令后缀是 se…...

【项目精选】户籍管理系统(视频+论文+源码)

点击下载源码 当今社会人们生活质量越来越高,人们对生活品质的追求不断提升,对于孩子求学,变更住所等情况时有发生,因此对于户籍变动管理就显得十分重要,管理用户的户籍信息可以有效防止信息错乱,信息管理过…...

【IP技术】网络安全防护措施

网络安全威胁造成的形式主要包含运用系统软件缺点或侧门,运用网络防火墙安全隐患,内部结构客户的泄密、泄露和毁坏,动态口令进攻和拒绝服务式攻击等。针对该网络安全威胁,现阶段的预防措施主要有五种:1.访问控制技术&a…...

基于AIOT技术的智慧教室智能物联管控系统设计与实现(提纲)

摘要随着物联网技术的不断发展和智能化的不断推进,智慧教室已经成为现代教育中不可或缺的一部分。本文提出了一种基于AIOT技术的智慧教室智能物联管控系统设计与实现方案,该方案集成了物联网技术、人工智能技术、大数据技术和云计算技术等先进技术&#…...

C 指针的深造

C 指针1 关于内存那点事2 指针的概念3 指针变量的定义方法4 指针的分类5 指针和变量的关系6 指针和数组元素之间的关系7 指针数组8 指针的指针9 字符串和指针9.1 字符串的定义9.2 字符串的可修改性:9.3 初始化赋值9.4 使用时赋值9.5 字符串和指针总结10 数组指针11 …...

大数据之-Nifi-应用场景2-2_设置putfile处理器自动创建目标文件夹_以及存在重复文件时自动覆盖---大数据之Nifi工作笔记0006

上一节我们留了两个问题,一个是,如果我们没有创建putfile要写入的目标文件夹,会报错吗? 可以看到我们putfile目标文件夹是上面这个目录 我们来试一试,如果目标文件夹不存在,putfile处理器会自动创建吗 首先我们删除这个target目标文件夹 然后我们进入cd source目录,源文件夹目…...

buuctf Web 下

9.[ACTF2020 新生赛]Exec 访问url: http://cc3c6c27-e2df-4665-baba-1d9a32dc963e.node3.buuoj.cn/ 首页如下: 直接ping ip可以得到结果 常见管道符 1、|(就是按位或),直接执行|后面的语句 127.0.0.1 | cat /flag…...

【项目精选】javaEE土地档案管理系统(源码+论文+视频)

技术:java、jsp、struts、spring、hibernate 数据库:oracle 集成开发工具:eclipse 点击下载源码 本土地项目管理系统在可行性研究的基础上,是为了进一步明确土地项目管理系统的软件需求,以便安排项目规划和进度&#x…...

JVM那些事——垃圾回收和内存分配

内存分配 默认情况下新生代和老年区的内存比例是1:2,新生代中Eden区和Survivor区的比例是8:1。 对象优先分配在Eden区。大对象直接进入老年区。通过-XX:PertenureizeThreshold参数设置临界值。长期存活的对象进入老年区。对象每熬过一次Minor GC,年龄1&…...

什么牌的运动耳机比较好、运动耳机排行榜10强

现在运动健身的潮流持续不下,而且人们长期坐于办公室办公,严重影响身体的健康,这时不论是去健身房锻炼,还是户外跑步都是非常必要的了,而蓝牙耳机作为运动必备的一款数码产品,更是受到了大家的青睐&#xf…...

华为OD机试题 - N 进制减法(JavaScript)

最近更新的博客 2023新华为OD机试题 - 斗地主(JavaScript)2023新华为OD机试题 - 箱子之形摆放(JavaScript)2023新华为OD机试题 - 考古学家(JavaScript)2023新华为OD机试题 - 相同数字的积木游戏 1(JavaScript)2023新华为OD机试题 - 最多等和不相交连续子序列(JavaScri…...

MyBatis 之三(查询操作 占位符#{} 与 ${}、like查询、resultMap、association、collection)

文章目录1. 参数占位符 #{} 和 ${} 的区别2. ${} 的优点3. SQL 注入问题4. like 查询5. 返回字典映射:resultMap6. 一对一查询:association7. 一对多查询:collection回顾一下,在上一篇 MyBatis 之二(增、删、改操作&am…...

【云原生之Docker实战】使用Docker部署Web在线聊天室Rocket.Chat

【云原生之Docker实战】使用Docker部署Web在线聊天室Rocket.Chat 一、Rocket.Chat介绍二、检查本地系统环境1.检查系统版本2.检查docker版本3.检查docker状态4.检查docker compose版本三、下载Rocket.Chat镜像四、部署Rocket.Chat1.创建部署目录2.编辑docker-compose.yaml文件3…...

阿里一面:谈一下你对DDD的理解?2W字,帮你实现DDD自由

说在前面 在微服务的应用开发中,DDD 用得越来越普及。 在40岁老架构师 尼恩的读者交流群(50)中,DDD是一个非常、非常高频的交流话题。 最近,有小伙伴面试阿里时,遇到一个面试题: 谈谈你对DDD的理解? 小伙…...

嵌入式Linux入门级板卡的神经网络框架ncnn移植与测试-米尔i.MX6UL开发板

本篇测评由电子发烧友的优秀测评者“ALSET”提供。 米尔 MYD-Y6ULX-V2 开发板,基于 NXP i.MX6UL/i.MX6UL L处理器,该开发板被米尔称之为经典王牌产品。本次测试目标是在此开发板上进行神经网络框架ncnn的移植与测试开发,测试ncnn在此开发板上…...

扬帆优配|杠杆资金重仓股曝光,3只科创板股获多路资金青睐

到2月16日,科创板融资余额环比前一日削减1104.16万元,其间,23股融资余额环比添加超千万元,融资净买入居前的有晶科动力、诺诚健华、爱博医疗等。 到2月16日,市场融资余额算计1.48万亿元,较前一交易日削减27…...

资讯汇总230217

230217 22:48 【美联储理事鲍曼:美国通胀仍旧太高】美联储理事鲍曼表示,美国通胀仍旧太高;美国当前的经济数据不一致,不同寻常的低失业率是一个好迹象;让通胀回到目标还有很长的路要走;需要继续加息&#x…...

前置知识- 初值问题、ode 系列函数的用法、刚性 (stiff) 方程简介、高阶微分方程的降阶

1.1.4 龙格一库塔法 将向前欧拉法写成式 (1-37) 的形式, 可以看出它实际上利用了 f ( x , u ) f(x, u) f(x,u) 在 x n...

# AutoSar一文概览

1.什么是AutoSar ​ AUTOSAR全称为“AUTomotive Open System ARchitecture”,译为“汽车开放系统体系结构”;AUTOSAR是由 全球各大汽车整车厂、汽车零部件供应商、汽车电子软件系统公司联合建立的一套标准协议、软件架构。 2.为什么汽车行业要定义一个…...

分享88个HTML旅游交通模板,总有一款适合您

88个HTML旅游交通模板下载链接:https://pan.baidu.com/s/1pziNhgpC53h3KZy_a-aAFQ?pwdf99e 提取码:f99e Python采集代码下载链接:采集代码.zip - 蓝奏云 HTML5旅行公司旅行社网站模板 HTML5旅行公司旅行社网站模板是一款提供旅行服务的公司…...

C#中GDI+的矩形功能扩展

文章目录一、中心定位绘制图形1、矩形及椭圆中心定位2、圆的中心定位矩形二、圆角矩形三、收缩功能四、移动复制功能原文出处: https://haigear.blog.csdn.net/article/details/129060020GDI发展到GDI绘制函数中的参数往往都有矩形这个参数(除绘制直线和…...

wordpress高级插件/网址域名大全2345网址

我们在学习linux时一般都是在文字界面下操作的,那有时需要进入到图形界面,但是系统在安装时,并没有安装图形界面包。今天我们来学习下Linux图形界面的安装卸载。以下操作前提需要配好本地YUM源。详见《Linux运维工程师的第十天(配置本地YUM源…...

建立一个官网多少钱/南宁百度seo排名公司

1.下载 一开始选择的在线安装的方式,https://www.qt.io/download-open-source,发现安装中总是出现未响应的问题,后来采用官方发布版本的方式: http://download.qt.io/official_releases/qt/5.9/5.9.0/qt-opensource-windows-x86-5.9.0.exe,这个离线文件比较大,有2.3G. 2.安装 安…...

做移门图的 网站有哪些/seo北京公司

概要 电影文件有很多基本的组成部分。首先,文件本身被称为容器Container,容器的类型决定了信息被存放在文件中的位置。AVI和Quicktime就是容器的例子。接着,你有一组流,例如,你经常有的是一个音频流和一个视频流。&…...

版本设计网站/北京全网营销推广

数据倾斜是怎么发生的? 数据倾斜:shuffle过程数据分布不均匀。 shuffle:洗牌。 分步式计算,相同key的数据会到一个节点去处理。 举个例子:某宝想统计各个商家的一年销售额,有的商家卖了很多产品&#xff0…...

带做网站价位/中国互联网电视app下载安装

一:为啥进行系统拆分?如何进行系统拆分?为啥要使用dubbo? 1.为啥进行系统拆分 要是不拆分,一个大系统几十万行代码,20 个人维护一份代码,简直是悲剧啊。代码经常改着改着就冲突了,…...

wordpress用户系统/国外黄冈网站推广软件

本节书摘来自华章出版社《Core Data应用开发实践指南》一书中的第3章,第3.4节,作者 (美)Tim Roadley,更多章节内容可以访问云栖社区“华章计算机”公众号查看 3.4 默认的迁移方式 有时候我们需要比轻量级迁移更为精细…...