没有合适的资源?快使用搜索试试~ 我知道了~
36-HTTPS:让数据传输更安全_For_vip_user_0011
需积分: 0 0 下载量 166 浏览量
2022-08-04
13:57:16
上传
评论
收藏 899KB PDF 举报
温馨提示
试读
11页
信息摘要;然后CA再使它的私钥对信息摘要进加密,加密后的密就是CA颁给极客时间的数字签名加密后的密就是CA颁给极客时间的数字签名。这就相当于房管局在房产证上盖的
资源推荐
资源详情
资源评论
36-HTTPS:让数据传输更安全36-HTTPS:让数据传输更安全
浏览器安全主要划分为三⼤块内容:⻚⾯安全、系统安全和⽹络安全。前⾯我们⽤四篇⽂章介绍了⻚⾯安全
和系统安全,也聊了浏览器和Web开发者是如何应对各种类型的攻击,本⽂是我们专栏的最后⼀篇,我们就
接着来聊聊⽹络安全协议HTTPS。
我们先从HTTP的明⽂传输的特性讲起,在上⼀个模块的三篇⽂章中我们分析过,起初设计HTTP协议的⽬的
很单纯,就是为了传输超⽂本⽂件,那时候也没有太强的加密传输的数据需求,所以HTTP⼀直保持着明⽂
传输数据的特征。但这样的话,在传输过程中的每⼀个环节,数据都有可能被窃取或者篡改,这也意味着你
和服务器之间还可能有个中间⼈,你们在通信过程中的⼀切内容都在中间⼈的掌握中,如下图:
中间⼈攻击
从上图可以看出,我们使⽤HTTP传输的内容很容易被中间⼈窃取、伪造和篡改,通常我们把这种攻击⽅式
称为中间⼈攻击中间⼈攻击。
具体来讲,在将HTTP数据提交给TCP层之后,数据会经过⽤⼾电脑、WiFi路由器、运营商和⽬标服务器,
在这中间的每个环节中,数据都有可能被窃取或篡改。⽐如⽤⼾电脑被⿊客安装了恶意软件,那么恶意软件
就能抓取和篡改所发出的HTTP请求的内容。或者⽤⼾⼀不⼩⼼连接上了WiFi钓⻥路由器,那么数据也都能
被⿊客抓取或篡改。
在HTTP协议栈中引⼊安全层在HTTP协议栈中引⼊安全层
鉴于HTTP的明⽂传输使得传输过程毫⽆安全性可⾔,且制约了⽹上购物、在线转账等⼀系列场景应⽤,于
是倒逼着我们要引⼊加密⽅案加密⽅案。
从HTTP协议栈层⾯来看,我们可以在TCP和HTTP之间插⼊⼀个安全层,所有经过安全层的数据都会被加密
或者解密,你可以参考下图:
HTTPVSHTTPS
从图中我们可以看出HTTPS并⾮是⼀个新的协议,通常HTTP直接和TCP通信,HTTPS则先和安全层通信,
然后安全层再和TCP层通信。也就是说HTTPS所有的安全核⼼都在安全层,它不会影响到上⾯的HTTP协
议,也不会影响到下⾯的TCP/IP,因此要搞清楚HTTPS是如何⼯作的,就要弄清楚安全层是怎么⼯作的。
总的来说,安全层有两个主要的职责:对发起HTTP请求的数据进⾏加密操作对发起HTTP请求的数据进⾏加密操作和对接收到HTTP的内容进⾏对接收到HTTP的内容进⾏
解密操作解密操作。
我们知道了安全层最重要的就是加解密,那么接下来我们就利⽤这个安全层,⼀步⼀步实现⼀个从简单到复
杂的HTTPS协议。
第⼀版:使⽤对称加密第⼀版:使⽤对称加密
提到加密,最简单的⽅式是使⽤对称加密。所谓对称加密是指加密和解密都使⽤的是相同的密钥对称加密是指加密和解密都使⽤的是相同的密钥。
了解了对称加密,下⾯我们就使⽤对称加密来实现第⼀版的HTTPS。
要在两台电脑上加解密同⼀个⽂件,我们⾄少需要知道加解密⽅式和密钥,因此,在HTTPS发送数据之
前,浏览器和服务器之间需要协商加密⽅式和密钥,过程如下所⽰:
使⽤对称加密实现HTTPS
通过上图我们可以看出,HTTPS⾸先要协商加解密⽅式,这个过程就是HTTPS建⽴安全连接的过程。为了
让加密的密钥更加难以破解,我们让服务器和客⼾端同时决定密钥,具体过程如下:
这样浏览器端和服务器端都有相同的client-random和service-random了,然后它们再使⽤相同的⽅法将
client-random和service-random混合起来⽣成⼀个密钥mastersecret,有了密钥mastersecret和加密套
件之后,双⽅就可以进⾏数据的加密传输了。
通过将对称加密应⽤在安全层上,我们实现了第⼀个版本的HTTPS,虽然这个版本能够很好地⼯作,但是
其中传输client-random和service-random的过程却是明⽂的,这意味着⿊客也可以拿到协商的加密套件和
双⽅的随机数,由于利⽤随机数合成密钥的算法是公开的,所以⿊客拿到随机数之后,也可以合成密钥,这
样数据依然可以被破解,那么⿊客也就可以使⽤密钥来伪造或篡改数据了。
第⼆版:使⽤⾮对称加密第⼆版:使⽤⾮对称加密
不过⾮对称加密能够解决这个问题,因此接下来我们就利⽤⾮对称加密来实现我们第⼆版的HTTPS,不过
在讨论具体的实现之前,我们先看看什么是⾮对称加密。
和对称加密只有⼀个密钥不同,⾮对称加密算法有A、B两把密钥,如果你⽤A密钥来加密,那么只能使⽤B⾮对称加密算法有A、B两把密钥,如果你⽤A密钥来加密,那么只能使⽤B
密钥来解密;反过来,如果你要B密钥来加密,那么只能⽤A密钥来解密密钥来解密;反过来,如果你要B密钥来加密,那么只能⽤A密钥来解密。
在HTTPS中,服务器会将其中的⼀个密钥通过明⽂的形式发送给浏览器,我们把这个密钥称为公钥公钥,服务
器⾃⼰留下的那个密钥称为私钥私钥。顾名思义,公钥是每个⼈都能获取到的,⽽私钥只有服务器才能知道,不公钥是每个⼈都能获取到的,⽽私钥只有服务器才能知道,不
对任何⼈公开对任何⼈公开。下图是使⽤⾮对称加密改造的HTTPS协议:
浏览器发送它所⽀持的加密套件列表和⼀个随机数client-random,这⾥的加密套件是指加密的⽅法加密套件是指加密的⽅法,加
密套件列表就是指浏览器能⽀持多少种加密⽅法列表。
服务器会从加密套件列表中选取⼀个加密套件,然后还会⽣成⼀个随机数service-random,并将service-
random和加密套件列表返回给浏览器。
最后浏览器和服务器分别返回确认消息。
剩余10页未读,继续阅读
资源评论
赶路的稻草人
- 粉丝: 24
- 资源: 330
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现电磁优化计算功能,进行线型规划优化电磁设计.rar
- 基于matlab实现带精英策略的非支配排序遗传算法matlab 源码.rar
- 基于matlab实现差分进化算法,最新的用于替代遗传算法,是以后的主要发展方法.rar
- VSCode配置c/c++环境教程.md
- 基于matlab实现标准合作型协同进化遗传算法matlab源程序
- 七下人教.zip
- 基于matlab实现本份代码能对图像进行gabor滤波处理,结合指纹方向图以及指纹沟壑频率特性,对指纹图像进行增强.rar
- 基于matlab实现RBM神经网络实现了手写数字体识别的GUI程序.rar
- 基于matlab实现蝙蝠算法优化相关向量机建模对数据进行建模和预测.rar
- 基于matlab实现编写的禁忌搜索算法,解决了TSP问题,对初学者有重要的参考价值.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功