Automatische E-Mail-Verschlüsselung mit Djigzo
Djigzo verschlüsselt E-Mails. Der Clou ist jedoch der Arbeitsplatz des kleinen Helfers: Mitten in einem Postfix-Mailserver. Dort ver- beziehungsweise entschlüsselt er vollautomatisch alle ein- und ausgehenden Nachrichten, ohne dass die Anwender etwas davon merken.
Kein seriöses Unternehmen würde auf die Idee kommen, wichtige Geschäftsinformationen per Postkarte zu verschicken. Ganz anders im elektronischen Nachrichtenverkehr: Trotz zunehmender Wirtschaftsspionage wandern nach wie vor zahlreiche brisante E-Mails im Klartext durch das Internet. Offenbar siegt hier in vielen Fällen die Bequemlichkeit über das Sicherheitsdenken. Bis der Text verschlüsselt und gegen Manipulationen mit einer elektronischen Signatur versehen ist, vergehen zwangsweise ein paar Mausklicks. Damit nicht genug, muss der Empfänger die Daten auch irgendwie wieder auspacken können, was einen umständlichen Schlüsselaustausch nötig macht. Jedoch bekommt der technikunerfahrene Buchhalter bei diesem Prozedere eine Gänsehaut und verzichtet lieber auf die Verschlüsselung. Besser wäre es also, wenn die Ver- und Entschlüsselung automatisch und vom Anwender unsichtbar im Hintergrund geschehen würden. Dieser Artikel verrät, wie Sie Djigzo selbst in Betrieb nehmen.
Fließbandarbeit
Genau das ermöglicht der niederländische Sicherheitsexperte Martijn Brinkers mit Djigzo [1]. Das noch recht junge Open-Source-Programm nimmt die zu versendende Post seiner Nutzer entgegen, verschlüsselt sie, stattet sie auf Wunsch noch mit einer digitalen Signatur aus und leitet sie anschließend via Postfix an die Postfächer der Empfänger weiter (,,Store and forward``). Nach außen hin arbeitet das Duo wie ein normaler Mail Server (Mail Transfer Agent, MTA), der sich in jede bestehende IT-Infrastruktur einbinden lässt. Man darf das Gebilde sogar mit einem bestehenden Kollegen koppeln. Die Mitarbeiter in der Buchhaltung bekommen so gar nicht mehr mit, dass ihre Post nur noch chiffriert durch den Äther braust.
Als Grundlage dient Djigzo der S/MIME-Standard (Secure / Multipurpose Internet Mail Extensions), den auch die meisten modernen E-Mailprogramme beherrschen. In Fällen, in denen kein S/MIME-taugliches Zertifikat zur Verfügung steht, verpackt Dijgzo auf Wunsch die Nachricht samt Anhang in eine PDF-Datei, verschlüsselt diese und sendet sie Richtung Empfänger. Der muss die Nachricht allerdings erst speichern und beispielsweise im Adobe Reader öffnen. Darüber hinaus arbeitet die PDF-Verschlüsselung nicht wie S/MIME mit Schlüsselpaaren, sondern nur mit einem Passwort, das der Empfänger kennen muss (symmetrisches Verschlüsselungsverfahren). Würde man es per E-Mail über das Internet (mit-)senden, könnte man das PDF auch gleich ohne Verschlüsselung verschicken. Aus diesem Grund bietet Djigzo an, für jede E-Mail ein zufälliges Passwort zu generieren und dieses dann dem Empfänger per SMS mitzuteilen.
| Schlüsselfrage |
|---|
|
Der S/MIME-Standard beschreibt den Aufbau von verschlüsselten und signierten E-Mails. Der Empfänger einer solchen Nachricht kann also sicher sein, dass sie zum einen tatsächlich vom angegebenen Absender stammt und zum anderen auf ihrem Weg durch das Internet weder manipuliert noch von einem Angreifer mitgelesen wurde. Die Echtheit der Signatur bestätigen Zertifikate, die im Fall von Djigzo dem X.509-Standard folgen müssen. Man ist daher gezwungen, noch vor der Inbetriebnahme des Mailservers ein solches bei einer entsprechenden Zertifizierungsstelle zu beantragen. Als Verschlüsselungsalgorithmus verwendet Djigzo durchgehend AES mit 128 Bit langen Schlüsseln. Es gehört zu den asymmetrischen Kryptographieverfahren, bei dem jede beteiligte Partei zwei Schlüssel besitzt: Einen öffentlichen, den die ganze Welt kennen darf, und einen privaten. Eine mit dem öffentlichen (nicht geheimen) Schlüssel verschlüsselte Nachricht kann nur der Besitzer des privaten (geheimen) Gegenstücks wieder entschlüsseln. Umgekehrt lässt sich mit dem privaten Schlüssel eine Nachricht signieren: Da sie nur der passende öffentliche Schlüssel wieder in Klartext verwandelt, muss sie zwangsweise von dessen Inhaber stammen. |
Helfershelfer
Djigzo ist ein Java-Programm, das sich als Filter in Postfix einklinkt. Alle persistenten Daten wandern in eine PostgreSQL-Datenbank (Abbildung 1). Die Einrichtung des entstandenen Gespanns erfolgt entweder umständlich über mehr oder weniger kryptische Konfigurationsdateien oder ein separat erhältliches, komfortables Web-Interface. Letzteres verlangt allerdings nach einem Servlet-Container. Martijn Brinkers empfiehlt hier das Leichtgewicht Jetty, die Djigzo-Oberfläche soll aber auch mit Tomcat harmonieren. Austauschen lassen sich übrigens prinzipiell auch Postfix (gegen einen anderen MTA, der Mailfilter unterstützt) und PostgreSQL (gegen eine Datenbank die Hibernate versteht), was jedoch mit etwas Fummelei verbunden ist. Verständlicherweise verschlingt das komplette Gespann einigen Hauptspeicher, bereits Djigzo alleine verlangt nach üppigen 512 MByte.

