信任根证书你的微信聊天内容就能一览无余?

论科技 2023-11-15 03:12:13

有人说深信服能监控你的微信聊天内容,原理就是只要你的电脑信任了他们公司的数字证书,他就可以通过路由器网关监听到你的微信聊天内容,真的如此简单吗?

他们公司的产品我没用过,能不能窃听我从技术原理方面去分析。微信的聊天信息具体是怎么加密的我不清楚,我们可以假设微信客户端与服务器之间通信采用了非对称加密算法。

首先,要搞清楚两个概念,认证和加密。

认证是确保用户的真实性,是通过CA证书确认的,这就像现实中公安给你发身份证一样。在互联网中,这个公安就是颁发CA证书的,你申请的证书就包含有你的信息表明你是真实的某个人或某个组织,证书还包括一对密钥。

加密就是对明文按某种方法加密成密文,只有真正的接受方才能解密。

非对称加密就是其中一种实现方法。非对称加密有一对密钥,钥匙是成对出现的,任何人都可以根据某种公开的算法生成一对密钥。

这一对密钥可以互为加解密。用其中一把密钥加密,另一把钥匙就可以解密。同样,用一把钥匙能解密,就会有另一把钥匙进行了加密。

一把密钥是公开的,不需要保密,叫公钥。另一把钥匙是不公开的叫做私钥,只有拥有者本人持有,需要安全保管,谨防泄露。

A向B发送加密信息的过程是这样的:

1、A获取B公开的公钥

2、A把信息用B的公钥进行加密,然后发送给B

3、B收到信息后用B的私钥进行解密

如果A要表明自己是真实的A给B发的信息,A发送文件时可以进行签名:

1、A用自己的私钥对发送的文件进行加密,这就是对文件的签名

2、B收到信息后,用A给的公钥解密,如果是解密成功,那就证明A用了私钥加密的,私钥只有他自己有,所以验证了他的签名,确实是他本人签发的,而不是冒充的A

原理就是这么简单,但是为什么会有说信任根证书微信聊天内容就能一览无余这个说法呢?有两种可能,一种是你用了假的公钥加密明文了。你误以为B的公钥是微信服务器的公钥。另一种可能就是B用户的私钥泄露了。私钥泄露这不在讨论范围,因为私钥压根就在AB各自电脑的本地中,没有进行网络传输,我们讨论默认是在本地环境安全的情况下进行。

微信用户A要跟微信用户B加密通信,那双方都要获取对方的公钥。实际通信情况,首先是微信用户A的微信客户端与微信的服务器通讯,然后微信服务器再把信息转发给微信用户B。可以简化为微信A客户端与微信服务器通信。如果微信客户端一开始就在客户端内植入真实微信的公钥,那将不存在所谓的中间人攻击。

中间人攻击指的是,由于网络通信是不安全的,中间人在微信客户端与微信服务端传输彼此的公钥时进行拦截。中间人攻击者劫持你们之间的通信流量,他自己分别构造一个假的微信客户端和一个假的微信服务器端。

如之前提到的发CA证书的机构。他可以给自己发一个微信服务器的证书,声称自己就是真的微信服务器。如果微信客户端没有去验证证书的话,微信的客户端就会从中间人那获取到假微信的公钥,客户端用假的微信公钥对发送的内容进行加密。然后发给假微信服务器。攻击者用假微信的私钥,进行聊天内容的解密。之后再用劫持到真公钥对聊天内容加密,再传给真实的微信服务器,这样客户端跟服务器都误以为都是在跟真实有对方通信,其实是经过了中间人篡改后的数据。

真实情况微信应该不会这么傻吧,微信客户端不是浏览器,微信客户端完全可以只信任自己或某个机构颁发的证书。

所以,网友说的根证书攻击前提是微信客户端不验证微信服务端的证书,互联网大厂国民级的应用应该不会这么做吧?

其次,微信客户端、服务器端本地都可生成一对密钥,用私钥加密数据保证数据的完整性,避免第三方篡改。

所以结论还是一样,加密后的微信聊天记录,想要在路由器端窃听解密聊天记录,只要微信开发人员不是白痴的前提下,难于登天。

还有说什么DNS劫持之类的,还是那句话,只要是微信客户端是安全的,它不是白痴到不给信息加密就发出去,就算被劫持了也只是登录不上去,不会有密码泄露的风险。

0 阅读:1

论科技

简介:💬论科技🚀็็็็็็็็็็็็🚶走进科技世界🌏探索科技奥秘