2G を無効にする

モバイル ネットワークを使用する場合、ユーザーのセキュリティとプライバシーに最も深刻な脅威を及ぼすのは、2G 接続です。正規の 2G モバイル ネットワークは世界中で段階的に廃止されつつありますが、デバイスは依然として偽の基地局(FBS)からの攻撃に対して脆弱です。FBS を利用する不正行為者は、デバイスをだまし、正規のモバイル ネットワークではなく、FBS に接続させることができます。これを達成するには、デバイスの接続を 2G にダウングレードさせる方法が使われることが多く、FBS の操作者はデバイスへのトラフィックを傍受または注入できるようになります。

Android では、機能定数「CAPABILITY_USES_ALLOWED_NETWORK_TYPES_BITMASK」を実装するデバイスにおいて、無線ハードウェア レベルで 2G を無効にできます。これにより、デバイスは 2G ネットワークに対する検出や接続を停止します。

Android 14 以降では、ALLOWED_NETWORK_TYPES_REASON_ENABLE_2G を根拠に 2G を無効にするには、MODIFY_PRIVILEGED_PHONE_STATE が必要です。携帯通信会社の特権だけでは不十分です。

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 を再度有効にするよう誘導することを防ぎます。