Abbildung 1: Eine vereinfachte Darstellung der Djigzo-Architektur.
Aufgrund der genannten Abhängigkeiten läuft die Installation von Djigzo etwas komplizierter ab. Ohne fundierte Kenntnisse um Postfix, Public Key Infrastrukturen (PKI) und Zertifikate wird man spätestens an den zahlreichen Einstellungen scheitern. Am schnellsten zum Ziel gelangen Sie auf Debian-basierten Systemen, für die fertige Pakete bereit stehen. Der Entwickler selbst empfiehlt Ubuntu, das auch alle Anleitungen bevorzugen [2]. Auf einer anderen, RPM-basierten Distribution sind hingegen weitere Schritte und mitunter etwas Bastelgeschick erforderlich. Generell sollte man Djigzo möglichst auf einem separaten, frischen Linux-System installieren und dann in die vorhandene Infrastruktur integrieren, produktive Email-Systeme bleiben schon aus Sicherheitsgründen tabu.
Startschuss
Auf einem jungfräulichen Ubuntu 9.04 System installiert folgender Befehl die geforderten Abhängigkeiten:
sudo apt-get install postgresql postfix openjdk-6-jre ant
Im folgende Konfigurationsfenster vergeben Sie Postfix zunächst »Keine Konfiguration«. Das OpenJDK 6 setzen die Debian-Pakete von Djigzo voraus. Wer bereits eine andere Java-Implementierung für mindestens Java 5 betreibt, kann diese behalten, muss dann aber die Installation der Pakete erzwingen.
Die Web-Oberfläche von Djigzo verlangt nach einem Servlet-Container mit eingebautem Webserver. Da der bevorzugte Jetty in den Ubuntu-Repositories fehlt, muss man seine Debian-Pakete aus dem Internet fischen [3]. Die bei Redaktionsschluss aktuelle Version 6.1.17 bündelte noch einmal alle Pakete in einem ».tar.gz«-Archiv. Von den darin enthaltenen Dateien benötigt Dijgzo lediglich »jetty6_6.1.17_all.deb« und »libjetty6-java_6.1.17_all.deb«. Das Duo installiert der Befehl: »sudo dpkg -i jetty6_*_all.deb libjetty6-java_6.*_all.deb«
Um Jetty automatisch bei jedem Systemstart hochzufahren, setzt man in der Datei »/etc/default/jetty6« die Einstellung »NO_START=1« auf »NO_START=0«, was folgende kryptische Zeile erledigt:
sudo sed s/NO_START\s*=\s*1/NO_START=0/ /etc/default/jetty6 --in-place
Nachdem die Vorbereitungen abgeschlossen sind, darf nun Djigzo die Bühne betreten. Auf seiner Homepage [1] schnappt man sich die beiden, zusammen fast 75 MByte großen Debian-Pakete und spielt sie nacheinander ein. Erst Djigzo selbst:
sudo dpkg -i djigzo_*_all.deb
dann sein Web-Frontend:
sudo dpkg -i djigzo-web_*_all.deb
Wer kein Open JDK benutzt, hängt jeweils noch »--ignore-depends=openjdk-6-jre,openjdk-6-jre-headless« an. Djigzo richtet jetzt automatisch eine PostgreSQL-Datenbank für sich ein, legt den Benutzer »djigzo« an, vergibt alle notwendigen Rechte und startet sich anschließend gleich selbst.
Partnervermittlung
Als nächstes gilt es, Djigzo und Postfix einander näher zu bringen. Dazu melden Sie Djigzo als Filter in den Postfix-Konfigurationsdateien an und biegt noch ein paar Einstellungen gerade. Da dies wieder einmal eine ziemlich fummelige Prozedur ist, ersetzen Sie einfach die bestehenden Postfix-Konfigurationsdateien durch die von Djigzo mitgebrachten:
sudo cp /etc/postfix/djigzo-main.cf /etc/postfix/main.cf sudo cp /etc/postfix/djigzo-master.cf /etc/postfix/master.cf
Dieser rabiate Austausch ist auch der vom Entwickler empfohlene Weg. Wer unbedingt seine bestehende Postfix-Konfiguration behalten möchte, findet eine Beschreibung der dann notwendigen Maßnahmen unter [2].
Da die ausgetauschte Konfigurationsdatei die Alias-Datei »/etc/alias« verwendet, sollten Sie sie noch kurz auf den aktuellen Stand bringen: »sudo newaliases«. Starten Sie dann mit »sudo /etc/init.d/postfix restart« Postfix neu.
Klickibunti
Auch für Jetty bringt das Djigzo-Frontend eine eigene, fertige Konfigurationsdatei mit. Hier reicht es jedoch aus, sie der bestehenden hinzufügen. Dazu ergänzen Sie in »/etc/jetty6/jetty.conf« die Zeile
/etc/jetty6/djigzo-jetty-ssl.xml
Die aktualisierten Einstellungen werden allerdings erst nach einem Neustart wirksam:
sudo /etc/init.d/jetty6 restart
Damit laufen nun im Hintergrund Djigzo als Filter in Postfix, sowie das Djigzo-Frontend innerhalb von Jetty. Letzter lauscht an Port 8443 auf https-Anfragen, den man gleich über einen Browser kontaktiert -- beispielsweise indem Sie auf dem Ubuntu-System im Browser die Adresse »https://localhost:8443« ansteuern. Das sehr wahrscheinlich bemängelte Sicherheitszertifikat akzeptieren Sie einfach vorübergehend. Hat alles geklappt, erscheint das Anmeldeformular aus Abbildung 2. Hier loggen Sie sich mit Namen und Passwort »admin« ein. Es dauert jetzt einen kurzen Moment, in dem sich das System initialisiert. Anschließend landen Sie im Web-Frontend.

