So senden Sie verschlüsselte E-Mails programmgesteuert (aus einem automatisierten Prozess)

8

Ich habe einen Prozess, der auf einem UNIX-Server (Solaris) läuft, der nachts läuft und in der Lage sein muss, verschlüsselte E-Mails zu versenden.

Ich brauche nur den Teil "Verschlüsselung", NICHT den Teil für die digitale Signatur / Selbstrückweisung von PKI.

Ich benutze MS Outlook in einer Unternehmensumgebung und gehe davon aus, dass, wenn ein Benutzer auf "In GAL veröffentlichen ..." unter Tools - & gt; Optionen - & gt; Sicherheit, dies wird ihren öffentlichen Schlüssel in der globalen Adressliste (GAL) veröffentlichen.

Ich denke also, dass ich eine Möglichkeit brauche, um eine Verbindung mit dem Exchange-Server herzustellen, auf dem sich die GAL von meinem UNIX-Server befindet. Dann müsste ich die Empfänger PUBLIC KEY abrufen. Dann könnte ich die E-Mail mit den Empfängern PUBLIC KEY verschlüsseln. Dies würde die E-Mail verschlüsseln und nur jemand mit den Empfängern PRIVATE KEY erlauben, die E-Mail richtig zu lesen? Dann würde ich die E-Mail verschicken. Aber was ich nicht sicher bin, ist, wie man die E-Mail nur mit den Empfängern PUBLIC KEY (KEINE KEYS auf der UNIX-Seite) so verschlüsselt, dass MS Outlook die E-Mail lesen kann, wenn der Empfänger sie erhält?

Würde das funktionieren? Ist da jemand auf ein ähnliches Problem gestoßen und hat er eine Lösung gefunden? Java-Code ist bevorzugt, aber jede Sprache würde beginnen.

Benötigen Sie zusätzliche Informationen, um eine vernünftige Antwort zu erhalten?

Danke

    
Mitch Wheat 18.11.2008, 22:13
quelle

4 Antworten

5

Ihre Logik ist richtig.

Typische PKI-Verschlüsselung ist:

%Vor%

Für einige Algorithmen ist der cryptoAlgorithm dieselbe Prozedur, Senden und Empfangen.

Also ... für jeden Empfänger benötigen Sie ihr digitales Zertifikat, das ihren öffentlichen Schlüssel enthält.

GAL-Zertifikatspeicherung

Ich denke, es wäre möglich, die GAL so zu konfigurieren, dass Benutzer Zertifikate veröffentlichen können. Mein allgemeiner Eindruck ist, dass die Konfiguration und Verwendung der GAL von Unternehmen zu Unternehmen variiert.

S / MIME & amp; PGP

Ich stimme dem Beitrag zu, dass S / MIME für Outlook geeignet ist.

Beachten Sie auch Folgendes: Wenn Ihre Benutzer Outlook Web anstelle des Outlook-Clients verwenden, können sie keine verschlüsselten E-Mails empfangen. Zumindest seit 2000, aber ich vermute 2003 auch. Es ist ein riesiges Usability-Problem und ich habe keine gute Lösung.

Allgemeine Mikrostabilität

Microsoft hat seine eigene spezielle Art, Dinge zu tun (kein Scherz ...). Sie sind nicht anders in der Welt der PKI. Benutzerzertifikate müssen eindeutig mit einer Verschlüsselungsfunktion gekennzeichnet sein. Ich weiß, dass es das KeyUsage-Feld KeyEncipherment haben muss. Und es kann eine andere Erweiterung von Microsoft erforderlich sein. Ein falsch formatiertes Benutzerzertifikat kann dazu führen, dass der Empfänger die E-Mail nicht mehr lesen kann, wenn sie eintrifft. Outlook wird sich nicht darauf einigen können, dass die E-Mail verschlüsselt wurde. Ersparen Sie sich einige ernsthafte Integrationstests und planen Sie, viele Benutzergruppen auf diese Weise zu treffen. Jedes Mal, wenn sich mein Team in ein Microsoft-Produkt integrieren musste, gab es unangenehme Überraschungen, insbesondere hinsichtlich der Konfiguration des Zertifikats.

