HTTP的前世与今生
其实HTTPS就是披上了SSL战甲的HTTP战士~像这样:
哈哈,开玩笑的,不过HTTP的确是HTTPS的前世续缘对象哦~
文章目录
- 1.对称加密算法
- 2.非对称加密算法(RSA)
- 3.非对称加密+对称加密
- 4.中间人攻击劫持
- 5.CA证书
HTTP我们都知道它存在很多问题,例如:
1).通信使用明文,内容可以被监听
2).不验证通信方的身份,可能遭遇伪装
3).无法证明报文的完整性,所以有可能已遭篡改
互联网上的任何角落都存在通信内容被监听的风险,所以前辈们就想到了为我们的信息制定,加密、认证、完整性保护的措施。通过这些措施,为我们的通信制造出一个安全的通道。
开头说过HTTP是“披上了SSL战甲的HTTP战士”,那么SSL是什么呢?
SSL(Secure Socket Layer)是由浏览器开发商景通信公司率先倡导的,是为网络通信提供安全及数据完整性的一种安全协议。SSL1.0设计之初就发现了问题,并没有投入使用。SSL2.0也发现存在问题,所以很多浏览器直接废除了这个版本。所以目前主流版本是SSL3.0。
下面来聊一下HTTP的升阶之路吧:
1.对称加密算法
定义:加密和解密用的是同一把密钥
如果通信使用明文,就相当于一丝不挂的逛街,所以前辈想到了,为我们的通信加密。决定通过密钥解开密文的方式解决这个问题。
问题:加密和解密都需要用到密钥,密钥也需要通过网络传送,很容易被劫持,一旦被劫持,加密也就失去了意义。
2.非对称加密算法(RSA)
定义:一对钥匙,一个是保密的(私钥);一个是公开的(公钥)。只有对应的私钥和公钥可以互相解密。
上面的对称加密算法,很容易被劫持,所以不安全。那么使用非对称加密算法的时候,小红把自己的公钥发给小名,小名把要发给小红的消息通过小红的公钥加密,发送给小红。小红收到小名的消息后,拿自己密钥解锁就可以了。
问题:非对称算法的方式的公钥加密方式比对称加密的方式复杂百倍,所以在通信的时候使用这种方式,效率会很低。
3.非对称加密+对称加密
方法:
1).小红生成一个对称加密算法的密钥,通过非对称加密的算法(小红用公钥加密对称算法的密钥)发送给小名。
2).小名接收到对称加密算法的密钥后,小名、小红之间就直接通过对称加密算法通信了。
问题:存在中间人劫持的问题,无法确保此时小名收到的是小红的公钥。
4.中间人攻击劫持
原理如下图:
过程:
1).中间人截取小名和小红互发的公钥,并给两人发送自己的公钥,此时小名和小红误以为街道的是对方的公钥,但是此时他俩手持的是中间人的公钥;
2).小名使用 公钥(中间人) 加密要发送给小红的消息;
3).中间人接到小名发给小红的消息,用 私钥(中间人)解密读取信息,并用 公钥(小红) 加密,发送给小红;
4).小红用自己的 私钥(小红) 解密,读取信息。
5.CA证书
为了解决上面的问题,前辈们决定使用由数字证书认证机构(CA)颁发的数字证书。
1.数字证书:
数字证书的组成:
1).小红的公钥以及小红的个人信息通过Hash算法得到消息摘要;
2).将消息摘要通过CA的私钥加密得到数字签名.
2.数字证书的验证:
验证方法:
1).通过相同的Hash算法,得到消息摘要,
2).通过CA的公钥对数字签名解密,得到CA的消息摘要,
3).两者对比,看是否被篡改
把上文中的小名换做客户端,小红换做服务器就是HTTPS的流程图了。
文章是通过阅读《码农翻身》、《图解HTTP》的一些个人学习总结,所以如果各位发现我的理解有误,希望大家能够留言帮我指正,谢谢大家啦
HTTP的前世与今生相关推荐
- Linux下1号进程的前世(kernel_init)今生(init进程)----Linux进程的管理与调度
Linux下有3个特殊的进程,idle进程(PID=0PID=0), init进程(PID=1PID=1)和kthreadd(PID=2PID=2) * idle进程由系统自动创建, 运行在内核态 i ...
- 【百家稷学】卷积神经网络的前世、今生与未来(武汉工程大学技术分享)
最开始做我们这个技术公众号的时候,我定了3个层次的目标.第1层目标,输出100万字原创技术文章,去年年中的时候已经达成.第2层目标,走进100所高校和100个企业进行学习与分享,如今正式开启.第3层目 ...
- 显著性检验的“前世与今生”
关于显著性检验,你想要的都在这儿了!!(基础篇) 无论你从事何种领域的科学研究还是统计调查,显著性检验作为判断两个乃至多个数据集之间是否存在差异的方法被广泛应用于各个科研领域.笔者作为科研界一名新人也 ...
- 深度学习理论篇之----前世、今生、未来
世界地球日,奏响低碳生活进行曲,以蓝天为乐谱,以绿树为音符,以碧水为琴弦弹奏出环保最强音,为地球母亲祈祷平安吃五谷杂粮,穿天然布衣,住节能住宅,行无车之旅,用厉行节俭.让我们怀着敬畏感恩之心,向地球母 ...
- 互联网金融的前世、今生和未来-系列四(今生):百花齐放的互联网金融业态
互联网金融的前世.今生和未来--系列一:山雨欲来 互联网金融的前世.今生和未来-系列二(前世):金融与技术的首次亲密接触之金融电子化 互联网金融的前世.今生和未来-系列三(今生):一场跨界的战争 今生 ...
- 本文带你了解透彻云计算(前世,今生,未来)
作者简介:一名在校云计算网络运维学生.每天分享云计算运维的学习经验.和学习笔记. 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页 前言 对于云计算,我们将会通过云计算的前世,今生, ...
- 前世看今生,从JavaEE到微服务
声明:本文来自作者原创投稿文章,未经许可,禁止任何形式的转载. 作者:焦烈焱,普元CTO. 责编:钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@csdn.net,另有「CSDN ...
- 立标机器人_立镖CEO夏慧玲:物流机器人“小黄人”的前世、今生与未来
原标题:立镖CEO夏慧玲:物流机器人"小黄人"的前世.今生与未来 第1639期 夏慧玲说,从货物角度来说,人很麻烦.所以,考虑人机交互是歧途. 2367字 6分钟 来源 | 运联传 ...
- 用上帝视角俯瞰单点登录的前世与今生(内含两种实现方式的源码)
目录 1.什么是单点登录? 2.单点登录的前世与今生--前世篇(SSO) 2.1.单点登录的定义是: 2.2.总结成简单一句话说就是: 2.3.单点登录的优点: 2.4.拿去游乐园买票来讲一下单点登录 ...
- 分布式架构演进,浅析前世与今生
前言 后端开发人员都对"分布式"这3个字既熟悉又陌生.说对它熟悉,是因为自己无时无刻的不身在其中,比如spring mvc.spring boot .spring cloud.du ...
最新文章
- MPB:华大孙海汐等-从细菌基因组中预测活性前噬菌体工具Prophage Hunter的使用流程和常见问题...
- UI设计:掌握这6点,轻松0到1
- 文件安全传输服务器,安全传输:从文件加载服务器证书
- 如何构建一个分布式爬虫:基础篇
- java返回json格式的状态码数据(二)
- java socket 传送进度_java-★-Socket文件上传/进度条
- ajax和for循环谁难,关于“for”循环中jquery $ .ajax的问题
- NO.55 网页中压缩的问题
- mysql 重启_解决MYSQL死机,定时重启MYSQL,wdcp计划任务设定方法,
- 【项目】ARX程序开发:框裁直线(Rect Trim Line)功能开发
- linux数据库redis主从配置,redis介绍及主从配置
- UVa 483 - Word Scramble
- Java Programming Review 02
- 低代码平台开发 python_低组词_低的多音字组词,低是多音字吗,低组词有哪些
- 东芝复印机2303出现f070_东芝复印机常见故障
- 一元三次方程求解C/C++
- 斑马打印机ZPL语言和EPL语言的区别是什么
- java 怎么让图片运动,小编给你传授java怎么实现键盘控制图片移动
- kettle入门(二) 之 kettle连接oracle报的坑爹错误 Error occured while trying to connect to the database 的几种情况
- spring boot 自定义@EnableXXX注解