Date: Mon, 15 Nov 1999 16:05:14 -0500 (EST)
From: support@redtenbacher.de
Subject: Vorgehensweise fuer automat. Ver-/Entschluesselung von E-Mail

Sehr geehrte "signatur"-Abonnenten,

hier kommt nun, wie versprochen, die zusammenfassende Dokumentation der
Verfahren zur zentralen automatischen Ver-/Entschlüsselung von E-Mail.
Der Implementierungsvorschlag orientiert sich dabei an der Vorgehensweise
des Programms "KT-MAIL/Krypto", das mittlerweile u.a. in der
Geschäftsstelle des Städtetags BW und in Kirchheim/Teck im
Einsatz ist.

Da sich nicht jeder für Programmier-Informationen interessiert, werde
ich die Darstellung in 3 Sichtweisen trennen: Endbenutzer,
Mailserver-Administrator und Implementierer (wobei der Teil des
Implementierers natürlich erheblich umfangreicher als der des
Endbenutzers sein wird). So kann sich jeder die Aspekte herauspicken,
die ihn interessieren.

Insgesamt wird diese Zusammenstellung folgende Abschnitte umfassen:

0. Kurzübersicht zu "KT-MAIL/Krypto"

1. Die Sicht des Endbenutzers (Was muß er wissen, und wie stellt sich
   für ihn das Arbeiten dar?)

2. Die Sicht des Mailserver-Administrators (Was muß er wissen, und
   welche Arbeitsschritte fallen für ihn an?)

3. Die Sicht des Programmierers (Welche Aspekte sind beim
   Programmieren einer automat. Ver-/Entschlüsselung auf dem
   Mailserver zu berücksichtigen, um sowohl einen bedienerlosen
   Betrieb zu ermöglichen als auch eine größtmögliche
   Interoperabilität mit diversen PGP-Produkten und -Abkömmlingen
   sicherzustellen?):

   Schritt a: Einfügen einer Dateischnittstelle in ein bestehendes
              Mailsystem
   Schritt b: Paßwortverwaltung, -speicherung und Diebstahlschutz
   Schritt c: Abwicklung von Signatur/Verschlüsselung bei
              Eingangsmails: Formate, Algorithmen
   Schritt d: Abwicklung von Signatur/Verschlüsselung bei
              Ausgangsmails: Formate, Optionen, Algorithmen

Der vorliegende Beitrag enthält nachstehend die ersten beiden
Abschnitte. Die weiteren Abschnitte werde ich in den nächsten Tagen
der Reihe nach dokumentieren und an die Mailing-Liste senden.


ABSCHNITT 0: Kurzübersicht zu "KT-MAIL/Krypto"

"KT-MAIL/Krypto" ist eine Erweiterung unseres Server-Moduls KT-MAIL um
eine Komponente zur automatischen Ver-/Entschlüsselung von E-Mails auf
dem Mailserver.

Das zugrunde liegende Basismodul KT-MAIL deckt bereits folgende
Bereiche ab:

- elektronischer Postausgang/-eingang (SMTP, POP3)
- Einzelabrufe und automat. Abo-Abrufe aus dem WWW (HTTP)
- automatische Archivierung bestimmter Infos (z.B. Zeitungen)
- "Hacker"-Abwehr (100%-Firewall) und Entfernen von Makroviren

Der Schwerpunkt des Basismoduls KT-MAIL liegt darauf, die
Internet-Nutzung (inkl. WWW-Abrufe) zu automatisieren und 100% sicher
zu machen. (Sorgen um Hackerangriffe oder um Viren wie "Melissa",
"Papa" oder "Bubbleboy" waren für KT-MAIL-Nutzer nie ein Thema.)

Die Krypto-Komponente (deren Funktionsweise und Algorithmen im Rahmen
dieser Dokumentation Schritt für Schritt behandelt werden, damit jeder
Interessierte die entsprechende Funktionalität für seine eigene
Software kopieren/anpassen kann) erweitert die
Mailserver-Funktionalität von KT-MAIL um eine automatische
Ver-/Entschlüsselung von Mails mit folgenden Eckdaten:

