记录--面试官:“你知道什么情况下 HTTPS 不安全么”

news/2024/7/12 3:48:14 标签: https, 安全, 网络协议, http, 网络

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助

https>https://img2020.cnblogs.com/blog/2149129/202107/2149129-20210719135854680-672185839.jpg">
https>https://img-blog.csdnimg.cn/img_convert/2c522bfe7c51cdcffc8c53724840c2d7.jpeg" width="135" height="252" style="outline: none;" />

面试官:“HTTPS的加密过程你知道么?”

我:“那肯定知道啊。”

面试官:“那你知道什么情况下 HTTPS 不安全么”

我:“这....”

越面觉得自己越菜,继续努力学习!!!


什麽是中间人攻击?

中间人攻击(MITM)在密码学和计算机安全领域中是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制[1]。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。在许多情况下这是很简单的(例如,在一个未加密的Wi-Fi 无线接入点的接受范围内的中间人攻击者,可以将自己作为一个中间人插入这个网络)。

一个中间人攻击能成功的前提条件是攻击者能将自己伪装成每一个参与会话的终端,并且不被其他终端识破。中间人攻击是一个(缺乏)相互认证的攻击。大多数的加密协议都专门加入了一些特殊的认证方法以阻止中间人攻击。例如,SSL协议可以验证参与通讯的一方或双方使用的证书是否是由权威的受信任的数字证书认证机构颁发,并且能执行双向身份认证。

以上定义来自维基百科,我们来举一个通俗的例子来理解中间人攻击:

https>https://img-blog.csdnimg.cn/img_convert/ef0a7dff098d663e7b13d55b851bb9ca.png" alt="" style="outline: none;" />

  1. A发送给B一条消息,却被C截获:

A: “嗨,B,我是A。给我你的公钥”

  1. C将这条截获的消息转送给B;此时B并无法分辨这条消息是否从真的A那里发来的:

C: “嗨,B,我是A。给我你的公钥”

  1. B回应A的消息,并附上了他的公钥:

B -> B 的公钥 -> C

  1. C用自己的密钥替换了消息中B的密钥,并将消息转发给A,声称这是B的公钥:

C -> C 的公钥 -> A

  1. A 用它以为是 B的公钥,加密了以为只有 B 能看到的消息

A -> xxx -> C

  1. C 用 B 的密钥进行修改

C -> zzz -> B

这就是整个中间人攻击的流程。

中间人攻击怎么作用到 HTTPS 中?

首先让我来回顾一下 HTTPS 的整个流程:

回顾 HTTPS 过程

https>https://img-blog.csdnimg.cn/img_convert/a052d4cbbb74c08227bd2ff6cf26e9f8.png" alt="" style="outline: none;" />

这是 HTTPS 原本的流程,但是当我们有了 中间人服务器之后,整个流程就变成了下面这个样子。

这个流程建议动手画个图,便于理解

  1. 客户端向服务器发送 HTTPS 建立连接请求,被中间人服务器截获。
  2. 中间人服务器向服务器发送 HTTPS 建立连接请求
  3. 服务器向客户端发送公钥证书,被中间人服务器截获
  4. 中间人服务器验证证书的合法性,从证书拿到公钥
  5. 中间人服务器向客户端发送自己的公钥证书

注意!在这个时候 HTTPS 就可能出现问题了。客户端会询问你:“此网站的证书存在问题,你确定要信任这个证书么。”所以从这个角度来说,其实 HTTPS 的整个流程还是没有什么问题,主要问题还是客户端不够安全

  1. 客户端验证证书的合法性,从证书拿到公钥
  2. 客户端生成一个随机数,用公钥加密,发送给服务器,中间人服务器截获
  3. 中间人服务器用私钥加密后,得到随机数,然后用随机数根据算法,生成堆成加密密钥,客户端和中间人服务器根据对称加密密钥进行加密。
  4. 中间人服务器用服务端给的证书公钥加密,在发送给服务器时
  5. 服务器得到信息,进行解密,然后用随机数根据算法,生成对称加密算法

