Uwe Ohse

Artikel

Warum der Dienst eingestellt wurde

Ich habe den Nocem-Feed-Dienst auf ziemlich abrupte Art sterben lassen, ohne irgendwelche Erklärungen. Anfangs hoffte ich noch ihn recht schnell wiederbeleben zu können, aber ..
Ok, was war das Problem?

Erst kam eine freundliche Nachricht, von einem Benutzer der DU3, im Sinne von "laß das, ich akzeptiere keine Filter". Auf die Antwort "hey, Du bist der Einzige ... ich laß das daher nicht" kam dann ein weniger freundliches, aber ziemlich deutliches Schreiben eines Rechtsanwalts. Ich hab' das Versenden der Nachrichten zur DU3 daraufhin bis zur Klärung eingestellt. Die Angelegenheit zog sich dann eine Weile (um die drei Monate) hin.
Es gab da ein paar sehr interessante Gesichtspunkte, beispielsweise:

Was den Benutzungsbedingungen offenbar fehlt ist ein Passus der Willkür des Betreibers absegnet. Nicht daß ich den wirklich haben will, aber ...

Langer Rede kurzer Sinn: wir kamen überein daß der Benutzer mit Ablauf seines Zahlerstatus die Box verläßt, und ich so lange nicht filtere.

Nein, "rauswerfen" war keine Option.

Der NoCem-Dienst für die anderen Boxen lief so lange weiter - bis dann im Juli 1998 der Newsserver, auf dem die Nachrichten erzeugt worden sind, ersetzt wurde. Da ich den NoCem-Dienst selbst nicht nutzte fiel mir das nicht auf.
Als ich etwas später darauf aufmerksam gemacht wurde nahm ich mir vor das in Kürze zu korrigieren, aber ... naja, ich selbst hatte nichts davon, der Problembenutzer hatte schließlich noch ein paar Monate Zahlerstatus vor sich, und eigentlich hatte ich auch genug zu tun. Der Mangel an Motivation hielt unangenehm lange an, um genau zu sein war mir der Spaß ziemlich gründlich vergangen.

Und als ich irgendwann wieder daran dachte war ein Jahr ins Land gegangen.

Originalnachricht

Subject: nocem für's mausnet 
From: uwe@ohse.de (Uwe Ohse) 
Date: 10 Jan 1998 13:57:31 +0100 
Message-ID: <697r7o$r02$1@tirka.ohse.de> 
Organization: private site 
Newsgroups: maus.gate  
References: <199801081150.a10865@do2.maus.de> 

Hallo Udo,

>Togal, das Monster NoCeM2BX hat gerade den Zuchttank verlassen. Wie im Bamberg

bei der Gelegenheit mal ein bischen Hintergrundinformations und eine
Definition des Formats.


Background: "nocem" == "no c 'em"
    Ein Verfahren, mit dem im Usenet viele Nachrichten auf einmal gelöscht
    werden können [1]. Im Gegensatz zu den alten Cancelnachrichten sind
    Nocems a) PGP-authentisiert [2] und b) prinzipiell effizienter [3] [4].
    Anmerkung von Udo
    Genutzt wird nocem hauptsächlich zum Canceln von Spam [6].
    Durch gezielte Selektion der PGP-Keys kann ein Nocem-Client bestimmen
    wessen Nocems er ausführt.
    Nocems werden häufig über besonders schnelle Transportwege verteilt.
    Häufig genug treffen sie vor dem Spam ein.

Wirkung: 
    Nocem hält Usenet lesbar. 

Nocem4MausNet:
    Aus dem Sysoptreffen sind Udo und ich auf die Idee verfallen, daß man
    auf einer Kiste am Internet, die die Nocems sowieso schon bekommt, den
    für das MausNet relevanten Teil der IDs heraussuchen und per Mail
    an die Boxen weiterverteilen könnte.
    Ich hab' dabei den leichteren Teil erwischt - "maus.*" [16] herausfischen 
    und Implementation für die Quark. Udo wußte noch nicht was er sich
    antun würde [12] und wollte den entsprechenden Teil für die MAUS
    schreiben.


