网络原理(应用层)->HTTPS解

前言:
大家好我是小帅,今天我们来了解HTTPS,
个人主页:再无B~U~G


文章目录

  • 1.HTTPS
    • 1.1HTTPS 是什么?
    • 1.2 "加密" 是什么
    • 1.3 HTTPS 的⼯作过程
      • 1.3. 1对称加密
      • 1.3.2⾮对称加密
    • 1.4中间人攻击
    • 1.5 证书
      • 1.5.1 数字签名
  • 2. HTTPS问题


1.HTTPS

1.1HTTPS 是什么?

HTTPS 也是⼀个应⽤层协议. 是在 HTTP 协议的基础上引⼊了⼀个加密层.
HTTP 协议内容都是按照⽂本的⽅式明⽂传输的. 这就导致在传输过程中出现⼀些被篡改的情况.
在这里插入图片描述

臭名昭著的 “运营商劫持”
由于我们通过⽹络传输的任何的数据包都会经过运营商的⽹络设备(路由器, 交换机等), 那么运营商的⽹
络设备就可以解析出你传输的数据内容, 并进⾏篡改.
在这里插入图片描述
不⽌运营商可以劫持, 其他的 ⿊客 也可以⽤类似的⼿段进⾏劫持, 来窃取⽤⼾隐私信息, 或者篡改内容.
试想⼀下, 如果⿊客在⽤⼾登陆⽀付宝的时候获取到⽤⼾账⼾余额, 甚⾄获取到⽤⼾的⽀付密码…
在互联⽹上, 明⽂传输是⽐较危险的事情!!!


1.2 “加密” 是什么

加密就是把 明⽂ (要传输的信息)进⾏⼀系列变换, ⽣成 密⽂.
解密就是把 密⽂ 再进⾏⼀系列变换, 还原成 明⽂.

在这个加密和解密的过程中, 往往需要⼀个或者多个中间的数据, 辅助进⾏这个过程, 这样的数据称为 密
钥.

1.3 HTTPS 的⼯作过程

既然要保证数据安全, 就需要进⾏ “加密”.
⽹络传输中不再直接传输明⽂了, ⽽是加密之后的 “密⽂”.
加密的⽅式有很多, 但是整体可以分成两⼤类: 对称加密⾮对称加密.


1.3. 1对称加密

对称加密其实就是通过同⼀个 “密钥” , 把明⽂加密成密⽂, 并且也能把密⽂解密成明⽂.
在这里插入图片描述
如果直接把密钥明⽂传输, 那么⿊客也就能获得密钥了~~ 此时后续的加密操作就形同虚设了.
**因此密钥的传输也必须加密传输! **


1.3.2⾮对称加密

⾮对称加密要⽤到两个密钥, ⼀个叫做 “公钥”, ⼀个叫做 “私钥”.
私钥加密,公钥解密,这两个是相对的,发布出去的就是公钥
公钥和私钥是配对的. 最⼤的缺点就是运算速度⾮常慢,⽐对称加密要慢很多
在这里插入图片描述
那么接下来问题⼜来了

客⼾端如何获取到公钥?
数据的安全传输了吗?
客⼾端如何确定这个公钥不是⿊客伪造的?


1.4中间人攻击

为什么不能明文传输公钥?

假如说在对称加密里面,公钥的传输是明文传输的。
那么就会出现这种情况:

假设服务器和中间人都有能力生成公钥私钥。

  1. 客⼾端向服务器发起请求,服务器明⽂传送公钥S给客⼾端。
  2. 中间⼈劫持数据报⽂,提取公钥S并保存好,然后将被劫持报⽂中的公钥S替换成为⾃⼰的公钥M,并将伪造报⽂发给客⼾端。
  3. 客⼾端收到报⽂,提取公钥M(⾃⼰当然不知道公钥被更换过了),⾃⼰形成对称秘钥X,⽤公钥M加密X,形成报⽂发送给服务器。
  4. . 中间⼈劫持后,直接⽤⾃⼰的私钥M’进⾏解密,得到通信秘钥X,再⽤曾经保存的服务端公钥S加密后,将报⽂推送给服务器。
    图解:
    在这里插入图片描述

