【网络协议】Https
HTTP 协议内容都是按照⽂本的⽅式明⽂传输的,这就可能导致在传输过程中出现⼀些被篡改的情况。所以在HTTP协议的基础上,引入加密层,形成了HTTPS协议。
HTTPS 协议是由 HTTP 加上 TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。设计目标主要有三个。
(1)数据保密性:保证数据内容在传输的过程中不会被第三方查看。就像快递员传递包裹一样,都进行了封装,别人无法获知里面装了什么。
(2)数据完整性:及时发现被第三方篡改的传输内容。就像快递员虽然不知道包裹里装了什么东西,但他有可能中途掉包,数据完整性就是指如果被掉包,我们能轻松发现并拒收。
(3)身份校验安全性:保证数据到达用户期望的目的地。就像我们邮寄包裹时,虽然是一个封装好的未掉包的包裹,但必须确定这个包裹不会送错地方,通过身份校验来确保送对了地方。
这里解释一下一些概念关于加密的概念:
对称加密:也称单密钥加密,加密和解密所⽤的密钥是相同的。
非对称加密:分为公钥和私钥,公钥加密只能用私钥解密,私钥加密只能用公钥解密。
数据摘要:又称数字指纹,基本原理是利⽤单向散列函数(Hash函数)对信息进⾏运算,⽣成⼀串固定⻓度的数字摘要。数字指纹并不是⼀种加密机制,但可以⽤来判断数据有没有被窜改。
想象一下如果在你和服务器之间存在一个中间人,你和服务器为了保证数据安全,都要对数据加密后再发送。那么通信的双方就必须知道解密的密钥。
场景1:只使用对称加密
你和服务器都有一个你俩才知道到的密钥,这当然可以保证数据安全。但是服务器显然不会只和你交互,那么服务器就必须维护大量密钥与客户端的关联关系,这显然十分麻烦。所以在通信之前就要协商这次通信的密钥是什么,但是发送密钥(密钥也是一种数据)的过程也需要加密,否则中间人获取到你加密过的密钥,照样可以破获你的数据。但是这样就陷入了无限轮回。
场景2:只使用非对称机密
服务器把公钥发送给客户端,客户端用公钥加密后把数据发送给服务器,由于中间人没有私钥自然无法破解密文,但是服务器向客户端发送的信息是用私钥加密的,中间人完全可以在客户端获得公钥之前截取公钥,在服务器给客户端返回消息的时候用公钥破解数据,这样的话还是不安全。
场景3:双方都是用非对称加密
服务器拥有公钥S1和私钥S2,客户端也拥有公钥C1和私钥C2。在通信前,互相发送各自的公钥,然后用各自的私钥加密信息,这样即便中间人截取了数据由于私钥S2和C2在服务器或客户端那里,自然无法解密。但是如果中间人在双方互换公钥之前就已经截取到信息了,然后对其做出修改,比如中间人也有公钥A1和私钥A2,把服务器给客户端的S1换成他自己的A1,然后客户端用A1加密后,把数据发给服务器,中间人就可以用自己的私钥A2解密,然后再用截取到的S1加密数据后发送给服务器。这时候服务器和客户端还傻呵呵乐呢,实际上并不安全。
场景4:非对称加密+对称加密
服务器使用非对称加密,拥有公钥S1和私钥S2。客户端使用对称加密,拥有唯一的密钥C。当进行通信前,服务器把公钥S1发送给客户端,客户端使用S1加密密钥C后发送给服务器,之后双方就可以使用单密钥C通信了。这样理论上是安全的。但是如果中间人在客户端接收公钥S1之前就蹲点了呢?把S1换成中间人自己的密钥A呢?客户端利用密钥A加密密钥C然后发给服务器,被中间人截获后,解密不就获得密钥C了。这样之后的通信相当于全部暴露到了中间人眼皮下,跟裸奔没啥区别。
所以上面的场景2,3,4都犯了一个错误那就是通信前发送公钥无法加密,会被截取。为了避免这种情况,就引入了证书。
1.客户端进行认证
当客户端获取到这个证书之后, 会对证书进行校验(防止证书是伪造的).
判定证书的有效期是否过期
判定证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构).
验证证书是否被篡改: 从系统中拿到该证书发布机构的公钥, 对签名解密, 得到⼀个 hash 值(称为数
据摘要), 设为 hash1. 然后计算整个证书的 hash 值, 设为 hash2. 对⽐ hash1 和 hash2 是否相等. 如果相等, 则说明证书是没有被篡改过的。
2.中间人有没有可能篡改该证书?
中间⼈篡改了证书的明文
由于他没有CA机构的私钥,所以无法hash之后⽤私钥加密形成签名,那么也就没法办法对篡改后
的证书形成匹配的签名
如果强⾏篡改,客户端收到该证书后会发现明文和签名解密后的值不⼀致,则说明证书已被篡改,
证书不可信,从而终⽌向服务器传输信息,防止信息泄露给中间⼈
3.中间人整个掉包证书?
因为中间⼈没有CA私钥,所以无法制作假的证书
所以中间⼈只能向CA申请真证书,然后用自己申请的证书进行掉包
这个确实能做到证书的整体掉包,但是别忘记,证书明文中包含了域名等服务端认证信息,如果整
体掉包,客户端依旧能够识别出来。
永远记住:中间⼈没有CA私钥,所以对任何证书都无法进行合法修改,包括自己的
4.为什么签名不直接加密,而是要先hash形成摘要?
缩⼩签名密文的⻓度,加快数字签名的验证签名的运算速度
5.如何成为中间⼈
ARP欺骗:在局域网中,hacker经过收到ARP Request广播包,能够偷听到其它节点的 (IP, MAC)
地址。例, 黑客收到两个主机A, B的地址,告诉B (受害者) ,⾃⼰是A,使得B在发送给A 的数据包都被黑客截取
ICMP攻击:由于ICMP协议中有重定向的报文类型,那么我们就可以伪造⼀个ICMP信息然后发送给局域网中的客户端,并伪装⾃⼰是⼀个更好的路由通路。从而导致目标所有的上网流量都会发送到我们指定的接⼝上,达到和ARP欺骗同样的效果
假wifi && 假网站等
相关文章:
【网络协议】Https
HTTP 协议内容都是按照⽂本的⽅式明⽂传输的,这就可能导致在传输过程中出现⼀些被篡改的情况。所以在HTTP协议的基础上,引入加密层,形成了HTTPS协议。 HTTPS 协议是由 HTTP 加上 TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要…...
Lostash同步Mysql数据到Elasticsearch(三)Elasticsearch模板与索引设置
logstash数据同步ES相关 同步数据时,Elasticsearch配合脚本的相关处理设置 1.模板创建更新 在kibana中执行,或者直接给ES发送请求,你懂得,不懂得百度下ES创建template PUT /_template/test-xxx {"template": "…...
python——ptp()函数
函数功能:求最大值和最小值的差值 def ptp(a, axisNone, outNone):"""沿轴的值范围(最大值-最小值)。该函数的名称来自“peak-to-peak”的首字母缩写。参数----------a:array_like输入值。axis:int,可选找到山峰的…...
SpringBoot之异常处理
文章目录 前言一、默认规则二、定制异常处理处理自定义错误页面ControllerAdviceExceptionHandler处理全局异常ResponseStatus自定义异常自定义实现 HandlerExceptionResolver 处理异常 三、异常处理自动配置原理四、异常处理流程总结 前言 包含SpringBoot默认处理规则、如何定…...
Flask-[实现websocket]-(2): flask-socketio文档学习
一、简单项目的构建 flask_websocket |---static |---js |---jquery-3.7.0.min.js |---socket.io_4.3.1.js |---templates |---home |---group_chat.html |---index.html |---app.py 1.1、python环境 python3.9.0 1.2、依赖包 Flask2.1.0 eventlet0.33.3 #使用这个性能会…...
网页中使用的图片格式
网页中使用的图片格式有以下几种,各有优缺点: JPEG:适用于照片或彩色图像,支持16.7万种颜色,有损压缩,可以调节压缩比和质量,文件较小,加载较快PNG:适用于图标或透明图像…...
【android】如何设置LD_LIBRARY_PATH?
目录 一 配置方法 1 进入Android shell 2 使用export命令 3 使用echo命令查看变量是否设置成功 二 扩展 1 LD_LIBRARY_PATH设置多个路径 2 push文件 一 配置方法 android中配置LD_LIBRARY_PATH的方法具体为: 1 进入Android shell adb shell 2 使用export…...
【hadoop3.x】一 搭建集群调优
一、基础环境安装 https://blog.csdn.net/fen_dou_shao_nian/article/details/120945221 二、hadoop运行环境搭建 2.1 模板虚拟机环境准备 0)安装模板虚拟机,IP 地址 192.168.10.100、主机名称 hadoop100、内存 4G、硬盘 50G 1)hadoop100…...
linux使用操作[2]
文章目录 版权声明网络传输ping命令wget命令curl命令端口linux端口端口命令和工具 进程管理查看进程关闭进程 主机状态top命令内容详解磁盘信息监控 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明,所有版权属于黑马程序员或相…...
华南理工大学电子与信息学院23年预推免复试面试经验贴
运气较好,复试分数90.24,电科学硕分数线84、信通83、专硕电子与信息74. 面试流程: 1:5min ppt的介绍。其中前2min用英语简要介绍基本信息,后3min可用英语也可用中文 介绍具体项目信息如大创、科研、竞赛等(…...
Linux网络编程- ether_header iphdr tcphdr
struct ether_header struct ether_header 是一个数据结构,用于表示以太网(Ethernet)帧的头部。这个结构体在 <netinet/if_ether.h> 头文件中定义。当你处理或分析以太网帧时,可以使用这个结构体来访问和解读 Ethernet 头部…...
wpf中的StaticResource和DynamicResource
不同点一:StaticResource是程序载入时对资源的一次性使用,之后就不在访问了 DynamicResouce则是程序运行过程中回去访问资源 样例:在xaml中定义好的资源 <Window.Resources><SolidColorBrush x:Key"borderRed" Color"…...
数据结构与算法基础-(3)
🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…...
maven中relativepath标签的含义
一 relative标签的含义 1.1 作用 这个<parent>下面的<relativePath>属性:parent的pom文件的路径。 relativePath 的作用是为了找到父级工程的pom.xml;因为子工程需要继承父工程的pom.xml文件中的内容。然后relativePath 标签内的值使用相对路径定位…...
Greenplum 对比 Hadoop
Greenplum属于MPP架构,和Hadoop一样都是为了解决大规模数据的并行计算而出现的技术,两者的相似点在于: 分布式存储,数据分布在多个节点服务器上分布式并行计算框架支持横向扩展来提高整体的计算能力和存储容量都支持X86开放集群架…...
OJ练习第182题——字典树(前缀树)
字典树(前缀树) 208. 实现 Trie (前缀树)题目描述示例知识补充官解代码 211. 添加与搜索单词 - 数据结构设计题目描述示例思路Java代码 208. 实现 Trie (前缀树) 力扣链接:208. 实现 Trie (前缀树) 题目描述 示例 知识补充 插入字符串 我…...
前端知识总结
在前端开发中,y x是一种常见的自增运算符的使用方式。它表示将变量x的值自增1,并将自增后的值赋给变量y。 具体来说,x是一种后缀自增运算符,表示将变量x的值自增1。而y x则是将自增前的值赋给变量y。这意味着在执行y x之后&am…...
中国JP-10燃料行业市场研究与预测报告(2023版)
内容简介: 高密度燃料是指以石油基、煤基和生物质基烃类为原料,通过聚合、加氢、异构等工艺合成的密度大于0.85 gcm-3的饱和多环碳氢化合物,广泛应用于航空航天领域。由于高密度燃料密度大和体积热值高等特点,飞行器在油箱体积一…...
护眼灯显色指数应达多少?眼科医生推荐灯光显色指数多少合适
台灯的显色指数是其非常重要的指标,它可以表示灯光照射到物体身上,物体颜色的真实程度,一般用平均显色指数Ra来表示,Ra值越高,灯光显色能力越强。常见的台灯显色指数最低要求一般是在Ra80以上即可,比较好的…...
AI 大模型
随着人工智能技术的迅猛发展,AI 大模型逐渐成为推动人工智能领域提升的关键因素,大模型已成为了引领技术浪潮研究和应用方向。大模型即大规模预训练模型,通常是指那些在大规模数据上进行了预训练的具有庞大规模和复杂结构的人工智能模型&…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...
