为了一个HTTPS,浏览器操碎了心···

作者:轩辕之风O

来源:编程技术宇宙 

浏览器

我是一个浏览器,每到夜深人静的时候,主人就打开我开始学习。

为了不让别人看到浏览记录,主人选择了“无痕模式”。但网络中总是有很多坏人,他们通过抓包截获我和服务器的通信,主人干了什么,请求了什么数据全被他们知道了!

浏览器

光窃听也就罢了,他们还经常篡改内容,在网页里面插入诱人的小广告,真是太坏了!为了保护主人的隐私还他一个干净的上网环境,我决定对通信加密!

1

直接简单加密

加密嘛,很简单,把原来要发送的数据加密处理后再发给服务器就行了。

为了安全,密钥当然不能固定,每一次通信都要随机生成。

不过接下来我犯难了,我该怎么把这个秘钥告诉服务器呢,服务器没有秘钥就解不了密,也就不知道我在请求什么资源了。

也不能直接弄个字段告诉服务器密钥,那样别人也能拿到,就跟没加密一样了。

我左思右想,灵机一动,决定把密钥放在数据的开头几个字节藏起来,只要私下跟服务器约定好,他用这前几个字节作为密钥解密,就能解开我发送的数据了。

你还别说,这办法还真好使,我跟服务器开始秘密通信起来。

后来,找我使用这种办法通信的服务器变得越来越多。

再后来这事就在圈子里传开了,大家都知道数据的前几个字节是密钥了,谁都能解密了。

看来这个办法不行,我得重新思考加密方法了。

2

非对称加密

服务器告诉我,我们之前用的那种加密算法叫对称加密算法,也就是加密和解密使用的同一个秘钥。

还有一种叫非对称加密算法,这种算法有两个秘钥,一个公开的叫公钥,一个私藏的叫私钥。

最关键的是,公钥加密后只能用私钥解开,反过来也一样。

只要在正式的数据传输前,服务器把他的公钥告诉我,我后面用它加密数据就行了,就算被别人抓包,他也解不开,因为只有拥有私钥的服务器才能解开。

不得不说,这非对称加密真是个好东西啊!

不过这样一来只能单程加密,服务器能解密我发的,但他发给我的,我却解不了,也不能让他用私钥加密,我用公钥解密,因为公钥是公开的,谁收到都能解,不安全。

没办法,我也弄了一对儿秘钥,通信之前我们双方都交换一下彼此的公钥,这样就可以双向加解密了!

虽然是有点麻烦,但为了数据安全,忍了吧!

3

非对称与对称加密结合

但我忍了没几天就忍不住了。

这个非对称加密算法好是好,就是加解密太费时间了,导致我渲染一个网页要花很久时间,卡的不行。

我打算去跟服务器商量一下办法,没想到服务器比我更头疼,他要服务很多浏览器,每一个都这么加解密,把他累的够呛。

于是我们决定,还是用原来的对称加密算法,这样快得多。但是一开始的时候可以用非对称加密算法来传输后面要用的秘钥,把两种算法的优势结合起来。

这一来,我只需要把后面要用到的秘钥,通过服务器公钥加密后发给他就行了,我省去了不少事儿。

4

秘钥计算

有一天,服务器告诉我,我们现在的秘钥就是一个随机数,而随机数并不是真正随机的,可能被预测出来,所以我们得提升这个秘钥的安全性。

一个随机数不够,那就多弄几个!

一端容易被猜出来,那就两端一起生成!

我们决定各自生成一个随机数发给对方,我再额外加密传输一个随机数给服务器,这一来,咱们双方都有3个随机数了,然后双方都用这三个随机数计算出真正的秘钥,这可比一个单纯的随机数要安全得多了。

不过为了验证双方计算出来的秘钥是一样的,我们在正式数据传输前,需要先来测试一下,现在的流程变成了这个样子:

我们的这一方案很快得到了大家的认可,圈子里的浏览器和服务器们纷纷用上了这套方案。

5

数字证明

原以为这个方案已经万无一失了,没想到我和服务器的通信还是泄露了···

原来有个家伙冒充服务器跟我通信,然后又冒充我跟服务器通信,把我的请求进行了转发,我们俩都被蒙在鼓里,这就是中间人攻击。

看来还缺乏一个认证机制!我得知道和我通信的是不是真的服务器。

经过大家的商量,圈子里的服务器们推选了一个德高望重的前辈做公证人,让这公证人准备一对非对称加密的密钥,并在圈子里公开了公钥,所有人都得把他的公钥记下来。

服务器得去公证人这里先登记,把自己的公钥、名字等等信息报上去,公证人拿到这些信息后,计算一个Hash值,然后再用公证人的私钥把Hash值进行加密,加密后的结果就是数字签名。

证书的签发

最后,公证人把登记的信息和这个数字签名合在一起,封装了一个新的文件发给服务器,登记就完成了,而这个新的文件就是数字证书。

