应用层—HTTPS详解(对称加密、非对称加密、密钥……)

文章目录

  • HTTPS
    • 什么是 HTTPS
    • HTTPS 如何加密
    • HTTPS 的工作过程
      • 对称加密
      • 非对称加密

HTTPS

什么是 HTTPS

HTTPS 也是一个应用层的协议。是在 HTTP 协议的基础上引入的一个加密层。

由来:HTTP 协议内容都是按照文本的方式明纹传输,这就导致在传输过程中出现一些被篡改的情况,因此引入 HTTPS 加密层,用于保护数据。

典型案例就是运营商劫持。由于我们通过网络传输的任何数据包,都会经过运营商的网络设备(路由器、交换机等),那么运营商的网络设备就可以解析出你传输的数据内容,并进行篡改。比如说运营商在用户请求和响应的过程中,插入自己的广告或其他内容,改变原始网页的内容。

运营商为啥要这么做呢??
在这里插入图片描述

不止运营商可以劫持,其他的 黑客 也可以用类似的手段进行劫持,来窃取用户隐私信息,或者篡改内容。

HTTPS 就是在 HTTP 基础上进行了加密,进一步来保证用户的信息安全。



HTTPS 如何加密

想必大家都看过抗战时期的电视剧。在战争中,指挥部向前线传达命令或者情报时,通常会用利用无线电也就是我们所说的电报进行传达。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们为什么会用电报进行信息传达呢??其中最重要的一个原因是,电报具有很高的保密性.

在电报传输的时候,需要有一个密码本(称密钥)和一段要传输的文字(称明文),通信员会按照文字在密码本上的格式来进行传输,以此来形成一段密文。当接收方收到这段密文后,可以参照密码本来进行解析。如果是敌军截获这段电报,是很难解析出来其中的含义的。HTTPS 网络传输的过程,就相当于电报通信的过程。

根据电报的例子我们不难理解,明文+密钥 = 密文(加密) 、密文+密钥 = 明文(解密).

有的场景,加密和解密,使用的是相同的密钥,称为"对称加密"

还有的场景,加密和解密,使用的是不同的密钥,称为"非对称加密"

非对称加密中的不同密钥,还可以分为“公钥”和“私钥”。公钥可以用来加密,私钥就能用来解密。反过来同样如此。



HTTPS 的工作过程

对称加密

最简单的保证安全的做法,是引入对称密钥,针对传输的数据(HTTP 的 header 和 body)进行加密。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


但事情没这么简单。每个客户端,都需要有一把自己的对称密钥(不同客户端的密钥也要不同)如果客户端生成了密钥,就需要把密钥传输给服务器。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


这时候,就还需要想办法,把密钥安全的传输到对端。**需要对这个密钥进行加密!!**此时如果还继续使用对称加密,针对刚才的密钥进行加密,就一定是不行的!!

需要使用非对称加密,针对对称密钥进行加密。



非对称加密

非对称加密要用到两个密钥,一个叫做 “公钥”, 一个叫做 “私钥”。

公钥和私钥是配对的。最大的缺点就是运算速度非常慢,比对称加密要慢很多,因此传输中通常使用对称加密。

  • 通过 公钥 对明文加密,变成密文。
  • 通过 私钥 对密文解密,变成明文。

反过来也可以用。


针对上面对称加密产生的问题,可以使用非对称加密来解决。

首先,服务器产生一对 公钥 和 私钥 ,私钥服务器自己留着用,公钥会发给服务器。接着客户端利用公钥生成密文发送给服务器(发送对称加密的密钥给服务器),服务器利用自己的私钥解开密文。在这过程中因为黑客没有掌握私钥,所以无法破解密文。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传



上述的过程中,还存在一个严重的问题,中间人攻击。黑客可以使用中间人攻击的方式,仍然可以拿到对称密钥。

简单来说就是,黑客可以假装自己是服务器,收到服务器发来的 公钥(pub1) 后,自己再设置一对 公钥(pub2) 和 私钥(pri2),将自己的 公钥(pub2) 发给客户端,以此骗取客户端对称加密的密钥,从而在后续过程中截取信息。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传



如何解决中间人攻击的问题呢??

解决中间人攻击的关键,需要让客户端能够确认当前收到的公钥,确实是服务器返回的,而不是黑客伪造的!!!

因此引入了证书机制,需要有一个第三方的认证机构。通过第三方机构作保,来确认当前的 公钥 是有效的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传



到了这一步,黑客仍然还有办法!!!黑客可以把自己伪装成认证机构,骗客户端安装自己的公钥。此时就可以正大光明的替换掉证书中的数字签名。(这里如何进一步进行反针对,就不再讨论)

网络安全中,“攻击”和“防御”是一个对抗的过程。这个过程,理论上是"无限升级的过程"。由此我们可以看到,网络上没有绝对的安全。

上网需谨慎,消息套路深!!!
在这里插入图片描述

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

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

相关文章

Python 面向对象绘图(Matplotlib篇-16)

Python 面向对象绘图(Matplotlib篇-16)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ�…

GaussDB数据库中的MERGE INTO介绍

一、前言 二、GaussDB MERGE INTO 语句的原理概述 1、MERGE INTO 语句原理 2、MERGE INTO 的语法 3、语法解释 三、GaussDB MERGE INTO 语句的应用场景 四、GaussDB MERGE INTO 语句的示例 1、示例场景举例 2、示例实现过程 1)创建两个实验表,并…

