停用 2G

使用移动网络时,对于用户安全和隐私而言,最严重的威胁就是 2G 连接。虽然全球范围内正在逐步淘汰合法的 2G 移动网络,但设备仍然容易受到来自非法基站 (FBS) 的攻击。使用 FBS 的攻击者可能会诱使设备连接到 FBS,而不是连接到合法的移动网络。这通常是通过将设备连接降级到 2G 来实现的,这让 FBS 运营商可以拦截流量或将流量注入设备。

在任何实现了功能常量“CAPABILITY_USES_ALLOWED_NETWORK_TYPES_BITMASK”的设备上,Android 允许用户在无线装置硬件级别停用 2G。这会阻止设备扫描或连接到 2G 网络。

从 Android 14 开始,您必须具有 MODIFY_PRIVILEGED_PHONE_STATE,才能停用 2G,原因为 ALLOWED_NETWORK_TYPES_REASON_ENABLE_2G。运营商权限是不够的。

TelephonyManager tm = getSystemService(TelephonyManager.class);

if (tm != null && tm.isRadioInterfaceCapabilitySupported("CAPABILITY_USES_ALLOWED_NETWORK_TYPES_BITMASK")) {
    long disable2gBitMask = 0xFFFF &~ TelephonyManager.NETWORK_CLASS_BITMASK_2G;
    tm.setAllowedNetworkTypesForReason(TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_ENABLE_2G, disable2gBitMask);
}

常见问题解答

如果用户的运营商不再支持 2G,那么用户是否仍然容易受到攻击?

即使用户的运营商不再维护 2G 基础架构,停用 2G 也是一项重要的安全措施。用户的设备仍支持扫描和连接到 2G 基站,因此,如果用户未在设备上停用 2G,则仍然容易受到 2G 降级攻击。

停用 2G 对漫游有何影响?

如果出于安全目的停用 2G,那么即使设备处于漫游状态,2G 也不会重新启用。世界上的某些区域依赖于 2G 信号覆盖,并且某些漫游协议假定设备将能够连接到 2G。在这些情况下,除非用户重新启用 2G,否则将无法连接到网络。由于在 2G 中缺少相互身份验证,因此无法可靠地检测 2G 漫游。在即使有漫游信号时也仍然使 2G 处于停用状态,这样做可防止 FBS 伪造其网络标识符来诱使设备重新启用 2G。