V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dLvsYgJ8fiP8TGYU
V2EX  ›  Apple

探讨: iOS 本地网络权限 对隐私保护的有效性和局限性

  •  
  •   dLvsYgJ8fiP8TGYU · 136 天前 · 1170 次点击
    这是一个创建于 136 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在使用 iOS 设备与局域网内其他设备互动的过程中,发现一些有意思的现象,可能对分析“本地网络”能在多大程度上保护用户隐私有所帮助:

    1. 第三方浏览器似乎不需要允许“本地网络”权限就可以访问局域网内地址,例如路由器管理页面。是因为 iOS 上的第三方浏览器都是 AppleWebKit 套壳,所以不再需要额外权限?

    2. 使用 SSH 软件连接局域网内服务器,必须允许“本地网络”权限,否则无法连接。

    3. 使用群晖 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 并做好隔离,仅放行需要用到的跨网段端口
    4. App 可以获取用户是否允许了“本地网络”权限,进而调整自己的行为。例如使用 Readdle Documents 开启 WebDAV 服务器:

      • “本地网络”权限开启,其他设备可以直接用 http://设备 IP 连接;
      • “本地网络”权限关闭,App 会在每次开启 WebDAV 服务器时生成随机端口号, 其他设备可用 http://设备 IP:随机端口号 连接
      • 成功连接其他设备运行的 WebDAV 服务器后,App 会显示其他设备的名称,例如 xxx 的 iPhone。进一步猜测还可以获取到 MAC 地址,如果 App 开发者想做,完全存在被用于用户画像 /追踪的可能。
      • App 似乎不能获得其他网段内的设备名称,而只会显示 IP 地址。至于是否能跨网段获取到 MAC 地址这类敏感数据,还请各位大佬解答!

    以上都是基于用户主动输入 IP 地址:端口号发起连接时的行为,至于 App 后台自行发起的连接,iOS 系统是否有能力与用户发起的请求作出区分,还请了解 iOS 开发的大佬解答!

    6 条回复    2022-01-05 16:56:05 +08:00
    ruixue
        1
    ruixue  
       136 天前
    这个本地网络权限是有点迷,TIM 局域网备份聊天记录到电脑,显示要本地网络权限,实际上不给也能成功备份,然而微信如果不给本地网络权限,备份必定失败
    daveh
        2
    daveh  
       136 天前 via iPhone
    你理解的还不够到位,你提的那些问题应该不是问题。
    并不是说能访问到局域网其他 IP 就会泄露隐私,而是其中 IP 对应的 MAC 地址可能泄露你隐私。
    试想如果这个 MAC 地址是你 Wi-Fi 路由器的,那 app 根本不用请求定位权限,仅通过扫描出的 MAC 地址就能查到对应 AP 所在位置,从而间接定位到你的位置。
    局域网中,跨网关后,没法获取到其他网段 IP 的 MAC 地址,所以应该也不存在泄露隐私问题。
    yaoyao1128
        3
    yaoyao1128  
       136 天前 via iPhone
    mac 地址获取不到 ios11 开始
    之后设备名称是 ptr 记录( rdns )就会返回的 这个好像是 dhcp 分配的结果 跨越了 dhcp 所以获取不到
    kingxiangqi
        4
    kingxiangqi  
       136 天前
    这么说的话,Mac 上安装的 iOS App 没有权限管理,网络可以随便扫呗?

    macOS 也没有 iOS 的私有 MAC 地址功能,笔电背包族还是可能会被追踪。(可以手动改
    zjddp
        5
    zjddp  
       135 天前
    我知道的两个需要“本地网络”的场景是 DLNA 设备发现和苹果的 Bonjour 服务,这两个应该都用到了组播。
    okakuyang
        6
    okakuyang  
       135 天前
    “至于 App 后台自行发起的连接,iOS 系统是否有能力与用户发起的请求作出区分”
    可以,用 c 的库写的请求也可以拦截,iOS 提供的网络库应该也是对 c 那些库的封装。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3480 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 10:08 · PVG 18:08 · LAX 03:08 · JFK 06:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.