Em dispositivos com Android 13 ou mais recente, o Android oferece suporte à abordagem de autenticação Trust on First Use (TOFU) (RFC7435), que permite que os usuários confiem em uma rede comercial (EAP) instalando a CA raiz usada pelo servidor e definindo o nome de domínio 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 (PKI), que exige que o cliente pré-instale certificados. No Android 11 ou versões anteriores, os usuários podem selecionar a opção Não validar para o certificado de CA do servidor nas configurações de rede, ignorando a validação do certificado do lado do servidor. No entanto, para reforçar a segurança e obedecer à especificação WPA R2, o Android 12 introduziu um requisito para que as redes corporativas tenham validação de certificado do servidor. Esse requisito adicional criou uma barreira para os usuários, já que eles precisam instalar um certificado de CA para essas redes. O TOFU oferece uma maneira para os usuários se conectarem a uma rede corporativa baseada em PKI simplesmente aceitando a CA raiz dela.
Funcionamento do recurso
Os dispositivos que oferecem suporte ao TOFU mostram o seguinte comportamento quando um usuário se conecta a uma rede corporativa que não tem uma chave pública autenticada já instalada.
Conectar a uma nova rede pelo seletor de Wi-Fi
Selecione uma nova rede empresarial 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, se conectar à rede e ativar a conexão automática.
Se você tocar em Não, não conectar, 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-se a uma rede existente 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 CA 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, se conectar à rede e ativar a conexão automática.
Se você tocar em Não, não conectar, o dispositivo será desconectado da rede e a conexão automática será desativada.
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 seguintes APIs públicas estão disponíveis no Android 13 para uso por apps:
WifiManager#isTrustOnFirstUseSupported()
: indica se o dispositivo é compatível com 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