面试官:连HTTPS 原理没搞懂,还说“中间人攻击”?

前端安全实战:XSS、CSRF与中间人攻击的防御体系构建 在Web开发领域,浏览器安全是保障应用稳定运行和用户数据隐私的核心基础。其核心原理在于理解浏览器同源策略、HTTP/HTTPS协议以及客户端脚本执行机制,这些构成了现代Web应用的安全边界。从技术价值角度看,有效的安全防护不仅能防止数据泄露和业务逻辑被篡改,更是建立用户信任、符合法规要求的关键。在实际应用场景中,前端作为用户交互的第一线,直接面临XSS(跨站脚本攻击)、CSRF(跨站请求伪造)等经典威胁,需要从编码规范、工程配置到部署监控构建多层防御。本文聚焦于前端开发者必须掌握的实战防护策略,深入解析如何 阅读详情

这篇干货不错,把HTTPS的原理讲清楚了,而且容易懂,建议大家好好读一下。

HTTPS

随着 HTTPS 建站的成本下降,现在大部分的网站都已经开始用上 HTTPS 协议。大家都知道 HTTPS 比 HTTP 安全,也听说过与 HTTPS 协议相关的概念有 SSL 、非对称加密、 CA证书等,但对于以下灵魂三拷问可能就答不上了:

1.为什么用了 HTTPS 就是安全的?2.HTTPS 的底层原理如何实现?3.用了 HTTPS 就一定安全吗?

本文将层层深入,从原理上把 HTTPS 的安全性讲透。

HTTPS 的实现原理

大家可能都听说过 HTTPS 协议之所以是安全的是因为 HTTPS 协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。但其实,HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。

HTTPS的整体过程分为证书验证和数据传输阶段,具体的交互过程如下:

面试官:连HTTPS 原理没搞懂,还说“中间人攻击”?Pass!下一个

 

 

① 证书验证阶段

  • 浏览器发起 HTTPS 请求
  • 服务端返回 HTTPS 证书
  • 客户端验证证书是否合法,如果不合法则提示告警

② 数据传输阶段

1.当证书验证合法后,在本地生成随机数 2.通过公钥加密随机数,并把加密后的随机数传输到服务端 3.服务端通过私钥对随机数进行解密 4.服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输

为什么数据传输是用对称加密?

首先,非对称加密的加解密效率是非常低的,而 http 的应用场景中通常端与端之间存在大量的交互,非对称加密的效率是无法接受的;

另外,在 HTTPS 的场景中只有服务端保存了私钥,一对公私钥只能实现单向的加解密,所以 HTTPS 中内容传输加密采取的是对称加密,而不是非对称加密。

为什么需要 CA 认证机构颁发证书?

HTTP 协议被认为不安全是因为传输过程容易被监听者勾线监听、伪造服务器,而 HTTPS 协议主要解决的便是网络传输的安全性问题。

首先我们假设不存在认证机构,任何人都可以制作证书,这带来的安全风险便是经典的“中间人攻击”问题。

“中间人攻击”的具体过程如下:

面试官:连HTTPS 原理没搞懂,还说“中间人攻击”?Pass!下一个

 

 

过程原理:

1.本地请求被劫持(如DNS劫持等),所有请求均发送到中间人的服务器 2.中间人服务器返回中间人自己的证书 3.客户端创建随机数,通过中间人证书的公钥对随机数加密后传送给中间人,然后凭随机数构造对称加密对传输内容进行加密传输 4.中间人因为拥有客户端的随机数,可以通过对称加密算法进行内容解密 5.中间人以客户端的请求内容再向正规网站发起请求 6.因为中间人与服务器的通信过程是合法的,正规网站通过建立的安全通道返回加密后的数据 7.中间人凭借与正规网站建立的对称加密算法对内容进行解密 8.中间人通过与客户端建立的对称加密算法对正规内容返回的数据进行加密传输 9.客户端通过与中间人建立的对称加密算法对返回结果数据进行解密

