停用 2G

当用户使用移动网络时,2G 连接是对其安全和隐私的最严重威胁。虽然合法的 2G 蜂窝网络正在世界各地逐步淘汰,但设备仍然容易受到伪基站 (FBS) 的攻击。拥有 FBS 的攻击者可以诱骗设备连接到 FBS 而不是合法的蜂窝网络。这通常通过将设备的连接降级到 2G 来完成,并且它允许 FBS 的运营商拦截或注入到设备的流量。

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

从 Android 14 开始,您必须拥有 MODIFY_PRIVILEGED_PHONE_STATE 权限才能以 ALLOWED_NETWORK_TYPES_REASON_ENABLE_2G 原因禁用 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。