文章目录

  • 一、HTTP 在网络各个层级的传输过程
  • 二、HTTPS 工作流程
    • 1、中间人篡改服务器下发的数字证书
    • 2、中间人冒充服务器端
  • 三、HTTPS 弊端

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


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

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 工作流程 :

① 客户端发送请求 : 浏览器向服务器发送请求 , 连接到服务器的 443443443 端口 , 发送 " 随机值 111 " 和 客户端支持的加密算法 ;

② 服务器端响应请求 : 服务器端 收到客户端的信息后 , 回送响应信息 , 包括 " 随机值 222 " 和 匹配好的客户端的加密算法 ; 客户端支持的加密算法 范围 大于等于 服务器端匹配的加密算法 ;

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

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

⑤ 客户端生成会话秘钥 : 客户端证书验证通过后 , 将 " 随机值 111 " , " 随机值 222 " , " 预主密钥 " 组装为 " 会话秘钥 " , 使用数字证书公钥 , 加密会话秘钥 ;

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

⑦ 服务器端解密会话秘钥 : 服务器端使用 数字证书 的私钥 , 解密使用 数字证书 公钥 加密后的 会话秘钥 , 得到 " 随机值 111 " , " 随机值 222 " , " 预主密钥 " , 将 333 者组装成 会话秘钥 , 与客户端进行沟通 ;

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

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

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

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

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

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

2、中间人冒充服务器端

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

三、HTTPS 弊端


HTTPS 的弊端 :

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

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

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

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

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

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

  1. HTTPS加密传输过程

    HTTPS加密传输过程 HTTPS全称Hyper Text Transfer Protocol over SecureSocket Layer,是以安全为目标的HTTP通道,在HTTP的基础上通过传输 ...

  2. 网络入侵检测Slips--StratosphereLinuxIPS 部署过程

    网络入侵检测 StratosphereLinuxIPS 部署过程 指导手册(英文): https://stratospherelinuxips.readthedocs.io/en/develop/ 项 ...

  3. 【计算机网络】网络安全 : 总结 ( 网络攻击类型 | 网络安全指标 | 数据加密模型 | 对称密钥密码体质 | 公钥密码体质 | 数字签名 | 报文鉴别 | 实体鉴别 | 各层安全 ) ★

    文章目录 一.四种网络攻击 ★ 二.网络安区指标 ★ 三.数据加密模型 ★ 四.对称密钥密码体质 ★ 五.公钥密码体质 ★ 六.数字签名 ★ 七.报文鉴别 ★ 八.实体鉴别 ★ 九.IP 安全 ( 网 ...

  4. 【Android开发】计算机网络基础知识点,如何完成网络请求过程?

    (一)计算机网络基础知识:从一次完整的网络请求过程分析 (1)域名解析 1.1)域名与ip地址 (1)ip地址:ip地址是一个32位(4字节)的二进制数(IPV4),常见格式为:192.168.1.1 ...

  5. 办公室计算机网络使用情况,企事业单位办公网络的现状及解决方案.doc

    企事业单位办公网络的现状及解决方案.doc 企事业单位办公网络的现状及解决方案 摘要:随着网络的飞速发展,智能移动设备的出现,生活水平的不断提升,传统的办公网络已无法解决日常工作及生活的实际需求,这就 ...

  6. 计算机网络应用教学反思,《计算机网络实训之常用的网络工具》教学反思

    <<计算机网络实训之常用的网络工具>教学反思>由会员分享,可在线阅读,更多相关<<计算机网络实训之常用的网络工具>教学反思(3页珍藏版)>请在人人文库网 ...

  7. 计算机网络的体系结构与协议基本概念,计算机网络技术基础-第3章网络体系结构与协议.ppt...

    <计算机网络技术基础-第3章网络体系结构与协议.ppt>由会员分享,可在线阅读,更多相关<计算机网络技术基础-第3章网络体系结构与协议.ppt(19页珍藏版)>请在装配图网上搜 ...

  8. 计算机网络硬件的作用是什么,网络技术在计算机软硬件的作用

    网络技术在计算机软硬件的作用 电子信息工程是一种建立在计算机系统软件技术和计算机网络技术上的工程,在现代国防.科研和通讯等领域发挥着巨大的作用.下面是小编搜集整理的相关内容的论文,欢迎大家阅读参考. ...

  9. 什么是计算机网络教学反思,《计算机网络实训之常用的网络工具》教学反思

    <计算机网络实训之常用的网络工具>教学反思 常用的网络工具是网络管理员必须要掌握好的内容,本实验在学习完相关理论知识的基础上,让学生动手实践,亲自试验常用网络工具的使用.因为直观明了,马上 ...

最新文章

  1. JS函数式编程【译】5.2 函子 (Functors)
  2. Unity3D去掉全屏时的屏幕黑边
  3. DBA日常工作内容和职责
  4. struts.properties属性解释
  5. Adroid学习之 从源码角度分析-禁止使用回退按钮方案
  6. 面试官系统精讲Java源码及大厂真题 - 45 Socket 源码及面试题
  7. android 音量级别调节,调整Android音量等级及默认音量
  8. Axure经典实例高保真交互下载(微信元件高保真交互库+微信原型交互+安卓设备模板含登录注册引导欢迎流程+ios苹果设备模板)
  9. Neural Style Transfer 神经风格迁移详解
  10. hadoop开启后jps只有jps一个进程
  11. sun oracle t4 2 功率,Oracle T4-2 使用ILOM CLI升级Firmware
  12. 浅谈登录服务器的方法
  13. ELK日志分析系统理论加实操演练!!
  14. svn 服务器日志位置,svn服务器查看日志
  15. 计算机与打印机脱机后怎么共享,打印机脱机工作怎么恢复(连接的共享打印机脱机)...
  16. 单片机c语言编写从1到99程序,如何用用C语言编写的单片机来控制流水灯
  17. 简单理解数据库游标cursor
  18. KUKA机器人视觉2
  19. 如何免费压缩图片-批量免费压缩图片大小的软件
  20. 连载《国培计划》骨干教师的研修日志之八:米新江教授讲座有感

热门文章

  1. 自定义UISegmentedControl
  2. [Silverlight资源]处理bmp,gif及ico图像类文件
  3. 7.Linux 输入子系统分析
  4. 数学:拓展中国剩余定理
  5. 从Openvswitch代码看网络包的旅程
  6. FTL页面常用到的一些方法combobox、combotree、datagrid
  7. OpenCV学习:Mat结构中的数据共享机制
  8. ELF Format 笔记(十三)—— 段权限
  9. DataList编辑、更新、取消、删除、分页(分页控件 AspNetPager.dll)
  10. SQL-根据多个条件更新数据