网络原理-HTTPS协议

在前面说到HTTP中,我们通过抓包,可以看到许多信息内容,其中往往会包含一些敏感信息,这些都是明文传输,当我们的请求被黑客或者不法分子截获后,那就很危险了,因此衍生出了HTTPS协议来对传输数据进行加密。

一、加密原理

基本原理如下:

明文 + 密钥 => 密文

密文 + 密钥 => 明文

一般加密解密分为两种:

对称加密:加密和解密都是使用相同的密钥。

不对称加密:生成一对密钥,分别为"公钥"和"私钥",使用公钥进行加密,就得使用私钥进行解密。

二、HTTPS的工作过程

要想实现安全的传输,最简单的方法就是进行加密。

由于双方需要进行加密/解密的操作,因此一方需要先生成一个密钥,传给对方,这样双方才能进行正确的数据交换。

虽然对数据进行了加密,但只要想办法拿到密钥就能还原明文了,然后就查看以及修改了。

此时黑客入侵了路由器,这样在客户端发送密钥的时候,黑客也能收到密钥,后续客户端发送的信息也都成了"明文"。

此时就需要想办法如何将密钥安全的发送给服务器呢?那就再进行加密!显然无穷无尽的进行对称加密操作是不行的,这时候就得用上非对称加密了。

说明:

由于非对称运算涉及的算法比较复杂,因此运算量较大,效率比较低,因此对数据进行加密往往使用对称加密的方式。而上述所使用的的非对称加密是针对对称密钥进行加密操作


虽然非对称+对称加密组合已经是很无敌的配合了,但是还有一种方式可以破解

中间人攻击:

在上述过程中,黑客通过伪造一对自己的密钥,将服务器的公钥进行替换。

因此要解决上述情况需要让客户端能够确认当前收到的公钥是服务器的,而不是伪造的,这就引入了证书机制。

通过一个第三方的认证机构作为担保,保证当前的公钥是有效的


证书机制:

服务器想要将生成的对称公钥发送给客户端,需要先去申请一个证书,然后再将证书发送给客户端。其中证书包含了网站域名、服务器的公钥、数字签名等信息

数字签名是一个类似于校验和的东西,公正机构根据服务器的域名、公钥和其他一些属性进行计算生成校验和,然后再针对生成的校验和使用公正机构的私钥进行加密。

服务器将这个证书发送给客户端,客户端收到后,使用公正机构的公钥对数字签名进行解密,就能得到相应的校验和了,然后再将证书的其他属性进行校验和计算,检查出来是否和解密出来校验和一致,如果一致则说明证书是好的

上述过程理论上能够实现"服务器将公钥安全送达客户端",但是黑客依旧有办法~

黑客可以伪造认证机构,骗客户端安装自己的公钥,这样就可以进行替换数字签名了......

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

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

相关文章

【一竞技DOTA2】RAMZES666替补参加裂变联赛

1、根据主办方文件,RAMZES666将继续作为Tundra战队替补参加裂变联赛。该比赛为欧洲线上赛,于5月27日-30日举行,总奖金8万美元。 除此之外,Nigma战队在上个月宣布四号位Matthew离队后,也选择启用老队员GH参赛。而在本月初让ah fu转回教练、携替补Thiolicor出战PGL瓦拉几亚的Secr…

远程户外监控组网方案,工业4G路由器ZR2000

户外监控无人值守4G工业路由器组网应用涉及工业自动化、数据传输和远程监控的重要领域。在户外没有光纤的情况下,想要让监控或传感器等设备联网,仅需一台4G工业路由器即可解决。以下是关于远程监控户外组网的详细分析与应用: 物联网应用场景 …

【Python】 Python中__slots__的妙用:提升性能与内存管理

基本原理 在Python中,每个类默认都会继承自object类,而object类在Python中是一个动态类,允许动态地添加属性和方法。这种灵活性使得Python在某些情况下非常强大和灵活,但同时也带来了一些性能和内存使用上的开销。 为了解决这个…

Spring:事务

1. 简介 spring对jdbc进行封装&#xff0c;简化对数据库的操作 2. HelloWorld 1. 搭建模块 2.加入依赖 <dependencies><!--spring jdbc Spring 持久化层支持jar包--><dependency><groupId>org.springframework</groupId><artifactId>s…

设计模式 22 访问者模式 Visitor Pattern

设计模式 22 访问者模式 Visitor Pattern 1.定义 访问者模式是一种行为型设计模式&#xff0c;它允许你在不改变已有类结构的情况下&#xff0c;为一组对象添加新的操作。它将算法与对象结构分离&#xff0c;使你能够在不修改现有类的情况下&#xff0c;为这些类添加新的操作。…

Flink系列一:flink光速入门 (^_^)

引入 spark和flink的区别&#xff1a;在上一个spark专栏中我们了解了spark对数据的处理方式&#xff0c;在 Spark 生态体系中&#xff0c;对于批处理和流处理采用了不同的技术框架&#xff0c;批处理由 Spark-core,SparkSQL 实现&#xff0c;流处理由 Spark Streaming 实现&am…