由于缺少对证书的验证,所以客户端虽然发起的是 HTTPS 请求,但客户端完全不知道自己的网络已被拦截,传输内容被中间人全部窃取。

浏览器是如何确保 CA 证书的合法性?

1、证书包含什么信息?

  • 颁发机构信息
  • 公钥
  • 公司信息
  • 域名
  • 有效期
  • 指纹

......

2、证书的合法性依据是什么?

首先,权威机构是要有认证的,不是随便一个机构都有资格颁发证书,不然也不叫做权威机构。另外,证书的可信性基于信任制,权威机构需要对其颁发的证书进行信用背书,只要是权威机构生成的证书,我们就认为是合法的。所以权威机构会对申请者的信息进行审核,不同等级的权威机构对审核的要求也不一样,于是证书也分为免费的、便宜的和贵的。

3、浏览器如何验证证书的合法性?

浏览器发起 HTTPS 请求时,服务器会返回网站的 SSL 证书,浏览器需要对证书做以下验证:

1.验证域名、有效期等信息是否正确。证书上都有包含这些信息,比较容易完成验证;2.判断证书来源是否合法。每份签发证书都可以根据验证链查找到对应的根证书,操作系统、浏览器会在本地存储权威机构的根证书,利用本地根证书可以对对应机构签发证书完成来源验证;

面试官:连HTTPS 原理没搞懂,还说“中间人攻击”?Pass!下一个

 

 

3.判断证书是否被篡改。需要与 CA 服务器进行校验;4.判断证书是否已吊销。通过CRL(Certificate Revocation List 证书注销列表)和 OCSP(Online Certificate Status Protocol 在线证书状态协议)实现,其中 OCSP 可用于第3步中以减少与 CA 服务器的交互,提高验证效率

以上任意一步都满足的情况下浏览器才认为证书是合法的。

这里插一个我想了很久的但其实答案很简单的问题:既然证书是公开的,如果要发起中间人攻击,我在官网上下载一份证书作为我的服务器证书,那客户端肯定会认同这个证书是合法的,如何避免这种证书冒用的情况?其实这就是非加密对称中公私钥的用处,虽然中间人可以得到证书,但私钥是无法获取的,一份公钥是不可能推算出其对应的私钥,中间人即使拿到证书也无法伪装成合法服务端,因为无法对客户端传入的加密数据进行解密。

4、 只有认证机构可以生成证书吗?

如果需要浏览器不提示安全风险,那只能使用认证机构签发的证书。但浏览器通常只是提示安全风险,并不限制网站不能访问,所以从技术上谁都可以生成证书,只要有证书就可以完成网站的 HTTPS 传输。例如早期的 12306 采用的便是手动安装私有证书的形式实现 HTTPS 访问。

面试官:连HTTPS 原理没搞懂,还说“中间人攻击”?Pass!下一个

 

本地随机数被窃取怎么办?

证书验证是采用非对称加密实现,但是传输过程是采用对称加密,而其中对称加密算法中重要的随机数是由本地生成并且存储于本地的,HTTPS 如何保证随机数不会被窃取?

其实 HTTPS 并不包含对随机数的安全保证,HTTPS 保证的只是传输过程安全,而随机数存储于本地,本地的安全属于另一安全范畴,应对的措施有安装杀毒软件、反木马、浏览器升级修复漏洞等。

用了 HTTPS 会被抓包吗?

HTTPS 的数据是加密的,常规下抓包工具代理请求后抓到的包内容是加密状态,无法直接查看。

但是,正如前文所说,浏览器只会提示安全风险,如果用户授权仍然可以继续访问网站,完成请求。因此,只要客户端是我们自己的终端,我们授权的情况下,便可以组建中间人网络,而抓包工具便是作为中间人的代理。通常 HTTPS 抓包工具的使用方法是会生成一个证书,用户需要手动把证书安装到客户端中,然后终端发起的所有请求通过该证书完成与抓包工具的交互,然后抓包工具再转发请求到服务器,最后把服务器返回的结果在控制台输出后再返回给终端,从而完成整个请求的闭环。

