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

Posted 林恒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录--面试官:“你知道什么情况下 HTTPS 不安全么”相关的知识,希望对你有一定的参考价值。

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

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

我:“那肯定知道啊。”

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

我:“这....”

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


什麽是中间人攻击?

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

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

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

  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 原本的流程,但是当我们有了 中间人服务器之后,整个流程就变成了下面这个样子。

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

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

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

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

如何预防?

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

本文转载于:

https://juejin.cn/post/7238619890993643575

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

 

面试记录--华数传媒

2020.5.29 华数传媒 Java实习生
前两天安恒信息进行了二面,我以为二面无非就是问一些偏生活学习类的问题,所以也就没咋准备。面试时面试官主要把问题集中在了项目经验方面,这一块我确实比较薄弱,所以就很诚实的讲说我之前的项目全部都没有用过框架,听完这个,面试官说道你用的技术都太老了,在现在的公司协作开发中根本不可能,所以,二面GG。
面试华数传媒的过程感觉还挺好,那个面试官挺亲切的,问的问题也大部分是关于自己学习历程的一些思考。
Q1:框架部分说下你为什么不太想用
回答是我觉得基础的知识掌握牢固后学习框架很快,过早的用框架而忽视了基础部分会让自己对整个项目没有掌控感。
Q2:画一个你开发过的项目的架构草图
我画了一个最基础的
剩下的小问题记不清楚了,都是些零零散散的小知识点,不难。
 
六月份的新一周我没有收到面试邀请,心有点乱。
回顾下自己上个月的面试经历,我最大的感受是好的机会其实上帝一直都有送到我的手边,可是由于我自己基础知识太过薄弱,之前积累的不够,导致每次都没有抓住。上周我自己处于一种很懒散的状态,啥都不想干,只是漫无目的的刷着手机,跟个废人似的。
不能再给自己找借口了,也不能给自己留退路。这样三天打鱼两天晒网的,只会浪费自己的时间。我觉得自己并不是一个愚笨的人,只是太懒了。六月份,除了每天投简历外,我在这个月必须要完成三件事:
1.至少搭建一个spring+springMVC+mybatis整合开发的demo
2.java基础部分补完,jvm部分过至少一半
3.每天都要刷编程题,至少一道
另外还有一个生活方面的目标:减肥15斤+
厚积才能薄发,加油吧!

以上是关于记录--面试官:“你知道什么情况下 HTTPS 不安全么”的主要内容,如果未能解决你的问题,请参考以下文章

面试记录--华数传媒

面试记录--华数传媒

平安银行信用卡中心面试题记录

裸辞记录之面试篇准备好了就出发,面试官不会吃人(内附详细常用面试回复和注意事项)

裸辞记录之面试篇准备好了就出发,面试官不会吃人(内附详细常用面试回复和注意事项)

面试官之问:知道你的接口“QPS”是多少吗? 怎么办