看到这篇文章: http://blog.csdn.net/wueryan/article/details/50533974
如果这个中间人攻击方法可行,初步看上去微信客户端是没有校验服务器端的证书的?现在还存在这个问题吗?
1
whileFalse 2018-01-23 14:30:18 +08:00
被攻击的设备肯定是安了自签名根证书。楼主不必担心。
|
2
heiher OP @whileFalse 你确定微信客户端一直会做 CA 校验吗?
|
3
whileFalse 2018-01-23 17:26:59 +08:00
@heiher 基本的 https 协议就会校验服务端证书是否被系统信任啊。
只是客户端还可以指定不使用设备的根证书信任,而是使用客户端内置的服务端证书指纹。 看起来微信没有使用内置指纹,而是简单的使用系统提供的证书。而系统被植入了自签名根证书,所以可以中间人攻击,就这么简单啊。 |
4
heiher OP 微信好像不是用的标准的 HTTPS 吧,听说好像是 HTTP + MMTLS (这货是 TLS 的变种?)。
|
5
heiher OP 我自己也抓包看了一下,奇怪的是在一个 TCP 流中,即有密文(或压缩吧)数据,也有明文数据。这就很不解了。。。
|
6
whileFalse 2018-01-23 17:34:48 +08:00
@heiher http 头部一点点数据是明文没错。
|
7
est 2018-01-23 17:39:01 +08:00
来来来,LZ 告诉大家一下客户端如何做服务器端整数校验?
|
8
heiher OP @whileFalse 不像是头部,就上面链接中提到的 uin 参数都可以看到。
|
9
heiher OP @est 方法 @whileFalse 已经解释了吧
|
11
heiher OP @est 对域名签发的证书有期限,我可以理解为考虑到域名所有权也大概有个限期吧。像这种如果是私有证书,还有必要设置时间期限吗?
|
12
est 2018-01-23 17:49:26 +08:00
@heiher 没那么简单的。比如遇到私钥泄漏这种 sb 运营事故,需要大规模替换服务器端证书。这个时候你写死指纹,所有客户端都会挂掉。
|
15
heiher OP @est 要不你给我们科普一下吧,我也想知道上面说的私钥泄漏运营事故,如果客户端一直不更新系统 CA 集,怎么吊销泄漏证书的?
|
16
tSQghkfhTtQt9mtd 2018-01-23 17:58:05 +08:00 via Android
@heiher OSCP
|
17
tSQghkfhTtQt9mtd 2018-01-23 17:59:01 +08:00 via Android
@liwanglin12 typo 了,OCSP😂
|
19
heiher OP @liwanglin12 明白了,实际上还是需要在线获取实时吊销数据的吧。
|
20
heiher OP @est 嘿嘿,有点跑远了,不过确实没有仔细研究过这些细节。那么微信的 HTTP + MMTLS 方案难道只是部分加密敏感数据?
|
21
naomhan 2018-01-23 18:04:53 +08:00
现在微信爬虫很多都是这样的
|
22
bkmi 2018-01-23 18:08:31 +08:00 via Android
听风就是雨,客户端校验的事,总是有办法破解,做的成本高,收益小,还不如不做
|