iOS 14 这个新功能究竟是干嘛的?应不应该“允许”?

广陵止息· 2020-09-18
本文来自 “少数派”(ID:sspaime) ,作者 广陵止息

相信大家对这个权限有很多疑问:本地网络权限是什么?为什么要对它做出限制?以及哪些应用真的需要这个权限?这三个问题将在本文里得到解答。

本地网络权限是什么,为什么要限制?

本地网络(局域网)

本地网络也叫局域网,是将设备接入路由器以后形成的网络,设备可以通过这张网络互相通信,让你可以在手机上将歌曲从无线音响里播放出来,在公司用公共打印机打印文档,在朋友家一起用 Switch 联机打游戏。

从 iOS 13 开始,应用想要获得当前连接到的 Wi-Fi 名称,那就必须要获得定位权限。因为通过识别 Wi-Fi 名称, 应用就能轻松地在你和周围的人之间建立大数据网络。但是不给定位权限不代表应用就没有办法跟踪你了,因为应用可以通过本地网络里的设备进行跟踪。

可以通过 MAC 地址识别特定的局域网

在过去的 iOS 版本中,应用可以随意扫描本地网络中的设备,因此应用就可以很轻松地得到本地网络里所有设备的名称和 MAC 地址。MAC 地址是一种确认网络设备位置的地址,每个网卡都有一个唯一的 MAC 地址,加上 MAC 地址也具有唯一性,设备厂商会按照一定的规律分配 MAC,所以不同的局域网都是独一无二可以识别的。

这样就通过 MAC 地址和设备的名字以生成一个特定的「指纹」,持续地、跨应用地、跨设备地跟踪用户的行为,并对用户画像持续进行调整。

比方说,你从线下渠道买了个新相机,拍完照片利用相机自带的 Wi-Fi 将照片导入到手机上。这时候带有某个推广模块的应用对局域网发起了一次扫描,识别到了一个新的设备,推广模块会将相机的 MAC 地址上传了云端,进行简单的识别对比以后,很容易知道这个 MAC 地址属于相机。这样带有推广模块的应用都会在画像里给你加上「相机用户」这样的标签,当你下次打开带有同一个推广模块的购物应用时,你就会看到推荐了一堆和相机有关的东西。

程序 A 在和相机交换数据时,程序 B 也可以扫描这个相机

所以在 iOS 14 里,Apple 开始对本地网络权限做出了更加严格的限制。

哪些 App 需要开本地网络权限?

就大部分应用而言,它们都不需要给本地网络权限。因为它们没有功能会使用到本地网络,请求这个权限的主要目的就是为了跟踪用户并推送广告。

HomeKit、AirDrop、AirPlay 和 AirPrint 都是不需要网络权限的

使用 HomeKit、AirDrop、AirPlay 和 AirPrint 的应用也不需要给出本地网络权限,使用这类 API 的时候苹果会以保护隐私的前提下传输和交换数据。

智能家居 App(非 HomeKit 型,比如米家等)、在线流媒体投屏类 App (比如 Spotify、腾讯视频等)会相对复杂一点:配对时需要授予权限,控制时可以选择性授予权限。

配对智能家居和电视时,对应的 App 只有先在本地找到对应的设备,才能进行配对,所以这个过程是必须要授予本地网络权限的,配对完成以后大部分的智能家居服务会把设备记录到云端。

而到了控制时,由于在云端存有智能家居的信息,用户在控制时 App 会先尝试从本地提交请求,如果无法连接的话再从云端向设备推送请求,即可以选择性授予权限。

简单的延迟测试

从本地推送和从云端推送,简单的开关命令、调节命令延迟实际上没有特别大的区别,所以不给本地网络权限是完全可以的。只有在网络环境较差时,推送和播放内容的时才会感觉到明显延迟和卡顿。所以我认为,智能家居类 App 还是在线流媒体的投屏推送类 App 只需要在配对时短暂打开一段时间,日常使用的时候完全没有必要给本地网络权限。

最后这三类 App 是必须要授予本地网络权限的,它们包括:

  • 利用本地网络进行设备发现

  • 利用本地网络进行数据传输

  • 网络调试工具

利用本地网络发现设备的应用我接触的也不是很多,大部分都是和智能家居有关的 App。其他和这方面有关的应用有:邀请同一网络下的好友一起加入游戏的应用和路由器的管理应用等。

而利用本地网络传输数据的应用还是挺多的,比如你用本地视频播放器 nPlayer 播放 NAS 里的视频时就需要本地网络权限;又比如你想要把手机里的照片利用第三方软件投射到电视上,这也是需要本地网络权限的;再比如你经常使用 TIM 里的面对面快传,这项功能也需要本地网络权限才能正常工作。利用本地网络传输数据的场景还有很多,这里我只是举出了三个常见的例子。

最后一个就是极客用得比较多的网络调试工具,比如 HE Network Tools,如果不给本地网络权限的话所有和本地网络有关的测试工具都会失败。不过我相信使用这类应用的人都知道要打开这个权限。

好在未来开发者适配以后,在请求本地网络权限时你会看到这个应用的哪些功能需要权限,帮助你更好地判断是否要授予。

以上就是关于 iOS 14 的本地网络权限详解的全文了,希望它能帮助到你。