Wessen Nocems werden beachtet?
    Zur Zeit sind das:
            Cosmo Roadkill 
            SpamHippo 
            cancel2nocem@news.erols.com
            Brian W. Antoine 
            John Milburn 
            msfc-anti-mmf-2 
            crosspost-stopper@khms.westfalen.de
            Alan Schwartz - rec.games.mud.admin NoCeM issuer 
                
            Dan Riley 
            Jeremy Nixon 
            Jeremy Nixon 
            Chris R. Lewis 
            red@redpoll.mrfs.oh.us (Richard E. Depew)
            AutoMoose1 (Automated Cancelmoose)
    Diese Liste ändert sich ab und zu - üblicherweise durch
    Erweiterung. [13] 

Technische Durchführung:
    Auf news.nrw.net läuft alle halbe Stunde oder so ein Scrißt daß
    die eingetroffenen Nocems der akzeptierten Absender durchsucht, 
    die Cancels für maus.* heraussucht und durch eine PGP-signierte 
    Mail weiterleitet.


Format des Nachrichtenbodies:
    VCanceler         ; wessen Nocem? just for info
    #     ; zu loeschende Nachricht
    Ggruppe1          ; und die Gruppen, in der sie stand. FYI.
    Ggruppe2
    Ggruppen
    #
    GGruppe1...
    etc usw.

  
  Udo bemerkte daß das nicht ganz stimmt

PGP-Key:
    Type Bits/KeyID    Date       User ID
    pub  1024/27ADBDDD 1998/01/05 quark-nocem@ohse.de

    -----BEGIN PGP PUBLIC KEY BLOCK-----
    Version: 2.6.3i

    mQCNAzSw2UYAAAEEAJ1HcP5EMBoAOUpvOnH/uGbEdwDJRD7z3f9aXvik3nQrpmA5
    QBGIFvhCu0GYwYLC/hb1lY51OcZZgk0Pq5ogX+xH/hAJGZxIGRyb9wg898iXdiNJ
    bNPSa1zyKEJHUI6Y4UgFpUfVYGJY1lBH7zN/Y91rHy0JmXe/oODPJ/snrb3dAAUR
    tBNxdWFyay1ub2NlbUBvaHNlLmRliQCVAwUQNLDkJ1uGq+Vx7EI9AQHgTAQAxX1I
    uqCSwYCdrqTENt5Q8wzBJMR7woVRkWSHXNZx1HtyvH5qwbSge2SA/Ya3SCVlCPXV
    31MF2yKoV4M+cwXPbaiobKEPnhf3LWPDqVqW9rkCpcCIiVdBmBNCif0tDaHtXKCg
    Ic5OXvetbz/fIEjTHh6UBpyQlEBdbkaVCrORQiSJAJUDBRA0sNlG4M8n+yetvd0B
    AZcaA/4gH+GMLZ3YWDzix0tKzW6O6JPOtj8Der1HRMkrxlSAhMBKJEZuIHhgG2OU
    0cxRsN1FtxR75af4QvwChTXbfKfFO7BIiXk4S6WT9RK3IDdQeFfU1rf1NCtQm0ec
    /yXMZCvKE972D52ge8I+LVr1j/jaD7VQVUlSEOKYyjLhoRJlqw==
    =uTj2
    -----END PGP PUBLIC KEY BLOCK-----
    [15]

Weitere Verarbeitung in der MAUS:
    Udo hat einen Satz Scripte geschrieben die die kurzen IDs zu
    den langen aus den Nocem-Nachrichten aus einer Datenbank 
    heraussucht. Das ganze Konzept stinkt zwar zum Himmel [14], aber
    es funktioniert erstmal.
    Udo übersetzt die Nocems in BX-Nachrichten.

