Confianza en el primer uso (TOFU)

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.

Fondo

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 o versiones anteriores, los usuarios pueden seleccionar la opción No validar para el certificado de la AC del servidor en la configuración de red, lo que omite 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 validación de certificados del servidor. Este requisito adicional creó una barrera para los usuarios, ya que necesitan 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 aceptando su CA raíz.

Comportamiento de la función

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

  1. 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.

  2. Presiona Sí, conectar para aceptar la conexión de red o presiona No conectar para rechazarla.

    • Si presionas Sí, conectar, el dispositivo configura automáticamente los parámetros de seguridad, se conecta a la red y habilita la conexión automática para la red.

    • Si presionas No conectar, el dispositivo se desconecta de la red y deshabilita la conexión automática para la red.

    Diálogo del sistema Android que pregunta si se confía en una red, con el texto "¿Confías en esta red?" y las opciones "No, no conectar" y "Sí, conectar".

    Figura 1: Diálogo para la función TOFU

Conéctate 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 la AC válido, el dispositivo se conecta automáticamente y, luego, muestra una notificación persistente (que no se puede descartar).

  1. Presiona la notificación.

    El dispositivo muestra un diálogo (Figura 1) para confirmar si la red es de confianza.

  2. Presiona Sí, conectar para aceptar la conexión de red o presiona No conectar para rechazarla.

    • Si presionas Sí, conectar, el dispositivo configura automáticamente los parámetros de seguridad, se conecta a la red y habilita la conexión automática para la red.

    • Si presionas No conectar, el dispositivo se desconecta de la red y deshabilita la conexión automática para la red.

Implementación

Para admitir la función TOFU, implementa los HAL de solicitante que se proporcionan 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:

Validación

Para validar la implementación de TOFU en tu dispositivo, usa las siguientes pruebas:

  • CTS: CtsWifiTestCases
  • VTS: VtsHalWifiSupplicantStaNetworkTargetTest