停用 2G

使用行動網路時,使用者安全與隱私最嚴重的威脅就是 2G 連線。雖然合法的 2G 行動網路在世界各地都已逐步關閉,但裝置仍容易受到假基車站 (FBS) 的攻擊。擁有 FBS 的攻擊者可以誘騙裝置連線至 FBS,而非合法的行動網路。這通常是透過將裝置的連線降級至 2G 來達成,這可讓 FBS 的操作員攔截或將流量注入裝置。

Android 允許使用者在任何實作「CAPABILITY_USES_ALLOWED_NETWORK_TYPES_BITMASK」能力常數的裝置上,在無線電硬體層級停用 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 即使漫遊訊號也關閉,FBS 仍能防止 FBS 假冒自身的網路 ID,從而說服裝置重新啟用 2G。