既然 HTTPS 不能防抓包,那 HTTPS 有什么意义?

A: 客户端发起 HTTPS 请求,服务端返回证书,客户端对证书进行验证,验证通过后本地生成用于改造对称加密算法的随机数,通过证书中的公钥对随机数进行加密传输到服务端,服务端接收后通过私钥解密得到随机数,之后的数据交互通过对称加密算法进行加解密。

Q: 为什么需要证书?

A: 防止”中间人“攻击,同时可以为网站提供身份证明。

Q: 使用 HTTPS 会被抓包吗?

A: 会被抓包,HTTPS 只防止用户在不知情的情况下通信被监听,如果用户主动授信,是可以构建“中间人”网络,代理软件可以对传输内容进行解密。

解决无法将这个证书验证到一个受信任的证书颁发机构方法 立即下载

相关推荐

大疆智图002:大疆智图倾斜摄影建模流程

本文主要介绍大疆智图倾斜摄影建模流程,包括新建工程、成果路径设置、导入照片、第一遍空三、像控刺点、第二遍空三、精度报告查看、三维重建等流程。

qq_31762031的博客 1万+

连接到 SQL Server 时出现“从远程服务器收到的证书由不受信任的证书颁发机构颁发”错误

打开管理证书-->点击个人-->单击证书-->删除证书中的localhost。注意:管理证书在控制面板中的Windows工具中。

weixin_54262315的博客 3174

从零开始:在Windows WSL中搭建Openfoam7+blastfoam2.0.0开发环境(避坑大全)

本文详细指导在Windows WSL中搭建OpenFOAM 7与BlastFOAM 2.0.0开发环境,重点解析了安装过程中的常见“坑点”,如编译模式不匹配导致的符号错误,并提供了从系统准备、软件部署到环境验证的完整解决方案,帮助开发者高效构建CFD与爆炸模拟开发平台。

stem5的博客 527

连接 SQL Server 时出现“从远程服务器收到的证书由不受信任的证书颁发机构颁发”错误

勾选上【信任服务器证书】即可!心态稳住,遇到事情不要慌!

Danielhuangdingli的博客 2706

Android自动化新方案:ESP32-C3蓝牙HID模拟触控与手势操作实战(附源码)

本文详细介绍了使用ESP32-C3通过蓝牙HID协议实现Android设备自动化操作的完整方案。该硬件方案成本低廉且能完美规避系统风控,可模拟鼠标移动、点击及复杂手势操作,延迟低于50毫秒,适用于游戏连招和应用测试等场景。文章包含完整的源码实现和性能优化技巧。

kotlin6android的博客 379

麒麟v10(ky10.x86_64)升级——openssl-3.2.2、openssh-9.8p1

执行命令: make -j 4 && make install 这里要等待一段时间,等待编译完成。执行命令: ./configure --prefix=/usr/local/src/zlilb。执行命令: ./config --prefix=/usr/local/src/openssl。执行命令: make -j 4 && make test && make install。执行命令: make -j 4 && make install。执行命令: /etc/init.d/sshd restart。

X_yufei的博客 7429

