ACME http-01 验证的缺陷: ISP 可以合法地签发伪造的 SSL 证书

194 天前
 baobao1270

https://blog.gslin.org/archives/2023/10/21/11401/isp-%e5%81%bd%e9%80%a0%e5%87%ba%e5%90%88%e6%b3%95%e7%9a%84-ssl-certificate%ef%bc%8c%e5%b0%8d%e6%94%be%e5%9c%a8%e5%be%b7%e5%9c%8b%e7%9a%84-xmpp-ru-%e9%80%b2%e8%a1%8c-mitm-%e7%9b%a3%e8%81%bd/

很多人认为 ISP 并不能监听 HTTPS ,讲了很多 TLS 的原理,却没想到其实只需要简单的修改 IP 路由就能获取合法的 SSL 证书,而恰恰是 http-01 这一验证方式给了他们便利。

3477 次点击
所在节点    信息安全
42 条回复
gps949
194 天前
所以需要证书透明度
tyzandhr
194 天前
这其实就是 shadow tls 的原理
bankroft
194 天前
还是信任问题,dns challenge 方式 nameserver 服务商也是可以获取证书的,只不过 le 公开发行的证书,而且这么干是不道德的并且可能违法
baobao1270
194 天前
@gps949 CT 的话还是需要使用者主动核查……
@tyzandhr 这个和 shadow tls 无关…… shadowtls 只是用了别人的 TLS Handshake ,而我说的是发生在证书获取层面的东西
gps949
194 天前
这其实大概也就是为啥 EV 、OV 证书都收费甚至还很贵的原因了吧,一般 ACME 走互联网发 SSL 站点证书普遍还是 DV 类证书的操作,EV 、OV 的 CA 机构一般还是需要申请者单独提供认证材料和 CSR ,而不是走 ACME 挑战一下子就随随便便发了
gps949
194 天前
@baobao1270 CT 核查的问题,也有提供服务的,比如 cloudflare 就可以订阅你拥有域名的 CT ,当发生证书签发时会给你推送邮件的
cest
194 天前
@gps949 #5
机构自己卖证书也不是一天二天的事了
经济越不好,就越多套现的
gps949
194 天前
@cest 肯定有存在问题的,比如 CNNIC 和沃通,但一般还是靠谱的,否则主动为了挣眼前几万被 CAB 干然后失去每年千万级进账,真的是二傻子(没错,说的就前面那俩)。不过这恰恰也说明了,CA 管理严格比什么 ACME 挑战有漏洞可钻重要多了。
tool2d
194 天前
感觉这文章有问题,申请后的证书,是需要放到 web 服务器上来用才行。对方网站不用 ISP 的证书,申请一百个也没办法监听啊。

而且最关键的密钥都不一样,只能自娱自乐。
msg7086
194 天前
@tool2d 回头 ISP 拦截掉所有的流量全部导去中间人就行了。ISP 出手搞的,怎么搞都行。
msg7086
194 天前
HTTP 验证伪造对 ISP 实在是太简单了。在第三方机子上申请证书,然后在交换机上把从 acme 验证服务器发来的 HTTP 包拦截下来返回 challenge 就行了,甚至连文章里说的这种物理拔线都不需要做。
tool2d
194 天前
@msg7086 "回头 ISP 拦截掉所有的流量全部导去中间人就行了。"

这样做 ISP 风险很大的,还要专门弄一台流量卸载服务器伺候着,而客户的服务器相当于被完全架空。
tyzandhr
194 天前
@baobao1270 我理解的是 IP 与证书不一一对应,从而创造了可以伪造身份的机会
lambdaq
194 天前
@tool2d 一般是这样操作的。你打开登录页面,走原始网站 tls 。页面加载完,流量跌 0 ,就立马断开 tcp 。

下一步多半是提交用户名密码了,突然替换成李鬼的 tls 。这个时候也是合法的 tls 。。
dudewei
194 天前
E2E 的信仰又崩塌了。。。
xmumiffy
194 天前
这不算合法
另外就算传统证书用 DNS 验证的,DNS 也有概率能被抢答
yaoyao1128
194 天前
> 需要简单的修改 IP 路由
说实话,这个并不简单()这个的前提是 托管服务提供者 做了这个而不是 平时使用的 isp 做了这个 也就是说,一般服务商不能“对特定用户”直接中间人

而托管本质就是一个基于信任体系的问题……服务器本体还有 ip 都在那里,如果想要直接让它不能用也是可以的啊()

这个和 dns 验证时候 dns 托管服务商能修改记录签发出来一个道理……
idealhs
194 天前
@tool2d #9 ISP 那边把路由导到自己的服务器上不就可以了吗
devopsdogdog
194 天前
有点扯淡,都 isp 层面了 ,搞你还不是分分钟的事情。

完整逻辑是,isp 拦截下来这个请求, 再去你的主机访问 .well-known/acme-challenge/xxxx ,获得 验证值, 自己再伪造个路由 过去。

文章没怎么看明白,貌似还是猜测。 有懂的老哥科普一下
tool2d
194 天前
@idealhs ISP 偷偷抓一点流量还能理解。

直接用自己的服务器替换客户服务器,这操作感觉就挺离谱的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/985964

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX