En dispositivos que ejecutan Android 13 o versiones posteriores, Android es compatible con el enfoque de autenticación de confianza en el primer uso (TOFU) (RFC7435), que permite a los usuarios confiar en una red empresarial (EAP) mediante la instalación de la AC raíz que usa el servidor y la configuración de su nombre de dominio en una red guardada. TOFU permite que el dispositivo obtenga una clave pública no autenticada cuando un usuario se conecta a una red empresarial por primera vez y retiene la clave para conexiones posteriores.
Segundo plano
En comparación con las redes personales que solo requieren una contraseña, las redes empresariales usan la autenticación de infraestructura de clave pública (PKI), que requiere que el cliente instale previamente los certificados. En Android 11 o versiones anteriores, los usuarios pueden seleccionar la opción No validar para el certificado de AC del servidor en la configuración de red, lo que evita la validación del certificado del servidor. Sin embargo, para fortalecer la seguridad y cumplir con la especificación WPA R2, Android 12 introdujo un requisito para que las redes empresariales tengan la validación de certificados del servidor. Este requisito adicional creó una barrera para los usuarios, ya que deben instalar un certificado de AC para esas redes. TOFU proporciona una forma para que los usuarios se conecten a una red empresarial basada en la PKI simplemente aceptando su AC raíz.
Comportamiento de las funciones
Los dispositivos que admiten TOFU muestran el siguiente comportamiento cuando un usuario se conecta a una red empresarial que no tiene una clave pública autenticada ya instalada.
Cómo conectarse a una red nueva a través del selector de Wi-Fi
Selecciona una nueva red empresarial en el selector de Wi-Fi.
El dispositivo muestra un diálogo (Figura 1) para confirmar si la red es de confianza.
Presiona Sí, conectar para aceptar la conexión de red o No, no conectar para rechazarla.
Si presionas Sí, conectar, el dispositivo configurará automáticamente los parámetros de seguridad, se conectará a la red y habilitará la conexión automática para la red.
Si presionas No, no conectar, el dispositivo se desconecta de la red y se inhabilita la conexión automática a la red.
Figura 1: Diálogo para la función TOFU
Cómo conectarse a una red existente con la conexión automática habilitada
Cuando te conectas a una red empresarial que tiene habilitada la conexión automática, pero no tiene un certificado de AC válido, el dispositivo se conecta automáticamente y, luego, muestra una notificación fija (que no se puede descartar).
Presiona la notificación.
El dispositivo muestra un diálogo (Figura 1) para confirmar si la red es de confianza.
Presiona Sí, conectar para aceptar la conexión de red o No, no conectar para rechazarla.
Si presionas Sí, conectar, el dispositivo configurará automáticamente los parámetros de seguridad, se conectará a la red y habilitará la conexión automática para la red.
Si presionas No, no conectar, el dispositivo se desconectará de la red e inhabilitará la conexión automática para la red.
Implementación
Para admitir la función TOFU, implementa los HAL de solicitantes proporcionados en el Proyecto de código abierto de Android (AOSP) en /hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant
.
Las siguientes APIs públicas están disponibles en Android 13 para que las usen las apps:
WifiManager#isTrustOnFirstUseSupported()
: Indica si el dispositivo admite TOFU.WifiEnterpriseConfig#enableTrustOnFirstUse(boolean)
: Habilita TOFU.WifiEnterpriseConfig#isTrustOnFirstUseEnabled()
: Indica si la parte superior del embudo está habilitada.
Validación
Para validar la implementación de TOFU en tu dispositivo, usa las siguientes pruebas:
- CTS:
CtsWifiTestCases
- VTS:
VtsHalWifiSupplicantStaNetworkTargetTest