nondanee / UnblockNeteaseMusic

Revive unavailable songs for Netease Cloud Music
MIT License
17.4k stars 2.51k forks source link

麻了,家人们谁懂啊,不能理解为啥这样也能解锁,谁给科普一下 #843

Open KennanChan opened 1 year ago

KennanChan commented 1 year ago

家里的网络环境是这样的: openwrt:作为网关,部署了UnblockNeteaseMusic的luci包,对内网所有设备提供解锁服务,docker部署了mitm-proxy主要用来做游戏代理、打卡破解之类的 mac mini: 黑苹果,新装,安装了抓包用的LightProxy工具,并且安装了LightProxy根证书,LightProxy只配置了用于本地研发的几条规则 macbook pro:安装了抓包用的LightProxy工具,并且安装了LightProxy根证书 iPhone:安装了各种根证书,来自LightProxy的有三个(分别对应了我各个地方的研发机器),还有Fiddler的根证书,openwrt上mitm-proxy的根证书,还有iOS应用QuantumultX的本地证书,还有另一个抓包App的本地根证书,当然还有UnblockNeteaseMusic的根证书。

先说一下,我理解的解锁原理本质是中间人攻击,通过信任根证书,使得部署在网关的服务可以解密从客户端发送的https流量,服务识别到歌曲,不从网易云请求,而是从备选的其他音乐服务返回链接给客户端播放。

下面是我遇到的一些现象:

1、因为新装了黑果mac mini,今天想起来下载了网易云音乐,结果直接就成功解锁音乐了,然而我并没有安装UnblockNeteaseMusic的证书,查看openwrt的日志,确实是走了部署在网关的服务解锁的。想起来本地有LightProxy的系统代理,关掉,就不能解锁了。

2、于是用iPhone尝试看能不能解锁,因为我之前就信任了UnblockNeteaseMusic证书,但是竟然不能。。。。于是在设置里把UnblockNeteaseMusic证书取消信任了,神奇的事情发生了,竟然可以解锁了。怀疑是其他证书影响,于是控制变量,所有证书全部禁用,单独开启每一个,测试能不能解锁,实测:LightProxy的三个证书都可以解锁,mitm-proxy的证书可以解锁,Fiddler的证书可以解锁,QuantumultX的证书可以解锁,另外一个HTTPS抓包工具的证书也可以解锁。我只是简单的连上了家里的wifi,没有在手机上配置任何代理。

还没有去深究这里面的原理,是这些工具的根证书有什么特别的吗?我网络基础不太牢,一眼真没看出来为啥这种配置可以解锁成功,哪位大佬给解惑一下