《运营商劫持, 中间人攻击, 黑客入侵怎么办?》- HTTPS 技术反制

article/2025/11/11 15:38:28

目录

1.HTTPS 是什么

1.1 运营商劫持

1.2 加密是什么

2. HTTPS 的工作过程

2.1 对称加密

2.2 非对称加密

2.3 引入证书


1.HTTPS 是什么

HTTPS 也是一个应用层协议 . 是在 HTTP 协议的基础上引入了一个加密层 .
HTTP 协议内容都是按照文本的方式明文传输的 . 这就导致在传输过程中出现一些被篡改的情况 .

1.1 运营商劫持

什么叫运营商劫持? 

由于我们通过网络传输的任何的数据包都会经过运营商的网络设备 ( 路由器 , 交换机等 ), 那么运营商的网络设备就可以解析出你传输的数据内容, 并进行篡改 .

假如我用我的浏览器去下载 qq 音乐, 我的数据就经过了运营商设备, 结果运营商设备把这个下载链接进行了替换, 于是我下载的就是一个 qq 浏览器了, 像这种行为就叫做运营商劫持.

运营商为什么要劫持呢 ?   (被金钱蒙蔽了双眼)

不光是运营商可以劫持到咱们的数据, 黑客也是有可能劫持到的!!!

比如, 黑客黑入了某个路由器, 这个时候就可能获取到所有经过路由器的网络数据报!!

1.运营商路由器可能会受到攻击. 2. 公共场合的 wifi 也是被攻击的对象. 如果此时我们在公共场合继续在网络上进行明文传输, 那么你的账号密码就要被窃取了....

如何保证数据不被窃取?  我们无法阻止黑客入侵路由器, 但是可以想办法对数据进行加密, 即使被窃取,,, 他也不知道是什么意思.

1.2 加密是什么

明文通过密钥变成密文这个过程就叫做 "加密".
密文通过密钥变成明文这个过程就叫做 "解密".

那密钥又是什么呢?
在这个加密和解密的过程中, 往往需要一个或者多个中间的数据, 辅助进行这个过程, 这样的数据称为密钥.

就像电视剧中接头的人对暗号, 《鹿鼎记》中有一段暗语:

 [有没有清恶毒, 便盲眼复明的清毒复明膏药? ]  [有是有, 价钱太贵, 要三两黄金, 三两白银..]

像这种只有接收方, 发送方能动懂得形式, 就形如加密.

2. HTTPS 的工作过程

加密的方式有很多, 但是整体可以分成两大类: 对称加密 非对称加密.

如果加密和解密过程中, 使用的密钥是同一个, 就叫做 "对称加密".

如果加密和解密过程中, 使用的是不同的密钥, 就叫做 "非对称密钥".

2.1 对称加密

像上图中, 由于数据是加密的, 黑客并不知道明文是什么.

但是黑客不知道明文是什么的前提是, 他不知道密钥是什么, 如果黑客知道了密钥是什么, 就还是能够破解的.

客户端和服务器使用的密钥, 是一个啥样的密钥? 服务器不只是和一个客户端交互, 是同时和一堆客户端进行交互的, 针对这么多客户端, 使用的是相同的密钥, 还是不同的密钥呢?

如果是相同的密钥, 黑客只要伪装成一个客户端就可以拿到这个密钥了..于是每个客户端, 在和服务器连接的时候, 就自己生成一个密钥.(每个客户端的密钥各不相同)

那么如何把客户端生成的密钥, 传送给服务器呢? 

如果直接明文传输, 密钥就还是可能被黑客获取到! 

由于服务器同一时刻要给很多客户端提供服务, 并且每个客户端的密钥又是不同的, 因此服务器就需要维护与每个客户端的之间的密钥关系, 就显得相当麻烦....

所以, 理想的做法是, 在客户端与服务器建立连接的时候, 双方就协商好这次的密钥是什么, 后续再进行数据传输的时候, 就都用这个密钥.

