Per i dispositivi con Android 13 o versioni successive, Android supporta l'approccio di autenticazione Trust on First Use (TOFU) (RFC7435), che consente agli utenti di considerare attendibile una rete aziendale (EAP) installando la CA radice utilizzata dal server e impostando il relativo nome di dominio in una rete salvata. TOFU consente al dispositivo di ottenere una chiave pubblica non autenticata quando un utente si connette per la prima volta a una rete aziendale e di conservarla per le connessioni successive.
Sfondo
Rispetto alle reti personali che richiedono solo una password, le reti aziendali utilizzano l'autenticazione PKI (infrastruttura a chiave pubblica), che richiede al client di preinstallare i certificati. In Android 11 o versioni precedenti, gli utenti possono selezionare l'opzione Non convalidare per il certificato CA del server nelle impostazioni di rete, ignorando la convalida del certificato lato server. Tuttavia, per rafforzare la sicurezza e rispettare la specifica WPA R2, Android 12 ha introdotto un requisito per le reti aziendali che prevede la convalida del certificato del server. Questo requisito aggiuntivo ha creato una barriera per gli utenti, in quanto devono installare un certificato CA per queste reti. TOFU consente agli utenti di connettersi a una rete aziendale basata su PKI semplicemente accettando la CA radice.
Comportamento della funzionalità
I dispositivi che supportano TOFU mostrano il seguente comportamento quando un utente si connette a una rete aziendale che non dispone di una chiave pubblica autenticata già installata.
Connettersi a una nuova rete tramite il selettore Wi-Fi
Seleziona una nuova rete aziendale nel selettore Wi-Fi.
Il dispositivo mostra una finestra di dialogo (Figura 1) per confermare se la rete è attendibile.
Tocca Sì, connetti per accettare la connessione di rete oppure tocca No, non connettere per rifiutarla.
Se tocchi Sì, connetti, il dispositivo configura automaticamente i parametri di sicurezza, si connette alla rete e attiva la connessione automatica per la rete.
Se tocchi No, non connettere, il dispositivo si disconnette dalla rete e disattiva la connessione automatica per la rete.
Figura 1. Finestra di dialogo per la funzionalità TOFU
Connetti a rete esistente con la connessione automatica attivata
Quando si connette a una rete aziendale con la connessione automatica attivata, ma senza un certificato CA valido, il dispositivo si connette automaticamente, quindi visualizza una notifica persistente (non eliminabile).
Tocca la notifica.
Il dispositivo mostra una finestra di dialogo (Figura 1) per confermare se la rete è attendibile.
Tocca Sì, connetti per accettare la connessione di rete oppure tocca No, non connettere per rifiutarla.
Se tocchi Sì, connetti, il dispositivo configura automaticamente i parametri di sicurezza, si connette alla rete e attiva la connessione automatica per la rete.
Se tocchi No, non connettere, il dispositivo si disconnette dalla rete e disattiva la connessione automatica per la rete.
Implementazione
Per supportare la funzionalità TOFU, implementa le HAL supplicant fornite in
Android Open Source Project (AOSP) all'indirizzo
/hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant
.
In Android 13 sono disponibili le seguenti API pubbliche per l'utilizzo da parte delle app:
WifiManager#isTrustOnFirstUseSupported()
: Indica se il dispositivo supporta TOFU.WifiEnterpriseConfig#enableTrustOnFirstUse(boolean)
: Attiva TOFU.WifiEnterpriseConfig#isTrustOnFirstUseEnabled()
: Indica se TOFU è abilitato.
Convalida
Per convalidare l'implementazione di TOFU sul tuo dispositivo, utilizza i seguenti test:
- CTS:
CtsWifiTestCases
- VTS:
VtsHalWifiSupplicantStaNetworkTargetTest