什么是深拷贝和浅拷贝?

浅拷贝 浅拷贝是指将一个对象复制到另一个变量中&#xff0c;但是复制的是对象的地址&#xff0c;而不是对对象本身进行复制。原始对象的引用和复制对象的引用时期上是共享同一个内存地址的。 所以我们修改了复制引用指向的对象中的属性或方法&#xff0c;原始引用指向的对象…

metersphere发送kafka消息

上传jar包 设置前置脚本 import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerRecord; import java.util.Properties;// Kafka 生产者配置 Properties props new Properties(); props.put("bootstrap.servers&qu…

JavaWeb_SpringBootWeb

先通过一个小练习简单了解以下SpringBootWeb。 小练习&#xff1a; 需求&#xff1a;使用SpringBoot开发一个Web应用&#xff0c;浏览器发起请求/hello后&#xff0c;给浏览器返回字符串"Hello World~"。 步骤&#xff1a; 1.创建SpringBoot项目&#xff0c;勾选We…

【电源专题】功率电感啸叫对策及案例

在文章:【电源专题】功率电感器啸叫原因及典型案例 中我们了解到了电感器啸叫的原因和一些典型电路中产生电感啸叫的案例。通过案例我们了解到很多时候啸叫来源是DC-DC转换器的功率电感器,所以如果我们要降低或消除啸叫,那有哪些对策呢? 避免流过人耳可听频率电流 首先我们…

Spring Boot 中使用 Spring Retry 重试:再也不怕代码“掉链子”了

引言&#xff1a;生活需要重试&#xff0c;代码也一样&#xff01; 想象一下&#xff0c;你正在网上支付&#xff0c;结果网络突然卡顿&#xff0c;支付失败。这时候你会怎么做&#xff1f;当然是再试一次&#xff01;生活中我们经常会遇到各种“失败”&#xff0c;但我们会选…

猜猜我是谁游戏

猜谜过程 在TabControl控件中&#xff0c;第一个tab中放了一个PictureBox&#xff0c;里面有一张黑色的图片。 玩家点击显示答案按钮&#xff0c;切换图片。 设计器 private void button1_Click(object sender, EventArgs e){this.pictureBox1.Image Image.FromFile(&qu…

Covalent的CQT质押迁移比率在以太坊上升至13%,超Moonbeam记录

Covalent Network&#xff08;CQT&#xff09;作为领先的结构化模块化数据基础设施层&#xff0c;目前其在以太坊上的 CQT 质押比率已超过之前在 Moonbeam 上达到的历史最高水平。自从将质押合约迁移到以太坊不到一个月的时间里&#xff0c;超过总供应量的 13% 的 CQT 代币已被…

总结 HTTPS 的加密流程

一、前言 http是为了解决http存在的问题而在http基础上加入了SSL/TSL&#xff0c;在HTTP/2中TCP三次握手后会进入SSL/TSL握手&#xff0c;当SSL/TSL建立链接后&#xff0c;才会进行报文的传输。 二、HTTPS的混合加密 我们先来认识密钥&#xff1a; 密钥是用于加密和解密数据…

【MySQL事务(下)(重点)】

文章目录 再次理解MySQL事务一、MVCC机制数据库并发的场景有三种&#xff1a;3个记录隐藏列字段undo日志——由mysql维护的一段内存空间再次理解隔离性和隔离级别 Read View 理论部分RR 和 RC 的本质区别 再次理解MySQL事务 1.每个事务都有自己的事务ID&#xff0c;根据事务的…

Recognition:基于HoG特征的最近邻分类器与SVM的人物检测器

实际运行结果&#xff1a; 上面的为最近邻分类器&#xff0c;其中红框表示最近邻搜索的预测结果。下方的为SVM&#xff1a;橙色框表示SVM的预测结果。其中&#xff0c;最红的框表示SVM预测的最高得分的预测结果。 使用经典图像处理的方法开发简单人物检测器&#xff0c;其大致…

P148--章节作业1

编辑 编辑 public class Main {public static void main(String args[]){double yxq100000;int cishu0;while(true) {if(yxq > 50000) {yxq yxq - yxq * 0.05;cishucishu1;}else if(yxq > 1000){yxq yxq - 1000;cishucishu1;}else{break;}}System.out.print(cishu);} …

【分支控制】(switch) 详解

switch分支结构 基本语法 switch (表达式){case 常量1: //当...语句块1;break; //跳出switchcase 常量2:语句块2;break;...case 常量n;语句块n;break;default:default语句块;break;}switch 关键字, 表示switch分支表达式, 对应一个值case 常量1: 当表达式的值等于常量1, 就执行…

详解Spring MVC

目录 1.什么是Spring Web MVC MVC定义 2.学习Spring MVC 建立连接 RequestMapping 注解介绍及使用 获取单个参数 获取多个参数 获取普通对象 获取JSON对象 获取基础URL参数 获取上传文件 获取Header 获取Cookie 获取Session 总结 1.什么是Spring Web MVC 官⽅对于…