Abbildung 2: Der Anmeldebildschirm des Web-Frontends.
Erste Gehversuche
Wer zum ersten Mal mit Djigzo arbeitet, sollte zunächst mit einem einfachen Szenario starten und dann das laufende System langsam an die eigenen Gegebenheiten anpassen. Andernfalls läuft man Gefahr, sich in den zahlreichen Einstellungen und Zertifikaten zu verheddern. Die einfachste Betriebsform zeigt Abbildung 3: Der Server »mail.beispiel.de« mit Djigzo fungiert in einem Unternehmen als einziger Mailserver. Alle E-Mails des Benutzers »tim« an den Außendienstmitarbeiter »udo« sollen prinzipiell nur verschlüsselt und signiert das Gebäude verlassen.

Abbildung 3: In diesem einfachen Beispiel versendet der Benutzer Tim eine E-Mail über Djigzo an den Außendienstmitarbeiter Udo.
Bevor es jedoch so weit ist, gilt es als erstes einige Grundeinstellungen von Postfix gerade zu rücken. Dazu wechseln Sie in den Bereich »Admin« und rufen die Seite »MTA config« auf, wo sich die wichtigsten Postfix-Parameter wiederfinden (Abbildung 4).

Abbildung 4: Die Seite »MTA config« richtet Postfix ein -- wenn auch nur rudimentär.
Sie entsprechen den gleichnamigen Einstellungen in der Datei »main.cf« von Postfix. Hinter »My Hostname« gehört als erstes der Name des (Mail-)Servers, auf dem Djigzo läuft -- im Beispiel also »mail.beispiel.de«. Der Liste »My Networks« fügen Sie anschließend alle IP-Adressen der Client-Computer hinzu, die später E-Mails über Djigzo versenden können sollen. Der häufig für private Zwecke genutzte Adressbereich 192.168.x.x steht schon auf dieser Whitelist, weitere Adressen verlangt Djigzo in der CIDR-Notation. In die Liste »Relay Domains« gehören schließlich noch alle Domainnamen, für die der Mailserver (also Djigzo und Kompagnon) Nachrichten entgegen nimmt und verteilt. Da der Mailserver im Beispiel nur Post versendet, bleibt dort die Liste (vorerst) leer. Für das einfache Beispiel ist damit schon alles erledigt. Wer Djigzo hinter einem weiteren Mailserver betreiben möchte, muss dessen Domainname noch unter »External relay host« beziehungsweise »Interal relay host« eintragen. Djigzo liefert dann die verschlüsselte Post nicht selbst aus, sondern leitet sie an den dort entsprechend verzeichneten Rechner weiter. Ein Klick auf »Apply« am unteren Rand speichert schließlich alle Änderungen ab.
Kontaktaufnahme
Ob die vorgenommenen Einstellungen korrekt sitzen, verrät eine kleine Testnachricht. Wer »mail« aus dem Paket »mailx« installiert hat, verschickt eine solche fix über die Kommandozeile, zum Beispiel an Udo:
mail -s "testbetreff" udo@argon.extern.de < testmail.txt
Da Djigzo und somit die Verschlüsselung derzeit noch inaktiv ist, kann eine fehlgeleitete Mail nur auf einen falsch gepolten Postfix zurückzuführen sein. Falls die Nachricht in der »Queue« hängen geblieben ist, findet man sie in der Web-Oberfläche im gleichnamigen Bereich. Ebenfalls hilfreich sind die »Logs«: Unter »MTA« spricht Postfix, die Meldungen von Djigzo sammelt die Liste hinter »MPA«. Um an die aktuellsten Informationen und Fehlermeldungen zu gelangen, muss man allerdings immer erst auf die jeweils letzte Seite springen.
Um einen dort gemeldeten Fehler zu beheben, kann es notwendig sein, in die Tiefen der Postfix-Konfiguration einzutauchen. In diesem Fall genügt im Bereich »Admin« hinter »MTA config« ein Klick auf »MTA raw config«. Djigzo zeigt dann den Inhalt der »main.cf« an. Alle direkt darin vorgenommenen Änderungen prüft Djigzo allerdings nicht -- Sie sollten folglich genau wissen, an welchen Schrauben Sie drehen. Alle Einstellungen, die mit »djigzo_« beginnen, stammen übrigens aus den entsprechenden Feldern der »MTA config«-Seite.
Ausweiskontrolle
Bevor die E-Mails verschlüsselt das Haus verlassen, muss man Djigzo zunächst mit passenden Zertifikaten nach dem X.509-Standard füttern. Diese müssen im ».pem« beziehungsweise ».cer«-Format vorliegen. Enthält das Zertifikat auch noch den privaten Schlüssel, verlangt Djigzo eine PKCS12-Datei (Endung ».p12«). In diesen Formaten liefern auch die meisten Zertifizierungsstellen (Certification Authority) ihre Zertifikate aus. Notfalls wandelt man sie mit OpenSSL um. Dieses Werkzeug eignet sich auch dafür, ohne teure Zertifizierungsstelle eigene Zertifikate zu erstellen. Die Schritte dazu verrät der Kasten ,,Zertifikate``.
| Zertifikate |
|---|
|
Djigzo signiert alle ausgehenden E-Mails mit seinem privaten Schlüssel. Empfänger Udo kann dann mit dem zugehörigen, öffentlichen Schlüssel überprüfen, ob die Nachricht tatsächlich aus seinem Unternehmen stammt. Allerdings muss ihm irgendwer garantieren, dass er auch den richtigen öffentlichen Schlüssel besitzt. Dies übernimmt eine Zertifizierungsstelle. Sie bescheinigt mit einem digitalen Zertifikat, dass der öffentliche Schlüssel tatsächlich Udos Unternehmen gehört. Der Ablauf ist dabei immer der gleiche: Sie erzeugen zunächst ein Schlüsselpärchen, beispielsweise mit OpenSSL. Den öffentlichen Schlüssel verpacken Sie mit ein paar persönlichen Informationen in einen so genannten Certificate Signing Request, den Sie wiederum an die Zertifizierungsstelle schicken. Diese unterschreibt den öffentlichen Schlüssel mit ihrem eigenen, so genannten Stammzertifikat und erstellt so das fertige Zertifikat. Diese Dienstleistung ist allerdings nicht ganz billig. Zu reinen Testzwecken können Sie jedoch per OpenSSL eigene Zertifikate erstellen. Dazu spielen Sie zunächst selbst Zertifizierungsstelle und generieren sich in dieser Eigenschaft ein Schlüsselpaar, mit dem Sie gleich alle anderen Zertifikate beglaubigen: openssl genrsa -out ca.key 2048 Damit entsteht ein RSA-Schlüssel »ca.key« mit 2048 Bit Länge. Jetzt erstellen Sie einen Certificate Signing Request: openssl req -new -key ca.key -out ca.csr Dabei fragt OpenSSL ein paar Informationen über den Inhaber ab, die man in diesem Fall beliebig vergeben kann -- mit einer Ausnahme: Der »Common Name« ist der »Fully Qualified Domain Name«, in der Regel also der Hostname des Rechners. Da man die Zertifizierungsstelle selbst betreibt, kann man einfach den Domainnamen des E-Mail-Servers nehmen. Im dritten Schritt stellt sich die (fiktive) Zertifizierungsstelle selbst ihr Stammzertifikat aus, das sie mit ihrem eigenen Schlüssel unterzeichnet -- es entsteht ein ,,self signed certificate``: openssl x509 -req -days 1095 -in ca.csr -out ca.cer -signkey ca.key Das Zertifikat ist in diesem Fall 1095 Tage gültig, was für einen Djigzo-Test ausreichen sollte. Als nächstes erstellt man ein Zertifikat für den Mailserver: openssl genrsa -out server.key 2048 openssl req -new -key server.key -out server.csr Da sich später der Mailserver mit dem Zertifikat ausweisen soll, verwenden Sie hier als »Common Name« seinen Domainnamen, im Beispiel also »mail.beispiel.de«. Alle anderen Felder können Sie bei der Voreinstellung belassen. Den fertigen Request verwandeln Sie in ein beglaubigtes Zertifikat: echo -ne '01' > ca.serial openssl x509 -days 1095 -CA ca.cer -CAkey ca.key -CAserial ca.serial -in server.csr -req -out server.cer Um Djigzos Anforderungen zu entsprechen, speichern Sie alle Informationen noch in einer PKCS12-Datei: openssl pkcs12 -export -in server.cer -inkey server.key -out server.p12 Das dabei abgefragte Passwort schützt den Inhalt -- insbesondere den eingebauten, privaten Schlüssel -- vor fremden Blicken. Als nächstes erhalten auch alle Teilnehmer ein Schlüsselpaar und ein Zertifikat, beginnend mit Udo: openssl genrsa -out udo.key 2048 openssl req -new -key udo.key -out udo.csr Der »Common Name« ist diesmal »argon.extern.de« und die »Email Adress« entsprechend »udo@argon.extern.de«. Djigzo nutzt diese letzte Information später . Abschließend erstellt die Zertifizierungsstelle wieder das Zertifikat und packt es in eine PKCS12-Datei: openssl x509 -days 1095 -CA ca.cer -CAkey ca.key -CAserial ca.serial -in udo.csr -req -out udo.cer openssl pkcs12 -export -in udo.cer -inkey udo.key -out udo.p12 Das gleiche wiederholen Sie mit jedem weiteren Benutzer. |
Mit den Zertifikaten in der Hand, geht es jetzt zum »Certificates«-Bereich (Abbildung 5). Richtige Zertifikate hievt »Import certificate« auf den Server. Bei selbst erstellten und signierten Zertifikaten entfernen Sie noch den Haken vor »skip self-signed«. Für PKCS12-Archive mit privatem Schlüssel ist der Punkt »Import keys« zuständig. Dort hinterlassen Sie auch das »Password«, mit dem die Datei geschützt ist.
Im Beispiel soll Benutzer Udo eine verschlüsselte E-Mail erhalten, die nur er alleine mit seinem privaten Schlüssel einsehen kann. Dazu benötigt Djigzo Udos öffentlichen Schlüssel. Um die Nachricht anschließend zu signieren, muss der Server seinen eigenen privaten Schlüssel kennen. Also importieren Sie unter »Import certificates« Udos Zertifkat (wenn Sie dem Kasten ,,Zertifikate`` gefolgt sind, ist das die Datei »udo.cer«) und unter »Import Keys« die PKCS12-Datei des Servers (»server.p12«). Die importierten Zertifikate sammelt Djigzo in seinem eigenen Zertifikatsspeicher im Bereich »Certificates«. Alle grau hinterlegten Zeilen weisen darauf hin, dass diese Zertifikate nicht voll vertrauenswürdig sind. Das ist beispielsweise dann der Fall, wenn man sie selbst ausgestellt hat. Das Schlüsselsymbol weist darauf hin, dass das Zertifikat einen privaten Schlüssel mitgebracht hat.

Abbildung 5: Der Zertifikatsspeicher von Djigzo enthält hier zwei Zertifikate. Das untere enthält einen privaten Schlüssel, worauf das entsprechende Symbol verweist.
Neben dem »Certificates«-Bereich gibt es noch »Roots«. Hier sammelt Djigzo alle Stammzertfikate -- also alle Zertifikate, denen es bedingungslos vertraut. Um ein Stammzertifikat zu importieren, verwenden Sie den Punkt »Import certificates« und stellen »Store« auf »Roots«. Im Beispiel importieren Sie auf diese Weise das Stammzertifikat der Zertifizierungsstelle (»ca.cer«). Damit schaltet Djigzo im Bereich »Certificates« die beiden bislang noch fragwürdigen Zertifikate von grau auf weiß -- ein Zeichen, dass sie glaubwürdig sind.
Völkerwanderung
Wenn alle Zertifikate importiert sind, geben Sie Djigzo bekannt, wer überhaupt an der Kommunikation teilnimmt. Dies geschieht im Bereich »Users«. Im Beispiel fügen Sie hier per »Add user« zunächst für »Tim« einen neuen Eintrag hinzu. In das große Eingabefeld gehört die komplette E-Mail-Adresse des Teilnehmers, also »tim@xenon.beispiel.de«. Djigzo öffnet anschließend die Einstellungen für den Benutzer (Abbildung 6).

