macos/ios 上的闭源代理软件(surge/qx 等)普遍支持的修改 HTTP/HTTPS 请求和响应的功能,为什么开源的跨平台软件(mihomo/singbox 等)普遍不支持?

80 天前
 Scalalala
是技术难度的问题?还是实现该功能的必要性问题?还是其他原因?
1843 次点击
所在节点    问与答
18 条回复
mooyo
80 天前
安卓不能 MITM
neochen13
80 天前
MacOS 上的 QX 好难用的
zuotun
80 天前
@mooyo #1 不是不能,只是门槛高了很多吧?印象里安卓是有 HTTPS 抓包软件的,这已经完成一半了。
w88975
80 天前
技术上没有任何难题, 作为一个代理软件, MITM 是最基本的, 无非就是不想做, 毕竟 MITM 是风险比较大的
chanChristin
80 天前
@neochen13 #2 换 surge
mooyo
80 天前
@zuotun 安卓软件可以不信任第三方证书
jim9606
80 天前
因为过隧道这事并不需要修改请求头。
surge 好歹是挂着网络开发名义的。
现在主流的协议都不会请求头内封装网络层信息,也就是设计与隧道和代理兼容的,所以不像 FTP 那样需要修改才能过隧道。
ztmzzz
80 天前
安卓 mitm 麻烦+闭源的收费
hazy
80 天前
iOS 上几款软件都买了,但一直没开过 MITM ,去广告的需求远小于安全性要求。
Donaldo
79 天前
@mooyo #6 iOS 也可以。。。ssl pinning 跟系统没关系
mooyo
79 天前
@Donaldo

自定义可信 CA
您可能希望应用信任自定义 CA 集,而不是平台默认的 CA 。出现此情况的最常见原因包括:

连接到具有自定义 CA (如自签名或在公司内部签发的 CA )的主机。
仅限您信任的 CA (而不是每个预装 CA )。
信任未包含在系统中的其他 CA 。
默认情况下,来自所有应用的安全连接(使用 TLS 和 HTTPS 之类的协议)均信任预装的系统 CA ,而以 Android 6.0 ( API 级别 23 )及更低版本为目标平台的应用默认情况下还会信任用户添加的 CA 存储区。您可以使用 base-config (应用范围的自定义)或 domain-config (针对每个网域的自定义)自定义应用的连接。
mooyo
79 天前
@Donaldo 确定我们说的是同一个事情?
mooyo
79 天前
mooyo
79 天前
@mooyo #13 虽然我不是安卓开发,但按这篇文档的说法,一个应用在**默认**情况下,在安卓 7 及以上,是不会信任用户添加的证书,我的理解有问题么?
finab
79 天前
@mooyo 他意思也是 iOS APP 可以选择不信任用户的证书,这种行为和系统无关。
只不过安卓是强制不信任,iOS 是交给开发者决定
finab
79 天前
不过 iOS 信不信任证书和人家的对话没关系, 人家说的是安卓默认不信任证书导致不能 MITM😄
Donaldo
79 天前
@mooyo #14 咱俩说的确实不是一回事,简单来说,不管 iOS 还是安卓,应用可以直接硬编码证书进去,而不是去通过“信任”系统或者用户证书来决定这个连接是否安全。
SenLief
79 天前
没任何难题,主要还是隐私问题吧,信任证书是有危险的,我在 ios 上 mitm 我也不开。

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

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

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

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

© 2021 V2EX