Versão curta: Alguém sabe se os certificados de cliente X.509 devem funcionar no iPad para correio IMAP? Estou perdendo meu tempo tentando obter um recurso que não funciona? Se o aplicativo de correio interno não suportar IMAP com certificados de cliente X.509 (ou seja: eles funcionam apenas com contas do Microsoft Exchange ActiveSync), existem aplicativos de terceiros que o façam?
Somente o iOS 5.1 ou mais recente é interessante; 5.1 é a versão com a qual tenho testado.
Sou administrador de uma rede exigida pela política para usar certificados de cliente X.509 para proteger toda a comunicação externa, incluindo nosso servidor de email IMAP (Cyrus IMAPd) e servidor SMTP (postfix). Nenhum deles aceitará uma conexão sem que o cliente apresente um certificado de cliente X.509 válido. Desabilitar o requisito de certificado de cliente não é uma opção para mim, e não temos permissão para encapsular o tráfego via VPN por motivos semelhantes.
Agora, temos usuários de iPad que desejam se conectar à nossa rede e consideram o iPad um pouco problemático.
Para usuários em máquinas desktop, geralmente instalamos o Thunderbird, pois possui um IMAP sólido, com excelente suporte ao certificado do cliente; "simplesmente funciona" e é o mesmo para oferecer suporte em todas as plataformas. Esta não é uma opção para o iPad.
Infelizmente, o aplicativo Mail incorporado do iPad não parece lidar com certificados de cliente para IMAP. Posso instalar o certificado raiz da nossa organização e o cliente do usuário usando o Utilitário de configuração do iPhone. Ambos são mostrados como "verificados" em Configurações-> Geral-> Perfis. O iPad aceita nosso servidor como confiável e omite quaisquer avisos sobre a identidade do servidor não ser verificada.
O correio ainda falha ao enviar um certificado de cliente quando um é exigido, para que o servidor encerre o handshake. Ele não solicita que o usuário selecione um, nem envia automaticamente o certificado de cliente que ele instalou para o usuário que corresponde ao certificado de CA apresentado pelo servidor.
O exame do fluxo de tráfego entre cliente e servidor mostra que a negociação do TLS falha quando o iPad responde com um conjunto vazio de certificados de cliente quando os certificados de cliente são exigidos pelo servidor. Ver abaixo.
Quando conectado à rede interna por WiFi criptografado, em que nenhum certificado de cliente é necessário para receber e-mails, o dispositivo conecta e baixa os e-mails. O acesso externo (Wi-Fi público ou mais de 3G) falha, se eu uso a porta 993 IMAPs com "Usar SSL" marcado ou a porta 143 IMAP + TLS com ou sem a opção "Usar SSL" marcada. Além da aparente falta de suporte à negociação de certificado de cliente para IMAP, é perfeito.
As referências ao suporte ao certificado de cliente na documentação do "Suporte corporativo" da Apple aparecem apenas onde o Microsoft Exchange ActiveSync é discutido e onde o suporte da Cisco VPN é discutido.
Existem algumas perguntas nos fóruns de discussão da Apple, mas nenhuma recente e nenhuma resposta útil. Eu ligaria para eles, mas os fóruns da Apple estão "em manutenção" no momento.
Como solução alternativa, provavelmente posso configurar uma VPN bloqueada usando o suporte à conexão VPN automática do iPad para conversar com uma VPN IPSec de autenticação de cliente certificada que só pode conversar com os servidores IMAP e SMTP nas portas apropriadas e no DNS, nada mais. Seria um truque bastante horrível ter que perpetrar embora.
BTW, a conversa do servidor do cliente <-> é:
- Olá, cliente C -> S TLSv1
- Olá, servidor S -> C TLSv1
- S -> C Certificado TLSv1, solicitação de certificado, servidor Hello Done (envia certificado do servidor, certificado raiz de assinatura, DN do assinante de certificado de cliente aceito, que é o mesmo que a raiz que assinou o certificado do servidor)
- C -> S TLSv1 Certificate (conjunto vazio de certificados, zero certificados incluídos)
- S -> C Falha no handshake TLSv1
Em outras palavras, o servidor diz "sou eu, espero que você forneça um certificado assinado pela autoridade para provar quem você é" e o cliente responde com "Hum, meus documentos estão neste envelope vazio aqui. Olha, um casuar! "
O cliente tem o certificado raiz instalado e um certificado de cliente instalado que possui o DN do assinante exigido pelo servidor.