前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【计算机网络】HTTP 与 HTTPS ( HTTP 在网络各个层级的传输过程 | HTTPS 工作流程 | HTTPS 弊端 )

【计算机网络】HTTP 与 HTTPS ( HTTP 在网络各个层级的传输过程 | HTTPS 工作流程 | HTTPS 弊端 )

作者头像
韩曙亮
发布2023-03-29 14:19:19
6680
发布2023-03-29 14:19:19
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、HTTP 在网络各个层级的传输过程


应用层 : 在客户端浏览器 , 即应用层 , 生成 HTTP 请求报文 , 如下 :

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
GET / HTTP/1.1
Host: rucfd.ruc.edu.cn
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
If-None-Match: "b7f-5b575595fe630-gzip"
If-Modified-Since: Wed, 02 Dec 2020 06:28:18 GMT

如果只有 HTTP 请求报文 , 是无法将该报文准确送达 Web 服务器的 , 无法完整网络传输 ;

传输层 : 在传输层 , 添加 TCP 首部信息 ; ( TCP 首部信息 ( HTTP 报文 ) )

网络层 : 在网络层 , 添加 IP 首部信息 ; ( IP 首部信息 ( TCP 首部信息 ( HTTP 报文 ) ) )

数据链路层 : 在数据链路层 , 添加以太网首部信息 ; ( 以太网首部信息 ( IP 首部信息 ( TCP 首部信息 ( HTTP 报文 ) ) ) )

物理层 : 只进行物理传输 , 不改变数据 ;

在这里插入图片描述
在这里插入图片描述

二、HTTPS 工作流程


在这里插入图片描述
在这里插入图片描述

HTTPS 工作流程 :

① 客户端发送请求 : 浏览器向服务器发送请求 , 连接到服务器的

443

端口 , 发送 " 随机值

1

" 和 客户端支持的加密算法 ;

② 服务器端响应请求 : 服务器端 收到客户端的信息后 , 回送响应信息 , 包括 " 随机值

2

" 和 匹配好的客户端的加密算法 ; 客户端支持的加密算法 范围 大于等于 服务器端匹配的加密算法 ;

③ 服务器端发送证书 : 服务器端 给 客户端 发送 数字证书 , 数字证书是由专门的组织机构颁发的 ; 数字证书 也可以自己生成 , 自己生成的证书需要客户端验证通过才能继续访问 ; 会弹出警告界面 ; 受信任的组织颁发的证书不会弹出警告界面 ; 数字证书由公钥和私钥构成 ; 传输的证书是公钥 , 公钥中包含了 : 证书颁发机构 , 过期时间 , 服务器端公钥 , 证书机构签名 , 服务器端域名信息 ;

④ 客户端解析证书 : 客户端 TSL 进行 数字证书解析 ; 验证 公钥有效性 , 颁发机构 , 过期时间 等 , 如果发现异常弹出警告 , 提示证书出现问题 ; 如果验证通过 , 则生成 " 预主密钥 " ;

⑤ 客户端生成会话秘钥 : 客户端证书验证通过后 , 将 " 随机值

1

" , " 随机值

2

" , " 预主密钥 " 组装为 " 会话秘钥 " , 使用数字证书公钥 , 加密会话秘钥 ;

⑥ 客户端发送会话秘钥 : 客户端向服务器端发送 加密后的 会话秘钥 ;

⑦ 服务器端解密会话秘钥 : 服务器端使用 数字证书 的私钥 , 解密使用 数字证书 公钥 加密后的 会话秘钥 , 得到 " 随机值

1

" , " 随机值

2

" , " 预主密钥 " , 将

3

者组装成 会话秘钥 , 与客户端进行沟通 ;

⑧ 客户端发送测试加密数据 : 客户端通过 " 会话秘钥 " 向服务器端发送加密后的消息 , 验证服务器端是否可以接收客户端加密后的信息 ;

⑨ 服务器端发送测试加密数据 : 服务器端通过 " 会话秘钥 " 加密一条消息发送给客户端 , 如果客户端可以解密该数据 , 说明 SSL 加密连接建立完成 ;

1、中间人篡改服务器下发的数字证书

在这里插入图片描述
在这里插入图片描述

服务器端向客户端发送公钥时 , 可能被中间人拦截 , 伪装一个公钥 , 发送给客户端 ;

在第 ④ 步 , 客户端要验证服务器端发送的 数字证书 信息 ; 通过 权威机构 认证中心 确保该数字证书 的真实性 ; 客户端本地配置有 权威机构 CA 的公钥 , 对 数字证书 进行解密 , 得到 服务器端的公钥 和 数字签名 , 数字签名经过 CA 公钥解密 , 得到数字证书信息摘要 ; 计算当前数字证书的 信息摘要 , 与收到的 信息摘要 进行对比 , 如果一致 , 说明该 数字证书 没有被篡改 ;

数字证书 是 CA 权威机构认证中心 使用 私钥生成的 , 中间人只有 CA 公钥 , 无法进行修改 ; 通过鉴定 数字证书 就可以判定对方是否是中间者 ;

在这里插入图片描述
在这里插入图片描述

2、中间人冒充服务器端

到 认证中心 CA 申请数字证书时 , 需要绑定域名信息 , 提供域名管理员邮箱等 , 用户访问 域名1 , 中间人发送一个 域名2 的数字证书 , 肯定通不过验证 ;

三、HTTPS 弊端

HTTPS 的弊端 :

① 只能避免部分攻击 : 无法避免 拒绝服务攻击 , 服务器劫持 等黑客攻击 ;

② 不是绝对安全 : SSL 数字证书不是绝对安全的 , 美国控制 CA 根证书 , 可以实施中间人攻击 ;

③ 费用高 : SSL 证书需要购买申请 , 功能越强 , 费用越贵 ;

④ 资源消耗高 : 与 HTTP 对比 , 使用 HTTPS 缓存低效 , 流量成本高 , 延迟增加 50% , 耗电量增加 20% , 服务器资源占用高 ;

推荐不需要加密访问的页面使用 HTTP , 需要时再使用 HTTPS 协议 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-06-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、HTTP 在网络各个层级的传输过程
  • 二、HTTPS 工作流程
    • 1、中间人篡改服务器下发的数字证书
      • 2、中间人冒充服务器端
      • 三、HTTPS 弊端
      相关产品与服务
      SymantecSSL 证书
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档