当前位置: 首页 > news >正文

【网络安全】https协议的加密方案避免中间人攻击(MITM攻击)导致的数据泄露风险

目录

引言

概念准备

中间人

加密

数据摘要 && 数据指纹

数字签名

密钥加密

中间人攻击

CA证书

https加密的解决方案


个人主页:东洛的克莱斯韦克-CSDN博客

引言

http在应用层协议中是明文传输协议,它是通信双方传输数据时的一种约定。【网络】HTTP协议-CSDN博客

用http协议传输数据,其数据包在全网内是公开的。在局域网中第三方设备把自己的网卡的工作模式设为混杂模式,或者用一些抓包软件很容易监听并解析出其他人的通信内容,如果涉及一些隐私信息就会造成信息泄露的风险。

https是在http的基础上做了一层加密,本文探讨https是如何做到加密的。

概念准备

在探讨之前先铺垫一些概念~

中间人

中间人的攻击对象是客户端,在C/S架构或B/S架构中,中间人要窃取的是客户端的数据。

数据包从客户端到服务端需要经过一些中间设备,比如局域网中的路由器,运营商的服务器等等,http协议的数据包并没有加密,而数据包又要经过中间设备,黑客只需劫持一些中间设备或想办法让自己成为中间设备(比如建立假网站)就能轻松拿到客户端的和服务端之间交互的数据包。

下面是让自己成为中间人的几种方式

ARP 欺骗:在局域网中, hacker 经过收到 ARP Request ⼴播包,能够偷听到其它节点的 (IP, MAC) 地址。例, 黑客收到两个主机 A, B 的地址,告诉 B ( 受害者 ) ,自己是 A ,使得 B 在发送给 A 的数据包都被黑客截取
ICMP 攻击:由于 ICMP 协议中有重定向的报文类型,那么我们就可以伪造一个ICMP 信息然后发送给局域网中的客户端,并伪装自己是一个更好的路由通路。从而导致⽬标所有的上网流量都会发送到我们指定的接⼝上,达到和 ARP 欺骗同样的效果
wifi && 假网站等

加密

加密就是把 明文 ( 要传输的信息 ) 进行一系列变换 , 生成 密文 解密就是把 密文 再进行一系列变换 , 还原成 明文 。在这个加密和解密的过程中, 往往需要一个或者多个中间的数据 , 辅助进行这个过程 , 这样的数据称为 密钥
公开的密钥称为公钥,非公开的密钥称为私钥。
对称加密:用同一个密钥(私钥)加密和解密。 算法公开、计算量⼩、加密速度快、加密效率⾼
相关算法:
DES(使用密钥加密的块算法)
三重数据加密算法
BLOWFISH
非对称密钥:用对公钥和私钥进行加密和解密。用公钥加密只能用私钥解密,用私钥加密只能用公钥解密。算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。

数据摘要 && 数据指纹

数字指纹 ( 数据摘要 ), 其基本原理是利用单向散列函数 (Hash 函数 ) 对信息进行运算 , 生成一串固定⻓度的数字摘要。数字指纹并不是一种加密机制, 但可以用来判断数据有没有被篡改。
摘要常见算法:有 MD5 SHA1 SHA256 SHA512 等,算法把无限的映射成有限,因此可能会有碰撞(两个不同的信息,算出的摘要相同,但是概率非常低)
摘要特征:和 加密算法 的区别是,摘要严格意义不是加密,因为没有解密,只不过从摘要很难反推原信息,通常用来进行数据对比

数字签名

摘要经过加密,就得到 数字签名

密钥加密

下面用对称加密和非对称加密结合的方案,假设黑客一定能用中间设备窃取数据

服务端有自己的一对公钥S和私钥S*

客户端向服务端发起请求,获取服务端的公钥S,黑客也一定能拿到公钥S。

客户端在本地生成自己的私钥C,然后用服务端的公钥S加密,即使有中间设备,但该数据包只有服务端的私钥S*解密,私钥C只有客户端和服务端知道,从次双方用私钥C对称加密进行通信,至此通信双方完成密钥协商。

那么这样真的是安全的吗?

并不是,如果黑客一开始就把服务器的公钥S掉包了呢?

中间人攻击

上述方案中并没有让黑客参进密钥协商,假设黑客也有一对自己的公钥M和私钥M*,黑客如果把服务端的公钥S掉包成自己的公钥M给客户会怎么样呢

客户端拿到黑客的公钥M,在本地生成自己的私钥C。用黑客的公钥M加密,然后再向服务器发起请求,黑客很自然的用自己的私钥M*解密,拿到客户端的私钥C,然后用服务端的公钥S加密向服务端发起请求,至此客户端,黑客,服务端都拿到密钥C,客户端和服务端用密钥C进行对称加密通信,但双方并不知道有第三方也拿到了密钥C。