虽然数据得到保护了, 但是密钥又该如何传输呢? 直接明文传输, 就还是可能被黑客截获到.. 如果使用另一个密钥对该密钥进行加密, 那 密钥2 该如何传输? 此时密钥的传输再使用对称加密就行不通了, 就需要引入非对称加密了..

2.2 非对称加密

此处用来加密的密钥, 是一对有关联的整数. 使用数学上的方法生成的,(拿两个很大的素数, 很容易得到乘积, 但是如果只知道乘积, 就没法还原回这两个素数)

非对称加密流程: 

把这一对密钥其中一个公布出来 (公钥), 另一个自己藏着 (私钥). 于是我们就可以使用公钥来加密, 私钥来解密. (也可以使用私钥加密, 公钥解密)

对于客户端:  当服务器生成一对 "公钥" 和 "私钥", 公钥公开出去, 自己保留私钥, 这时候, 客户端就可以拿到公钥, 并且针对对称密钥进行加密, 然后把加密后得密文通过网络来传输给服务器, 当对称密钥传过去后, 后续的数据传输就都使用对称密钥了.
而对于黑客:此时他只能拿到服务器的公钥, 不知道服务器的私钥!! 就无法截取有用数据..

既然非对称加密这么香, 为啥还要用对称加密呢?

因为非对称加密的加密和解密的开销是非常大的, 如果只是针对对称密钥使用, 就还好, 如果针对数据也使用非对称加密, 那么网络的传输速率就要大打折扣了. 此时非对称加密就不如对称密钥轻量. (安全和效率同时具备得同时具备)

但是这个办法并非无懈可击, 黑客还是有办法化解上述方案的.

中间人攻击 - (狸猫换太子)

服务器生成一对 "公钥" 和 "私钥" , 将 "公钥" 公开出去后, 黑客先拿到这个 "'公钥" , 然后自己也生成一对 "公钥" 和 "私钥" pub2, pri2, 然后把自己的 "公钥" pub2 返回给客户端, 由于客户端也不知道这个 "公钥" 是不是服务器的, 于是就拿这个 "公钥" 给对称密钥加密, 然后发送给服务器, 此时黑客就能获取到 使用 pub2 加密的对称密钥, 然后拿自己的 "私钥" pri2 进行解密, 就能获取到对称密钥 "123456" 了, 然后再使用之前的 "公钥" 将对称密钥 "123456" 进行加密, 发送给服务器, 那么后续服务器和客户端之间传输的任何数据, 黑客就都知道了.这一招就是典型的 "狸猫换太子".

那么如何解决中间人攻击的问题呢?

2.3 引入证书

在客户端和服务器刚建立连接的时候 , 服务器给客户端返回一个 证书 .
这个证书包含了刚才的公钥 , 也包含了网站的身份信息.

"证书" 机制, 就相当于引入了一个认证机构 , 就像公安局一样是可信的, 然后服务器需要向认证机构申请一个证书, 认证机构就会审核服务器的资质. (此处的证书就是一个加过密的字符串 和服务器的域名)

这就好比你想开一家公司, 你得去工商局办理营业执照, 工商局就会审核你的资料, 看你符不符合国家要求, 审核资质通过后才会给你颁发证书.

经过引入证书机制后, 黑客如果还想 "狸猫换太子", 就得去认证机构申请证书 (伪造证书), 但是伪造的证书很容易鉴别真伪, 客户端自己内置了一些证书 (提高访问速度), 就可以对比证书内容 (字符串) 和 对比服务器域名, 如果证书内容被篡改过或者域名对不上, 此时客户端访问服务器, 浏览器就会弹框提示:  你要访问的页面证书不匹配 / 域名不匹配, 或者你要访问的页面存在风险, 这时候, 客户端这边就会提高警惕了!!

====================================================================

说到这, 其实抓包工具 Fiddler 也是在进行中间人攻击. 我们首次勾选 Fiddler 的 https 的时候, 提示是否要安装一个 XXX证书, 这个证书就是 Fiddler 为了进行中间人攻击, 自己生成的证书. 所以我们得安装了这个证书, 浏览器才会信任 Fiddler , 浏览器才不会弹框. 

