Versione breve: qualcuno sa se i certificati client X.509 dovrebbero funzionare su iPad per la posta IMAP? Sto sprecando il mio tempo cercando di ottenere una funzione che non funziona? Se l'app di posta integrata non supporta IMAP con certificati client X.509 (ovvero: funzionano solo con account Microsoft Exchange ActiveSync), ci sono app di terze parti che lo fanno?
È interessante solo iOS 5.1 o versioni successive; 5.1 è la versione con cui ho provato.
Sono l'amministratore di una rete che è richiesta dalla politica per utilizzare i certificati client X.509 per proteggere tutte le comunicazioni esterne, incluso il nostro server di posta IMAP (Cyrus IMAPd) e il server SMTP (postfix). Nessuno dei due accetta una connessione senza che il client presenti un certificato client X.509 valido. Disabilitare il requisito del certificato client non è un'opzione per me e non siamo autorizzati a tunnelizzare il traffico tramite VPN per motivi simili.
Ora abbiamo utenti iPad che vogliono connettersi alla nostra rete e stanno riscontrando che l'iPad è un po 'un problema.
Per gli utenti su macchine desktop di solito installiamo Thunderbird, in quanto ha un solido IMAP con un eccellente supporto per i certificati client; "funziona" ed è lo stesso da supportare su ogni piattaforma. Questa non è un'opzione per iPad.
Sfortunatamente l'app di posta integrata dell'iPad non sembra far fronte ai certificati client per IMAP. Posso installare il certificato root della nostra organizzazione e il certificato client dell'utente utilizzando l'utilità di configurazione iPhone. Entrambi sono mostrati come "verificati" in Impostazioni-> Generale-> Profili. L'iPad accetta quindi il nostro server come attendibile e omette qualsiasi avviso sull'identità del server non verificata.
Mail non riesce ancora a inviare un certificato client quando viene richiesto, quindi il server termina l'handshake. Non richiede all'utente di selezionarne uno, né invia automaticamente il certificato client installato per l'utente che corrisponde al certificato CA presentato dal server.
L'esame del flusso di traffico tra client e server mostra che la negoziazione TLS fallisce quando l'iPad risponde con un set vuoto di certificati client quando il server richiede certificati client. Vedi sotto.
Quando è collegato alla rete interna tramite WiFi crittografato, dove non è necessario alcun certificato client per ottenere la posta, il dispositivo si connette e scarica la posta correttamente. L'accesso esterno (WiFi pubblico o su 3G) non riesce, sia che io utilizzi la porta IMAP 993 con "Usa SSL" selezionato o che la porta IMAP + TLS 143 con o senza "Usa SSL" sia selezionata. Oltre all'apparente mancanza di supporto per la negoziazione dei certificati client per IMAP, è perfetto.
I riferimenti al supporto dei certificati client nella documentazione per il "supporto Enterprise" di Apple vengono visualizzati solo quando si discute di Microsoft Exchange ActiveSync e dove viene discusso il supporto di Cisco VPN.
Ci sono alcune domande sui forum di discussione di Apple, ma nessuna recente e nessuna risposta utile. Vorrei collegarmi a loro, ma i forum di Apple sono "in manutenzione" al momento.
Per ovviare al problema, posso probabilmente impostare una VPN bloccata utilizzando il supporto di connessione VPN automatica dell'iPad per parlare con una VPN IPSec autorizzata dal client che può parlare solo con i server IMAP e SMTP sulle porte appropriate più DNS, nient'altro. Sarebbe comunque un trucco abbastanza raccapricciante da perpetrare.
A proposito, la conversazione client <-> server è:
- C -> S TLSv1 Client Hello
- S -> C TLSv1 Server Ciao
- S -> C TLSv1 Certificate, Request Certificate, Server Hello Done (Invia cert server, firma cert root, DN del firmatario cert client accettato che risulta essere uguale alla radice che ha firmato il cert server)
- C -> S Certificato TLSv1 (set di certificati vuoto, zero certificati inclusi)
- S -> C TLSv1 Errore della stretta di mano
In altre parole, il server dice "questo sono io, mi aspetto che tu fornisca un certificato firmato dall'autorità per dimostrare chi sei" e il cliente risponde con "Uhm, i miei documenti sono in questa busta vuota qui. Guarda, un casuario! "
Il client ha installato il certificato root e ha installato un certificato client con il DN firmatario richiesto dal server.