Bibliotheken & amp; Werkzeuge

Ich stimme der Empfehlung für BouncyCastle zu - ich habe es nicht benutzt, aber Leute, denen ich vertraue, schwören darauf. Ich persönlich liebte das Phaos Toolkit, als ich dieses Zeug schreiben musste, aber ich bin veraltet. Ich weiß, dass es ernstes Geld kostet und vielleicht zu viel für dein Geld ist.

OpenSSL ist ein weiteres großartiges Werkzeug und nützlich für viel mehr als SSL. Es eignet sich hervorragend zum Erstellen von Testzertifikaten, aber ich kann mich nicht erinnern, ob es auch S / MIME-E-Mail-Verschlüsselung verwendet.

Für die meisten Bibliotheken sollten Sie Klartext und das Zertifikat verwenden und beide in eine Funktion einfügen können, die die S / MIME-Nachricht generiert. Sie benötigen möglicherweise auch den Verschlüsselungsalgorithmus.

    
bethlakshmi 31.12.2008 00:17
quelle
4

Im allgemeinen Fall: Um eine verschlüsselte Nachricht an jemanden zu senden, brauchen Sie nur ihren öffentlichen Schlüssel. Sie müssen nicht selbst einen Schlüssel haben. Die Regel mit asymetrischer Verschlüsselung besagt, dass alles, was mit einem öffentlichen Schlüssel verschlüsselt ist, mit dem entsprechenden privaten Schlüssel entschlüsselt werden kann und alles, was mit einem privaten Schlüssel verschlüsselt ist, kann mit dem entsprechenden öffentlichen Schlüssel entschlüsselt werden.

Sie benötigen nur dann einen Schlüssel für Ihren Server, wenn Sie die Nachricht signieren möchten.

Wenn Sie die Implementierung in Java durchführen wollen, denke ich nicht, dass JavaMail die Verschlüsselung standardmäßig unterstützt, aber Sie können sich JavaMail-Crypto (habe es nicht selbst benutzt). Es gibt angeblich eine JNI-Schnittstelle zu GnuPG irgendwo ... Und Sie können PGP oder GnuPG immer aus einer beliebigen Sprache ausführen ...

Ich weiß nichts über die Unterstützung von PGP in Outlook oder irgendetwas anderes über Outlook.

    
Guillaume 19.11.2008 13:23
quelle
2

Sie müssen im s / mime-Format verschlüsselte Nachrichten an Outlook senden. Outlook unterstützt PGP nicht.

Versuchen Sie zunächst, eine Klartextnachricht aus Java zu senden, und prüfen Sie, ob Sie sie in Outlook abrufen können. Machen Sie sich später Sorgen über die Verschlüsselung. Verwenden Sie die JavaMail-Bibliothek zum Erstellen und Senden von E-Mails.

Ich weiß nicht, wie man Schlüssel aus der GAL extrahiert. Es ist wahrscheinlich am einfachsten, mit dem manuellen Exportieren eines Schlüssels zu beginnen und zu sehen, ob Sie damit arbeiten können.

Um verschlüsselte Mails im s / mime-Format zu erstellen, empfehle ich Bouncy Castle . Bouncy Castle ist ein Crypto-Provider, der auch s / mime unterstützt. (Suchen Sie nach dem CMS / Smime-Paket). Es sollte einige Beispiele in den heruntergeladenen Quellen geben. Ich habe es in der Vergangenheit verwendet, um E-Mails an eine Vielzahl von E-Mail-Clients zu senden, einschließlich Outlook, und es funktioniert ziemlich gut. Aber mach dich bereit für das Crypto-Zeug - es kann eine steile Lernkurve sein!

    
Hes Siemelink 20.11.2008 12:20
quelle
1

Der zuvor nicht erwähnte Nachteil besteht darin, dass die GAL nicht unbedingt auf dem Exchange Server und häufiger auf dem Domänenserver zu finden ist, wenn sie nicht im eigenständigen Modus ausgeführt wird. Das Zertifikat wird im LDAP-Attribut userCertificate oder userSMIMECertificate gefunden.

    
Orihara 24.11.2008 20:24
quelle

Tags und Links