微信聊天内容可以被监听吗

点击关注公众号:互联网架构师,后台回复 2T获取2TB学习资源!

上一篇:Alibaba开源内网高并发编程手册.pdf

几个粉丝反馈, 自己的微信聊天记录就被公司截取过,

“在那个群,和谁聊了什么,看的一清二楚,还可以搜索”,并且使用的是自己的设备,着实让我觉得不可思议。先不论技术,逻辑上说,如果仅因为使用了公司的wifi就可以被监控微信聊天内容,推论就是:

你在微信中聊的任何内容,都可能被你接入网络的管理人员监听获取。这个管理人员完全可以是咖啡店老板,酒店老板,你的老公老婆……所有提供你网络接入的地方的主人。抓紧回忆下你在这些地方都聊过啥……。

现实生活不是黑客帝国,下面我们分析下一般软件安全机制,和要取得聊天内容的可能途径,以便知己知彼。

一、聊天软件应该保证的安全

依旧是那个问题,当一款聊天通信软件宣传他是“安全”的,这里的安全的含义是什么?如果你作为产品经理,提几个基本的安全需求,可能应该包括:

1. 账号安全,不能被绕过,爆破等。就是保证用户的账号安全方面。

2. 传输安全,传输的内容,应该不能被窃听,不能被篡改。

3. 其他 :-)。

账号方面,账号/密码丢了那啥都白扯。这里主要说传输安全方面。实现传输安全的需求,开发人员可能会考虑采用非对称加密交换随机秘钥,使用随机秘钥加密内容通信的方案来实现。秘钥协商和通信加密的过程大概如下。

a2b2b6854c1b4fb55cfe1bb961b8fb39.png

客户端就是我们的聊天软件,中间的部分就是网络通信。首先,说几个结论,这是经过数学证明的,不需要怀疑。

1. 非对称算法中的一对秘钥对即上面的公钥、私钥,他们互不相同,不能根据一个计算出另外一个。

2.非对称的秘钥对,被一个秘钥加密的内容,只能使用配对的另一个秘钥解密,否则不能解密。

3.对称加密算法,只有一个秘钥,既用来加密,也用来解密。不知道秘钥则无法解密。 

开始时客户端软件用它已经预先打包在程序包内的公钥加密一个随机的对称秘钥发送给服务器端,服务器收到后,解密保存该对称秘钥。后续发送聊天内容时,客户端使用生成的随机对称秘钥,对聊天内容进行加密,服务器使用之前收到的对称秘钥进行解密。服务器转给你的聊天内容也同样用对称秘钥加密,客户端使用对称秘钥解密。

通过以上就可以保证,通信过程中的信息安全。

1. 假如客户端发送对称秘钥的信息被第三方监听,第三方因为没有私钥,无法解密。

2.假如客户端和服务器间的聊天信息被监听,第三方没有对称秘钥,无法解密。

3.假如有一个中间人冒充服务器,因为没有微信服务器端保存的私钥,所以无法解密取得你用公钥加密的随机对称秘钥,没有随机对称秘钥就无法解密客户端发送的聊天内容,也无法使用对称秘钥加密信息发送给客户端,所以无法冒充他人给你发送聊天信息。

上面只是一个基础的加密逻辑,相信大厂微信肯定做的有过之而无不及,因此:微信的聊天内容是无法被第三方通过网络监听取得的。

但聊天软件毕竟不是安全软件,通常仅保证通信安全,除了网络监听,拦截外,还是有很多其他手段可能获取你的聊天记录的。

二、上网行为管理审计原理

  1e0ca443614c864f667d5485068d875e.png      46b7783f164db4196f2b60b2185328ee.png

百度排名No.1的上网行为管理系统大名鼎鼎的“深信服”和他的竞品。从介绍来看,功能是非常强大的。邮件,聊天内容都能取得,程序是否可以运行也能控制,可以录屏等。这类系统都是需要在被控电脑上安装客户端软件的。可能是明处,可能是暗处。

0e00e405438ce67aeeb68e18cf479d81.png

 ddf1db15df3ed50e74f8e20af5fd442c.png

上面的截图也是可以佐证,客户端的存在的, 深信服的可能是通过浏览器页面直接引导安装的。 

安装监控程序,就相当于安装木马。微软windows系统是一个比较开放的系统,各进程间是没有隔离的,也不需要进行权限申请,一个运行的程序完全可以通过API对其他的进程窗体内容,内存内容进行抓取,拦截API调用。这类监控程序,本质就是木马,你在安装了监控程序的计算机上所进行的任何操作,都可以被木马服务器远程收集。

应对这类监控,如果公司是明确要求,必须安装的,那你只能要么忍要么滚-_-||。如果公司是隐蔽进行的,你可以使用自己的设备,或者把公司的电脑彻底格式化,密码不要轻易泄漏,不要安装运行来历不明的程序。此外,监控程序也是运行于系统之上的,需要针对操作系统开发, 对一些小众系统可能支持不完善,或者受限于系统权限,不能实现监控功能,比如MacOS,Linux。这就是为啥MacOS的病毒,木马比较少 :-)。

