iPad Mail Client - IMAP mit X.509 Client-Zertifikaten?


11

Kurzversion: Weiß jemand, ob X.509-Client-Zertifikate auf dem iPad für IMAP-Mail funktionieren sollen ? Verschwende ich meine Zeit damit, eine Funktion zu finden, die nicht funktioniert? Wenn die integrierte E-Mail-App IMAP mit X.509-Client-Zertifikaten nicht unterstützt (dh sie funktionieren nur mit Microsoft Exchange ActiveSync-Konten), gibt es Apps von Drittanbietern, die dies tun?

Nur iOS 5.1 oder höher ist von Interesse. 5.1 ist die Version, mit der ich getestet habe.


Ich bin der Administrator eines Netzwerks, das laut Richtlinie zur Verwendung von X.509-Clientzertifikaten zum Schutz der gesamten externen Kommunikation erforderlich ist, einschließlich unseres IMAP-Mailservers (Cyrus IMAPd) und SMTP-Servers (Postfix). Keiner von beiden akzeptiert eine Verbindung, ohne dass der Client ein gültiges X.509-Clientzertifikat vorlegt. Das Deaktivieren der Clientzertifikatsanforderung ist für mich keine Option, und aus ähnlichen Gründen ist es uns nicht gestattet, Datenverkehr über VPN zu tunneln.

Wir haben jetzt iPad-Benutzer, die eine Verbindung zu unserem Netzwerk herstellen möchten, und stellen fest, dass das iPad ein Problem darstellt.

Für Benutzer auf Desktop-Computern installieren wir normalerweise Thunderbird, da es über eine solide IMAP mit hervorragender Unterstützung für Client-Zertifikate verfügt. es "funktioniert einfach" und ist auf jeder Plattform gleich zu unterstützen. Dies ist keine Option für das iPad.

Leider scheint die integrierte Mail-App des iPad nicht mit Client-Zertifikaten für IMAP fertig zu werden. Ich kann das Stammzertifikat unserer Organisation und das Clientzertifikat des Benutzers mithilfe des iPhone-Konfigurationsdienstprogramms installieren. Beide werden unter Einstellungen-> Allgemein-> Profile als "verifiziert" angezeigt. Das iPad akzeptiert dann unseren Server als vertrauenswürdig und lässt alle Warnungen aus, dass die Identität des Servers nicht überprüft wurde.

Mail kann immer noch kein Client-Zertifikat senden, wenn eines angefordert wird, sodass der Server den Handshake beendet. Der Benutzer wird weder aufgefordert, eines auszuwählen, noch wird automatisch das von ihm installierte Client-Zertifikat für den Benutzer gesendet, das mit dem vom Server vorgelegten CA-Zertifikat übereinstimmt.

Die Untersuchung des Verkehrsflusses zwischen Client und Server zeigt, dass die TLS-Aushandlung fehlschlägt, wenn das iPad mit einem leeren Satz von Clientzertifikaten antwortet, wenn Clientzertifikate vom Server angefordert werden. Siehe unten.

Wenn das Gerät über verschlüsseltes WLAN mit dem internen Netzwerk verbunden ist und kein Client-Zertifikat erforderlich ist, um E-Mails abzurufen, stellt das Gerät eine Verbindung her und lädt E-Mails einwandfrei herunter. Der externe Zugriff (öffentliches WLAN oder über 3G) schlägt fehl, unabhängig davon, ob ich den IMAPs-Port 993 mit aktiviertem "SSL verwenden" oder den IMAP + TLS-Port 143 mit oder ohne aktiviertem "SSL verwenden" verwende. Abgesehen von dem offensichtlichen Mangel an Unterstützung für die Aushandlung von Clientzertifikaten für IMAP ist es perfekt.

Verweise auf die Unterstützung von Clientzertifikaten in der Dokumentation zur "Enterprise-Unterstützung" von Apple werden nur dort angezeigt, wo Microsoft Exchange ActiveSync und die Unterstützung von Cisco VPN erläutert werden.

In den Diskussionsforen von Apple gibt es einige Fragen, aber keine aktuellen und keine nützlichen Antworten. Ich würde auf sie verlinken, aber Apples Foren sind derzeit "wegen Wartungsarbeiten nicht verfügbar".

Als Problemumgehung kann ich wahrscheinlich ein gesperrtes VPN mithilfe der automatischen VPN-Verbindungsunterstützung des iPad einrichten, um mit einem von einem Client zertifizierten IPSec-VPN zu kommunizieren, das nur mit den IMAP- und SMTP-Servern an den entsprechenden Ports plus DNS kommunizieren kann , sonst nichts. Es wäre allerdings ein ziemlich grausamer Hack, ihn verüben zu müssen.


