Diese Dokument beschreibt eine Möglichkeit, den Absender von speziellen
Usenet Artikeln sicherzustellen, die dazu dienen, den Namenraum der Usenet
Gruppen zu verwalten. Es wird grundlegende Kenntnis über die Wirkungsweise
von Usenet Steuernachrichten wie "newgroup", "rmgroup" oder "checkgroups"
vorausgesetzt; dies ist keine Einführung in die Administration von
Namenshierarchien.
Usenet Artikel sind furchtbar leicht zu fälschen, Steuernachrichten machen
da keine Ausnahme. Da Systemverwalter dazu neigen, ihr Newssystem
vollautomatisch laufen zu lassen, gestatten sie bestimmten Personen neue
Gruppen anzulegen und alte zu entfernen. Dabei ist riskant, auf die From:
und Sender: Zeile zu vertrauen, wie dies bisher Usus ist. Deswegen wurde
ein Verfahren, welches Philip Zimmermans Pretty
Good Privacy (PGP) benutzt, entwickelt mit der Zielsetzung,
einen höheren Sicherheitsgrad bei der Authentifizierung des Senders einer
Steuernachrichten zu erreichen.
Im Gegensatz zur üblichen PGP Unterschrift unter Nachrichten, die den
Inhalt einer Nachricht schützt, müssen bei diesem System auch einige
Kopfzeilen der Steuernachricht mitsigniert werden und einige andere
mögliche Fehlerquellen ausgeschaltet werden. Ein weiteres Ziel war es, die
Unterschrift so wenig wie möglich störend zu gestalten und nur kleinste
Änderungen an bereits existierender Software einzufordern, um es in
Betrieb zu nehmen.
Wie Steuernachrichten geprüft werden.
Die folgenden Schritte sind notwendig, um die PGP Überprüfung von
Steuernachrichten auf Deinem System einzurichten.
Es folgt die kurze und einfache Version für all diejenigen, die es gewohnt
sind in den Eingeweiden eines Newsservers zu wühlen und die es
verabscheuen, viel zu lesen:
- Die Software besorgen und konfigurieren:
- Hinzufügen der öffentlichen PGP Schlüssel der
Hierarchieverwalter zum Schlüsselbund des Newssystems.
- Einschalten der Überprüfung durch das Newssystem.
- INN:
- Einsetzen der Aktion verify-pgp_userid
(möglicherweise erweitert um =logfile)
in control.ctl.
- Andere Systeme:
- Noch nichts verfügbar.
- Ausprobieren von pgpverify.
Wenn der Schlüssel von news.announce.newgroups in Deinem Schlüsselbund
eingebunden ist, starte einfach pgpverify, das sample.control
von ftp.uu.net oder
von ftp.thur.de von der Standardeingabe liest.
Es sollte der String "news.announce.newgroups" auf der
Standardausgabe erscheinen.
Und hier folgt eine ausführlicherere Version:
- Besorge die Software.
Es gibt 2 getrennte Programme, die dem Newssystem hinzugefügt werden
müssen: Ein separates Programm, das einen Artikel auf Korrektheit des
Absenders und Inhaltes überprüft und ein Patch in der Verarbeitung
von Steuernachrichten des Newsservers.
Das einzelne Programm pgpverify
von ftp.uu.net oder
von ftp.thur.de, ist ein Perl
Programm, das ab Perl Version 4 und folgende läuft. (Ältere Versionen
sind nicht getestet.) Es ist vollständig unabhängig von der
eingesetzten Newsserversoftware.
Die Serverpatches von
ftp.uu.net oder
ftp.thur.de hängen sich in das Newssystem einer vorhandenen
Newsserverinstallation. Wähle Dein System aus der folgenden Liste:
Ich bedauere, daß ich nicht die Zeit habe, Anpassungen an weitere
Systeme vorzunehmen, aber ich werde gerne Patches für andere Systeme
hier mit aufnehmen, so sie mir zugängliche gemacht werden. Besonders
bin ich an einem Patch für C News Version CR.E interessiert. Der INN
1.4sec Patch paßt auch mehr oder weniger genau in alle Versionen der
INN unoff Serie.
- Einfügen der Software in Dein Newssystem
Zuerst mußt Du die vollen Pfadnamen der Programme perl und
pgp in den ersten Zeilen des Programmes pgpverify
eintragen. Weitere Änderungen an den Optionen oder Pfadangaben sollten
nicht notwendig sein.
Die folgenden Schritte nehmen an, daß die Dateien pgpverify
und der Patch für das Newssystem im Verzeichnis /tmp/
vorliegen. Das vereinfacht das Schreiben dieses schrittweisen
Anleitung erheblich. Desweiteren habe ich versucht, die Schritte
so zu formatieren, daß sie mit Cut&Paste direkt auf der Shell
ausgeführt werden können.
- Wenn Du INN benutzt:
cd Verzeichnis, in dem das Programm ctlinnd steht
mv /tmp/pgpverify pgpverify
cd Startverzeichnis der INN Quellen
cd site
patch < /tmp/pgpcontrol.pch
make install
- Wenn Du ein anderes System benutzt:
Du wirst warten müssen, bis jemand einen Patch und einige
Anleitungen für Dein System geschrieben und diese veröffentlicht
hat. Vielleicht kennst Du ja jemanden, der es kann?
- Gestatte die Überprüfung für die gewünschten Hierarchien.
Um
Steuernachrichten zu überprüfen, werden zuerst die öffentlichen PGP Schlüssel der exekutiv
Verantwortlichen benötigen, denen Du auch traust. Sie müssen dem
Schlüsselbund zugefügt werden, das von den Nutzerrechten unter denen
Dein Newsserver fährt, gelesen werden kann. Mittels pgp -ka
können die Schlüssel diesem Schlüsselbund hinzugefügt werden.
Wenn beispielsweise Dein System unter dem Nutznamen news läuft,
so sollte der folgende Befehl als Nutzer news ausgeführt
werden (in der Annahme, die Datei, die den Schlüssel --erkennbar an
BEGIN und END "PGP PUBLIC KEY BLOCK"-- enthält den Namen
/tmp/key trägt): pgp -ka /tmp/key
Als generelle Regel kann angenommen werden, daß Schlüssel, mit denen
Steuernachrichten unterzeichnet werden, niemals andere Schlüssel
einführen oder prüfen sollten. Auf die Frage von PGP, ob man diesen
Schlüssel in diesem Sinne als Zertifikationsquelle benutzen will,
sollte man also mit NEIN antworten. (A.d.Ü.: Schlüssel dieser Art
sollte man selbst nur dann unterschreiben, wenn man sich selbst
persönlich von der Echtheit des Schlüssels durch andere Medien als die
elektronischen überzeugt hat.)
Nach dem Aufnehmen der Schlüssel in den Schlüsselbund ist dem
Newssystem mitzuteilen, daß Steuernachrichten nun nur unterschrieben
gültig sind. Die Programmierung sieht vor, daß das Newssystem die
notwendigen Aktionen dann ausführt, wenn die Steuernachricht korrekt
von dem richtigen Schlüssel unterschrieben wurde anderenfalls sendet
es die fehlerhafte Nachricht an den Newsadmin per eMail. Das schließt
andere Aktionen für diese oder andere Fälle nicht aus, aber die
Patches sollten so klein wie möglich bleiben. Zukünftige Versionen
könnten hier flexibler sein.
- Wenn Du INN benutzt:
Die automatische Verarbeitung von Steuernachrichten wird mittel
control.ctl gesteuert, die im gleichen site
Unterverzeichnis ediert wird, in dem auch parsecontrol
gepatched wurde. Die Datei control.ctl besteht aus vielen
Zeilen, deren Format in der Handbuchseite im Kapitel 5 (man 5
control.ctl) beschrieben ist. Um die PGP Überprüfung
zusätzlich zur normalen Prüfung einzuschalten, wird als Aktion
verify-pgp_userid im vierten Feld eingetragen.
Beispiel für die BIG8 Hierarchien:
newgroup:tale@uunet.uu.net:\
comp.*|humanities.*|misc.*|news.*|rec.*|sci.*|soc.*|talk.*:\
verify-news.announce.newgroups
rmgroup:tale@uunet.uu.net:\
comp.*|humanities.*|misc.*|news.*|rec.*|sci.*|soc.*|talk.*:\
verify-news.announce.newgroups
checkgroups:tale@uunet.uu.net:\
comp.*|humanities.*|misc.*|news.*|rec.*|sci.*|soc.*|talk.*:\
verify-news.announce.newgroups
Wenn Du darüberhinaus auch noch ein Mitprotokollieren der Aktionen
wünschst, so trage analog zu doit=logfile die Aktion
verify-pgp_userid=logfile ein.
- Wenn Du ein anderes System verwendest:
Du wirst warten müssen, bis jemand einen Patch und einige
Anleitungen für Dein System geschrieben und diese veröffentlicht
hat. Vielleicht kennst Du ja jemanden, der es kann?
- Das System prüfen.
Speichere die Datei sample.control von
ftp.uu.net oder
ftp.thur.de auf Deinem System als /tmp/sample.control ab.
Um eine Steuernachricht zu überprüfen, wird der öffentliche Schlüssel von
news.announce.newgroups und die Erlaubnis für tale@uunet.uu.net
für automatische Ausführung des Kommandos "newgroup"
benötigt. Selbst wenn Du es nicht ständig zulassen willst, so gestatte
es für diesen Test, es ist leicht wieder aus der control.ctl zu
entfernen. Den Schlüssel wird man mit pgp -kr news.announce.newgroups
wieder los.
Das Programm pgpverify wird mit der Zeile pgpverify <
/tmp/sample.control geprüft. Wenn alles korrekt arbeitet,
erscheint der String "news.announce.newgroups" auf dem
Schirm. Wird unmittelbar danach der Befehl echo $? eingegeben,
so sollte "0" (Die Ziffer Null) ausgegeben werden.
Wenn es nicht funktioniert und wiederholt kein Fehler zu finden ist,
so sende ein vollständige Problembeschreibung und die Auflistung der
fehlgeschlagenen Lösungsversuche mit vollständigen Fehlermeldungen an
David C Lawrence (englisch)
oder an Lutz Donnerhacke
(deutsch). Das absolute Minimum, das in der eMail enthalten sein
muß ist eine Kopie der Steuernachricht, die scheiterte, eine Liste der
versuchten Befehlseingaben und die Ausgabe von pgp -kc sowie
pgp -kvc news.announce.newgroups (bzw. pgp -kvc
dana.de).
Wenn pgpverify diesen Test bestanden hat, fahre mit dem unten
beschriebenen Test des Newssystem fort:
- Wenn Du INN benutzt:
Wechsle in das Verzeichnis, in dem parsecontrol installiert
ist. Dann führe das folgende Script als der Nutzer aus, unter dem
auch der Newsserver läuft:
#!/bin/sh
PROG=newgroup
set -- tale@uunet.uu.net "" /tmp/sample.control
(. ./parsecontrol "$@"; echo $ACTION)
Wenn alles korrekt ist, so antwortet das Script mit doit;
im Fehlerfalle mit mail.
Ediere die Datei /tmp/sample.control und ändere alle
Vorkommen von newusers in newgroups. Wiederhole dann
den Test und die Prüfung muß versagen.
- Wenn Du einanderes System benutzt:
Du wirst warten müssen, bis jemand einen Patch und einige
Anleitungen für Dein System geschrieben und diese veröffentlicht
hat. Vielleicht kennst Du ja jemanden, der es kann?
Häufig gestellte Fragen -- Frequently Asked Questions
- Wie kann es passieren, daß offensichtlich korrekt unterschriebene
Steuernachrichten den Test mit pgpverify nicht bestehen?
- Du hast nicht die neuste Version von pgpverify, die
einige Fehler behoben haben könnte.
- Du hast nicht den richtigen Schlüssel zur Überprüfung in dem
vom Newsserver verwendeten Schlüsselbund. (A.d.Ü.: Schlüssel
können ebenso wechseln, wie Moderatoren!)
- Du hast die Spracheinstellung von pgp auf einer anderen
Sprache als englisch stehen. Damit kann pgpverify die
Ausgaben von pgp nicht mehr verstehen.
pgpverify setzt zwar die Umgebungsvariable LANGUAGE
auf englisch, kann aber damit die Einstellung in der Datei
config.txt oder .pgprc nicht überschreiben.
- Die Steuernachricht wurde mittels Cut&Paste ausgeschnitten,
wodurch Leerzeichen statt Tabulatoren übertragen wurden. Das ist
nicht so einfach wieder gradezubiegen, wie es den Anschein haben
kann.
- Du versuchst pgpverify auf einer von einem Newsreader
abgespeicherten Datei laufen zu lassen. Newsreader können beim
Abspeichern verschiedene Veränderungen vornehmen, z.B. eine
Leerzeile anfügen oder Kopfzeilen verändern.
Diese Liste findet sich auf
ftp.uu.net
oder auf
ftp.thur.de.
Wenn Du für den Versand von Steuernachrichten in einer Hierarchie
verantwortlich bist, so verwende signcontrol von
ftp.uu.net oder von
ftp.thur.de um diese Steuernachrichten so zu signieren, daß
pgpverify die prüfen kann. Es handelt sich um ein Perl Script ab
Version 5. Die verschiedenen Konfigurationsparameter müssen vor Gebrauch
gründlich eingestellt werden.
Wenn Du eine Signierung vorbereitest, so verwende nicht einen
personengebundenen Schlüssel, sondern einen gruppenspezifischen, da
Moderationen auch mal wechseln können. Diese Wechsel ziehen in dem Fall
keine Änderungen auf abertausenden Maschinen mehr nach sich. (Der zu
bekannte Absender tale@uunet.uu.net wird aus genau diesem Grunde
weiterverwendet, obwohl newgroups-request@uunet.uu.net. besser wäre.)
Dieser Schlüssel sollte aus diesem Grunde nie zum Unterschreiben anderer
Schlüssel benutzt werden.
Wenn Du dieses Script einsetzt, so benachrichtige
mich über die
Hierarchie für die Du zuständig bist und die Informationen, die in der
Liste öffentlicher PGP Schlüssel zur Newsgruppen
Administration eingetragen werden sollen.
Die Informationen, wie man PGP finden und sich beschaffen kann können in
der entsprechenden
Where to get the latest PGP FAQ nachgesehen werden, die auch
regelmäßig in alt.security.pgp
veröffentlicht wird.
Die Informationen, wie man Perl finden und sich beschaffen kann können in
der entsprechenden
comp.lang.perl.* FAQ 1/5 - Availability nachgesehen werden, die auch
regelmäßig in comp.lang.perl.misc
veröffentlicht wird.
Last modified: 25 April 1996
David C Lawrence
tale@uunet.uu.net
Letzte Übersetzung: 11 Mai 1996
Lutz Donnerhacke
lutz@dana.de
|