为了解决中间人攻击问题,引入证书。


1.5 证书

服务端在使⽤HTTPS前,需要向CA机构申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信
息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端
公钥的权威性。

  1. CA机构拥有⾮对称加密的私钥A和公钥A。
  2. 然后对数据摘要⽤CA私钥A’加密,得到数字签名S 。
  3. 考虑到CA能颁发CA机构不多,CA公钥也不多所以直接把CA的公钥配置到操作系统里面。

1.5.1 数字签名

签名的形成是基于⾮对称加密算法的,注意,⽬前暂时和https没有关系,不要和https中的公钥私钥搞
混了。
简单来说:就是通过AC私钥加密服务器的数据(公钥,服务器信息)。
在这里插入图片描述


通过证书解决解决中间人攻击
根本原因:是公钥是明文传输的,没有办法知道是否被替换。
解决办法:只要知道客户端拿到的公钥是服务器的公钥就可以解决。

  1. 客户端请求得到服务器公钥(请求)

  2. 服务器收到请求后,使用CA私钥加密(服务器信息和公钥),返回给客户端,
    解释一下这里的问题:
    中间人也有AC公钥啊,也可以解密服务器用AC私钥加密的数据得到公钥。那是否还会出现上面“中间人攻击问题”呢?
    但是要想再发给客户端(发中间人解密的服务器的数据),必须使用AC私钥加密,才能让客户端发现不了证书被解密过。但是只有服务器有AC私钥。所以即使中间人有AC公钥,也无济于事。

  3. 客户端使用AC公钥对数字签名进行解密,得到⼀个 hash 值(称为数据摘要), 设为 hash1. 然后计算整个证书的 hash 值, 设为 hash2. 对⽐ hash1 和 hash2 是否相等. 如果相等, 则说明证书是没有被篡改过的。

  4. 这时候拿到的公钥就是服务器公钥

查看浏览器的受信任证书发布机构

  1. 在google浏览器的地址栏,输入如下命令,回车

chrome:
2.点击[管理证书] —> 受信任的根证书颁发机构 —> 详细信息 —> 所有 --> 公钥
在这里插入图片描述


2. HTTPS问题


中间⼈有没有可能篡改该证书?
上面我们已经回答了这个问题。

  1. 中间⼈篡改了证书的明⽂
  2. 由于他没有CA机构的私钥,所以⽆法hash之后⽤私钥加密形成签名,那么也就没法办法对篡改后的证书形成匹配的签名。
  3. 如果强⾏篡改,客⼾端收到该证书后会发现明⽂和签名解密后的值不⼀致,则说明证书已被篡改,证书不可信,从⽽终⽌向服务器传输信息,防⽌信息泄露给中间⼈。

中间⼈整个掉包证书?

  1. 因为中间⼈没有CA私钥,所以⽆法制作假的证书(为什么?)
  2. 所以中间⼈只能向CA申请真证书,然后⽤⾃⼰申请的证书进⾏掉包
  3. 这个确实能做到证书的整体掉包,但是别忘记,证书明⽂中包含了域名等服务端认证信息,如果整体掉包,客⼾端依旧能够识别出来。
    永远记住:中间⼈没有CA私钥,所以对任何证书都⽆法进⾏合法修改,包括⾃⼰的

为什么摘要内容在⽹络传输的时候⼀定要加密形成签名?

常⻅的摘要算法有: MD5 和 SHA 系列
以 MD5 为例, 我们不需要研究具体的计算签名的过程, 只需要了解 MD5 的特点:

  • 定⻓: ⽆论多⻓的字符串, 计算出来的 MD5 值都是固定⻓度 (16字节版本或者32字节版本)
  • 分散: 源字符串只要改变⼀点点, 最终得到的 MD5 值都会差别很⼤.
  • 不可逆: 通过源字符串⽣成 MD5 很容易, 但是通过 MD5 还原成原串理论上是不可能的.