Abbildung 6: Tim gehört zu den internen Benutzern, alle anderen Einstellungen bleiben auf ihren Vorgaben.
Sie regeln penibel, was mit der für diesen Benutzer eingehenden Post passiert. Wie die Haken bei »inherit« bereits andeuten, übernimmt Djigzo alle Einstellungen aus dem Bereich »Settings«. Um eine dieser Vorgaben zu überschreiben, entfernen Sie den jeweiligen Haken. Im Fall von »tim« ist dies bei der »Locality« notwendig: Er sitzt »im« Unternehmen, also vor Djigzo. Folglich ist er ein »Internal«-Nutzer. Im Gegenzug ist Udo ein »External« Mitarbeiter.
Diese Unterscheidung zwischen externen und internen Benutzern ist immens wichtig. Nur anhand dieser Klassifizierung kann Djigzo die richtigen Zertifikate und Aktionen auswählen. Sendet beispielsweise der interne Nutzer »tim« eine E-Mail an den externen Nutzer »udo«, so muss Djigzo die Mail mit Udos öffentlichem Schlüssel einpacken. Geht umgekehrt eine E-Mail von »udo« an »tim« ein, müsste Djigzo die E-Mail hingegen entschlüsseln.
Mit den übrigen Einstellungen darf man noch ein paar Feineinstellungen vornehmen. Interessant ist dabei noch der »Encrypt Mode«. Steht dieser auf »Allow«, versucht Djigzo die E-Mail zu verschlüsseln. Gelingt dies nicht -- weil zum Beispiel Zertifikate fehlen -- wandert die Nachricht trotzdem unverschlüsselt über den Äther. Erst »Mandatory« erzwingt die Verschlüsselung. Bei einem Fehler verfängt sich die Nachricht dann allerdings in der Queue. Alle Änderungen wenden Sie wieder über »Apply« am unteren Seitenrand an.
Sperrstunde
Djigzo soll jede von »tim« verschickte E-Mail mit seiner Signatur versehen. Udo kann dann damit eindeutig feststellen, dass die E-Mail aus seinem Unternehmen stammt. Um das entsprechende Zertifikat festzulegen, wechselt man zum Punkt »select signing certificate«. Djigzo präsentiert jetzt eine Liste mit allen Zertifikaten. Der Filter hat dabei schon alle ausgewählt, die Tims E-Mail-Adresse tragen. Im Beispiel trifft dies jedoch auf keines der importierten zu -- die Liste bleibt leer. Deshalb schaltet man als erstes den Filter ab (»no filter«, gefolgt von »Apply filter«) und markiert dann das gewünschte Zertifikat -- im Beispiel das des Servers. Per »Apply« besiegelt man die Auswahl.
Im Beispiel entsteht jetzt noch per »Add user« der Benutzer »udo@argon.extern.de«. Er ist bereits korrekt als »External«-Benutzer klassifiziert. Wann immer Djigzo eine E-Mail in die Finger bekommt, die an Udo gerichtet ist, soll er sie mit Udos öffentlichem Schlüssel einpacken. Damit das klappt, aktiviert man »select encryption certificates«. Djigzo präsentiert jetzt wieder eine Liste mit allen Zertifikaten (Abbildung 7).

