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

https的进化之路(八卦版)

我们现在使用的基本上都是https,但是你有没有想过我们为什么要使用https,之前的http为什么就不香了呢。这个还要从一个日常生活事件开始说。

为什么要加密

在一个下午,你坐在家中想要在网上下载一个软件的时候(像qq音乐这样的噢),假如你没有去应用商店下载,你选择了浏览器下载,我们使用过的知道,这个浏览器下载的东西是非常sb的,因为他给你的安装包可能是任何东西,比如你下载qq音乐,他给你一个应用宝的安装包,结果你还不知道。有时候就感觉特别的无语。而这个就是“臭名昭著”的运营商劫持。

而为什么运营商是怎么劫持到的呢。因为哪个时候我们访问网络都是要走路由器的,而路由器的运营商的,所以运营商就可以在路由器上面做一些手脚,就比如把我们要下载的东西改为他想我们下载的(那他好好的为什么要恶心我们呢,当然是为了钱啊),那运营商为什么知道我们要下载东西啊,就是因为我们的传输都是“有目共睹”的(就像上课传的小纸条,哪个同学都可以看看,当然要躲起来看,不然容易挨打,更有甚者,我不仅要看,我还要改一下,是吧)。像传输这样的事情是一定要加密的。当然有些人给别人看了也无所谓的,我们另当别论。

在教室里面,我们上课传小纸条,这个被发现了,还是小事(最多老师念出来有点社死),假如在战争中,我们的情报被敌军知道了,那完蛋了,就比如我们打王者荣耀,我们家有透视,别人干什么,我们都知道,比如对面要来抓你了,我就躲起来,别人一走,我就出来(这个也叫意识,但是我没有,嘻嘻)。我们就讲一个大事,就是因为对面“开挂”了。

被密码克制的小胡子

在二战的时候,我们的小胡子开局闪击波兰(闪击这个战术还是非常强的,但是也是有弊端的,刚好最近喜欢下象棋,就了解了一些,闪击这个就是一个抢先手的操作,在象棋中,我们的敢死炮,就是我先送你一个炮,借助抓你炮的先手快速出动大字,就可以对你进行全方位的压制,弊端就是对方只要撑过这段时间,后面你的劣势就越来越大),然后就一路平推。

德军这样的优势,一般是打不了的,因为德军士气和装备都已经很强了,每个时候都需要通信,而这个时候的德军在使用恩尼格玛密码(通过无线电传输,这样自己可以收到,敌方也可以收到),所以就需要加密,不然就打开天窗说亮话了,而那个时候德军使用的密码特别复杂就不是人脑可以破解的。但是德国碰到了计算机的祖师爷——图灵大佬,图灵大佬就手搓了一个抽象的计算机——图灵机。

使用这个机器,破解了德军的密码,后面就相当于一个透视的作用,网上有人说,破解了密码对二战没有实质性的影响,这个其实是错的,通过这个我们可以知道对面的战略部署,通过操作形成以少打多的绝对性优势。但是为什么二战没有马上结束,毕竟小胡子也不是sb,搞了几次就知道需要改变密码的方式了啊。但是改进了还可以在破解嘛。图灵大佬可以说为二战的顺利打下了不可磨灭的基础,但是晚年因为喜欢小哥哥,而被英国皇室的迫害,从而自尽了(图片来源模拟游戏,这个是电影)

推荐大家去看看,还可以的电影。

所以加密特别重要,这个东西就是大明王朝的一句话”不上称没四两重,上了称一千斤打不住“。

所以我们就需要对我们传输的数据进行加密。才衍生出了https。

https怎么对数据进行加密的

我们计算机传输数据需要加密,如果你需要完成这个任务你会怎么做,放心,不是只有你一个人,我们还有这么多的前辈,我们就想到了一开始的摩斯密码

对称加密

 这个就是摩斯密码,那个时候是发电报的,点是点信号,横就是短信号,就是这样配合就可以发出一大串的信号,然后看表就可以知道是什么字母从而知道传输的数据(信号),这样你就发明出来对称加密,但是因为电报是可能被敌方截取到的,所以这个密报(就是图片,也叫密钥),是不可以让别人知道,因为别人知道了,他也可以通过截取电报来分析你要传输的内容(这样就有点像脱裤子放屁,干脆直接告诉他不就好了吗),所以我们密钥是只有我和我要传输的双方才可以知道的,但是我们又不可以一直使用同一个电报,因为这样风险太高了,就比如一个服务器有很多客户端访问他,如果全部使用同一个密钥的话,那有心的人就可以总结出来你的密钥啊,不就又是脱裤子放屁了啊,所以密钥我们需要经常换,但是换密钥这个东西也有点烦,因为换肯定是需要两个人一起换的,不可以一个人换了,一个人还在使用之前的密钥来阅读(这样的感觉就有点像,我们使用拼音来读歪果仁的英文,你写你的我读我的)所以我们在需要的传输的时候就可以先约定好我们使用哪个密钥,但是问题来了,那密钥也被获取了,咋搞啊,再来一层是吧,是你个头。(你说为什么不可以,我就赌他有一次没有获取到密钥),那我们传输信息呢,你这样不是白白浪费空间资源吗,所以我们就需要改进,就发明了非对称加密。

