Erschienen im Oktober 1996 in der Funkschau 23/96, S. 42

E-Mail im Internet

Die Anforderung an E-Mail ist trivial: eine Datei soll in eine andere kopiert werden. Dabei kann die Zieldatei auf einem anderen Rechner liegen. Um E-Mail zu einem zuverlässigen Internet-Dienst zu machen, bedarf es jedoch einigen Aufwands.

E-Mail gehört zu den ältesten Nutzungsmöglichkeiten des Netzes. In den siebziger Jahren gab das amerikanische Verteidigungsministerium das Arpanet für die Nutzung durch die Universitäten frei: Brachliegende Rechenkapazitäten sollten auch von entfernten Stellen genutzt werden können. Es stellte sich schnell heraus, daß sich vor allem die Möglichkeit der elektronischen Post großer Beliebtheit erfreute.

Die elektronische Post kann analog der herkömmlichen betrachtet werden: der Brief besteht aus einem Umschlag - den Kopfzeilen - und dem Inhalt - dem Text. Statt der üblichen Adressierungsweise Name, Straße, Stadt, Land folgt die E-Mail-Adresse allerdings einer anderen Konvention: name@rechner.subdomain.domain. Eine Adresse könnte z. B. so aussehen: haensel@hexenhaus.finsterer-wald.de. Der Empfänger, an den ein Brief mit dieser Adresse gerichtet ist, hat ein Postfach unter dem Namen haensel. Er soll auf dem Rechner Hexenhaus in der Subdomain finsterer-wald, die Teil der Domain de (für Deutschland) ist, erreichbar sein. Der »Klammeraffe« @ (das Zeichen steht für »at«, engl. »bei«) trennt den Benutzernamen vom Fully Qualified Domain Name, anhand dessen ein Rechner weltweit eindeutig identifizierbar ist. Mit dem Abschicken des Textes wird der Brief quasi in den Briefkasten geworfen, und der Rest kann der »Post« überlassen werden. Bei der Ankunft auf dem Zielrechner wird der Brief dem lokalen Zusteller übergeben, der ihn in das richtige Postfach sortiert.

Aufbau einer E-Mail

Die Beliebtheit von E-Mail brachte einen Wildwuchs an Programmen mit jeweils unterschiedlichen Anforderungen und Definitionen hervor. Diese wurden in verschiedenen RFCs (Request for Comments - die RFCs beschreiben die Quasi-Standards des Internet) zusammengefaßt und vereinheitlicht. Das letzte Wort in dieser Sache hatte der RFC 822 »Standard for the format of arpa internet text messages« von 1982. Seit dieser Zeit gilt für elektronische Briefe nicht nur, daß, wie es das Beispiel zeigt, die Kopfzeilen vom Text durch eine Leerzeile getrennt sind.