Abbildung 7: Mit den auf dieser Unterseite markierten Zertifikaten verschlüsselt Djigzo alle E-Mails an Udo.
Da eines der importierten Zertifikate Udos E-Mail-Adresse trägt, zeigt es der Filter bereits an. Diesen Kandidaten markiert man nun -- im Beispiel also das mit der E-Mail »udo@argon.extern.de« -- und wendet die Änderung per »Apply« an. Djigzo erlaubt übrigens auch, gleich mehrere Zertifikate abzuhaken und somit mehrere Verschlüsselungen auf einmal anzuwenden. Der Empfänger kann dann eine der zugehörigen privaten Schlüssel verwenden, um die Nachricht wieder zu entschlüsseln.
Um die Einstellungen zu prüfen, schickt Tim erneut eine Testnachricht auf Reisen:
mail -s "testbetreff" udo@argon.extern.de < testmail.txt
Diese wandert nun gemäß dem S/MIME-Standard durch die Leitungen und in Udos Postfach. Sollte etwas klemmen, helfen wieder die »Logs« weiter. Meist liegt die Ursache an verdrehten Benutzerklassen (Tim ist »External« und Udo »Internal«) oder falsch zugewiesenen Zertifikaten.
Donnervogel
Kommt die E-Mail an und nutzt Udo Thunderbird, so meldet ihm dieser eine verschlüsselte E-Mail (Abbildung 8). Um sie entschlüsseln zu lassen, muss Udo Thunderbird noch seinen privaten Schlüssel mitteilen. Das geht hinter »Bearbeiten | Einstellungen | Zertifikate...« und »Importieren« (gefragt ist hier die PKCS12-Datei »udo.p12«). Um die Signatur verifizieren zu können, müssen Sie zusätzlich das Stammzertifikat auf dem Register »Zertifizierungsstellen« importieren und schließlich das Zertifikat des Servers unter »Zertifikate anderer Personen« hinzuholen (Vorsicht: Nur das Zertifikat aus der ».cer«-Datei, nicht jedoch den privaten Schlüssel aus dem ».p12«-Archiv. Letzter bleibt ausschließlich in Djigzo).

