The NoCeM FAQ. V0.93
This document is a draft copy, as this project is being developed.
Feel free to send suggestions to moose@cm.org .
I intend this to be a net-developed project. The client code that I
have written is intended to demonstrate the standard-- eventually I
hope people will rewrite and change it as needed.
Part I -- About the NoCeM concept itself.
Q: What is NoCeM?
A: NoCeM (pronounced No See 'Em) may well be:
- A solution to the spam problem.
- A solution to the spam-cancel problem.
- A way to "edit" Usenet if that's what you want.
- A way to have others "edit" Usenet for you, if that's what you want.
- A way to have no one alter what you see on Usenet, (to the degree that this is possible.)
I'm providing a standard to centralize on, but the final
implementation will be up to the net at large to define.
Q: How does this work?
A: There are many people out there with opinions on what should be
posted to Usenet. Some have very widespread support, such as spam
cancellers. Others, such as those who would like to silence a point
of view, are not supported. There are many situations that fall
between those two.
Under the NoCeM model, any person on the net who sees something they
think shouldn't have been posted can issue a NoCeM notice. However,
just as with any other type of Usenet message, the weight the notice
carries will be no greater than the poster's net.reputation. If
people agree with the issuer's criteria AND also feel that this
person is a good judge of that standard then they will accept
his/her notices. Of course the opposite holds true.
When a NoCeM notice is accepted by a user it will perform a
pre-specified action. Most likely it will mark that message as read
in the user's newsrc. However, it could also be configured to: remove
that message from the news spool, mark that message TO be read (if you
always want to read what some person suggests), or display a random
message from the list (to check up on an issuer). While I would
prefer to have this operate on a per-user basis, if it's your machine,
it's your decision.
Q: Isn't it possible that my admin/upstream feed can use this to
censor what I see?
A: Unfortunately, yes. As has always been true, upstream feeds and
your sysadmin always can control what you see. While I would
discourage admins from applying NoCeM notices on their spools, it's
their machine and it's their right to choose what traffic they
carry. If you feel your admin/feed is exerting too much control
over what you are seeing, then you probably should be seeking a new
source of information.
Q: What keeps someone from forging a NoCeM notice?
A: The NoCeM standard specifies that all notices must be public key
signed in order to be accepted. You use a special keyring to control
who you give access to.
Q: What are the different ways NoCeM can be used?
A: As I see it, there are 3 major uses for this right now.
- Spam/EMP's can be marked for "hiding". Such notices should carry
"Action: hide" headers, have "@@NCM" in the subject, and be
crossposted to alt.nocem.misc.
- Spews can be dealt with the same way-- "Action: hide", "@@NCM"
in the subject, and it should go to alt.nocem.misc and the
newsgroup (at a minimum). This should also carry a
"Newsgroup:" ncm header.
- A person can make him/herself a "pseudo moderator" of a group,
by issuing notices just for one group. If you wish to do
this:
- You should only mark articles for that group,
- you
should post it with a subject of "@@newsgroup" (*NOT* @@NCM),
- it should be posted to alt.nocem.misc (and the newsgroup,
if its denizens want it there.) and
- it should carry a
"Newsgroup:" ncm header.
This can be accomplished in two ways-- the usual "Action:
hide" notices, or with "Action: show" notices. Using the
latter will mark all messages in that newsgroup as read,
except for those in the notice. (Currently, the "show" method
is severely limited.) A future implementation will aim at
special features of newsreaders, such as nn's .nn/select file.
Part II -- So you want to receive NoCeM notices???
Currently there are two clients for reading the notices - the Moose's
perl NoCeM client, and the latest version of GNUs.
To get and use Moose's client, you need:
- MIT PGP 2.6.* or PGP 2.6i. 2.6ui won't work well.
- To have a copy of Cancelmoose's public key (it's in the servers).
- To be able read alt.nocem.misc.
Furthermore, you must be on a unix system that has perl4 or perl5
installed. Your system must either permit direct file access to the
spool, or must allow shell users to use NNTP. The only article
database that is currently supported is NOV.
At the moment, there are no active efforts to add NoCeM capabilities
to non-unix newsreaders. (although a number of authors did express
interest.) If you would like to see this, contact the authors of your
newsreader.
Part III -- So you want to issue NoCeM notices???
- You must get and learn to use PGP.
- You should create a key pair, and put your public key in the
keyserver. All notices must be signed.
- You might wish to consider getting multiple key-pairs, if you will
be issuing:
- highly experimental notice types.
- notices with very disparate functions. (pseudo-moderating a
newsgroup, and 'hiding' offensive messages.)
- automatic notices from a multi-user machine (higher risk of
divulging the secret key.)
- You should post a statement to alt.nocem.misc, stating what your
intentions are, and what criteria you will use to compose your
notices. This should be crossposted to any other relevant
newsgroups. It should be signed with your PGP key. Eventually,
this statement will become part of a FAQ.
- The notices should start with "@@BEGIN NCM HEADERS" on a new line.
Anything before this will be ignored by the client. Any line that
starts with a # will be ignored.
- Next should be header lines. These should minimally include:
- Version:
- Issuer:
- Type:
- Action:
- Newsgroup:
- Count:
- Notice-ID:
- Next should be "@@BEGIN NCM BODY" on a new line.
- Each body line should start with either A) an
delimited message-id or B) one or more TABs. Lines that begin with
a TAB are assumed to refer to the previous message-id. After the
tab, should be a space separated list of the newsgroups that this
articles appears in. (This list is very important and must be
accurate - it should be taken from the bad message's headers.)
- The message should then end with "@@END NCM BODY". Anything after
this will be ignored, unless it's another notice.
- As mentioned above, the notice should then be public-key signed.
During testing I ask that people use textmode to help debugging.
- This signed notice can now be distributed. Remember that this is
timely information. Try to avoid crossposting to moderated groups
that don't QUICKLY process postings. Eventually a mailing list or
web would be best.
- Because NoCeM ignores data outside the delimiters, this notice could
also double as a human-readable report. If your notice is
intended to...
- hide spam
- post to alt.nocem.misc (and other abuse groups) and put "@@NCM" in
the Subject.
- hide spew
- post to alt.nocem.misc (and other abuse groups) and
the newsgroup in question. Put "@@NCM" in the Subject line. Make
sure your notice includes a Newsgroup:
- pseudomoderate a newsgroup
- post to alt.nocem.misc and that
newsgroup (if it's wanted there). The subject should contain
"@@newsgroup". [IMHO, it's a bit early yet for this use.]
- When posting, be sure to include a (@@) tag in your Subject line.
Also, be sure that your posting does NOT have a "References:"
header-- this is used to detect and avoid followups to notices. And
of course, when widely crossposting, make sure you set followups
appropriately.
- Also, when posting a copy of the offending message, it is VERY
important to quote it with >'s or some other symbol, to move it off
the left margin.
- A signed NoCeM notice MUST MUST MUST have balanced NoCeM delimiters
(2 begins and 1 end). If you leave off the "end" delim it could be
possible for a less trusted or non-trusted person to add
message-ID's to your report.
- Lastly, please read alt.nocem.misc for updates as things change. I
anticipate the eventual formation of news.lists.nocem as well as
various web sites and mailing lists, to speed up distribution.
More info on the headers....
- Version:
- mandatory - stage 3 must check for this, and make sure it can
handle the message format, before continuing. Therefore this
should likely be the first header present. (Thus only the starting
delimiter and version header need be backward compatible.)
- Issuer:
- Some indentifying string.
- Action:
-
- hide
- the body contains message-ids that the issuer wishes the user
NOT to see. An admin might wish to erase such messages.
- show
- the body contains message-ids that are recommended for reading.
Type:
- Spam(EMP)
- this will come with other headers that mention the
detection method, threshold, and/or crossposting factors.
- MMF
- due to the controversial nature of this one, I'd say it should
have it's own category.
- Spew
- Same as MMF/Spam.
- Content-Based
- ??Used by people who are pseudomoderating.
Notice-ID:
some sort of unique string might be nice to help optimize.
Newsgroup:
notices that affect only one newsgroup should be tagged
with the name of the newsgroup. For the moment, this does NOT
replace the newsgroup listing in the body of the notice.
The End (for now...)