苹果设备使用 VPN 的安全问题
直到今天我才发现 iOS/iPad OS 的网络架构设计并不是想象中的那样安全,具体如下:
1. 苹果的服务,比如iCloud,地图,推送通知等,默认是会绕过 VPN 的,且无法解决
2. 在 VPN 开启之前建立的会话和连接并不像预想的那样被终止,而是在 VPN 通道处于激活状态时仍然可以向外发送数据,导致部分流量持续外泄
1. 苹果的服务,比如iCloud,地图,推送通知等,默认是会绕过 VPN 的,且无法解决
2. 在 VPN 开启之前建立的会话和连接并不像预想的那样被终止,而是在 VPN 通道处于激活状态时仍然可以向外发送数据,导致部分流量持续外泄
解决方案:激活 VPN 后,打开飞行模式,关闭移动流量和 Wi-Fi 网络,然后再重新打开网络。但该方法并不是100%可靠
3. 应用可以通过蜂窝数据绕过 VPN
苹果提供的 Network.framework 和 MPTCP API 允许应用显式绑定蜂窝接口,直接发送流量
解决方案:使用 Wi-Fi 时禁用蜂窝/移动数据
4. TunnelCrack LocalNet 攻击
如果连接到恶意的 Wi-Fi 网络,则 Wi-Fi 路由器通过伪造路由信息,诱骗设备将公网 IP 视为本地网络,从而绕过 VPN 隧道向外发送互联网流量
解决方案:仅企业级 MDM 方案(如 Always-on VPN)可部分缓解,但普通用户无法使用
总结
根本原因在于苹果系统的网络架构设计:
1. 系统级例外:苹果服务流量和白名单机制(如推送通知)优先于 VPN
2. API开放性问题:NetworkExtension 未能强制所有流量通过虚拟接口,允许应用绕过路由规则
3. 协议漏洞:TunnelCrack 攻击利用 VPN 客户端对本地网络的错误信任
目前唯一有效缓解措施是:避免连接不可信Wi-Fi,并结合飞行模式重置连接,但无法彻底解决问题。苹果尚未提供完整修复方案,部分安全研究人员认为此行为属系统性设计缺陷
安卓平台
由于安卓系统可以给予 VPN 软件的权限很大,所以上述几个问题都不会受影响,但安卓平台的问题主要是,超过一半付费 VPN 应用存在数据泄露,比如 DNS 泄漏、缺乏 SNI 加密等,还有免费的 VPN 存在隐私问题,70%以上与第三方共享用户数据,所以 Android 平台最大隐患来自第三方VPN应用自身的安全性不足,而非系统设计本身
1. 系统级例外:苹果服务流量和白名单机制(如推送通知)优先于 VPN
2. API开放性问题:NetworkExtension 未能强制所有流量通过虚拟接口,允许应用绕过路由规则
3. 协议漏洞:TunnelCrack 攻击利用 VPN 客户端对本地网络的错误信任
目前唯一有效缓解措施是:避免连接不可信Wi-Fi,并结合飞行模式重置连接,但无法彻底解决问题。苹果尚未提供完整修复方案,部分安全研究人员认为此行为属系统性设计缺陷
安卓平台
由于安卓系统可以给予 VPN 软件的权限很大,所以上述几个问题都不会受影响,但安卓平台的问题主要是,超过一半付费 VPN 应用存在数据泄露,比如 DNS 泄漏、缺乏 SNI 加密等,还有免费的 VPN 存在隐私问题,70%以上与第三方共享用户数据,所以 Android 平台最大隐患来自第三方VPN应用自身的安全性不足,而非系统设计本身
免责声明:
本文内容基于个人收集和总结的信息,仅供参考。所有观点和结论不代表任何组织或实体的官方立场。文中提到的技术信息和安全问题可能随着时间推移而发生变化,且可能存在个人理解或解读的偏差。
使用任何 VPN 服务或安全措施时,请务必通过可靠的渠道核实相关信息,并根据自身需求和法律法规进行判断。作者不对因使用此信息而可能产生的任何损失或后果承担责任。
如需获取准确、最新的安全建议,请咨询相关领域的专业人士或官方机构。
参考:
[1] https://forums.developer.apple.com/forums/thread/122330
[2] https://protonvpn.com/blog/apple-ios-vulnerability-disclosure
[3] https://blog.disconnect.me/ios-vpn-leak-advisory/
[4] https://www.theregister.com/2023/08/10/tunnelcrack_vpn/
[5] https://www.security.com/blogs/threat-intelligence/security-vpn-ios-macos
[6] https://mullvad.net/en/help/using-mullvad-app-on-ios
[7] https://www.macrumors.com/2022/08/18/vpns-for-ios-are-broken-says-researcher/
[8] https://tunnelcrack.mathyvanhoef.com
[9] https://cyberinsider.com/latest-ios-found-to-bypass-vpn-connection-for-some-services/
[10] https://tunnelcrack.mathyvanhoef.com/details.html
[11] https://www.comparitech.com/blog/vpn-privacy/vpn-ios-bug-privacy/
[12] https://security.paloaltonetworks.com/PAN-SA-2023-0004
[13] https://www.kaspersky.com/blog/how-to-fix-tunnelcrack-vpn-leak/48788/
[14] https://www.reddit.com/r/MacOSBeta/comments/1ef96dl/workaround_apple_intelligence_in_eu/
[15] https://www.reddit.com/r/apple/comments/y26onv/ios_16_communicate_with_apple_services_outside_an/
[16] https://github.com/mullvad/mullvadvpn-app/issues/6496
[17] https://discuss.privacyguides.net/t/ios-overview/20915/2
[18] https://gitlab.com/CalyxOS/calyxos/-/issues/1651
[19] https://forum.turris.cz/t/openvpn-doesnt-not-route-iphone-apps-traffic/17229
[20] https://openvpn.net/security-advisory/statement-regarding-tunnelcrack-vulnerabilities/
[21] https://www.ivpn.net/blog/ivpn-tunnelcrack-vulnerability-assessment/
[22] https://www.sophos.com/en-us/security-advisories/sophos-sa-20231124-tunnelcrack
[23] https://www.iphonelife.com/content/how-to-turn-apple-maps-suggestions
[24] https://github.com/FifiTheBulldog/ios-settings-urls/blob/master/settings-urls.md
[25] https://support.apple.com/en-sg/guide/iphone/iph499d287c2/ios
[26] https://forum.netgate.com/topic/173577/openvpn-wireguard-breaking-dns-resolver-solved
[27] https://discuss.grapheneos.org/d/3635-problem-connection-to-vpn-server-with-mobile-data
[28] https://mullvad.net/en/help/connecting-to-mullvad-vpn-from-restrictive-locations
[29] https://mullvad.net/en/blog/ios-vulnerability-puts-vpn-traffic-risk
[30] https://mullvad.net/en/help/installing-mullvad-iphone-and-ipad
[31] https://www.reddit.com/r/mullvadvpn/comments/ymude7/mullvad_seems_to_be_using_my_cellular_data/
[32] https://www.reddit.com/r/mullvadvpn/comments/122exq2/ios_connectivity_issue/
[33] https://support.ipvanish.com/hc/en-us/articles/24022580557723-What-is-the-Split-Tunneling-feature-for-IPVanish-for-iPhone-iPad-iOS
[34] https://discussions.apple.com/thread/8150894
[35] https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/security-vpn-ios-macos
[36] https://meshnet.nordvpn.com/features/routing-traffic-in-meshnet/traffic-routing-ios
[37] https://surfshark.com/blog/surfshark-launches-bypasser-on-ios