Abbildung 8: Thunderbird dechiffriert mit Udos privatem Schlüssel die von Djigzo verwendete Nachricht. Die beiden kleinen Symbole zeigen an, dass die E-Mail sowohl verschlüsselt war, als auch signiert wurde.
Notnagel PDF
Sollte eine Verschlüsselung fehlschlagen, beispielsweise wenn unbemerkt ein Zertifikat abgelaufen ist, verpackt Djigzo die E-Mail in eine geschützte PDF-Datei. Diese Notlösung müssen Sie allerdings erst explizit freischalten. Soll sie beispielsweise für Udo gelten, wechseln Sie in seine Benutzereinstellungen, schalten »Password« frei und vergeben ein solches. Nach einem Klick auf »Apply« wandelt Djigzo im Fall der Fälle alle eingehenden E-Mails an Udo in das PDF-Format, verschlüsselt sie mit dem »Password« und schickt das Ergebnis auf Reisen. Wer das einmal überprüfen möchte, kann testweise alle Zertifikate hinter »select encryption certificates« entfernen.
Fazit
Im Beispielszenario muss sich Tim ab sofort keine Gedanken mehr um die Verschlüsselung machen: E-Mails an Udo schützt Djigzo vor neugierigen Blicken, alle anderen Empfänger bekommen weiterhin Klartextnachrichten. Sofern Udo in einer Außenstelle des Unternehmens sitzt, könnte man dort einen genau umgekehrt arbeitenden Djigzo installieren. E-Mails von Tim würden dann automatisch dechiffriert, bevor sie in Udos Postfach landen. Udo müsste sich dann auch nicht mehr um die Zertifikate kümmern -- es entsteht gewissermaßen ein geschützter Tunnel durch das Internet, ganz ohne dafür ein VPN aufsetzen zu müssen.
Aber Djigzo hat noch mehr drauf: Auf Wunsch achtet es in den eingehenden Nachrichten auf ganz bestimmte Wörter und Zeichenketten. Alle E-Mails mit dem Betreff »Geheim« würden dann auf jeden Fall verschlüsselt. Wie das genau funktioniert, verrät die recht knappe, aber dennoch umfassende Administration Guide [4]. Djigzo selbst steht übrigens unter der GNU Affero General Public License 3 (AGPL 3). Wer mit ihr nicht klar kommt, kann beim Entwickler auch eine kommerzielle Lizenz erwerben. (ofr)
| Virtual Appliance |
|---|
|
Wer sich den ganzen Installationszirkus ersparen möchte, kann auch alternativ zur Virtual Appliance greifen. Die virtuelle Maschine enthält ein abgespecktes Ubuntu 8.04.2 LTS mit einer Djigzo-Installation und läuft unter allen Virtualisierern, die mit dem VMware-Format umgehen können. Einzige Voraussetzung sind ein potenter Rechner, viel freier Speicher (mindestens 1 GB auf dem Gastgeber sollten es schon sein) und eine funktionierende Netzwerkanbindung bis in die virtuelle Maschine. Dann genügt es, das Festplattenimage »Djigzo.vmdk« einzubinden und von ihm zu starten. Anschließend meldet man sich über »ssh« oder direkt an der Konsole mit dem Benutzernamen »djigzo-admin« und dem Passwort »djigzo« an. Es startet dann eine rudimentäre Textoberfläche, in dem man als erstes das Passwort ändert, die Netzwerkeinstellungen kontrolliert, System-Updates einspielt und gegenebenfalls die Appliance neu startet oder herunterfährt. Die Konfiguration von Djigzo selbst geschieht wie gewohnt über das Web-Frontend. |
Infos
- [1] Djigzo: [http://www.djigzo.com]
- [2] Djigzo Installation Guide: [http://www.djigzo.com/documents/installation-guide.pdf]
- [3] Pakete des JSP/Servlet-Containers Jetty: [http://dist.codehaus.org/jetty/]
- [4] Djigzo Administration Guide: [http://www.djigzo.com/documents/administration-guide.pdf]


Kommentare
E-Mail Verschlüsselung am Gateway
Gute Lösung, da Verschlüsselung am Gateway sicher am besten ist. Wer es lieber auf Windows hat sollte sich mal www.enqsig.de ansehen.
Kommentar hinzufügen