Para dispositivos com o Android 13 ou versões mais recentes, o Android oferece suporte à abordagem de autenticação Trust on First Use (TOFU) (RFC7435), que permite que os usuários confiem em uma rede empresarial (EAP) instalando a CA raiz usada pelo servidor e definindo o nome de domínio dela em uma rede salva. O TOFU permite que o dispositivo receba uma chave pública não autenticada quando um usuário se conecta pela primeira vez a uma rede corporativa e retém a chave para conexões subsequentes.
Contexto
Em comparação com as redes pessoais, que exigem apenas uma senha, as redes corporativas usam a autenticação de infraestrutura de chave pública (ICP), que exige que o cliente pré-instale certificados. No Android 11 ou versões anteriores, os usuários podem selecionar a opção Do not validate (não validar) para o certificado da AC do servidor nas configurações de rede, ignorando a validação do certificado do lado do servidor. No entanto, para fortalecer a segurança e obedecer à especificação WPA R2, o Android 12 introduziu um requisito para que as redes corporativas tenham a validação do certificado do servidor. Esse requisito extra criou uma barreira para os usuários, já que eles precisam instalar um certificado de AC para essas redes. O TOFU permite que os usuários se conectem a uma rede corporativa baseada em PKI simplesmente aceitando a AC raiz.
Funcionamento do recurso
Os dispositivos compatíveis com o TOFU apresentam o seguinte comportamento quando um usuário se conecta a uma rede corporativa que não tem uma chave pública já instalada autenticada.
Conectar a uma nova rede pelo seletor de Wi-Fi
Selecione uma nova rede corporativa no seletor de Wi-Fi.
O dispositivo mostra uma caixa de diálogo (Figura 1) para confirmar se a rede é confiável.
Toque em Sim, conectar para aceitar a conexão de rede ou em Não, não conectar para recusar.
Se você tocar em Sim, conectar, o dispositivo vai configurar automaticamente os parâmetros de segurança, conectar à rede e ativar a conexão automática com a rede.
Se você tocar em Não, não conecte, o dispositivo será desconectado da rede e a conexão automática será desativada.
Figura 1. Caixa de diálogo para o recurso TOFU
Conectar à rede atual com a conexão automática ativada
Ao se conectar a uma rede corporativa com a conexão automática ativada, mas sem um certificado de AC válido, o dispositivo se conecta automaticamente e mostra uma notificação fixa (não dispensável).
Toque na notificação.
O dispositivo mostra uma caixa de diálogo (Figura 1) para confirmar se a rede é confiável.
Toque em Sim, conectar para aceitar a conexão de rede ou em Não, não conectar para recusar.
Se você tocar em Sim, conectar, o dispositivo vai configurar automaticamente os parâmetros de segurança, conectar à rede e ativar a conexão automática com a rede.
Se você tocar em Não, não conectar, o dispositivo será desconectado da rede e desativará a conexão automática dela.
Implementação
Para oferecer suporte ao recurso TOFU, implemente as HALs suplicantes fornecidas no
Android Open Source Project (AOSP) em
/hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant
.
As APIs públicas a seguir estão disponíveis no Android 13 para uso por apps:
WifiManager#isTrustOnFirstUseSupported()
: indica se o dispositivo oferece suporte a TOFU.WifiEnterpriseConfig#enableTrustOnFirstUse(boolean)
: ativa o TOFU.WifiEnterpriseConfig#isTrustOnFirstUseEnabled()
: indica se o TOFU está ativado.
Validação
Para validar a implementação do TOFU no seu dispositivo, use os seguintes testes:
- CTS:
CtsWifiTestCases
- VTS:
VtsHalWifiSupplicantStaNetworkTargetTest