Absenderkontrolle von Gruppenänderungen im Usenet
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:

  1. Die Software besorgen und konfigurieren:
  2. Hinzufügen der öffentlichen PGP Schlüssel der Hierarchieverwalter zum Schlüsselbund des Newssystems.
  3. 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.
  4. 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:

  1. 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.

  2. 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?

  3. 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?

  4. 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

  1. 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.

Liste von öffentlichen PGP Schlüsseln für die Newsadministration

Diese Liste findet sich auf ftp.uu.net oder auf ftp.thur.de.

Unterschreiben von Steuernachrichten

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.

PGP beschaffen

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.

Perl beschaffen

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
zur ckzurück © 1996-2017 Lutz Donnerhacke @ IKS GmbH Jena Saturday | 21.Oct.2017