解决win10应用商店无法联网(事件ID:36882及XHR failed

通过更新证书,解决WIN10应用商店不能联网,VScode [error] Error: XHR failed,事件:36882 问题。

bobodadao的专栏 2844

华为HCIE之TS部分整理

TroubleShooting 整体拓扑 1. MSTP 题目需求:site1 中,CLIENT1 属于 VLAN12,CLIENT3 属于 VLAN34;MSTP 中的 VLAN12 属于 instance1,vlan34 属于 instance2;两个 instance 的主备根桥分别在 SW1 和 SW2 上,并且要求 CLIENT1访问 R1 时经过的路径是 SW3-SW1-R1;同时要求 CLIENT3 访问 R1 时经过的路径是SW3-SW2-R1; 排错思路: ①查看SW3 SW1 SW

ledrsnet的博客 5759

win 远程桌面连接很慢的解决办法

最近在进行远程维护操作时发现 win远程桌面连接速度异常的慢, 根据网上提供的办法解决了也没什么明显的效果.

weixin_50764555的博客 4912

2026年紫光同创数字IC笔试试卷带答案

FPGA基础知识与设计要点摘要 本文围绕FPGA与数字IC设计核心概念,通过单选题、波形分析题、多选题和简答题形式,系统梳理了以下关键知识点: FPGA基础架构 查找表(LUT)是实现组合逻辑的基本单元(题1) CLB包含LUT、触发器和进位链,后者加速算术运算(题6,10) 布局布线优化是减少关键路径延迟的核心方法(题7) 时序分析要点 建立时间(时钟沿前数据需稳定)与保持时间(时钟沿后需保持)的定义(题2,简答1) 亚稳态成因及两级同步器处理跨时钟域信号的方法(多选题1,波形题5) 特殊设计技术 异步复

Open 117

硬核反坑!YOLOv5训练避坑指南:根治梯度消失、不收敛、检测漏框三大核心问题(附实战代码+调优清单)

数据是基础,超参数是关键,模型是工具,训练策略是保障。梯度消失、不收敛、检测漏框这三大问题,本质上都是“数据-模型-训练”不匹配的结果。梯度消失/爆炸:优先调整学习率策略+梯度裁剪,其次优化模型结构;训练不收敛:优先清洗数据集,其次调优超参数,最后检查配置文件;检测漏框:优先重新聚类锚框,其次增强浅层特征,最后调整推理参数。YOLOv5训练的最高境界,不是调参,而是让数据、模型、训练策略三者完美匹配。按本文的方法反坑,你的YOLOv5训练一定能一次成功!🚀。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 235

面试官:你连 HTTPS 原理没搞懂,还给我讲“中间人攻击”?

点击上方“Java基基”,选择“设为星标”做积极的人,而不是积极废人!源码精品专栏原创 | Java 2020超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析...

weixin_44421461的博客 221

CGAL 网格等高线计算

CGAL 网格等高线计算

dayuhaitang1的博客 452

面试官:你连HTTPS 原理没搞懂?还跟我谈 “中间人攻击” ?

目录 HTTPS 的实现原理 证书验证阶段 数据传输阶段 为什么数据传输是用对称加密? 为什么需要 CA 认证机构颁发证书? “中间人攻击” 的具体过程如下 浏览器是如何确保 CA 证书的合法性? 本地随机数被窃取怎么办? 用了 HTTPS 会被抓包吗? 既然 HTTPS 不能防抓包,那 HTTPS 有什么意义? 总结 随着 HTTPS 建站的成本下降,现在大部分的网站都已...

灵熙云工作室 677

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

面试官:你连HTTPS 原理没搞懂,还给我讲“中间人攻击”?

这篇干货不错,把HTTPS的原理讲清楚了,而且容易懂,建议大家好好读一下。 HTTPS 随着 HTTPS 建站的成本下降,现在大部分的网站都已经开始用上 HTTPS 协议。大家都知道 HTTPS 比 HTTP 安全,也听说过与 HTTPS 协议相关的概念有 SSL 、非对称加密、 CA证书等,但对于以下灵魂三拷问可能就答不上了: 1.为什么用了 HTTPS 就是安全的?2.HTTPS 的底层原理如...

weixin_45431247的博客 207

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

面试官系列 - https 真的安全吗,可以抓包吗,如何防止抓包吗

文章目录前言背景什么是 https什么是SSLhttps 的连接过程证书验证阶段数据传输阶段https 的加密方式是怎样的,对称加密和非对称加密,为什么要这样设计内容传输为什么要使用对称机密https 是绝对安全的吗什么是中间人攻击https 是如何防止中间人攻击的浏览器是如何确保CA证书的合法性?https 可以抓包吗扩展如何防止抓包?预置证书/公钥更新问题小结 往期文章 Android 面试必备 - http 与 https 协议 Android 面试必备 - 计算机网络基本知识(TCP,UDP,Htt

徐公,微信公众号同名 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

面试官:HTTPS 为什么是安全的?说一下他的底层实现原理?

作者 | leapmie来源 | urlify.cn/zQj6f2这篇干货不错,把HTTPS的原理讲清楚了,而且容易懂,建议大家好好读一下。#HTTPS随着 HTTPS 建站的成本下降...

磊哥聊Java 1699

SSL的中间人攻击

HTTPS 是否绝对安全?请结合 SSL 握手过程说明中间人攻击的原理,以及如何防御此类攻击。虽然 HTTPS 使用了 SSL/TLS 协议进行加密通信,但仍然。特别是在,若证书校验机制不健全,就可能发生。

陈子青的博客 647

面试官:先来聊聊HTTPS原理,再继续下一个问题

大家都知道 HTTPS 比 HTTP 安全,也听说过与 HTTPS 协议相关的概念有 SSL 、非对称加密、 CA 证书等。 但对于以下灵魂三拷问可能就答不上了: 为什么用了 HTTPS 就是安全的? HTTPS 的底层原理如何实现? 用了 HTTPS 就一定安全吗? 本文将层层深入,从原理上把 HTTPS 的安全性讲透。 HTTPS 的实现原理 大家可能都听说过 HTTPS 协议之所以是安全的是因为 HTTPS 协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。 但其实,HTTP

yuandengta的博客 435

面试官:为什么HTTPS是安全的

点击上方“java大数据修炼之道”,选择“设为星标”优质文章和精品资源, 第一时间送达关注公众号后台回复资源获取实战教学资料+视频哈喽,各位新来的小伙伴们,大家好!由于公众号做了改版,为...

hello world! 307

面试官问我:用了HTTPS就安全了吗?会被抓包吗?我竟然回答不上来...

来自:leapMie |责编:乐乐链接:cnblogs.com/leap/p/11953836.html 正文 HTTPS随着 HTTPS 建站的成本下降,现在大部分...

码农code之路 5231

HTTPS 原理分析

看完美团、字节、腾讯这三家的一二三面试问题,是不是感觉问的特别多,可能咱们真的又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。开篇有提及我可是足足背下了Java互联网工程师面试1000题,多少还是有点用的呢,换汤不换药,不管面试官怎么问你,抓住本质即可!能读到此处的都是真爱Java互联网工程师面试1000题。

H1767410的博客 1053

面试官系列---https-真的安全吗,可以抓包吗,如何防止抓包吗(1)

中间人攻击是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。HTTPS 使用了 SSL 加密协议,是一种非常安全的机制,目前并没有方法直接对这个协议进行攻击,一般都是在建立 SSL 连接时,拦截客户端的请求,利用中间人获取到 CA证书、非对称加密的公钥、对称加密的密钥;有了这些条件,就可以对请求和响应进行拦截和篡改。[图片上传中…(image-544c3e-1598424206914-0)]

2401_84103100的博客 1126

面试官:为什么HTTPS是安全的?

你知道的越多,不知道的就越多,业余的像一棵小草!你来,我们一起精进!你不来,我和你的竞争对手一起精进!编辑:业余草r6a.cn/efZ2推荐:https://www.xttblog.co...

xmt1139057136的专栏 236
上一篇: 微服务架构,如何做分布式,通用缓存机制?
下一篇: Nginx 之父被拘留,时隔15年后,前老板提起了版权侵权诉讼!吃瓜群众表示
JavaAOE
博客等级 码龄7年 27粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值