苹果用 http OCSP 协议校验每个程序的 HASH 这个没得洗

2020-11-15 09:58:27 +08:00
 bethebetter

https://apple.slashdot.org/story/20/11/13/1726224/your-computer-isnt-yours

These OCSP requests are transmitted unencrypted.

https://en.wikipedia.org/wiki/Online_Certificate_Status_Protocol

OCSP 一般浏览器用来校验 CA 根证书状态,根 CA 可以签发多个不同的网站,并不是把你访问网站的域名发过去校验

但是$Apple OCSP$这个东西就厉害了,他是校验你程序的 HASH,你运行任何程序都会发给他,我们苹果太厉害啦!

14754 次点击
所在节点    Apple
112 条回复
bethebetter
2020-11-15 10:04:49 +08:00
好的解决方案就是系统**定期**把你系统的软件 list 用 App Store 去云端匹配,决定是否吊销某个软件开发者的证书,而不是每个程序 hash uuid,或者你至少弄个私有协议,套个 SSL 也行啊,这么明目张胆的的走 http,这就是$$$$苹果$$$$鼓吹的用户隐私?
NoobX
2020-11-15 10:22:01 +08:00
smart screen 了解一下
gps949
2020-11-15 10:34:47 +08:00
CA 行业从业人士表示被“OCSP 一般浏览器用来校验 CA 根证书状态”这句话给惊呆了。。。
bethebetter
2020-11-15 10:41:21 +08:00
@NoobX 这个是 Edge 浏览器和 Windows Store 里面的,可以关闭
bethebetter
2020-11-15 10:42:30 +08:00
@gps949 一般用户从哪里还能接触到 OCSP 的应用呢,你给大家说说看,普及下也行啊,只一句“惊呆了”这个没有意义的回复
snachx
2020-11-15 10:42:37 +08:00
发的是给程序签名的开发者证书的 hash,不是程序本身的
bethebetter
2020-11-15 10:43:47 +08:00
@snachx 一般开发者除了大公司也没几个 app,所以明文发送 hash 很容易猜
bethebetter
2020-11-15 10:44:56 +08:00
@gps949 虚心等你普及,搞快点 GKD
atone
2020-11-15 10:45:41 +08:00
这篇文章对 OCSP 协议有比较详细的分析: https://blog.jacopo.io/en/post/apple-ocsp/
Maskeney
2020-11-15 10:47:17 +08:00
@bethebetter #8 并不是校验根证书,而是签发的最末级证书,根证书泄露私钥被吊销之类的也是操作系统层面去吊销
icyalala
2020-11-15 10:48:55 +08:00
@bethebetter
首先 OCSP 本身就是用于避免批量扫描列表带来的开销的,而且因为 SSL 验证也需要 OCSP 所以服务基本都是非 HTTPS 的。

其次证书校验并不是每次启动 App 都请求的,而是首次安装或有较长时间没检测过才进行校验的,你可以自己抓包看看。

再有,因为这是未加密的,你可以自己抓包解析内容,发送过去的 Hash 实际上是开发者证书的 ID,比如淘宝咸鱼飞猪这些 App 请求的 Hash 是相同的。

而那篇文章却说 "每次启动 App 都会发送 App Hash 给苹果,这样苹果就能知道 Date, Time, Computer, ISP, City, State, Application Hash" 等信息了,这就是完全扯淡和恐吓了。
wql
2020-11-15 10:49:16 +08:00
OCSP 是验证**末端**( End Entity )证书的。没听说过哪个系统拿 OCSP 验证 CA 的,效率太低下,那是证书吊销列表 CRL 干的事情。
bethebetter
2020-11-15 10:56:04 +08:00
@icyalala 就是我用了某 Porn 的 app,开发者的证书就明文发给 apple 服务器了,中间的网络服务商都知道我用了某 Porn 的 app,因为发现了其证书,这个还是没解决隐私问题,只是解决了恶意 app 的安全问题。更好的是苹果用 https 一个域名来校验,没必要用明文的 http 来发送这些东西
coolcatha
2020-11-15 10:56:39 +08:00
@icyalala 其实这个问题之前就比讨论过,这次又火了一把。确实如你所说,并不是每次都会请求,原帖完全是毫无根据的猜测,没有任何实验精神,也正是这么样的结论才让人疯狂传播。

上次 reddit 跟人争论过这个问题,我还留着抓包的数据。如果楼主有兴趣留个联系方式我可以把整理的数据给你。

希望下次楼主下结论前用数据说话吧。
bethebetter
2020-11-15 10:57:25 +08:00
@wql chrome 很早已经弃用 OCSP 了,https://www.ssl.com/article/how-do-browsers-handle-revoked-ssl-tls-certificates/
你说这个校验 End Entity 的有好的文章推荐大家看看吗
bethebetter
2020-11-15 10:59:05 +08:00
@coolcatha 见#13,仍然会泄露用户隐私
SingeeKing
2020-11-15 11:02:26 +08:00
@bethebetter OCSP 哪里被弃用了?

OCSP 可以用来被跟踪是真的,日期时间 IP ISP 等等确实可以被记录(请求时间+IP 信息),之前国产卖证书还有的写过用境外证书因为使用 OCSP 会泄漏浏览记录给境外。

OCSP 至今还是 HTTPS 中非常重要一环,Lets Encrypt 的 OCSP 被墙当时影响也挺大的,而且还有各种加速 OCSP 的衍生技术( OCSP Stapling )
bethebetter
2020-11-15 11:04:08 +08:00
@wql https://en.wikipedia.org/wiki/Online_Certificate_Status_Protocol#Basic_PKI_implementation

Basic PKI implementation 这个实现确实是如你所说校验的是 End Entity
natashahollyz
2020-11-15 11:05:28 +08:00
真以为 apple 拒绝两次米国某些部门的要求就冰清玉洁了?拒绝两次,同意 2000 次,不稀奇
bethebetter
2020-11-15 11:07:21 +08:00
@gps949 楼下好心网友已经替你回复了 OCSP 校验 End Entity,主题内容有误,我已经 Append 了

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

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

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

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

© 2021 V2EX