- Bei Eingangspost werden sowohl verschlüsselte (+ggf. signierte)
  Mails als auch signierte Klartext-Mails in ein- und mehrteiliger
  Form und jeweils in den Formaten "OpenPGP" (RFC 2440) oder
  "PGP-MIME" (RFC 2015) automatisch erkannt und entschlüsselt.

  (In Normaldeutsch: Alles, was von irgendeiner existierenden
  PGP-Version, einem PGP-Plugin oder einem auch nur einigermaßen
  PGP-kompatiblen Produkt erzeugt wird, wird richtig erkannt und
  automatisch entschlüsselt.)

- Bei Ausgangspost können ebenfalls ein- und mehrteilige Mails (d.h.
  insbesondere auch Mails mit Dateianlagen) wahlweise verschlüsselt,
  verschlüsselt+signiert oder auch nur signiert werden.

  Hinweis: Ein reines Signieren ohne Verschlüsselung macht Sinn, wenn
  eine Mail nicht vertraulich ist (z.B. bei einem Beitrag an eine
  Mailing-Liste wie "signatur@onelist.com"), aber dennoch für den
  Empfänger überprüfbar sein soll, daß die Mail auch wirklich von
  einem bestimmten Absender stammt. Der Absender benötigt in diesem
  Fall _keinen_ PGP-Schlüssel des Empfängers - aber der Empfänger
  braucht natürlich PGP und den öffentlichen Schlüssel des Absenders,
  sofern er die Urheberschaft verifizieren will.

- Die Endbenutzer brauchen weder ein Schlüsselmanagement
  durchzuführen, noch können sie sicherheitskritische Fehler machen
  (da sie weder PGP noch irgendwelche Schlüssel haben).

- Der Mailserver-Administrator wickelt das Schlüsselmanagement
  (Hinzufügen/Löschen/Verifizieren von Schlüsseln) zentral ab. Er muß
  jedoch nur aktiv werden, wenn sich ein Schlüssel ändert. Die Nutzung
  der Schlüssel zum Ver-/Entschlüsseln/Signieren von Mails erfolgt
  vollautomatisch.


ABSCHNITT 1: Die Sicht des Endbenutzers

Das Konzept von "KT-MAIL/Krypto" geht davon aus, daß der Endbenutzer
nichts von Verschlüsselung verstehen muß/will und ihm insbesondere
kein Zusatzaufwand aufgebürdet werden soll. Daher sehen für ihn die
Abläufe folgendermaßen aus:

(a) Eingangsmails:

    Bei Eingangsmails muß der Endbenutzer gar nichts tun.
    Verschlüsselte Mails kommen bei ihm automatisch entschlüsselt an,
    und die Gültigkeit einer eventuell vorhandenen Signatur wird
    automatisch geprüft. Der Endbenutzer erkennt eine (ehemals)
    verschlüsselte Mail nur noch an entsprechenden Markierungen:

   ===Status der PGP-Nachricht===
   ...
   ...Signaturstatus (gute/schlechte Signatur, Absender usw.)
   ...
   ===Beginn der PGP-Nachricht===
   ...
   ...Text der Nachricht in entschlüsselter Form
   ...
   ===Ende der PGP-Nachricht===

   Verschlüsselte Mails sind außerdem an dem Zusatz "!V!" zu erkennen,
   der vom Krypto-Modul ans Ende der "Subject:"-Zeile angefügt wird.
   Durch diesen Zusatz wird sichergestellt (vgl. Abschnitt
   "Ausgangsmails" unten), daß auf eine verschlüsselte Mail
   standardmäßig auch verschlüsselt geantwortet wird und
   keine Sicherheitslücken durch Gedankenlosigkeit entstehen können.

