Desativar 2G

A ameaça mais grave à segurança e privacidade de um usuário ao utilizar um aplicativo móvel são conexões 2G. Embora as redes celulares 2G legítimas estejam no mundo inteiro, os dispositivos ainda são suscetíveis a ataques falsos estações de base (FBS, na sigla em inglês). Um adversário com FBS pode enganar um dispositivo para conectá-lo a ele em vez de a uma rede celular legítima. Isso é conseguido com mais frequência rebaixando a conexão de um dispositivo para 2G, e permite que o operador o FBS para interceptar ou injetar tráfego em um dispositivo.

O Android permite que os usuários desativem o 2G no nível do hardware de rádio em qualquer dispositivo que implementa a constante "capability", "CAPABILITY_USES_ALLOWED_NETWORK_TYPES_BITMASK". Isso impede que um dispositivo ou se conectar a redes 2G.

A partir do Android 14, é necessário ter MODIFY_PRIVILEGED_PHONE_STATE para desativar 2G com o motivo ALLOWED_NETWORK_TYPES_REASON_ENABLE_2G. Os privilégios de operadora não sejam suficientes.

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);
}

Perguntas frequentes

Os usuários ainda estarão vulneráveis se suas operadoras não oferecerem mais suporte ao 2G?

Desativar o 2G é uma medida de segurança importante mesmo se a operadora do usuário não mantém a infraestrutura 2G por mais tempo. O dispositivo do usuário ainda tem suporte à verificação e a conexão a estações de base 2G, para que fiquem vulneráveis de downgrade se não desativarem o 2G no dispositivo.

Como a desativação do 2G afeta o roaming?

Quando o 2G for desativado por motivos de segurança, ele não será reativado, mesmo se o dispositivo está em roaming. Algumas áreas no mundo dependem da cobertura 2G e algumas os acordos de roaming consideram que os dispositivos poderão se conectar ao 2G. Nessas o usuário não terá conectividade, a menos que reative o 2G. Não é possível detectar com segurança o roaming 2G devido à falta de do Google em 2G. Deixar o 2G desativado apesar dos sinais de roaming impede um FBS spoofing de identificadores da rede para convencer um dispositivo a reativar o 2G.