正因为 MD5 有这样的特性, 我们可以认为如果两个字符串的 MD5 值相同, 则认为这两个字符串相同.

完整流程
左侧都是客⼾端做的事情, 右侧都是服务器做的事情.
在这里插入图片描述
总结:
HTTPS ⼯作过程中涉及到的密钥有三组

第⼀组(⾮对称加密): ⽤于校验证书是否被篡改. 服务器持有私钥(私钥在注册证书时获得), 客⼾端持有公钥(操作系统包含了可信任的 CA 认证机构有哪些, 同时持有对应的公钥). 服务器使⽤这个私钥对证书的签名进⾏加密. 客⼾端通过这个公钥解密获取到证书的签名, 从⽽校验证书内容是否是篡改过.
第⼆组(⾮对称加密): ⽤于协商⽣成对称加密的密钥. 服务器⽣成这组 私钥-公钥 对, 然后通过证书把公钥传递给客⼾端. 然后客⼾端⽤这个公钥给⽣成的对称加密的密钥加密, 传输给服务器, 服务器通过私钥解密获取到对称加密密钥.
第三组(对称加密): 客⼾端和服务器后续传输的数据都通过这个对称密钥加密解密.

为什么第三组要使用对称加密,不一直使用非对称加密呢?而且非对称加密安全的多
回答是:没必要
前两次组加密过程,使客户端和服务器密文获得了对方的公钥和私钥,,不存在中间人攻击安全问题,而且对称加密传输数据比非对称加密快。

好了,今天就到这里了,感谢观看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/909331.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络:简述LAN口模式下NAT和代理的区别

LAN口模式 NAT和代理的区别 LAN口模式下的NAT和代理的区别主要体现在定义、功能和应用场景上。 # NAT和代理的定义和功能 ‌NAT(网络地址转换)‌:NAT是一种网络地址翻译技术,它将内部私有IP地址转换为公网IP地址,使得…

java项目之协力服装厂服装生产管理系统的设计与实现(springboot)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的协力服装厂服装生产管理系统的设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: …

排序算法之插排希尔

算法时间复杂度(最好)时间复杂度(平均)时间复杂度(最差)空间复杂度插入排序O(n)O(n^2)O(n^2)1希尔排序O(n)O(n^1.3)O(n^2) 1 1.插入排序 玩牌时,每得到一张,就要把它插入…

SSH实验1

Telnet实验: 服务端: 安装telnet的服务端并启动: 用本机telnet连接服务端(连接不上,因为防火墙没放行telnet服务): 使防火墙放行telnet服务(登录成功): SSH实验&#x…

Vue(JavaScript)读取csv表格并求某一列之和(大浮点数处理: decimal.js)

文章目录 想要读这个表格,并且求第二列所有价格的和方法一:通过添加文件输入元素上传csv完整(正确)代码之前的错误部分因为价格是小数,所以下面的代码出错。如果把parseFloat改成parseInt,那么求和没有意义…

密码学知识点整理一:密码学概论

密码学是什么? 密码学是一门研究编制密码和破译密码的技术科学。 密码学,作为信息安全的核心技术之一,其重要性在于能够为信息传输提供安全保障,确保数据在存储或传输过程中的机密性、完整性与真实性不被破坏。从古至今&#x…

2024.11.5- Redis(3)

五 Redis的发布订阅 5.1 介绍 Redis通过publish、subscribe和psubcribe、Unsubscribe和punsubscribe等命令实现发布、订阅和退订功能。这些命令被广泛用于构建即时通信应用,比如网络聊天室(chatroom)和实时广播、实时提醒等。 ​ 角色: -- 客户端通过PUBLISH命令向…

【时间之外】IT人求职和创业应知【27】

目录 新闻一物理智能公司完成4亿美元融资 新闻二A股IPO和再融资受理、审核回暖 新闻三AI流量变现财富峰会举办 认知和思考决定了你的赚钱能力。以下是今天可能引起你思考的热点新闻: 今日关键字:没吃过猪肉,还没见过猪跑吗? 新…

【软考网工笔记】网络基础理论——数据链路层