Übrigens lautet die Client <-> Server-Konversation:

  • C -> S TLSv1-Client Hallo
  • S -> C TLSv1 Server Hallo
  • S -> C TLSv1-Zertifikat, Zertifikatanforderung, Server Hello Done (Sendet Serverzertifikat, signierendes Stammzertifikat, DN des akzeptierten Clientzertifikatsignierers, der zufällig mit dem Stamm identisch ist, der das Serverzertifikat signiert hat)
  • C -> S TLSv1-Zertifikat (leerer Satz von Zertifikaten, keine Zertifikate enthalten)
  • S -> C TLSv1-Handshake-Fehler

Mit anderen Worten, der Server sagt "das bin ich, ich erwarte, dass Sie ein von der Behörde unterschriebenes Zertifikat vorlegen, um zu beweisen, wer Sie sind", und der Kunde antwortet mit "Ähm, meine Papiere befinden sich hier in diesem leeren Umschlag. Schauen Sie, ein Kasuar! ""

Auf dem Client ist das Stammzertifikat installiert, und auf dem Client ist ein Clientzertifikat installiert, dessen Unterzeichner-DN vom Server angefordert wird.


In diesem Handbuch erwähnt Apple die Unterstützung von x.509-Zertifikaten, wenn SSL aktiviert ist. Das Dokument selbst befasst sich nur mit standardbasierten Diensten (IMAP, CalDAV usw.) und erwähnt nirgendwo ActiveSync. Das sagt mir, dass dies möglich sein sollte. Ich denke, das Problem ist, dass dies kein typisches Setup ist und ich keine persönlichen Erfahrungen mit IMAP in einer Unternehmensumgebung habe (wir sind ein Exchange-Shop).
Bispymusic

Ich weiß, dass dies nicht kostenlos ist, aber Sie können sich auch die AppleCare OS-Unterstützung von Apple ansehen . Selbst die unterste Stufe dieses Dienstes sollte die Lösung dieses Problems abdecken. Ich wünschte, ich hätte persönlich mehr helfen können.
Bispymusic

Danke für das Kopfgeld. Ich habe diesen Job tatsächlich verlassen (von 12 Jahren) und bin jetzt selig frei von der Sorge um die Unterstützung von fehlerhaften Client-Zertifikaten in ... nun, wirklich alles. Dies ist eindeutig für andere von Interesse, daher hoffe ich, dass es hier einen iOS-Guru gibt, der das geheime Rezept enthüllen kann. Mein persönlicher starker Verdacht ist, dass X.509-Client-Zertifikate wahrscheinlich nur für Exchange ActiveSync geeignet sind.
Craig Ringer

1
Craig. Wenn Sie alles, was Sie wissen, als Antwort aufschreiben würden - selbst diese Kommentare wären gut, um die Dinge zusammenzubinden. Das Tolle ist, dass Beiträge hier lange sitzen und trotzdem durchsuchbar sind. Eine Antwort von "Es war ein Schmerz, wir haben gesucht und nichts hat funktioniert, also sind wir weitergegangen" wäre hilfreich und das Kopfgeld IMO wert.
bmike

@bmike würde ich, aber da ich nicht mit neueren iOS-Geräten getestet habe, überlasse ich es jemandem, der hat.
Craig Ringer

Antworten:


1

Die Frage scheint spezifisch für die Verwendung von X.509 zur Authentifizierung bei einem IMAP-Dienst zu sein, der von iOS nicht unterstützt wird. S / MIME-E-Mail-Verschlüsselung und -Signaturen können unter iOS durchgeführt werden. Bei der Authentifizierung bei E-Mail-Diensten wird jedoch weiterhin der Benutzername / das Kennwort über SSL oder TLS verwendet.


1
Wirklich erstaunlich, dass Apple sich nicht die Mühe machen kann, solch ein grundlegendes Sicherheitsmerkmal zu unterstützen. Besonders wenn ihre SSL-Bibliotheken dies bereits unterstützen.
Craig Ringer

Ein anderer Pfad, den Apple unter iOS ignoriert, ist die Unterstützung von GSSAPI.
Brian Topping

1

Siehe die obigen Kommentare, in denen der Fragesteller berichtet, dass dies nie funktioniert hat.

Unter iOS 5.1 sind X.509-Zertifikate daher nicht ohne weiteres nützlich, um E-Mails unter iOS ohne technischen Aufwand und möglicherweise überhaupt nicht zu sichern.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.