上述这些过程, 并不是 HTTPS 独有的. 这个过程是 SSL / TLS 的加密流程. HTTPS 就是 HTTP + SSL, 其他的协议也可能使用 SSL.


本篇文章就到这里了, 谢谢观看!!


http://chatgpt.dhexx.cn/article/3vVDIb49.shtml

相关文章

Hive字符串转日期细节

日期函数:to_date();date_format();from_unixtime(unix_timestamp()) 测试数据:t1 t2 2020/4/1 13:01 2020-04-01 目的:将t1转成 2020-04-01 t2 -> 2020/04/01 方法(针对t1进行处理) from_unixtime(unix_timestamp(substr(t1,1,length(reg…

mysql 字符串转日期及其他日期转换

mysql 字符串转日期及其他日期转换 -- 字符串转日期 select str_to_date(2019/1/1, %Y/%m/%d) -- 2019-01-01SELECT STR_TO_DATE(concat(Cyear,/,Cmonth,/,Cday),%Y/%m/%d) SELECT date_format(DATE_ADD(DATE_FORMAT(CONCAT(2020-03,-01),%Y-%m-%d),INTERVAL -1 month ),%Y-%m…

SimpleDateFormat 字符串转日期

使用SimpleDateFormat类,可以将Date对象或具有日期格式的字符串进行互相转换使用SimpleDateFormat可以设置期日格式 默认的日期格式为 下面为构造函数中字符串字母所代表的内容 转换方法 此处构造函数使用的无参,方法中的参数格式需要于构造函数中设置的…

vue字符串转日期

vue中的数据判断对数据类型要求很高。 下面的代码是想根据 beginTime 和 endTime 来决定记录的状态,但是不起作用。 效果: 原因是 beginTime 和 endTime 的类型是字符串而非日期类型,所以无法与 new Date()进行比较。解决方法如下代码&#x…

JAVA字符串转日期及日期转字符串

一、字符串转日期 Testpublic void test10(){String date"2022-09-30";SimpleDateFormat simpleDateFormatnew SimpleDateFormat("yyyy-MM-dd");Date parse null;try {parse simpleDateFormat.parse(date);System.out.println("parse " pars…

云服务器可以存放文件吗,存放文件的云服务器

存放文件的云服务器 内容精选 换一换 本节操作介绍华为云上云服务器的跨账号跨区域迁移,建议采用镜像迁移方式。服务器迁移的常见场景与常用的迁移方式请参考迁移的背景知识。跨账号跨区域迁移的方法请参考方案介绍常见的服务器迁移场景包括物理服务器与云服务器之间…

文件服务器存储,文件服务器存储

文件服务器存储 内容精选 换一换 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 HPC是高性能计算(High Performance Computing)的简称。通常指以计算为目的,使用了很多处理器的单个计算机系统或者使用了多台计…

文件存储技术-OSS云存储服务

控制台 后台代码 获取访问阿里云API的密钥创建 service_oss 模块引入阿里云oss相关依赖 <dependencies><!-- 阿里云oss依赖 --><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId></depen…

NFS文件共享存储服务器简介

NFS&#xff08;Network File System&#xff09;即网络文件系统&#xff0c;它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中&#xff0c;本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件&#xff0c;就像访问本地文件一样。 在企业集群架构的工…

文件服务器和nas存储,nas存储 文件服务器

nas存储 文件服务器 内容精选 换一换 资源池是BCE所需要使用的计算资源的集合。BCE的资源池由CCE和CCI提供&#xff0c;分为共享资源池、专属资源池、cromwell资源池。批量任务投递时所选择的队列&#xff0c;在进行任务调度时&#xff0c;会根据队列的权重进行优先调度。通过作…

服务器可以储存多久文件,云服务器储存文件

云服务器储存文件 内容精选 换一换 设置“云服务器名称”。名称可自定义&#xff0c;但需符合命名规则&#xff1a;只能由中文字符、英文字母、数字及“_”、“-”、“.”组成。如果同时购买多台弹性云服务器&#xff0c;系统会自动按序增加后缀。一次创建多台弹性云服务器时&a…

文件服务器如何保存,文件保存服务器

文件保存服务器 内容精选 换一换 环境: centos、jdk1.8、vsftpd、nginx、spring boot、dockerftp上传附件&#xff0c;上传的附件有两种方式回显&#xff0c;在下面再详细说明此处省略ftp服务器、docker服务器nginx服务器搭建过程。上传首先在application.yml文件中添加ftp配置…

企业文件存储服务器规划,企业文件存储服务器

企业文件存储服务器 内容精选 换一换 鲲鹏BoostKit分布式存储使能套件特性清单 云硬盘(Elastic Volume Service&#xff0c;EVS)可以为裸金属服务器提供高可靠、高性能、规格丰富并且可弹性扩展的块存储服务&#xff0c;满足不同场景的业务需求&#xff0c;适用于分布式文件系统…

文件存储服务器 方案,文件服务器存储方案

文件服务器存储方案 内容精选 换一换 本方案采用DESS作为存储方案。因昆仑服务器仅支持使用DESS提供SBD盘&#xff0c;为了节省成本&#xff0c;在昆仑服务器高可用的场景下用户也可选择ISCSI盘用作SBD卷作为存储方案&#xff0c;详细方案请参考方案简介(ISCSI)。单节点部署方案…

文件上传,还存储在应用服务器?

前言 一般项目开发中都会有文件、图片、视频等文件上传并能够访问的场景。要实现这样的场景&#xff0c;要么把文件存储在应用服务器上&#xff0c;要么搭建文件服务来存储。但是这两种方式也有不少的缺点&#xff0c;增加运维的成本。 因此&#xff0c;追求用户体验的项目可…

Linux文件服务NFS共享存储服务

&#x1f618;作者简介&#xff1a;一名99年运维岗位员工&#xff0c;正在自学云计算课程。&#x1f44a;宣言&#xff1a;人生就是B&#xff08;birth&#xff09;和D&#xff08;death&#xff09;之间的C&#xff08;choise&#xff09;&#xff0c;做好每一个选择。&#x…

云服务器 能存储文件吗,云服务器存储文件

云服务器存储文件 内容精选 换一换 外部镜像文件在从原平台导出前&#xff0c;没有按照“Windows操作系统的镜像文件限制”的要求完成初始化操作&#xff0c;推荐您使用弹性云服务器完成相关配置。流程如图1所示。云服务器的正常运行依赖于XEN Guest OS driver(PV driver)和KVM…

Java -- OSS对象存储服务(Object Storage Service,简称 OSS)文件服务器

一个成熟的技术架构要有一定的分离性&#xff0c; 平台级的产品一般会这么分&#xff1a;应用服务器、数据库服务器、文件服务器。一般文件、数据库、应用服务器&#xff0c;都应该做逻辑和物理的分离。 以前我们想要做文件上传可能要自己去搭建一个专门的服务器&#xff0c;然…

文件服务器存储解决方案探索

1 定义 文件服务器(file servers)是一种器件&#xff0c;它的功能就是向服务器提供文件。 它加强了存储器的功能&#xff0c;简化了网络数据的管理。 它一则改善了系统的性能&#xff0c;提高了数据的可用性&#xff0c;二则减少了管理的复杂程度&#xff0c;降低了运营费用。…

SeaWeedFS文件存储服务器搭建

概述 seaweedfs是一个非常优秀的由 golang 开发的分布式存储开源项目。它是用来存储文件的系统&#xff0c;并且与使用的语言无关&#xff0c;使得文件储存在云端变得非常方便。 对应的流程图如下&#xff1a; 同步过程 流程图如下 下载过程 流程图如下 在逻辑上Seaweedfs的几…