A partir de 27 de março de 2025, recomendamos usar android-latest-release em vez de aosp-main para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Para dispositivos com o Android 13 ou mais recente, o Android
oferece suporte à abordagem de autenticação Trust on First Use (TOFU, na sigla em inglês)
(RFC7435),
que permite que os usuários confiem em uma rede comercial (EAP) instalando a AC 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 (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 reforçar
a segurança e obedecer à especificação WPA R2, o Android 12 introduziu um
requisito para que as redes corporativas tenham a validação de 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 conecte, o dispositivo será desconectado da
rede e a conexão automática será desativada.
Para validar a implementação do TOFU no seu dispositivo, use os seguintes testes:
CTS: CtsWifiTestCases
VTS: VtsHalWifiSupplicantStaNetworkTargetTest
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Trust on First Use (TOFU)\n\nFor devices running Android 13 or higher, Android\nsupports the Trust on First Use (TOFU) authentication approach\n([RFC7435](https://datatracker.ietf.org/doc/html/rfc7435.html)),\nwhich lets users trust an enterprise (EAP) network by installing the root CA\nused by the server and setting its domain name in a saved network. TOFU allows\nthe device to obtain an unauthenticated public key when a user first connects\nto an enterprise network and retain the key for subsequent connections.\n\nBackground\n----------\n\nCompared to personal networks that just require a password, enterprise networks\nuse public key infrastructure (PKI) authentication, which requires the client\nto preinstall certificates. In Android 11 or lower, users can select the\n*Do not validate* option for the server CA certificate in the network settings,\nbypassing the validation of the server side certificate. However, to strengthen\nsecurity and comply with the WPA R2 specification, Android 12 introduced a\nrequirement for enterprise networks to have server certificate validation. This\nadditional requirement created a barrier for users as they need to install a CA\ncertificate for such networks. TOFU provides a way for users to connect to a\nPKI-based enterprise network by simply accepting its root CA.\n\nFeature behavior\n----------------\n\nDevices that support TOFU display the following behavior when a user connects\nto an enterprise network that doesn't have an *already-installed*\nauthenticated public key.\n\n### Connect to new network through Wi-Fi picker\n\n1. Select a new enterprise network in Wi-Fi picker.\n\n The device displays a dialog (Figure 1) to confirm whether the\n network is trusted.\n2. Tap **Yes, connect** to accept the network connection, or tap **No, don't\n connect** to decline.\n\n - If you tap **Yes, connect**, the device automatically configures the\n security parameters, connects to the network, and enables autoconnect\n for the network.\n\n | **Note:** Misconfigured networks that use invalid or expired certificates might not allow any security validation by the device. In such cases, the device fails to connect to the network.\n - If you tap **No, don't connect**, the device disconnects from the\n network and disables autoconnect for the network.\n\n **Figure 1.** Dialog for the TOFU feature\n\n### Connect to existing network with autoconnect enabled\n\nWhen connecting to an enterprise network that has autoconnect enabled but\ndoesn't have a valid CA certificate, the device connects automatically, then\ndisplays a sticky (nondismissable) notification.\n\n1. Tap the notification.\n\n The device displays a dialog (Figure 1) to confirm whether the\n network is trusted.\n2. Tap **Yes, connect** to accept the network connection, or tap **No, don't\n connect** to decline.\n\n - If you tap **Yes, connect**, the device automatically configures the\n security parameters, connects to the network, and enables autoconnect\n for the network.\n\n | **Note:** Misconfigured networks that use invalid or expired certificates might not allow any security validation by the device. In such cases, the device fails to connect to the network.\n - If you tap **No, don't connect**, the device disconnects from the\n network and disables autoconnect for the network.\n\nImplementation\n--------------\n\nTo support the TOFU feature, implement the supplicant HALs provided in the\nAndroid Open Source Project (AOSP) at\n[`/hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant`](https://cs.android.com/android/platform/superproject/+/android-latest-release:hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant).\n\nThe following public APIs are available in Android 13\nfor use by apps:\n\n- [`WifiManager#isTrustOnFirstUseSupported()`](https://developer.android.com/reference/android/net/wifi/WifiManager#isTrustOnFirstUseSupported()): Indicates whether the device supports TOFU.\n- [`WifiEnterpriseConfig#enableTrustOnFirstUse(boolean)`](https://developer.android.com/reference/android/net/wifi/WifiEnterpriseConfig#enableTrustOnFirstUse(boolean)): Enables TOFU.\n- [`WifiEnterpriseConfig#isTrustOnFirstUseEnabled()`](https://developer.android.com/reference/android/net/wifi/WifiEnterpriseConfig#isTrustOnFirstUseEnabled()): Indicates whether TOFU is enabled.\n\nValidation\n----------\n\nTo validate the implementation of TOFU on your device, use the following tests:\n\n- CTS: `CtsWifiTestCases`\n- VTS: `VtsHalWifiSupplicantStaNetworkTargetTest`"]]