非对称加密

什么是非对称加密呢,我们把这个密码分为了公钥和私钥,我们通过公钥来加密,传输过去,再使用私钥来解密。或者通过私钥加密,传输过去,使用公钥解密。我为什么要说设定呢,不说说他的原理呢,因为他的原理就是一门课了,嘻嘻,我还没有学,我问问ai,你们看看

 你们看吧,我怕我要长脑子了,有了这个机制,我们就可以先使用一个非对称加密传输密钥,服务端解密了之后,我们就得到了对称加密的密钥了,我们再通过对称加密的密钥就可以得到我们想要的数据了,聪明的小伙伴就可能会想,为什么不使用非对称加密直接传输数据啊(上面这种方式不也是脱裤子放屁啊),哎~,还真的,对了,确实可以但是,非对称加密解密的效率不高,所以相比起来,我们先确认密钥,再传输数据的效率要比直接使用非对称的效率要高。那这样的方式是绝对安全的吗

非对称加密的破解(叫做中间人攻击)

每天一个入狱小技巧

假如你可以接收到客户端和服务器之间的信息传输,你想要怎么破解上面的加密方式。 这个就有点像权谋片的情景,你带入一下啊。

我生病了,一觉醒来,我变成了皇帝身边的第一红人,从此以后我挟天子以令诸侯,天下江山经入我手。这个是口号啊,而我把操作落到实处就是,对于想要直言进谏的臣子,我断了他们的路,同时提拔我自己的心腹,让他们到皇帝面前说,我想要皇帝听到的话,而皇帝对下面的指令,也是我说了算(为什么别人不告发我和皇帝下的指令不一样,因为皇帝别上可以听到消息的都是我的人),我想让大臣知道什么他们就知道什么,从之之后,朝廷就是我的一人堂,顺我者生,逆我者死。

而我们数据的传输也是一样的,你想想,客户端就是臣子,服务器就是皇帝,而你是黑客,是不是就可以切断他们的联系啦,所以我们破解非对称加密也特别简单。

就是我们把客户端发给服务器的消息,变为我们想要客户端发送给服务器的消息,把我们不知道的密钥变为我们知道的密钥,所以如图。

 因为客户端使用的黑客的公钥加密的,使用黑客就可以轻松解密,拿到数据,又我也知道服务器要使用的公钥,所以我就可以使用这个公钥来对数据进行加密,再发送给服务器,这样就做到了欺上瞒下。我也成功的拿到了密码数据。所以非对称加密也是不安全的传输,当然比对称加密好多了。但是还是避免不了有心之人(多说一句,这个也不是绝对的,因为你再强,都还是会有人比你更强,所以没有什么传输就绝对不可能攻破的,再我看来这个是时间的问题),所以我们就还需要改进。

证书的引入

那我们需要对非对称加密改进哪里呢,不就是我们怎么破解的就怎么改进呗,所以你好好想想,我们是怎么破解非对称加密的,是不是利用了,客户端不知道这个数据到底是不是服务器发送的,所以我们就引入了证书,而这个证书就可以证明,这个信息是不是服务器发送的。

我可以直接把证书的全部属性告诉大家,然后再告诉大家,证书是怎么预防黑客的入侵的,但是我感觉这样的方式,大家可能还是会对证书有一定的不理解,所以我想要从黑客破解的方法一步一步的和大家设计出一个完美的(大家公认)证书。我先剧透一下啊,证书有6个属性,1.证书的发布机构。2.证书的有效期。3.证书的所有者。4.证书对应的服务器的地址/域名。5.公钥。6.数字签名。我先说一些前提条件,证书是由第三方公正机构来发送的,服务器向公正机构提交资料来申请证书,公正机构审核通过,再下发证书。

证书的设计(方便我们了解证书是怎么防止黑客入侵的)

好,现在我们开始设计证书,首先,我们肯定要把是哪个机构写上去吧(出了问题好分锅,玩笑话啊),我们还要把证书的所有者写上去吧(就像一个本子要写名字一样),我们还要把公钥放上去,因为本来客户端和服务器就是需要商量使用哪个公钥的,总不能舍本逐末吧,而我们为了防止黑客修改公钥。我们就需要一个东西来验证这个公钥是否呗修改过了。