css-盒子等样式学习

盒子居中,继承外层盒子的宽高 兼容性(border-box)将边框收到盒子内部 初始化div 不用管box-setting content-box 还原 创建为一个类 ,让所有需要还原的类 进行继承 padding 用法表示margin上下左右边距 body 外边距&…

C++ 设计模式之策略模式

【声明】本题目来源于卡码网(题目页面 (kamacoder.com)) 【提示:如果不想看文字介绍,可以直接跳转到C编码部分】 【设计模式大纲】 【简介】什么是策略模式(第14种模式) 策略模式是⼀种⾏为型设计模式&…

深度学习常用代码总结(k-means, NMS)

目录 一、k-means 算法 二、NMS 一、k-means 算法 k-means 是一种无监督聚类算法,常用的聚类算法还有 DBSCAN。k-means 由于其原理简单,可解释强,实现方便,收敛速度快,在数据挖掘、数据分析、异常检测、模式识别、金…

ChatGPT提示词保姆级教程

现在越来越多提示词教程,本文列个清单,方便以后整理,不定期更新,欢迎关注留言! 后续更新欢迎关注 提示词(prompt)出来后,被称为一个新的岗位诞生,面向提示词工程师。 …

shell编程学习

shell编程学习 变量的高级用法变量替换字符串处理获取字符索引获取子串长度抽取字符串中的子串 案例测试 变量的高级用法 变量替换 ##变量替换(贪婪,从前往后匹配,匹配到进行删除) test1I love you,you love me echo $test1 han…

数学建模实战Matlab绘图

二维曲线、散点图 绘图命令:plot(x,y,’line specifiers’,’PropertyName’,PropertyValue) 例子:绘图表示年收入与年份的关系 ‘--r*’:--设置线型;r:设置颜色为红色;*节点型号 ‘linewidth’:设置线宽&#xff1…

HarmonyOS鸿蒙学习基础篇 - 项目目录和文件介绍

├── hvigor //存储购置信息的文件,主要用于发布打包 ├── idea //开发工具相关配置可忽略 ├── AppScope //工程目录 全局公共资源存放路径 │ └── resources │ │ └── base │ │ │ └── element //常亮存放 │ │ │ …

大数据关联规则挖掘:Apriori算法的深度探讨

文章目录 大数据关联规则挖掘:Apriori算法的深度探讨一、简介什么是关联规则挖掘?什么是频繁项集?什么是支持度与置信度?Apriori算法的重要性应用场景 二、理论基础项和项集支持度(Support)置信度&#xff…

Rust - 变量与数据的交互方式(clone)

在上一篇文章中我们介绍了变量与数据的交互方式-move,通过底层原理我们知道Rust 永远也不会自动创建数据的 “深拷贝”。因此,任何 自动的复制可以被认为对运行时性能影响较小。 但是如果我们 确实需要深度复制 String中堆上的数据,而不仅仅…

PageHelper分页插件的使用

1.引入依赖 <!-- pagehelper 分页插件 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.7</version></dependency> 2.application.yml…

大数据平台的硬件规划、网络调优、架构设计、节点规划

1.大数据平台硬件选型 要对Hadoop大数据平台进行硬件选型,首先需要了解Hadoop的运行架构以及每个角色的功能。在一个典型的Hadoop架构中,通常有5个角色,分别是NameNode、Standby NameNode、ResourceManager、NodeManager、DataNode以及外围机。 其中 NameNode 负责协调集群…

Java--类继承

文章目录 主要内容一.学生类1.源代码代码如下&#xff08;示例&#xff09;: 2.结果 二.交通工具类1.源代码代码如下&#xff08;示例&#xff09;: 2.结果 三.圆类1.源代码代码如下&#xff08;示例&#xff09;: 2.结果 总结 主要内容 学生类交通工具类圆类 一.学生类 具有…

TCP协议

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;JavaEE &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; TCP 1. 报文结构2. 特性2.1 确认应答2.2 超…

Vue-30、Vue非单文件组件。

非单文件组件&#xff1a; 一个组件包含n个组件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>非单文件组件</title><script type"text/javascript" src"https://cdn.jsde…

MSPM0L1306例程学习-UART部分(3)

MSPM0L1306例程学习系列 1.背景介绍 写在前边的话&#xff1a; 这个系列比较简单&#xff0c;主要是围绕TI官网给出的SDK例程进行讲解和注释。并没有针对模块的具体使用方法进行描述。所有的例程均来自MSPM0 SDK的安装包&#xff0c;具体可到官网下载并安装: https://www.ti…

【精选】中间件 tomcat漏洞复现

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…

恭喜 Apache Dubbo 和 Nacos 荣获开放原子“2023年度生态开源项目”

12 月 16 日&#xff0c;以“一切为了开发者”为主题的开放原子开发者大会在江苏省无锡市开幕。江苏省工业和信息化厅厅长朱爱勋、中国开源软件推进联盟主席陆首群等领导和专家参加开幕式&#xff0c;工业和信息化部信息技术发展司副司长王威伟、江苏省工业和信息化厅副厅长池宇…

Linux 批量添加 known_hosts

前言 我们在做完linux ssh 免密登录后&#xff0c;通常会执行一些自动化任务&#xff08;比如启动Spark集群&#xff09;&#xff0c;也就是需要ssh到每台节点执行相同命令。但是有一个问题就是如果 known_hosts 文件中不存在这个ip的话&#xff0c;在第一次连接时会弹出确认公…