微信数据传输
测试 1
我尽量把联网的程序关掉,只打开微信
用wireshark监听自己主机的ip
计算机终端微信发送 123456 给随便网友
wireshark瞬间抓取
为了确定这是微信发送的数据,查了一下这个ip
这样应该就可以确定了吧
我把抓取的几条流都看过了,并不能看到有 123456 这样的字符串,并且明显发送的所有字符串都是经过加密的,不可辨识。
测试 2
手机微信与计算机在同一局域网下,手机微信通过 文件传输助手 向计算机端微信发送 123456
从wireshark上看,也是通过广东的服务器发送数据到计算机客户端。表明这一定是个 CS 架构,不管两个通信端多近。没测试qq的在线传输,理论上应该是p2p传的。
可以暂时狭隘地得到以下信息
- 使用的协议为TCP协议,与网站 HTTPS 加密传输协议不同,加密技术不在一个层面上。关于 HTTPS 参考 HTTP 和 HTTPS 直观上看哪里不一样了
关于微信加密:其基于RSA加密、随机AES私钥的加密方式设计是通信保密的关键核心,也是目前绝大部分移动端社交软件的主流加密方式。详情见文章 微信加密通信原理分析
-
我现在微信客户端使用的端口是 54053 ,没测试其他客户端所以不代表也没法说这个端口是微信客户端的统一使用端口,服务器端使用的是网页浏览的默认端口 80
-
关于微信的监听审查技术。发送端客户端加密,中间链路传输的是密文,服务器端接收数据并解密成明文审查,服务器端加密将数据送出,中间链路传输的是密文,接收端客户端解密看到消息。或者是中间服务器先将数据缓存,有空的时候再进行解密审查。我猜的。
关于怎么加密解密的,戳 RSA与SSL浅析 RSA 部分