Weitere Verarbeitung in der Quark:
    Sie übersetzt die eintreffende Mail (die out-of-band läuft - nicht
    etwa durch das Gateway) in einen NOCEM-Tauschblock.
    Format:
            #NOCEM
            :VCanceler         ; wessen Nocem? just for info
            :#     ; zu loeschende Nachricht
            :Ggruppe1          ; und die Gruppen, in der sie stand. FYI.
            :Ggruppe2
            :Ggruppen
            :#
            :GGruppe1...
            etc usw.
    warum nicht in BX? Die BX-Implementation in der Quark ist mir für
    den Zweck zu teuer. Sie durchläuft eine Reihe von Zugriffsrechts-
    Prüfungen die ich hier definitiv nicht haben will. Ich kann mir
    vorstellen daß es in der MAUS ähnlich aussieht.

Restprobleme: 
    news.nrw.net hat eine ziemlich gute Anbindung (Platz Nummer 3xx 
    der Newsserver dieser Welt laut der freenix-Liste :-), und durch
    die Verteilung der Nocems zum MausNet per Mail laufen diese
    möglicherweise recht häufig früher ein als der Spam selbst.
    Dagegen hilft nur eine History (die der Quark noch fehlt und die
    Udo, falls seine Scripts sie implementieren, an der falschen 
        Stelle implementiert - sie gehört in die Box).
    
    Udo erklärt warum er sie in die Scripte integriert


>handhabbar. An dieser Stelle ein ganz heftiges "Ey, Danke, ey" an Uwe Ohse, der
>den Vorkoster geschrieben und dafür auch einen Rechner zur Verfügung gestellt
>hat.

naja, reiner Eigennutz. Ich bin gar nicht so begeistert davon 50000 KB Nocem
am Tag zu bekommen :-)

>Und hier kommt dann die eigentliche Arbeit: Die Prüfung dieses Reports. Lies,
>wenn der Report meint, wegen foo@bar die Nachrichten a1@irq, a2@irq und a3@bb
>löschen will, ist die Hauptaufgabe, im Outfile des ID Daemons nach foo@bar zu
>suchen. Gibt es die kurzen IDs? Haben sie auch genau die lange ID, wegen der sie
>gelöscht werden sollen? Gibt es weitere Nachrichten mit dieser langen ID, die
>nocem2bx nicht gefunden hat?

Hm - bist Du sicher daß Deine geistige Verfassung nicht allzusehr gelitten hat?

>[3] Nur daher kriege ich EMP/ECP - mein ruhr.de-Newsfeed ist dank nocem-on-spool
>sauber :)

Dito.

Fußnoten:

1) so die Newsserver nocems beachten. Etliche tun's.
2) normale Cancels kann jeder bessere Idiot fälschen.
3) so effizient wie 50 MB pro Tag nur sein können. [5]
4) ok, dem INN fehlt noch ein "ctlinnd addhist 100000 IDs gleichzeitig".
5) andererseits wären 500000 normale Cancels pro Tag ein noch einige
   Größenordnungen schlimmerer Alptraum.
6) obwohl es einige Spinner gibt die andere Ziele verfolgen - wie z.B.
   Winterizer [7], crosspost-stopper [8] oder daemons@killfile.org [9]. [10]
7) versucht die Postings von jemand namens Steve Winter zu unterdrücken.
   Klingt wie Zensur? Riecht auch so. 
8) Kai. crosspost-stopper@khms.westfalen.de.
   "Let N be the number of groups in the Newsgroups: line.
        Let F be the number of groups in the Followup-To: line.
          For Followup-To: poster, use F=1.
          If F=0 (no Followup-To: line), set F=N.



        Now, if N+(F*F) > 30, then this is considered "beyond reason".

        This allows, for example, threads crossposted to 5 groups, or FAQs that
        set followups to poster or to a single group and are crossposted to no
        more than 29 groups."
   [könnte eigentlich nicht weniger sinnvoll sein ...]
