En dispositivos que ejecutan Android 13 o versiones posteriores, Android admite 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 CA 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.
Información general
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 preinstale certificados. En Android 11 y versiones anteriores, los usuarios pueden seleccionar la opción No validar para el certificado de la CA del servidor en la configuración de red, lo que omite la validación del certificado del servidor. Sin embargo, para reforzar la seguridad y cumplir con la especificación WPA R2, Android 12 introdujo un requisito para que las redes empresariales tengan validación de certificados de servidor. Este requisito adicional creó una barrera para los usuarios, ya que deben instalar un certificado de CA para esas redes. TOFU proporciona una forma para que los usuarios se conecten a una red empresarial basada en PKI simplemente aceptando su CA 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.
Conéctate 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 se confía en la red.
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 y se inhabilitará la conexión automática para esa red.
Figura 1: Diálogo para la función de TOFU
Conéctate a una red existente con la conexión automática habilitada
Cuando se conecta a una red empresarial que tiene habilitada la conexión automática, pero no tiene un certificado de CA 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 se confía en la red.
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 y se inhabilitará la conexión automática para esa red.
Implementación
Para admitir la función de TOFU, implementa los HALs del suplicante 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 la parte superior del embudo.WifiEnterpriseConfig#isTrustOnFirstUseEnabled()
: Indica si TOFU está habilitado.
Validación
Para validar la implementación de TOFU en tu dispositivo, usa las siguientes pruebas:
- CTS:
CtsWifiTestCases
- VTS:
VtsHalWifiSupplicantStaNetworkTargetTest