Inhalt | Mailbox | Elektronik | Verkehr | Markt | Download | Geld | Suchen |
-Vorläufer-Draft-Vorläufer-Draft-Vorläufer-Draft-Vorläufer-Draft-
ß-VERSION
basierend auf ZConnect 3.0 (Zerberus GmbH)
und den Beschlüssen des ZConnect-Gremiums bis zum 1.10.1995
Diese Dokumentation darf frei aber nur komplett kopiert und weitergegeben werden. Änderungen an ZConnect beschließt das ZConnect-Gremium, Änderungen an dieser Dokumentation nimmt ausschließlich die Dokumentationskoordination vor. Vorschläge für Änderungen/Ergänzungen o.?. bitte an DOKUKOO@bingo.comlink.de senden.
-Vorläufer-Draft-Vorläufer-Draft-Vorläufer-Draft-Vorläufer-Draft-
>>> 15.10.1995 <<<
Anmerkungen zu diesem Vorläufer der endgültigen Version bitte in /T-NETZ/ZCONNECT/DISKUSSION posten. DOKUKOO ist derzeit noch nicht erreichbar, private Kommentare bitte an Sepro@bingo.comlink.de
Abschnitte, die mit "#" in der ersten Spalte gekennzeichnet sind, bedürfen vor einer endgültigen Formulierung der Diskussion im Gremium. Abschnitte, die nicht so gekennzeichnet sind, werden möglicherweise ebenfalls noch geändert werden. Mit einiger Sicherheit enthält die folgende Dokumentation noch Fehler. Außerdem sind komplette Kapitel "zur Diskussion" enthalten, so daß dieser Text _in dieser Form_ den Status von Sekundärliteratur hat.
-Vorläufer-Draft-Vorläufer-Draft-Vorläufer-Draft-Vorläufer-Draft-
INHALTSVERZEICHNIS
1. Hinweise zur Notation
2. Historie 2.1. Vom Hausstandard der Zerberus GmbH zu einem freien Protokoll 2.2. Kurzhistorie des /Z-Netzes 2.3. Das ZConnect-Gremium 2.4. Die ZConnect-Dokumentation 2.5. Rechte am Protokoll
3. Dokumentation 3.1. Onlinephase 3.2. Übertragene Dateien 3.3. Datenformat 3.3.1. Die Teile einer Nachricht 3.3.1.1. Headerinformationen 3.3.1.1.1. Aufbau und Zeichensatz von Headerinformationen 3.3.1.1.2. Adressenformat 3.3.1.1.2.1. Zeichensätze bei der Adresse 3.3.1.1.2.2. Private Nachrichten 3.3.1.1.3. Brettnamenformat 3.3.1.1.3.1. Öffentliche Nachrichten 3.3.1.1.4. Datumsangaben 3.3.1.2. Form des Bodys 3.3.2. ZConnect-Headerinformationen 3.3.2.1. Fest definierte Headerzeilen 3.3.2.2. Frei definierbare Headerzeilen 3.3.2.3. Headerzeilen aus anderen Datenformaten 3.3.2.3.1. UUCP 3.3.2.3.2. Fido 3.3.2.3.3. Z3.8 3.3.2.4. Headerzeilenvorhersage 3.4. Zusammenhänge 3.4.1. Informationelle Selbstbestimmung und Datenschutz 3.4.1.1. Zeitangaben 3.4.1.1.1. EDA 3.4.1.1.2. VIA 3.4.1.2. KOP 3.4.1.3. Wechsel von privaten Nachrichten über Netzgrenzen hinweg 3.4.2. Dupe- und Rekursionscheck 3.4.2.1. Dupecheck anhand der Message-IDs 3.4.2.2. Rekursionscheck anhand des Routepfads (ROT) 3.4.3. Weiterleiten 3.4.3.1. Manuelles Weiterleiten 3.4.3.1.1. Passives Weiterleiten 3.4.3.1.2. Aktives Weiterleiten 3.4.3.2. Automatisches Weiterleiten 3.4.3.3. Weiterleiten im Netz: Umleiten 3.4.4. Gemischtadressierung 3.4.5. Verschlüsselung 3.4.5.1. PGP 3.4.5.1.1. Grundsätzliches 3.4.5.1.2. Transport der Schlüsselinformation 3.4.5.1.3. Unterschriften 3.4.5.2. QPC: 3.4.6. Points 3.5. Maps-Standard 3.5.1. Die Maps-Befehle 3.5.1.1. Pflichtbefehle 3.5.1.2. Listenformat 3.5.1.3. Optionale Befehle 3.5.2. Kritik und Vorschläge 3.5.2.1. Maps und die vergessene Onlinephase 3.5.2.2. Maps aus Sicht des angeschriebenen Systems 3.5.2.3. Schwierigkeiten bei der Umsetzung des Gedankens, Maps transparent zu gestalten
4. Ergänzende Informationen 4.1. Datenschutzbestimmungen 4.2. Fremdformate 4.2.1. RFC 4.2.2. Z 3.8 4.2.3. Fido 4.3. MIME 4.4. Einige softwaretechnische Vorschläge 4.4.1. Hashverfahren für Rekursionscheck
5. Stand der Dinge
Anhänge
A) Literaturverzeichnis B) Glossar C) ZC 3.1 Grammatik in BNF D) Datenformatsübersicht D) 1. Tabellarische Übersicht der Headerinformationen D) 2. Liste der Pflichtinformationen D) 3. Liste der das Routing beeinflussenden Informationen E) Routing F) Janus und verwandte Protokollvarianten G) Zeichensätze H) Zeitzonen I) Liste der ZConnect-Programme
Fußnoten
1. HINWEISE ZUR NOTATION
Alle Zahlenangaben sind in dezimaler Schreibweise angegeben, sofern nicht ausdrücklich anderes ausgesagt wird. Ein Byte besteht aus acht Bits und deckt den Zahlenraum 0..255 ab.
Literaturhinweise sind im fließenden Text durch eckige Klammerung gekennzeichnet. Die Klammerinhalte sind der einfacheren Auffindbarkeit halber nicht schlicht durchnumeriert, sondern mit Kürzeln versehen. "PM" verweist hierbei auf eine persönliche Mitteilung, "D" auf einen Teil der zugrundegelegten Ursprungsdokumentation und "B" auf eine Brettnachricht. Daneben sind einige wichtige Dokumente direkt mit ihrem Namen gekennzeichnet (z.B. [Netikette]).
Die wichtigsten, im Zusammenhang mit ZConnect am häufigsten verwendeten Fachbegriffe werden im Anhang B in Form eines Glossars erläutert.
2. HISTORIE
Zum Verständnis vom ZConnect ist dessen Entstehungsgeschichte ein wichtiger Aspekt. Dieses Kapitel zeichnet die Entwicklung des Protokollumfelds bis zum heutigen Stand in Grundzügen nach.
2.1. Vom Hausstandard der Zerberus GmbH zu einem freien Protokoll
Das ZConnect-Protokoll wurde nach Aussage von Mitarbeitern der Zerberus GmbH im wesentlichen von Martin Husemann entworfen ([PM1]). Es wurde als Nachfolger des Z3.8-Netcallformats konzipiert, welches im Anhang G beschrieben ist und teilweise, allerdings ausschließlich im Rahmen der Janus-Protokollvarianten, noch immer Bedeutung hat.
Die Zerberus GmbH implementierte ZConnect zunächst für ihr Hauptprodukt "Zerberus", ein Mailboxprogramm. Am 3. August 1993 veröffentlichte die Firma dann ZConnect 3.0 als gedruckte Dokumentation ([D3.0]), schon im Dezember 1992 wurde aber in /T-NETZ/SUPPORT/ZCONNECT von einer vorliegenden ZConnect-Dokumentation gesprochen ([B1]).
2.2. Kurzhistorie des /Z-Netzes
Als privates Vernetzungsprojekt entstanden, verband das /Z-Netz in seinen Entstehungsjahren bürgerrechtsbewegte Menschen miteinander. Dabei wurde in den ersten Jahren mit dem Z3.8-Netcallformat zwischen Systemen ausgetauscht, die sich als "/Z-Netz-System" betrachteten, sich also bestimmten Regeln unterwarfen, wie z.B. der noch heute bestehenden Verpflichtung, die Bretter des Netzes immer komplett anzubieten und weiterzureichen. Das /Z-Netz versteht sich heute noch als mehr als die gleichnamige Bretthierarchie; mittlerweile sind UserInnenwahlen eingeführt worden, es gibt KoordinatorInnen (allgemein und technisch) und Benimmregeln, die in der [Netikette] formuliert sind.
Nachdem Anfang 1994 das technische Verfahren der Datennavigation im /Z-Netz auf das im Internet übliche Domainrouting (s. Kapitel "Adressen") umgestellt und damit das vorher verwendete, manuell erstellte und anhand von festen Plänen durchgeführte Verfahren ersetzt wurde, stellt sich das Netz logisch als Teil des Internetadreßraums dar.
Heute versteht sich das /Z-Netz als unabhängig von der eingesetzten Technik ([Netikette]), noch immer wird auf /Z-Netz-Systemen aber - vermutlich mehrheitlich - das Nachfolgeprotokoll der alten Z3.8-Technik, nämlich ZConnect, eingesetzt.
2.3. Das ZConnect-Gremium
Auf Vorschlag von Martin Husemann entstand Ende 1993 das anfänglich aus zehn Personen bestehende ZConnect-Gremium ([B2]). Auf der Grundlage der Dokumentation der Protokollversion 3.0 begann dann dessen Arbeit. Das Gremium bestand und besteht aus Menschen, die an der Pflege ZConnects mitarbeiten und erweitert sich durch ein Wahlverfahren. Etwa zeitgleich wurde die Arbeit an ZConnect von /T-NETZ/SUPPORT/ZCONNECT nach /T-NETZ/ZCONNECT/* verlagert.
In /T-NETZ/ZCONNECT/MELDUNGEN sind alle Wahlaufrufe und -ergebnisse, die aktuelle Liste der Gremiumsmitglieder ([Mitglieder]) und auch Listen von ZConnect-fähigen Programmen zu finden. Aktuelle Diskussionen sind in /T-NETZ/ZCONNECT/DISKUSSION mitzuverfolgen.
Seit Existenz des Gremiums sind unter Leitung von Hinrich Donner (hd@wf-hh.shnet.org) fünf Wahlen zu ZConnect 3.1 durchgeführt worden ([Wahl1]-[Wahl5]). Die Wahlen finden per geheimer Stimmabgabe an den/die Wahlleiter/in statt. Mit der fünften Wahl sollte die Version 3.1 geschlossen und mit der zur CeBIT'95 durch die Zerberus GmbH vorgestellte Print-Dokumentation ([D3.1Z]) abschließend dokumentiert werden. Jedoch geriet diese Dokumentation in die Diskussion, da sie sich nicht an alle Ergebnisse der erfolgten Wahlen (siehe Hinweise im folgenden bei den einzelnen Headerinformationen) hält und somit ---- nicht ZConnect-kompatibel ist.
Die vom Gremium beschlossenen Änderungen und Erweiterungen sind ohne Übergangsfristen verbindlich für die AnwendungsprogrammiererInnen{1}. Frühestens nach sechs Monaten ist eine erneute Abstimmung über eine abgestimmte Änderungen zulässig ([Wahl1]).
2.4. Die ZConnect-Dokumentation
Die ZConnect-Dokumentation ist ein verstreutes und manchmal auch etwas zerstreutes Gebilde. Sie bestand bis zum Erscheinen dieses Textes aus der jeweils letzten Dokumentation der Zerberus GmbH und den von diesem Zeitpunkt an beschlossenen Änderungen durch das Gremium. In /T-NETZ/ZCONNECT/MELDUNGEN{2} waren und sind beschlossene Protokollbestandteile nachzulesen.
Bisher mußte einE potentiellEr ProgrammiererIn die komplette Entwicklung mitverfolgen, [D3.0] zugrunde legen und die vereinzelt beschlossenen Änderungen oder Erweiterungen darauf anwenden, wobei Änderungen auch durchaus vorausgegangene Änderungen betreffen. Diese arbeitsaufwendige Dokumentationsbeschaffung wurde etwas vereinfacht durch zwei Zusammenstellungen von verschiedenen Änderungsständen. Zum einen ist dies das ZConnect-3.1-Proposal von Martin Husemann, wie es in das Brett /T-NETZ/ZCONNECT/DISKUSSION verschickt wurde. Zum anderen existiert eine Zusammenstellung vom Wahlleiter der Gremiumswahlen, mit der Bezeichnung "Änderungen ZConnect 3.1 März bis Dezember '93". Der Status des Proposals ist dabei nie endgültig geklärt gewesen. Anhand eines vollständigen Archivs aller Nachrichten in den einschlägigen Brettern seit deren Bestehen ist es nachträglich als sachlich richtige Zusammenfassung zu bestätigen. Daher fand das Proposal als [D3.1P] Eingang in diese Dokumentation, die Zusammenfassung der Änderungen als [D3.1M].
Die Beschreibung der Onlinephase hingegen liegt aktuell und zusammenhängend nur in der zur CeBIT'95 veröffentlichten Dokumentation "ZConnect 3.1" von der Zerberus GmbH ([D3.1Z]) vor. Diese Phase wurde seit Bestehen des Gremiums von diesem nicht nennenswert bearbeitet oder diskutiert (lediglich im Rahmen der PGP-Einbindung wurde eine neue Headerinformation für die Onlinephase eingeführt).
Beim Datenformat steht der Begriff "die Dokumentation" im folgenden für die Gesamtheit aus [D3.0], [D3.1P] und [D3.1M]. Auch [D3.1Z] beschreibt das ZConnect-Datenformat, weicht jedoch hierbei in einigen Punkten von den Gremiumsbeschlüssen ab. Daher ist es in die Kapitel zum Datenformat nur in Zweifelsfällen oder als Hinweisgeber für sinnvolle Änderungsvorschläge eingegangen.
Die Bezugnahme auf frühere Dokumente dient vor allem dem Konsitenznachweis dieses Textes. Nach Beschluß durch das ZConnect-Gremium ersetzt dieser Text alle früher veröffentlichten Dokumentationsbestandteile zum Datenformat "ZConnect".
2.5. Rechte am Protokoll
Mit der Veröffentlichung der Dokumentation zu ZConnect 3.0 ist das Protokoll für die lizenzfreie Verwendung - auch in kommerziellen Anwendungen - freigegeben. Dies gilt auch für die seitdem erfolgten Änderungen. [D3.0] und [D3.1Z] verlangen aber, daß neben den Copyrightvermerken in Dokumentation und im ZConnect implementierendem Programm, ein Copyrightvermerk der Zerberus GmbH angegeben werden muß. Dies war schon bei ZConnect 3.0 strittig, bei 3.1 ist es das erst recht, da die Änderungen in der Verantwortung des Gremiums und nicht in jener der Zerberus GmbH liegen.
Hintergrund des Bestehens auf das Copyright ist, daß das Protokoll "ZConnect" fest definiert sein, also nicht von Produkten verwendet werden soll, die nicht den vollen Umfang der Spezifikation erfüllen. In der Praxis erfüllt jedoch keine Software den vollen Umfang der Spezifikation.
3. DOKUMENTATION
3.1. Onlinephase
Der Datenaustausch zwischen zwei Systemen erfolgt bei ZConnect nach einem Store-And-Forward-Verfahren. Diese Tauschphase wird bei ZConnect Onlinephase genannt und folgt folgendem groben Schema:
Verbindung aufbauen | v Systemdaten austauschen (Handshake) | v Daten austauschen (Transfer)<--. | | | v `---' Verbindung beenden (Logoff)
Dieser für Wählleitungen entworfene Aufbau weist zwei Besonderheiten auf. Zum einen einigen sich die Systeme in der Handshakephase selbsttätig auf zu verwendende Übertragungsprotokolle (z.B. XModem, ZModem), Packprogramme (z.B. ZIP, LHA) und mehr. Zum anderen kann die Transferphase mehrmals hintereinander ausgeführt werden, so daß z.B. in einem Local Area Network in der Zwischenzeit neu bereitgestellte Daten noch während der bestehenden Verbindung übertragen werden können.
Der Gedanke an Wählleitungen und die übliche Tarifierung, bei der die Anruferin für die Verbindung bezahlt, bedingen beim ZConnect-Design, daß die Anruferin über den Ablauf des Austausches bestimmt. So kann sie jederzeit die von der Angerufenen angebotenen Daten ablehnen oder nur Teile davon abfordern. Umgesetzt wird dies durch ein umfangreiches Verfahren von Anfrage-Antwort-Ablehnung/Bestätigung-Ausführung. Hierbei gilt immer, daß bereits - auch teilweise - korrekt übertragene Daten möglichst nicht noch einmal übertragen werden sollen.
Als weiteres Ziel gibt [D3.1Z] vor, daß das Protokoll auch bei nicht vollständig datentransparenten Verbindungen funktionieren muß. Außerdem soll die Protokollspezifikation ohne größeren Aufwand erweiterbar sein.
Die Verbreitung der ZConnect-Onlinephase beschränkt sich auf die Orte im Netz, an denen das Zerberus Mailboxprogramm oder UNIX/Connect eingesetzt wird. Pointprogramme, die die Onlinephase unterstützen, gibt es derzeit nicht. Es wird überwiegend Janus und zunehmend dessen Derivat JanusPlus eingesetzt. Diese Protokolle sind im Anhang beschrieben.
Die ZConnect-Onlinephase wird im Rahmen dieses Textes nicht näher beschrieben. Sicher bedarf die Dokumentation der Onlinephase als solche dringend der neuen Ausarbeitung, insbesondere unter Ergänzung von Ablaufdiagrammen und eindeutigen Zuordnungen der möglichen Informationen zu den einzelnen Phasen der Kommunikation. Jedoch wurde im Hinblick auf den notwendigen Zeitaufwand für diese Dokumentation der Schwerpunkt auf das weit verbreitete Datenformat gelegt. Sollte die ZConnect-Onlinephase den Status eines offenen Protokolls erlangen, ist über eine dokumentationstechnische Wiedervereinigung mit dem hier behandelten Datenformat neu zu entscheiden.
3.2. Übertragene Dateien
In ZConnect ist fesgelegt, wie die Dateien heißen müssen, die während der Onlinephase (auch der Onlinephase von JANUS, vgl. Anhang F) übertragen werden. Der Typ der Dateien wird von der DOS-üblichen Extension, also den drei Zeichen nach dem einzigen Punkt im Dateinamen, abhängig gemacht. Sowohl Dateinamen selbst als auch Extensions sind ohne Berücksichtigung der Groß-/Kleinschreibung zu bearbeiten. Grundsätzlich sollte beim Erzeugen nur Kleinschreibung verwendet werden.
Definierte Extensions sind:
.brt die so gekennzeichnete Pufferdatei enthält ausschließlich öffentliche Nachrichten .eil Datei enthält ausschließlich persönliche Nachrichten mit PRIO: 20 Headerinformation .kom Datei enthält private und öffentliche Nachrichten .prv Datei enthält ausschließlich private Nachrichten
Unbekannte Extensions müssen behandelt werden, als wäre die .kom-Extension angegeben. Keine Pufferdatei darf wegen eines Fehlers beim Namen von der Bearbeitung ausgenommen werden.
Folgende Extensions sind laut [B9] definiert, die Verbindlichkeit ist jedoch noch nicht abschließend geklärt:
.err Datei enthält ausschließlich Nachrichten mit ERR- Headerinformation .dir Datei enthält ausschließlich persönliche Nachrichten mit PRIO: 10 Headerinformation
Da in früheren ZConnect-Implementationen und auch zu Z3.8-Zeiten der Pufferdateiname "puffer." verwendet wurde, ist dieser in [D3.1M] gesondert erwähnt. Ein so benannter Puffer enthält Nachrichten im ZConnect-Datenformat, über deren EmpfängerInnen nichts ausgesagt wird (z.B. können öffentliche, private oder beide Adressierungsarten gemischt enthalten sein).
Für die Erzeugung des Dateinamens vor der Extension schlägt [D3.1P] im Zusammenhang mit der JANUS-Beschreibung vor, UNIXTIME (Zeit in Sekunden seit 1970) als achtstellige Hexadezimalzahl zu verwenden. In [JanusPlus] wird für JanusPlus eine besondere Namensgebung vorgeschrieben.
3.3. Datenformat
3.3.1. Die Teile einer Nachricht
Eine ZConnect-Nachricht wird eingeleitet durch den Header, welcher diverse Headerinformationen (s.u.) enthält. Beendet wird der Header durch eine einzelne CR/LF-Kombination (Leerzeile). Hierauf folgt der Nachrichtenkörper, bezeichnet auch als Inhalt oder Body:
+--------------------------------------------------+ | Nachrichtenheader | | +-----------------------------------------------+ | | Headerinformation (abgeschlossen durch CR/LF) | | +-----------------------------------------------+ | | ... | | +-----------------------------------------------+ | | Headerinformation (abgeschlossen durch CR/LF) | +--+-----------------------------------------------+ | Leerzeile (CR/LF) | +--------------------------------------------------+ | Nachrichtenkörper | | +-----------------------------------------------+ | | Optional vorangestellter Kommentar | | +-----------------------------------------------+ | | | | | Text/Daten | | | | +--+-----------------------------------------------+
Im allgemeinen Sprachgebrauch wird für eine einzelne Headerinformation fast immer der eigentlich besetzte Begriff "Header" verwendet. Um Verwirrungen zu vermeiden, ist dies in dieser Dokumentation nicht erfolgt. Da auch der Begriff "Inhalt" in einem anderen Kontext (beim Header) verwandt wird, wird die Bezeichnung "Nachrichtenkörper" verwendet.
Wird nicht ausdrücklich anderes erwähnt, so gilt, daß der Text-/Datenanteil des Nachrichtenkörpers nicht eingesehen, verändert oder ausgewertet werden darf. Der Transport von Steuerinformationen im Nachrichtenkörper (wie in anderen Netzen zur Umgehung von Schwächen der Protokolldefinition durchaus üblich) ist verboten. Aber auch für das Vorlegen fehlerhafter Nachrichten bei der Systemadministration ergibt sich bereits aus dieser Vorschrift, daß der Nachrichtenkörper bei privaten Nachrichten (s.u.) nicht mit vorgelegt werden darf.
Beim Header sind Einsicht, Auswertung und Änderungen dem Wesen nach vorgesehen. Einige Headerinformationen müssen von der behandelnden Software sogar verändert (z.B. ergänzt) werden, alle sind auszuwerten und i.d.R. dürfen sie auch von der Systemadministration eingesehen werden.
3.3.1.1. Headerinformationen
3.3.1.1.1. Aufbau und Zeichensatz von Headerinformationen
Die Headerinformationen in einem Header werden durch den in der DOS-Welt üblichen Zeilenvorschub CR/LF (ASCII 13/10) voneinander abgetrennt. Eine Headerinformation besteht aus der einleitenden, maximal 100 Zeichen langen Headerkennung; hierfür sind die Zeichen A bis Z, die Ziffern 0 bis 9 und der Bindestrich "-" erlaubt. Bei der Auswertung ist (auch gemischte) Groß-/Kleinschreibung zu ignorieren.
Auf die Kennung folgt ohne Abstand ein Doppelpunkt. Es schließen sich beliebig viele (möglicherweise auch null) Whitespaces, also entweder TAB (ASCII 9) oder Leerzeichen (ASCII 32), an.
Danach folgt der Informationsinhalt, der beliebig viele Zeichen enthalten kann (also auch gar keine). Der gültige Zeichensatz hierfür besteht aus den ASCII-Codes 32-255. In [D3.0] ist wörtlich formuliert: "Bei Informationsinhalten mit Text-Charakter (z.B. Betreff-Zeile) gelten die gleichen Zeichensatzeinschränkungen wie für den Inhalt von Standard-Textnachrichten." Es wurde des öfteren die Gültigkeit der CHARSET-Headerinformation für die Informationsinhalte diskutiert und verneint. Bei Informationsinhalten mit Textcharakter dürfen somit nur die Zeichen 9 (TAB), 10 (LF), 13 (CR) und 32-254 (255 wird als Leerzeichen gewandelt) gemäß ZConnect-Zeichensatz verwendet werden.
3.3.1.1.2. Adressenformat
Bei ZConnect werden Adressen der Form
<Lokalteil>@<System>.<Systemzugehörigkeit>
verwendet{3}. Die Systemzugehörigkeit wird allgemein als "Domain" bezeichnet und kann mehrfach durch Punkte aufgeteilt sein. Dazu gehört optional ein realer, bürgerlicher Name. Ist ein solcher "Realname" angegeben, so ist er durch genau ein Leerzeichen abzutrennen und in runden Klammern zu schreiben:
<Lokalteil>@<System>.<Domain> (<Realname>)
Groß- und Kleinschreibung finden keine Berücksichtigung. Gültige Beispiele wären also:
R.Juhser@BINGO.comlink.de (Rainer Juhser) x99@bingo.ComLink.DE (Ix Neun Neun) ai@ai.bingo.comlink.de
Der Teil hinter dem "@" (gelesen: at - "ätt") bezeichnet in seiner Gesamtheit weltweit eindeutig das System, zu welchem die Nachricht zugestellt werden soll. Die Auswertung erfolgt abhängig vom "Wissen" des routenden Systems (siehe Anhang E "Routing"). Daher sind auch Adresse ohne jedes "@" gültige Adressen, allerdings sind sie ausschließlich auf dem absendenden System selber zustellbar (dessen Name nebst Domain werden implizit als angegeben vorausgesetzt). Wenn also z.B. eine Mail an
Testi
vom System BINGO.comlink.de aus geschickt wird, so ist Testi@BINGO.comlink.de damit gemeint. Wird eine Nachricht mit einem Bestimmungsort (also einer Empfängerinnenadresse) ohne Domain angeliefert, so wird die Pseudo-Systemzugehörigkeit (Pseudodomain) "zer" angenommen. Für diese Domain ist das lokale System als Smartserver{4} zu betrachten - es darf also nur an Systeme zustellen, die lokal bekannt sind.
Diese Sonderregelung ist allerdings in Zeiten des Domainroutings anachronistisch. Zeitgemäßer ist hier eine Regelung, Adressen ohne Domain mit der Domain des routenden Systems aufzufüllen (was also auf dem ersten System auf dem Routeweg geschähe). Somit wäre nicht das routende System automatisch Smartserver, sondern der tatsächliche Smartserver würde die Zustellung, sofern möglich, übernehmen.
Nachrichten dürfen nur dann mit einer AbsenderInnenadresse mit der Domain "zer" versehen sein, wenn sie auf einem Z3.8-System abgesandt wurden. Seit [D3.1M] werden Z3.8-Netze jedoch als Fremdnetze betrachtet, daher ist auch diese Regelung nicht mehr im Rahmen ZConnects zu betrachten, sondern im Rahmen allgemeiner Gatewaybestimmungen.
3.3.1.1.2.1. Zeichensätze bei der Adresse
Für das System und die Systemzugehörigkeit sind in ASCII-Codierung die Zeichen A bis Z, die Ziffern 0 bis 9 und der Bindestrich "-" zulässig. Die Groß-/Kleinschreibung ist dabei irrelevant.
Der Lokalteil, also der Adreßanteil vor dem "@", darf die ASCII-Codes 35 bis 124 abzüglich der Codes 64, 60, 62, 92, 28, 29, 39, 44, 91, 93, 96 und 123 enthalten. Die Codes 33, 37 und 47 (!%/) sind erlaubt, aber reserviert und dürfen daher auch nicht in im Lokalteil enthaltenen UserInnennamen auftauchen.
Der in Klammern eingeschlossene Realname darf abzüglich eben dieser Klammern die ASCII-Code 32 bis 126 enthalten.
3.3.1.1.2.2. Private Nachrichten
Eine private Nachricht ist definiert als Nachricht, die ausschließlich Empfängerinnen (siehe EMP-Headerinformation) hat, in denen das Zeichen "@" vorkommt oder weder "@" noch "/" vorkommen. Es ist gerade bei gemischtadressierten Nachrichten leider bisher nicht üblich, aber besser, dies zu beachten (vgl. unbedingt Kapitel Gemischtadressierung).
3.3.1.1.3. Brettnamenformat
Brettnamen enthalten ASCII-codiert die Zeichen A bis Z, die Ziffern 0 bis 9, sowie die Zeichen 33, 43, 45, 47 und 95 (!+-/_); Umlaute und Kleinbuchstaben sind also nicht erlaubt. Der Schrägstrich "/" trennt Hierarchieebenen eines Brettnamens. Ein Brettname beginnt immer mit einem solchen Schrägstrich, endet hingegen nie mit einem. Zwischen zwei Schrägstrichen steht mindestens eines der anderen zulässigen Zeichen.
3.3.1.1.3.1. Öffentliche Nachrichten
Eine öffentliche Nachricht ist definiert als Nachricht, die mindestens eine Empfängerin (siehe EMP-Headerinformation) hat, in der nicht das Zeichen "@" aber das Zeichen "/" vorkommt. Es gibt eine Sonderform der Adressierung:
/BRETTGRUPPE/BRETT@system.domain
Diese Adressierung soll die Zustellung einer Nachricht in ein nur auf einem anderen System verfügbares öffentliches Brett ermöglichen, wird aber definitionsgemäß als private Nachricht behandelt und ggf. auch als solche abgerechnet. In der Praxis unterstützt nicht jede eingesetzte Software diese Art der Adressierung; anders ausgedrückt: eine solche Nachricht kommt mit hoher Wahrscheinlichkeit nicht an, wenn sie über das Netz transportiert werden muß. Insbesondere wenn das empfangende System die ZConnect-Brettnotation nicht kennt (Slashes werden in den wenigsten technischen Netzen eingesetzt), ist nicht mit einer ordnungsgemäßen Zustellung zu rechnen.
3.3.1.1.4. Datumsangaben
Datumsangaben enthalten bei ZConnect immer auch Zeitangaben und Zeitzone. Das Format ist
JJJJMMTThhmmss[S|W][+|- <Offset>]
wobei der Offset die Abweichung von GMT (Greenwich Meantime) angibt und im Bereich von -12 bis 12 liegt; ist die Abweichung allerdings nicht in ganzen Stunden zu messen, werden Minutenangaben nach einem Doppelpunkt hinzugefügt.
Beispiele:
19950419000000 19990520111111S+1 19800101010101W-7:30 19851211020304+0 19840911232359S-12
In der Bundesrepublik Deutschland gilt die MET (Middle European Time) bzw. im Sommer die MEST (Sommerzeit). Die Abweichungen zu GMT lauten "W+1" (MET) bzw. "S+2" (MEST). Der Bezug auf GMT sorgt dafür, daß die ersten 14 Stellen der Datumsangabe kontinuierlich weiterlaufen; z.B. die Sommerzeit wird durch die "S+2"-Angabe angegeben, ohne daß die JJJJMMTThhmmss-Angabe springen würde.
Im Anhang H sind die relevanten Zeitzonen aufgelistet, wie sie in [D3.0] enthalten sind.
Die Wechseltermine zu Winter- bzw. Sommerzeit sind gesetzlich geregelt, so daß ProgrammiererInnen diese Umstellung automatisieren können. Da ausgerechnet zum Zeitpunkt der Fertigstellung dieses Textes eine Gesetzesänderung die Termine verschiebt, fehlen die Details an dieser Stelle. Um Ergänzung qua Mail an DOKUKOO@bingo.comlink.de wird gebeten.
3.3.1.2. Form des Bodys
Wenn im Header keine TYP-Headerinformation angegeben ist, handelt es sich beim Nachrichtenkörper um reinen Text. In diesem sind Zeilen durch das übliche Paar ASCII 13/10 (CR/LF, die Reihenfolge ist vorgeschrieben) voneinander getrennt. Das in manchen Programmumgebungen übliche Dateiendezeichen ASCII 26 ("Ctrl-Z") gehört zu den in Textnachrichten verbotenen Zeichen.
Textnachrichten sind per Definition unmittelbar lesbar und erfordern keine besonderen Anzeigeprogramme. Jedoch muß die anzeigende Software den verwendeten Zeichensatz in einen auf dem lokalen Gerät anzeigbaren umwandeln. Der Standardzeichensatz ist im Anhang G als ZConnect-Zeichensatz aufgelistet. Als Steuerzeichen sind darüberhinaus ausschließlich ASCII 9 (Tabulator) und 13/10 (Zeilenvorschub) zugelassen.
3.3.2. ZConnect-Headerinformationen
Dieser Abschnitt befaßt sich mit den einzelnen Headerinformationen. Diese unterteilen sich in fest definierte, frei definierbare und auf Fremdformate bezogene. Außerdem wird ein Ausblick auf zukünftige Erweiterungen gegeben.
3.3.2.1. Fest definierte Headerzeilen
Das Datenformat ZConnects zeichnet sich durch eine Mischung von Maschinen- und Menschenlesbarkeit aus. An manchen Stellen eingestreute Whitespaces machen es bearbeitender Software nicht unbedingt leichter, machen die Headerzeilen aber für menschliche Augen lesbar.
Die möglichen Headerkennungen sind einer ständigen Entwicklung unterworfen. Aus diesem Grund und weil auch frei definierte Kennungen auftreten können, dürfen Headerzeilen mit unbekannten Kennungen weder gelöscht noch in anderer Weise bearbeitet werden. Sie müssen vielmehr unverändert weitergegeben werden.
_Verwendete Schreibweisen, Unterteilungen und Symbolisierungen_
Im folgenden sind alle fest definierten Headerinformationen mit allen dazugehörigen Informationen aufgelistet. Für diesen zentralen Teil dieser Dokumentation werden folgende Schreibweisen, Unterteilungen und Symbolisierungen verwendet.
Zeilenumbrüche bei der Syntax der Kennung sind drucktechnisch bedingt und dürfen in einem ZConnect-Header niemals innerhalb einer Header-Information auftauchen.
In einfachen spitzen Klammern finden sich syntaktische Einheiten. Die spitzen Klammern gehören nicht zur gemeinten Information, sofern nicht explizit anderes ausgesagt wird. In eckigen Klammern sind optionale Parameter angegeben. Findet sich ein hochgestellter Stern neben der syntaktischen Einheit, kann diese gar nicht, einmal oder mehrfach angegeben werden. Die eckigen Klammern und der Stern gehören nicht zur Information.
Beispiel:
ERR <Fehlerklasse>[;<Fehlernummer>]* [<Fehlermeldungsklartext>]
Verbal beschrieben bedeutet das: Nach der Kennung ERR muß die Fehlerklasse angegeben werden (im erläuternden Text wird in diesem Fall angegeben, wie eine Fehlerklasse notiert wird), dann durch Semikolon abgetrennt beliebig viele (das sagt der Stern), also evtl. auch gar keine (das sagen die eckigen Klammern) Fehlernummern. Durch Leerzeichen abgetrennt kann dann genau ein Fehlermeldungsklartext nachgestellt werden, er kann aber auch ganz fehlen (das sagen wiederum die eckigen Klammern). Anstelle des "*" kann auch ein "+" stehen, was soviel bedeutet wie "beliebig oft, aber mindestens einmal".
Ein senkrechter Strich "|" meint ein exklusives Oder und gehört nicht zur Information; vielmehr ist genau eine der durch solche Striche getrennten Varianten zu verwenden.
Die in den rechtsstehenden Kästen mit Pfeilen (>>) versehenen Angaben sagen aus, ob die jeweilige Kennung unbedingt in jedem Header vorhanden sein muß (Pflicht) oder ob er wahlweise eingesetzt werden kann (Optional). +-----------------+ |>>Pflicht | Außerdem ist angegeben, ob die Headerinformation | Optional | nur einmal oder auch mehrfach pro Header +-----------------+ auftauchen darf. Auch mehrfach bedeutet nicht, |>>Nur einmal | daß eine Information mehrfach vorkommen muß. Darf | Auch mehrfach | die Reihenfolge von mehrfach auftretenden | Stabil | Infomationen auf keinen Fall geändert werden, so +-----------------+ ist stabil gekennzeichnet. Zwischen zwei - der |**Nur PM | Kennung nach - gleichen Headerinformationen +-----------------+ können aber beliebige Headerinformationen mit anderer Kennung auftreten.
Manche Informationen dürfen nur in den Headern privater Nachrichten eingesetzt werden. Bei diesen ist "Nur PM" gekennzeichnet. Ist eine Eigenschaft nicht eindeutig anzugeben, so verweist die Kennzeichnung ** auf eine Erläuterung im Text.
Unter den Zwischenüberschriften findet sich die ausführlichere Beschreibung der _Funktion_ der Header-Information. Zumeist ist ein _Hinweis_ angegeben, der auf Unklarheiten oder Querbezüge aufmerksam macht, Implementierungstips gibt oder einfach nur der Illustration dient.
Die _Historie_ gibt an, wann der Header definiert wurde, und an welcher Stelle Modifikationen vorgenommen wurden. "D:" steht dabei für "Definiert:" und benennt das Dokument mit der Erstdefinition. "M:" steht für "Modifiziert:" und verweist auf das Dokument oder die Dokumente, in denen die Headerbedeutung abgewandelt, klargestellt oder in anderer Weise unmittelbar geändert wurde (eine zusätzliche Verwendung im Kontext der Einführung oder Veränderung einer anderen Headerkennung wird hier nicht vermerkt).
Die Einträge lesen sich [D3.0], [D3.1P] und [D3.1M]. "A:" steht für "Anders bei:" und hat als möglichen Eintrag derzeit nur [D3.1Z], die aktuelle Dokumentation der Zerberus GmbH, die in einigen Punkten von den Beschlüssen des ZConnect-Gremiums abweicht und daher nur ergänzenden Charakter hat. Ein schlichtes Datum schließlich bezeichnet den Tag, an dem das ZConnect-Gremium die Änderung beschlossen hat, wenn die Änderung nicht in einem der zusammenfassenden Dokumente aufgeführt ist.
Die Notation unter der Überschrift _Siehe auch_: In GROßBUCHSTABEN wird auf verwandte oder im Kontext interessante Headerkennungen verwiesen. Normaler Satz verweist auf ein Thema aus dem allgemeinen Teil dieses Textes. Durch umrahmende "*" symbolisierter *Fettdruck* sagt aus, daß der so dargestellte Querverweis unbedingt zu beachten ist, da er der gerade betrachteten Headerkennung wesentliche Informationen hinzufügt, die Funktion der Kennung abwandelt oder sie gar insgesamt verunmöglicht (manche Kennungen schließen sich gegenseitig aus).
Fußnoten sind mit geschweiften Klammern gekennzeichnet und am Ende des Dokuments zusammengefaßt.
Kennung: ABS +-----------------+ |>>Pflicht | Kurzbeschreibung: Absenderin | Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: ABS: <ZConnect-Adresse> [(<Realname>)]
Funktion: Die Absenderinangabe dient zum einen natürlich der Identifikation der Herkunft der Nachricht. In den meisten Netzen wird zudem die Angabe des bürgerlichen Namens verlangt (nicht im /Z-Netz, aber auch dort wird mittlerweile überwiegend ein Realname angegeben).
Bei Fehlern wird die Absenderin benachrichtigt (vgl. ANTWORT-AN). Fehlt die ABS-Information im Header, kann keine Fehlermeldung zugestellt werden; die Nachricht wird kommentarlos gelöscht.
Hinweis: Der Realname muß sich selbstverständlich an die Regeln für den Headerzeichensatz halten, wird also insbesondere von einer CHARSET-Information nicht betroffen. Da die Zeichen, die beim Quoted-Printable-Zeichensatz (vgl. z.B. [RFC 1521]) zum Einsatz kommen, der ZConnect-Norm für Zeichen im Header entsprechen, verwenden einzelne Personen eben jenen Zeichensatz zum Ausdrücken von Sonderzeichen im Namen. RFC->ZConnect Relays sollten diese Notation allerdings zum ZC-Zeichensatz hin auflösen.
Historie: D: [D3.0]
Siehe auch: *ANTWORT-AN*, OAB, WAB, Adressenformat, Weiterleiten
Kennung: ANTWORT-AN +-----------------+ | Pflicht | Kurzbeschreibung: Private Antwortempfängerin |>>Optional | +-----------------+ | Nur einmal | |>>Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: ANTWORT-AN: <ZConnect-Adresse>
Funktion: Wenn dieser Header angegeben ist, darf eine private Antwort auf die Nachricht nicht an die Absenderin geschickt werden, sondern muß an die hier angegebene Adresse gehen. Das gilt insbesondere für automatisch erzeugte Antworten (z.B. Fehlermeldungen).
Hinweis: Dieser Header ist für BenutzerInnen gedacht, die unter mehreren Adressen schreiben, die Antworten aber gerne an nur einer Stelle gesammelt vorfinden möchten. Auch Mailerdemons, welche auf allgemeine Rückfragen nicht antworten können, können hier einen sinnvollen Rückkanal vermerken.
Mailinglistenserver, die den Originalabsender erhalten, während Antworten aber nicht an diesen, sondern wieder in die Mailingliste gehen sollen, sind ein weiterer typischer Anwendungsfall. Allerdings besteht hier die Problematik, daß auch Fehlermeldungen an die ANTWORT-AN-Empfängerin versandt werden und somit in der Liste landen. Eine mögliche Abhilfe, die Einführung eines FEHLER-AN konnte sich bisher im Gremium nicht durchsetzen, so daß diese Problematik in ZConnect bisher nicht auflösbar ist.
Es herrscht oft Verwirrung, in welchen Fällen ANTWORT-AN und in welchen DISKUSSION-IN wie eingesetzt bzw. ausgewertet werden soll. Letztere Kennung erlaubt ebenfalls die Angabe einer privaten Adresse als Argument. Diese scheinbare Redundanz ist aber einfach aufzulösen:
Die ANTWORT-AN Information ist ausschließlich dann auszuwerten, wenn eine rein private Antwort auf eine Nachricht erstellt wird (unabhängig davon, ob die zu beantwortende Nachricht privat oder öffentlich ist). Ist bei DISKUSSION-IN eine private Adresse angegeben, so ist bei einer öffentlichen Beantwortung eine Kopie dieser Antwort an die private Adresse zu schicken (der Begriff "Kopie" ist natürlich unpassend, wenn ausschließlich eine DISKUSSION-IN-Information mit privater Adresse als Argument vorliegt). Bei privaten Antworten ist DISKUSSION-IN nicht auszuwerten. ANTWORT-AN darf auch mehrfach auftreten. In keinem Teil der Dokumentation ist auf diesen Fall näher eingegangen worden. Die möglichen Interpretationen sind die Auswahl einer der angegebenen Adressen für die Antwort oder das Senden der Antwort an alle angegebenen Adressen. Beide Auslegungen sind sinnvoll; bei automatisch generierten Antworten sollte nur an eine der angegebenen Adresse geantwortet werden, um unnötiges Datenaufkommen zu vermeiden.
Augrund dieser Unsicherheit, aber auch aufgrund der Einstellung, einer Anwenderin darf nicht technisch vorgeschrieben werden, an wen eine Antwort geht, die sie schreibt, betrachten einige Pointprogramme die ANTWORT-AN-Information durchweg als Kann-Bestimmung. ANTWORT-AN-Adressen werden also als mögliche AdressatInnen angezeigt, nicht aber automatisch verwendet.
Historie: D: [D3.0]
Siehe auch: ABS, DISKUSSION-IN, Adressenformat, Weiterleiten
Kennung: BET +-----------------+ |>>Pflicht | Kurzbeschreibung: Betreff | Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: BET: <Betrefftext>
Funktion: Für jede Nachricht ist eine Betreffzeile vorgeschrieben. Auch das Aussehen des Betrefftextes ist verbindlich geregelt: Handelt es sich um die Antwort auf eine vorausgegangene Nachricht, so ist dem Betrefftext ein "Re: "{5} voranzustellen, sofern dies dort noch nicht steht. "Re:Re:" darf also nicht vorkommen. Auch ist "Re^2: ", "Re^3: " usw. verboten. Ist eine Ordnungsnummer der Antwort gewünscht, so soll sie aus den BEZ-Informationen gewonnen werden.
Hinweis: Unschön sind Betrefftexte, die mit "Re:Re:" starten. Auch ist z.B. bei Nachrichten im RFC-Format "Re^n: " verboten. Es ist insgesamt aber in der Praxis kaum gegeben, daß sich eine Software an die Regelung hielte, die Ordnungsnummer der Antwort aus den BEZ-Informationen zu gewinnen. Diese Problematik ist bei BEZ genauer erläutert.
Inkonsequent ist die Forderung nach Angabe von "Re: " im Betrefftext. Ist die Ordnungsnummer nur unzuverlässig aus den BEZ-Informationen zu gewinnen, so reicht aber das Vorhandensein einer BEZ-Information aus, um festzustellen, daß es sich um eine Antwort handelt. "Re: " kann also vom anzeigenden Programm generiert werden.
Es gibt übrigens keinen wirklich zwingenden, technischen Grund für die Definition der BET-Information als Pflichtinformation. In dem Zusammenhang ist darauf hinzuweisen, daß leere Betreffzeilen vorkommen können
Historie: D: [D3.0] M: [D3.1P]
Siehe auch: *BEZ*
Kennung: BEZ +-----------------+ | Pflicht | Kurzbeschreibung: Bezugsnachricht |>>Optional | +-----------------+ | Nur einmal | |>>Auch mehrfach | |>>Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: BEZ: <Message-ID>
Funktion: Wenn die zugehörige Nachricht eine Antwort auf eine vorhergegangene Nachricht ist, dann gibt BEZ die Message-ID von letzterer an.
Es wird unterschieden zwischen direkten und indirekten Bezügen. Indirekte Bezüge sind solche, die schon in der beantworteten Nachricht vorkamen und aus dieser übernommen wurden. Diese Übernahme ist erlaubt, nicht aber verpflichtend. Erfolgt sie, darf die Reihenfolge nicht geändert werden.
Die indirekten Bezüge müssen im Header vor den direkten Bezügen angegeben werden. Dies ergibt nicht unbedingt eine chronologische Ordnung {6}.
Hinweis: In [D3.1Z] ist sinnvollerweise vorgeschrieben, daß bei automatisch erzeugten Nachrichten grundsätzlich eine BEZ-Information einzufügen ist. Eine Regelung, daß bei Antworten aller Art grundsätzlich BEZ-Informationen einzufügen sind, es sei denn, die Anwenderin bestimmt Gegenteiliges, wird an dieser Stelle empfohlen.
Eine stabile Reihenfolge von Bezügen zu vereinbaren, ist einerseits sinnvoll. Andererseits erlaubt die Syntax nicht, die tatsächliche Reihenfolge der Bezugsnachrichten festzustellen: so kann eine Nachricht mit zwei BEZ-Informationen zwei direkte oder einen direkten und einen indirekten Bezug transportieren. Dies ist die zentrale Problematik der BEZ- und damit auch der BET-Information.
Die AutorInnen von [D3.1Z] lösen dieses Problem abweichend von der Beschlußlage des Gremiums, indem sie nur eine direkte BEZ-Information pro Mail zuläßt. Dies verhindert in seiner Rigorosität allerdings, daß bei gleichzeitigem Antworten auf mehrere Nachrichten auch mehrere direkte Bezüge gesetzt werden. Die programmiertechnische Schwierigkeit soll also mit einer Einschränkung der Möglichkeiten der AnwenderInnen erkauft werden.
Die erlaubte, aber nicht zwingenden Mitnahme der indirekten Bezüge verhindert die Erfüllung der Forderung, daß das "Re^n:" für den Betreff aus den Bezügen zu generieren ist. Weder ist es sinnvoll, in den Beiträgen z.B. zu einer Diskussion komplett alle direkten und indirekten Bezüge mitzutransportieren, um die richtige Ordnungszahl des Replys zu errechnen, noch wäre dies dann überhaupt möglich: Da nicht zwischen direkten und indirekten Bezügen unterschieden werden kann, enthält die Anzahl der BEZ-Informationen und selbst ein daraus gewonnener Kommentarbaum keine zuverlässige Information über die Ordnungszahl einer Antwort und ist mithin ohne Aussage.
Stand der Dinge: Alle Bezüge vor dem zuletzt angegebenen müssen als indirekt interpretiert werden. Eine Auswertung darf keine chronologische Reihenfolge voraussetzen. Es ist besser, im Betreff auf Informationen über die Verschachtelungstiefe zu verzichten, um dem ZConnect-Standard Folge zu leisten; ProgrammiererInnen, die eine Ordnungszahl wünschen, sollten X-REPLY-LEVEL (s.u.) unterstützen bzw. den Kommentarbaum als (aber nicht ganz zuverlässige) Quelle für ihre Numerierung verwenden.
Der Transport aller BEZ-Informationen eines Kommentarbaums würde ohne echten Informationsgehalt zu aufgeblähten Headern führen. Mehrere direkte Bezüge sind hingegen sinnvoll verwendbar.
Einige Applikationen verwenden die erwähnte frei definierte Information X-REPLY-LEVEL, um unabhängig von Bezugsverkettung und Betreff die Tiefe der Antwortverschachtelung zu transportieren. Es ist auch darauf hinzuweisen, daß der Transport von mehr als den direkten Bezügen ausschließlich die Funktion hat, bei lokal nicht mehr verfügbaren Nachrichten (die Anwenderin hat sie z.B. mittlerweile gelöscht) trotzdem eine Verkettung mit vorhergehenden Diskussionsbeiträgen herstellen zu können. Insofern ist der Transport der direkten und des im Header zuerststehenden und damit mit einer gewissen Wahrscheinlichkeit den Beginn der Diskussion kennzeichnenden, indirekten Bezugs die praxisnäheste Lösung. Der zusätzliche Transport einer Zahl indirekter Bezüge aus "der Mitte des Kommentarbaums" ist als redundante Information zurückhaltend zu dosieren.
Bei der Erstellung des Kommentarbaums sollte auf den möglichen Fehler einer gegenseitigen Bezugnahme zweier Nachrichten aufeinander geachtet werden.
Historie: D: [D3.0] M: [D3.1P] A: [D3.1Z]
Siehe auch: BET, MID
Kennung: CHARSET +-----------------+ | Pflicht | Kurzbeschreibung: Zeichensatzfestlegung |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: CHARSET: ISO1 | ISO2 | ISO3 | ISO4 | ISO5 | ISO6 | ISO7 | ISO8 | ISO9 | UNICODE
Funktion: CHARSET legt den Zeichensatz fest, der für den Nachrichtenkörper gilt (nicht für den Header!). Kann das anzeigende Programm den spezifizierten Zeichensatz nicht darstellen, so ist der Anwenderin dies nur mitzuteilen. Die Dokumentation empfiehlt in diesem Zusammenhang dringend, den ISO1-Zeichensatz zu unterstützen.
Mit ISOx ist immer die ISO-8859-x gemeint. Groß-/Kleinschreibung ist bei den Parametern nicht relevant.
Hinweis: Ist CHARSET nicht angegeben, gilt der normale ZConnect-Zeichensatz.
CHARSET ist ausschließlich für Textnachrichten vorgesehen, also definitionsgemäß solche Nachrichten, die keine TYP-Kennung im Header haben. CHARSET wirkt nicht auf einen evtl. enthaltenen Kommentar.
Der MIME-Standard wird zukünftig von ZConnect unterstützt werden. Genaue Regelungen sind noch nicht getroffen worden. Insbesondere ZConnect->RFC Relays sollten die Möglichkeiten MIMEs nutzen, um z.B. die CHARSET oder TYP: BIN Fähigkeiten ZConnects sicher durch den RFC-Raum zu transportieren.
UNICODE ist ein 16-Bit-Zeichensatz. Es ist nicht bekannt, daß ZConnect-fähige Programme diesen Zeichensatz bereits unterstützen.
Historie: D: [D3.1M] M: [D3.1Z] (Klarstellung)
Siehe auch: CRYPT-CONTENT-CHARSET, Verschlüsselung, *Zeichensätze*
Kennung: CONTROL +-----------------+ | Pflicht | Kurzbeschreibung: Nachricht mit Steuerfunktion |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: CONTROL: [CANCEL <Message-ID> | ADD <Brettname> | DEL <Brettname>]
Funktion: Mit den CONTROL-Informationen lassen sich bereits verschickte Nachrichten löschen ("canceln") und netzweit neue Bretter anlegen oder austragen. Es ist genau vorgegeben, wer diese Aktionen durchführen darf (siehe bei den Einzelinformationen), da dieser Headerinformation eine nicht unerhebliche Sabotagegefahr innewohnt.
Die Informationsinhalte sind unabhängig von ihrer Groß-/Kleinschreibung auszuwerten ("CANCEL" == "canCeL"). Zwischen Befehl (CANCEL/ADD/DEL) und dessen Parameter (<Message-ID>/<Brettname>) sind beliebig viele Whitespaces (<TAB>, Leerzeichen) zulässig, mindestens ist jedoch eines vorgeschrieben.
CONTROL darf nur in Kombination mit STAT: CTL auftreten. STAT: CTL sorgt auch dafür, daß CONTROL-Nachrichten nur an Points und Systeme weitergereicht, nicht aber in Onlinedatenbestände einsortiert wird. Tritt CONTROL ohne STAT: CTL auf, ist die Nachricht fehlerhaft.
CONTROL kann auch ohne Parameter angegeben werden. Genau wie bei einem unbekannten Informationsinhalt (also ungleich CANCEL/ADD/DEL) wird in diesem Fall die CONTROL-Information ignoriert. Die Nachricht behält aber ihren STAT: CTL-Status und wird auch unverändert weitergegeben.
Hinweis: Bei der Wahl wurde CONTROL als "optional, auch mehrfach" beschlossen, da dies aber nicht in die RFC-Welt übertragbar ist, wurde der Wahlausgang stillschweigend zu "optional, nur einmal" korrigiert.
In manchen Netzen kann es per Netikette verboten sein, insbesondere CANCELs auszuführen. Applikationen müssen entsprechend konfigurierbar sein.
Historie: D: [Wahl5]
Siehe auch: CONTROL: ADD, CONTROL: CANCEL, CONTROL: DEL, ERSETZT, *STAT: CTL*, Weiterleiten
Kennung: CONTROL: ADD +-----------------+ | Pflicht | Kurzbeschreibung: Nachricht zur automatischen Einrichtung |>>Optional | von Brettern +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: CONTROL: ADD <Brettname>
Funktion: Mit einer CONTROL: ADD Information kann sehr leicht - z.B. netzweit - für die Einrichtung eines Bretts gesorgt werden. Der als Parameter transportierte <Brettname> bezeichnet das Brett, daß auf dem empfangenden System eingerichtet werden soll.
SystembetreiberInnen werden nicht jeder Absenderin gestatten, per Control-Nachricht Bretter einzurichten. Daher sind zwei Möglichkeiten der Legitimation vorgesehen. Die sicherste und einfachste Möglichkeit ist, CONTROL: ADD und CONTROL: DEL enthaltende Nachrichten grundsätzlich der Systembetreuung zur Entscheidung vorzulegen. Eine elegantere wenngleich "gefährlichere" Möglichkeit ist es, über eine lokal geführte Liste Absenderinnen zu bestimmen, deren Control-Nachrichten akzeptiert werden.
Eine Nachricht mit CONTROL: ADD Information bräuchte theoretisch keine EMP Informationen, da sie empfängerinnenunabhängig umgesetzt wird. So dienen die EMPs dann auch lediglich der Verteilung der Control-Nachricht. Denkbar ist auch die private Adressierung, um auf einem ganz bestimmten System ein Brett einzurichten.
Hinweis: Eine korrekte Nachricht mit CONTROL: ADD sähe z.B. so aus (Auszug):
EMP: /Z-NETZ/KOORDINATION/EINSTELLUNGEN BET: Hier koemmt ein neues Brett ABS: koordination@ttb.aworld.de (Kerstin) STAT: CTL CONTROL: ADD /Z-NETZ/UNWICHTIG
Für die lokale Legitimationstabelle wird folgendes Format angeregt:
;Absenderin Brettgruppen PGP-Fingerprint kerstin@ttb.aworld.de /Z-NETZ/* ...irgendwas... postmaster@lokal.zc /* ...irgendwas...
Bestimmten Brettgruppen sollte also zuzuordnen sein, welche Absenderinnen hierin Bretter einrichten (bzw. löschen) dürfen. Die Spalte "PGP-Fingerprint" ist als Fingerzeig zu verstehen, daß z.B. mit einer PGP-Signatur geprüft werden könnte, ob die jeweilige Absenderinnenangabe authentisch ist. Wo/wenn dies durchführbar ist, ist eine solche Tabelle natürlich das elegantaste _und_ sicherste Mittel.
An ZConnect<->RFC-Relays ("Gateways") sollten CONTROL: ADD und das RFC-seitige "newgroup" ineinander übersetzt werden.
Historie: D: [Wahl5]
Siehe auch: *CONTROL*, STAT: CTL
Kennung: CONTROL: CANCEL +-----------------+ | Pflicht | Kurzbeschreibung: Nachricht zur Löschung einer früher |>>Optional | versandten Nachricht +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: CONTROL: CANCEL <Message-ID>
Funktion: Die mit der <Message-ID> bezeichnete Nachricht soll gelöscht werden. Dies kann die Absenderin der zu löschenden Nachricht veranlassen (also ABS oder, falls vorhanden, WAB), darüberhinaus die SYSOP und POSTMASTER Accounts des Absendesystems der zu löschenden Nachricht sowie bestimmte Absenderinnen, die in einer lokal geführten Legitimationsliste dazu berechtigt werden (z.B. Netzkoordination).
Eine Nachricht mit CONTROL: CANCEL Information transportiert in ihren EMP-Informationen die Aussage, in welchen Brettern die zu löschende Nachricht gelöscht werden soll. Ist die Ursprungsnachricht also z.B. in zwei Brettern verteilt worden und enthält die CANCEL-Nachricht nur eine der EMP-Informationen der Ursprungsnachricht, so bliebe diese in einem Brett erhalten.
Jede CONTROL: CANCEL enthaltende Nachricht enthält auch eine BEZ-Information, die auf die Nachricht verweist, die auch in der CONTROL: CANCEL- Information bezeichnet ist. Fehlt diese Information, ist die CANCEL-Aufforderung fehlerhaft und darf nicht durchgeführt werden.
Hinweis: Die Fehlerhaftigkeit einer Nachricht mit CONTROL: CANCEL-Information aber ohne redundante BEZ-Information ist in [Wahl5] nicht eindeutig geklärt. U.U. kann es sinnvoll sein, hier nicht zu streng zu reagieren.
Beispiel einer Ursprungsnachricht (Auszug):
EMP: /BRETT/EINS EMP: /BRETT/ZWEI MID: Ursprung@system.zc ABS: User@system.zc (Originalabsender) WAB: Userin@system.zc (Ursprungsabsenderin) BET: Ursprungsnachricht
Beispiel ein gültigen CANCEL-Nachricht dazu (Auszug):
EMP: /BRETT/ZWEI ABS: Userin@system.zc (Cancelabsenderin) BEZ: Ursprung@system.zc STAT: CTL CONTROL: CANCEL Ursprung@system.zc BET: Cancelnachricht
Hiermit würde die Ursprungsnachricht nur aus /BRETT/ZWEI gelöscht. Die Löschende ist identisch mit der Weiterleiterin der Ursprungsnachricht, also ist das Canceln erlaubt (mensch beachte die unterschiedlichen Realnames, die hierauf keinen Einfluß haben) - wichtig ist, daß User@system.zc _nicht_ canceln dürfte.
Noch ein gültiges CANCEL-Beispiel (Auszug):
EMP: /BRETT/EINS EMP: /BRETT/ZWEI ABS: POSTMASTER@system.zc (Systemadministration) BEZ: Ursprung@system.zc STAT: CTL CONTROL: CANCEL Ursprung@system.zc
Hier cancelt also die Systemadministration des Systems, von dem die Ursprungsnachricht kommt, komplett. Es ist zu beachten, daß die ZConnect-Festlegung der Systemadministrationsnamen auf SYSOP oder POSTMASTER der Realität nicht entspricht. Es sollte besser eine Liste der möglichen Systemadministrationsnamen geführt werden. Eine Minimallösung wäre, nur den POSTMASTER-Account zuzulassen, da dieser im "Internet" auf _jedem_ System vorhanden sein muß.
Zu beachten ist, daß die tatsächliche Absenderin der Cancel-Nachricht legitimiert sein muß. Ggf. ist also auch bei dieser auf die Existenz einer WAB-Information zu achten. Dies ist sehr wichtig, weil sonst mit Konstrukten wie
EMP: /BRETT/EINS EMP: /BRETT/ZWEI ABS: POSTMASTER@system.zc (Trick 17) WAB: Kicher@system.zc (Boeses Mensch) BEZ: Ursprung@system.zc STAT: CTL CONTROL: CANCEL Ursprung@system.zc BET: Cancelnachricht
der Sicherungsmechanismus ausgehebelt werden könnte.
Ein mögliches Format einer Legitimationsliste ist bei CONTROL: ADD beschrieben. Es ist natürlich auch denkbar, daß für alle Arten der Control-Nachricht eine eigene Legitimationstabelle geführt wird.
Historie: D: [Wahl5]
Siehe auch: *CONTROL*, STAT: CTL
Kennung: CONTROL: DEL +-----------------+ | Pflicht | Kurzbeschreibung: Nachricht zur automatischen Löschung |>>Optional | von Brettern +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: CONTROL: DEL <Brettname>
Funktion: Mit einer CONTROL: DEL Information kann sehr leicht - z.B. netzweit - für die Löschung eines Bretts gesorgt werden. Der als Parameter transportierte <Brettname> bezeichnet das Brett, daß auf dem empfangenden System ausgetragen werden soll.
SystembetreiberInnen werden nicht jeder Absenderin gestatten, per Control-Nachricht Bretter zu löschen. Daher sind zwei Möglichkeiten der Legitimation vorgesehen, die bei CONTROL: ADD näher beschrieben sind.
Eine Nachricht mit CONTROL: DEL Information bräuchte theoretisch keine EMP Informationen, da sie empfängerinnenunabhängig umgesetzt wird. So dienen die EMPs dann auch lediglich der Verteilung der Control-Nachricht. Denkbar ist auch die private Adressierung, um auf einem ganz bestimmten System ein Brett auszutragen.
Hinweis: Eine korrekte Nachricht mit CONTROL: DEL sähe z.B. so aus (Auszug):
EMP: /Z-NETZ/KOORDINATION/EINSTELLUNGEN BET: Hier verschwindet gleich ein Brett ABS: koordination@ttb.aworld.de (Kerstin) STAT: CTL CONTROL: DEL /Z-NETZ/WICHTIG
Für die lokale Legitimationstabelle wird ein Format angeregt, das bei CONTROL: ADD beschrieben ist.
An ZConnect<->RFC-Relays ("Gateways") sollten CONTROL: DEL und das RFC-seitige "rmgroup" ineinander übersetzt werden.
Historie: D: [Wahl5]
Siehe auch: *CONTROL*, *CONTROL: ADD*, STAT: CTL
Kennung: CRYPT +-----------------+ | Pflicht | Kurzbeschreibung: Nachrichteninhalt ist verschlüsselt |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ |>>Nur PM | +-----------------+
Syntax: CRYPT: <Kennung der Verschlüsselung>
Funktion: Der zugehörige Nachrichtentext ist verschlüsselt. Bisher definiert sind folgende Werte für die Verschlüsselungskennung (case-insensitive):
DES/ECB NSA Lowtech: Electronic Code Book
DES/CBC DES Cipher Block Chain
DES/CFB DES Cipher Feedback
DES/OFB DES Output Feedback
PGP Pretty Good Privacy
PGP2.1 Pretty Good Privacy (höhere Versionen mit entsprechend erhöhter Versionskennzahl)
PMCRYPT2 Von Peter Mandrella vorgeschlagenes Verschlüsselungsverfahren
QPC QuickPoint Crypt
Hinweis: Die aktuelle Dokumentation wankt offensichtlich hinsichtlich der Kennzeichnung von PGP. Das verarbeitende Programm sollte derzeit mit allen Kennungen rechnen. Das pure "PGP" als Kennung ist als aktuellste Version zu werten, da diese im Rahmen des PGP-Gesamtkonzepts genannt wird. [D3.1Z] bestätigt diese Auffassung.
Zu PMCRYPT2 teilte Peter Mandralla mit, daß es nie implementiert wurde ([PM2]). Zu DES/* wird auf Sekundärliteratur verwiesen (z.B. gibt [DES] einen leicht verständlichen Überblick über die Funktionsweise des Verfahrens). QuickPoint Crypt stammt von der Urmutter aller /Z-NETZ-Pointprogramme QuickPoint. Es handelt sich um ein sehr einfaches Verfahren, welches beim QuickPoint-Programmierer erfragt werden kann (siehe Kapitel Verschlüsselung).
Der Einsatz von CRYPT für öffentliche Nachrichten kann sinnvoll sein, z.B. für geschlossene BenutzerInnengruppen.
Historie: D: [D3.1P] Siehe auch: CRYPT-CONTENT..., PGP..., SIGNED, STAT, Verschlüsselung
Kennung: CRYPT-CONTENT-CHARSET +-----------------+ | Pflicht | Kurzbeschreibung: Zeichensatz der in der verschlüsselten |>>Optional | Nachricht enthaltenen Originalnachricht +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ |>>Nur PM | +-----------------+
Syntax: CRYPT-CONTENT-CHARSET: <Zeichensatz-ID>
Funktion: Enthielt eine verschlüsselte Nachricht eine CHARSET-Headerinformation, so muß diese nach dem Entschlüsseln wieder berücksichtigt werden. CRYPT-CONTENT-CHARSET gibt also bei beliebigen Verschlüsselungsarten an, welche CHARSET-Information zum entschlüsselten Inhalt gehört.
Die Zeichensatz-ID kann entsprechend der Dokumentation von CHARSET folgende Werte (Groß-/Kleinschreibung irrelevant) annehmen: ISO1, ISO2, ISO3, ISO4, ISO5, ISO6, ISO7, ISO8, ISO9 oder UNICODE.
Hinweis: Dieser Header taucht bisher nicht explizit in der Dokumentation auf. Er ergibt sich jedoch ohne jeden Zweifel aus der beschlossenen PGP-Dokumentation zu ZConnect. In [D3.1M] ist unter der Überschrift "Zeichensatz verschlüsselter Nachrichten" wörtlich geregelt: "Sollte einmal ein Zeichensatzheader eingeführt werden, muß auch dabei das Original vor der Verschlüsselung mit einem vorangestellten 'CRYPT-CONTENT' erhalten bleiben." Die eingeführte Zeichensatzheaderinformation heißt CHARSET, also existiert die gültige und beschlossene Information CRYPT-CONTENT-CHARSET.
Es ergibt sich auch hier das bei CRYPT-CONTENT-KOM näher erläuterte Problem der Verschlüsselungsrekursion.
Historie: D: [D3.1P] A: [D3.1Z] (definiert CRYPT-...-CHARSET nicht)
Siehe auch: *CHARSET*, *CRYPT-CONTENT-KOM*, Verschlüsselung
Kennung: CRYPT-CONTENT-KOM +-----------------+ | Pflicht | Kurzbeschreibung: Verschlüsselung enthält einen Kommentar |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ |>>Nur PM | +-----------------+
Syntax: CRYPT-CONTENT-KOM: <Kommentarlänge>
Funktion: Das derzeitige PGP-Konzept sieht vor, daß der Nachrichtenkörper im vollen Umfang (also entsprechend der LEN-Headerinformation) verschlüsselt wird. Dies kann auch für andere Verschlüsselungsverfahren gelten. Um dann beim Entschlüsseln einen ehemaligen Kommentar (genauer: die KOM-Information) wiederherzustellen, ist der Transport dessen ehemaliger Länge mit CRYPT-CONTENT-KOM vorgeschrieben (diese Auffassung bestätigt [D3.1Z]). Diese Headerinformation ist im Zusammenhang mit CRYPT Pflicht, wenn eine KOM-Information in der Ursprungsnachricht enthalten war.
Ist eine Nachricht inklusive Kommentar ersteinmal verschlüsselt und die Länge in CRYPT-CONTENT-KOM codiert, so kann die Nachricht neuerlich mit einer KOM-Headerinformation versehen werden.
Hinweis: Wird eine Nachricht, die bereits verschlüsselt ist, mit einem neuerlichen Kommentar versehen und dann z.B. nocheinmal unterschrieben, so bricht die Logik der ZConnect-PGP-Einbindung zwangsläufig auseinander. Nun müßte ein CRYPT-CONTENT-CRYPT-CONTENT-KOM eingesetzt werden, was vielleicht machbar wäre (sogar nach derzeitiger Dokumentation, welche allerdings - hier schnell verbrauchte - maximal 100 Zeichen für die Headerkennung vorsieht), aber sicher nicht wünschenswert ist. Die Einbindung hat hier eine grundsätzlichen Schwäche. Die Erzeugung von "Verschlüsselungsrekursion" sollte also unbedingt vermieden werden.
Andererseits ist auf jeden Fall mit einem KOM # zusätzlich zu CRYPT-CONTENT-KOM zu rechnen. Es wird # von der Dokumentation nicht vorgeschlagen, wie beim # Entschlüsseln die zwei möglichen Kommentare # behandelt werden sollen. Es bietet sich an, diese zusammenzufassen. Da am Nachrichtenkörper keine Änderung vorgenommen werden darf, verbietet sich hierbei eine naheliegende optische Trennung der beiden Kommentare.
Historie: D: [D3.1P] M: [D3.1Z] (Klarstellung)
Siehe auch: *CRYPT: PGP*, CRYPT-CONTENT-CHARSET, CRYPT-CONTENT-TYP, KOM, Verschlüsselung
Kennung: CRYPT-CONTENT-TYP +-----------------+ | Pflicht | Kurzbeschreibung: Typ der in einer verschlüsselten |>>Optional | Nachricht enthaltenen Originalnachricht +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ |>>Nur PM | +-----------------+
Syntax: CRYPT-CONTENT-TYP: <Nachrichtentyp>
Funktion: Enthielt eine verschlüsselte Nachricht eine TYP-Headerinformation, so muß diese nach dem Entschlüsseln wieder berücksichtigt werden. CRYPT-CONTENT-TYP gibt also bei beliebigen Verschlüsselungsarten an, welche TYP-Information zum entschlüsselten Inhalt gehört.
Die möglichen Nachrichtentypen sind bei TYP beschrieben.
Hinweis: Das im Kontext auftretende Problem der Verschlüsselungsrekursion ist bei CRYPT-CONTENT-KOM genauer beschrieben.
Historie: D: [D3.1P]
Siehe auch: *CRYPT-CONTENT-KOM*, TYP, Verschlüsselung
Kennung: DDA +-----------------+ | Pflicht | Kurzbeschreibung: Dateidatum |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: DDA: <Datumsangabe>
Funktion: Wenn die Nachricht eine Datei repräsentiert, kann hiermit das Datum der letzten Änderung angegeben werden. Das Datum enthält auch die Uhrzeit und ggf. die Zeitzone. Das Format ist im Kapitel "Datumsangaben" beschrieben.
Hinweis: Laut Dokumentation ist diese Headerinformation nicht auf Binärnachrichten beschränkt. Jedoch sollte mensch bedenken, daß die EDA-Headerinformation bei jeder Nachricht ohnehin vorhanden ist.
Historie: D: [D3.0]
Siehe auch: EDA, FILE, TYP, Datumsangaben
Kennung: DISKUSSION-IN +-----------------+ | Pflicht | Kurzbeschreibung: Umleitung von öffentlichen Antworten |>>Optional | +-----------------+ | Nur einmal | |>>Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: DISKUSSION-IN: <Brettname> | <ZConnect-Adresse>
Funktion: DISKUSSION-IN leitet die öffentliche Antwort auf eine Nachricht um. Die öffentliche Antwort landet also nicht im selben Brett wie die beantwortete Nachricht, sondern wird in die bei DISKUSSION-IN spezifizierten Brettern geleitet.
Die Angabe einer ZConnect-Adresse hat laut Dokumentation die "Semantik von: 'Followup-To poster'". Übersetzt bedeutet dies, daß die Antwort auf eine öffentliche Nachricht in ein Postfach umgeleitet werden kann. Wenn also ein DISKUSSION-IN: <Brettname> zusammen mit einem DISKUSSION-IN: <ZConnect-Adresse> angegeben ist, hat dies die Funktion einer Kopie ins Postfach (z.B.) der Absenderin der Nachricht.
Hinweis: Den Beantwortenden sollte die Möglichkeit gegeben werden, eine private Adresse als einzigen Ort eines Diskussionsbeitrags abzulehnen, um dem Mehrwegecharakter der Netze gerecht zu werden.
Es ist möglich, diese Headerinformation auch bei privaten Nachrichten einzusetzen. Wenn BenutzerInnen eine öffentliche Antwort unter Bezugnahme auf eine private Nachricht in ein bestimmtes Brett schreiben können sollen, so ist die Angabe einer DISKUSSION-IN-Information eine Möglichkeit.
Üblicherweise wird DISKUSSION-IN gesetzt, wenn eine Nachricht in ein reines Informationsbrett gestellt wird, und etwaige Diskussionen daher in einem anderen Brett stattfinden sollen. Eine Nachricht kann so in vielen Brettern eine Diskussion anregen, die dann aber nur in einem geführt werden soll.
# [D3.1Z] erläutert, daß das absendende System # verhindern sollte, daß eine andere ZConnect-Adresse # als die der Absenderin bei einem DISKUSSION-IN # eingesetzt wird, um Mißbrauch zu verhindern. # Andererseits verhindert eine solche Einschränkung # natürlich die sinnvollen Anwendungsmöglichkeiten von # z.B. mehreren DISKUSSION-IN: <ZConnect-Adresse> oder # im Zusammenhang mit Mailinglisten. Da im Gremium # hierzu kein Beschluß vorliegt, sollten # ProgrammiererInnen ihre Implementierungsentscheidung # sorgfältig abwägen. Von der Befolgung der Regelung # aus [D3.1Z] wird an dieser Stelle aber strikt # abgeraten.
Historie: D: [D3.0] M: [D3.1P] (Klarstellung) A: [D3.1Z] (s.o.)
Siehe auch: *ANTWORT-AN*, EMP, Adressenformat, Brettnamenformat
Kennung: EB +-----------------+ | Pflicht | Kurzbeschreibung: Empfangsbestätigung anfordern |>>Optional | +-----------------+ | Nur einmal | |>>Auch mehrfach | | Stabil | +-----------------+ |>>Nur PM | +-----------------+
Syntax: EB: [<ZConnect-Adresse>]
Funktion: Für die Reaktion auf EB sind zwei Fälle vorgesehen: Ist das Endsystem ein Point, der mit ZConnect angeschlossen ist, so wird erst von ihm die Empfangsbestätigung erzeugt. Ist die Mailbox{7} dagegen das letzte ZConnect-System auf dem Weg zur Empfängerin, so muß bereits sie (beim Einsortieren) die Bestätigung verschicken.
Die Empfangsbestätigung ist von der Aussagekraft her wörtlich zu nehmen: Das bestätigende System verrät nicht, ob die Nachricht gelesen wurde, sondern nur, daß sie bei ihm angekommen ist. Dies könnte aus Sicht des Datenschutzes auch gar nicht anders sein.
Wird bei der EB-Headerinformation eine Adresse mitgeschickt, so ist die Empfangsbestätigung nicht an die Absenderin, sondern an eben jene Adresse zu schicken. Hiermit erklärt sich auch, warum die Information mehrmals vorkommen darf (mehrere EB-Kennungen ohne Argument sind allerdings sinnlos).
WICHTIG: Wird keine Adresse mitgeschickt, so ist die Bestätigung an eine eventuell vorhandene ANTWORT-AN-Adressatin zu schicken. Ist diese nicht angegeben, so wird sie an die WAB-Absenderin versandt. Sind beide nicht vorhanden, wird gegenüber der in der ABS-Headerinformation angegebenen Adresse bestätigt.
Einige Details der Prozedur der Empfangsbestätigung sind vorgeschrieben:
* Die bestätigende Nachricht erhält die STAT: EB Headerinformation
* Die Message-ID der bestätigten Nachricht wird als BEZ-Headerinformation eingefügt.
Hinweis: Janus-Points sind im engeren Sinn der Regelung für Empfangsbestätigungen nicht als ZConnect-Systeme zu werten, erzeugen also keine Empfangsbestätigungen. Es werden hierzu auch andere Meinungen vertreten ([B3], [PM3]). In der Praxis ist das Softwareverhalten so unterschiedlich wie die Meinungen. Die EB-Headerinformation bleibt unabhängig von der eventuellen Abarbeitung durch die Mailbox auf dem Weg zur Anwenderin erhalten. Gelöscht wird sie hingegen beim Weiterleiten (Ausnahme: Umleiten), beim Zurückschicken im Fehlerfall, beim Antworten etc..
Wenn es auch nicht verboten wäre, die indirekten Bezüge in die Empfangsbestätigung zu übernehmen, so würde dies doch wenig Sinn machen.
Manche Pointprogramme verschicken die Empfangsbestätigung mit einer einstellbaren Anzahl Tage Verzögerung. Dies ist unter Datenschutzaspekten eine äußerst sinnvolle Erwägung.
Historie: D: [D3.0]
Siehe auch: ABS, BEZ, STAT: EB, MID, Adressenformat, Points, Weiterleiten
Kennung: EDA +-----------------+ |>>Pflicht | Kurzbeschreibung: Erstellungsdatum | Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: EDA: <Datumsangabe>
Funktion: Jede Nachricht muß mit einem Erstellungsdatum versehen werden. Das Datum enthält wie immer auch Zeit und ggf. Zeitzone.
Hinweis: Beim Einsetzen des Erstellungsdatums sind unbedingt Datenschutzaspekte zu beachten. AnwenderInnen müssen die Möglichkeit haben, zumindest die Angabe der Uhrzeit der Erstellung zu verweigern. Es empfiehlt sich, das automatische Setzen der Uhrzeit auf generell 0:00 Uhr (oder einen anderen, beliebigen, immer gleichen Wert) zu ermöglichen.
Historie: D: [D3.0]
Siehe auch: DDA, Datenschutz, Datumsangaben
Kennung: EMP +-----------------+ |>>Pflicht | Kurzbeschreibung: Empfängerin | Optional | +-----------------+ | Nur einmal | |>>Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: EMP: <Brettname> | <ZConnect-Adresse> [(<Realname>)]
Funktion: Diese Headerinformation gibt die Empfängerin der Nachricht an. Es kann sich um ein Brett oder eine private Adressatin handeln. EMP kann mehrfach vorkommen, also ist es auch möglich, daß beide Möglichkeiten im selben Header gemischt auftreten (vgl. Kapitel Gemischtadressierung). Unverändert gilt die ZConnect 3.0-Regelung, daß eine private Empfangsadresse mit Realname in der üblichen Schreibweise versehen sein darf.
Bei öffentlichen Nachrichten, die aus dem Netz kommen{8}, und die ins Netz gehen{9}, darf niemals (es existiert keine Ausnahme von der Regel) eine öffentliche Empfängerin zu einer Kopienempfängerin werden, also *keine* Wandlung von EMP nach KOP stattfinden.
Bei privaten Empfängerinnen ist dies hingegen ausdrücklich vorgesehen. Wird also z.B. ein Mischcrossposting an einer Stelle aufgetrennt in die private Nachricht und die öffentliche Nachricht, so tauchen in der privaten Nachricht alle öffentlichen Empfängerinnen als KOPs auf. In der abgetrennten öffentlichen Nachricht taucht die private Kopienempfängerin ebenfalls als KOP auf (wenn nicht STAT: NOKOP angegeben wurde).
Wenn ein System eines oder mehrere der in einer EMP-Information aufgeführten Bretter nicht führt oder nicht bestellt hat, dürfen dennoch keine EMP-Informationen gelöscht werden. Insbesondere dürfen in diesem Fall auch bei Nachrichten, die aus dem Netz kommen, und die in das Netz gehen, EMPs nicht in KOPs gewandelt werden.
Hinweis: Weist die EMP-Headerinformation einer Nachricht auf ein Brett, welches lokal auf Schreibverbot (z.B. geschlossene BenutzerInnengruppe) steht, so sollte die Nachricht nicht in das Brett gestellt, aber auch nicht mit einem KOP-Header versehen werden. Vielmehr sollte sie komplett zensiert, also z.B. den SystemverwalterInnen zur Entscheidung vorgelegt werden. Crosspostings, also Nachrichten mit mehreren EMPs, sind mittlerweile eher die Regel als die Ausnahme. Häufig ist Verwirrung hinsichtlich der Regelung für das Ersetzen von EMP durch KOP festzustellen. Dieses Thema wird daher bei KOP ausführlich behandelt.
Historie: D: [D3.0] M: [D3.1P] (Klarstellung), [D3.1M] (Klarstellung)
Siehe auch: *DISKUSSION-IN*, EB, *KOP*, STAT: NOKOP, Adressenformat, Brettnamenformat, *Gemischtadressierung*, Points
Kennung: ERR +-----------------+ | Pflicht | Kurzbeschreibung: Fehlerkennung |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ |>>Nur PM | +-----------------+
Syntax: ERR: <Fehlerklasse> [;<Fehlernummer>]* [<Fehlermeldungsklartext>]
Funktion: Eine Nachricht mit dieser Headerinformation befindet sich auf dem Rückweg von einem System, welches einen Fehler in ihr bemerkt hat (z.B. Empfängerin unbekannt, Fehler im Header). ERR enthält mindestens eine Fehlerklasse. Die möglichen Klassen sind im folgenden aufgelistet:
Klasse | Typ | Bedeutung -------+---------+---------------------------------------- 0 | Warnung | anwenderdefiniert 1-4 | Warnung | Zustellung trotz Problemen erfolgt 5-9 | Fehler | Zustellung wegen Fehlern nicht erfolgt >=10 | Panik | anwenderdefiniert
Die Fehlerklassen 0 und >=10 sind nur lokal zu verwenden und sollten nicht über das Netz gehen. Grundsätzlich sind alle natürlichen Zahlen inkl. der 0 möglich. Als Zahlentyp schlägt [D3.1M] wörtlich "intern mindestens [...] 4 Byte (LongInt)" vor. Die Fehlerklassifizierung soll insbesondere der Software zwischen Warnungen und Fehlern unterscheiden helfen. Zusätzlich sind beliebig (!) viele Fehlernummern möglich.
Optional, aber nur bei vorangegangener Fehlerklasse (und evtl. vorangegangenen Fehlernummern), ist ein Fehlermeldungsklartext enthalten, für den in der Dokumentation die englische Sprache nahegelegt wird.
Numerische Werte werden durch ein Semikolon voneinander getrennt, der Klartext hingegen ist durch ein Leerzeichen abgetrennt.
Eine Nachricht mit ERR-Headerinformation darf nicht erneut fehlerbehandelt werden. Sollte keine Empfängerin angegeben sein, ist die Nachricht zu entsorgen.
Ist bei einer Nachricht eine Weiterleitabsenderin (WAB) oder eine ANTWORT-AN-Adresse angegeben, so sind diese statt der Absenderin von dem aufgetretenen Fehler zu unterrichten. ANTWORT-AN hat hierbei höhere Priorität.
Hinweis: Aus der Dokumentation ist nicht ersichtlich, ob zur # Abtrennung des Klartextes ein beliebiges Whitespace # verwendet werden darf, oder ob ein Leerzeichen # verpflichtend ist. Es ist sinnvoll, mit Whitespaces # zu rechnen, aber in der eigenen Software ein # Leerzeichen zu erzeugen. # # Die ZConnect 3.1 Spezifikation der # ERR-Headerinformation ist nicht abwärtskompatibel zu # ZConnect 3.0, welches ausschließlich Klartext als # Argument vorsah (3.0-Systeme verstehen zwar # 3.1-ERR-Informationen, 3.1-Systeme aber nicht die # von 3.0-Systemen). Vermutlich aus diesem Grunde # beschreibt [D3.1Z] die Syntax der ERR-Information, # unter der Maßgabe, daß eine ERR-Information ohne # Parameter unzulässig ist, wie folgt: # # ERR: [<Fehlerklasse>[;<Fehlernummer>]*] [<Fehlermeldungsklartext>] # # Eine ERR-Information mit reinem Klartext wäre demnach # nachwievor zulässig. Vermutlich durch einen # Cut&Paste-Fehler widerspricht [D3.1Z] sich hier aber # fünf Zeilen später und benennt wieder die von [D3.1M] # beschriebene Syntax als gültig. # # [D3.1Z] definiert auch Fehlernummern, die das Gremium # bisher nicht beschlossen hat, die vermutlich dem # Ist-Stand beim Zerberus-Programm entliehen und zudem # von vielen Gremiumsmitgliedern abgelehnt werden ([B4]): # # Fehlernummer | Bedeutung # -------------+---------------------------------------------- # 1 | Versand nicht möglich # 1;1 | Konto überzogen # 1;2 | Nachricht zu alt # 1;3 | Netzzugriff für Absenderin gesperrt # | # 2 | Private Nachricht kann nicht zugestellt werden # 2;1 | Keine Empfängerin angegeben # 2;2 | Empfängerin beim Zielsystem unbekannt # 2;3 | Zieladresse ist ein Verteiler, und der ist # | Zschreibgeschützt # | # 3 | Private Nachricht kann nicht geroutet werden # 3;1 | Routesystem unbekannt oder gesperrt # 3;2 | Direktmails und Routemails gesperrt # 3;3 | Nachricht zu lang # 3;4 | System beim Domainserver unbekannt # 3;5 | Domainserver unbekannt # 3;6 | Rekursion aufgetreten # 3;7 | Empfangssystem gesperrt # 3;8 | Domain unbekannt # | # 4 | Zustellung in Brett nicht möglich # 4;1 | Brett nur für Onlinezugriff # 4;2 | Brettname unzulässig # 4;3 | Brett existiert nicht # 4;4 | Brett gesperrt # 4;5 | Kein Autoeintrag; mehrfache Brettangaben # | # 5 | Fehlerhafte Headerinformationen # 5;1 | Nur einmal erlaubter Header tritt mehrfach auf # 5;1;1 | ABS # 5;1;3 | EMP # 5;1;4 | BET # 5;1;5 | ROT # 5;1;6 | LEN # 5;1;7 | MID # 5;1;8 | WAB # 5;1;10 | OAB # 5;2 | Ein Pflichtheader ist nicht vorhanden # 5;2;1 | ABS # 5;2;2 | EMP # 5;2;3 | EDA # 5;2;4 | BET # 5;2;5 | ROT # 5;2;6 | LEN # 5;2;7 | MID # 5;3 | Eine Headerinformation hat ein falsches Format # 5;3;1 | ABS # 5;3;2 | EMP # 5;3;3 | EDA # 5;3;4 | BET # 5;3;5 | ROT # 5;3;6 | LEN # 5;3;7 | MID # 5;3;8 | WAB # 5;3;9 | KOP # 5;3;10 | OAB # 5;3;11 | OEM # 5;3;12 | EB # 5;3;13 | ANTWORT-AN # 5;3;14 | DISKUSSION-IN # # In der Tabelle sind etliche Widersprüche zu # konstatieren: Die Fehlernummern 1;x bis 4;x sind # schwerlich sämtlich als "Warnung" interpretierbar # (vgl. Tabelle der Fehlerklassen), da teilweise die # Zustellung aus technischen Gründen unmöglich ist. # Eine Fehlernummer wie 4;5 ist ohne weitere # Erläuterungen schwer nachvollziehbar. # # Zudem ist von einer "GAB"-Headerinformation die # Rede, welche es natürlich nicht gibt. Sicher handelt # es sich um einen Druckfehler; aus der Logik der # Fehlernummernvergabe ergibt sich, daß es sich an den # entsprechenden Stellen um die LEN-Information # handeln müßte, wie in der obigen Tabelle # dargestellt.
Historie: D: [D3.0] M: [D3.1M] A: [D3.1Z]
Siehe auch: Aufbau und Zeichensatz von Headerinformationen, Weiterleiten
Kennung: ERSETZT +-----------------+ | Pflicht | Kurzbeschreibung: Nachrichtenaktualisierung |>>Optional | +-----------------+ | Nur einmal | |>>Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: ERSETZT: <Message-ID>
Funktion: Die Nachricht mit der ERSETZT-Headerinformation ersetzt die Nachricht mit der als Argument angegebenen Message-ID. Dies ist zugleich Anweisung und Information. Die zu ersetzende Nachricht (z.B. eine aktuelle Brettliste) wird von der ERSETZT-Nachricht überschrieben. Anschließend steht die Headerinformation dann für die Aussage, daß ersetzt wurde.
Hinweis: ERSETZT wird von mehreren Programmen als Cancelmail{10}-Ersatz verwendet. Dies ist insofern eine Zweckentfremdung, als die Cancelmail dann anstelle der Originalmail tritt, statt sie zu löschen.
[D3.1Z] ist bemüht, ERSETZT zu einem vollwertigen Cancelmail-Ersatz umzudokumentieren. Dazu wird definiert, daß abweichend von den Gremiumsbeschlüssen eine Nachricht mit leerem Nachrichtenkörper und ERSETZT im Header die zu ersetzende Nachricht löscht, ohne an ihre Stelle zu treten. Zudem sei eine Autorisierungsprüfung notwendig, deren Durchführung aber nicht näher erläutert wird.
Seit der Einführung der CANCEL-Headerinformation hat sich die Diskussion um die Verwendung von ERSETZT als Cancelmail-Ersatz erledigt.
# Ohne eine Autorisierung ist die # ERSETZT-Headerinformation problematisch, da sie als # Sabotagemittel geeignet ist. Dies ergibt sich # daraus, daß ERSETZT mehrfach angegeben werden kann. # So kann eine einzige Nachricht theoretisch das # gesamte Netzleben lahmlegen.
Bei [D3.1Z] ist angemerkt, daß es für die Umsetzung von ERSETZT in die Praxis ausreichen würde, der alten, zu ersetzenden Nachricht einen Hinweis anzufügen, daß diese ersetzt worden sei. Angesichts der Tatsache, daß Nachrichtenkörper nicht geändert werden dürfen, ist nur das Hinzufügen eines Kommentars nebst KOM-Headerinformation möglich.
BenutzerInnenschnittstellen sollten unter Beachtung des Umstandes implementiert werden, daß ERSETZT in den Datenbestand einer Anwenderin eingreift, wenn es auf einem Endsystem ausgewertet wird. Die Umsetzung von ERSETZT sollte also sorgfältig erwogen werden.
STAT: AUTO ist eng verwandt mit ERSETZT. Als Unterschied ist ausschließlich zu nennen, daß zur Identifizierung der zu aktualisierenden Information bei STAT: AUTO andere (FILE und EMP) Headerinformationen herangezogen werden als die Message-ID.
Historie: D: [D3.0] A: [D3.1Z]
Siehe auch: BEZ, CANCEL, MID, STAT: AUTO
Kennung: FILE +-----------------+ | Pflicht | Kurzbeschreibung: Dateiname |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: FILE: <Dateiname>
Funktion: Enthält die Nachricht eine Datei (z.B. bei einer Binärnachricht), so kann mit FILE ein Dateiname angegeben werden. Dieser darf keine Directoryinformationen enthalten, ist aber je nach Betriebsystem unterschiedlich lang.
Der Dateiname kann wegen seiner unbestimmten Herkunft jederzeit auch beliebige Sonderzeichen (z.B. auch Leerzeichen, Hochkommata, mehr als einen Punkt) enthalten. Die verarbeitende Software muß hierauf vorbereitet sein und evtl. eine Umwandlung vornehmen oder einen neuen Namen generieren.
Hinweis: Angesichts der Tatsache, daß der Dateiname absolut beliebige Zeichen (Einschränkung: Zeichensatz in Headerinformationen) enthalten darf, ist das Verbot von Directoryinformation natürlich hauptsächlich beim Erzeugen zu berücksichtigen; es ist dabei auf eine möglichst betriebsystem-ökumenische Namensgebung zu achten. Wenn ein Betriebsystem zwischen Groß- und Kleinschreibung nicht unterscheidet, wird die Angabe des Dateinamens in Kleinbuchstaben empfohlen.
Historie: D: [D3.0]
Siehe auch: DDA, STAT: AUTO, TYP: BIN
Kennung: KOM +-----------------+ | Pflicht | Kurzbeschreibung: Kommentarlänge |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: KOM: <Kommentarlänge>
Funktion: Der Nachrichtenkörper einer Nachricht kann unterteilt sein in Kommentar und eigentliche Nachricht (z.B. ausführliche Dateibeschreibung als Kommentar und anschließende Binärnachricht). In diesem Fall gibt KOM die Anzahl Bytes an, die der Kommentar in der Mail ausmacht. Der Kommentar selber steht am Anfang des Nachrichtenkörpers.
Für den Inhalt des Kommentars gelten die Standardregeln für den Nachrichtenkörper allgemein. Das bedeutet insbesondere, daß eine CHARSET- oder eine TYP-Headerinformation auf den Kommentaranteil keine Wirkung hat!
Die LEN-Information ist die Summe aus der Länge des Kommentaranteils und der Länge des Rests des Nachrichtenkörpers.
Graphisch dargestellt:
Ú-----------------------+ | Header | +-----------------------+-. --. | Kommentar | |- KOM | +-----------------------+-' | | | |- LEN | Daten/Text | | | | | +-----------------------+ --'
Hinweis: Der Kommentar kann nicht nur einem Binärteil vorangestellt werden. Insbesondere kann er auch in einer normalen Textnachricht vorkommen.
Es ist mit KOM: 0 zu rechnen.
Historie: D: [D3.0]
Siehe auch: LEN, *CRYPT-CONTENT-KOM*
Kennung: KOP +-----------------+ | Pflicht | Kurzbeschreibung: Kopienempfängerin |>>Optional | +-----------------+ | Nur einmal | |>>Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: KOP: <Brettname> | <ZConnect-Adresse>
Funktion: Bei Nachrichten mit mehreren Empfängerinnen kann es unter bestimmten Voraussetzungen zur Ersetzung von EMPs durch KOPs kommen. Eine KOP-Headerinformation sagt aus, daß eine Kopie der Nachricht an die angegebene Empfängerin gegangen ist.
Die KOP-Information hat keine Steuerfunktion. Sie ist ein Dienst für die menschliche Adressatin der Nachricht. Diese ist die einzige Instanz, die mithilfe der BenutzerInnenschnittstelle irgendwelche Schlüsse aus KOPs ziehen darf; z.B. darf der Inhalt der KOP-Headerinformationen niemals zu Routingzwecken herangezogen werden.
Hinweis: Aus Datenschutzgründen wurde die Headerinformation STAT: NOKOP eingeführt, mit welcher der Einsatz von KOP im Zusammenhang mit privaten Nachrichten untersagt werden kann. Dies ist sehr sinnvoll, kompliziert aber auf den ersten ProgrammiererInnenblick die Implementierung. Daher erfolgt bereits an dieser Stelle die Einbeziehung von STAT: NOKOP in die Erläuterung; der Querverweis sollte dennoch nicht übersehen werden, da es weitere Details zu beachten gilt.
Bei der Erläuterung von EMP in [D3.1M] ist das Einsetzen von KOP-Headerinformationen bei Privatnachrichten, die von einer gemischt adressierten Nachricht abgetrennt werden, als Pflicht beschrieben.
Der Einsatz von KOPs zunächst einmal dem Sinn nach aufgeschlüsselt:
* Bei gemischtadressierten Nachrichten hat die private Empfängerin evtl. ein Interesse daran, zu erfahren, daß und in welche öffentliche Bretter Kopien gegangen sind. Auch ist diese Information nicht schutzwürdig, da die öffentlichen Kopien jedermensch lesen kann.
* Bei Crosspostings, die (auch) an mehrere private Empfängerinnen geht, kann die Absenderin berechtigte Einwände dagegen haben, daß die Empfängerinnen erfahren, an wen private Kopien gegangen sind. Dies entspricht einem konsequenten Datenschutzgedanken.
* Bei Crosspostings, die (auch) öffentliche Empfängerinnen haben, kann die Absenderin vermeiden wollen, daß im öffentlich werdenden Header zu lesen ist, an wen private Kopien gegangen sind (Datenschutz).
* Auch eine private Empfängerin könnte etwas dagegen einzuwenden haben, daß öffentlich oder anderen privaten Empfängerinnen kundgetan wird, daß sie eine Kopie erhalten hat. Jedoch liegt es dann "wie im richtigen Leben" bei der Empfängerin, sich mit der Absenderin auseinanderzusetzen. Das Protokoll darf der Absenderin nur technisch Notwendiges vorschreiben. Das Pointprogramm (z.B.) könnte aber sinnvollerweise STAT: NOKOP als Normalfall behandeln und seine Nicht-Verwendung explizit auswählen lassen.
Vor den technischen Schlußfolgerungen zunächst eine sprachliche Definition: Die Ursprungsnachricht wird aufgeteilt in die Abspaltung und den Rest. Die Abspaltung ist der fortan selbständig auf den (Route-) Weg geschickte Teil mit einer oder mehreren privaten Empfängerinnen{11}. Der Rest ist die übrigbleibende, öffentliche Nachricht (eine Nachricht ist dann öffentlich, wenn eine der Empfängerinnen nicht privat ist). Es wird also immer der Moment betrachtet, in dem rein private Nachrichten entstehen.
Zwei Logiktabellen machen im folgenden deutlich, wie die Programmierung aussehen muß. Zunächst eine Logiktabelle für die Behandlung des Rests:
| EMP- | | | Typen | | | im | | | Rest | | | | S | | P | Ö | T | | r | f | A | | i | f | T | | v | e | : | | a | n | | | t | t | N | | | l | O | | | i | K | | | c | O | | | h | P | | Aktion +---+---+---+ +-------------------------------- | | x | | -> | Abgespaltener EMP wird zu KOP | | x | x | -> | Abgespaltener EMP verschwindet | x | | | -> | Abgespaltener EMP wird zu KOP | x | | x | -> | Abgespaltener EMP verschwindet | x | x | | -> | Abgespaltener EMP wird zu KOP | x | x | x | -> | Abgespaltener EMP verschwindet
Es ist deutlich, daß beim Rest sehr einfach vorgegangen werden kann: Ist STAT: NOKOP gesetzt, so wird kein KOP erzeugt, die Information des abgetrennten EMPs verschwindet. Ist STAT: NOKOP nicht gesetzt, werden aus abgetrennten EMPs KOPs.
Die Logiktabelle für die Abspaltung:
| EMP- | | | Typen | | | im | | | Rest | | | | S | | P | Ö | T | | r | f | A | | i | f | T | | v | e | : | | a | n | | | t | t | N | | | l | O | | | i | K | | | c | O | | | h | P | | Aktion +---+---+---+ +---------------------------------------- | | x | | -> | Alle EMPs des Rests werden zu KOPs | | x | x | -> | Alle EMPs des Rests werden zu KOPs | x | | | -> | Alle EMPs des Rests werden zu KOPs | x | | x | -> | Die EMPs des Rests verschwinden | x | x | | -> | Alle EMPs des Rests werden zu KOPs | x | x | x | -> | Alle öffentlichen EMPs des Rests werden | | | | | zu KOPs, alle privaten EMPs verschwinden
Hier stellt sich die Aufgabe ebenfalls sehr übersichtlich dar: Ist STAT: NOKOP nicht gesetzt, so werden alle nach der Abtrennung übrigbleibenden EMPs des Restes zu KOPs der Abspaltung.
Bleiben drei Fälle, in denen STAT: NOKOP gesetzt ist, und die sich ganz einfach so zusammenfassen lassen: Die öffentlichen EMPs des Rests (sofern vorhanden) werden zu KOPs der Abspaltung, die privaten EMPs des Rests (sofern vorhanden) nicht.
Eine neue Message-ID muß übrigens für die ja rein private Abspaltung nicht erzeugt werden, da der ZConnect-Rekursionscheck (und auch andere Netzstandards, z.B. die RFC-Suite) den Dupecheck bei privaten Nachrichten nicht vorsieht.
Bei der Auftrennung gemischtadressierter Nachrichten ist, wegen des Designproblems ZConnects in diesem Kontext (siehe Kapitel Gemischtadressierung), zu beachten, daß Headerinformationen wie PGP: PLEASE, VIA, STAT: TRACE, EB usw. nicht in einer rein öffentlich adressierten Nachricht weitergereicht werden, soweit dies vermeidbar ist.
Historie: D: [D3.0] M: [D3.1P] (Klarstellung), [D3.1M] (Klarstellung)
Siehe auch: EMP, *STAT: NOKOP*, Adressen, Brettnamen, *Gemischtadressierung*, Points, Dupecheck
Kennung: LANGUAGE +-----------------+ | Pflicht | Kurzbeschreibung: Nachrichtensprache |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ |>>Nur PM | +-----------------+
Syntax: LANGUAGE: <Englischsprachiger Name der Sprache>
Funktion: Die Absenderin einer Nachricht kann mit dieser Headerinformation angeben, in welcher Sprache sie gerne die Antwort bekommen würde. Kann die gewünschte Sprache nicht angeboten werden, so empfiehlt die Dokumentation, die englische zu benutzen.
Als Parameter sind die englischsprachigen Bezeichnungen der jeweiligen Sprache zugelassen. Also z.B. GERMAN für Deutsch, ENGLISH für Englisch, AMERICAN ENGLISH für amerikanisches Englisch, CUCKOOISH für das Piepsen der Kuckucks, SPANISH, GREEK, FRENCH...
Hinweis: Diese Headerinformation ist in der derzeitigen Fassung nur für automatisch generierte Antworten sinnvoll.
# Eine weitere Anwendung für einen dann aber erweitert # zu definierendes LANGUAGE ist denkbar: Abseits von # der technischen CHARSET-Regelung ist es für die # Empfängerin möglicherweise von Interesse, in welcher # Sprache eine Nachricht geschrieben ist. Aus # japanischen Zeichen läßt sich z.B. auch bei # gegebener Darstellbarkeit für Laien nicht erkennen, # ob es sich z.B. um Katakana, Hiragana oder etwas # ganz anderes handelt. # # Auch wäre vorstellbar, daß eine Empfängerin bei # einer imaginären Pointsoftware einstellt, daß sie # nur französischsprachige Nachrichten überhaupt # angezeigt bekommen möchte. Oder, um der Vision des # Globalen Dorfes eine linguistische Dimension zu # geben, es könnte auch Pointsoftware geben, die # automatisch Übersetzungen vornimmt. Dies ist schon # heute teilweise, insbesondere für die englische # Sprache, realistisch, z.B. durch Einbindung eines # externen Übersetzungsprogramms. Denkbar ist auch das # Angebot eines automatischen Übersetzungsservices # über per eMail oder Onlineverbindungen erreichbare # Netzautomatismen. Umsetzungen werden bereits erprobt # [B5].
Historie: D: [D3.1M]
Siehe auch: Points, Weiterleiten
Kennung: LDA +-----------------+ | Pflicht | Kurzbeschreibung: Löschdatum |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: LDA: <Datumsangabe>
Funktion: Verfallsdatumangabe :-) Ab dem angegebenen Datum soll die Nachricht automatisch gelöscht werden. Nützlich für Veranstaltungshinweise oder z.B. auch die Urgent Actions von amnesty international.
Hinweis: Ein Pointprogramm sollte nicht ohne Einwilligung der Inhaberin des Datenbestands in diesem löschen. LDA kann also bestenfalls zusammen mit einer Rückfrage bei der Benutzerin einen Automatismus ergeben. Anders sieht es in Onlinedatenbeständen aus, hier kann LDA im Rahmen der automatischen Pflege bearbeitet werden.
Historie: D: [D3.0]
Siehe auch: Datumsangaben, Points, Weiterleiten
Kennung: LEN +-----------------+ |>>Pflicht | Kurzbeschreibung: Nachrichtenlänge | Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: LEN: <Länge des Nachrichtenkörpers>
Funktion: LEN gibt die Anzahl der Bytes an, die nach dem Header noch folgen und zur Nachricht gehören (sprich: die Länge des Nachrichtenkörpers).
Hinweis: Die Länge Null ist in der Dokumentation explizit als erlaubt definiert. Negative Längen sind verboten.
Historie: D: [D3.0]
Siehe auch: KOM
Kennung: MAILER +-----------------+ | Pflicht | Kurzbeschreibung: Name des Mailerprogramms |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: MAILER: <Kennung des Mailers>
Funktion: Hiermit kann sich der Mailer der Absenderin und/oder ein Gate identifizieren. Die Kennung sollte eindeutig sein (Versionsnummer usw.). Gedacht ist diese Headerinformation für das Ausfindigmachen von fehlerhafter Software.
Hinweis: MAILER wird nicht von Software ausgewertet, das Format ist also frei.
# Mailboxsoftware hängt meistens an bereits bestehende # MAILER-Zeilen ein "via Mailboxsoftware XYZ" an. # Dieses Vorgehen ist nicht überall gern gesehen, wird # aber geduldet, wenn die Mailerinformation nicht # allzu lang gerät. Sinnvoll wäre es, wenn sich alle # Gatewayprogramme in ähnlicher Weise benennen würde, # da sie sehr häufig Quelle von Fehlern sind.
Historie: D: [D3.0]
Siehe auch: Headerzeichensatz, Weiterleiten
Kennung: MID +-----------------+ |>>Pflicht | Kurzbeschreibung: Message-ID | Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: MID: <Message-ID>
Funktion: Die Message-ID muß so erzeugt werden, daß sie weltweit für mindestens zwei Jahre eindeutig ist. Tritt eine Message-ID innerhalb von zwei Jahren zum wiederholten Mal bei einer Nachricht auf, handelt es sich um eine zu löschende Rekursion.
Das Aussehen der Message-ID ist recht genau vorgeschrieben: Sie muß wie eine ZConnect-Adresse ohne Realname aussehen und unbedingt eine Domain enthalten (falls das absendende System keine Domain hat, ist ".zer.sub.org" zu verwenden).
Für Points wird vorgeschlagen, die Message-ID in der Form lokale_id@pointname.systemname.domain aufzubauen. Der Teil vor dem '@' wird häufig und sinnvollerweise aus der von vielen Compiler-Standardbibliotheken gelieferten "Unixtime" (Zeit in Sekunden seit 1970) und einer laufenden Nummer gebildet. Diese Daten sind dann aber noch geeignet zu verfremden, um das Datenschutzbedürfnis der Absenderin (vgl. EDA) nicht auszuhebeln.
# Ein weiterer, äußerst sinnvoller und daher bitte nicht # zu ignorierender Vorschlag in der Dokumentation ist, # bei Points, die mehr als ein System als Tor zum Netz # verwenden, den Teil nach dem '@' nicht systemabhängig # zu generieren. Für System A und System B lautet es dann # also lokale_id@point.A.domain. Dies verhindert Dupes # (die andernfalls entstünden, sobald einE BenutzerIn auf # den Gedanken käme, dieselbe Mail in mehrere Boxen zu # schicken, z.B. damit sie sich schnell verbreitet).
Die Zeichen '<', '>' und '/' sind in Message-IDs verboten. Aus dem für Header zulässigen Zeichensatz ergibt sich aber z.B., daß deutsche Sonderzeichen enthalten sein könnten.
Hinweis: Die Message-ID ein und derselben Mail darf niemals verändert werden! Der früher übliche Umbau der Point-Message-ID bei der ersten Mailbox auf dem Routeweg hat zu erheblichen Problemen und Dupewellen geführt. Auf Rekursionen muß jede Software prüfen und diese dann entsprechend behandeln. Näheres ist im Kapitel Rekursionscheck erläutert.
# Es findet sich in der Dokumentation kein Hinweis # darauf, ob die Groß-/Kleinschreibung bei einer # Message-ID zu beachten ist. In der Spezifikation zum # MAPS-Standard (in [D3.1M]) wird beim ORDER-Befehl # beschrieben, bei der Message-ID sei die # Groß-/Kleinschreibung zu beachten. [D3.1Z] hingegen # bestimmt in gleichem Kontext, die Message-ID sei bis # zum "@" case sensitive und dahinter case insensitive. # Angesichts der Definition von Mailadressen, die hinter # dem "@" case insensitive zu behandeln sind, und # angesichts deren Eingang in die Bildung der Message-ID, # trifft die Beschreibung durch [D3.1Z] zu.
Historie: D: [D3.0] M: [B5], [D3.1M]/[D3.1Z] (Klarstellung)
Siehe auch: BEZ, ERSETZT, Adressenformat, *Dupecheck*
Kennung: MIME +-----------------+ | Pflicht | Kurzbeschreibung: Art der MIME-Codierung |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ |>>Nur PM | +-----------------+
Syntax: MIME: <Version>.<Unterversion>
Funktion: Gibt für Nachrichten mit TYP: MIME an, welche MIME-Version und Unterversion verwendet wurden.
Hinweis: MIME ist in [RFC 1521] definiert.
ACHTUNG: Sämtliche Diskussionen um die MIME-Integration in ZConnect und auch die vom Gremiumswahlleiter hierzu versandten Texte weisen eindeutig daraufhin, daß dringend davon abzuraten ist, aufgrund der derzeitigen MIME-Beschlußlage eine Implementierung vorzunehmen. Es wird mit Sicherheit größere Änderungen geben, potentiell werden dabei sämtliche bisherigen Beschlüsse zu ZConnect-MIME aufgehoben.
Historie: D: [Wahl5]
Siehe auch: TYP: MIME, Kapitel "MIME"
Kennung: O-EDA +-----------------+ | Pflicht | Kurzbeschreibung: Originalempfangsdatum |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: O-EDA: <Datumsangabe>
Funktion: Die EDA-Headerinformation einer weiterzuleitenden Nachricht kann auf diese Weise in der Weiterleitung, welche eine eigene EDA-Information haben muß, überleben.
Hinweis: [D3.1Z] erläutert, daß O-EDA nur bei der ersten Weiterleitung aus der verlorengehenden EDA-Information erzeugt wird. Hintergrund sei, daß für weiterzuleitende Nachrichten eine neue EDA-Headerinformation erzeugt werden muß und die Originalerstellungszeit dadurch verloren ginge.
# O-EDA wird nur beim manuellen Weiterleiten eingesetzt, # da beim automatischen Weiterleiten und beim Umleiten # davon ausgegangen wird, daß private Nachrichten # transportiert werden, für die weder eine neue # Message-ID (zur Vermeidung einer irrtümlichen # Rekursionsdetektion) noch ein neues EDA (zur Vermeidung # einer Löschung als "zu alt") erforderlich sind. Dies # ist jedoch eine unzulässige Annahme, da beim # automatischen Weiterleiten einer PM, z.B. einer # Nachricht aus einer Mailingliste, in ein (z.B. lokales) # Brett, die Nachricht verlorengehen könnte, weil die # Systemsoftware ein zu hohes Alter diagnostiziert (vgl. # MID, Rekursionscheck: Nachrichten, die älter als 90 # Tage sind, werden gelöscht).
Historie: D: [D3.1P] M: [D3.1Z] (Klarstellung)
Siehe auch: EDA, Rekursionscheck, *Weiterleiten*
Kennung: O-ROT +-----------------+ | Pflicht | Kurzbeschreibung: Originalrouteweg |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: O-ROT: <Routestring>
Funktion: Beim Weiterleiten muß der Routeweg der weiterzuleitenden Nachricht gelöscht werden, da die Weiterleitung eine neue ROT-Headerinformation erhält. Mittels O-ROT kann der alte Routeweg in der Weiterleitung transportiert werden.
Hinweis: [D3.1Z] erläutert, daß dieser Header bei Weiterleitungen über einen Vertreter (VER-Headerinformation) aus der ROT-Information erzeugt werden soll, um bei privaten Nachrichten das vermeintliche Feststellen eines Pingpongroutings zu vermeiden. Dies würde passieren, wenn unter Beibehaltung der ROT-Information eine Nachricht wieder auf den Weg ins Netz geschickt und dabei wieder über Systeme geroutet werden würde, die bereits auf dem Weg zum weiterleitenden System passiert wurden.
# Mit dieser Begründung ist es entgegen der bisherigen # Dokumentation auch erforderlich, O-ROT beim # automatischen Weiterleiten einzusetzen (vgl. # Weiterleiten).
Historie: D: [D3.1P] M: [D3.1Z] (Klarstellung)
Siehe auch: O-EDA, ROT, VER, *Weiterleiten*
Kennung: OAB +-----------------+ | Pflicht | Kurzbeschreibung: Originalabsender |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: OAB: <ZConnect-Adresse>
Funktion: Beim manuellen, aktiven Weiterleiten wird in die OAB-Headerinformation der Weiterleitung der ABS der weitergeleiteten Nachricht übernommen, sofern noch keine OAB-Information im Header enthalten ist.
Historie: D: [D3.0]
Siehe auch: ABS, WAB, *Weiterleiten*
Kennung: OEM +-----------------+ | Pflicht | Kurzbeschreibung: Originalempfängerin |>>Optional | +-----------------+ | Nur einmal | |>>Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: OEM: <Brettname> | <ZConnect-Adresse>
Funktion: Beim automatischen und beim manuellen Weiterleiten müssen die EmpfängerInnen der weiterzuleitenden Nachricht als OEMs aufgeführt werden. Beim manuellen Weiterleiten wird dies nicht durchgeführt, wenn bereits OEM-Informationen im Header enthalten sind.
Historie: D: [D3.0]
Siehe auch: EMP, *Weiterleiten*
Kennung: ORG +-----------------+ | Pflicht | Kurzbeschreibung: Organisation |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: ORG: <Organisation>
Funktion: Wenn die Absenderin sich einer Organisation zugehörig fühlt, dann kann sie in der ORG-Information eine einzeilige Beschreibung angeben (z.B. "PoeM e.V., Vorstand").
Hinweis: BenutzerInnen von ORG sollten z.B. durch einen Hilfstext darauf aufmerksam gemacht werden, daß durch die Angabe einer Organisation geschriebene Nachrichten als Meinung der Organisation verstanden, also ggf. mißverstanden werden können.
Historie: D: [D3.0]
Siehe auch: POST, TELEFON, Weiterleiten
Kennung: PGP +-----------------+ | Pflicht | Kurzbeschreibung: PGP-Aufforderung |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ |>>Nur PM | +-----------------+
Syntax: PGP: PLEASE | REQUEST
Funktion: PGP: PLEASE fordert die Empfängerin auf, den ebenfalls im Header enthaltenen PGP Public Key (!) zu unterschreiben. Der Empfängerin sollte dieses Ansinnen nicht ohne den Hinweis vorgetragen werden, daß eine Unterschrift unter einen PGP Public Key eine Aktion von weittragender Bedeutung ist. Es ist unbedingt darauf hinzuweisen, daß ein persönlicher Kontakt erforderlich ist, um z.B. anhand eines Fingerprints sicher sagen zu können, daß der zu unterschreibende Key zu der Absenderin gehört.
Für die Antwort auf PGP: PLEASE sollte die Headerkennung PGP-KEY-OWN verwendet werden.
PGP: REQUEST bittet die Empfängerin um die Zusendung von deren Public Key.
Sowohl PGP: PLEASE als auch PGP: REQUEST dürfen nicht bei öffentlichen Nachrichten eingesetzt werden.
Hinweis: Das Verbot des Einsatzes dieser Information bei öffentlichen Nachrichten ist bei der Auftrennung von gemischtadressierten Nachrichten zu beachten! Bei strenger Auslegung (gemischtadressierte Nachrichten sind öffentliche Nachrichten) heißt das, daß diese Informationen bei gemischtadressierten Nachrichten nicht eingesetzt werden dürfen.
PGP: REQUEST ist auch bei Non-PGP-Nachrichten sinnvoll und kann und darf daher auch bei ihnen auftreten. Für PGP: PLEASE gilt ähnliches, allerdings ist zu beachten, daß hier der Einsatz nur Sinn macht, wenn außerdem eine PGP-PUBLIC-KEY-Headerinformation im Header enthalten ist (natürlich wäre es auch denkbar, daß PGP: PLEASE die formalisierte Aufforderung an eine Empfängerin ist, die den Public Key der Absenderin bereits hat - die Dokumentation sieht dies nicht vor).
Auch wenn eine große Verbreitung des eigenen Public Keys zu dessen Fälschungs"sicherheit" beiträgt, sollte ihn das Pointprogramm - ähnlich wie bei Empfangsbestätigungen - nicht ohne Rückfrage bei der Benutzerin versenden. Es ist darauf hinzuweisen, daß die ZConnect-PGP-Lösung sich sehr rasch verbreitet. Aufgrund der ohne Unterstützung durch die BenutzerInnenschnittstelle nicht verarbeitbaren Schlüsselcodierungen im Header wird dringend empfohlen, ZConnect-PGP zu implementieren.
Historie: D: [D3.1P]/[D3.1M]
Siehe auch: PGP-KEY-OWN, *Gemischtadressierung*, *Verschlüsselung*, Weiterleiten
Kennung: PGP-ID +-----------------+ | Pflicht | Kurzbeschreibung: PGP Userinnen-ID |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: PGP-ID: <Realname> <<Netzadresse>>
Ein Hinweis auf einem Sonderfall in der Notation: Einfache, spitze Klammern um die Netzadresse sind ausnahmsweise tatsächlich anzugeben. Eine gültige PGP-ID-Information sähe also so aus:
Ce Brunke <Sepro@bingo.comlink.de>
Funktion: Normalerweise ist die in der PGP Userinnen-ID enthaltene Nutzinformation bereits durch die ZConnect-Pflichtheader im Header vertreten. Die Dokumentation sieht PGP-ID für den Fall vor, daß "dies einmal nicht möglich ist".
Hinweis: Der Fall, daß "dies einmal nicht möglich ist", ist z.B. dann gegeben, wenn die Absenderin normalerweise auf die Angabe des Realnames zu verzichten wünscht, diesen in der ID aber angeben möchte.
Zu beachten ist, daß die Übergabe der PGP-ID an PGP in Hochkommata erfolgen sollten, da PGP Leerzeichen als Trenner zwischen mehreren EmpfängerInnen betrachtet.
Historie: D: [D3.1P]/[D3.1M]
Siehe auch: *Verschlüsselung*, Weiterleiten
Kennung: PGP-KEY-AVAIL +-----------------+ | Pflicht | Kurzbeschreibung: PGP Public Key erhältlich |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: PGP-KEY-AVAIL: [<Systemtelefonnummer in internationalem Format> [Systemname des Keyservers] [Adressenanteil der PGP-Userinnen-ID]]
Funktion: Die Absenderin gibt mit dieser Kennung an, daß sie den Bezug ihres Public Keys anbietet. Wird PGP-KEY-AVAIL ohne Parameter angegeben, kann bei der Absenderin nur mittels PGP: REQUEST dieser Public Key erbeten werden.
PGP-KEY-AVAIL ist auch ein Bindeglied zwischen Onlinephase und Datenformat. Hierzu dient der Parameter der Kennung, welcher in angibt, bei welchem System online (per ZConnect-Onlinephase mit deren Headerinformation PGP-KEYREQ) der Public Key der Absenderin requestet werden kann.
Ein Beispiel für die Parameter von PGP-KEY-AVAIL für den Keyrequest:
+49-40-6912028 bingo.comlink.de Sepro@bingo.comlink.de +------------+ +--------------+ +--------------------+ | | | Systemtelefon- | | nummer in | | internationalem | | Forma | | Systemname des | Key-Servers | Adressenanteil der PGP-Userinnen-ID
Die Systemtelefonnummer bezeichnet die Rufnummer der Box, bei der per ZConnect-Onlinephase der Public Key der Absenderin requestet werden kann. Die Syntax folgt dabei weitestgehend dem Format der TELEFON-Headerinformation: Lediglich die vorangestellten Buchstaben (für Voice/Box/Fax) entfallen.
Der Systemname ist optional. Ist er nicht angegeben, handelt es sich bei dem servenden System um jenes, welches auch in der Adresse der Absenderin enthalten ist. Auch die Adresse, die Teil der PGP User-ID ist, welche zum zu requestenden Public Key gehört. ist optional. Fehlt sie, ist diejenige der Absenderin der Nachricht zu verwenden.
Hinweis: Die BINGO ist kein ZConnect-System (sondern verwendet Janus[Plus]), es ist also wenig erfolgversprechend, das Beispiel auszuprobieren ;-)
Es wird empfohlen, die Parameterkomponenten durch je genau ein Leerzeichen voneinander zu trennen, von anderer Software aber eine beliebige Anzahl Whitespaces (mindestens eines) zu erwarten.
# [D3.1Z] definiert PGP-KEY-AVAIL abweichend als auch # mehrfach vorkommend. Dies ist durchaus sinnvoll, # aber vom Gremium nicht so beschlossen. Auch sieht # [D3.1Z] einen vierten optionalen Teil der Parameter # der PGP-KEY-AVAIL-Information vor, welcher als # "ISDN" spezifiziert wird und aussagen soll, daß es # sich bei der vorausgegangenen Telefonnummer um eine # ISDN-Nummer handelt. Im Zusammenspiel mit der # Möglichkeit, mehrere PGP-KEY-AVAIL-Informationen # angeben zu können, ebenfalls sinnvoll - aber nicht # beschlossen.
Historie: D: [D3.1P]/[D3.1M] A: [D3.1Z]
Siehe auch: *Verschlüsselung*, Weiterleiten
Kennung: PGP-KEY-COMPROMISE +-----------------+ | Pflicht | Kurzbeschreibung: Widerrufener PGP Public Key |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ |**Nur PM | +-----------------+
Syntax: PGP-KEY-COMPROMISE: <ZConnect-Schlüsseldarstellung>
Funktion: PGP-KEY-COMPROMISE darf nur zusammen mit PGP-PUBLIC-KEY auftauchen. Auf diese Weise kann der zu widerufende Public Key durch den neuen ersetzt werden.
Aus dem Kontext ergibt sich, daß PGP-KEY-COMPROMISE nur bei privaten Nachrichten eingesetzt werden darf - mit der bei PGP-PUBLIC-KEY beschriebenen Einschränkung.
Hinweis: Es gibt aus dem PGP Konzept heraus keinen Grund dafür, daß ein zurückgezogener Public Key durch einen neuen ersetzt werden müßte. Nur ZConnect schreibt dies vor.
Historie: D: [D3.1P]/[D3.1M]
Siehe auch: *Gemischtadressierung*, *Verschlüsselung*, Weiterleiten
Kennung: PGP-KEY-OWN +-----------------+ | Pflicht | Kurzbeschreibung: Unterschriebener PGP Public Key |>>Optional | der Empfängerin; +-----------------+ Antwort auf PGP: Please |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ |>>Nur PM | +-----------------+
Syntax: PGP-KEY-OWN: <ZConnect-Schlüsseldarstellung>
Funktion: PGP-KEY-OWN ist i.d.R. die Antwort auf PGP: PLEASE. PGP-KEY-OWN enthält den Schlüssel der Empfängerin mit einer neuen Unterschrift, wahrscheinlich, aber nicht unbedingt jener der Absenderin.
Historie: D: [D3.1P]/[D3.1M]
Siehe auch: *Gemischtadressierung*, *Verschlüsselung*, Weiterleiten
Kennung: PGP-PUBLIC-KEY +-----------------+ | Pflicht | Kurzbeschreibung: PGP Public Key der Absenderin |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ |**Nur PM | +-----------------+
Syntax: PGP-PUBLIC-KEY: <ZConnect-Schlüsseldarstellung>
Funktion: Die Absenderin transportiert in dieser Headerinformation ihren PGP Public Key. Die Empfängerin kann ihn für die Verschlüsselung zukünftiger Kommunikation benutzen.
Hinweis: Der Public Key sollte nicht mit jeder öffentlichen Nachricht versendet werden. Für die Verbreitung des Keys mag das zwar nützlich sein, die Kopflastigkeit des ZConnect-Datenformats steigert es jedoch dabei sehr.
Umgekehrt kann diese Headerinformation für private Nachrichten technisch nicht verboten sein, da es durchaus sinnvoll ist, in bestimmten, dafür vorgesehenen Brettern den Public Key in einer öffentlichen Nachricht zu versenden.
Historie: D: [D3.1P]/[D3.1M]
Siehe auch: PUBLIC-KEY, *Gemischtadressierung*, *Verschlüsselung*, Weiterleiten
Kennung: PGP-SIG +-----------------+ | Pflicht | Kurzbeschreibung: PGP-Signatur |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: PGP-SIG: <PGP-Signatur in ZConnect-Schlüsseldarstellung>
Funktion: Ist eine Nachricht mit PGP unterschrieben (SIGNED: PGP), wird die Signatur(datei) der Absenderin als PGP-SIG in BASE64-Codierung transportiert. So können auch Binärnachrichten unterschrieben werden.
Hinweis: Um mit PGP eine vom Dokument abgelöste Unterschrift zu erzeugen, werden die Parameter "-sb" verwendet. Bei öffentlichen Nachrichten ist möglichst die Abtrennung der Unterschrift vorzunehmen, um auch LeserInnen ohne PGP das Lesen zu ermöglichen. Ist hingegen die Nachricht ohnehin PGP-verschlüsselt, kann die Unterschrift auch als Teil der Verschlüsselung transportiert werden.
Es ist nicht sinnvoll, in einer unterschriebenen Nachricht zugleich den Public Key der Absenderin zu versenden, da bei einer Fälschung der Unterschrift unterwegs auch der Public Key gefälscht werden kann.
Historie: D: [D3.1P]/[D3.1M]
Siehe auch: *SIGNED*, *Verschlüsselung*, Weiterleiten
Kennung: POST +-----------------+ | Pflicht | Kurzbeschreibung: Postanschrift |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: POST: <Postanschrift>
Funktion: Es gibt nicht nur das Netz... Die Absenderin kann ihre postalische Adresse in der POST-Headerinformation unterbringen. Die Zeilen einer Postanschrift werden dabei nebeneinander geschrieben, durch Semikola getrennt.
Beispiel:
POST: Wachtelstr. 6; 22305 Hamburg
Historie: D: [D3.0]
Siehe auch: ORG, TELEFON, Weiterleiten
Kennung: PRIO +-----------------+ | Pflicht | Kurzbeschreibung: Priorität |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: PRIO: <Prioritätskennzahl>
Funktion: Definiert sind bisher drei Dringlichkeitsstufen, die als Kennzahl hinter der PRIO-Kennung auftauchen können:
0 - Normales Routing 10 - Direktversand 20 - Eilversand (sofortige Auslieferung)
Ist der Header nicht vorhanden, wird die Priorität Null angenommen.
Hinweis: Direktversand bedeutet, daß bei bestehende Direktverbindung zwischen zwei Systemen eine mit PRIO: 10 versehene Nachricht direkt ausgetauscht wird, auch wenn sie nach einer Routingtabelle einen anderen Weg nehmen würde. Beispiel: Die Systeme A und B haben eine Verbindung zum gemeinsamen Domainserver S und auch eine Direktverbindung untereinander. Normalerweise würden private Nachrichten von A nach B nicht über die Direktverbindung sondern über den (zumeist schnelleren, weil aus frequenteren Verbindungen bestehenden) Umweg über S geschickt. PRIO: 10 würde bewirken, daß die Nachricht während der nächsten Direktverbindung direkt von A an B zugestellt wird.
Eilversand ist z.B. bei Einsatz der ZConnect-Onlinephase, die den Kontakt zwischen sich unbekannten Systemen definiert, möglich. Eine mit PRIO: 20 versehene Nachricht kann vom routenden System durch einen direkten Anruf beim Zielsystem zugestellt werden, sofern die Rufnummer ihm bekannt ist.
Prioritäten sind grundsätzlich, wegen der möglicherweise verursachten Kosten oder nicht gegebener Direktverbindungen, als Wunsch zu verstehen, nicht als Vorschrift. Bei anderer Interpretation muß eine ERR-Nachricht bei nicht beachteter PRIO-Information erzeugt werden.
PRIO ist insgesamt auch für öffentliche Nachrichten sinnvoll verwendbar.
Historie: D: [D3.0] M: [D3.1M]
Siehe auch: ERR, Weiterleiten
Kennung: PUBLIC-KEY +- - - - - - - - -+ | Pflicht | Kurzbeschreibung: PGP Public Key |>>Optional | +- - - - - - - - -+ |>>Nur einmal | VERALTET Auch mehrfach | Stabil | +- - - - - - - - -+ |**Nur PM | +- - - - - - - - -+
Syntax: PUBLIC-KEY: <PGP Public Key in Base64 Notation>
Funktion/Hinweis: Keine mehr. Durch das durchgängige # ZConnect-PGP-Konzept ist diese Headerkennung # eigentlich nicht mehr zu verwenden. Die # Dokumentation versäumt diesen Hinweis, aber auch # [D3.1Z] erwähnt diese Headerinformation nicht mehr.
Historie: D: [D3.1P] A: [D3.1Z]
Siehe auch: *PGP-PUBLIC-KEY*, Verschlüsselung
Kennung: ROT +-----------------+ |>>Pflicht | Kurzbeschreibung: Routepfad | Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: ROT: [<Routeweg>]
Funktion: Im Routeweg tragen sich alle das ZConnect-Datenformat unterstützende Systeme, über die die Nachricht geroutet wurde, im Moment des Empfangs ein. Der Eintrag in den Routestring erfolgt inklusive Domainangabe (falls keine bekannt ist, dann "zer.sub.org"), wobei das gerade empfangende System seinen Namen an den Anfang des Routewegs schreibt und ein Ausrufungszeichen als Trenner verwendet. Kam eine Mail also mit der Headerinformation
ROT: bingo.comlink.de
beim System CL-HH an, so fügt letzteres seinen Namen ein, und
ROT: cl-hh.comlink.de!bingo.comlink.de
entsteht.
Points müssen bei ausgehenden Nachrichten einen leeren Routeweg einsetzen (sie empfangen ja nicht). Mailboxsoftware sollte die Einhaltung dieser Regel prüfen und muß sich als erstes System in den Routeweg eintragen.
Steht ein System bereits im Routestring, darf die Nachricht (öffentlich oder privat) nicht nochmals an dieses weitergereicht werden. Handelt es sich bei der aufgrund eines solchen Rekursionschecks aufgefallenen Nachricht um eine private Nachricht, sollte der Header den SystembetreiberInnen vorgelegt werden (Datenschutz: nicht die komplette Nachricht!), damit diese ein evtl. vorliegendes Pingpongrouting abstellen können.
Hinweis: Es kann bei Änderungen von Routwegen wegen neuer Beziehungen von Systemen untereinander vorkommen, daß zufällig und unschädlich ein System mehrfach in den Routestring gerät. Auch gibt es schonmal durch Konfigurationsfehler, z.B. von Mailinglistenmechanismen, doppelte Einträge in der ROT-Information. Implementationen sollten daher selber diesen Fehler vermeiden, ihn von anderen Implementationen jedoch erwarten. Sinnvoll ist hier z.B. eine Rekursionsdetektion erst bei dreifachem Eintrag.
Die Pseudodomain "zer.sub.org" ist ein Hilfskonstrukt aus der Anfangszeit des Domainroutings im /Z-Netz. "zer.sub.org" war eine auf dem A-LINK-H-System verwaltete Domain, die alten Z3.8-Systemen die Teilnahme am Domainrouting ermöglichen sollte. Voraussetzung war eine geringe monatliche Zahlung und der Verzicht auf internationalen Datenverkehr. Da diese Bedingungen von vielen Systemen mißachtet wurden, ist die "zer.sub.org"-Regelung heute ohne jede protokollstrategische Bedeutung.
Historie: D: [D3.0] M: [B5]
Siehe auch: Points, Rekursionscheck
Kennung: SIGNED +-----------------+ | Pflicht | Kurzbeschreibung: Nachricht wurde unterschrieben |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: SIGNED: [PGP]
Funktion: Wenn die Nachricht mit PGP unterschrieben wurde, ist diese Headerinformation gesetzt (andere Parameter als PGP gibt es derzeit nicht)
Wenn die Nachricht nicht zusätzlich PGP-verschlüsselt ist (CRYPT: PGP nicht gesetzt), ist die zugehörige Unterschrift in der PGP-SIG-Information zu suchen, andernfalls kann sie bei PGP Teil der verschlüsselten Nachricht sein.
Hinweis: Ein SIGNED: ohne Parameter ist nicht definiert aber auch nicht verboten. Tauchte eine solche Information auf, würde sie besagen, daß die Nachricht nicht unterschrieben wurde und somit überflüssig sein.
# CrossPoint ab Version 3.1 verwendet # SIGNED: PGPCLEAR, wenn die Nachricht unterschrieben # ist, diese Unterschrift aber nicht mittels PGP-SIG # sondern als Klartext im Nachrichtenbody # transportiert wird. Dies ist eigentlich eine # unnötige Abweichung vom Standard, da SIGNED: PGP im # Zusammenhang mit einem fehlenden PGP-SIG nichts # anderes als SIGNED: PGPCLEAR aussagt.
Historie: D: [D3.1P]/[D3.1M]
Siehe auch: CRYPT: PGP, PGP-SIG, Verschlüsselung, Weiterleiten
Kennung: SPERRFRIST +-----------------+ | Pflicht | Kurzbeschreibung: Frühester Zeitpunkt der Anzeige |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: SPERRFRIST: <Datumsangabe>
Funktion: Wie bei einer Pressemitteilung kann auch bei Nachrichten eine Sperrfrist gesetzt werden, also ein Datum, vor dem die Veröffentlichung nicht gestattet ist. Für ZConnect-Programme heißt das, daß AnwenderInnen die so gekennzeichnete Nachricht erst zum angegebenen Zeitpunkt angezeigt bekommen dürfen.
Hinweis: Richtiger wäre es, eine mit Sperrfrist versehene Nachricht überhaupt erst zum spezifizierten Zeitpunkt an Endsysteme zuzustellen. Die Logik einer Sperrfrist bei Pressemitteilung wäre erst dann richtig und sinnvoll abgebildet, wenn SPERRFRIST für private Nachrichten lediglich ein Hinweis für die Empfängerin wäre und für öffentliche Nachrichten die Zustellung an Points bzw. die Anzeige online erst ab dem angegebenen Veröffentlichungsdatum erfolgen würde.
ZConnect definiert all dies nicht. Wie beschrieben verbietet es die Anzeige, nicht aber die Zustellung vor einem bestimmten Zeitpunkt. Für den Pointbetrieb ist dies unhaltbar, da der Anwenderin nicht zugemutet werden kann, Daten auf dem eigenen Massenspeicher zu halten, von deren Existenz sie nicht einmal informiert ist (eine sich strikt an ZConnect haltende Implementierung sollte sich mit dieser Argumentation auseinandersetzen und evtl. zumindest den Header der gesperrten Nachricht zusammen mit dem Sperrvermerk anzeigen und die Löschung zulassen).
Historie: D: [D3.0]
Siehe auch: Datumsangaben, Points, Weiterleiten
Kennung: STAT +-----------------+ | Pflicht | Kurzbeschreibung: Status der Nachricht |>>Optional | +-----------------+ |**Nur einmal | |**Auch mehrfach | | Stabil | +-----------------+ |**Nur PM | +-----------------+
Syntax: STAT: AUTO | CTL | DES | EB | NOCIPHER | NOKOP | PGP | TRACE
Funktion: Die derzeit acht Stati haben unterschiedliche Semantiken. Teilweise charakterisieren sie eine Nachricht (z.B. CTL für Control-Nachricht), teilweise modifizieren sie deren Behandlung in bestimmten Fällen (z.B. NOKOP, welches das Verhalten von ZConnect-Software bei Crossposting ändert), teilweise haben sie Konsequenzen für eine etwaige Antwort (z.B. NOCIPHER legt für eine Nachricht und die Antwort darauf fest, daß diese nicht in irgendeiner Form verschlüsselt sein sollen) und teilweise beschreiben sie (redundant, vgl. CRYPT), daß die Nachricht verschlüsselt ist (z.B. DES weist auf das Verschlüsselungsverfahren "Data Encryption Standard" hin).
STAT darf beliebig oft vorkommen, die unterschiedlichen Parameter von STAT dürfen aber je nur einmal pro Header vorkommen (z.B. nicht zweimal die Information STAT: NOCIPHER). Sie sind unabhängig von Groß-/Kleinschreibung auszuwerten.
Hinweis: Die möglichen Stati sind auf den folgenden Seiten einzeln erläutert, da eine gemeinsame Darstellung aufgrund der grundsätzlich unterschiedlichen Typen von STAT-Headerinformationen nicht sinnvoll möglich ist. Z.B. sind manche Stati nur bei PMs, andere auch bei öffentlichen Nachrichten einsetzbar.
# Gemäß Dokumentation darf STAT beliebig oft # eingesetzt werden. Eine ZConnect-konforme Software # muß damit rechnen, daß DES und PGP gleichzeitig # gesetzt sind, ohne daß die Reihenfolge des Einsatzes # der Verschlüsselungsverfahren erkennbar ist. Aus # diesem Grunde sind STAT: DES und STAT: PGP # angesichts der Existenz der CRYPT-Information (die # nur einmal vorkommen darf) auf keinen Fall mehr zu # verwenden, auch wenn sie hier aufgezählt werden # müssen, weil sie nie offiziell zurückgezogen wurden.
Historie: D/M: siehe bei Einzelerläuterungen
Siehe auch: EB, ERSETZT, CONTROL, CRYPT, KOP, STAT: AUTO, STAT: CTL, STAT: DES, STAT: EB, STAT: NOCIPHER, STAT: NOKOP, STAT: PGP, STAT: TRACE, Verschlüsselung, Weiterleiten
Kennung: STAT: AUTO +-----------------+ | Pflicht | Kurzbeschreibung: Regelmäßige Nachricht |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: STAT: AUTO
Funktion: Die so gekennzeichnet Nachricht ist eine regelmäßig aktualisierte und ins Netz geschickte Information. Identifiziert wird sie am Parameter der FILE- oder # der EMP-Kennung (keine Details in der Dokumentation # enthalten). Die BET-Information darf nicht ausgewertet werden.
Kommt eine Nachricht mit STAT: AUTO und einer bestimmten FILE- oder EMP-Kennung an, so kann darauf z.B. mit der Umleitung in ein lokales Brett oder ein Verzeichnis reagiert werden. Die Dokumentation sieht vor, daß hierbei ggf. eine ERSETZT-Kennung eingefügt wird.
Historie: D: [D3.1P]
Siehe auch: STAT
Kennung: STAT: CTL +-----------------+ | Pflicht | Kurzbeschreibung: Steuernachricht |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: STAT: CTL
Funktion: Die so gekennzeichnete Nachricht ist eine Steuernachricht. Diese darf, auch wenn sie defekt ist, niemals an die Absenderin zurückgeschickt werden.
Hinweis: STAT: CTL kommt in TRACE-Antworten zum Einsatz. Da solche auch mit STAT: TRACE versehen sind, ist STAT: CTL hier redundant.
Darüberhinaus wird STAT: CTL derzeit nur für Nachrichten mit CONTROL-Headerinformation eingesetzt.
# Für die Zukunft sind weitere Anwendungen denkbar. # Z.B. ließe sich die Programmierung von ZConnect # orthogonalisieren, wenn alle Nachrichten, die # Steuercharakter haben und nicht zurückgeschickt # werden dürfen, eine STAT: CTL Headerinformation # erhalten würden (also z.B. auch eine Nachricht mit # ERR-Kennung). Dann wäre mit einer einzigen Prüfung # das Verhalten der Software steuerbar.
Historie: D: [D3.0]
Siehe auch: CONTROL, STAT, TRACE
Kennung: STAT: DES +- - - - - - - - -+ | Pflicht | Kurzbeschreibung: Nachricht ist mit DES verschlüsselt |>>Optional | +- - - - - - - - -+ |>>Nur einmal | VERALTET Auch mehrfach | Stabil | +- - - - - - - - -+ |>>Nur PM | +- - - - - - - - -+
Syntax: STAT: DES
Funktion/Hinweis: Zeigt an, daß die Nachricht mit dem DES (Data # Encryption Standard) verschlüsselt wurde. Diese # Headerinformation ist durch die aktuellere # CRYPT-Kennung ersetzt. [D3.1Z] unterstützt diese # Auffassung, indem sie STAT: DES nicht mehr erwähnt.
Historie: D: [D3.0] A: [D3.1Z]
Siehe auch: *CRYPT*, STAT, Verschlüsselung
Kennung: STAT: EB +-----------------+ | Pflicht | Kurzbeschreibung: Nachricht ist eine Empfangsbestätigung |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ |>>Nur PM | +-----------------+
Syntax: STAT: EB
Funktion: Diesen Status führt eine automatisch generierte Empfangsbestätigung, die auf dem Weg zur Bestätigungsempfängerin ist.
Historie: D: [D3.0]
Siehe auch: *EB*, STAT
Kennung: STAT: NOCIPHER +-----------------+ | Pflicht | Kurzbeschreibung: Antworten auf unverschlüsselte Nachricht |>>Optional | dürfen nicht verschlüsselt werden +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ |>>Nur PM | +-----------------+
Syntax: STAT: NOCIPHER
Funktion: STAT: NOCIPHER hat eine doppelte Bedeutung: Zum einen sagt diese Headerinformation aus, daß die Nachricht, deren Header sie enthält, nicht verschlüsselt ist. Zum anderen, und das ist die im Vordergrund stehende Bedeutung, wird für Antworten jede Verschlüsselung untersagt.
Hinweis: Es ist zwar ein guter Gedanke, KommunikationspartnerInnen formalisiert den Wunsch mitteilen zu können, daß die Antwort unverschlüsselt sein sollte. Dies kann der antwortenden Person aber unmöglich vorgeschrieben werden. ProgrammiererInnen von BenutzerInnenschnittstellen sollten sich hierüber Gedanken machen.
Historie: D: [D3.1P]/[D3.1M]
Siehe auch: STAT, Points, Verschlüsselung
Kennung: STAT: NOKOP +-----------------+ | Pflicht | Kurzbeschreibung: Private Empfängerinnen der Nachricht |>>Optional | dürfen nirgendwo in KOPs +-----------------+ gewandelt werden |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: STAT: NOKOP
Funktion: STAT: NOKOP wirkt auf die Umwandlung von EMPs zu KOPs, z.B. bei der Auftrennung privater Crosspostings. Ist STAT: NOKOP gesetzt, dürfen private EMPs nicht in KOPs gewandelt werden. Auf öffentliche KOPs hat dieses Flag keinen Einfluß.
Hinweis: Die Auswirkung von STAT: NOKOP ist bei KOP detailliert erläutert.
Historie: D: [D3.1M]
Siehe auch: KOP, STAT
Kennung: STAT: PGP +- - - - - - - - -+ | Pflicht | Kurzbeschreibung: Nachricht ist mit PGP verschlüsselt |>>Optional | +- - - - - - - - -+ |>>Nur einmal | VERALTET Auch mehrfach | Stabil | +- - - - - - - - -+ |>>Nur PM | +- - - - - - - - -+
Syntax: STAT: PGP
Funktion/Hinweis: Dieser Status ist durch das aktuelle PGP-Konzept # nicht mehr aktuell. CRYPT: PGP tritt an seine # Stelle. [D3.1Z] bestätigt diese Auffassung.
Historie: D: [D3.0] A: [D3.1Z]
Siehe auch: *CRYPT*, STAT, Verschlüsselung
Kennung: STAT: TRACE +-----------------+ | Pflicht | Kurzbeschreibung: Nachricht ist eine Antwort auf eine |>>Optional | TRACE-Kennung +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ |>>Nur PM | +-----------------+
Syntax: STAT: TRACE
Funktion: STAT: TRACE kennzeichnet eine TRACE-Antwortmail. Systeme auf dem Routeweg einer Nachricht erzeugen als Antwort auf die TRACE-Anforderung Nachrichten eines wie folgt definierten Formats:
STAT: TRACE gesetzt STAT: CTL gesetzt BEZ: verweist auf Message-ID der auslösenden Nachricht mit TRACE-Headerkennung BET: enthält den Text "Trace-Info " und danach die Message-ID der auslösenden Nachricht Nachrichtenkörper enthält eine parsebare Liste der Systeme und der Empfängerinnen, an die die Nachricht geroutet wurde
Das Format der Liste sieht pro System, an das geroutet wird, einen Abschnitt vor. Innerhalb dieses Abschnitts ist dann für jede Empfängerin eine Zeile einzutragen. Systemname wie Empfängerinnennamen müssen durch spitze Klammern ('<', '>') geklammert sein. Abschnitte beginnen mit einer Zeile, an deren erster Stelle ein Non-Whitespace steht. Zeilen mit Empfängerinneneinträgen hingegen beginnen mit einem Whitespace (Leerzeichen oder Tabulator). Beispiel für eine korrekte Nachricht mit STAT: Headerinformation:
EMP: SYSOPTEAM@bingo.comlink.de ABS: Zerberus@cl-hh.comlink.de BEZ: 12345678@sysopteam.bingo.comlink.de BET: Trace-Info 12345678@sysopteam.bingo.comlink.de MID: 42@cl-hh.comlink.de STAT: TRACE STAT: CTL EDA: 19950401000000W+0
An System <nadeshda.gun.de> gingen die folgenden EMPs: <S.Musterfrau@nadeshda.gun.de> An System <schwarzwald.gun.de> gingen die folgenden EMPs: <Weissbart@schwarzer.wald.de> <K.Mustermann@schwarzwald.gun.de> <Frau_Holle@weisswald.pistole.us>
Historie: D: [D3.1P]
Siehe auch: STAT, STAT: CTL, TRACE
Kennung: STICHWORT +-----------------+ | Pflicht | Kurzbeschreibung: Stichwort zum Nachrichteninhalt |>>Optional | +-----------------+ | Nur einmal | |>>Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: STICHWORT: <Genau ein Stichwort>
Funktion: Die Absenderin kann pro STICHWORT-Kennung ein Stichwort zum Nachrichteninhalt angeben. Die beliebig vielen Stichworte können dann z.B. bei Suchfunktionen ausgewertet werden.
Hinweis: [D3.1Z] definiert, daß Groß-/Kleinschreibung nicht # ausgewertet werden darf, und nur die Zeichen von A-Z # zulässig sind.
Definiert mensch das Leerzeichen als zulässiges Zeichen im Stichwort selbst (und abgesehen von [D3.1Z] widerspricht dem derzeit nichts), wäre eine Stichwortzeile mit mehreren Begriffen legitim. Mittlerweile gibt es aber keine bekannte Software mehr, die sich diese Interpretation leistet. Aufgrund des Einsatzes älterer Software (z.B. CrossPoint 3.0x) ist jedoch mit solchen Abweichungen vom Standard zu rechnen.
Historie: D: [D3.1P] A: [D3.1Z]
Siehe auch: ZUSAMMENFASSUNG
Kennung: TELEFON +-----------------+ | Pflicht | Kurzbeschreibung: Telefonnummer(n) der Absenderin |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: TELEFON: <Telefonnummer>[;<Telefonnummer>]*
Funktion: Die Absenderin kann in dieser Headerinformation ihre Telefonnummer(n) in internationaler Schreibweise. Diese Notation folgt folgender Syntax:
[V|F|B]++<Ländervorwahl ohne führende Nullen>-<Städtevorwahl>-<Durchwahl>[Q]
'V' steht dabei für "Voice", 'F' für "Fax" und 'B' für "Box". Mindestens eine der Kennungen ist anzugeben, es können aber auch alle gleichzeitig (in beliebiger Reihenfolge) angegeben werden. Ist an der Leitung ein Anrufbeantworter angeschlossen, kann dies durch das optional nachgestellte 'Q' symbolisiert werden.
Sollen mehrere Nummern angegeben werden, so werden diese jeweils durch ein Semikolon getrennt. Statt des Semikolons ist auch ein Leerzeichen gestattet.
Beispiel:
TELEFON: VF+49-40-6910419Q B+49-40-6912028
Hinweis: Es sollten als Trennzeichen zwischen den Rufnummern # beliebige Whitespaces erwartet werden. Für neue # Dienste, wie z.B. SCall der Deutschen Telekom, ist # zwar nicht per Wahl eine Kennung vereinbart worde, # für solche und ähnliche Dienste wurde aber das "P" # für "Pager" vorgeschlagen und mangels Protesten für # eingeführt erklärt ([B6]).
Nur sehr wenige Programme testen die ZConnect-Konformität der Parameter von TELEFON. Dies sollte für ProgrammiererInnen Anlaß sein, es korrekter zu handhaben, umgekehrt aber nicht von korrekten TELEFON-Headerinformationen auszugehen.
Historie: D: [D3.0]
Siehe auch: ORGANISATION, POST, Weiterleiten
Kennung: TRACE +-----------------+ | Pflicht | Kurzbeschreibung: Routinganalyse |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: TRACE: <ZConnect-Adresse>
Funktion: Durch die Angabe der TRACE-Headerinformation kann die Absenderin jedes ZConnect-System auf dem Routeweg auffordern, eine Information über dessen Verfahren mit der Nachricht an die angegebene Adresse zu senden.
Das Format der Antwort der Systeme auf dem Routeweg ist vorgeschrieben und bei STAT: TRACE beschrieben.
Hinweis: Es ist nicht vorgesehen, daß TRACE ohne Argument angegeben wird. Mensch könnte sich aber gut vorstellen, daß in einem solchen Fall einfach die Adresse der Absenderin genommen werden kann, aktuelle Implementationen handhaben dies aber definitiv nicht so{12}.
Die Dokumentation weist darauf hin, daß der Header sparsam eingesetzt werden und auch nicht von jeder Benutzerschnittstelle aus erzeugt werden können soll.
Historie: D: [D3.1P] M: [D3.1Z] (Klarstellung)
Siehe auch: *STAT: TRACE*, Adressen, Weiterleiten
Kennung: TYP +-----------------+ | Pflicht | Kurzbeschreibung: Typ des Nachrichtenkörpers |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ |**Nur PM | +-----------------+
Syntax: TYP: <Typkennung>
Funktion: Die TYP-Information gibt Auskunft über die Beschaffenheit des Nachrichtenkörpers. Definierte Bedeutung haben die Kennungen "BIN" (für Binärnachricht), "TRANSPARENT" (für Nachrichtenkörper, in denen keine Umlaute gewandelt werden dürfen), "MIME" (für Nachrichten, die nach dem MIME-Standard aufgebaut sind - bitte nicht benutzen, Begründung siehe bei Headerinformation MIME) und "RFC1563" (siehe vorige Klammerbemerkung). Darüberhinaus sind aber beliebige weitere Kennungen erlaubt (z.B. "TIFF", "GIF", "WAV", "ZIP").
Ist die angegebene Kennung dem ausgebenden Programm unbekannt, wird die Nachricht wie eine normale Binärnachricht behandelt. Ist keine TYP-Information angegeben, handelt es sich um eine Textnachricht.
Hinweis: Aktuell wird eine Einführung der MIME-Kodierung diskutiert. An dieser Stelle wird sich also für ZConnect > 3.1 eine größere Änderung ergeben. Es ist in diesem Kontext u.U. damit zu rechnen, daß manche TYP-Informationen nur in PMs erlaubt sind.
# Die TYP-Information sagt gleichzeitig etwa über den # Nachrichten- und den Nachrichtenkörpertyp aus. Genau # diese Verquickung ist dafür verantwortlich, daß für # textuelle Nachrichtentypen, deren Körper aber z.B. # Steuerinformationen für "enriched Text" (vgl. # [RFC1563]) enthalten, als Binärnachrichten # gehandhabt werden müssen. Hier wäre eine # syntaktische Trennung, die die semantische # nachvollzieht, sinnvoll.
Historie: D: [D3.0]
Siehe auch: CHARSET, *MIME*, Kapitel "MIME", Zeichensätze
Kennung: VER +-----------------+ | Pflicht | Kurzbeschreibung: Vertreterinlokalisierung |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ |>>Nur PM | +-----------------+
Syntax: VER: <ZConnect-Adresse>
Funktion: Insbesondere private Nachrichten werden häufig per Vertreterin an den Point weitergeleitet. Dies kann unter Umständen auf einem ganz anderen System geschehen als jenem, an dem der Point angeschlossen ist. Verbreitet ist z.B. der "Nachsendeauftrag", wenn ein Point das System wechselt.
Die VER-Information nimmt dann die Adresse auf, an die die Zustellung ursprünglich erfolgte.
Hinweis: [D3.1Z] definiert VER abweichend als auch mehrfach # möglich. Zur Begründung wird richtigerweise # angemerkt, daß eine Weiterleitung durch # Vertreterinnen ebenfalls mehrfach erfolgen kann.
Historie: D: [D3.1P] A: [D3.1Z]
Siehe auch: Adressen, Weiterleiten
Kennung: VIA +-----------------+ | Pflicht | Kurzbeschreibung: Bestimmung von Routeweg und -zeit |**Optional | +-----------------+ | Nur einmal | |>>Auch mehrfach | |>>Stabil | +-----------------+ |>>Nur PM | +-----------------+
Syntax: VIA: <Routinginformation>
Funktion: VIA ermöglicht im Gegensatz zu ROT, die Stationen auf dem Routeweg einer Nachricht mit einem Zeitstempel zu versehen, was dem Aufspüren von Datensenken oder Verzögerungsgründen dienen soll..
Die case-insensitive Routinginformation besteht aus der Systemzeit im ZConnect-Format (wie bei EDA), einem anschließenden '@' und der Systemadresse. Z.B. also
VIA: 19950401000000W+0@bingo.comlink.de
Die VIA-Information muß auf jedem ZConnect-System für private Nachrichten erzeugt werden. Aus Gründen der Abwärtskompatiblität wurde VIA jedoch nicht als Pflichtinformation eingeführt. Es ist in ZConnect nicht vorgesehen, daß neue Pflichtinformationen eingeführt werden.
Die erste VIA-Information wird vom ersten ZConnect 3.1 kompatiblen System/Point auf dem Routeweg eingefügt. Bei dieser ersten VIA-Information im Header ist die Systemzeit fest auf 0:00 Uhr des jeweiligen Tages zu setzen (Datenschutz).
Hinweis: Die obenstehende Funktionsweise ist eine # Interpretation, die durch eine gänzlich unklare # Beschreibung in der Dokumenation notwendig ist. Aus # dem Originaltext wird nicht klar, welche Funktion # und welche Funktionsweise VIA hat. Die # VIA-Information wurde auf dem /Z-NETZ-Treffen 1994 # in Hamburg beschlossen, Nachfragen bei den daran # Beteiligten hinsichtlich der Intention von VIA # ergaben eindeutig oben dargestellte Sichtweise [B7].
Historie: D: [B8] M: [B7] (Klarstellung)
Siehe auch: ROT, Datenschutz, Weiterleiten
Kennung: WAB +-----------------+ | Pflicht | Kurzbeschreibung: Adresse der Weiterleitenden |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: WAB: <ZConnect-Adresse>
Funktion: Beim manuellen, passiven Weiterleiten wird der ABS nicht verändert und die Weiterleitende in die WAB-Headerinformation eingetragen. Beim aktiven Weiterleiten wird eine vorhandene WAB-Information hingegen gelöscht.
Der WAB-Parameter kann auch mit einem Realnamen versehen sein.
Hinweis: Bei der Wandlung von ZConnect- nach Z3.8-Datenformat wird laut älterer Dokumentation (die Z3.8-Regelungen sind mit [D3.1M] aus ZConnect ausgegliedert worden) die Weiterleitabsenderin der ZConnect-Nachricht als Absenderin der Z3.8-Nachricht eingesetzt. Da noch immer an wenigen Stellen im Netz tatsächlich Gatewaysoftware die strikt verbotene Wandlung ZConnect->Z3.8->ZConnect vornimmt, kann dies sehr verwirrend wirken und sollte von GatewayprogrammiererInnen überdacht werden.
Die bei ZConnect getroffene Unterscheidung zwischen Point und System hat u.a. die Auswirkung, daß die meiste Systemsoftware die Absenderinnenadresse der beim System angeschlossenen Points prüft und ggf. ersetzt. Wenn also der Point A@System als B@System schreibt, ersetzt die Systemsoftware ungefragt B@System durch A@System. Dies soll Mißbrauch, insbesondere das Schreiben unter falscher Adresse verhindern.
Das passive Weiterleiten definiert, daß hierbei die ABS-Information und beinahe alle anderen Headerinformationen ebenfalls erhalten bleiben, während eine WAB-Information hinzugefügt wird. Wenn A@System also als B@System schreibt, dann ist zu prüfen, ob nicht WAB: A@System angegeben und die fremde ABS-Angabe somit legitim ist. Einige Systemprogramme machen dies zum aktuellen Zeitpunkt leider falsch, teilweise wird sogar bei der Ersetzung der Realname der Absenderin mit der Adresse der Weiterleiterin gemischt, weil angesichts geduldeter unterschiedlicher Realnamen für dieselbe Mailadresse dieser nicht mitersetzt wird.
Historie: D: [D3.0]/[D3.1P] M: [D3.1M]
Siehe auch: ABS, OAB, Adressen, Weiterleiten
Kennung: ZUSAMMENFASSUNG +-----------------+ | Pflicht | Kurzbeschreibung: Einzeilige Nachrichtenkurzfassung |>>Optional | +-----------------+ |>>Nur einmal | | Auch mehrfach | | Stabil | +-----------------+ | Nur PM | +-----------------+
Syntax: ZUSAMMENFASSUNG: <Einzeiliger Text>
Funktion: Die Absenderin kann ihre Nachricht in einer Zeile zusammenfassen. Pointprogramme können dies z.B. in einer Übersichtsdarstellung oder für Suchoperationen nutzen.
Hinweis: [D3.1Z] verweist auf die Gefahr, daß durch eine umfangreiche Zusammenfassung die Grenzen für Nachrichtenlängen oder deren Abrechnung umgangen werden könnten. Vorgeschlagen wird daher eine Größenbegrenzung auf 10% der Gesamtnachrichtenlänge, oberhalb welcher die bearbeitende Software das Routen ablehnen kann. Jede beliebige frei definierte Headerinformation birgt jedoch die Gefahr des Mißbrauchs des Headers zum Transport von Inhaltsdaten - eine Implementation, die solchen Mißbrauch ausschließen soll, muß das Problem also an grundsätzlicherer Stelle lösen, z.B. durch fest vorgegebene Maximalgrößen oder -verhältnisse von Header und Nachrichtenkörper.
Historie: D: [D3.1P]
Siehe auch: STICHWORT, Frei definierbare Headerzeilen
3.3.2.2. Frei definierbare Headerzeilen
Eine offizielle ZConnect-Headerkennung wird niemals mit "X-" beginnen. Dies ist der für lokale Erweiterungen reservierte Kennungspräfix, den jede Software beliebig erzeugen und auch verschicken darf. Manche Programme übertragen hierin Informationen, die auf der Gegenseite ausgewertet werden, wenn dort mit dem gleichen Programm gearbeitet wird (z.B. X-REPLY-LEVEL bei einigen Pointprogrammen für die Anzeige der Kommentarbaumtiefe).
Frei definierte Headerzeilen können natürlich auch zum Transport von Daten mißbraucht werden, die normalerweise im Nachrichtenkörper befördert und somit z.B. kostenpflichtig sein würden. Soll diese Problematik gelöst werden, sind z.B. feste maximale Headergrößen oder Größenverhältnisse Header/Nachrichtenkörper einstellbar zu machen. Dieses Problem kann nur durch lokale Einstellungsmöglichkeiten gelöst werden, darf dabei aber keinesfalls so auf die Implementierung abgebildet werden, daß die nicht vorhandene Größenbeschränkung, wie sie der ZConnect-Standard vorschreibt, ausgehebelt wird.
Es ist zu beachten, daß fatalerweise einige, definitiv fehlerhafte aber im Einsatz befindliche Gateways den Transport von Headerzeilen mit "X-"-Präfix nicht garantieren.
3.3.2.3. Headerzeilen aus anderen Datenformaten
3.3.2.3.1. UUCP
Headerkennungen, die mit dem Präfix "U-" versehen sind, sind sog. "UUCP-Header". Dies beschreibt Headerzeilen nach RFC822/1036 und ggf. deren Nachfolgerinnen. In diesen Headerzeilen können Informationen aus dem Usenet unbeschadet durch ZConnectsysteme transportiert werden. Sie sollten aber nur für Kennungen eingesetzt werden, zu denen es bei ZConnect wirklich keine Entsprechung gibt. Beispielsweise sollte "Date: Thu, 12 Jan 1987 PDST" nicht als "U-DATE: ..." transportiert, sondern nach EDA gewandelt werden (auch wenn dadurch vielleicht die ursprüngliche Notation des Datums nicht wiederherstellbar ist - die transportierte Information ist es auf jeden Fall). "Lines: 256" hingegen würde als "U-LINES: 256" sinnvoll transportiert werden können.
3.3.2.3.2. Fido
Mit dem Präfix "F-" beginnen Headerkennungen, die direkt aus dem FTS0001-Format oder ggf. dessen Nachfolgern und anderen Formaten aus der Fido-FTS/FSC-Welt übernommen wurden. Es ist an dieser Stelle nicht sinnvoll, die Erfordernisse von Fido-ZConnect-Gateways zu beschreiben. Zu beachten ist aber, daß es die aus dem Fido kommende "Kludgeline", die in [D3.1M] als "^A" (ASCII 1) beschreibt, in ein einfaches "F-" ohne dahinter stehenden weiteren Buchstaben übersetzt wird.
3.3.2.3.3. Z3.8
Ab [D3.1M] werden Nachrichten im Z3.8 Format als ZConnect-fremd betrachtet und somit nicht mehr im Rahmen von ZConnect beschrieben. Headerzeilen aus Z3.8 erhalten den Präfix "ZNETZ-", mehr wird hierzu nicht mehr ausgesagt.
3.3.2.4. Headerzeilenvorhersage
Die PGP-Integration in ZConnect schreibt vor, daß Headerinformationen, die durch Verschlüsselungsprogramme beeinflußt werden (z.B. CHARSET, welcher nicht mehr gilt, wenn der Nachrichtentext z.B. durch PGP in das Base64-Alphabet übersetzt wird), mit einem vorangestellten CRYPT-CONTENT- weitertransportiert werden müssen. Wird also eine neue Headerinformation XYZ eingeführt, deren Informationsgehalt nach einer Verschlüsselung nicht mehr gegeben oder falsch und nicht rekonstruierbar (wie etwa LEN) ist, so gilt automatisch auch CRYPT-CONTENT-XYZ als eingeführt.
Es wird voraussichtlich bald über eine komplette Einbindung des MIME-Standards in ZConnect abgestimmt werden. Hier wird eine Flut von neuen Headerinformationen nötig sein. Die Diskussion hierzu ist in /T-NETZ/ZCONNECT/DISKURS mitzuverfolgen. Die einschlägigen RFCs lauten 1521, 1522 und 1563.
3.4. Zusammenhänge
Dieser Abschnitt beschreibt technische Verfahren und Besonderheiten ZConnects. Neben Datenschutzaspekten werden Rekursionscheck, Weiterleitungsmechanismen, Probleme der Gemischtadressierung, Veschlüsselung und die Besonderheiten von Points bei ZConnect angeprochen.
3.4.1. Informationelle Selbstbestimmung und Datenschutz
Der Datenschutzgedanke basiert auf dem Grundrecht zur informationellen Selbstbestimmung. Bei der Betrachtung von ZConnect muß Datenschutz daher nicht nur von gesetzlichen Regelungen ausgehen (die aber notwendig sind, um SystembetreiberInnen die Möglichkeit zu geben, im Gegensatz z.B. zu Fido-SystembetreiberInnen{13}, datenschutzrechtskonform zu arbeiten), sondern schon die ProgrammiererInnen auf sensiblen Umgang mit der Privatsphäre der NutzerInnen verpflichten.
Hier spielt ZConnect eine Vorreiterrolle, die im Gremium nicht unumstritten ist (zuletzt bei der Diskussion um die Einführung der VIA-Headerinformation, s.u.). Es handelt sich jedoch um ein handfestes Argument für den Einsatz des ZConnect-Protokolls nicht nur bei privaten Vernetzungsprojekten. Daher müssen die bereits vorhandenen Regeln strikt eingehalten (und daher hier nochmal # zusammengefaßt), und es sollte die Übereinkunft getroffen werden, im # Zweifelsfall für die informationelle Selbstbestimmung der UserInnen # zu votieren.
3.4.1.1. Zeitangaben
Zeitangaben in Nachrichten erlauben ohne technische Notwendigkeit die Erstellung eines BenutzerInnenprofils hinsichtlich Netzanrufverhalten u.ä.. Die mit Zeiangaben versehenen Headerinformationen ZConnects sind also Gegenstand besonderer Betrachtung.
3.4.1.1.1. EDA
Jede Nachricht im ZConnect-Datenformat ist mit einem Erstellungsdatum versehen. Dieses Datum sagt über die (z.T. überflüssige) technische Information hinaus etwas über die Gewohnheiten der Absenderin aus. Auf dem Routeweg kann ein Anwenderinnenprofil aufgrund der Erstellungsdaten von Nachrichten erstellt werden. Die Anwenderin kann dies durch Verschlüsselung nicht verhindern, auch wäre dies bei öffentlichen Nachrichten kein einsetzbares Mittel.
Grundsätzlich muß sich die Anwenderin bewußt sein, daß ein aus öffentlichen Nachrichten gewonnenes BenutzerInnenprofil nicht mit Datenschutzbestimmungen kollidiert. Umso wichtiger ist es, ihr alle Möglichkeiten in die Hand zu geben, vermeidbare Informationen (sofern sie denn vermieden werden sollen) zurückzuhalten. Dies geschieht im Zusammenhang mit dem Erstellungsdatum, indem optional der Uhrzeitanteil weggelassen wird (bei privaten wie bei öffentlichen Nachrichten); diese Detailinformation ist für den Transport nicht von Bedeutung, behindert also nicht die Funktionalität ZConnects.
3.4.1.1.2. VIA
Die VIA-Headerinformation erneuert das für EDA gelöste Problem: Sortiert das erste System auf dem Weg der Nachricht sofort nach dem Netcall ein, läßt dies bei Store- and Forward Netzen, für welche ZConnect eingesetzt wird, Rückschlüsse auf das Netcallverhalten der Anwenderin zu.
# Anders als bei EDA läßt sich diese Schwierigkeit nicht dadurch aus # dem Weg räumen, daß das erste System den Zeitanteil der # Datumsangabe fest auf 0 Uhr setzt, wie ZConnect dies vorsieht. Denn # zum einen liegt dies nicht im Einflußbereich der Absenderin (auch # der Verzicht auf Datenschutz gehört zur informationellen # Selbstbestimmung), zum anderen kann auch das zweite System - z.B. # in einem LAN - unmittelbar nach dem Netcall der Absenderin # einsortieren und die Schutzfunktion hinfällig machen.
# Eine Statusinformation STAT: NOVIA wäre hilfreich.
3.4.1.2. KOP
ZConnect kennt seit einiger Zeit das Flag STAT: NOKOP, welches das Umwandeln privater Empfängerinnen in die rein informativen KOP-Headerinformationen unterbindet. Bei öffentlichen Nachrichten bleibt dies aber ohne Wirkung. Es ist nicht zu vermeiden, daß veröffentlichte Informationen für die Öffentlichkeit auswertbar sind.
# Jedoch sollten die BenutzerInnen soweit wie möglich bei der # Entstehung öffentlicher Daten die Kontrolle haben, also auch # hierbei STAT: NOKOP mit entsprechenden Auswirkungen setzen können. # Dies bedürfte beim derzeitigen Stand jedoch einer Änderung durch # das Gremium.
3.4.1.3. Wechsel von privaten Nachrichten über Netzgrenzen hinweg
Soweit anhand der Zieladresse feststellbar, sollte die Software den UserInnen mitteilen, wenn sie eine Nachricht in ein "Fremdnetz" schicken. Diese Spezifikation überfordert aber einen technischen Standard. Es ist also darüber nachzudenken, ob z.B. eine einfache Standardverschlüsselung für private Nachrichten den Protokollcharakter festigen und unabhängig von abstrakten Netzgebilden bewahren kann.
# Bereits eine primitive, synchrone Verschlüsselung (z.B. XOR 1 # byteweise) würde nach bundesdeutschem Datenschutzrecht dafür # sorgen, daß ein Geheimhaltungsinteresse von dem/der Absender/in # unterstellt wird, dessen Unterlaufen - und sei es noch so einfach - # strafbar ist ([Netzrecht]).
Die Verschlüsselung müßte natürlich auf ausdrücklichen Wunsch des/der Anwender/in abschaltbar sein.
3.4.2. Dupe- und Rekursionscheck
Dupe- bzw. Rekursionscheck erfolgt, um das Netz nicht mit Nachrichten zu belasten, die aufgrund technischer Fehler mehrfach dasselbe System passieren oder erneut auf den Routeweg gelangt sind.
3.4.2.1. Dupecheck anhand der Message-IDs
Ein routendes System muß anhand der Message-IDs öffentlicher Nachrichten einen Dupecheck durchführen, bei privaten Nachrichten ist dies untersagt. Für eine Message-ID gilt per Definition, daß sie innerhalb von zwei Jahren nur einmal weltweit erzeugt wird. Hat eine Nachricht eine Message-ID, welche innerhalb der letzten beiden Jahre bereits das routende System passiert hat, handelt es sich um eine zu löschende Rekursion.
Nun ist es unrealistisch, die Message-IDs von zwei Jahren aufzubewahren und zum Dupecheck heranzuziehen. Es wird empfohlen, die IDs von 90 Tagen aufzubewahren und Nachrichten, die älter als 90 Tage sind, per default als "zu alt" zu löschen.
Tatsächlich erzeugen auf einem großen System bereits die Message-IDs von 90 Tagen große Probleme - weniger aufgrund des nicht zu unterschätzenden Platzbedarfs, vielmehr aufgrund der benötigten Rechenzeit für den Dupecheck selber. Manche Software führt diesen Check tatsächlich linear durch. Andere Implementierungen verwenden eine Art Hashverfahren ohne Kollisionsbehandlung, also mit möglicherweise zu unrecht als Dupe gelöschten Nachrichten. Im Kapitel "Softwaretechnische Vorschläge" ist ein leistungsfähiges, vollständiges Hashverfahren ohne systembedingte Fehler beschrieben.
3.4.2.2. Rekursionscheck anhand des Routepfads (ROT)
Ein System, an welches eine Nachricht (privat oder öffentlich) weitergereicht werden soll, darf noch nicht im Routepfad der Nachricht stehen. Andernfalls ist die Nachricht nicht weiterzureichen; betrifft dies eine private Nachricht, so ist die Systembetreuung zu informieren (vgl. Spezifikation von ROT), um ein eventuelles Ping-Pong-Routing abzustellen.
Bei privaten Nachrichten ist aber zu beachten, daß es aufgrund von Routingumstellungen durchaus ohne schädliche Auswirkung passieren kann, daß ein System mehrfach im ROT-String auftaucht. Es wird daher empfohlen, frühestens bei der dritten Rekursion die Systembetreuung einzuschalten.
3.4.3. Weiterleiten
ZConnect kennt mehrere Formen des Weiterleitens, die davon abhängen, wer mit welcher Intention weiterleitet. Eine Änderung am Nachrichtenkörper darf dabei nur mithilfe eines Kommentars (KOM-Headerinformation) erfolgen.
Die Message-ID muß bei öffentlichen Nachrichten beim Weiterleiten immer verändert werden, um die weitergeleitete Nachricht vor einer Löschung als vermeintlicher Dupe zu bewahren. Die an dieser Stelle aktuellste Dokumentation [D3.1Z] unterscheidet automatisches, manuelles und Netzwerk-Weiterleiten (letzteres ist eigentlich eher ein Umleiten).
3.4.3.1. Manuelles Weiterleiten
Für das manuelle Weiterleiten einer Nachricht gibt es zwei Verfahren, die bei ZConnect bisher nur dem Verfahren nach unterschieden werden, ohne ihnen unterschiedliche Bedeutungen zuzuweisen. Die Verfahren unterscheiden sich wesentlich in der Behandlung der ABS-Headerinformation und können als *aktives* bzw. *passives* *Weiterleiten* umschrieben werden. In beiden Fällen sind aber folgende Schritte auszuführen:
1. Die Weiterleitung bekommt eine eigene Message-ID (diejenige der Originalnachricht darf also nicht übernommen werden, auch wenn dies bei privaten Nachrichten ohne Auswirkung wäre)
2. ROT wird gelöscht und neu erzeugt, als ob es sich um eine neu erstellte Nachricht handeln würde
3. Existieren noch keine OEM-Headerinformationen, so werden die EMP-Headerinformationen in OEMs umgewandelt
4. Existiert noch keine O-EDA-Headerinformation, so wird aus der EDA-Headerinformation O-EDA, und es wird eine neue EDA-Information erzeugt. Dies ist immer erforderlich, um die Entsorgung einer als öffentliche Nachricht weitergeleiteten Nachricht als "zu alt" zu verhindern (vgl. MID, Rekursionscheck)
5. Sind CONTROL-, ERR-, ZNETZ-CONV-*, TRACE-, VER-, STAT-, VIA- und/oder EB-Headerinformation vorhanden, werden sie jeweils gelöscht
Dann wird je nach Form des Weiterleitens unterschiedlich vorgegangen. Da es hierbei in der Vergangenheit immer wieder Interpretationsschwierigkeiten gegeben hat, werden die beiden Formen hier als aktives und passives Weiterleiten benannt.
3.4.3.1.1. Passives Weiterleiten
Das passive Weiterleiten wird definiert als Ausdruck für das Anliegen der Weiterleiterin, einer Nachricht eine neue Richtung zu geben, sie also unverändert zu belassen außer der Tatsache, daß sie wieder auf die Netzreise geschickt wird (wobei natürlich aus technischer Sicht sehr wohl Änderungen, z.B. an der Message-ID, vorgenommen werden).
6. Alle weiteren Headerinformationen bleiben unverändert, da die weiterzuleitende Nachricht dem Wesen nach original (also insbesondere mit den personenbezogenen Informationen der ursprünglichen Absenderin) erneut verschickt werden soll.
7. Es wird eine WAB-Information eingefügt, die die Adresse der Weiterleiterin enthält.
3.4.3.1.2. Aktives Weiterleiten
Für das aktive Weiterleiten wird definiert, daß die Weiterleiterin sich den Inhalt der Weiterleitung zu eigen macht. Zwar darf auch hier der Nachrichtenkörper nicht verändert werden (sonst handelt es sich nicht mehr um eine Weiterleitung), aber es ist z.B. möglich, den Betreff zu wandeln, auf die Person der Weiterleitenden bezogene Informationen (wie POST, TELEFON) in den Header einzufügen, eine ZUSAMMENFASSUNG einzufügen oder zu ändern, STICHWORTe hinzuzufügen oder die Nachricht mit dem eigenen PGP-Key zu unterschreiben; letzteres illustriert besonders deutlich die Zueigenmachung der Weiterleitung.
Umgekehrt folgt aus diesen Überlegungen, daß beim aktiven Weiterleiten alle auf die Originalabsenderin bezogenen Headerinformationen zu löschen sind, wobei dieser Punkt insofern kritisch ist, als einer älteren Software unbekannte, neue personenbezogene Headerinformationen hinzugekommen sein können. Da dieses Problem nicht aufzulösen ist (es sei denn, das aktive Weiterleiten würde gänzlich anders definiert), ist zumindest bei zukünftigen Erweiterungen die Dokumention an dieser Stelle nachzuführen.
Aktuell ist beim aktiven Weiterleiten folgendes zu tun:
6. ANTWORT-AN, LANGUAGE, LDA, MAILER, ORG, PGP, PGP-ID, PGP-KEY-AVAIL, PGP-KEY-COMPROMISE, PGP-KEY-OWN, PGP-PUBLIC-KEY, PGP-SIG, POST, PRIO, SIGNED, SPERRFRIST und TELEFON sind zu entfernen. LDA und SPERRFRIST sind hierbei mit Vorsicht zu behandeln und sollten z.B. der Weiterleiterin explizit zum Löschen/Beibehalten vorgelegt werden. Sofern veraltete Headerinformationen berücksichtigt werden, ist auch PUBLIC-KEY zu löschen
7. Nur wenn noch keine OAB-Information vorhanden ist, wird sie aus der ANTWORT-AN-Information oder, wenn diese nicht oder im Gegenteil mehrfach angegeben ist, aus der ABS-Information erzeugt
8. Die Adresse der Weiterleitenden wird als ABS-Information eingefügt
9. Eine evtl. vorhandene WAB-Information wird gelöscht
3.4.3.2. Automatisches Weiterleiten
Das automatische Weiterleiten erfolgt z.B. bei Mailinglistenverteilern. Ein solcher Verteiler verschickt jede an ihn gerichtete Nachricht an alle beim Verteiler akkreditierten Mailadressen. Dies hat die Wirkung eines öffentlichen Brettes, welches aber nicht öffentlich transportiert wird, z.B. weil es weltweit zuwenige InteressentInnen gibt. Natürlich sind die versandten Nachrichten technisch betrachtet in beiden Richtungen private Nachrichten.
Eine beim Verteiler eingehende Nachricht wird wie folgt behandelt:
1. Wenn eine Empfangsbestätigung angefordert wurde (EB-Information), wird diese verschickt und die EB-Information aus dem Header gelöscht
2. Die EMP-Information (also die Adresse des Verteilers) wird in die OEM-Information gewandelt
3. Alle akkreditierten Mailadressen werden als Empfängerinnen eingetragen (entsprechend viele EMP-Informationen)
4. Die Absenderinangabe bleibt erhalten.
Hat der Verteiler eine Betreuerin, so kann deren Mailadresse als WAB-Information eingetragen werden, was zu einer Zustellung von evtl. Fehlermeldungen an die Weiterleiterin führt, aber auch privat in die Liste verschickte Beiträge würden so fälschlicherweise bei der Betreuerin landen: Da die "öffentlichen" Nachrichten des Verteilers als private Nachrichten bei der Anwenderin erscheinen, antwortet diese häufig auch privat, wenn sie eigentlich in den Verteiler schreiben will.
Es ist absolut üblich, ANTWORT-AN auf die Verteileradresse zu setzen, was aber, schlechter noch als bei Verwendung von WAB, eine private Antwort an die Absenderin und die sinnvolle Zustellung von Fehlermeldungen verhindert (vgl. Spezifikation ANTWORT-AN). ZConnect sieht dies aber nicht unbedingt vor; ein Newsreader sollte vielmehr bei einer privaten Antwort Weiterleitabsenderin und Absenderin als Adressatinnen zur Auswahl vorlegen.
In jedem Fall ist es sinnvoll, eine DISKUSSION-IN-Information auf die Adresse des Verteilers weisen zu lassen, um den Mailinglisten-Charakter als privat verteiltes öffentliches Brett zu unterstreichen.
5. Evtl. vorhandene KOP-Informationen werden nicht gelöscht
6. Evtl. vorhandene TRACE- und VIA-Informationen werden gelöscht
# Es kann notwendig sein, EDA als O-EDA weiterzutransportieren und # ein neues EDA zu erzeugen, da die Annahme, daß bei einer # automatischen Weiterleitung immer nur private Nachrichten betroffen # sind, fahrlässig ist. Bei der automatischen Umleitung privater # Nachrichten in ein öffentliches Brett (z.B. Nachrichten an den # Postmaster-Account in ein vom SystembetreuerInnenteam gelesenes # Brett oder bei der Umsetzung einer Mailingliste in ein lokales # Brett) kann eine pflichtbewußte Systemsoftware die entstehende # Nachricht potentiell als "zu alt" entsorgen.
Sinngemäß Gleiches gilt für ROT/O-ROT.
3.4.3.3. Weiterleiten im Netz: Umleiten
Ist in einem System für die Empfängerin einer privaten Nachricht eine Vertreterin angegeben (z.B. kann dies bei einem Nachsendeantrag eines Points bei Systemwechsel der Fall sein), so wird das umleitende System wie folgt vorgehen:
1. Keine Empfangsbestätigung versenden, daß tut erst das laut Vertreterineintrag empfangende System
2. Keine Änderung der Message-ID vornehmen, da es sich immer um PMs handelt, für die ein Dupecheck nicht stattfindet
3. Die EMP-Information wird in die VER-Information umgewandelt (VER kann nach [D3.1Z] mehrfach vorkommen, was sinnvoll ist; laut älteren Gremiumsbeschlüssen müßte aber ein bereits vorhandenes VER gelöscht werden, da diese Headerinformation dort als "nur einmal" beschrieben ist). Es kann nur eine EMP-Information im Header enthalten sein, da es sich um eine private Nachricht handelt, die am vorläufigen Ende ihres Routewegs angelangt ist
4. Die neue Empfängerin wird in die EMP-Headerinformation eingetragen
5. Eine evtl. vorhandene Information O-ROT wird gelöscht (hier zeigt sich eine Inkonsistenz der Änderung auf "auch mehrfach" bei der VER-Information: mehrfache Routepfade können nicht transportiert werden)
6. ROT wird in O-ROT umgewandelt
7. Eine neue ROT-Information wird so angelegt, als sei die Nachricht auf dem umleitenden System geschrieben worden (also mit dem umleitenden System nebst Domain als ersten Eintrag)
# Es ist bisher keine O-VIA-Headerinformation für die Verwendung # beim VER-Umleiten definiert. Dies (vgl. O-ROT) könnte eine # sinnvolle Erweiterung darstellen. Allerdings würden beim aktuellen # Vorgehen bereits vorhandene VIA-Headerinformationen nicht gelöscht, # so daß in Kombination mit der VER-Information selber ersichtlich # wird, welche VIA-Informationen zu welchem Teil des Routeweges # gehören.
Der Logik folgend, daß erst das endgültige Empfangssystem die Empfangsbestätigung versendet, darf auch eine evtl. vorhandene TRACE-Headerinformation nicht gelöscht werden.
3.4.4. Gemischtadressierung
In ZConnect ist vorgesehen, daß eine Nachricht gleichzeitig private und öffentliche Empfängerinnen haben darf. Gleichzeitig gibt es in ZConnect sehr viele Headerinformationen, die nur für den Einsatz bei privaten Nachrichten bestimmt sind (z.B. PGP-KEY-OWN, PGP-PUBLIC-KEY, EB, O-ROT, PGP: PLEASE | REQUEST, TRACE, VIA). Die Absenderin einer gemischtadressierten Nachricht wird bei Einsatz solcher Informationen deren Zustellung an die privaten Empfängerinnen, nicht aber an die öffentlichen im Sinn haben. Bei der Aufsplittung der gemischtadressierten in eine private und eine potentiell wieder gemischtadressierte oder rein öffentliche Nachricht ergibt sich jedoch eine unauflösbare Schwierigkeit:
Die routende Software müßte testen, welche der Headerinformationen nur für Privatnachrichten gedacht sind, diese in den privaten Header kopieren und aus dem öffentlichen löschen (in einer gemischtadressierten Abspaltung müßten sie hingegen verbleiben). Dies erforderte jedoch, mangels einer grundsätzlichen Attributierung von Headerkennungen in ZConnect, daß die Software eine Liste der Headerinformationen zur Verfügung haben müßte, welcher die Eigenschaft "nur in privaten Nachrichten erlaubt" zu entnehmen wäre. Aber auch dies löste das Problem nicht grundlegend, da jederzeit neue Headerinformationen beschlossen werden können, die nur in privaten Nachrichten erlaubt sind. Es würde auch immer Software geben, die mindestens nicht auf dem aktuellsten Stand der Dinge ist.
Auch eine Umspezifizierung der Regelung, daß manche Headerzeilen nicht in öffentlichen Nachrichten auftreten dürfen, in eine Festlegung, daß nur das Auswerten bestimmter Headerinformationen bei öffentlichen Nachrichten nicht erfolgen sollen, löst das Problem nicht. Zum einen würden unnötig Daten transportiert, die recht voluminös sein können (z.B. im Zusammenhang mit PGP). Zum anderen kann auch eine komplette Nachricht als öffentliche Nachricht verboten sein. Z.B. ist die vor der Einführung nach ZConnect stehende MIME-Spezifikation ausschließlich für private Nachrichten erlaubt. MIME definiert eine Nachrichtenkörperform, die in öffentlichen Sendungen unerwünscht ist. In diesem Fall wäre eine gemischtadressierte Nachricht insgesamt zu unterbinden, da öffentliche Empfängerinnen nicht erlaubt sind.
Bei einer gemischtadressierten Nachricht wird bei der Aufteilung keine neue ID für den privaten Anteil erzeugt. Begründung ist, daß es keinen Dupecheck für private Nachrichten gibt. Tatsächlich ist einige Routesoftware hier nicht standardkonform und führt den Check auch für private Nachrichten durch. Aus Sicht dieser fehlerhaften Software ist eine aufgetrennte, ehemals gemischtadressierte Nachricht also automatisch ein Dupe. Aber auch ohne fehlerhafte Software ergeben sich Probleme z.B. für die lokale Kommentarverkettung: Zwei de facto nicht identische Nachrichten (daß sie den gleichen Nachrichtenkörper haben, bedeutet keine technische Gleichheit) liegen potentiell mit derselben Message-ID in der lokalen Nachrichtendatenbank.
# ZConnect wohnt eine einfache Lösung für all diese Probleme inne, # die bisher kaum beachtet wird, es aber unbedingt werden sollte: Es # ist festgelegt, daß eine Nachricht privat ist, wenn ihre sämtlichen # Empfängerinnen privat sind. Also ist eine gemischtadressierte # Nachricht als öffentliche Nachricht zu interpretieren. In einer # solchen ist dann alles verboten, was nur für private Nachrichten # erlaubt ist. Dies schränkt zwar auf den ersten Blick den Komfort # für die Absenderin ein. Aber die Teilung von privaten und # öffentlichen Empfängerinnen kann unaufwendig schon bei der # Erzeugung der Nachricht von der BenutzerInnenschnittstelle # automatisch durchgeführt werden. An dieser Stelle ist auch noch # leicht zu unterscheiden, welche Headerinformationen in welchem Teil # der Sendung erlaubt sind.
3.4.5. Verschlüsselung
Grundsätzlich verfolgt ZConnect die Absicht, Verschlüsselungen im Standard zu erfassen, um sie automatisch durch Software behandelbar zu machen. Dies drückt sich in der Positionierung von Verschlüsselungsinformationen im Header aus. An dieser Stelle unterscheidet sich ZConnect sehr von anderen Standards der Netzwelt, was insbesondere für Gateways nicht ganz einfach ist. Angesichts der Möglichkeit, z.B. das manuell umständlich zu verwendende PGP dadurch beinahe für die Anwenderin transparent in eine Software zu integrieren, ist dies aber eindeutig als Vorsprung ZConnects zu werten und damit besonderes Augenmerk wert.
Durch die Verschlüsselung werden Headerinformationen wie CHARSET, TYP und KOM z.T. ihrer Aussage beraubt. Evtl. ändern sich Zeichensatz und Typ, der Kommentar wird üblicherweise mitverschlüsselt. Daher werden diese Header für die Decodierung mit dem Vorspann CRYPT-CONTENT- versehen (vgl. Datenformat CRYPT-CONTENT-CHARSET ff.).
3.4.5.1. PGP
Pretty Good Privacy, kurz: PGP, ist ein nach heutigen Maßstäben sicherer Verschlüsselungsmechanismus für Nachrichten. In ZConnect wird er auf Headerebene eingebunden.
3.4.5.1.1. Grundsätzliches
Auf die Funktionsweise von PGP soll an dieser Stelle nicht näher eingegangen werden. Hierzu empfiehlt sich vor einer Implementierung dringend die Lektüre der Dokumentation vom Autoren des Programms, Philip Zimmerman. Diese wird mit den PGP-Komplettpaketen verteilt. PGP ist ein als Public Domain freigegebenes Verfahren, dessen Verwendung in ZConnect und auch in jedem anderen Kontext ohne Bedingungen gestattet ist.
Der Public Key ist beim PGP-Verfahren nicht nur problemlos frei veröffentlichbar, er gewinnt sogar an Sicherheit und Brauchbarkeit, je weiter er verbreitet ist. Zwar kann ein Public Key jederzeit gefälscht werden, aber zum einen sieht PGP Mechanismen vor, die dies wirksam erkennen lassen, zum anderen ist die Fälschung umso schwieriger, je weiter ein korrekter, öffentlicher Schlüssel verbreitet ist.
ZConnect sieht zwei Möglichkeiten vor, Public Keys zu verbreiten. Zum einen ist dies das Versenden des Public Keys im Header einer Nachricht, mit der jederzeit gegebenen Gefahr der Manipulation. Zum anderen ist es der Abruf mithilfe der ZConnect-Onlinephase in einer Mailbox, z.B. jener der Heimat-Mailbox der Anwenderin, deren Schlüssel gewünscht ist, mit der ebenfalls jederzeit gegebenen Gefahr, daß die MailboxbetreiberInnen Schlüssel fälschen oder für UserInnen generieren, die PGP gar nicht verwenden. Zwischen beiden Methoden existiert ein Bindeglied, welches im Kopf einer Nachricht lediglich anzeigt, daß und wo der Public Key der Absenderin per ZConnect-Onlinephase abzurufen ist (vgl. Datenformat: PGP-KEY-AVAIL bzw. Onlinephase: PGP-KEYREQ).
Die Anwenderin sollte möglichst von der Software zu einem verantwortungsvollen Umgang mit den PGP-Möglichkeiten ZConnects hingeführt werden. Das bedeutet zum einen die Vermeidung von übertrieben großem Datenaufkommen, wie es durch Mitschicken des eigenen Public Keys in jeder öffentlichen Mail entstünde. Zum anderen sollte auf die Gefahren aufmerksam gemacht und z.B. auf die Überprüfungsmöglichkeit per Telefon und Fingerprint hingewiesen werden.
Aus Protokollsicht soll die PGP-Integration die Zusammenarbeit mit dem PGP-Programm vollautomatisch ermöglichen, insbesondere also die Weitergabe von Keys in die Public Key Verwaltung von Philip Zimmermans PGP. Aus UserInnensicht sollte möglichst nichts Verschlüsseltes oder durch Unterschrift Codiertes auf dem Bildschirm erscheinen. Vielmehr sollte die Software soweit wie möglich Entschlüsselung und Unterschriftenprüfung automatisieren und z.B. nur Statusmeldungen wie "Nachricht war PGP-verschlüsselt" oder "Nachricht war unterschrieben, Unterschrift geprüft" anzeigen.
PGP verschlüsselt Daten so, daß auch die Absenderin sie nicht mehr lesen kann. Soll die versandte Nachricht für die Absenderin lesbar bleiben (was ein gewisses Sicherheitsleck bedeutet), gibt es eine bessere Lösung für dieses Problem als die getrennte Speicherung des Klartextes. PGP unterstützt die Verschlüsslung an zwei Empfängerinnen - nämlich die wirkliche Empfängerin und (in diesem Fall) die Absenderin mit dem Befehl "pgp -e dateiname UserID1 UserID2". So kann unter Eingabe des Paßwortsatzes auch die Absenderin die eigenen Nachricht noch entschlüsseln.
3.4.5.1.2. Transport der Schlüsselinformation
Die Schlüsselinformation wird, dem eingangs erwähnten Konzept folgend, im Header einer Nachricht transportiert (die Möglichkeit des Keyrequests hier einmal außer acht gelassen). Hierzu wird nicht die "verpackte" (bei PGP "amor" genannt) Version verwendet, welche PGP mit dem Kommando "pgp -kxa" liefert, sondern die die reine Schlüsselinformation, wie sie (bei angenommener Nicht-Existenz eines Armor vorschreibenden Configfiles) "pgp -kx" produziert; diese wird allerdings Base64-codiert.
Die Base64-Codierung ist ein einfaches Verfahren zur 6-Bit-Codierung, welche einen problemlosen Transport über wohl sämtliche Netzgrenzen hinweg garantiert. Drei Bytes … 8 Bit werden hierbei in vier Bytes … 6 Bit{14} aufgeteilt. Das verwendete 6-Bit-Alphabet harmoniert mit dem ZConnect-Zeichensatz für den Header: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/". Darüberhinaus ist im ZConnect-Kontext nur noch das Füllzeichen '=' zu beachten, welches beim Dekodieren zu überlesen ist. Der auf der beiliegenden CD enthaltene Source MKKEY.C illustriert das Vorgehen beim Codieren. Aus dem PGP-Sourcepaket stammt die Routine ARMOR.C, welche für das Decodieren zuständig ist. ZConnect-Headerinformationen sind einzeilig; dies gilt natürlich auch für solche, die einen Public Key oder eine Unterschrift enthalten. Im Gegensatz zum Armor-Format wird also nicht nach 64 Zeichen umgebrochen.
Beispiel: Der Public Key von Sepro@bingo.comlink.de in Armor-Darstellung von PGP:
-----BEGIN PGP PUBLIC KEY BLOCK---- Version: 2.6
mQCNAi4bNc0AAAEEAOc6GczyLdnA4FtHjqIzDHetafHO6nnNAkMZNBIbu7aXFcj1 sGo9X5NUmKcC2nb33l5BDeKjql7leSTmxtvrABcd6clndd+YOKCo0DMtU8o2Z/+y 75hssRZAhLEJWM/d+qGP712jg6vMJmKiDBbop+N/FNxnXXMauQqcFQabFzW9AAUR tCJDZSBCcnVua2UgPFNlcHJvQGJpbmdvLmNvbWxpbmsuZGU+iQBVAgUQLz+cI/95 3NsQf2DxAQGQGgH6AlpZuYCAPHDx2Cxl0qGTZx5WMp6PM63ZJMtKZe1LJSEWv1vh 8KLWwsFH+KGV/ExkRPC5eVSA1Flwaigrex9F8YkAlQMFEC8qhcQKnBUGmxc1vQEB BC8EAJO2RcXB7ppRIMi70PQsEANbTzgfSbRvTsT8T0XqZIooLu6/ALBZSVNTir8R X1eXJT1YKDm8/r7/TsraqMJ52feGvHMwGf6Jrs1+6VblANu8DQqyPWQ0wRwjBWz+ sqKk4boJrbK7Qy9RZXP2Tw83ADquViQjlTiMqeTOsRMr4pavtClDYXJzdGVuIEJy dW5rZSA8U2Vwcm9AQW10cmFzaC5jb21saW5rLmRlPokAlQIFEC7i0pYKnBUGmxc1 vQEBhnkD/1Rc+xVaJNkN3Mw7DIHpMLBh0rCChb70PHsfUGOk/TBt00ujuuyyR9SF worS9GJANkyiGKDYC+tCbYRriBlBLvhvR3xQRntdQIcNwwJBdaa3zXCIEx/lUtF0 YJCH9+hLdGUH6kILpfj2+YMKpBjh2HulBqVesOXpGoC9HgFWn3QMiQBVAgUQLj59 HkHx4UColTddAQH7iwH/d79Dhd8GYjgWzR1zmCf6g9loKOQsbEHG4/ivAPznJ2y+ s5rCaNbpg8yavGrhp3iV6f5Wncw7/637J7Qb6nft2A== =vGi/ ----END PGP PUBLIC KEY BLOCK-----
Die binäre Entsprechung (bin) ergäbe sich, als C-Pseudocode formuliert, mit einer ord-Funktion gemäß Base64-Alphabet, exemplarisch, ohne Berücksichtigung der Füllzeichen, für das erste Armor-Quadrupel (armor) wie folgt:
bin[0] = (ord(armor[0])<<2) | (ord(armor[1])>>4) bin[1] = (ord(armor[1])<<4) | (ord(armor[2])>>2) bin[2] = (ord(armor[2])<<6) | ord(armor[3])
Und der umgekehrte Weg mit einer chr-Funktion gemäß BASE64-Alphabet:
armor[0] = chr(bin[0] >> 2) armor[1] = chr(bin[0] << 4) | chr(bin[1] >> 4) armor[2] = chr((bin[1] & 0xF) << 2) | chr(bin[2] >> 6) armor[3] = chr(bin[2] & 0x3F)
3.4.5.1.3. Unterschriften
Wenn eine Nachricht verschlüsselt und unterschrieben ist, ist die Signatur in der Verschlüsselung enthalten, braucht also nicht einzeln transportiert zu werden. Nur wenn eine Nachricht nur unterschrieben wurde, wird die Unterschrift in der Headerinformation PGP-SIG transportiert.
PGP kann die Unterschrift auch direkt auf den zu unterschreibenden Text anwenden. Dieser wird dabei zugleich ins Armor-Format umgewandelt und somit ohne PGP unlesbar, was nicht der Sinn einer Unterschrift ist. Es ist daher unbedingt sinnvoll, zumindest bei öffentlichen Nachrichten, die ZConnect-Methode des Transportes der abgelösten Unterschrift im Header zu verwenden. "PGP -sb" erzeugt eine Binärdatei, die die solitäre Unterschrift enthält, welche äquivalent zur Behandlung der Public Keys Base64 codiert und einzeilig in den Header geschrieben wird.
# Die Möglichkeit PGPs, Signaturen als Klartext im Nachrichtenkörper # unterzubringen, wie sie teilweise von Pointprogrammen verwandt # wird, ist besonders relaykompatibel (gatetauglich), paßt aber nicht # zu ZConnect-PGP-Regelung. Was hauptsächlich bedeutet, daß die # ZConnect-Regelung einer grundsätzlichen Überarbeitung bedarf.
Es ist nicht sinnvoll, mit einer unterschriebenen Nachricht immer auch den Public Key mitzuschicken: Wer unterwegs die Unterschrift fälschen kann, wird dies mit dem Key auch tun können. Unnötiges Datenaufkommen sollte hier vermieden werden.
3.4.5.2. QPC:
QPC:, kurz für QuickPointCrypt, ist für das Pointprogramm QuickPoint entwickelt worden. Es ist sehr einfach zu implementieren und mit ebenso einfachen kryptographischen Methoden angreifbar. Um es als schnelle, umschlagähnliche Codierung einzusetzen, können ProgrammiererInnen sich bei Marc Zimmermann (75240.1241@compuserve.com), dem QuickPoint-Autor, die Dokumentation zu QPC: besorgen.
QPC: wird von mehreren Pointprogrammen angeboten; !!MessageBase bietet eine Abwandlung an, die auch binäre Dateien verschlüsseln kann, was mit QPC: sonst nicht möglich ist. Auch für dieses abgewandelte Verfahren ist bei obiger Mailadresse eine Dokumentation erhältlich.
3.4.6. Points
In der Welt der privaten Vernetzung, welche bis vor nicht allzu langer Zeit fast ausschließlich mit FIDO-, Z-Netz- und unzähligen sich mehr oder weniger ähnelnden Protokollen betrieben wurde, gab es überwiegend die Unterscheidung zwischen routenden Systemen (Mailbox) und Endsystemen. Ursprünglich wählten sich die UserInnen online in eine Mailbox ein, um dort z.B. Nachrichten zu lesen oder auch unter ihrem UserInnennamen zu schreiben.
Dieses Vorgehen ist kostspielig und unkomfortabel, daher wurden Offlinereader entwickelt, mit denen regelmäßig oder auch nur ab und zu eine Mailbox angerufen und en block die bis dahin neu aufgelaufenen Nachrichten/Daten auf den heimischen Computer übertragen werden konnte. In vielen Netzen bildete sich für diese Offlinereader der Begriff Point. Technisch stellt der Point also die einfachere Alternative zu einer Systemsoftware dar, hat aber seinen Ursprung in der Automatisierung der Datenübertragung vom System zu den AnwenderInnen.
Hierin liegt begründet, warum noch immer, z.B. bei ZConnect, Unterschiede zwischen einem System und einem Point existieren und Points nicht einfach nur nicht anrufbare Systeme sind, wie es vielfach im RFC-Bereich der Fall ist.
Es gibt keinen protokolltechnisch zwingenden Grund für die Aufteilung in Systeme und Points. Faktisch ist denn auch bei ZConnect der Unterschied heute nicht mehr sehr groß. Besonderheiten ergeben sich aus der Sichtweise von Points als Quelle bzw. letzte Lagerstätte einer Nachricht und aus der zwingenden Zuordnung von PointuserInnen zu einem System.
Die Zuordnung zu einem System bedeutet, daß der Routepfad aus ZConnect-Sicht erst ab dem ersten System beginnt. Points müssen also einen leeren ROT-Pfad erzeugen. Auch überprüft ein System, ob "seine" Points unter der dem System bekannten AbsenderInnenadresse schreiben. Dies ist zwar nicht ZConnect-immanent, es wird aber von allen ZConnect-Mailboxprogrammen so gehandhabt, daß, wenn Point A@box.do.main als B@box.do.main schreibt, die Mailboxsoftware ohne jede Rückfrage oder Fehlermeldung A@box.do.main daraus macht. Insbesondere bei weitergeleiteten Nachrichten führte dieses Vorgehen, welches die Verifizierbarkeit einer Absenderin erhöhen soll, in der Vergangenheit immer wieder zu weittragenden Fehlern, die den Netzfrieden gefährdeten. Z.B. hat Mailboxsoftware bei einer passiv weitergeleiteten Nachricht den Adreßanteil der ABS-Information verändert, den Realnamenanteil jedoch unverändert gelassen.
Dies zeigt auch, daß das "Eigentumverhältnis" zwischen Point und System gerade aus protokolltechnischen Gründen unhaltbar ist: Sollte in der Zukunft eine neue Art der Weiterleitungsinformation beschlossen werden, in der die Weiterleiterin z.B. in der Headerinformation MODERATORIN untergebracht ist, wird ältere Software fälschlicherweise eine "gefälschten" Absenderinangabe erkennen und selbst die eigentliche Fälschung vornehmen.
Für das erste System auf dem Routeweg ist auch der "Notfall" vorbehalten, welcher für die Erlaubnis der Ersetzung von EMPs durch KOPs (vgl. bei KOP) eintreten muß. Dieses erste System (und nur dieses!) darf ausnahmsweise EMPs in KOPs wandeln, wenn lokale Begebenheiten dies unausweichlich machen. Wenn eine Nachricht mit einem Brett als Empfängerin aufwartet, das für die Absenderin nicht beschreibbar ist, sollte die Nachricht bevorzugt der Systembetreuung zur Entscheidung vorgelegt werden, auch in diesem Fall also auf die Ersetzung verzichtet werden. Hintergrund ist, daß die Absenderin andernfalls nie erfährt, daß ihre Nachricht nicht dort angekommen ist, wo sie plaziert werden sollte.
Auf der anderen Seite wird ein Point als letztes Glied in der Kette eines Nachrichtenwegs betrachtet. Aus diesem Grund legt das Zerberus-Mailboxprogramm eine sehr eigene Interpretation der EMP/KOP-Regelung an den Tag. Wenn eine Nachricht von einem Zerberussystem zum Point geschickt wird, werden alle EMPs, die nicht mit der Liste der vom Point beim System bestellten Bretter übereinstimmen, zu KOPs gewandelt. Tatsächlich kann dies für NutzerInnen einer weniger intelligenten Pointsoftware sehr hilfreich sein, da solche Software die ankommende Nachricht häufig genau so oft einsortiert, wie EMP-Angaben vorhanden sind. Bei einer hohen Zahl von EMP-Informationen kann dies sehr unhandlich geraten. Technisch ist gegen diese Art der EMP/KOP-Wandlung nichts einzuwenden, da die Nachricht ihren Bestimmungsort erreicht hat und somit keine Routinglücken mehr entstehen können. Faktisch können die meisten Pointprogramme heute mit Crosspostings sehr gut umgehen (insbesondere seit Einführung des ZConnect-Maps-Standards), so daß Systemsoftware Klimmzüge wie die beschriebenen unterlassen sollte. Innerhalb des Datenbestands eines Pointprogramms kann die Benutzerin beliebig verfahren. Sobald für eine Nachricht kein weiteres Routing erforderlich ist, sind Software und Mensch in ihrem Vorgehen frei, dürfen also intern beliebig EMPs in KOPs wandeln. Bei internen Verschiebungen oder Kopien muß auch die Message-ID nicht gesondert betrachtet werden, es sei denn, die Pointsoftware selber erfordert dies.
Es ist sehr fraglich, ob die Headerinformationen SPERRFRIST und LDA von Pointprogrammen automatisch ausgeführt werden sollten. Hier zeigt sich dann auch ein eklatanter Unterschied zwischen Points und OnlineuserInnen: Für den Onlinedatenbestand eines Systems sind Informationen wie die genannten schlicht Hilfsmittel für die automatische Datenverwaltung. Für eine Pointsoftware gilt jedoch, daß die Daten in den exklusiven Verfügungsbereich der Anwenderin übergegangen ist. Ein Automatismus, der in diesem Verfügungsbereich ungefragt Daten löscht, ist abzulehnen.
Im Rahmen dieser Überlegung sind auch LANGUAGE und STAT: NOCIPHER nur als Empfehlungen zu interpretieren. Es ist zu jeder Zeit davon auszugehen, daß oberhalb der ISO-Schicht 7 unter anderem menschliche Entscheidungen angesiedelt sind, so daß technisch nicht notwendige Bevormundungen als schlechter Stil zu werten sind.
Ein ZConnect-fähiger Point antwortet auf die Anforderung einer Empfangsbestätigung (sofern die Anwenderin dies nicht abgeschaltet hat). Für nicht-ZConnect-fähige Points übernimmt dies das ZConnect-System. Diese Regelung ist insofern völlig unklar, als es derzeit keine ZConnect-fähigen Points gibt (nur ZConnect-Datenformat-fähige). De facto werden derzeit Empfangsbestätigungen von Pointprogrammen und nicht von Systemen verschickt.
3.5. Maps-Standard
Die Handhabung von Brett(ab)bestellungen beim servenden System, sei es von einem anderen System oder vom Point aus, erfolgt häufig über einen Automatismus, der im Anschreiben einer automatischen Userin besteht, die darauf mit Brettlisten, An- und Abbestellung und, je nach Implementation, auch mit weiteren Funktionen zu Diensten ist. Die Syntax dieser Automatismen war für verschiedene Systeme immer nur beinahe gleich. Der am weitesten verbreitete Name für den Automatismus ist MAPS - oft, aber eben nicht immer muß die Anwenderin eine Nachricht an Maps@box.domain schicken, bekommt von dieser eine Antwort und muß diese Antwort wieder selber interpretieren.
Auf dem /Z-NETZ-Treffen 1994 in Hamburg entwarfen die Anwesenden aus dem Gremium einen Standard für dieses Verfahren. Dies soll Programmen ermöglichen, die Kommunikation mit der Autouserin auch Anwenderinnenseitig zu automatisieren, also die Anwenderin vom Schreiben und auch Lesen dieser eigentlich technischen Informationen zu entlasten. Stattdessen kann z.B. ein graphischer Dialog zur Brettbestellung verwendet werden, welcher dann vom Userinneninterface in entsprechende Maps-Anweisungen umgesetzt werden kann.
Damit wäre auch schon gesagt, wie Maps zukünftig bei ZConnect heißen wird: Maps. Maps ist von beliebiger Stelle aus dem Netz unter der Adresse MAPS@System.Domain erreichbar, wird aber manche Antworten nur lokalen AnwenderInnen oder besonders als Maps-berechtigt vermerkten UserInnen aus dem Netz geben.
3.5.1. Die Maps-Befehle
Befehle an Maps stehen grundsätzlich in der Betreffzeile und können eine beliebige Groß-/Kleinschreibung aufweisen. Die Parameter stehen im Nachrichtenkörper. Auch bei ihnen muß mit beliebiger Groß-/Kleinschreibung gerechnet werden, auch wenn oder gerade weil die Dokumentation an dieser Stelle keine eindeutige Aussage trifft. Parameter im Betreff werden grundsätzlich ignoriert!
Empfängt Maps einen unbekannten oder nicht implementierten Befehl, wird eine Antwort mit dem Betreff "Your Help" generiert, die einen Hilfstext mit allen dem antwortenden Maps bekannten Befehlen nebst deren Erläuterung enthält. Antworten auf bekannte Befehle erhalten zwingend den Betreff "Your <Befehl>", also z.B. "Your ADD", "Your LiSt" (auch hier keine Festlegung der Groß-/Kleinschreibung!) und eine BEZ-Information, welche zur Message-ID der beantworteten Nachricht einen Bezug herstellt.
3.5.1.1. Pflichtbefehle
Um eine Maps-Implementation ZConnect-konform nennen zu dürfen, bedarf es zusätzlich zum bisher Beschriebenen der vollständigen Implementierung der folgenden Pflichbefehle:
-----------------------------------------------------------------------------
ADD
Funktion: dient der Bestellung von Brettern für das absendende System oder Point beim angeschriebenen System. Das angeschriebene System wird natürlich die Berechtigung zur Bestellung einzelner Bretter prüfen.
Nachrichtenkörper: enthält zeilenweise, beginnend mit einem Slash ('/') die Brettnamen, die bestellt werden sollen, wobei Groß-/Kleinschreibung zu ignorieren sind. Zeilen ohne Slash am Beginn werden ignoriert.
Antwort: enthält ein Protokoll über die angeforderten Bretter (also den Erfolg/Mißerfolg der Bestellung) in dem unter "Listenformat" beschriebenem Format (s.u.)
Hinweis: das Ergebnisprotokoll enthält genau diejenigen Bretter, die in der Anforderung aufgezählt wurden
-----------------------------------------------------------------------------
DEL
Funktion: dient der Abbestellung von Brettern. Falls das angeschriebene Systeme Pflichtbretter kennt, wird es deren Abbestellung negativ bescheiden.
Nachrichtenkörper: enthält zeilenweise, beginnend mit einem Slash ('/'), die Brettnamen, die abbestellt werden sollen, wobei Groß-/Kleinschreibung zu ignorieren sind. Zeilen ohne Slash am Beginn werden ignoriert.
Antwort: enthält ein Protokoll über die angegebenen Bretter (also den Erfolg/Mißerfolg der Abbestellung) in dem unter "Listenformat" beschriebenem Format (s.u.) Hinweis: das Ergebnisprotokoll enthält genau diejenigen Bretter, die in der Abbestellung aufgezählt wurden
-----------------------------------------------------------------------------
HELP
Funktion: dient der Anforderung eines kompletten Hilfstexts
Nachrichtenkörper: wird ignoriert
Antwort: ein für menschliche Rezipienten gedachter Klartext, der alle Informationen über den eingesetzten Maps enthält.
-----------------------------------------------------------------------------
LIST
Funktion: dient der Anforderung einer Liste von verfügbaren Brettern
Nachrichtenkörper: wird ignoriert
Antwort: enthält eine Liste mit den für die Anfragende verfügbaren Bretter in dem unter "Listenformat" beschriebenen Format (s.u.)
3.5.1.2. Listenformat
Das für verschiedene Fälle genutzte Listenformat wird hier als Grammatik in BNF formuliert ('|' bedeutet "oder" und trennt Alternativen voneinander; 'e' heißt Epsilon und steht für "nichts"; zu starten ist bei "Zeilen"). Zu beachten ist, daß es keine Längenbeschränkung gibt, insbesondere auch nicht für die Länge einer Zeile.
Zeilen = Zeile Zeilen | e Zeile = Steuerzeichen <Leer> <Brett> Brettbeschreibung Zeilenende Steuerzeichen = '+' | '-' | ' ' | '!' | ';' Brettbeschreibung = [Whitespace]+ <Beschreibung> | e Zeilenende = <CR><LF> Whitespace = <TAB> | <Leer>
<Brett> ist der Name des gewünschten Bretts in Großbuchstaben (!), beginnend mit einem Slash <Beschreibung> ist eine beliebige Beschreibung des Bretts, kann also seinerseits Whitespaces (auch am Ende) enthalten und geht bis zum abschließenden Zeilenende <Leer> steht für das Leerzeichen (ASCII 32) <CR> steht für Carriage Return (ASCII 13) <LF> steht für Linefeed (ASCII 10) <TAB> steht für den Hard Tab Stop (ASCII 9) [Whitespace]+ bedeutet mindestens ein Whitespace
Die Steuerzeichen haben folgende Bedeutung:
'+' Brett ist bestellt bzw. bestellbar '-' Brett ist nicht bestellbar ' ' Brett ist nicht bestellt aber bestellbar '!' Brett ist bestellt und nicht abbestellbar (Pflichtbrett) ';' Zeile ist ein Kommentar
Eine Beispielantwort auf eine ADD-Nachricht, die obiger Grammatik folgt:
; ZC-Maps Version 3.1 ; ; Antwort von <bingo.comlink.de> auf Sendung ; vom 11.11.99 ; + /TESTNETZ/BEISPIEL1 Dies ist ein Kommentar + /Testnetz/BEISPIEL2 Kommentare sind - /Forbiddennet/Group durch beliebig - /Schubi/DU viele Whitespaces abgetrennt
Eine Beispielantwort auf eine DEL-Nachricht:
; ZC-Maps Version 3.1 ; SuperMapsio 3 (c)SEPROductions ! /LOKAL/WICHTIG /LOKAL/NICHT/SO/WICHTIG /LOKAL/AUCH/NICHT/SO/WICHTIG /LOKAL/ABBESTELLT ! /Z-NETZ/WICHTIG /T-NETZ/SEX ; Und tschüß
Eine Beispielantwort auf eine LIST-Nachricht:
; ZC-Maps Version 3.1 + /Bestelltes/Brett /Bestellbares/Nicht/bestelltes/Brett ! /Bestelltest/Nicht/Abbestellbares/Brett ; Kommentar /Bestellbares/Brett mit Kommentar
3.5.1.3. Optionale Befehle
Idealerweise sollte eine Maps-Implementation auch alle folgenden Befehle zur Verfügung stellen. [D3.1Z] will einen Maps erst dann "ZConnect-kompatibel" nennen, wenn dies geschehen ist, nimmt aber selber die Befehle ORDER-PM und FILES aus. Dazu mehr im nächsten Abschnitt "Kritik und Vorschläge".
-----------------------------------------------------------------------------
FILES
Funktion: dient der Bestellung beliebig vieler Dateien
Nachrichtenkörper: enthält zeilenweise die Namen der Dateien, die bestellt werden sollen. Optional kann, durch mindestens ein Whitespace abgetrennt, ein Paßwort (Groß-/Kleinschreibung ist nicht beachten) angegeben werden. Statt eines konkreten Dateinamens kann auch ein sogenanntes "Magic" angegeben werden. Folgende Magics sind definiert:
HELP Hilfstext zur Bedienung des Fileservers
ALLFILES Liste aller verfügbaren Dateien (auf CD + anderen Datenträgern)
CDFILES Liste aller verfügbaren Dateien, die nur auf CD vorhanden sind
FILES Liste aller verfügbaren Dateien, die auf anderen Datenträgern vorhanden sind
NEWFILES Liste aller "neuen" Dateien
Antwort: Der Betreff der Antwort ist hier um den Dateinamen erweitert, also "Your Files: <Dateiname>". Dies impliziert, daß pro versandter Datei genau eine Binärnachricht zu erzeugen ist. Für jede nicht bediente Anforderung ist eine Nachricht mit dem Betreff "Your Files: Failed <Dateiname>" zu erzeugen.
Das Format der per Magic angeforderten Listen wird nicht spezifiziert, es wird aber vorgeschlagen folgenden Zeilenaufbau zu wählen:
Dateiname.Extension Größe Datum Uhrzeit Beschreibung
Es ist möglich, ein Protokoll zusammen mit der oder den Binärnachricht(en) zu verschicken. Dieses Protokoll wird immer als Kommentar (vgl. KOM-Headerinformation) vorangestellt; und zwar entweder genau einer der Binärnachrichten oder genau einer extra verschickten Nachricht ohne Inhalt (Informationen nur als Kommentar!) mit dem Betreff "Your Files: Costs". Das vorgeschlagene Format des Protokolls ist am besten in Form eines Beipiels zu beschreiben:
ZC-MAPS Version 3.1 Order of <Userin> Ordered <Dateibereich> <Dateiname> (x bytes) (x.x <Währung>). ... Found x files (x bytes). Sent x files (x bytes). Denied x files (x bytes). Total cost for this order: x.x <Währung>.
Die erste Zeile dient dabei der Kennung des Maps-Standards und ist fest vorgeschrieben. Copyrightmeldungen der eigenen Implementierung können als Kommentare eingefügt werden, die durch ein Semikolon an der ersten Position in der Zeile gekennzeichnet werden.
Die zweite Zeile ist vielleicht auf MultiuserInnensystemen sinnvoll. Die <Userin> sollte daher mit deren Mailadresse angegeben werden. Die dritte bis n-te Zeile zählt die bearbeiteten Anforderungen auf, die positiv, also mit Zusendung der Datei beschieden wurden; die Angaben von Kosten und Nachrichtengrößen können in diesen Zeilen von hinten nach vorne weggelassen werden (also nur Längenangabe oder gar keine Angabe möglich).
In den letzten vier Zeilen, die wiederum von hinten nach vorne weggelassen werden können, können statistische Angaben untegebracht werden.
Die Währungskennzeichen sind nicht spezifiziert, sollten aber die in den zu den Währung gehörigen Ländern üblichen Abkürzungen darstellen. Der fragwürdige Sinn des Vorschreibens der Form des Protokolls ist, eine automatische Auswertung (z.B. Prüfung) zu ermöglichen.
Hinweis: Dieser Befehl wird von [D3.1Z] mit der Begründung abgelehnt, daß er nicht nach ZConnect passe, weil Fileserver über die Onlinephase realisiert werden können. Dieser Einwand ist nur in dem Maße richtig, wie er für den gesamten ZConnect-Maps gilt. Hierzu mehr im Abschnitt "Kritik und Vorschläge" in diesem Kapitel. Im übrigen ist FILES vom Gremium beschlossen worden und hat somit Gültigkeit
-----------------------------------------------------------------------------
HOLD ON bzw HOLD OFF
Funktion: stellt eine Art "Urlaubsfunktion" dar. Mit diesem Befehl bestellt die Anwenderin alle Bretter ab (HOLD ON), kann aber z.B. Wochen später wieder mit einer einzigen Anweisung an Maps (HOLD OFF) genau die Bretter bestellen, die zum Zeitpunkt der Abbestellung bestellt waren, da das System sich diese merkt.
Nachrichtenkörper: wird ignoriert
Antwort: hat einen leeren Nachrichtenkörper
-----------------------------------------------------------------------------
INDEX
Funktion: dient der Anforderung eines Brettinhaltsverzeichnisses.
Nachrichtenkörper: enthält pro Zeile einen Brettnamen (Groß-/Kleinschreibung wird nicht beachtet), beginnend mit einem Slash. Zeilen ohne Slash an der ersten Position werden ignoriert.
Antwort: enthält im Nachrichtenkörper die ZConnect-Header aller Nachrichten in den in der Anfrage angegebenen Brettern (sofern zulässig, also z.B. Bretter nicht gesperrt sind). Diese Header werden jeweils durch eine Leerzeile voneinander getrennt. Genauer gesagt wird gefordert, daß Header durch eine Leerzeile abgeschlossen sein müssen - das bedeutet einerseits, daß beliebig viele Leerzeilen zwischen zwei Headern stehen können und andererseits, daß auch hinter dem letzte Header eine Leerzeile eingefügt werden muß. Die Header werden nicht ganz unbehandelt belassen:
1. Alle EMPs bis auf den angefragten (also den denjenigen Brettnamen enthaltenden EMP, der angefragt wurde) werden gelöscht
2. Optional können ROT, F-*, G-*, U-*, X-*, Z-*, ZNETZ-*, GATE, MAILER und nicht definierte Headerinformationen gelöscht werden
-----------------------------------------------------------------------------
ORDER
Funktion: dient der Anforderung von Nachrichten aus Brettern, die beim angeschriebenen System archiviert werden.
Nachrichtenkörper: enthält zeilenweise eine Beschreibung der gewünschten Nachrichten. Die Beschreibung folgt folgender Syntax:
<Brettname><Whitespace><Message-ID><Zeilenumbruch>
Der Brettname muß wie immer mit einem Slash beginnen und wird ohne Berücksichtigung der Groß-/Kleinschreibung behandelt. Als Whitespace, welches genau einmal auftritt, ist ASCII 9 (TAB) oder 32 (Leerzeichen) zulässig. Bei der Message-ID wird für den Teil vor dem "@" die Groß-/Kleinschreibung beachtet, für den Teil dahinter hingegen nicht (vgl. Headerinformation MID).
Antwort: ist eine Binärnachricht und enthält einen ZConnect-Puffer mit den angeforderten Nachrichten. Es dürfen auch mehrere Binärnachrichten erzeugt werden, eine einzelne bestellte Nachricht sollte dann aber nicht über mehrere Antwortnachrichten verteilt sein. [D3.1Z] möchte dies sogar verboten wissen.
Genau einer der Antwortnachrichten kann ein Protokoll als Kommentar vorangestellt werden (vgl. KOM-Headerinformation). Das vorgeschlagene Format ist beinahe identisch zu jenem beim Maps-Befehl FILES beschriebenen: Lediglich die "Ordered"-Zeile folgt nun folgender, veränderter Syntax:
Ordered <Brett> <Message-ID> (x bytes) (x.x <Währung>)
-----------------------------------------------------------------------------
ORDER-PM
Funktion: entspricht jener von ORDER, unterscheidet sich nur im Format der Antwort.
Nachrichtenkörper: wie bei ORDER beschrieben
Antwort: besteht aus mehreren Textnachrichten. Die angeforderten Nachrichten werden einzeln als private Nachricht an die Anfordernde verschickt. Dabei wird folgender Minimalheader vorgeschlagen wird:
EMP: <Anfordernde> OEM: <Brettname, wie in der Bestellung angegeben> ABS: MAPS@<System> OAB: <Originalabsenderin> STAT: CTL MID: <neu zu generieren>@<System>
Genau betrachtet wäre diese Headerspezifikation ein weiterer Fall des automatischen Weiterleitens, bei dem die vorgeschlagene Headerinformation STAT: CTL allerdings etwas fehl am Platze anmutet. Da es sich um einen Vorschlag handelt, wird an dieser Stelle vorgeschlagen, STAT: CTL nicht einzusetzen. Die vermutlich geplante Anwendung, der anfordernden Software die automatische Behandlung der Antworten zu ermöglichen, erübrigt sich, da ORDER-PM in seiner Gesamtheit nicht für ZConnectsysteme konzipiert ist.
Das bei ORDER beschriebene Protokolllayout gilt auch für ORDER-PM, wird hier aber nicht als Kommentar einer Antwortnachricht vorangestellt, sondern als einzelne Textnachricht versandt. Eine Abweichung in der Beschreibung des Protokolls bei [D3.1M] weist darauf hin, daß daran gedacht gewesen sein könnte, pro ORDER-PM Befehl nur die Bestellung genau einer Nachricht zu ermöglichen. Dies mag eine vorsichtige, strenge Implementierung berücksichtigen, sinnvoll erscheint es hingegen nicht.
Hinweis: Dieser Befehl wird von [D3.1Z] mit der Begründung abgelehnt, er unterscheide sich "nur durch verstümmelte Header von ORDER". Das Format des Headers ist beim ZConnect-Maps jedoch ausdrücklich nur als Vorschlag definiert.
Tatsächlich bricht ORDER-PM mit der Absicht von ZConnect-Maps, maschinenlesbare Antworten zu produzieren. Dies tut HELP allerdings auch. Die genannte Anwendung des Requests über das Netz von AnwenderInnen, die das ZConnect-Datenformat nicht verarbeiten können, ist jedoch Grund genug, die Spezifikation von ORDER-PM in diese Aufzählung aufzunehmen. Zudem ist der Befehl vom Gremium beschlossen worden.
-----------------------------------------------------------------------------
3.5.2. Kritik und Vorschläge
3.5.2.1. Maps und die vergessene Onlinephase
Die (Ab-)Bestellung von Brettern über Mails an eine automatische Userin ist hinsichtlich Brettbestellungen beim eigenen Server ein Relikt aus Zeiten, als ohne Protokolländerungen die neu erkannte Notwendigkeit der Bestimmung bezogener Bretter durch die AnwenderInnen selbst (also ohne Eingriff der SystembetreiberInnen) eingeführt werden sollte. In Store-And-Forward verwendenden Netzen ist dies für die Kommunikation mit entfernten Systemen nachwievor sinnvoll.
Bei Direktverbindungen, wie sie zwischen zwei direkt miteinander z.B. per Telefonleitung telefonieren und hierbei die ZConnect-Onlinephase einsetzen, wäre hingegen eine Integration der meisten Maps-Befehler in diese Onlinephase sinnvoll. ADD- und DEL-Listen könnten online übertragen und beantwortet werden (ggf. im Nach-Logoff - vgl. EXECUTE: L). LIST und HELP sind gar problemlos durch Definition neuer Magics für den FILEREQ-Header integrierbar. Auch die Online-Verwendung von ORDER und INDEX ist gut denkbar.
ADD und DEL als Maps-Kommandos haben jedoch nicht nur in Protokollvarianten wie Janus ihre Daseinsberechtigung. Es ist durchaus denkbar, daß ein System seinen UserInnen erlaubt, für das System Bretter beim Server zu bestellen (wobei das Serversystem diese Erlaubnis technisch umsetzen können muß, was derzeit nicht gegeben sein dürfte - s.u.). Jedoch wäre es dem ZConnect-Datenformat und dem Anliegen des ZConnect-Maps, UserInnen weitgehend von der technischen Seite der Maps-Kommunikation zu entlasten, angemessen, wenn Nachrichten von und an Maps regelmäßig das STAT: CTL Flag erhalten würden. Am Fehlen dieses Flags wären dann auch Anfragen/Antworten alter, nicht ZConnect-kompatibler Maps-Implementationen zu erkennen.
Unabhängig von einer möglichen Einführung von ORDER und INDEX in die Onlinephase sind diese und ORDER-PM (welches online unsinnig ist, da das anrufende System mit Sicherheit ZConnect-fähig ist) auch als Maps-Kommandos sinnvoll. Mit ihnen kann über Systemgrenzen hinweg z.B. auf die Daten von Archivsystemen zugegriffen werden.
Der HOLD Befehl wird immer nur gegenüber dem direkt servenden System eingesetzt werden. Für Janus-Protokollvarianten ist dieser Befehl daher sinnvoll, bei einem kompletten ZConnect gehört er jedoch eindeutig in die Onlinephase.
3.5.2.2. Maps aus Sicht des angeschriebenen Systems
Die herkömmliche Sichtweise, nur bestimmten UserInnen fremder Systeme die "Mapsberechtigung" einzeln (manuell oder per Onlinephase) zuzuteilen, muß überdacht werden, da der ZConnect-Maps systemübergreifend konzipiert ist. Denkbar wäre, daß ein Mailboxsystem seine UserInnen berechtigt, bei einem Serversystem beliebig Bretter für das Mailboxsystem zu bestellen. Die Einstellungsmöglichkeiten von Systemen müssen also sehr erweitert werden. So müssen bei einigen Maps-Befehlen Anfragen von beliebigen Absenderinnen beantwortet (z.B. ORDER) werden und bei anderen (z.B. ADD) möglicherweise nur diejenigen, die von bestimmten, autorisierten Systemen aus abgesandt wurden.
3.5.2.3. Schwierigkeiten bei der Umsetzung des Gedankens, Maps transparent zu gestalten
Die Antwort auf den HELP-Befehl kann nur insofern durch z.B. ein Pointprogramm verarbeitet werden, als der empfangene Hilfstext nicht als normale Mail sondern als Text mit einer bestimmten Zugehörigkeit bewertet und z.B. nicht in das Postfach der Empfängerin einsortiert sondern gesondert gespeichert wird. Für eine sinnvolle und zugleich mächtige Implementierung von ZConnect-Maps fehlt jedoch eine Funktion, die es einem UserInneninterface erlaubt, den konkreten Befehlsumfang eines Maps abzufragen.
# Ein solches Interface könnte natürlich testweise alle theoretisch # möglichen Maps-Befehle abschicken und die Antworten auswerten. Dies # ist aber wohl als unschön abzulehnen. Daher wird an dieser Stelle # ein weiterer Maps-Pflichtbefehl vorgeschlagen, über den das Gremium # abstimmen sollte:
FEATURES
Funktion: dient der Feststellung des Befehlsumfangs der mit diesem Befehl konfrontierten Maps-Implementation.
Nachrichtenkörper: wird ignoriert
Antwort: enthält zeilenweise ohne Leerzeilen eine Aufzählung der dem Maps bekannten Befehle. Es wird pro Zeile nur ein Befehl angegeben. Groß-/Kleinschreibung ist zu ignorieren. Kommentarzeilen sind möglich; sie werden durch ein Semikolon in der ersten Spalte gekennzeichnet. Es gibt keine Zeilenlängenbegrenzung, Whitespaces sind verboten. Zeilen werden durch das übliche CR/LF (ASCII 13/10) voneinander getrennt oder enden mir dem Dateiende.
Wenn die aufgelisteten Befehle den Namen einer der ZConnect-Maps-Befehle tragen, so kann die anfragende Applikation davon ausgehen, daß sich der Befehl so verhält, wie der ZConnect-Maps-Standard es festlegt.
Mit der Übertragung von unbekannten Befehlen muß gerechnet werden, auch mit solchen, die aus mehreren Wörtern bestehen - entsprechend der Vorschrift, daß Whitespaces verboten sind, können solche Befehlslisteneinträge als fehlerhafte Zeilen ignoriert oder aufgrund besonderer Vereinbarung ausgewertet werden. Ein Befehl wie "LIST MY BRETTER" darf aber niemals als "LIST" mißverstanden werden.
Hinweis: Die mögliche Übertragung einer Versionsnummer des ZConnect-Maps' erscheint nicht unbedingt unnötig (die zukünftige Bedeutung oder Antwortform eines Befehls könnte sich mit neuen Maps-Spezifikationen ändern). Jedoch ist der Transport bei den derzeit bekannten Befehlen mal als Kommentar (vgl. LIST), mal als eigenständige Zeile (vgl. ORDER) definiert oder besser: undefiniert geblieben.
Für FEATURES wird vorgeschlagen, die erste Zeile der Feature-List grundsätzlich der Versionsangabe vorzubehalten. Das Format sollte hierbei dem des Antwortprotokolls beim FILES-Befehl folgen.
4. ERGÄNZENDE INFORMATIONEN
Dieser Teil der Dokumentation besteht bis auf wenige Ausnahmen aus komplett anzuheftenden Fremdtexten. Diese Vervollständigung soll nicht Bestandteil der Aufgabenstellung sein, unter den einzelnen Überschriften ist aber angegeben, welche Informationen gemeint sind, und, sofern bekannt, wo diese erhältlich sind.
Bei einigen Fremdtexte, z.B. RFCs, ist eine Anheftung der Originaltexte sinnfrei, da diese frei erhältlich sind. Bei besonders wichtigen Texten wäre aber eine deutschsprachige Übersetzung durchaus angebracht.
4.1. Datenschutzbestimmungen
Datenschutzbestimmungen sind im Globalen Dorf eine sehr voluminöse Angelegenheit. In der Bundesrepublik sind sie zudem zum größten Teil Ländersache. Die jeweils gültigen Datenschutzgesetze können bei den Landesdatenschutzbeauftragten zumeist kostenlos angefordert werden.
An dieser Stelle soll eine grundlegende Zusammenfassung der wichtigsten Grundregeln erfolgen, also insbesondere auf die zeitlich begrenzte Zulässigkeit von Logdateien und Protokollen über die UserInnenaktivität hingewiesen werden. Dazu gehört hierher eine Übersicht über die Anschriften der Landesdatenschutzbeauftragten, welche ihrerseits bei den Einzelnen Beauftragten erhältlich ist.
4.2. Fremdformate
Es ist nicht Aufgabe einer reinen ZConnect-Dokumentation alle Konkurrenzprotokolle aufzulisten und zu beschreiben. Beschreibungen von Fremdformaten sind jedoch insbesondere da hilfreich, wo klare Bezugspunkte zu ZConnect bestehen (z.B. Z3.8 als Vorgängerprotokoll oder die RFC-Suite als Weltstandard).
4.2.1. RFC
Aus dem RFC-Bereich sind insbesondere die Nummern 822 (Mail), 1036 (News), 1521 (MIME), 1522 (MIME Part 2) und 1563 (text/enriched) interessant.
4.2.2. Z 3.8
Das Z3.8 Netcallverfahren besteht wie ZConnect aus einer Login-/ Datentauschphase und einem Datenformat. Letzteres hat heute keinerlei Bedeutung mehr. An dieser Stelle wird daher nur auf das "Hitchhiker's Guide to the /Z-NETZ" ([Hitchhiker]) hingewiesen. Das Loginverfahren von Z3.8 wird bei den sehr weit verbreiteten JANUS-Protokollvarianten verwendet und ist daher im Abschnitt "Janus und verwandte Protokollvarianten" ausführlich beschrieben.
4.2.3. Fido
Die Regelungen für Fido-Datenaustausch und -format sind umfangreich und sollten an dieser Stelle nur soweit grob beschrieben werden, daß die "F-"-Headerzeilen ZConnects dadurch illustriert werden.
4.3. MIME
Nach Diskussion und Entscheidungsfindung durch das Gremium ist es von großer Wichtigkeit, MIME ausführlich zu beschreiben. Anspruch sollte dabei sein, die Lektüre der einschlägigen RFC-Regelungen überflüssig zu machen, um den "einfacheren" Charakter von ZConnect aufrecht zu erhalten.
4.4. Einige softwaretechnische Vorschläge
Die Lösung einiger Standardprobleme bei der Implementierung von ZConnect kann die Datensicherheit im Netz beeinflussen. Insbesondere schnelle, fehlerfreie Dupecheckalgorithmen können helfen, eine "beliebte" Fehlerquelle auszuschließen.
4.4.1. Hashverfahren für Rekursionscheck
An dieser Stelle soll ein auf einem, Nicht-InformatikerInnen meistens unbekannten, Hashverfahren aufbauender Check auf doppelte Message-IDs zumindest im Pseudocode beschrieben werden. Evtl. kann dabei aufgezeigt werden, wie die Forderung von "90 Tagen Aufbewahrungsfrist" für Message-IDs mit schnellem Check kombiniert werden kann. Da einige ProgrammiererInnen bereits dazu übergehen, nicht mehr die komplette Message-ID zu prüfen, sondern aus "Effizienzgründen" bereits ähnliche IDs, die z.B. dieselbe CRC-Summe ergeben, als Dupe zu löschen, scheint ein entsprechender Verfahrensvorschlag geboten.
5. STAND DER DINGE
An dieser Stelle sollte immer der aktuelle Stand der Dokumentation und unmittelbar bevorstehende Entscheidungen des Gremiums erwähnt werden.
ZC 3.1 ist mit dem Ende der fünften Gremiumswahl am 5.3. geschlossen worden. Zur CeBIT'95 erschien daraufhin [D3.1Z], welches in der Folge zu Irritationen wegen Widersprüchen zwischen Gremiumsbeschlüssen und [D3.1Z] geführt hat. Es herrscht Einigkeit und Wille, eine grundlegend neue Dokumenation zu schaffen. Dieser Text soll dazu die Grundlage stellen.
In der Diskussion ist, wie die Entwicklung von ZConnect weiter verlaufen soll. Dabei geht u.a. um die Frage, ob ZConnect in Zukunft noch ZConnect heißen soll, und wie die Bindung der Zerberus GmbH zu ZConnect vollständig getrennt werden kann, um das Kompetenzwirrwarr zu entwirren und gleichzeitig Copyright-Fragen eindeutig zu beantworten.
ANHÄNGE
A) Literaturverzeichnis
Verwendete Quellen
[PM1] Mündliche, persönliche Mitteilung von Felix Heine (Zerberus GmbH) vom 25.2.1995 [PM2] Persönliche Mitteilung von Peter Mandrella (Crosspoint-Autor) vom 16.5.1995 [PM3] Persönliche Mitteilung von Holger Lembke (!!MessageBase-Autor) vom 25.5.1995 [D3.0] Zerberus GmbH: "ZConnect, das Datenaustauschformat für Mailbox-Netze, Version 3.0", Verlag Art d'Ameublement, Bielefeld 1993 [D3.1M] Änderungssammlung März bis Dezember 1993, z.B. als Nachricht von hd@wf-hh.sh.sub.de vom 23.02.1995, Message-ID 5gPrhK4WbB@p-alf.wf-hh.sh.sub.de [D3.1P] ZConnect-Proposal, zusammengestellt von Martin Husemann, z.B. als Nachricht von h.fricke@laguna.han.de vom 15.2.1995, Message-ID: 5FuuqDhpZQB@ncbmail-development-labs.laguna.han.de [D3.1Z] Zerberus GmbH: "ZConnect. Datenaustauschformat für Mailboxnetzwerke Version 3.1", Verlag Art d'Ameublement, Bielefeld 1994 [B1] Nachricht von H. Fricke (H.Fricke@laguna.zer) vom 5.12.1992, Message-ID: 4rGKpeGhwz@LAGUNA [B2] Nachricht von martin%bi-link.owl.de@UUCP.ZER (Martin Husemann) vom 30.7.1993 in /T-NETZ/SUPPORT/ZCONNECT, Message-ID: CB01q1.744@bi-link.owl.de [B3] Nachricht von Martin Husemann in /T-NETZ/SUPPORT/ZCONNECT, Message-ID: idC8LJqA.DB9@bi-link.owl.de [B4] Nachrichten in /T-NETZ/ZCONNECT/DISKUSSION: (zB. von Packbart@people-s.people.sub.org, Message-ID: 5KO_df2ufRB@point47.people-s.people.sub.org und holger_lembke@laguna.han.de, Message-ID: r0mrmjb8je33h6ob877SKgxholger_lembke@holger.laguna.han.de [B5] Nachricht von GATEKOO@heather.hanse.de vom 4.7.1994, Message-ID: 17.10937@heather.hanse.de [B6] Nachricht von hd@wf-hh.sh.sub.de in /T-NETZ/ZCONNECT/MELDUNGEN vom 23.2.1995, Message-ID: 5g0d4-pW3bB@p-alf.wf-hh.sh.sub.de [B7] Nachricht von holger_lembke@laguna.han.de (Holger Lembke) vom 1.6.1995, Message-ID: 58cp7w8eqf33qey8e3fsyhsholger_lembke@holger.laguna.han.de [B8] Nachricht von hd@wf-hh.sh.sub.de vom 14.3.1995, Message-ID: 5hqnSF0_WbB@p-alf.wf-hh.sh.sub.de [B9] Nachricht von hd@wf-hh.shnet.org vom 1.10.1995, Message-ID: 5v1oc-Y$WbB@p-alf.wf-hh.shnet.org [Hitchhiker] Hitchhikers Guide to the /Z-NETZ, z.B. erhältlich in der Crosspoint-Supportbox (Telefonnummer 06241-592184) [JanusPlus] Nachricht von h.fricke@laguna.han.de vom 1.6.1995, Message-ID: 5n0MZ0D_ZQB@ncbmail-developement-labs.laguna.han.de [Netikette] Netikette, in der aktuellen Fassung regelmäßig im Brett /Z-NETZ/WICHTIG als Nachricht von KERSTIN@TTB.aworld.de zu finden [Mitglieder] Liste der Gremiumsmitglieder, in der aktuellen Fassung regelmäßig im Brett /T-NETZ/ZCONNECT/MELDUNGEN zu finden, z.B. als Nachricht von hd@wf-hh.shnet.org vom 15.6.1995, Message-ID: 5nrR_6T_WbB@p-alf.wf-hh.shnet.org [Netzrecht] Günther Freiherr von Gravenreuth: "Netze in den Maschen der Gesetze", Compulaw-Verlag, München 1993, S. 10ff [RFC822] RFC822 definiert das Aussehen und die Behandlung von Internet-Messages, geschrieben von David H. Crocker, 13. August 1982 [RFC1521] RFC1521 definiert die Multipurpose Internet Mail Extension, geschrieben von N.Borenstein et al, September 1993 [RFC1563] RFC1563 definiert den MIME-Content-Type text/enriched, geschrieben von N.Borenstein et al, Januar 1994 [Wahl1] Ergebnis der ersten Wahl des Gremiums zu ZConnect, im Brett /T-NETZ/ZCONNECT/MELDUNGEN zu finden, z.B. als Nachricht von hd@wf-hh.shnet.org vom 7.6.1995, Message-ID: 5nPL4bJ_WbB@p-alf.wf-hh.shnet.org [Wahl2] Siehe [Wahl1], Message-ID: 5nPL5f0_WbB@p-alf.wf-hh.shnet.org [Wahl3] Siehe [Wahl1], Message-ID: 5nPL6EMKWbB@p-alf.wf-hh.shnet.org [Wahl4] Siehe [Wahl1], Message-ID: 5nPL6i14WbB@p-alf.wf-hh.shnet.org [Wahl5] Siehe [Wahl1], Message-ID: 5nPL7gq4WbB@p-alf.wf-hh.shnet.org und zusätzlich das Addendum zur fünften Wahl, die Nachricht mit der Message-ID:5vlod264WbB@ü-alf.wf-hh.shnet.org
Empfohlene Literatur
[DES] A.K. Dewdney: "Computer-Kurzweil", in: Spektrum der Wissenschaft, Januar 1989, S. 6 bis 10
[RFC1036] Standard for interchange of USENET messages, geschrieben von M.R. Horton und R.Adams, Dezember 1987
[RFC1522] MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text, geschrieben von K. Moore, September 1993
B) Glossar
Ein Glossar soll die verwendeten unausweichlichen Fachtermini erläutern. Darüberhinaus sollen auch Begriffe, die in der Dokumentation selber keine Verwendung finden, hier untergebracht werden. Aktuell werden nur diejenigen Begriffe hier erläutert, die ZConnect-spezifisch sind oder häufig verwendet werden.
Brett Siehe GABELN
Control-Nachricht Nachricht eines bestimmten Formats, die z.B. für das Löschen von Nachrichten, das Einrichten eines Bretts o.ä. sorgt
Crossposting (Physikalisch) eine Nachricht mit mehreren EmpfängerInnenangaben
Dupe Doppelt vorhandene Nachricht
Dupecheck Testen auf doppelt vorhandene Nachrichten (bei ZConnect anhand der Message-ID). Gefundene Dupes werden üblicherweise gelöscht
GABELN Gruppen, Areas, Bretter, Echos, Listen, Newsgroups - Kunstbegriff, welcher die in verschiedenen Netzzusammenhängen gebräuchlichen Bezeichnungen für offentliche Nachrichtenforen zusammenfaßt
kreuzvernetzt /Z-NETZ/FORUM/NETZWESEN und de.soc.netzwesen sind kreuzvernetzt. Das heißt, daß die in eines dieser ->Bretter geschickte Nachricht sowohl im deutschsprachigen Usenet als auch im /Z-Netz verteilt wird, ohne als ->Crossposting verschickt werden zu müssen. Wird in kreuzvernetzte Bretter ein Crossposting verschickt, kommt es zu ->Nopes
Mail Begriff aus der ->RFC-Welt für eine private Nachricht. Synonym: PM (private Mail)
Mailbox Per Modem anrufbares System, welches üblicherweise für mehrere ->Points und/oder ->OnlineuserInnen den Netzanschluß gewährleistet, indem es Nachrichten für sie entgegennimmt bzw. verteilt
News Begriff aus der ->RFC-Welt für eine öffentliche Nachricht. Synonym: Brettnachricht
Nope Verkürzt gesagt das Gegenstück zu einem ->Dupe, also eine gar nicht vorhandene Nachricht. Ein Nope hebt sich von einer normalen, nicht vorhandenen Nachricht dadurch ab, daß er nicht als Nope gedacht war :-). Er entsteht, wenn eine Nachricht irrtümlich als Dupe entsorgt wird. Dies kann passieren, wenn eine Nachricht auf mehreren Wegen gleichzeitig in ein ->kreuzvernetztes ->Brett geschickt wird. Wird also z.B. eine Nachricht nach /Z-NETZ/FORUM/NETZWESEN und de.soc.netzwesen geschickt, wobei die Message-ID gleich ist (z.B. durch ein fehlerhaftes Gateway), entsteht ein Nope, weil auf Systemen die beide Bretter führen, die später ankommende Variante als Dupe gelöscht wird. Dann bekommen z.B. die LeserInnen von de.soc.netzwesen die Nope-Nachricht nicht zu Gesicht, während sie in /Z-NETZ/FORUM/NETZWESEN vorhanden ist
OnlineuserIn UserIn, der/die in physikalischer Verbindung z.B. zu einer Mailbox steht, etwa um Nachrichten zu lesen
Point UserIn, der/die nur kurz und periodisch zu einer Mailbox Kontakt aufnimmt, um paketweise für ihn/sie bestimmte Daten abzuholen und diese nach Trennung der Verbindung zu verarbeiten (z.B. Nachrichten zu lesen)
RFC Request For Comment, mit diesem Kürzel werden Texte gekennzeichnet, die für die Verwendung im Internet gedachte Festlegungen enthalten
C) ZC 3.1 Grammatik in BNF
Auch wenn eine Protokollspezifikation nicht kontextfrei und die Semantik nur schwer formal zu beschreiben ist, sollte zum Zwecke der Eindeutigkeit der Notation die Syntax ZConnects in Backus Naur Form notiert werden. Fleißarbeit.
D) Datenformatsübersicht
Die folgende, tabellarische Aufstellung gibt eine Übersicht über alle ZConnect-Headerinformationen. Die Spalte "Minimal-ZC" stellt den Versuch dar, diejenigen Headerinformationen zu kennzeichnen, die eine Implementation minimal auswerten/erzeugen können muß, um sich ZConnect-kompatibel nennen zu dürfen. Naturgemäß gehören alle Pflichtinformationen dazu, genauso naturgemäß reicht aber eine Unterstützung der Pflichtinformationen nicht aus, um ZConnect-Nachrichten korrekt handhaben zu können.
D) 1. Tabellarische Übersicht der Headerinformationen
Kennung | P | N | S | N | M | | f | u | t | u | i | | l | r | a | r | n | | i | | b | | i | Legende: | c | e | i | P | m | | h | i | l | M | a | x = Ja | t | n | | | l | - = Nein | | m | | | - | E = Erzeugen | | a | | | Z | A = Auswerten | | l | | | C | * = Siehe Dokumentation ----------------------+---+---+---+---+---+ v = veraltet ABS | x | x | - | - | x | ----------------------+---+---+---+---+---+ ANTWORT-AN | - | - | - | - | x | ----------------------+---+---+---+---+---+ BET | x | x | - | - | x | ----------------------+---+---+---+---+---+ BEZ | - | - | x | - | E | ----------------------+---+---+---+---+---+ CHARSET | - | x | - | - | A | ----------------------+---+---+---+---+---+ CONTROL: ADD | - | x | - | - | A | ----------------------+---+---+---+---+---+ CONTROL: CANCEL | - | x | - | - | A | ----------------------+---+---+---+---+---+ CONTROL: DEL | - | x | - | - | A | ----------------------+---+---+---+---+---+ CRYPT | - | x | - | x | - | ----------------------+---+---+---+---+---+ CRYPT-CONTENT-CHARSET | - | x | - | x | - | ----------------------+---+---+---+---+---+ CRYPT-CONTENT-KOM | - | x | - | x | - | ----------------------+---+---+---+---+---+ CRYPT-CONTENT-TYP | - | x | - | x | - | ----------------------+---+---+---+---+---+ DDA | - | x | - | - | - | ----------------------+---+---+---+---+---+ DISKUSSION-IN | - | - | - | - | A | ----------------------+---+---+---+---+---+ EB | - | - | - | x | - | ----------------------+---+---+---+---+---+ EDA | x | x | - | - | x | ----------------------+---+---+---+---+---+ EMP | x | - | - | - | x | ----------------------+---+---+---+---+---+ Kennung | P | N | S | N | M | | f | u | t | u | i | | l | r | a | r | n | | i | | b | | i | Legende: | c | e | i | P | m | | h | i | l | M | a | x = Ja | t | n | | | l | - = Nein | | m | | | - | E = Erzeugen | | a | | | Z | A = Auswerten | | l | | | C | * = Siehe Dokumentation ----------------------+---+---+---+---+---+ v = veraltet ERR | - | x | - | x | A | ----------------------+---+---+---+---+---+ ERSETZT | - | - | - | - | - | ----------------------+---+---+---+---+---+ FILE | - | x | - | - | - | ----------------------+---+---+---+---+---+ KOM | - | x | - | - | A | ----------------------+---+---+---+---+---+ KOP | - | - | - | - | - | ----------------------+---+---+---+---+---+ LANGUAGE | - | x | - | x | - | ----------------------+---+---+---+---+---+ LDA | - | x | - | - | - | ----------------------+---+---+---+---+---+ LEN | x | x | - | - | x | ----------------------+---+---+---+---+---+ MAILER | - | x | - | - | - | ----------------------+---+---+---+---+---+ MID | x | x | - | - | x | ----------------------+---+---+---+---+---+ MIME | - | x | - | x | - | ----------------------+---+---+---+---+---+ O-EDA | - | x | - | - | E | ----------------------+---+---+---+---+---+ O-ROT | - | x | - | - | E | ----------------------+---+---+---+---+---+ OAB | - | x | - | - | E | ----------------------+---+---+---+---+---+ OEM | - | - | - | - | E | ----------------------+---+---+---+---+---+ ORG | - | x | - | - | - | ----------------------+---+---+---+---+---+ PGP | - | x | - | x | - | ----------------------+---+---+---+---+---+ PGP-ID | - | x | - | - | - | ----------------------+---+---+---+---+---+ PGP-KEY-AVAIL | - | x | - | - | - | ----------------------+---+---+---+---+---+ PGP-KEY-COMPROMISE | - | x | - | * | - | ----------------------+---+---+---+---+---+ PGP-KEY-OWN | - | x | - | x | - | ----------------------+---+---+---+---+---+ PGP-PUBLIC-KEY | - | x | - | * | - | ----------------------+---+---+---+---+---+ PGP-SIG | - | x | - | - | - | ----------------------+---+---+---+---+---+ Kennung | P | N | S | N | M | | f | u | t | u | i | | l | r | a | r | n | | i | | b | | i | Legende: | c | e | i | P | m | | h | i | l | M | a | x = Ja | t | n | | | l | - = Nein | | m | | | - | E = Erzeugen | | a | | | Z | A = Auswerten | | l | | | C | * = Siehe Dokumentation ----------------------+---+---+---+---+---+ v = veraltet POST | - | x | - | - | - | ----------------------+---+---+---+---+---+ PUBLIC-KEY | v | v | v | v | v | ----------------------+---+---+---+---+---+ ROT | x | x | - | - | x | ----------------------+---+---+---+---+---+ SIGNED | - | x | - | - | - | ----------------------+---+---+---+---+---+ SPERRFRIST | - | x | - | - | * | ----------------------+---+---+---+---+---+ STAT: AUTO | - | x | - | - | - | ----------------------+---+---+---+---+---+ STAT: CTL | - | x | - | - | x | ----------------------+---+---+---+---+---+ STAT: DES | v | v | v | v | v | ----------------------+---+---+---+---+---+ STAT: EB | - | x | - | x | - | ----------------------+---+---+---+---+---+ STAT: NOCIPHER | - | x | - | x | * | ----------------------+---+---+---+---+---+ STAT: NOKOP | - | x | - | - | A | ----------------------+---+---+---+---+---+ STAT: PGP | v | v | v | v | v | ----------------------+---+---+---+---+---+ STAT: TRACE | - | x | - | x | E ---> falls TRACE empfangen ----------------------+---+---+---+---+---+ STICHWORT | - | - | - | - | - | ----------------------+---+---+---+---+---+ TELEFON | - | x | - | - | - | ----------------------+---+---+---+---+---+ TRACE | - | x | - | - | A | ----------------------+---+---+---+---+---+ TYP | x | x | - | * | x | ----------------------+---+---+---+---+---+ VER | - | x | - | x | - | ----------------------+---+---+---+---+---+ VIA | * | - | x | x | E | ----------------------+---+---+---+---+---+ WAB | - | x | - | - | x | ----------------------+---+---+---+---+---+ ZUSAMMENFASSUNG | - | x | - | - | - | ----------------------+---+---+---+---+---+
D) 2. Liste der Pflichtinformationen
ABS, BET, EDA, EMP, LEN, MID, ROT, TYP, VIA (vgl. Dokumentation)
D) 3. Liste der das Routing beeinflussenden Informationen
ABS.............. Hierhin sind ggf. Fehlermeldungen zu schicken ANTWORT-AN....... Hierhin sind ggf. Fehlermeldungen zu schicken CONTROL: CANCEL.. Hierauf ist ggf. mit Löschung zu reagieren DISKUSSION-IN.... Hierhin muß ein Pointprogramm öffentliche Antworten umleiten EMP.............. Hierhin soll die Nachricht ERR.............. Es handelt sich um eine ohne Rücksicht auf Verluste zu routende Fehlermeldung (LDA)............ Evtl. ist eine Nachricht nicht mehr zu routen, wenn sie das LDA-Alter überschreitet MID.............. Dupecheck ROT.............. Rekursionscheck (SPERRFRIST)..... Evtl. ist eine Nachricht nicht vor der SPERRFRIST an Endsysteme zu routen STAT: CTL........ Evtl. handelt es sich um eine auszuwertende Nachricht (CONTROL: CANCEL) STAT: NOKOP...... Bei Auspaltungen gemischtadressierter bzw. privater Nachrichten zu beachten TRACE............ Hierauf ist von Systemen eine Antwort zu generieren WAB.............. Hierhin sind ggf. Fehlermeldungen zu schicken
E) Routing
Das Thema Routing ist sehr komplex. An dieser Stelle sollten Teile von RFC822 (Abschnitt "address specification") und die komplette RFC 1711 ("Classification in eMail Routing"), möglichst in deutsche Sprache übersetzt, eingebunden werden.
Wer immer diesen Anhang mit einem Text füllen möchte, ist dringend dazu aufgefordert, diesen bei der DOKUKOO vorzustellen.
F) Janus und verwandte Protokollvarianten
JANUS
Das Loginverfahren von Z3.8 hat Eingang in die JANUS-Protokollvariante von ZConnect gefunden. JANUS transportiert reines ZConnect-Datenformat, regelt Login und Pufferaustausch aber nicht per ZConnect-Onlinephase sondern nach im folgenden beschriebener Methode (vgl. [3.1P]). Die verwendeten Übertragungsprotokolle (ZModem o.ä.) und Packprogramme (ZIP o.ä.) müssen von den beteiligten Parteien zuvor mit einem menschlichen Protokoll vereinbart worden sein.
Die "Z3.8-Onlinephase" wird aus Sicht der Anruferin beschrieben, die Sicht der Angerufenen ergibt sich entsprechend:
0. Verbindung aufbauen
1a. Auf den String "Username:" warten
1b. mit dem String "JANUS" und anschließendem CR (ASCII 13) antworten
2a. auf den String "Systemname:" warten
2b. eigenen Systemnamen bzw. Pointnamen (nicht UserInnennamen!) senden
In [3.1P] wird empfohlen, die Reihenfolge von 1 und 2 beliebig zu erwarten. Groß- und Kleinschreibung sind zu beachten, der abschließende Doppelpunkt dient als hinreichende Unterscheidung zum vielleicht vor dem Login auftauchenden Text "Username" ohne Doppelpunkt.
3a. auf den String "Passwort:" oder "Password" warten
3b. mit dem Systempaßwort-String und abschließendem CR antworten
4. wenn nicht "Running ARC...." empfangen wird, entweder auflegen oder wieder bei 1a beginnen. Sollte das angerufene System "Netzzugriff verweigert" senden, ist auf jeden Fall aufzulegen
5. wenn nicht innerhalb einer voreingestellten Zeit (10 Minuten wird empfohlen) ein NAK (ASCII 21) oder ein ACK (ASCII 6) empfangen wird, dann auflegen. Andere empfangene Zeichen sind zu ignorieren. Auf ACK wird mit dem Fortfahren bei 5. reagiert, auf NAK mit dem Senden einer Seriennummer.
Diese Seriennummer besteht aus vier beliebigen Bytes plus einem für eine Prüfsumme. Auf diese Weise prüfen manche Produkte auf eventuelle Raubkopien (identische Seriennummer bei Senderin und Empfängerin). Software, die diesen Mechanismus nicht nutzen möchte, sollte fünf Nullen (ASCII 0) senden.
Es sollte nur eine begrenzte Zahl von NAKs akzeptiert werden (z.B. 10). Das Timeout kann ab dem ersten empfangenen NAK auf eine Minute oder weniger eingestellt werden. Zur Illustration als C++-Konstrukt beschrieben:
void online (void) { // ... diverser Code ... BOOL bo_exit = false, bo_ok = false;
word w_nakcount = 0;
while (bo_exit) { switch (LeseZeichen()) { case ACK : bo_ok = bo_exit = true; break;
case NAK: set_timeout(60); w_nakcount++; if (w_nakcount>10) { bo_exit = true; break; } sende_seriennummer();
default: } } if (!bo_ok) { // Auflegen, -räumen und solche Sachen } else { // Weiter bei 6. } }
6. Übertragungsprotokoll starten zum Senden der einen (!) Datei mit allen Daten, die gesendet werden sollen. Die zu sendende Datei heiß "CALLER" und wird mit einer DOS-üblichen Extension von DOS-üblichen Packprogrammen versehen, also z.B. ".ZIP" oder ".ARJ"
7. Wenn das verwendete Übertragungsprotokoll eine Init-Sequenz hat, also das Senden mit einer bestimmten Bytesequenz ankündigt, dann auf diese Sequenz warten (genauso ist die Empfängerin während Phase 5 der Übertragung vorgegangen), andernfalls direkt weiter bei 8.
8. Übertragungsprotokoll starten zum Empfangen der einen (!) Datei mit allen Daten, die die Angerufene zu übertragen hat. Die zu empfangende Datei heiß "CALLED" und ist mit einer DOS-üblichen Extension von DOS-üblichen Packprogrammen versehen, also z.B. ".ZIP" oder ".ARJ"
9. Verbindung trennen
10. Wenn irgendeine Phase dieses Austausches nicht ordnungsgemäß durchgeführt werden konnte, ist der gesamte Netcall als gescheitert zu betrachten. Insbesondere sind (evtl. erfolgreich) gesendete Nachrichten beim nächsten Netcall erneut zu senden und empfangene Daten komplett zu löschen. Dies gilt für Anruferin und Angerufene gleichermaßen.
Die empfangenen bzw. gesendeten Pakete sind ZConnect-Puffer. D.h. daß nach dem Auspacken beliebig viele Dateien mit den bekannten Dateinamen (siehe Kapitel "Übertragene Dateien") einzusortieren sind.
JANUS+
JANUS+ ist als Reaktion auf die umständliche Onlinephase ZConnects entstanden. Es verbreitet sich immer mehr, seine Dokumentation ([JanusPlus]) sollte daher im Rahmen der ZConnect-Dokumentation aufgenommen werden. Das Gremium entscheidet derzeit über die Aufnahme des JanusPlus-Logins in den ZConnect-Standard.
G) Zeichensätze
Hier sollten alle Zeichensätze in Tabellenform aufgelistet werden, die im Rahmen von ZConnect relevant sind. Neben dem im Folgenden enthaltenen Standardzeichensatz sind dies vor allem (vgl. CHARSET) ISO1-9. Die IBM Codepages 437 und die internationale 850 sind von informativem Wert. Unicode als Zwei-Byte-Code ist sehr umfangreich und vermutlich nicht im Rahmen der ZConnect-Beschreibung dokumentierbar.
ZConnect Standardzeichensatz
In Textnachrichten sind folgende Zeichen erlaubt: 9 (<TAB>), 13 (<CR>), 10 (<LF>) sowie die folgenden Zeichen:
IBM ISO Zeichen IBM ISO Zeichen 32 32 80 80 P 33 33 ! 81 81 Q 34 34 " 82 82 R 35 35 # 83 83 S 36 36 $ 84 84 T 37 37 % 85 85 U 38 38 & 86 86 V 39 39 ' 87 87 W 40 40 ( 88 88 X 41 41 ) 89 89 Y 42 42 * 90 90 Z 43 43 + 91 91 [ 44 44 , 92 92 \ 45 45 - 93 93 ] 46 46 . 94 94 ^ 47 47 / 95 95 _ 48 48 0 96 96 ` 49 49 1 97 97 a 50 50 2 98 98 b 51 51 3 99 99 c 52 52 4 100 100 d 53 53 5 101 101 e 54 54 6 102 102 f 55 55 7 103 103 g 56 56 8 104 104 h 57 57 9 105 105 i 58 58 : 106 106 j 59 59 ; 107 107 k 60 60 < 108 108 l 61 61 = 109 109 m 62 62 > 110 110 n 63 63 ? 111 111 o 64 64 @ 112 112 p 65 65 A 113 113 q 66 66 B 114 114 r 67 67 C 115 115 s 68 68 D 116 116 t 69 69 E 117 117 u 70 70 F 118 118 v 71 71 G 119 119 w 72 72 H 120 120 x 73 73 I 121 121 y 74 74 J 122 122 z 75 75 K 123 123 { 76 76 L 124 124 | 77 77 M 125 125 } 78 78 N 126 126 ~ 79 79 O 127 127 &127; 128 199 € 183 192 + 129 252 ü 184 169 + 130 233 ‚ 189 162 + 131 226 ƒ 190 165 + 132 228 ä 198 227 + 133 224 … 199 195 | 134 229 † 207 164 - 135 231 ‡ 208 240 + 136 234 ˆ 209 208 - 137 235 ‰ 210 202 + 138 232 Š 211 203 + 139 239 ‹ 212 200 + 140 238 Œ 214 205 + 141 236 215 206 + 142 196 Ä 216 207 + 143 197 221 166 + 144 201 222 204 + 145 230 ‘ 224 211 à 146 198 ’ 225 223 ß 147 244 “ 226 212 â 148 246 ö 227 210 ã 149 242 • 228 245 ä 150 251 – 229 213 å 151 249 — 230 181 æ 152 255 ˜ 231 222 ç 153 214 Ö 232 254 è 154 220 Ü 233 218 é 155 248 › 234 219 ê 156 163 œ 235 217 ë 157 216 236 253 ì 160 225 237 221 í 161 237 ¡ 238 175 î 162 243 ¢ 239 180 ï 163 250 £ 240 173 ð 164 241 ¤ 241 177 ñ 165 209 ¥ 243 190 ó 166 170 ¦ 244 182 ô 167 186 § 245 167 õ 168 191 ¨ 246 247 ö 169 174 © 247 184 ÷ 170 172 ª 248 176 ø 171 189 « 249 168 ù 172 188 ¬ 250 183 ú 173 161 251 185 û 174 171 ® 252 179 ü 175 187 ¯ 253 178 ý 181 193 + 182 194 |
Diese Zeichen werden gemäß dem IBM-PC Zeichensatz interpretiert. Das Zeichen mit dem Code 255 wird bei Konvertierungen in ein # Leerzeichen gewandelt. Das Zeichen mit dem Code 254 ist in der # ZConnect-Ausgangsdokumentation nicht erwähnt. Obige Tabelle zeigt in der Spalte "Zeichen" die gewünschte Darstellung auf dem Bildschirm, in der Spalte "ISO" den dafür nötigen Code im ISO-1-Zeichensatz und in der Spalte "IBM" den in Textnachrichten verwendeten Code. Nicht aufgeführte Codes sind verboten.
H) Zeitzonen
Zone W/S Diff. Name NT W -11:00 Nome Time AHST W -10:00 Alaska-Hawaii Standard Time YST W -9:00 Yukon Standard Time PST W -8:00 Pacific Standard Time MST W -7:00 Mountain Standard Time PDT S -7:00 Pacific Daylight Time CST W -6:00 Central Standard Time MDT S -6:00 Mountain Daylight Time EST W -5:00 Eastern Standard Time CDT S -5:00 Central Daylight Time AST W -4:00 Atlantic Standard Time EDT S -4:00 Eastern Daylight Time NST W -3:30 Newfoundland Standard Time GST W -3:00 Greenland Standard Time ADT S -3:00 Atlantic Daylight Time AT W -2:00 Azores Time WAT W -1:00 West Africa Time UT W +0:00 Universal Time Z W +0:00 Universal Time GMT W +0:00 Greenwich Mean Time BST S +1:00 British Summer Time CET W +1:00 Central European Time MET W +1:00 Middle European Time MEWT W +1:00 Middle European Winter Time SWT W +1:00 Swedish Winter Time FWT W +1:00 French Winter Time HFH W +1:00 Heure Francais d'Hiver MEST S +2:00 Middle European Summer Time EET W +2:00 Eastern European Time SST S +2:00 Swedish Summer Time FST S +2:00 French Summer Time HFE S +2:00 Heure Francais d'Ete BT W +3:00 Bagdad Time ZP4 W +4:00 GMT 4 hours ZP5 W +5:00 GMT 5 hours IST W +5:30 Indian Standard Time ZP6 W +6:00 GMT 6 hours WAST W +7:00 West Australian Standard Time JT W +7:30 Java Time WADT S +8:00 West Australian Daylight Time CCT W +8:00 China Coast Time JST W +9:00 Japan Standard Time CAST W +9:30 Central Australien Standard Time SAST W +9:30 South Australien Standard Time EAST W +10:00 East Australien Standard Time CADT S +10:30 Central Australian Daylight Time SADT S +10:30 South Australien Daylight Time EADT S +11:00 East Australien Daylight Time NZT W +12:00 New Zealand Time NZST W +12:00 New Zealand Standard Time NZDT S +13:00 New Zealand Daylight Time
I) Liste der ZConnect-Programme
Die folgende Liste ist eine von Hinrich Donner regelmäßig in /T-NETZ/ZCONNECT/MELDUNGEN veröffentlichte Liste der bekannten ZConnect-Programme und ihrer ProgrammiererInnen.
[Dieser Anhang macht in der ASCII-Doku keinen Sinn, wäre nur in einer gedruckten Variante von Belang.]
Fußnoten
In der Dokumentationsendversion werden diese Fußnoten in der Näher des Verweises auf sie untergebracht werden.
{1} In der Praxis sind einige sehr weit verbreitete Anwendungen heute aufgrund sehr langer Innovationszyklen nicht sehr nah am Standard. Umgekehrt sorgt ihre hohe Verbreitung für einen Defacto-Standard, den andere Applikationen berücksichtigen müssen.
{2} T-NETZ steht für "teilvernetztes /Z-NETZ" und beschreibt eine Brettgruppe, die unter Systemen auf freiwilliger Basis getauscht werden; die Namensgebung leitet sich also aus dem Pflichtbezug der /Z-NETZ-Hierarchie ab. Über eine Umwandlung von /T-NETZ nach /Z-NETZ/ALT wird aktuell heftig diskutiert.
{3} [D3.0] verweist hierzu auf [RFC 822]
{4} Als Smartserver wird dasjenige System bezeichnet, zu welchem das lokale System sämtliche Nachrichten schickt, die es selber nicht oder nicht über einen anderen Weg zustellen kann. Voraussetzung ist, daß die EmpfängerInnenadresse syntaktisch korrekt ist.
{5} "Re" kürzt "Reply" ab, meint also "Antwort".
{6} Es kann nicht tatsächlich von einer Chronologie gesprochen werden, da die Reihenfolge von Antworten nicht unbedingt eine chronologische Ordnung aufweisen muß. Insbesondere kann beim Antworten auf mehrere Nachrichten gleichzeitig keine chronologische Reihenfolge der übernommenen BEZ-Informationen festgestellt werden.
{7} Die in der deutschsprachigen Netzlandschaft gebräuchliche Bezeichnung "Mailbox" würde im sprachlichen Herkunftsland des Begriffs auf Unverständnis stoßen. Die dort üblichere Bezeichnung ist "Bulletin Board System" (kurz: BBS). Da ZConnect zum allergrößten Teil im deutschsprachigen Raum eingesetzt wird, soll dennoch von Mailboxen gesprochen werden.
{8} Das erste System auf dem Routeweg (ROT-Information also leer) einer Mail darf EMPs in KOPs wandeln, wenn es wegen Schreibverboten in bestimmte Bretter unbedingt notwendig ist. Von diesem Recht Gebrauch zu machen, ist unbedingt als absoluter Notfall zu betrachten und gilt selbst dann noch als schlechter Stil.
{9} Endsysteme, also solche Systeme, von denen die Nachricht nicht an ein anderes System weitergereicht wird, dürfen mit den Nachrichten natürlich machen, was sie wollen.
{10} Steuernachricht, welche zum Zwecke der Löschung ein zuvor versandten Nachricht dieser nachgesandt wird.
{11} Auch wenn im folgenden von "der" abgespaltenen Empfängerin die Rede ist, so kann es trotzdem immer auch sein, daß die Abspaltung wiederum eine Nachricht an mehrere Empfängerinnen ist, wenn auch immer eine mit ausschließlich privaten solchen.
{12} Entsprechende Versuche ergaben, daß Systeme, die üblicherweise auf TRACE antworten, dies bei fehlenden Parametern nicht tun. Dies läßt sich insbesondere für die aktuelle Version 5.2, Release 3.0, des Zerberus-Mailboxprogramms aussagen.
{13} Im FIDO-Netzwerk ist es üblich, die Existenz privater Nachrichten zu verneinen. Aus diesem Grund sind z.B. Verschlüsselungsprogramme wie Pretty Good Privacy verboten und werden die NetMails (Bezeichnung für private Nachrichten) von SystembetreiberInnen eingesehen oder gar zensiert. Nach Ansicht netzerfahrener Datenschützer ist die Interpretation privater Nachrichten als "öffentliche Nachrichten mit nur einem/einer Empfänger/in" unhaltbar.
{14} Ein Byte hat nicht zwangsläufig acht Bit.