9) damit versucht tim skirvin sie Welt von den Postings einiger Leute zu
   entlasten die ihm etwas zu sehr auf die Nerven gegangen sind. Nunja.
10) natürlich gibt's auch andere sinnvolle Anwendungen, z.B. den
    den alt.sex.cthulhu-Bot [11] oder den rec.games.mud.admin-Bot.
11) "To reduce spam, this group requires that proper obeisance be made
    to the Old Ones, and if this is not performed properly, the malformed
    posts will be fed to Shub-Internet!

    A proper obeisance may be made in either or both of two forms:

    1) One of the following *Names* may be invoked in the body of the
       message: Azathoth, Byakhee, Cthulhu, Hastur, Lovecraft, Nightgaunt,
       Nyarlathotep, R'lyeh, Shoggoth, Shub-Niggurath, or Yog-Sothoth;

    or, for a transitional period,

    2) the six character string " POD: " may be inserted in the
       Subject field of the post."
12) und ich hab' ihn auch nicht darauf aufmerksam gemacht - jeden annähernd
    vernünftigen Menschen würde das sonst abschrecken.
13) so könnte z.B. ich auf die Idee verfallen einen maus.*-Binary-Nocem
    zu schreiben.
14) as do nonidentifying ids anyway.
15) warum PGP-signiert? Weil jeder Idiot Mails fälschen kann. [17]
16) natürlich ist das schon etwas flexibler. Udo bekommt nur "maus.*", 
    und die DU3 bekommt "^maus|^de\.|linux" [18]. [19]
17) wobei auffällig häufig Idioten die Mails so fälschen daß man trotzdem 
    den wahren Absender erkennen kann. 
18) perl-regex.
19) Natürlich kann man auch noch zusätzliche Automaten anschreiben - wobei
    ich mir vorstelle daß man das am simpelsten durch eine Maillingliste
    löst. Bei Interesse bitte melden.

Gruß, Uwe

Anmerkungen & Korrekturen

Anmerkung von Udo Erdelhoff zum Backgroundvon NoCem:
Außerdem war eine der Grundideen, daß NoCeMs eigentlich nicht von den Newsserver ausgeführt werden sollten, sondern vom einen Zusatzprogramm zum Newsreader des jeweiligen Users. Sinn und Zweck war, die Zensurvorwürfe auszuhebeln. So funktioniert auch die Referenzimplementierung von Cancelmoose[1]. Allerdings hat es nur ganz kurze Zeit gedauert, bis es das erste NoCeM-on-spool gab.

Udo Erdelhoff bemerkte eine Diskrepanz zwischen Formatdefinition und tatsächlich gesendeten Daten:
Der stimmt definitiv nicht mit dem überein, den ich hier kriege. Bei Crosspostings gibt es N Paare aus der gleichen ID und der Gruppe. Oder hast Du das Format nach der Einführung der PGP-Signatur nochmal geändert?

Hab' ich eigentlich nicht, nein. Meines Wissens sende ich das was ich beschrieb, alles andere wäre ein Bug.
Oops, you're right. Kleiner Fehler - ich laß' das jetzt mal so weiterlaufen, langfristig solltest Du aber damit rechnen daß es so kommt wie ich es beschrieb.

Und noch eine Anmerkung von Udo, zum Thema History in der MAUS.
Tja, prinzipiell bin ich ja geneigt, Dir zuzustimmen; allerdings gibt es da ein paar prinzipielle Probleme: Für eine History braucht man ein lange Zeit sicher eindeutiges Identifizierungsmerkmal. Mit der aktuellen Maus-Datenbank ist sowas nicht zu machen, deswegen habe ich ja meine History für Erwinsgate endlich fertiggemacht[3] und nutze die auch als erste Verteidigungslinie[4].
Nachtrag:
ich hab' den Dienst irgendwann desinteressiert einschlafen lassen, da