-
Technisches Gebiet
-
Diese Erfindung betrifft das Gebiet des verschlüsselten Nachrichtenaustauschs und insbesondere Verfahren zur Bereitstellung digitaler Zertifikate von Empfängern.
-
Stand der Technik
-
Asymmetrische Kryptosysteme basieren darauf, dass Daten mit einem Chiffrierschlüssel verschlüsselt und mit einem dazu inversen Dechiffrierschlüssel wieder entschlüsselt werden können. Der Chiffrierschlüssel kann veröffentlicht werden, während der Dechiffrierschlüssel vom Eigentümer geheim gehalten wird. Ein System zur Verwaltung solcher Schlüssel wird als Public Key Infrastruktur (PKI) bezeichnet. Für PKI existieren zahlreiche Standards und Verfahren, vgl. „B. Schneier; Applied Cryptography 2nd ed.; Wiley & Sons; 1996”; S. 185–187, S. 461–502, S. 574–589.
-
Der X.509 Standard „ITU-T X.509, Directory Information Technology – Open Systems Interconnection – The Directory: Public-key and attribute certificate frameworks, 2005” beschreibt insbesondere die Struktur von digitalen Zertifikaten. Ein digitales Zertifikat ordnet den öffentlichen Schlüssel eines Public Key Kryptosystems einem Teilnehmer zu und wird von einer vertrauenswürdigen Zertifizierungsstelle, (Certification Authority, CA) digital signiert. Digitale Zertifikate werden zur Verschlüsselung und digitalen Signierung von Daten sowie zur Authentisierung von Teilnehmern und Systemen verwendet. Teilnehmerzertifikate können effizient über Verzeichnisdienste zur Verfügung gestellt werden.
-
Als Zugriffsprotokoll für Verzeichnisdienste hat sich das Lightweight Directory Access Protocol (LDAP) durchgesetzt, das im Internet RFC 4510 spezifiziert ist und durch eine Reihe weiterer RFCs präzisiert und erweitert wurde. LDAP definiert Operationen zur Abfrage, Aktualisierung, sowie zum Schreiben und Löschen eines Verzeichnisses. Die wesentliche Operation für Teilnehmer ist die Suchoperation „search”, mit der Informationen im Verzeichnis lokalisiert und geholt werden können.
-
Die Verschlüsselung und digitale Signierung von E-Mails erfolgt in gängigen Produkten mittels Secure Multipurpose Internet Mail Extensions (S/MIME) gemäß RFC 3851. Viele E-Mailclients wie Microsoft Outlook, Lotus Notes oder Mozilla Thunderbird verwenden diesen Standard. Zunehmend wird S/MIME auch durch mobile Endgeräte unter iOS, Android und BlackBerry unterstützt.
-
Bei S/MIME wird der Datenverschlüsselungsschlüssel mit dem öffentlichen Schlüssel des jeweiligen Empfängers verschlüsselt. Der Empfänger entschlüsselt mit Hilfe seines privaten Schlüssels zunächst den Datenverschlüsselungsschlüssel und hiermit anschließend die Inhaltsdaten.
-
Der öffentliche Schlüssel eines Empfängers kann vom E-Mailclient über LDAP mittels einer Suchabfrage nach dem digitalen Zertifikat des Empfängers von einem Verzeichnisdienst abgefragt werden. Zur Suche wird üblicherweise das Attribut „mail” verwendet.
-
Gängige Desktop-Clients wie Outlook, Notes oder Thunderbird verwenden zur Suche nach Zertifikaten das LDAP Protokoll. Dabei werden die Zertifikatssuche und die anschließende Verschlüsselung transparent durchgeführt, wenn der Benutzer die Option „Verschlüsseln” gewählt hat.
-
In der Patentschrift
DE 10 2004 015 457 B3 wird ein Verfahren beschrieben, mit dem bei LDAP Suchanfragen vertrauliche Daten in der Antwortnachricht verschlüsselt werden können. In den Abschnitten [0012] bis [0014] und [0027] wird dort gezeigt, dass sich dieses Verfahren insbesondere auch für LDAP Suchanfragen nach digitalen Zertifikaten, beispielsweise in Form eines LDAP-Proxys, eignet.
-
Einige E-Mailclients wie beispielsweise Apple Mail oder mobile Clients unter iOS und Android nutzen nicht das LDAP Protokoll zur Zertifikatssuche sondern verwenden hierzu spezielle Resolve Nachrichten, die das zum Zugriff auf einen Kollaborationsserver verwendete E-Mail Zugriffsprotokoll anbietet.
-
Eine Resolve Nachricht dient dazu, Kontaktinformationen für einen angegebenen Namen, Alias oder eine E-Mailadresse sowie Frei-/Beschäftigt Statusinformationen abzufragen. Zusätzlich können auch Zertifikate abgefragt werden.
-
Zum Zugriff auf einen Kollaborationsdient wie Microsoft Exchange stehen XML-basierte Protokolle wie das Exchange WebServices (EWS) Protokoll sowie Exchange ActiveSync (EAS) zur Verfügung, die zum Datentransport HTTP oder HTTPS verwenden.
-
EWS ist insbesondere für die Verwendung durch Desktop-Clients geeignet. Eine Spezifikation ist in der Exchange Web Services Reference unter http://msdn.microsoft.com/en-us/library/bb204119(v=exchg.140).aspx zu finden.
-
Die Beschaffung von Zertifikaten erfolgt im Exchange WebServices Protokoll über die Resolve Nachricht „ResolveNames Operation”.
-
In der ResolveNames Operation wird auch eine mehrdeutige Namensangabe bedient, indem Informationen über die Kandidaten zurück geliefert werden, mit denen der Client dann den Namen selbst auflösen kann.
-
Ein Zertifikat wird in dem Attribut „UserSMIMECertificate” des Contact Elements in der ResolveNames Response zurückgeliefert.
-
EAS wurde insbesondere für die Verwendung durch mobile Endgeräte konzipiert. Eine Spezifikation ist in [MS-ASCMD]: Exchange ActiveSync: Command Reference Protocol unter http://msdn.microsoft.com/en-us/library/dd299441(v=exchg.80).aspx zu finden.
-
Die Kodierung der Nachrichten des ActiveSync Protokolls erfolgt in WBXML (WAP Binary XML), welche insbesondere für schmalbandige Verbindungen geeignet ist.
-
Im ActiveSync Protokoll erfolgt die Beschaffung von Zertifikaten zur Verschlüsselung von S/MIME Nachrichten über die Resolve Nachricht „ReslveRecipients Command”.
-
In dem CertificateRetrieval Element im ResolveRecipients Command kann angegeben werden ob entweder kein Zertifikat, das vollständige Zertifikat oder ein sogenanntes Mini-Zertifikat für jeden aufgelösten Empfänger zurückgeliefert werden soll.
-
Mit dem MaxCertificates Element im ResolveRecipients Command kann die Gesamtanzahl der vom Server zurückgelieferten Zertifikate begrenzt werden.
-
Die Zertifikate oder Mini-Zertifikate eines Empfängers können in der ResolveRecipients Command Response im (Child-)Element Certificates des (Parent-)Elements Recipient enthalten sein.
-
In der Zeichnung Seite 1 ist der Ablauf im EWS und EAS Protokoll skizziert. Der Client sendet eine Resolve Nachricht an den Kollaborationsserver, welches die Adressen der vom Anwender angegebenen Empfänger E
1–E
n enthält
1. Nachdem der Kollaborationsdienst die Resolve Nachricht erhalten hat, kann er in seiner lokalen Datenbank oder dem angeschlossenen Verzeichnisdienst (Directory Server) nach den Empfängeradressen suchen
2. Der Directory Server liefert die hierfür gefundenen Einträge inklusive der enthaltenen Zertifikate Z
1–Z
n an den Kollaborationsserver zurück
3. Der Client erhält die Zertifikate in der Resolve Antwortnachricht (ResolveNamesResponse bei EWS sowie ResolveRecipients Response bei EAS) vom Kollaborationsserver
4. Eine detaillierte Beschreibung dieses Verfahrens ist in der Patentschrift
US 7,490,127 B2 zu finden.
-
In
US 8,151,106 B2 wird ein Verfahren beschrieben, welches es einem mobilen Endgerät ermöglicht, Zertifikate für eine während einer verbindungslosen Zeitperiode (Offline Modus) aufgebaute Liste von Empfängern mittels ResolveRecipients zu beschaffen, sobald das Gerät wieder eine Netzwerkverbindung hat.
-
Daneben gibt es andere Verfahren zur Beschaffung von Zertifikaten auf (mobile) Endgeräte. In der Patentschrift
CA 2476914 A1 wird ein Verfahren zur Suche und Synchronisation von Zertifikaten für vorhandene Kontakte beschrieben, mit dem Ziel dass ein Anwender deren Beschaffung für sein Adressbuch nicht manuell ausführen muss. Dabei werden mehrere Zertifikatsserver beispielsweise mittels LDAP durchsucht und die Ergebnisse werden im lokalen Adressbuch oder Zertifikatsspeicher gespeichert Ein Verfahren zur Synchronisation von CA Zertifikaten wird in
EP 1 632 871 A1 beschrieben.
-
Alternativ können Zertifikate auch von einem zentralen Server auf die Endgeräte verteilt werden, wie es beispielsweise in
EP 2 629 479 A1 beschrieben ist. Solche Verfahren werden in Mobile Device Management Systemen verwendet.
-
Neben der Beschaffung der benötigten Zertifikate muss auch sichergestellt werden, dass die Zertifikate gültig und vertrauenswürdig sind. Hierfür werden geeignete Validierungsverfahren benötigt.
-
Die Gültigkeitsprüfung wird üblicherweise mit Hilfe von Sperrlisten (Certificate Revocation List, CRL) gemäß RFC 5280 oder Online Statusabfragen (Online Certificate Status Protokol, OCSP) gemäß RFC 2560 durchgeführt.
-
Im Exchange WebServices Protokoll werden die Zertifikate vom Client mit Hilfe der oben genannten Sperrlisten oder Online Statusabfragen überprüft.
-
Im ActiveSnyc Protokoll können Zertifikate, die der Client entweder über ResolveRecipients oder beispielsweise über empfangene signierte E-Mails erhalten hat über das Kommando ValidateCert validiert werden.
-
In der Zeichnung Seite 2 ist der Ablauf skizziert. Der (mobile) E-Mailclient sendet eine Nachricht mit dem ValidateCert Kommando an den Kollaborationsserver, welches die Zertifikate Z1–Zn enthält 1. Nachdem er die ValidateCert Anfrage erhalten hat muss der Kollaborationsserver prüfen, ob das Zertifikat sowie die gesamte Zertifikatskette vertrauenswürdig und gültig ist. Dies kann er über eine Abfrage der Sperrliste (Certificate Revocation List), CRL) vornehmen, die er über den lokalen Verzeichnisdienst (Directory Server) oder beispielsweise einen Webserver anfordern kann 2a. Der Directory Server liefert die Sperrliste an den Kollaborationsserver zurück und der Kollaborationsserver prüft, ob eines der Zertifikate Z1–Zn hier aufgeführt ist 3a. Alternativ kann der Kollaborationsserver eine Statusanfrage für Z1–Zn an einen Validierungsserver senden, beispielsweise über das OCSP Protokoll (Online Certificate Status Protocol) 2b. Der Validierungsserver liefert für jedes angefragte Zertifikat den Status, beispielsweise good, revoked oder unknown an den Kollaborationsserver zurück 3b. Der Kollaborationsserver sendet dem Client eine ValidateCert Response Nachricht mit dem entsprechenden Status, beispielsweise 1 (Success), 15 (Revoked) oder 14 (Offline) 4.
-
Es sind verschiedene Methoden bekannt, um Protokollnachrichten zwischen LDAP und anderen Protokollen umzusetzen. In der Patentschrift
US 2005/0 289 174 A1 wird in den Abschnitten [0033] und [0034] eine Methode beschrieben, wie SQL Zugriffsanfragen in entsprechende LDAP Anfragen sowie die LDAP Antwortnachrichten in SQL Antworten umgesetzt werden können. In
US 2011/0 145 320 A1 wird in den Abschnitten [0009],[0011], [0012], [0030], [0036] sowie in Claim 1 und im Abstract mit Figur beschrieben, wie Protokollnachrichten zwischen dem Advanced Message Queuing Protocol (AMQP) und LDAP umgesetzt werden können.
-
Neben der Suche nach digitalen Zertifikaten kann LDAP in einer Public Key Infrastruktur für weitere Aufgaben dienen. in der Patentschrift
US 2006/0 282 663 A1 wird in den Abschnitten [0006], [0011], [0022] bis [0025] sowie im Abstract mit Figur beschrieben, wie Daten aus einem Verzeichnisdienst über LDAP abgefragt und gemäß vorgegebener Regeln transformiert werden können, um daraus eine Zertifikatsanforderung zu erzeugen.
-
Beschreibung des Problems
-
Wenn die Absenderin Alice einer PKI 1 eine verschlüsselte Nachricht an den Empfänger Bob in der PKI 2 senden möchte, benötigt sie dessen Teilnehmerzertifikat und muss diesem vertrauen.
-
Bei dem zuvor beschriebenen Verfahren für ResolveNames (EWS) und ResolveRecipients (EAS) sucht der Kollaborationsserver nur in der lokalen Datenbank oder dem lokalen Verzeichnis der PKI 1. Das Zertifikat von Bob aus PKI 2 wird hier üblicherweise nicht gefunden. Somit kann Alice nicht transparent an Bob von ihrem Client aus verschlüsseln.
-
Für die Beschaffung des Teilnehmerzertifikats aus einer externen PKI eignen sich so genannte Zertifikats-Broker, die in „Öffentliche Zertifikatsverzeichinsse für Public Keys, DuD 7, GWV Fachverlage 2009” beschrieben sind. Ein Client kann automatisch über LDAP eine Suchanfrage für das Zertifikat von Bob an den Zertifikats-Broker stellen. Dieser ermittelt das für Bob's Zertifikat zuständige Zertifikatsverzeichnis (Repository), leitet die Anfrage dorthin weiter und sendet das empfangene Zertifikat an den LDAP Client zurück.
-
Beschreibung der Erfindung
-
Die Aufgabe der hier vorliegenden Erfindung ist es, einem S/MIME Client die Zertifikate von Empfängern, die von dem angeschlossenen Kollaborationsdienst nicht zurück geliefert werden bereit zu stellen. Das technische Verfahren wird im Folgenden beschrieben.
-
Das Verfahren erfordert keine technischen Änderungen am Client oder am Kollaborationsdienst. Es kann durch Vorschalten eines zusätzlichen Systems zwischen Client und Server realisiert werden. Ein solches System wird im Folgenden als „Proxy” bezeichnet.
-
Der Proxy hat die Aufgabe, Zertifikate, die vom Kollaborationsdienst nicht zurück geliefert werden zu besorgen und dem Client bereitzustellen. Dazu nutzt er die Dienste eines Zertifikats-Brokers.
-
Der Proxy leitet alle Anfrage- und Antwortnachrichten des Protokolls unverändert zum Server beziehungsweise zum Client zurück mit Ausnahme der Resolve Nachrichten, welche Zertifikate anfordern (ResolveNames bei EWS und ResolveRecipients bei EAS) und bereitstellen oder solche validieren (ValidateCert).
-
Eine Resolve Nachricht kann direkt vom Proxy angenommen und hieraus eine LDAP Suchanfrage (LDAP Search Request) gebildet werden. Dabei können bei dem ActiveSync Protokoll die Attribute aus dem optionalen Element „CertificateRetrieval” berücksichtigt werden. Sofern der Wert „Retrieve full/mini Certificate” ist, soll ein Zertifikat für die im Element „To” enthaltenen Empfänger gesucht werden.
-
Die LDAP Suchanfrage enthält das „mail” Attribut und wird an den Zertifikats-Broker übermittelt. Aus der enthaltenen LDAP Antwortnachricht wird das Zertifikat extrahiert und es wird eine Resolve-Response Nachricht (ResolveNamesResponse Message bei EWS bzw. ResolveRecipients Command Response bei EAS) für den Client gebildet, welche das Zertifikat im Attribut Certificates enthält. Diese Variante A) hat den Vorteil, dass eine einheitliche Schnittstelle zur Zertifikatssuche verwendet wird.
-
Eine solche Resolve Nachricht kann in einer anderen Variante B) auch unverändert an den Kollaborationsserver weitergeleitet werden. Aus der Resolve-Response Nachricht werden die Empfängeradressen aus der Empfängerliste im Element „To” direkt vom Proxy angenommen und hiermit wird eine LDAP Suchanfrage (LDAP Search Request) gebildet.
-
Die LDAP Suchanfrage enthält das „mail” Attribut und wird an den Zertifikats-Broker übermittelt. Aus der enthaltenen LDAP Antwortnachricht wird das Zertifikat extrahiert. Die ursprüngliche Resolve-Response wird um dieses Zertifikat ergänzt und an den Client gesendet. Diese Variante hat den Vorteil, dass Zertifikate, die nur lokal über den Kollaborationsserver gefunden werden können an den Client zurück geliefert werden.
-
Ein Ausführungsbeispiel ist in der Zeichnung Seite 3 abgebildet. Der E-Mailclient sendet eine Resolve Nachricht an den Proxy, welches die Adressen der vom Anwender angegebenen Empfänger E1–En enthält 1. Der Proxy leitet die Resolve Nachricht an den Kollaborationsserver weiter 2. Der Kollaborationsdienst kann in seiner lokalen Datenbank oder dem lokal angeschlossenen Verzeichnisdienst (Directory Server) nach den Empfängeradressen E1–En suchen 3. Der Directory Server liefert die hierfür gefundenen Einträge für Ei–Ej inklusive der enthaltenen Zertifikate Zi–Zj an den Kollaborationsserver zurück 4. Dieser erzeugt eine Resolve-Response Nachricht, welche die Zertifikate Zi–Zj jeweils im Attribut Certificates enthält und sendet die Nachricht an den Proxy 5. Der Proxy ermittelt die Empfängeradressen Ek–El, für die kein Zertifikat zurück geliefert wurde und sendet eine LDAP Suchanfrage für Ek–El an der Zertifikats-Broker 6. Der Zertifikats-Broker leitet die spezifischen LDAP Suchanfragen an die jeweils für einen Adressraum zuständigen externen Directory-Server weiter 7a–c. Die Directory-Server ermitteln die Zertifikate aus den betreffenden Directory-Einträgen und senden sie in einer LDAP Suchantwort an den Zertifikats-Broker zurück 8a–c. Sobald der Zertifikats-Broker alle Antwortnachrichten empfangen hat sendet er eine LDAP Suchantwort an den Proxy, die alle gefundenen Zertifikate Zk–Zl enthält 9. Der Proxy ergänzt die Resolve-Response Nachricht welche dann die empfangenen Zertifikate Zi–Zj und Zk–Zl im Attribut Certificates enthält und sendet diese an den E-Mailclient zurück 10.
-
Eine vom Client gesendete Anfragenachricht für die Validierung von Zertifikaten (ValidateCert Command Request) im ActiveSync Protokoll wird ebenfalls vom Proxy angenommen und ausgewertet.
-
Bei der zuvor beschriebenen Variante A) ist der Proxy zuständig für die Validierung aller Zertifikate.
-
Sofern der angebundene Zertifikats-Broker bereits eine Validierung durchführt und somit nur gültige und vertrauenswürdige Zertifikate zurückliefert, kann der Proxy für diese Zertifikate eine Antwortnachricht „gültig” (Status „success”) an den Client zurück senden.
-
Der Proxy kann die Validierung auch bei Variante B) für alle Zertifikate durchführen B1). Dazu kann der Proxy einen geeigneten Validierungsdienst, beispielsweise mittels OCSP abfragen und das Ergebnis in der Antwortnachricht an den Client zurück senden.
-
In einer weiteren Variante B2) kann der Proxy in der Anfragenachricht zur Validierung unterscheiden zwischen Zertifikaten, die vom Kollaborationsdienst zurück geliefert wurden und Zertifikaten, die vom Zertifikats-Broker zurückgeliefert wurden.
-
Die vom Zertifikats-Broker zurück gelieferten Zertifikate werden vom Proxy aus der Validierungs-Anfragenachricht entfernt und die Anfragenachricht wird an den Kollaborationsdienst weitergeleitet.
-
Der Kollaborationsdienst liefert den Status seiner lokalen Zertifikate an den Proxy zurück.
-
Der Proxy ermittelt den Zertifikatsstatus der verbleibenden Zertifikate. Dies kann durch eine Statusprüfung, beispielsweise mittels OCSP, erfolgen.
-
Sofern der Zertifikats-Broker selbst eine Validierung durchführt und somit nur gültige Zertifikate zurückliefert, kann auf eine zusätzliche Validierung durch den Proxy verzichtet werden.
-
Der Proxy bildet nun eine Antwortnachricht, welche den Zertifikatsstatus aller in der Validierungs-Anfragenachricht aufgeführten Zertifikate enthält und sendet die Antwort an den Client.
-
Ein Ausführungsbeispiel ist in der Zeichnung Seite 4 abgebildet. Der E-Mailclient sendet eine Nachricht mit dem ValidateCert Kommando an den Proxy, welches die Zertifikate Z1–Zn enthält 1. Dieser leitet die ValidateCert Anfrage an den Kollaborationsserver weiter 2. Der Kollaborationsserver kann eine Abfrage der Sperrliste (Certificate Revocation List, CRL) durchführen, die er über den lokalen Verzeichnisdienst (Directory Server) anfordert 3a. Der Directory Server liefert die Sperrliste an den Kollaborationsserver zurück und der Kollaborationsserver prüft, ob eines der Zertifikate Z1–Zn hier aufgeführt ist 4a. Alternativ sendet der Kollaborationsserver eine Statusanfrage für Z1–Zn an einen lokalen Validierungsserver 1 über das OCSP Protokoll (Online Certificate Status Protokol) 3b. Der Validierungsserver 1 liefert für jedes angefragte Zertifikat den Status in der OCSP Response an den Kollaborationsserver zurück 4b. Der Kollaborationsserver erzeugt eine ValidateCert Response Nachricht mit dem Status der Zertifikate Zi–Zj, den er jeweils lokal feststellen konnte und sendet diese dem Proxy 5. Der Proxy ermittelt die Zertifikate Zk–Zl, für die kein Status zurück geliefert wurde und sendet eine OCSP Anfrage für diese Zertifikate an den Validierungsserver 2 6. Der Validierungsserver 2 liefert für jedes angefragte Zertifikat den Status in der OCSP Response an den Proxy zurück 7. Der Proxy ergänzt die vorhandene ValidateCert Response Nachricht mit dem Status der Zertifikate Zk–Zl, und sendet diese dem E-Mailclient 8.