Cliente de iPad Mail: ¿IMAP con certificados de cliente X.509?

Versión corta: ¿Alguien sabe si se supone que los certificados de cliente X.509 funcionan en el iPad para el correo IMAP? ¿Estoy perdiendo el tiempo tratando de hacer funcionar una función que no funciona? Si la aplicación de correo integrada no es compatible con IMAP con certificados de cliente X.509 (es decir, solo funcionan con cuentas de Microsoft Exchange ActiveSync), ¿hay alguna aplicación de terceros que lo sea?

Solo interesa iOS 5.1 o posterior; 5.1 es la versión con la que he estado probando.


Soy el administrador de una red que, según la política, debe usar certificados de cliente X.509 para proteger todas las comunicaciones externas, incluido nuestro servidor de correo IMAP (Cyrus IMAPd) y el servidor SMTP (postfix). Tampoco aceptará una conexión sin que el cliente presente un certificado de cliente X.509 válido. Deshabilitar el requisito de certificado de cliente no es una opción para mí, y no se nos permite canalizar el tráfico a través de VPN por razones similares.

Ahora tenemos usuarios de iPad que quieren conectarse a nuestra red y encuentran que el iPad es un pequeño problema.

Para los usuarios de equipos de escritorio, generalmente instalamos Thunderbird, ya que tiene un IMAP sólido como una roca con excelente compatibilidad con certificados de clientes; "simplemente funciona" y es lo mismo para soportar en todas las plataformas. Esta no es una opción para iPad.

Desafortunadamente, la aplicación de correo integrada del iPad no parece hacer frente a los certificados de cliente para IMAP. Puedo instalar el certificado raíz de nuestra organización y el certificado de cliente del usuario mediante la Utilidad de configuración de iPhone. Ambos se muestran como "verificados" en Configuración->General->Perfiles. Luego, el iPad acepta nuestro servidor como confiable y omite cualquier advertencia sobre la identidad del servidor que no se está verificando.

El correo aún no puede enviar un certificado de cliente cuando se solicita uno, por lo que el servidor finaliza el protocolo de enlace. No solicita al usuario que seleccione uno, ni envía automáticamente el certificado de cliente que ha instalado para el usuario que coincide con el certificado de CA presentado por el servidor.

El examen del flujo de tráfico entre el cliente y el servidor muestra que la negociación TLS falla cuando el iPad responde con un conjunto vacío de certificados de cliente cuando el servidor exige certificados de cliente. Vea abajo.

Cuando se conecta a la red interna a través de WiFi encriptado, donde no se requiere un certificado de cliente para recibir el correo, el dispositivo se conecta y descarga el correo sin problemas. El acceso externo (WiFi público o 3G) falla, ya sea que use el puerto IMAP 993 con "Usar SSL" marcado o el puerto IMAP+TLS 143 con o sin "Usar SSL" marcado. Aparte de la aparente falta de soporte de negociación de certificados de cliente para IMAP, es perfecto.

Las referencias a la compatibilidad con certificados de clientes en la documentación de "Soporte para empresas" de Apple solo aparecen donde se analiza Microsoft Exchange ActiveSync y donde se analiza la compatibilidad con VPN de Cisco.

Hay algunas preguntas en los foros de discusión de Apple, pero ninguna reciente ni respuestas útiles. Me vincularía a ellos, pero los foros de Apple están "fuera de mantenimiento" en este momento.

Como solución alternativa, probablemente pueda configurar una VPN bloqueada usando el soporte de conexión VPN automática del iPad para hablar con una VPN IPSec certificada por el cliente que solo puede comunicarse con los servidores IMAP y SMTP en los puertos apropiados más DNS, nada más. Sin embargo, sería un truco bastante espantoso tener que perpetrarlo.


Por cierto, la conversación cliente<->servidor es:

  • C -> S Cliente TLSv1 Hola
  • S -> C Servidor TLSv1 Hola
  • S -> C Certificado TLSv1, Solicitud de certificado, Servidor Hello Listo (Envía el certificado del servidor, firma el certificado raíz, DN del firmante del certificado del cliente aceptado que resulta ser el mismo que el raíz que firmó el certificado del servidor)
  • C -> S Certificado TLSv1 (conjunto vacío de certificados, cero certificados incluidos)
  • S -> C TLSv1 Fallo de protocolo de enlace

En otras palabras, el servidor dice "Soy yo, espero que proporcione un certificado firmado por una autoridad para probar quién es usted" y el cliente responde con "Um, mis papeles están en este sobre vacío aquí. ¡Mira, un casuario! "

El cliente tiene instalado el certificado raíz y tiene instalado un certificado de cliente que tiene el DN del firmante exigido por el servidor.

En esta guía, Apple menciona la compatibilidad con certificados x.509 cuando SSL está habilitado. El documento en sí solo habla de servicios basados ​​en estándares (IMAP, CalDAV, etc.) y no menciona ActiveSync en ninguna parte. Eso me dice que esto debería ser posible. Creo que el problema es que esta no es una configuración típica y no tengo experiencia personal en el uso de IMAP en un entorno corporativo (somos una tienda de Exchange).
Sé que esto no es gratis, pero también puede buscar en AppleCare OS Support de Apple . Incluso el nivel más bajo de este servicio debería cubrir la solución a este problema. Ojalá hubiera podido ser de más ayuda personalmente.
Gracias por la generosidad. De hecho, dejé ese trabajo (de 12 años, mente) y ahora estoy felizmente libre de preocuparme por el soporte de certificado de cliente con errores en ... bueno, todo, en realidad. Esto es claramente de interés para otros, así que espero que haya un gurú de iOS aquí que pueda revelar la receta secreta. Mi fuerte sospecha personal es que los certificados de cliente X.509 probablemente no estén destinados a funcionar en nada excepto en Exchange ActiveSync.
Craig. Si escribiera lo que sabe como respuesta, incluso esos comentarios serían buenos para atar las cosas. Lo mejor es que las publicaciones pueden permanecer aquí durante mucho tiempo y aún se pueden buscar. Una respuesta de "fue un dolor, buscamos y nada funcionó, así que seguimos adelante" sería útil y valdría la pena la recompensa en mi opinión.
@bmike Lo haría, pero como no he probado con dispositivos iOS más recientes, se lo dejo a alguien que lo haya hecho.

Respuestas (2)

La pregunta parece ser específica del uso de X.509 para la autenticación en un servicio IMAP, que no es compatible con iOS. El cifrado y las firmas de correo electrónico S/MIME se pueden realizar en iOS, pero la autenticación para los servicios de correo seguirá utilizando el nombre de usuario/contraseña sobre SSL o TLS.

Realmente sorprendente que Apple no se moleste en admitir una función de seguridad tan básica. Especialmente cuando sus bibliotecas SSL ya lo admiten.
Otro camino que Apple está ignorando en iOS es la compatibilidad con GSSAPI.

Vea los comentarios anteriores donde el autor de la pregunta informa que nunca lograron que esto funcionara.

Por lo tanto, en iOS 5.1, los certificados X.509 no se utilizarán fácilmente para proteger el correo electrónico en iOS sin un poco de esfuerzo de ingeniería y tal vez sin ningún esfuerzo.