Cliente de correo iPad - IMAP con certificados de cliente X.509?

11

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 obtener 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 ActiveSync de Microsoft Exchange), ¿hay alguna aplicación de terceros que lo haga?

Solo iOS 5.1 o posterior es de interés; 5.1 es la versión con la que he estado probando.


Soy el administrador de una red que la política requiere para 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). Ninguno 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 desean conectarse a nuestra red y consideran que el iPad es un problema.

Para los usuarios de máquinas de escritorio, generalmente instalamos Thunderbird, ya que tiene un IMAP sólido como una roca con un excelente soporte de certificado de cliente; "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 incorporada en el 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 utilizando la Utilidad de configuración de iPhone. Ambos se muestran como "verificados" en Configuración-> General-> Perfiles. El iPad luego acepta nuestro servidor como confiable y omite cualquier advertencia sobre la identidad del servidor que no se verifica.

El correo todavía no puede enviar un certificado de cliente cuando se solicita uno, por lo que el servidor termina 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 de TLS falla cuando el iPad responde con un conjunto vacío de certificados de cliente cuando el servidor los solicita. Vea abajo.

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

Las referencias al soporte del certificado del cliente en la documentación para el "Soporte de Enterprise" de Apple solo aparecen donde se discute Microsoft Exchange ActiveSync, y donde se discute el soporte de Cisco VPN.

Hay algunas preguntas en los foros de discusión de Apple, pero no hay preguntas recientes ni respuestas útiles. Me vincularía a ellos, pero los foros de Apple están "inactivos por 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 autorizada certificada por el cliente que solo puede hablar 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 del cliente <-> servidor es:

  • C -> S TLSv1 Client Hola
  • S -> C TLSv1 Server Hola
  • S -> C Certificado TLSv1, Solicitud de certificado, Server Hello Done (Envía certificado de servidor, certificado raíz de firma, DN del firmante de certificado de cliente aceptado que resulta ser la misma que la raíz que firmó el certificado de servidor)
  • C -> S Certificado TLSv1 (conjunto vacío de certificados, cero certificados incluidos)
  • S -> C TLSv1 Fallo de apretón de manos

En otras palabras, el servidor dice "este soy yo, espero que me proporciones un certificado firmado por la autoridad para demostrar quién eres" 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 un certificado de cliente instalado que tiene el DN de firmante solicitado por el servidor.

Craig Ringer
fuente
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 a 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 usando IMAP en un entorno corporativo (somos una tienda de Exchange).
bispymusic
Sé que esto no es gratuito, pero también puede consultar el soporte del sistema operativo AppleCare de Apple . Incluso el nivel más bajo de este servicio debería cubrir la solución de este problema. Ojalá pudiera haber sido de más ayuda personalmente.
bispymusic
Gracias por la generosidad. De hecho, dejé ese trabajo (de 12 años, mente) y ahora estoy felizmente libre de la preocupación por el soporte defectuoso del certificado de cliente en ... bueno, todo, realmente. 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 Exchange ActiveSync.
Craig Ringer el
1
Craig Si escribiera lo que sabe como respuesta, incluso esos comentarios serían buenos para vincular las cosas. Lo bueno 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 bien vale la pena la recompensa de la OMI.
bmike
@bmike lo haría, pero como no lo he probado con dispositivos iOS más recientes, se lo dejaré a alguien que sí lo haya hecho.
Craig Ringer el

Respuestas:

1

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

titular
fuente
1
Realmente sorprendente que Apple no se moleste en soportar una característica de seguridad tan básica. Especialmente cuando sus bibliotecas SSL ya lo admiten.
Craig Ringer
Otro camino que Apple ignora en iOS es el soporte de GSSAPI.
Brian Topping
1

Vea los comentarios anteriores donde el autor de la pregunta informa que nunca consiguió que esto funcione.

Por lo tanto, en iOS 5.1, los certificados X.509 no serán de utilidad para proteger el correo electrónico en iOS sin algún esfuerzo de ingeniería y tal vez nada.

bmike
fuente