上述通信方案最根本的问题是,客户端无法证明服务器第一次响应的公钥M是不是真的,而公钥M自身也不能证明自己是真的。

只要能证明服务器第一次响应的公钥M是真的,就可以完成密钥协商,然后用对称加密通信,下面就要引入CA证书的概念了。

CA证书

CA证书是由证书颁发机构(Certificate Authority,简称CA)签发的数字证书。它包含了证书申请者的信息(如域名、组织信息等)、公钥信息以及证书颁发机构的签名。证书的作用类似于现实生活中的身份证,它证明了服务端公钥的权威性和可信度,确保了公钥与服务器身份之间的绑定关系。

服务器端在使用HTTPS之前,需要向CA机构申领一份数字证书。这个过程中,服务器会向CA提交证书签名请求(Certificate Signing Request,简称CSR),CSR文件中包含了服务器的公钥信息和一些必要的信息(如域名、组织信息等)。CA机构在收到CSR后,会对申请者的身份和申请信息进行审核。审核通过后,CA会使用自己的私钥对CSR中的信息进行签名,生成最终的数字证书,并颁发给申请者。

CA证书是一个结构化的字符串,其中包含了以下关键信息

证书发布机构:即签发证书的CA机构的名称。
证书有效期:证书的有效时间范围,超过这个时间范围的证书将不再被认为是有效的。
公钥:服务端的公钥信息,这是证书中最核心的部分,用于后续的数据加密和解密。
证书所有者:证书申请者的信息,包括域名、组织名称等。
签名:CA机构使用自己的私钥对证书内容进行签名,确保证书内容的完整性和真实性。

理解CA证书只需理解最核心的两个东西即可

一个是公钥,CA证书里的公钥是服务端的公钥,上文已经提到,CA证书就是为了证明服务端的公钥自身是没有被掉过包的。

那么CA证书怎么能证明服务端公钥的合法性呢?那就是数字签名

CA机构会把证书内容摘要算法比如MD5形成数据指纹,再把数据指纹用CA自己的私钥加密形成数据签名,而客户端会内置CA机构的公钥。

那么客户端一定能辨别证书的真假,有如下场景来解释为什么~

1.黑客只篡改证书内容,但客户端可以通过比对数据指纹来判断证书是否被修改过。

2.黑客篡改证书内容的同时重新用摘要算法形成数据指纹,但黑客没有给证书签名的能力,因为只有CA机构才有私钥。

3.黑客拿真证书掉包,但客户端可以比对公钥,域名,法人信息等判断证书的合法性。

CA证书有自证的能力,那么CA证书中服务器公钥也有自证能力,下面就是https的加密方案。

https加密的解决方案

https采用非对称加密 + 对称加密 + 证书认证的方案进行密钥协商

相关文章:

【网络安全】https协议的加密方案避免中间人攻击(MITM攻击)导致的数据泄露风险

目录 引言 概念准备 中间人 加密 数据摘要 && 数据指纹 数字签名 密钥加密 中间人攻击 CA证书 https加密的解决方案 个人主页:东洛的克莱斯韦克-CSDN博客 引言 http在应用层协议中是明文传输协议,它是通信双方传输数据时的一种约定。【…...

拼多多商家电话采集 拼多多店铺爬虫软件使用教程

拼多多商家电话采集和店铺爬虫软件使用教程: 商家电话采集: a. 打开拼多多网站,进入需要采集电话号码的店铺页面。 b. 打开浏览器开发者工具(一般按F12键或右键选择“检查”)。 c. 在开发者工具中切换到“网络”或“Ne…...

RK3566 MIPI屏调试记录

文章目录 1. 前言2. 环境介绍3. 思路介绍4. 确认要修改的设备树文件5. 设备树中修改关键引脚5.1. 添加dsi0节点5.2. 修改屏幕背光引脚5.3. 添加屏幕复位引脚5.4. 添加屏幕使能引脚 6. 修改屏幕timing参数7. 修改上下电时序8. 修改初始化序列和反初始化序列9. 显示路由配置10. 最…...

爬虫数据模拟真实设备请求头User-Agent生成(fake_useragent:一个超强的Python库)

在Python开发中,处理HTTP请求时经常需要模拟不同的用户代理(User-Agent)来绕过网站的反爬虫机制或进行兼容性测试。fake_useragent正是这样一个强大的Python库,它能够生成随机且多样化的用户代理字符串,让你的请求看起…...

【教育宝-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…...

