为什么HTTPS是安全的
码农突围
共 3248字,需浏览 7分钟
· 2020-09-19
点击上方“码农突围”,马上关注
这里是码农充电第一站,回复“666”,获取一份专属大礼包
真爱,请设置“星标”或点个“在看”
1. HTTP 协议
1.1 HTTP 协议介绍
应用层
。请求
POST http://www.baidu.com HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Content-Length: 7
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
wd=HTTP
响应
HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Date: Thu, 14 Feb 2019 07:23:49 GMT
Transfer-Encoding: chunked
...
1.2 HTTP 中间人攻击
不安全
。小明在 JAVA 贴吧发帖,内容为 我爱JAVA
:被中间人进行攻击,内容修改为 我爱PHP
小明被群嘲(手动狗头)
1.3 防止中间人攻击
对称加密
的方式将报文加密这样中间人不就看不到明文了吗,于是如下改造:双方约定加密方式 使用 AES 加密报文
非对称加密
,我们可以通过 RSA 算法来实现。公私钥
,服务器将公钥
返回给客户端,客户端本地生成一串秘钥(AES_KEY
)用于对称加密
,并通过服务器发送的公钥
进行加密得到(AES_KEY_SECRET
),之后返回给服务端,服务端通过私钥
将客户端发送的AES_KEY_SECRET
进行解密得到AEK_KEY
,最后客户端和服务器通过AEK_KEY
进行报文的加密通讯,改造如下:AES加密
的秘钥,所以对于后续的通讯是肯定无法进行解密了,那么这样做就是绝对安全了吗?AES_KEY
,那我就把自己模拟成一个客户端和服务器端的结合体,在用户->中间人
的过程中中间人模拟服务器的行为,这样可以拿到用户请求的明文,在中间人->服务器
的过程中中间人模拟客户端行为,这样可以拿到服务器响应的明文,以此来进行中间人攻击:AES_KEY
,在拿到AES_KEY
之后就能轻松的进行解密了。2. HTTPS 协议
2.1 HTTPS 简介
SSL+HTTP
的简称,当然现在SSL
基本已经被TLS
取代了,不过接下来我们还是统一以SSL
作为简称,SSL
协议其实不止是应用在HTTP
协议上,还在应用在各种应用层协议上,例如:FTP
、WebSocket
。SSL
协议大致就和上一节非对称加密
的性质一样,握手的过程中主要也是为了交换秘钥,然后再通讯过程中使用对称加密
进行通讯,大概流程如下:公钥
,客户端会对 SSL 证书进行验证,其中证书认证体系就是确保SSL
安全的关键,接下来我们就来讲解下CA 认证体系
,看看它是如何防止中间人攻击的。2.2 CA 认证体系
权威认证机构
在 CA 认证体系中,所有的证书都是由权威机构来颁发,而权威机构的 CA 证书都是已经在操作系统中内置的,我们把这些证书称之为
CA根证书
:签发证书
我们的应用服务器如果想要使用 SSL 的话,需要通过权威认证机构来签发
CA证书
,我们将服务器生成的公钥和站点相关信息发送给CA签发机构
,再由CA签发机构
通过服务器发送的相关信息用CA签发机构
进行加签,由此得到我们应用服务器的证书,证书会对应的生成证书内容的签名
,并将该签名
使用CA签发机构
的私钥进行加密得到证书指纹
,并且与上级证书生成关系链。这里我们把百度的证书下载下来看看:
GlobalSign G2
,同样的GlobalSign G2
是受信于GlobalSign R1
,当客户端(浏览器)做证书校验时,会一级一级的向上做检查,直到最后的根证书
,如果没有问题说明服务器证书
是可以被信任的。如何验证服务器证书
那么客户端(浏览器)又是如何对
服务器证书
做校验的呢,首先会通过层级关系找到上级证书,通过上级证书里的公钥
来对服务器的证书指纹
进行解密得到签名(sign1)
,再通过签名算法算出服务器证书的签名(sign2)
,通过对比sign1
和sign2
,如果相等就说明证书是没有被篡改
也不是伪造
的。
AES_KEY
从而发起拦截和修改 HTTP 通讯的报文。总结
最近热文
• 如果面试被问“红黑树”,可以这样回答 • 她是北大“一个人的毕业照”主人公,2010级古生物专业独苗,十年后搞起了AI • 刚刚用鸿蒙跑了个“hello world”!跑通后,我特么开始怀疑人生了.... • 今天终于搞懂了:为什么 Java 的 main 方法必须是 public static void? 最近整理了一份大厂算法刷题指南,包括一些刷题技巧,在知乎上已经有上万赞。同时还整理了一份6000页面试笔记。关注下面公众号,在公众号内回复「刷题」,即可免费获取!回复「加群」,可以邀请你加入读者群!
明天见(。・ω・。)ノ♡
评论
真高!比亚迪员工爆料比亚迪在越南的薪资水平:基本工资480万,全勤奖35万,交通补助20万,餐补110万,每周6天,每天10小时
上一篇:某大公司为逼迫员工离职,竟然把他的工位安排到厕所旁,没想到他直接开始记录领导的如厕时间,还发到公司大群...对此,你怎么看?--完--PS:欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,欢迎转发分享给更多人。全文完,感谢你的耐心阅读。如果你还想看到我的文章,请一定给本
开发者全社区
0
太敢穿了!透视纱裙!性感火辣的身材
绝了呀今天的厂花:吴宣仪1995年1月26日,吴宣仪出生于海南省海口市,中国内地流行乐女歌手、影视演员。2016年2月,吴宣仪随宇宙少女发行首张迷你专辑正式出道。2018年4月,她参加《创造101》综艺选秀,获得第二名,成功加入火箭少女101组合。吴宣仪的颜值一直备受称赞,她的五官立体精致,皮肤白皙
逆锋起笔
0
某大公司为逼迫员工离职,竟然把他的工位安排到厕所旁,没想到他直接开始记录领导的如厕时间,还发到公司大群...
上一篇:字节的跳动职级与薪资(2024年)我们与公司间的合作,宛如两艘船只在茫茫大海上相互依靠,共同抵御风浪,携手驶向成功的彼岸。然而,当航向开始产生分歧,或是波涛汹涌的风浪改变了我们的初衷,我们或许应当冷静地选择和平分手,而非在风雨中硬撑。最近,一位网友的遭遇引起了广大职场人的关注和热议。这位网友
开发者全社区
0
金融研究 | 使用Python测量关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
我看阿里的年终奖总算发了!
到4月底了,这两天看朋友圈,发现阿里的年终奖终于发了,问了问老同学,也从网上检索了不少信息,基本搞清楚了阿里今年的年终奖情况。近来来阿里一些集团对绩效等级做了较大的调整,以前的旧绩效系统中,绩效分为3.25、3.5、3.75、4和5五个等级,其中4和5是较高绩效等级,较少见。而且之前3.5绩效内部划
公子龙
0
CVPR 2024|大视觉模型的开山之作!无需任何语言数据即可打造大视觉模型
↑ 点击蓝字 关注极市平台作者丨科技猛兽编辑丨极市平台极市导读 本文提出一种序列建模 (sequential modeling) 的方法,不使用任何语言数据,训练大视觉模型。>>加入极市CV技术交流群,走在计算机视觉的最前沿本文目录1 序列建模打造大视觉模型(来自 U
极市平台
1
金融研究(更新) | 使用Python构建关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
字节的跳动职级与薪资(2024年)
上一篇:阿里公布年终奖,P7, 3.5+,22W年终奖,还有35W长期现金激励,真香字节跳动自2012年3月成立以来,已经迅速成长为一个全球性的科技公司。其产品和服务已经遍布全球150多个国家与地区,并且支持超过75种不同的语言。在字节跳动的官方网站上,列出了一系列引人注目的产品和服务,包括但不限于
开发者全社区
0