Date: Thu, 2 Dec 1999 13:23:04 -0500 (EST)
From: support@redtenbacher.de
Subject: Automat. Ver-/Entschluesselung von E-Mail, Teil IIIa
Sehr geehrte "signatur"-Abonnenten,
im Teil III der zusammenfassenden Dokumentation zu unserem
Verschlüsselungsprojekt geht es schließlich um die "Sicht des
Programmierers", der ein bestehendes E-Mail-System um eine
automatische Ver-/Entschlüsselung von E-Mails auf dem Mailserver
ergänzen will.
Wer eine solche Lösung selbst erstellen (und nicht eine
schlüsselfertige Lösung kaufen) will, muß dazu natürlich programmieren
können. Der folgende 4-teilige Leitfaden soll solchen
Programmierern (sowie jedem interessierten Hersteller von
E-Mail-Software) helfen, indem er
(a) Recherche- und Designarbeit erspart und
(b) die Interoperabilität der benutzten Lösung mit anderen
automatisierten Lösungen (und natürlich auch mit Partnern,
die PGP manuell einsetzen) sicherstellt.
In den 4 Abschnitten für den Programmierer geht es um folgende Themen:
Schritt 1: Einfügen einer Dateischnittstelle in ein bestehendes
Mailsystem
Schritt 2: Paßwortverwaltung, -speicherung und Diebstahlschutz
Schritt 3: Abwicklung von Signatur/Entschlüsselung bei
Eingangsmails: Formate, Algorithmen
Schritt 4: Abwicklung von Signatur/Verschlüsselung bei
Ausgangsmails: Formate, Optionen, Algorithmen
Schritt 1: Einfügen einer Dateischnittstelle in ein bestehendes
Mailsystem
Um beim Programmieren einer automat. Ver-/Entschlüsselung von E-Mail
auf dem Mailserver unnötige Arbeit zu vermeiden, sollte man natürlich
versuchen, möglichst viel von der vorhandenen Infrastruktur
beizubehalten. Am leichtesten geht das, wenn man:
(a) für die eigentliche Ver-/Entschlüsselung/Signatur eines der
OpenPGP-kompatiblen Programme benutzt, und
(b) sich über eine Dateischnittstelle in das vorhandene E-Mail-System
der Stadt einklinkt.
Bei dieser Vorgehensweise erspart man sich die eigentliche
kryptographische Arbeit sowie das Programmieren von
Kommunikationsprotokollen und kann sich auf die Gestaltung der
Automatisierungslogik beschränken.
Beim Punkt a empfiehlt sich die Verwendung eines der verfügbaren
Programme mit Befehlszeilensteuerung: PGP 5.0 unter DOS oder Linux,
PGP 6.5.1 unter Windows9x/NT oder Linux, Gnu Privacy Guard 1.0
unter Windows9x/NT oder Linux. Denn ein Befehlszeilenaufruf dürfte in
jeder Programmiersprache wesentlich einfacher zu realisieren sein als
jegliche DLL-Programmierung (die zur "Fernsteuerung" der grafischen
PGP-Versionen erforderlich ist).
Punkt b setzt voraus, daß die zu ver-/entschlüsselnden Daten zu
irgendeinem Zeitpunkt als normale Datei existieren.
Je nachdem, welche E-Mail-Clients benutzt werden, ist das Schaffen
einer solchen Dateischnittstelle (die für die Schritte 2 bis 4 des
Programmierleitfadens vorausgesetzt wird) unterschiedlich aufwendig:
Fall 1: Das E-Mail-Programm verfügt bereits serienmäßig über eine
Dateischnittstelle
Viele E-Mail-Programme haben bereits serienmäßig eine
"Dateischnittstelle" (oft auch "Gateway"-Schnittstelle genannt). Diese
Programme lassen sich so einstellen, daß sie ausgehende Internet-Mails
nicht gleich per SMTP versenden, sondern in eine Datei ablegen (die
dann von einem anderen Programm verschlüsselt und versandt werden
kann). In der Umkehrrichtung gilt analog, daß solche Clients
Eingangsmails nicht nur per POP3 empfangen, sondern auch aus einer
Datei abholen können. (Die Ver-/Entschlüsselungslösung auf dem
Mailserver kann also Eingangspost mit PGP dekodieren und dann die
Ergebnisdatei bequem in den Mail-Client "einfüttern".)
Diesen leichtesten Fall trifft man z.B. bei allen Clients von Novells
MHS-System sowie bei "KT-MAIL" und "Pegasus Mail" an. Außerdem trifft
dieser Fall (unabhängig von den Mail-Clients) zu, wenn die
Internet-Anbindung über einen Linux-Gateway-Rechner erfolgt. Denn dann
erfolgt der eigentliche Versand in der Regel über das Programm
"sendmail" (oder ein dazu kompatibles Programm). Dessen Warteschlange
für Eingangs-/Ausgangsmails läßt sich aber leicht "anzapfen", weil
die Mails dort in einfachem ASCII-Format auf der Festplatte liegen.
Hier sind die Voraussetzungen für die Schritte 2 bis 4 des
Programmierleitfadens also bereits ohne Zusatzaufwand erfüllt.
Fall 2: Das E-Mail-Programm benutzt den Windows-MAPI-Spooler
Unter Windows verfügen einige Mail-Clients wie "MS-Exchange" oder
"Outlook" (nicht aber "Outlook Express") zwar über keine
Dateischnittstelle, benutzen jedoch den sog. MAPI-Spooler zum
Versenden/Empfangen von Internet-Mails.
In diesem Fall läßt sich eine Dateischnittstelle einfach durch
Installation der Software "mail4u" (siehe "www.mail4u.atnet.at")
nachrüsten. (Globallizenz für alle PCs einer Stadtverwaltung:
ca. 200 DM.)
Hinweis: "mail4u" ist eigentlich dazu gedacht, Clients wie
"MS-Exchange" oder "MS-Outlook" per UUCP an das Internet anzubinden.
Wenn man die UUCP-Komponente jedoch wegläßt und als Zielformat den
sog. "BSMTP Queue Mode" einstellt, wird "mail4u" zur komfortablen
Dateischnittstelle von MS-Exchange/Outlook.
Fall 3: Das E-Mail-Programm wickelt SMTP/POP3 direkt ab
E-Mail-Clients, die weder eine Dateischnittstelle aufweisen noch den
MAPI-Spooler benutzen, wickeln in der Regel die Internet-Kommunikation
über das SMTP-Protokoll (Ausgangspost) bzw. POP3-Protokoll
(Eingangspost) direkt ab. Zu diesen Programmen gehören z.B. "Outlook
Express", "Netscape Mail", "Eudora", "Lotus Notes" oder "Novell
Groupwise".
Auch hier läßt sich eine Dateischnittstelle ohne
Individualprogrammierung schaffen, wenn man ein Mail-Gateway über
einen vorgeschalteten Linux-Rechner einrichtet.
Ein kurzgefaßter "roter Faden" für die erforderlichen Schritte wäre
z.B.:
(a) Windows-Netz auf TCP/IP-Protokoll umstellen (falls nicht ohnehin
schon TCP/IP genutzt wird).
(b) Einen Linux-Rechner in dieses Netz hängen.
(c) In den Mail-Clients als SMTP- und POP3-Host des Providers die
Daten des Linux-Rechners angeben und die zugehörige IP-Adresse in
die "hosts"-Datei des Client-Betriebssystems eintragen.
Dadurch wird bewirkt, daß der Mail-Client zum Versenden bzw.
Empfangen nicht ins Internet hinauswählt, sondern "hausintern"
eine SMTP/POP3-Verbindung mit den entsprechenden Softwaremodulen
auf dem Linux-Rechner aufbaut.
(d) Auf dem Linux-Rechner "sendmail" so einrichten, daß es
Ausgangspost vom Mail-Client entgegennimmt und z.B. im Verzeichnis
"/var/spool/mqueue" ablegt.
Von dort können die Mails dann durch das zentrale
Verschlüsselungsmodul abgeholt, ggf. verschlüsselt/signiert und
dann ins Internet versandt werden.
(e) Eingangsmails werden nach der Abholung aus dem Internet vom
zentralen Entschlüsselungsmodul bearbeitet und danach in
entschlüsselter Form auf dem Linux-PC in geeignete
User-Verzeichnisse (z.B. "/var/spool/[username]") abgelegt.
Von dort werden sie (z.B. über "inetd" und "popper") an die
Mail-Clients übergeben, wenn diese ihre wartenden Mails vom
"Provider" abholen.
Die Details der Realisierung lassen sich im Internet z.B. unter
"www.toetsch.at/de/tips/linux/99/16.htm" und den dortigen
Literaturangaben nachlesen. Alle erforderlichen Softwaremodule (mit
Ausnahme der automatischen, zentralen Ver-/Entschlüsselung) sind
Standard-Bestandteil der aktuellen Linux-Distributionen.
Bei dieser Konfiguration ist es übrigens _nicht_ erforderlich, daß
auch die zentrale, automatisierte Ver-/Entschlüsselung (oder der
physische Versand ins Internet) auf dem Linux-Rechner läuft. Der
Linux-PC kann die relevanten Verzeichnisse ("/var/spool/...") auch
einem anderen PC im Netz zugänglich machen (z.B. über "samba" oder
"nfs").
Wer also noch über kein Linux-Knowhow verfügt, kann sich all das von
einem Linux-Kenner als "Black-Box" einrichten lassen, die wartungsfrei
ist und ganz unauffällig in der Ecke stehen kann. (Im Endeffekt dient
hier der Linux-Rechner nur dazu, denjenigen Mail-Clients, die über
keine offene Dateischnittstelle verfügen, eine solche Schnittstelle
transparent zu ergänzen.)
Der Aufwand für das Schaffen einer Dateischnittstelle hängt also vom
vorhandenen E-Mail-System ab. Mit der Vorgehensweise von Fall 3 kann
jedoch in jedem Fall eine Dateischnittstelle geschaffen werden.
Die weiteren Schritte 2 bis 4, die in den nächsten 3 Teilen dieses
Leitfadens für Programmierer behandelt werden, sind dann unabhängig
von den jeweils eingesetzten E-Mail-Clients.
- Wolfgang Redtenbacher
"signatur"-Moderator
[Zurück zur Hauptseite des
Verschlüsselungsprojekts]