服务器拿到证书后,可要好生保管,因为通信的时候,服务器须要将他们的证书发给我们浏览器验证。

证书的验证

我们浏览器拿到证书后,把证书里面的信息也计算一遍Hash,再用提前记录好的公证人的公钥把证书里的数字签名进行解密,得到公证人计算的Hash,两个一对比,就知道这证书是不是公证人签发的,以及有没有被篡改过了!

只有验证成功才能继续后面的流程,要不然就是冒充的!

这一下总算解决了中间人冒充的问题,除非中间人偷到了公证人的私钥,否则他是没办法伪造出一个证书来的。

非对称加密除了加密数据,还能用来验证身份,真是YYDS!

6

信任链

我们这加密方案一传十,十传百,很快就传遍了整个互联网,想要使用这套方案的服务器越来越多,毕竟,谁都不希望自己的网站被人插入小广告。

可原来的那个公证人有些忙不过来了,于是,大家开始推选更多的公证人,公证人开始多了起来,不仅多了起来,而且还形成了产业链。

原来的公证人变成了一代目,一代目可以给新的公证人签发证书,新的公证人就变成了二代目,还有三代目,搞得跟传销似的。

原来只有一个公证人的时候,大家直接保存他的公钥就行了。现在公证人越来越多,我们没办法保存所有的公证人的公钥了,就算能保存得下,但有新的公证人出现的时候我们也做不到实时更新。

于是,大家约定,让所有的一代目公证人自己给自己签发一个证书,叫做根证书,并安装在我们的操作系统中。

以后在验证网站服务器的证书时,就得先去验证证书的签发者,然后再继续验证上一级签发者,直到验证最终的签发者是不是在根证书列表中。

只要最终的签发者在系统的根证书列表中,那这条链上签署的证书就都是受信任的,否则我们就会弹窗提醒用户:

如今,这套方案已经推广到了全世界,现在遇到使用这套方案的网站服务器时,我们浏览器就会在地址栏加上一把小锁,表示网站很安全,还把URL地址,从HTTP,改成了HTTPS···

PS:本文用故事形式讲述了HTTPS是如何工作的,只是起一个引领入门的作用,略去了很多细节,实际情况远比这复杂,比如对称加密秘钥的计算方式、秘钥的交换算法(RSA、DH、ECDH还有区别),双方测试秘钥正确性的方式都没有体现出来,有机会再写一篇正经的技术文来详细抓包剖析HTTPS详细流程。

希望本文对大家理解HTTPS机制有一些帮助,再看其他专业介绍时不再吃力。

往期推荐

亚马逊独霸美国安云计算未来十年订单

IT 行业如何打破年龄焦虑?

那些站在微软云起点的中国创业者

漫画:什么是"建造者模式"?

点分享

点收藏

点点赞

点在看

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

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

相关文章

深度 | 阿里云蒋江伟:什么是真正的云原生?

简介: 而今,云原生成了耳熟能详的热门词,似乎不提云原生就落伍了,加入 CNCF 也成了云厂商引以为傲的技术优势。 我们也看到各种云原生的定义,有来自 CNCF 的“微服务容器持续交付DevOps”,也有来自不同云厂…

媒体智能-淘宝直播流媒体互动实践 | D2 分享视频+文章

背景:今天给大家带来的分享主题是《媒体智能-淘宝直播流媒体互动实践》,内容分为5个部分,首先看看在淘宝直播的直播间里主播可以怎样给用户拜年;然后具体讲如何制作一个手势拜年的特效;接着介绍我们媒体智能整体的方案…

从云网络时延看应用部署架构

简介: 介绍云网络时延的构成,并对其进行量化的分析,以及从云网络时延看不同应用对应的部署架构。 也简单的分析了5G时代对应用部署架构的影响和度量云网络时延的产品和工具。 在引出云网络时延这看起来比较专业的话题前,先看几个比…

mPaas 研发流程和线上运维介绍

简介: mPaas 研发流程和线上运维介绍 1. 背景 金融级移动开发平台 mPaaS[1](Mobile PaaS)为 App 开发、测试、运营及运维提供云到端的一站式解决方案,能有效降低技术门槛、减少研发成本、提升开发效率,协助企业快速搭…

html翻转切换div效果,图片翻转效果

