Client de messagerie iPad - IMAP avec certificats client X.509?

11

Version courte: quelqu'un sait-il si les certificats clients X.509 sont censés fonctionner sur l'iPad pour le courrier IMAP? Suis-je en train de perdre mon temps à essayer d'obtenir une fonctionnalité qui ne fonctionne pas? Si l'application de messagerie intégrée ne prend pas en charge IMAP avec les certificats client X.509 (c'est-à-dire: ils ne fonctionnent qu'avec les comptes Microsoft Exchange ActiveSync), existe-t-il des applications tierces qui le font?

Seul iOS 5.1 ou plus récent est intéressant; 5.1 est la version avec laquelle j'ai testé.


Je suis l'administrateur d'un réseau qui est requis par la politique d'utiliser des certificats clients X.509 pour protéger toutes les communications externes, y compris notre serveur de messagerie IMAP (Cyrus IMAPd) et notre serveur SMTP (postfix). Aucun n'acceptera de connexion sans que le client présente un certificat client X.509 valide. La désactivation de l'exigence de certificat client n'est pas une option pour moi, et nous ne sommes pas autorisés à tunneliser le trafic via VPN pour des raisons similaires.

Nous avons maintenant des utilisateurs d'iPad qui souhaitent se connecter à notre réseau et constatons que l'iPad pose un petit problème.

Pour les utilisateurs sur des ordinateurs de bureau, nous installons généralement Thunderbird, car il possède un IMAP solide comme le roc avec un excellent support de certificat client; il "fonctionne juste" et est le même que celui de chaque plate-forme. Ce n'est pas une option pour iPad.

Malheureusement, l'application Mail intégrée de l'iPad ne semble pas faire face aux certificats clients pour IMAP. Je peux installer le certificat racine de notre organisation et le certificat client de l'utilisateur à l'aide de l'utilitaire de configuration iPhone. Les deux sont affichés comme "vérifiés" dans Paramètres-> Général-> Profils. L'iPad accepte alors notre serveur comme étant de confiance et omet tout avertissement indiquant que l'identité du serveur n'est pas vérifiée.

Mail ne parvient toujours pas à envoyer un certificat client lorsque celui-ci est demandé, le serveur met fin à la négociation. Il n'invite pas l'utilisateur à en sélectionner un et n'envoie pas automatiquement le certificat client qu'il a installé pour l'utilisateur qui correspond au certificat CA présenté par le serveur.

L'examen du flux de trafic entre le client et le serveur montre que la négociation TLS échoue lorsque l'iPad répond avec un ensemble vide de certificats client lorsque des certificats client sont demandés par le serveur. Voir ci-dessous.

Lorsqu'il est connecté au réseau interne via WiFi crypté, où aucun certificat client n'est requis pour recevoir du courrier, l'appareil se connecte et télécharge très bien le courrier. L'accès externe (WiFi public ou 3G) échoue, que j'utilise le port IMAP 993 avec "Utiliser SSL" coché ou le port IMAP + TLS 143 avec ou sans "Utiliser SSL" coché. Outre le manque apparent de support de négociation de certificat client pour IMAP, c'est parfait.

Les références à la prise en charge des certificats client dans la documentation pour la «prise en charge d'entreprise» d'Apple apparaissent uniquement lorsque Microsoft Exchange ActiveSync est abordé et lorsque la prise en charge de Cisco VPN est discutée.

Il y a quelques questions sur les forums de discussion d'Apple, mais aucune récente et aucune réponse utile. Je créerais un lien vers eux, mais les forums d'Apple sont "en panne pour maintenance" pour le moment.

Comme solution de contournement, je peux probablement configurer un VPN verrouillé à l'aide de la prise en charge de la connexion VPN automatique de l'iPad pour parler à un VPN IPSec authentifié client-cert qui ne peut parler qu'aux serveurs IMAP et SMTP sur les ports appropriés plus DNS, rien d'autre. Ce serait un hack assez horrible à devoir perpétrer.