文章目录 按照分布范围对计算机网络进行划分MAC帧格式按照 802.1d 协议,交换机的端口状态ISDN-综合业务数字网以太网中退避机制生成树协议的工作过程链路聚合技术数字编码的过程信道复用技术802.11系列标准NRZ-I 反向不归零码千兆以太网标准百兆以太网标准PON 接入技…

linux mysql8大小写敏感问题

问题描述 在windows或者macOs,mysql对表明的大小写是不敏感的,但是在linux上是敏感的。笔者写了一个程序,程序里的sql语句没有注意大小写问题,访问windows的mysql没有问题,但访问Linux的就出问题了。于是着手解决这个…

云集电商:如何通过 OceanBase 实现降本 87.5%|OceanBase案例

云集电商,一家聚焦于社交电商的电商公司,专注于‘精选’理念,致力于为会员提供超高性价比的全品类精选商品,以“批发价”让亿万消费者买到质量可靠的商品。面对近年来外部环境的变化,公司对成本控制提出了更高要求&…

Claude 3.5 Sonnet模型新增了PDF支持功能

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

02-5分钟打造鸿蒙第一个应用程序

大家好,欢迎来到鸿蒙开发的奇妙世界!如果你对编程感兴趣,却又不知道从何开始,那么今天的文章将是你最好的起点。我们将用短短5分钟的时间,带你快速入门鸿蒙开发,用 ArkTS 编写并运行你的第一个鸿蒙应用程序…

一篇文章速通Java开发Stream流(流水线开发附斗地主小游戏综合案例)

1-认识Sream流 是JDK8开始新增的一套API(java.util.stream.*),可以用于操作集合或者数组的数据。 优势:Stream流大量的结合了Lambda语法风格来编程,功能强大,性能高效,代码简洁,可…

练习LabVIEW第三十七题

学习目标: 刚学了LabVIEW,在网上找了些题,练习一下LabVIEW,有不对不好不足的地方欢迎指正! 第三十七题: 利用XY GRAPH 构成李萨如图形 开始编写: 前面板放一个XY图控件,程序框图…

ubuntu20.04 加固方案-检查是否设置登录超时

一、编辑/etc/profile配置文件 打开终端。 使用文本编辑器(如vim)编辑/etc/profile 文件。 vi /etc/profile 二、添加配置参数 在打开的配置文件中,如图位置添加如下参数: TMOUT1800 export TMOUT三、保存并退出 在vim编辑器…

算法:图的相关算法

图的相关算法 1. 图的遍历算法1.1 深度优先搜索1.2 广度优先搜索 2. 最小生成树求解算法普里姆(Prim)算法克鲁斯卡尔(Kruskal)算法 3. 拓扑排序4. 最短路径算法 1. 图的遍历算法 图的遍历是指从某个顶点出发,沿着某条搜索路径对图中的所有顶点进行访问且只访问次的…

智能语音机器人智能在哪里?AI人工智能电话机器人部署

随着科技的不断进步,人工智能已经成为了我们生活中不可或缺的一部分。AI人工智能机器人电话正是其中的一种形式,可以帮助企业或组织更好地实现电话营销的目标,那么智能语音机器人智能在哪里?我们来看看: 智能语音机器人&#xf…

半波正弦信号的FFT变换

目录 Hello, 大家好,这一期我们谈谈半波正弦信号的FFT变化长什么样子。本文硬件使用GFARM02硬件模块[1],文章最后有其淘宝链接。核心器件为STM32F103RCT6,为Cortex-M3核,采用的CMSIS版本为CMSIS_5-5.6.0。 如图1所示&…

计算机网络:网络层 —— 移动 IP 技术

文章目录 IPv6IPv6 的诞生背景主要优势IPv6引进的主要变化 IPv6数据报的基本首部IPv6数据报首部与IPv4数据报首部的对比 IPv6数据报的拓展首部IPv6地址IPv6地址空间大小IPv6地址的表示方法 IPv6地址的分类从IPv4向IPv6过渡使用双协议栈使用隧道技术 网际控制报文协议 ICMPv6ICM…