所以我们就还需要再创建一个数字签名(为什么叫我们设计的要叫数字签名,为了方便,咋啦),而这个数字签名就是为了防止黑客修改公钥的,看到要对比数据是否被修改,我最先想到的就是检验和(我在我写的TCP博客中写到了,想看的朋友可以看一看,就在这篇之前一点点)检验和就是在数据发送前以0,1的方式把这个数据全部加起来,算一个数,在数据接收了之后,在以0,1的方式把这个数据全部加起来,再算一个数(如果溢出来了,就让他,我们对比没有溢出的部分就可以了),如果是一样的就说明没有出现问题,不一样就有问题了。所以思路,我们就有了。我们开始设计。

首先,公正机构再下发证书的时候,就对证书算一个检验和,然后再使用私钥对检验和进行加密,我们在这里加密就是因为,怕黑客对检验和进行修改,而我们的客户端怎么拿到公钥呢,我们就可以把这个公钥内置在操作系统里面,也可以通过其他途径安装。

上面讲到对使用私钥对检验和进行加密,然后再把这个数据(就是证书中的数字签名)放在证书中发送给服务器,服务器就可以把这个证书发送给客户端,而客户端就使用公钥来对这个证书中的数字签名解密拿到检验和(证书中的检验和),客户端再自己计算一下证书的检验和(客户端算的检验和),客户端在把这两个检验和对比一下,如果是一样的就说明证书没有被修改过是安全的,如果是不一样的客户端就会弹出红色的页面(我本来想截图的,但是怕大家知道了网址就算了吧),就比如看电影的网站(盗版的啊,有时候就会谈),但是不被挫折打到的中国人会坚定不移的选择继续访问,计算机也没有办法,毕竟你才是主人,就像这个

不是我啊,网上找的。

所以这样我们就可以通过数字签名知道黑客有没有对公钥进行修改了。

而黑客想要修改公钥的同时,不会触发警告就只能一边修改公钥,一边创建一个假的证书来瞒过服务器,所以我们还需要一个只有服务器知道的数据来防止黑客创建一个假的证书,所以我们就使用了服务器的域名(这个域名,黑客是拿不到的),所以客户端就可以看域名来判断这个证书是不是真的。

同时我们还需要给证书定一个时间限制,以防出现“拿前朝的剑,斩本朝的官”。

到了现在黑客也不可以修改证书,也创建不了证书,这样就使得不可以修改公钥了,这样也就破解了中间人攻击。

当然现在的安全不是一定安全,随着时代的发展,技术也在不断的进步,可能哪天就出现了破解证书的方法,过几天,又推出新的技术来保证传输的安全。这些都是说不好的。今天的分享的到这里了啊,你不关注下次就见不到了啊。

http://www.xdnf.cn/news/9010.html

相关文章:

  • JVM 深度解析
  • k-way Hypergraph Partitioning via n-Level Recursive Bisection【2016 ALENEX】文献总结
  • N2语法 时间
  • 协同过滤实现电影推荐
  • 931. 用三种不同颜色为网格涂色
  • 力扣刷题(第三十八天)
  • Rk3568驱动开发_设备树点亮LED_11
  • 系统分析师备考总结
  • SPL做量化—-VMA(变异平均线)
  • node.js配置变量
  • 内容的逐次呈现以及二分查找(算法)
  • DeepSORT中的卡尔曼滤波可观测性分析:从原理到实践
  • 提示词写的好,用VSCODE+python+Claude3.5开发edge扩展插件(2)
  • 内网映射有什么作用,如何实现内网的网络地址映射到公网连接?
  • 【东枫科技】基于Docker,Nodejs,GitSite构建一个KB站点
  • 电路中常见器件作用(二极管 三极管 MOS)
  • OpenCV (C/C++) 实现 Scharr 算子进行边缘检测
  • MySQL组合索引优化策略
  • Milvus可视化客户端Attu安装与使用指南
  • esp8266 点灯科技远程控制继电器
  • 如何解决大模型返回的JSON数据前后加上```的情况
  • 2025重庆市赛
  • [java]eclipse中windowbuilder插件在线安装
  • Python 之实用函数enumerate()详解
  • vue项目webpack、vite、rollup、parcel四种构建工具对比
  • HarmonyOS NEXT~鸿蒙操作系统功耗优化特性深度解析
  • STM32F4学习第一天——keil软件安装
  • VS Code新手基础教程
  • TripGenie:畅游济南旅行规划助手:个人工作纪实(二十)
  • yolov8,c++案例汇总