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

目录

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.


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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 是的,https 的证书验证机制真的能防止中间人攻击。当客户端(例如浏览器)连接服务器时,服务器向客户端发送其 SSL/TLS 证书。客户端收到证书后,对其进行验证,以确定证书是否有效并由可信的证书颁发机构颁发。如果证书无效,客户端向用户显示警告信息。如果证书有效,客户端生成一个随机的密钥(称为“话密钥”)并使用证书中的公钥加密该密钥,然后将加密后的密钥发送给服务器。服务器使用自己的私钥解密密钥,并使用该密钥与客户端协商进行加密通信。这样,只有服务器和客户端才能解密通信内容,因此中间人是无法窃取通信内容的。 ### 回答2: HTTPS的证书验证机制可以有效地防止中间人攻击中间人攻击是一种常见的网络安全威胁,攻击者通过伪造服务器或劫持通信流量来获得用户的敏感信息。HTTPS通过以下方式来确保通信的安全性: 首先,HTTPS使用了SSL/TLS协议来对通信进行加密,使得数据传输过程中的通信内容无法被窃听和篡改。SSL/TLS协议使用了公钥加密和对称密钥加密相结合的方式,保证了通信的加密性和完整性。 其次,HTTPS的证书验证机制可以确保用户正与所期望的服务器建立连接。服务器在建立HTTPS连接时将自己的数字证书发送给客户端,证书中包含了服务器的公钥以及其他信息。客户端对证书进行验证,以确保其合法性和有效性。 证书验证主要包含以下几个步骤:首先,客户端检查证书的颁发机构是否受信任,以及证书的有效期是否合法。其次,客户端验证证书中服务器的域名是否与用户访问的域名相匹配,防止钓鱼网站的攻击。 如果证书验证通过,客户端将使用服务器的公钥来进行密钥协商,并生成一个对称密钥。此后,客户端和服务器就可以使用对称密钥来加密和解密通信内容,防止中间人对通信流量进行劫持和篡改。 综上所述,HTTPS的证书验证机制可以有效地防止中间人攻击。虽然完全消除中间人攻击是不太可能的,但该验证机制可以大大降低中间人攻击的成功概率,提高数据传输的安全性。 ### 回答3: https的证书验证机制可以一定程度上防止中间人攻击。 首先,https采用的是公钥加密传输,通过证书验证机制来确保通信的安全性。在建立https连接时,服务器向客户端发送自己的数字证书,证书中包含了服务器的公钥。客户端根据自己预装的根证书库中的可靠证书颁发机构(CA)的公钥来校验服务器证书的真实性。如果证书有效并且能和可信的CA相关联,那么客户端就继续和服务器建立安全连接。这个过程可以防止中间人篡改或伪造。 其次,如果中间人试图劫持通信或伪造服务器时,https证书验证机制还有进一步的防护措施。客户端验证服务器证书中的域名是否与客户端请求的域名一致,如果不一致则发出警告提示用户。此外,如果服务器证书中的域名或者其他信息被篡改,那么客户端在校验证书有效性时出现错误,通信无法建立。 然而,尽管https的证书验证机制极大地加强了通信的安全性,但并不能完全防止中间人攻击。一些高级的中间人攻击技术,如SSL剥离攻击等,仍然可以绕过证书验证机制。因此,为了进一步提高安全性,用户和网站管理员还需要采取其他安全措施,如使用强密码、更新服务器和客户端软件等。 总的来说,https的证书验证机制是一种有效的安全防护措施,但并不是绝对的。网络安全的保障需要综合多种技术和措施的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Master_hl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值