3.达梦数据库基础运维管理

文章目录 前言一、基础数据库管理权限角色管理1.1 DM 系统管理员的类型1.2 角色责则分类 DM 数据库2.1 数据库评估2.2 状态和模式 参考内容 前言 本篇博客为上一篇博客的进阶版,主要针对常规达梦数据库的基本管理上面 一、基础数据库管理 权限角色管理 1.1 DM 系…...

【Linux】【系统纪元】Linux起源与环境安装

快乐的流畅:个人主页 个人专栏:《C游记》《进击的C》《Linux迷航》 远方有一堆篝火,在为久候之人燃烧! 文章目录 一、Linux的起源1.1 计算机硬件1.2 计算机软件 二、Linux的环境安装2.1 安装方式2.2 安装版本2.3 安装过程2.4 远程…...

Android笔试面试题AI答之Activity(9)

文章目录 1.如何在Application中获取当前Activity实例 ?方法一:使用全局变量或单例方法二:使用LocalBroadcastManager或EventBus方法三:通过Fragment方法四:使用Service和Intent注意事项 2.Activity A跳转Activity B&a…...

什么是嵌入式

1、什么是嵌入式 对专用设备的控制,把不需要的功能能够裁剪、删除,适配于专用设备,就叫做嵌入式(也叫做嵌入式系统) 嵌入式系统定义:用于控制、监视或者辅助机器和设备的运行 一个嵌入式系统由硬件和软件…...

SAM 2:Segment Anything in Images and Videos 论文详解

SAM 2:Segment Anything in Images and Videos 文章目录 SAM 2:Segment Anything in Images and Videos摘要1 Introduction具体分析 2 Related work具体分析: 3 任务:可提示的视觉分割4 模型具体分析具体分析 5 数据5.1 Data engine5.2 SA - V数据集 6 Z…...

PYTHON专题-(10)基操之我要玩并发

什么是并发? 并发指的是两个或多个事件在同一时间间隔内发生。在计算机科学中,并发通常指的是一个程序同时执行多个独立的任务。这些任务可以同时进行,而不会相互干扰或阻塞彼此。并发可以提高程序的执行效率和资源利用率,但也需要…...

双指针实现删除字符串中的所有相邻重复项

class Solution:def removeDuplicates(self, s: str) -> str:res list(s)slow fast 0length len(res)while fast < length:# 如果一样直接换&#xff0c;不一样会把后面的填在slow的位置res[slow] res[fast]# 如果发现和前一个一样&#xff0c;就退一格指针if slow …...

vue(vue2和vue3)项目打包去除console.log