图片翻转效果* { margin: 0; padding: 0;}ul { list-style-type: none;}body { font: 14px "Microsoft Yahei"; overflow-x: hidden; background-color: #2B2B2B; }h1 { width: 900px; margin: 40px auto 100px; font: 32px "Microsoft Yahei"; text-align…

Apache Flink 在实时金融数据湖的应用

简介: 本文由京东搜索算法架构团队分享,主要介绍 Apache Flink 在京东商品搜索排序在线学习中的应用实践 一、背景 在京东的商品搜索排序中,经常会遇到搜索结果多样性不足导致系统非最优解的问题。为了解决数据马太效应带来的模型商品排序多…

写给小白的云计算入门科普

作者:小枣君来源:鲜枣课堂云计算介绍2006年8月9日,当时的谷歌首席执行官埃里克施密特(Eric Schmidt)在搜索引擎大会(SES San Jose 2006)上,首次提出了“云计算”(Cloud C…

阿里云拨测:主动探测Web应用质量,助力提升用户体验

简介: 阿里云拨测是一种针对互联网应用(Web页面、网络链路等)进行应用性能和用户体验监测的服务,无需嵌码即可为云上用户提供开箱即用的企业级主动拨测式应用监测解决方案。 随着中国数字化经济的蓬勃发展,越来越多的企…

大数据,从青铜到王者

一.大数据方向工作介绍大数据方向的工作目前分为三个主要方向:01.大数据工程师02.数据分析师03.大数据科学家04.其他(数据挖掘本质算是机器学习,不过和数据相关,也可以理解为大数据的一个方向吧)二.大数据工程师的技能要求总结如下…

如何编写有效的接口测试?

简介: 在所有的开发测试中,接口测试是必不可少的一项。有效且覆盖完整的接口测试,不仅能保障新功能的开发质量,还能让开发在修改功能逻辑的时候有回归的能力,同时也是能优雅地进行重构的前提。编写接口测试要遵守哪些原…

商业方向的大数据专业_结合当前的人才需求趋势,大数据专业考研时可以选择哪些主攻方向...

首先,对于大数据专业的本科生来说,当前读研是不错的选择,随着大数据技术开始逐渐落地应用,产业领域需要大量高端应用型人才,所以如果没有继续读博的计划,可以重点关注一下专硕。在读研方向的选择上&#xf…

Seata RPC 模块的重构之路

简介: RPC 模块是我最初研究 Seata 源码开始的地方,因此我对 Seata 的 RPC 模块有过一些深刻研究,在我研究了一番后,发现 RPC 模块中的代码需要进行优化,使得代码更加优雅,交互逻辑更加清晰易懂&#xff0c…

被算法“监控”的打工人,这家公司 150 人被算法裁定为“不敬业”

整理 | 禾木木出品 | AI科技大本营(ID:rgznai100)导读近日,一家公司通过 AI 算法裁掉三成员工的消息在网上引起热议。当你上班时突然收到一封邮件显示“效率低下”而要求马上离开公司,你会怎么想呢?据 Game World Obse…

10倍性能提升!DLA SQL推出基于Alluxio的数据湖分析加速功能

简介: 在存储计算分离的场景下,通过网络从远端存储读取数据是一个代价较大的操作,往往会带来性能的损耗。以OSS为例,OSS数据读取延时通常较本地磁盘大很多,同时OSS对单个用户使用的带宽上限做了限制,这都会…

80×60长40米的地笼_石家庄Q345矩形方管 220*80*8方管 华东地区

摘要: 石家庄Q345矩形方管 220*80*8方管 华东地区 无锡征图钢业有限公司是一家以生产矩形钢管为主的方管厂作为专业矩管生产,无缝方管生产企业,矩形钢管生产工艺采用先进的热轧钢管生产线生产,产品销往 ,并部分出口&am…

惠普台式计算机型号怎么看,惠普电脑怎么看型号

惠普电脑怎么看型号如今很多人都已经习惯了使用笔记本电脑,然而又有很多人在用了很长时间后很难第一时间说出所使用笔记本电脑的型号,或者是不知道从哪里查看。下面是jy135小编收集整理的win7电脑配置怎么看,欢迎阅读。如今很多人都已经习惯了…

大促密集,CDN如何保障电商体验如丝般顺滑?

简介: 前不久,阿里云技术天团空降CSDN在线峰会,对核心技术竞争力进行解读。其中,阿里云高级技术专家曾福华分享了《双11: CDN如何保障电商大促如丝般顺滑》的议题。俗话说:养兵千日,用兵一时。每一次的战役…

fullcalendar 显示的时间间隔只有四十五分钟_NHR系列智能显示控制仪表RS485通信中应用...

请点击上方蓝字关注我们!01摘要NHR系列智能显示控制仪表是经过多年开发制造经验而设计生产,集诸多全新功能于一身的新一代智能显示控制仪表。针对现场温度、压力、液位、速度、流量等各种信号进行采集、显示、控制、远传、通讯、打印等处理,构…

高德地图驾车导航内存优化原理与实战

简介: 一般APP只需要关注前台内存过高的系统强杀FOOM,高德地图有不少用户使用后台导航,所以也需要关注后台的内存过高导致的系统强杀BOOM,且后台强杀较前台强杀更为严重。为了提升用户体验,内存治理迫在眉睫。 ​​背景…

向下一代互联网迈进 声网发布全链路加速FPA为互联网增加QoS保障

8月19日,声网Agora举办线上产品发布会,正式发布了“全链路加速FPA(Full-Path Accelerator)”。全链路加速FPA基于声网的软件定义实时网络 SD-RTN™,通过覆盖全球的多点端到端传输优化,全面提升了包含最后一…