BTW, la conversation client <-> serveur est:

  • C -> S TLSv1 Client Bonjour
  • S -> C TLSv1 Server Bonjour
  • S -> C TLSv1 Certificate, Certificate Request, Server Hello Done (envoie le certificat du serveur, le certificat racine de signature, le DN du signataire du certificat client accepté qui se trouve être le même que la racine qui a signé le certificat du serveur)
  • Certificat C -> S TLSv1 (ensemble de certificats vide, zéro certificat inclus)
  • S -> C TLSv1 Échec de la prise de contact

En d'autres termes, le serveur dit "c'est moi, je m'attends à ce que vous fournissiez un certificat signé par l'autorité pour prouver qui vous êtes" et le client répond "Um, mes papiers sont dans cette enveloppe vide ici. Regardez, un casoar! "

Le client a le certificat racine installé et un certificat client installé qui a le nom distinctif du signataire demandé par le serveur.

Craig Ringer
la source
Dans ce guide, Apple mentionne la prise en charge des certificats x.509 lorsque SSL est activé. Le document lui-même ne parle que de services basés sur des normes (IMAP, CalDAV, etc.) et ne mentionne ActiveSync nulle part. Cela me dit que cela devrait être possible. Je pense que le problème est que ce n'est pas une configuration typique, et je n'ai aucune expérience personnelle en utilisant IMAP dans un environnement d'entreprise (nous sommes une boutique Exchange).
bispymusic
Je sais que ce n'est pas gratuit, mais vous pouvez également consulter le support AppleCare OS d' Apple . Même le niveau le plus bas de ce service devrait couvrir la recherche de la solution à ce problème. Je souhaite que j'aurais pu être plus utile personnellement.
bispymusique
Merci pour la générosité. En fait, j'ai quitté ce travail (de 12 ans, l'esprit) et je suis maintenant parfaitement libre de me soucier du support de certificat client buggy dans ... enfin, tout, vraiment. Cela intéresse clairement les autres, donc j'espère qu'il y a un gourou iOS ici qui peut révéler la recette secrète. Personnellement, je soupçonne fortement que les certificats client X.509 ne sont probablement pas destinés à fonctionner sur quoi que ce soit, sauf Exchange ActiveSync.
Craig Ringer
1
Craig. Si vous écriviez ce que vous savez comme réponse - même ces commentaires seraient bons pour lier les choses. La grande chose est que les messages peuvent rester longtemps ici et être consultables. Une réponse de "ce fut une douleur, nous avons cherché, et rien n'a fonctionné alors nous sommes passés" serait utile et valait bien la prime IMO.
bmike
@bmike je le ferais, mais parce que je n'ai pas testé avec des appareils iOS plus récents, je laisse le soin à quelqu'un qui l'a fait.
Craig Ringer

Réponses:

1

La question semble être spécifique à l'utilisation de X.509 pour l'authentification auprès d'un service IMAP, qui n'est pas pris en charge par iOS. Le chiffrement et les signatures de courrier électronique S / MIME peuvent être effectués sur iOS, mais l'authentification aux services de messagerie utilisera toujours le nom d'utilisateur / mot de passe sur SSL ou TLS.

titulaire
la source
1
Vraiment étonnant qu'Apple ne puisse pas être dérangé par la prise en charge d'une telle fonctionnalité de sécurité de base. Surtout lorsque leurs bibliothèques SSL le prennent déjà en charge.
Craig Ringer
Un autre chemin qu'Apple ignore sur iOS prend en charge GSSAPI.
Brian Topping
1

Voir les commentaires ci-dessus, où le demandeur signale qu'il n'a jamais réussi à le faire fonctionner.

Ainsi, sur iOS 5.1, les certificats X.509 ne seront pas facilement utiles pour sécuriser les e-mails sur iOS sans effort d'ingénierie et peut-être pas du tout.

bmike
la source