1.Vue2去除 module.exports { configureWebpack: (config) > {// 取消console打印config.optimization.minimizer[0].options.terserOptions.compress.drop_console truereturn {name: "项目名称",resolve: {alias: {"": resolve("src")}}…...

Visual Studio 2022社区版、专业版、企业版功能对比表

https://visualstudio.microsoft.com/zh-hans/vs/compare/...

Codeforces 888 div3 A-G

A. Escalator Conversations 分析 二者身高差为k的倍数且不超过m-1倍&#xff0c;身高差不能为0&#xff08;即不能在同一个阶梯&#xff09; C代码 #include<iostream> using namespace std; void solve(){int n,m,k,H,ans0;cin>>n>>m>>k>>H;…...

IDEA如何去掉编辑框右侧的竖线

打开 IntelliJ Idea 软件 依次找到 File—>Settings—>Editor—>General—>Appearance 去掉勾选 Show hard wrap and visual guides (configured in Code Style options)...

3DCoat v2023 激活版下载与安装教程 (数字雕刻程序)

前言 3DCoat 是一款数字雕塑软件&#xff0c;由乌克兰开发。该软件专注于游戏模型的细节设计&#xff0c;集三维模型实时纹理绘制和细节雕刻功能为一身&#xff0c;可以加速细节设计流程&#xff0c;在更短的时间内创造出更多的内容。 一、下载地址 下载链接&#xff1a;分享…...

【Unity/XLua】xlua自带教程示例分析(一)——打印Hello world

第一步 创建Monobehavior脚本 public class Helloworld : MonoBehaviour {void Start(){} }第二步 在类中或Start函数中创建Lua虚拟机环境 LuaEnv luaenv new LuaEnv();第三步 使用LuaEnv的DoString方法直接运行字符串存储的lua语句&#xff08;字符串前使用可强制不进行转义…...

虚拟机(VMware16)安装rocky9.2详细过程,附镜像下载链接

rocky官方站点 链接: 官方站点 rocky9.2镜像下载路径 链接: Rocky-x86_64-dvd.iso 打开虚拟机&#xff0c;选择新建虚拟机 新建虚拟机 选择典型 由于VMware16没有rocky的版本&#xff0c;所以我们这里选择其他liunx 5.x 内核 64位 因为rocky9默认内核版本就是5开头的&#xf…...

C语言新手小白详细教程(6)函数

希望文章能够给到初学的你一些启发&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏支持一下笔者吧&#xff5e; 阅读指南&#xff1a; 开篇说明为什么要使用函数&#xff1f;1.定义一个函数2.调用函数3.定义函数详解 开篇说明 截止目前&#xff0c;我们已…...

保姆级教程:用iSYSTEM winIDEA和iC5000给S32K148烧录程序,附完整配置流程

从零掌握iSYSTEM工具链&#xff1a;S32K148开发板烧录与调试全流程实战第一次接触iSYSTEM的winIDEA和iC5000仿真器时&#xff0c;很多嵌入式开发者都会感到无从下手。不同于常见的开源工具链&#xff0c;这套专业级开发环境在汽车电子和工业控制领域有着广泛应用&#xff0c;尤…...

Redis分布式锁进阶第二十篇

一、本篇前置衔接 第二十篇我们完成了全系列终局复盘&#xff0c;整理了故障排查SOP与企业级落地铁律。常规单资源锁、热点分片锁、隔离锁全部讲透&#xff0c;但真实复杂业务永远不是单一资源&#xff1a;下单要扣库存、扣优惠券、扣积分、冻结余额&#xff0c;多资源并行争抢…...

美团外卖mtgsig与waimai_sign双层签名逆向解析

1. 这不是“爬虫教程”&#xff0c;而是一份反向工程现场笔记你搜到这篇内容&#xff0c;大概率正卡在某个调试窗口前&#xff1a;抓包看到mtgsig和waimai_sign两个参数像两堵墙&#xff0c;无论怎么改请求头、换UA、清缓存&#xff0c;返回永远是{"code":403,"…...

FT231XQ USB串口桥接板设计解析与实战应用指南

1. 项目概述&#xff1a;从FT232R到FT231XQ的USB串口桥接板演进在嵌入式开发和硬件调试的日常工作中&#xff0c;一个可靠、小巧且功能清晰的USB转串口&#xff08;UART&#xff09;桥接板&#xff08;Breakout Board&#xff0c; 简称BoB&#xff09;几乎是工程师手边的标配工…...

光轮智能 谢晨 访谈总结机器人仿真数据产业

光轮智能 谢晨 访谈总结机器人仿真关于创始人关于数据数据金字塔数据痛点仿真数据的重要性仿真数据的质量b站链接地址公司官网关于创始人 清华物理&#xff1b;哥伦比亚金融&#xff1b;英伟达智驾仿真&#xff1b;小鹏智驾仿真&#xff1b;现为光轮智能CEO 关于数据 数据的…...

双稳健机器学习:用正交性与交叉拟合解决因果推断中的ML偏差

1. 项目概述&#xff1a;当机器学习遇见因果推断的“干扰”难题在实证研究的日常工作中&#xff0c;我们常常面临一个核心矛盾&#xff1a;我们真正关心的&#xff0c;往往只是一个或几个关键参数——比如一项政策对就业率的平均影响&#xff08;平均处理效应&#xff0c;ATE&a…...

在Hermes Agent项目中接入Taotoken作为自定义模型供应商

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Hermes Agent项目中接入Taotoken作为自定义模型供应商 基础教程类&#xff0c;针对使用Hermes Agent框架的开发者&#xff0c;详…...

【Veo 2提示词SOP白皮书】:从模糊意图到像素级输出的8步标准化工作流(附NASA级测试用例库)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Veo 2提示词工程的本质与范式跃迁 Veo 2并非单纯升级的视频生成模型&#xff0c;而是一次提示词工程范式的根本性重构——它将传统“指令式提示”&#xff08;prompt-as-command&#xff09;转向“意图…...

输电线路在线监测系统|架空线路安全运行的“第一道防线“!

输电线路微气象监测站是专为高压输电线路、电网廊道、杆塔运维量身打造的专利级一体化微气象智能监测设备。依托双专利超声波探测技术、六要素集成传感架构、无启动风速高精测量、智能抗干扰稳控系统&#xff0c;实现输电线路沿线气象24小时全自动捕捉、动态实时监测、大风风险…...

通过TaotokenCLI工具一键配置开发环境接入参数

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过Taotoken CLI工具一键配置开发环境接入参数 对于需要接入多个大模型服务的开发者而言&#xff0c;手动配置每个项目的API密钥、…...