(b) Ausgangsmails:

    Soll eine Ausgangsmail verschlüsselt übertragen werden, ist dazu
    lediglich die Angabe "!V!" an die Betreff-Zeile ("Subject:")
    anzufügen. (Sie darf an beliebiger Stelle in dieser Zeile stehen.)

    Analog wird das Signieren mit "!S!" ausgelöst. Der Wunsch nach
    Verschlüsselung+Signatur wird mit "!VS!" signalisiert (wobei
    natürlich auch "!V! !S!" o.ä. getrennt geschrieben werden darf).

    Das ist alles, was ein normaler Endbenutzer je wissen muß bzw. zu
    tun hat.

Anmerkungen:

(a) Wer die Beiträge der Mailing-Liste aufmerksam verfolgt hat, wird
    sich erinnern, daß eine ähnliche Signalisierungsmethode bereits am
    17.08.99 von der Stadt Karlsruhe vorgeschlagen worden war -
    allerdings über die Empfängeradresse ("To:"-Zeile) statt der
    Betreff-Zeile ("Subject:"-Zeile).

    Die Verwendung der "Subject:"-Zeile bietet gegenüber der
    "To:"-Zeile jedoch mehrere Vorteile:

    - Adressen brauchen nicht mehrfach gepflegt zu werden (mit/ohne
      Verschlüsselung)
    - Das "Subject:"-Feld kann in jedem E-Mail-Client vom Endbenutzer
      frei bearbeitet werden, wohingegen Adressen manchmal nur als
      Platzhalter/Kurzname angezeigt werden.
    - Beim Beantworten einer E-Mail über die "Antwort"-Funktion der
      E-Mail-Clients wird die "Subject:"-Zeile übernommen (und ggf.
      ein "Re:" o.ä. davorgestellt). Dieses Verhalten aller
      E-Mail-Clients stellt sicher, daß die Verschlüsselungsmarkierung
      einer Eingangsmail automatisch als Voreinstellung für die
      Antwort benutzt (und somit auf eine verschlüsselte Eingangsmail
      standardmäßig auch verschlüsselt geantwortet) wird.

(b) Die Markierungen !V!, !S! und !VS! werden beim Versand natürlich
    von "KT-MAIL/Krypto" entfernt. Sie dienen nur der internen
    Signalisierung zwischen Anwender und Mailserver-Software.
    Ebenso werden Verschlüsselungsmarkierungen, die ggf. als
    Textbestandteil in Eingangsmails enthalten sind (!V! im
    "Subject:"-Feld, oder die Zeilen "===Status der PGP-Nachricht==="
    usw. im Inhaltsbereich der Mail), aus diesen entfernt. (Ein
    externer Absender hat also keine Chance, die Verschlüsselungs-/
    Signaturmarkierungen von "KT-MAIL/Krypto" künstlich zu erzeugen,
    um einem Nutzer dieses Programms eine scheinbar korrekt signierte
    Mail eines anderen unterzujubeln.)

(c) Soll eine Ausgangsmail verschlüsselt werden (Markierung !V!),
    liegt aber für diesen Empfänger (noch) kein PGP-Schlüssel vor, so
    versendet "KT-MAIL/Krypto" die Mail _nicht_ in unverschlüsseltem
    Zustand ins Internet, sondern sendet sie mit einer entsprechenden
    Fehlermeldung an den Absender im Hause zurück.

    (In einer zukünftigen Version des Krypto-Moduls könnte man hier
    ein automatisches Abrufen solcher fehlender PGP-Schlüssel von
    PGP-Schlüsselservern hinzufügen. Solange wir aber keine
    Trust-Centers in unser Projekt einbeziehen, würde dadurch nur
    wenig gewonnen, weil ein abgerufener Schlüssel im allgemeinen noch
    verifiziert werden muß. Daher wird bei "KT-MAIL/Krypto" derzeit
    das Hinzufügen und Verifizieren von Schlüsseln noch manuell vom
    Mailserver-Administrator durchgeführt - vgl. der nächste Abschnitt.)

Das wär's für heute. Im nächsten Dokumentationsabschnitt
geht es dann um die Sicht des Mailserver-Administrators (der im Unterschied
zum Endbenutzer die PGP-Bedienung beherrschen muß).

- Wolfgang Redtenbacher
  "signatur"-Moderator

[Zurück zur Hauptseite des Verschlüsselungsprojekts]