在使用 iOS 设备与局域网内其他设备互动的过程中,发现一些有意思的现象,可能对分析“本地网络”能在多大程度上保护用户隐私有所帮助:
-
第三方浏览器似乎不需要允许“本地网络”权限就可以访问局域网内地址,例如路由器管理页面。是因为 iOS 上的第三方浏览器都是 AppleWebKit 套壳,所以不再需要额外权限?
-
使用 SSH 软件连接局域网内服务器,必须允许“本地网络”权限,否则无法连接。
-
使用群晖 DS 套件 App 连接局域网内 NAS ,发现“本地网络”权限所保护的对象,似乎仅限与当前设备处于同一网段的 IP 地址。
- 例如当前设备 IP 地址为
192.168.1.123,“本地网络”权限似乎只能用于限制 App 与属于192.168.1.0/24网段的 IP 进行通信,而对于其他网段的局域网 IP 则不做限制。 - 也就是说,假如局域网内有一台 IP 地址为
192.168.0.234的服务器,用户使用 IP 地址为192.168.1.123的 iOS 设备,无需给相应 App 授权“本地网络”权限,即可跨网段连接到目标服务器。 - 因此,如果想进一步提升局域网安全性,需要划分多个 VLAN 并做好隔离,仅放行需要用到的跨网段端口
- 例如当前设备 IP 地址为
-
App 可以获取用户是否允许了“本地网络”权限,进而调整自己的行为。例如使用 Readdle Documents 开启 WebDAV 服务器:
- “本地网络”权限开启,其他设备可以直接用
http://设备 IP连接; - “本地网络”权限关闭,App 会在每次开启 WebDAV 服务器时生成随机端口号, 其他设备可用
http://设备 IP:随机端口号连接 - 成功连接其他设备运行的 WebDAV 服务器后,App 会显示其他设备的名称,例如
xxx 的 iPhone。进一步猜测还可以获取到 MAC 地址,如果 App 开发者想做,完全存在被用于用户画像 /追踪的可能。 - App 似乎不能获得其他网段内的设备名称,而只会显示 IP 地址。至于是否能跨网段获取到 MAC 地址这类敏感数据,还请各位大佬解答!
- “本地网络”权限开启,其他设备可以直接用
以上都是基于用户主动输入 IP 地址:端口号发起连接时的行为,至于 App 后台自行发起的连接,iOS 系统是否有能力与用户发起的请求作出区分,还请了解 iOS 开发的大佬解答!