一个坏消息(网络安全方面)

来点恶劣的消息:
西南地区的中国电信,已经开始进行“SSL Bump”(通俗点:SSL嗅探)。
这个嗅探是全程“无感知”的(从证书上什么问题也看不出来,只能看到目标网站的SSL证书)。
用户唯一能察觉到的机会,就是第一次建立HTTPS连接时会提示“连接失败”(注意:并不是“证书错误”,而是“连接被重置”或“载入安全连接失败,收到的数据不可信”)。
这套技术很快也会应用到GFW上,到那天的话,就意味着HTTPS在中国彻底失效(GFW可以任意窃听SSL加密连接)。

补充(修改过的):
9.13的消息,如果打开了TLS 1.3且TLS 1.3打开了SNI加密的情况下,就做不到无感知嗅探了(会出现“证书错误”)

5 Likes

到时候或许会催生出对网页进行第二次加密的情况,
比如动态生成加密算法,并且根据算法生成相应的解密的js和数据/页面,
最后浏览器执行js对数据/页面进行解密,然后展示出来。

当然这只是我个人的简单猜想,漏洞百出,应该会有更完美的解决方案吧。

1 Like

这个的话……其实没啥卵用(知乎上有个类似的问题:在不使用HTTPS的情况下如何加密传输内容)

另外我统一回复一下这个原理,这个玩意其实是个SSL透明代理都能实现的功能。目前从实现方法和实现结果来猜测的话,他们最可能用的就是Squid的SSL Bump。
Squid有个功能叫做SSL Bump,可以实现“对SSL加密数据解密,然后重新加密后给客户端”。
至于Squid是怎么做到不会触发客户端报警的呢,答案就是:Squid把目标服务器的证书抓了下来,然后把原始证书传递给了客户端。
但是,如果是第一次建立HTTPS连接的话,此时Squid还没有抓取目标网站的证书,就会出现“载入安全连接失败”错误。

那么请问有什么可行的对策吗?

想不出来,而且根据昨晚我对象的说法:移动似乎也部署了这套系统。

拿用户密码进行对称加密呢

不好使,你怎么确保传输到客户端的密钥不会被第三方得知呢?
以及:9.13的消息,如果打开了TLS 1.3且TLS 1.3打开了SNI加密的情况下,就做不到无感知嗅探了(会出现“证书错误”)

Squid 一类做 SSL Bump 确实是用受信 CA 的。这种东西用 HSTS preload + cert pinning(国产浏览器包含这种 preload 甚至 pre-pin 列表吗?)的话应该不会有事,日掉各种不靠谱 CA 的话应该更没事。SNI 加密可以打败这种处理也是可以理解的,因为 SNI 加密时的假明文 SNI 指向的域名不一样。

1 Like