nntp-extensions Anti-spam NNTP extension draft
Jeff Garzik
jeff.garzik at spinne.com
Sat Nov 29 02:32:53 CST 1997
This is available on the Web at
http://www.spinne.com/usenet/prefilter/
--
Jeff Garzik Typhoon, Cyclone, Diablo, and INN
Spinne USENET News Service Fast and efficient news feeds
http://www.spinne.com/usenet/ News tuning and consulting
-------------- next part --------------
NNTP Pre-filtering
Provisions for real-time distribution of unwanted article information
In order to keep up with the rising tide of spam, real-time transmission of
spam message ids to downstream sites is needed. To that end, I am designing
anti-spam extensions to NNTP. Here's what I've come up with:
1.1 The MODE FILTER command
MODE FILTER
MODE FILTER is used by a peer to indicate to the server that it
would like to advise the server, using the FILTER command, of
message ids the peer considered unwanted. This command should
always be used before FILTER.
1.2 Responses
203 Filtering is OK
500 Command not understood
2.1 The FILTER command
FILTER <message-id> filter-tag
FILTER is used by a peer to indicate that the peer has processed
the article identified by <message-id>, and advises the server it
should consider the article cancelable.
filter-tag is a short string identifying the process used on the
peer to filter the article. The set of legal characters in the tag
is limited to non-whitespace printable ASCII characters. In order
to reduce conflicts between differing filter standards,
implementors are encouraged to prepend the organization name to
the beginning of the filter-tag.
This command is merely an advisory notice sent from the peer to
the server. The server is free to take any action upon receipt of
a FILTER command, including no action at all.
2.2 Responses
No response is sent back to the peer when a FILTER command is
received.
----------------------------------------------------------------------------
3.1 Comments
As implemented in INN, the following logic would be applied to each passed
to the server:
if ( <id>-in-history-database )
attempt article cancel
else
add <id> to history database
Smarter implementations could also optimize by, and for, the presence of
spam cancel messages. If a spam cancel is present in the form of <cancel.id>
in history, further processing could be avoided. And if <id> is not in the
history database, then <cancel.id> can be added to the database as well, to
refuse the spam cancel that's almost certainly to follow.
4.1 INN sample implementation
PATCH to INN 1.7 (2k text)
http://www.spinne.com/usenet/prefilter/innd-prefilter.patch
5.1 Diablo sample implementation
PATCH to Diablo 1.13 (1k text)
http://www.spinne.com/usenet/prefilter/diablo-prefilter.patch
----------------------------------------------------------------------------
Jeff Garzik
Spinne USENET News Service
November 14, 1997
More information about the NNTP-extensions
mailing list