如何预防?

刚才我们说到这里的问题主要在于客户端选择信任了,所以主要是使用者要放亮眼睛,保持警惕

本文转载于:

https>https://juejin.cn/post/7238619890993643575

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

 https>https://img2020.cnblogs.com/blog/2149129/202107/2149129-20210719144042684-15122820.jpg">

https>https://img-blog.csdnimg.cn/img_convert/1a4f296401099bb2a6b35747452eadb6.jpeg" width="212" height="209" style="outline: none;" />


http://www.niftyadmin.cn/n/386530.html

相关文章

FPGA PAL视频BT656解码Video Processing Subsystem去隔行 TW2867采集 提供工程源码和技术支持

目录 1、前言2、我这里已有的PAL视频解码方案3、模拟视频概述4、模拟视频颜色空间5、逐行与隔行6、BT656数据与解码BT656数据格式BT656数据解码 7、TW2867芯片解读与配置TW2867芯片解读TW2867芯片配置TW2867时序分析 8、设计思路与框架9、vivado工程详解Block Design设计SDK设计…

c++实现产品功能(简单基础功能)

通过c++实现公司产品功能,要求能在VS和CB上完美运行,实现的功能基础简单 #include <iostream> #include <string>// 摄像机类 class Camera { public:// 成员函数:拍摄照片void takePhoto() {std::cout << "Take a photo." << std::endl;…

完成MQTT客户端,前几年的欠债还上了

最近有点儿忙&#xff0c;努力方向很重要&#xff0c;最近VFP硬件开发课已完结&#xff0c;顺便补一下前面欠的MQTT完整客户端&#xff0c;支持QOS0,OQS1,LAST WILLMSG. QOS2的支持看有需求再说了。 猫猫的心里话 加菲猫的VFP|狐友会社群接收投稿啦 加菲猫的VFP&#xff0c;用…

【赫夫曼树数据结构及其应用】

本文主要介绍Java中赫夫曼树数据结构的基本原理、实现方式以及使用场景。赫夫曼树&#xff08;Huffman Tree&#xff09;是一种带权路径最短的二叉树&#xff0c;广泛应用于数据压缩和编码等领域。 一、赫夫曼树的基本概念 赫夫曼树是一种特殊的二叉树&#xff0c;它具有以下…

windows和linux根据文件的md5值判断两个文件是否一样

MD5&#xff08;Message-Digest Algorithm 5&#xff09; 是一种常见的哈希函数&#xff0c;它将任意长度的消息作为输入&#xff0c;并输出一个固定长度的消息摘要&#xff08;通常为128位&#xff09;&#xff0c;也就是所谓的MD5值。MD5值通常用于验证数据的完整性&#xff…

C++primerplus习题+答案

1.下面建立友元的尝试有什么错误&#xff1f; a. class snap { friend clasp; …… }; class clasp{……}; 声明一个友元类需要使用以下格式 friend class clasp; 题目内没有使用关键字class&#xff0c;从而造成编译错误。 b. class cuff { public: void snip(muf…

String AOP的使用

面向切面编程&#xff0c;面向特定方法编程&#xff0c;以方法为对象&#xff0c;在不修改原方法的基础上&#xff0c;对方法进行操作扩展等&#xff0c;底层是通过动态代理实现的 使用开发步骤&#xff1a; 1、创建一个类&#xff0c;加上Aspect声明为一个AOP切面类&#xff…

一文搞懂Flutter的手势事件——事件分发与冲突处理详解

本文字数&#xff1a;43617字 预计阅读时间&#xff1a;110分钟 前言 之前有两篇文章都围绕着runApp()进行展开&#xff0c;讲解了布局绘制的详细过程。 https://www.jianshu.com/p/2ef749ff4d40/https://www.jianshu.com/p/f37f8da235ec 那么接下来我们想详细的说一说Flutter是…