From hexenhaus.finsterer-wald.de!haensel  Mon Sep 2 12:28:16 1996
Return-Path: 
Received: from mail.leute.de by arme.leute.de with smtp
        (Smail3.1.28.1 #6) id m0v5GXy-0006G1C; Mon, 2 Sep 96 12:27 MET DST
Received: from hexenhaus.finsterer-wald.de by mail.leute.de (Smail3.1.28.1 #20)
	id m0v5HG4-000HzGC; Mon, 2 Sep 96 12:26 GMT+0100
Received: from localhost (root@localhost) by hexenhaus.finsterer-wald.de 
        (8.7.5/8.7.3) with SMTP id DAA04473; Mon, 2 Sep 96 12:19 GMT+0100
Message-Id: 
Date: Mon, 26 Aug 96 12:18 GMT+0100
To: gretel@arme.leute.de
From: haensel@hexenhaus.finsterer-wald.de
Subject: Re: Es war einmal

Iss nie Lebkuchen auf nuechternen Magen! Das gibt Alptraeume.

        Haensel 

Auch die Namen und der Inhalt der Felder sowie der Doppelpunkt als Trennzeichen zwischen beiden wurden festgelegt. Im To-Feld wird die Adresse untergebracht, das Feld »From« enthält die Adresse des Absenders, und »Subject« erlaubt die Angabe eines Betreffs. Zusätzlich zu der im Beispiel gezeigten Minimalausstattung erlaubt der Standard die Verwendung weiterer Felder. Dazu gehören u. a. die Felder »Cc« und »Bcc«, wobei »Cc« jeweils für Carbon-Copy steht. An die Adressen im Cc-Feld wird eine Kopie des Schreibens geschickt, wobei die anderen Empfänger in den Kopfzeilen auftauchen. Mit der Verwendung von »Bcc« (B für Blind) wird die Information, wer ebenfalls den Brief empfangen hat, unterdrückt. Weitere Möglichkeiten bieten die Felder »Reply-To«, um die Antwort an die angegebene Adresse schicken zu lassen, sowie »Sender«, welches die Unterscheidung zwischen demjenigen, der den Brief abschickt, und dem Verfasser im From-Feld erlaubt. Das Postprogramm, der MUA (für Mail User Agent), mit dem der Benutzer arbeitet, stellt diese Möglichkeiten zur Verfügung und generiert die Kopfzeilen entsprechend den Vorgaben.

Agenten für den Transport

Beim Abschicken des Briefes nimmt der MUA Kontakt zur Transportsoftware, dem MTA (Mail Transport Agent), auf und übergibt den Brief. Vom MTA, der im Bereich des Internet auf den Namen SMTP (Simple Mail Transfer Protocol) hört, erhält die Nachricht eine eindeutige Kennzeichnung, die »Message-Id«, sowie einen Zeitstempel. Im Feld »Received« hinterlassen die MTAs die Namen der an der Übermittlung beteiligten Rechner und den der verwendeten Software.

Innerhalb des Internet übernimmt der lokale MTA die Zustellung. Dazu muß der Klarname des Zielrechners - dieser findet nur deshalb Verwendung, weil sich der Mensch ihn besser als eine Nummer merken kann - in seine Internet-Protokoll-Adresse umgewandelt werden. Die IP-Adresse besteht zur Zeit noch aus einer 32 Bit großen Nummer, die in vier Felder zu je 8 Bit unterteilt wird (z. B.: 193.174.4.62). Theoretisch lassen sich auf diese Weise 255^4, also über 4.2 Milliarden Rechner adressieren. Diese Möglichkeit wird zum einen durch die Reservierung verschiedener Adressbereiche eingeschränkt. Zum anderen werden die Felder eins bis drei auch zur Kennzeichnung von Netzen verwendet. Sogenannte Class-A Netze haben im ersten Feld die Nummern 1 bis 127. Damit lassen sich 127 Netzwerke einrichten, die aus über 16 Millionen Rechnern bestehen können. Für Class-B Netze werden die ersten beiden Felder von 128.0.0.0 bis 191.255.0.0 belegt. Damit können 16320 Netze mit jeweils 65024 Rechnern gekennzeichnet werden. Class-C Netze schließlich beginnen bei 192.0.0.0 und werden durch die ersten drei Felder identifiziert. Ihre Adressen verweisen nur mit dem vierten Feld auf die beteiligten Rechner. Daher können in einem Class-C Netz nur 254 Rechner adressiert werden. Der Mangel an Adressen für Netze sorgte für einen neuen Standard des IP-Protokolls - die IP-Version 6. In dieser neuen Version können die Adressen dann 64 Bit umfassen. Ob dieser scheinbar unerschöpfliche Adressraum tatsächlich ausreichen wird, ist noch nicht abzusehen. Sollte der Trend zur Vernetzung auch irgendwann Haushaltsgeräte einbeziehen, könnte hier erneut ein Engpaß entstehen.

Aber zurück zur Beispieladresse 193.174.4.62, die offensichtlich zu einem Class-C Netz gehört. In kleineren Netzen könnte der MTA des sendenden Rechners die IP-Adresse herausfinden, indem er den Klarnamen in einer Datei, die Rechnernamen mit ihren Adressen verknüpft, nachsieht. Für größere Netze, in dem Beispielbrief sogar über Domaingrenzen hinweg, wird auf den Domain Name Service (DNS) zurückgegriffen. Der MTA von »hexenhaus« schickt also eine Anfrage mit dem Namen des Zielrechners an den Domain Name Server seines Netzes. Dieser antwortet, da ihm der Zielrechner unbekannt sein wird - er gehört nicht zu seiner Domain -, mit der Adresse des Domain Name Servers der Domain »leute.de«. Auf die zweite Anfrage, diesmal an den Server von »leute.de«, erhält der MTA die Adresse von »arme.leute.de«. Erst mit dieser IP-Adresse könnte der MTA auf hexenhaus die Verbindung zum MTA auf »arme.leute.de« aufbauen und den Brief übermitteln.

In der Regel wird es jedoch in jeder Domain für die eingehende Post einen speziellen Mail-Server geben, der immer erreichbar sein soll. Dieser wird in der Datenbasis des DNS über einen sogenannten MX-Record bekanntgemacht, was bedeutet, daß der Datensatz, der Name und IP-Adresse verknüpft, auch ein »mx« (Mail-Exchange) enthält. Der MTA von »hexenhaus« fragt also beim DNS von »leute.de« nach einem MX-Record für die Domain und erhält Namen und Adresse des Mail-Servers von »leute.de«. Dann kann der MTA den Brief dorthin übermitteln. Die Zustellung zum Zielrechner übernimmt dann der MTA von »mail.leute.de«. (s. Grafik)

Für den Fall, daß der Zielrechner nicht erreichbar oder das Postfach nicht existent sein sollte, übernimmt es der MTA, eine Fehlermeldung zu erstellen und den Brief zurückzuschicken.

Zeichensätze und Codierungen

Der RFC 822 hat einen entscheidenden Nachteil: er befaßt sich nur mit den Kopfzeilen und erwartet im Text ASCII-Zeichen (American Standard Code for Information Interchange). Dieser Code enthält 128 Zeichen (numeriert von 0 bis 127) und ist auf die Erfordernisse des Englischen ausgerichtet. Unter diesen 128 Zeichen finden sich die Zahlen 0 - 9, die Buchstaben a - z und A - Z, Interpunktions-, sowie einige Steuerzeichen, etwa Seitenvorschub, Klingel, Wagenrücklauf usw., welche deutlich auf die Herkunft von Fernschreibcodes der Telex-Technik verweisen. IBM schuf auf PC-Ebene einen quasi-Standard mit der Erweiterung auf 256 Zeichen, die Umlaute und Zeichenelemente für den Bildschirm bereitstellte. Dagegen arbeiten viele Unix-Systeme heute in der Regel mit den Zeichensätzen, die von der International Standards Organization (ISO) festgelegt wurden.

Die Nachwirkungen sind heute noch zu spüren. Nicht alle MTAs können mit Nachrichten umgehen, die Zeichen enthalten, deren Wert höher als 127 ist: sie könnten z. B. das achte Bit schlicht auf 0 setzen. Auch die MUAs und Editoren selber können diesen Mangel aufweisen (sie sind nicht »8-bit-clean«). Das kann dazu führen, daß der Text, der auf dem eigenen Bildschirm noch ansehnlich aussieht, beim Empfänger mit seltsamen Zeichen versehen erscheint. Für Mitteilungen, die nur Text enthalten, mag das auch im Deutschen noch angehen: Die Umlaute können mit ae, oe usw. umschrieben werden. Aber Programm- und Bilddateien lassen sich nicht über 7-Bit-Kanäle übertragen. Dieses Dilemma kann durch eine Umcodierung umgangen werden: aus der Quelle mit 8-Bit-Zeichen wird eine Datei generiert, die nur noch Zeichen des geforderten ASCII-Codes enthält. Verschiedene Programme wie uuencode und btoa (binary to ascii) dienen diesem Zweck. Sie setzen allerdings auf Empfängerseite ihr jeweiliges Gegenstück, nämlich uudecode bzw. atob, voraus.

Die zunehmende Internationalisierung des Internet und die Ausweitung der Anforderungen an E-Mail führte zu einer Erweiterung des RFC 822. Diese Erweiterung wurde mit den »Multipurpose Internet Mail Extensions«, kurz MIME, realisiert. MIME gestattet die beliebige Kombination von Text, Bild und Klang in einem Brief. Kannte der RFC 822 nur die Unterteilung von Kopfzeilen und Text, so erlaubt MIME einen Brief mit mehr als zwei Teilen. Über neu definierte Felder in den Kopfzeilen wird sichergestellt, daß jeder Teil einer Mitteilung von einem MIME-konformen MUA adäquat als Text oder Bild dargestellt wird.

Außerdem wurde auch eine neue Codierung für 8-Bit-Quellen festgelegt: base64. Für das häufig benutzte Programm uuencode gibt es keinen Standard, und zudem verwendet es Zeichen, die nicht überall korrekt interpretiert werden. base64 verwendet eine Untermenge von 65 Zeichen des ASCII-Codes, die in den meisten Zeichensätzen enthalten ist. Auf diese Weise kann eine korrekte Übertragung eher garantiert werden.

Der bekannteste Effekt von MIME besteht in der Ersetzung von Zeichen, deren ASCII-Wert über 127 liegt, durch ihre hexadezimale Darstellung mit einem vorangestellten Gleichheitszeichen. Auf diese Weise werden z. B. ä, ö, ü und ß zu =E4, =F6, =FC und =DF. Außerdem erfolgt nach 76 Zeichen in einer Zeile automatisch ein Zeilenumbruch. Verantwortlich für dieses Verhalten ist der Eintrag »quoted-printable« im neuen Feld »Content-Transfer-Encoding«. Mit dieser Voreinstellung nimmt ein MIME-konformer MUA zwar 8-Bit-Zeichen entgegen und stellt sie auch korrekt dar, versendet jedoch die umgewandelte Form.

Sicherung der Privatsphäre

Codierungsverfahren wie base64 oder uuencode stellen sicher, daß Dateien korrekt übertragen werden. Was sie nicht sicherstellen, ist Vertraulichkeit. Ein Tippfehler in der Adresse genügt, und die Liebeserklärung landet in der Öffentlichkeit; Firmen haben unter Umständen nur eine E-Mail-Adresse, und jede Mitteilung kann von jedem gelesen werden. Abgesehen davon muß ein Brief nicht immer von der Person stammen, die im From-Feld genannt ist. SMTP macht seinem Namen alle Ehre und ist auch simpel zu manipulieren. Entsprechende Hinweise werden regelmäßig in den Nachrichtengruppen des Usenet veröffentlicht, so z. B. im FAQ (Frequently Asked Questions, ein Katalog häufig gestellter Fragen und ihrer Antworten in einer Nachrichtengruppe) der Gruppe alt.2600.

Die zwei Anforderungen, die sich aus dieser Problemstellung ergeben, nämlich Sicherung des Textes vor fremdem Zugriff und Eindeutigkeit des Verfassers, erfüllt ein für verschiedene Betriebssysteme frei erhältliches Programm namens PGP (Pretty Good Privacy). Mit Hilfe dieses Programms lassen sich Texte verschlüsseln und eindeutige Signaturen generieren. Kryptographie beruhte lange Zeit auf der Verwendung des gleichen Schlüssels auf Sender- und Empfängerseite. PGP benutzt hingegen ein asymmetrisches Verfahren mit zwei Schlüsseln: einem öffentlichen und einem privaten. Ein Beispiel: Die Benutzerin Gretel generiert mit PGP ihre beiden Schlüssel und verbreitet den öffentlichen Schlüssel an geeigneten Stellen. Den anderen hält sie geheim. Hänsel kann nun seine Warnung hinsichtlich der Lebkuchen mit Gretels öffentlichem Schlüssel chiffrieren und ihr zuschicken. Mit ihrem geheimen Schlüssel kann Gretel die Nachricht wieder in Klartext umwandeln. Hat Hänsel den Brief zudem signiert, kann Gretel mit Hänsels öffentlichem Schlüssel sowohl prüfen, ob der Brief von ihm stammt, als auch, ob der Brief verändert wurde. Für die Signatur generiert PGP eine Art Prüfsumme der ganzen Mitteilung und chiffriert diese Prüfsumme zusammen mit einem Zeitstempel mittels des geheimen Schlüssels. Mit Hänsels öffentlichem Schlüssel dechiffriert Gretel dessen Signatur und PGP testet anhand der Prüfsumme, ob die Nachricht unverändert angekommen ist.

Am Ende schließt sich der Kreis: Damit eine PGP-chiffrierte Datei durch das im RFC 822 festgelegte 7-Bit-Nadelöhr paßt, codiert PGP sie wiederum, diesmal mit Radix-64.


Struktur der Internetadressen

Am Anfang war das Internet flach. Solange das Netz einigermaßen überschaubar blieb, kannte jeder Rechner jeden anderen im Netz. Der Adreßraum war horizontal geordnet. Mit der rasant wachsenden Zahl von vernetzten Rechnern wurde es jedoch bald notwendig, verschiedene Ebenen einzuziehen. Da das Internet zu jener Zeit noch vorwiegend eine nationale Angelegenheit der USA war, wurde die Strukturierung nach dem Benutzerspektrum in den USA vorgenommen:

com
Kommerzielle Anbieter
edu
Schulen, Universitäten
gov
Behörden
mil
Militärische Einrichtungen
net
Netznahe Einrichtungen
org
nicht-kommerzielle Organisationen

Mit der zunehmenden Internationalisierung des Netzes wurde die Entscheidung getroffen, diesen sogenannten Toplevel-Domains weitere hinzuzufügen. Zurückgegriffen wurde hier auf den geographischen Bereich, und die einzelnen Länder wurden anhand ihrer ISO-Kürzel kenntlich gemacht. Die Nachbarländer der Bundesrepublik z. B. erhielten diese Kürzel:

dk
Dänemark
pl
Polen
cz
Tschechien
at
Österreich
ch
Schweiz
fr
Frankreich
lu
Luxemburg
be
Belgien
nl
Niederlande

Innerhalb dieser Bereiche können dann weitere Ebenen eingerichtet werden. Mit dem Kürzel »ac.uk« sind z. B. die akademischen Einrichtungen in Großbritannien gekennzeichnet.


Verschiedene Adressenformate

Innerhalb des Internet gilt die Konvention, daß die Adresse aus dem Nutzernamen und einer Domainangabe besteht: »nutzer@rechner.subdomain.domain«. Benutzername und Domainangabe werden durch den Klammeraffen verknüpft. Die Felder der Domainangabe werden durch Punkte voneinander getrennt. Die Adresse darf weder Kommata noch Leerstellen enthalten, da beide Zeichen als Trennung zweier verschiedener Adressen aufgefaßt werden können.

In Teilen des Netzes, die nicht direkt zum Internet gehören, gelten andere Konventionen.

Compuserve: Jeder Compuserve-Nutzer erhält eine eindeutige Nummer. Innerhalb von Compuserve genügt diese Konvention. Um vom Internet aus eine Adresse bei Compuserve zu erreichen, muß diese umgeformt werden. Bei Compuserve gilt die Regel, eine Nummer durch ein Komma mit einer anderen zu verknüpfen: »12345,123«. Um einen Brief an diese Adresse zu schicken, genügt es, das Komma durch einen Punkt zu ersetzen und »@compuserve.com« anzuhängen: »12345.123@compuserve.com«.

Bitnet: Im Bitnet erhält ein Nutzer die Adresse »Nutzer@Domain«. Mit Glück genügt es, schlicht ».bitnet« an diese Angabe zu hängen: »Nutzer@Domain.bitnet«. Sollte diese Möglichkeit nicht funktionieren, muß der Brief an einen Gateway - einen Übergang - zwischen Internet und Bitnet gerichtet werden. Dazu muß das at in der Adresse als ein Prozent-Zeichen geschrieben werden: »Nutzer%Domain.bitnet«. Hieran schließt sich der Name des Gateways an, entweder »@vm.marist.edu« oder »@cunyvm.cuny.edu«. Daraus ergibt sich: »Nutzer%Domain.bitnet@vm.marist.edu« oder »Nutzer%Domain.bitnet@cunyvm.cuny.edu«.

America Online: Die Benutzernamen bei AOL können Leerzeichen enthalten. Läßt man diese weg und setzt »@aol.com« dahinter, sollte der Brief sein Ziel erreichen. Der Benutzer »Vorname Name« kann bei AOL dann unter »VornameName@aol.com« erreicht werden.

Fidonet: Adressen im Fido-Netz bestehen aus Nummern: »1:234/567.8«. Diese Adresse muß gedreht und die Nummern müssen zusätzlich mit den Buchstaben p (point), f (node), n (Netz) und z (zone) versehen werden: »p8.f567.n234.z1«. Dahinter muß ».fidonet.org« erscheinen. Vor diese Aufschlüsselung wird der Benutzername mit einem at plaziert: »BenutzerName@p8.f567.n234.z1.fidonet.org«. In Deutschland kann der Gateway von »s/e/s/o/m bbs« benutzt werden. »BenutzerName@p8.f567.n234.z2.sesom.nbg.de«

Der Förderverein Informationstechnik und Gesellschaft e.V. (Fitug) stellt auf seinem Web-Server unter http://www.fitug.de/archiv/dokus/e-mail/e-mail.html einen ein- und weiterführenden Text zum Thema bereit.