7d6feb1d9ff42859046df61357ac4c50.png

三、安全漏洞与系统补丁

“用自己的电脑只连wifi就被截屏那100%用了黑客手段了”。

这是一个同学的评论,我是认同这一点的,这里展开做一下科普。一般情况下用自己的电脑连接一个第三方wifi,就被第三方监控了聊天内容甚至截屏,这是不太可能发生的。

但世事无绝对,理论上是有可能的,比如你的系统存在漏洞,第三方能够通过你系统开放的网络服务,取得你系统的控制权限,然后就可以开启后门,安装监控程序(木马),之后可以通过木马程序,收集你电脑各种信息。

不必担心,这真的只是理论上的可能,这要求有这样的重大漏洞存在,且尚未被广泛了解,没有被操作系统发布者和安全厂家修复,现实中很罕见。利用公布的已知漏洞并不难,但自己发现一个别人都不知道的,影响范围广泛的重大漏洞,这对黑客的要求是非常高的,也是一个顶级成就。

应对就是及时更新系统,及时更新补丁,当然也不要自己引狼入室,自己安装来源不明的程序(钓鱼文件),所以使用盗版软件,操作系统真的有风险!很多都被修改过,很可能有植入的木马 :-)。

a337073610957c68b248c0e2ac650c72.png

四、私钥安全

如果聊天软件客户端保存在服务器的私钥被第三方获得,那第三方就完全可以仅通过网络发起中间人攻击了, 不需要在客户端安装任何程序。也是理论上存在可能。

 d531f43aac308673948d8568ec32afca.png

如果发生了这种情况,那肯定要启用新的非对称秘钥对了,客户端可能要更新后生效。所以尽量保持程序更新。o(* ̄︶ ̄*)o

总结:

1.   微信的聊天内容通过网络通信层次通常情况是无法被取得内容的。

2.  如果有迹象表明你具体的聊天内容,https浏览内容,被监听,99%的情况下,说明你的电脑被植入了监控软件(木马),尽快自查。

3.   及时进行系统安全更新,不要随意运行别人给你的软件,比如关系不好的老婆/老公,多数木马是通过这个途径引狼入室的。

来源:cnblogs.com/uncleguo/p/16203462.html

-End-

最后,关注公众号互联网架构师,在后台回复:2T,可以获取我整理的 Java 系列面试题和答案,非常齐全。

5d24323f9ff921d0740e2b313638efca.png

正文结束

推荐阅读 ↓↓↓

1.心态崩了!税前2万4,到手1万4,年终奖扣税方式1月1日起施行~

2.深圳一普通中学老师工资单曝光,秒杀程序员,网友:敢问是哪个学校毕业的?

3.从零开始搭建创业公司后台技术栈

4.程序员一般可以从什么平台接私活?

5.清华大学:2021 元宇宙研究报告!

6.为什么国内 996 干不过国外的 955呢?

7.这封“领导痛批95后下属”的邮件,句句扎心!

8.15张图看懂瞎忙和高效的区别!

d2343d8c0a4bbeb1f5e81248b4f9253c.gif

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 Vue 中模拟微信聊天内容置底可以使用以下方法: 1. 使用 `ref` 绑定聊天内容区域的元素,并在 `mounted` 钩子函数中获取该元素的高度。 ```vue <template> <div class="chat-wrapper" ref="chatWrapper"> <!-- 聊天内容区域 --> </div> </template> <script> export default { mounted() { this.chatWrapperHeight = this.$refs.chatWrapper.clientHeight; } } </script> <style> .chat-wrapper { height: 300px; /* 聊天内容区域的高度 */ overflow-y: scroll; } </style> ``` 2. 监听聊天内容区域的高度变化,如果高度变大了,说明有新消息到来,将聊天内容区域的滚动条置于底部。 ```vue <template> <div class="chat-wrapper" ref="chatWrapper" @DOMNodeInserted="scrollToBottom"> <!-- 聊天内容区域 --> </div> </template> <script> export default { mounted() { this.chatWrapperHeight = this.$refs.chatWrapper.clientHeight; }, methods: { scrollToBottom() { const chatWrapper = this.$refs.chatWrapper; const isScrolledToBottom = chatWrapper.scrollHeight - chatWrapper.clientHeight <= chatWrapper.scrollTop + 1; if (isScrolledToBottom) { chatWrapper.scrollTop = chatWrapper.scrollHeight - chatWrapper.clientHeight; } } } } </script> <style> .chat-wrapper { height: 300px; /* 聊天内容区域的高度 */ overflow-y: scroll; } </style> ``` 这段代码使用了 `DOMNodeInserted` 事件来监听聊天内容区域的高度变化,一旦聊天内容区域的高度变大了,就将滚动条滚动到底部,使用户可以看到最新的消息。其中,`isScrolledToBottom` 变量用于判断滚动条是否已经滚动到底部,如果已经滚动到底部,则不需要再次滚动,避免出现滚动条抖动的情况。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值