Subject: #1003 Message-ID text: Resolving

From: Harald Tveit Alvestrand <[email-masked]>
Date: Fri, 01 Jul 2005 17:33:35 +0200

Two significant issues seem to have been raised with the proposed 
resolution:

- What needs to be said in order to "play nice" with the $altz "control." 
convention (for instance, not to outlaw it)
- Whether, and if so where, the requirement not to go mess with other 
people's namespace needs to be documented

However, the text seems to have support as "better than what we have now".

So I'm declaring consensus and moving this to "Text accepted", for the 
following text (the change is deleting the last paragraph, which might 
interfere with the $altz convention):

OLD (start of section):

 The Message-ID header contains a single unique message identifier.
 This document updates the <msg-id> construct from Section 3.6.4 of
 [RFC2822] so as to ensure that Internet Message Format Message-IDs
 are usable in widely deployed news software. The global uniqueness
 requirement for <msg-id> in [RFC2822] is to be understood as
applying
 across all protocols using such message identifiers, and across
both
 Email and Netnews in particular. A revised syntax for <msg-id> is
 given below, but the requirements and descriptive text from Section
 3.6.4 of [RFC2822] still apply.

 NEW:

 The Message-ID header contains a single unique message identifier.
 News is more dependent on msg-id uniqueness and fast comparision
than
 email is, and some news software would have trouble with the full
range
 of possible msg-ids permitted by RFC 2822; this section therefore
 restricts the syntax of <msg-id> compared to Section 3.6.4 of
 [RFC2822].
 The global uniqueness
 requirement for <msg-id> in [RFC2822] is to be understood as
applying
 across all protocols using such message identifiers, and across
both
 Email and Netnews in particular.

 OLD (ABNF):

 no-fold-quote = DQUOTE
 ( "." mqtext /
 *mqtext "." /
 *mqtext mqspecial *mqtext )
 DQUOTE

 NEW:

 no-fold-quote = DQUOTE
 ( "." *mqtext /
 *mqtext "." /
 *mqtext mqspecial *mqtext )
 DQUOTE

 OLD (end of section):

 NOTE: It is RECOMMENDED in [RFC2822] that, for ensuring global
 uniqueness, the <id-right> be some domain identifier within
 whose
 scope the uniqueness of the <id-left> can be guaranteed. When
 following this recommendation, any <dot-atom-text> or <no-fold-
 literal> used for the <id-right> are to be interpreted as
 <domain>s as described in Section 3.4.1 of [RFC2822].

 NEW:

 Some software will try to match the <id-right> of a msg-id in
 a case-insensitive fashion; some will match it in a case sensitive
 fashion. Implementations MUST NOT generate two message-IDs where
 the only difference is the case of characters in the <id-right> part.

 If domain literals are used, the syntax found in [RFC2821] section
 4.1.3 is RECOMMENDED.

 NOTE: [RFC2822] section 3.6.4 recommends that the <id-right>
 should be a domain name or a domain literal. Domain literals are
 troublesome since many IP addresses are not globally unique;
 domain names are
 more likely to generate unique message-IDs.

---

From: "Forrest J. Cavalier III" <[email-masked]>
Date: Fri, 01 Jul 2005 12:08:49 -0400

> people's namespace needs to be documented

If 1003 is makred resolved, what ticket(s) list the above two items?

---

From: "Charles Lindsey" <[email-masked]>
Date: Mon, 4 Jul 2005 13:54:00 GMT

>If 1003 is makred resolved, what ticket(s) list the above two items?

I think those items are more USEPRO or UESEAGE.

-- 
Charles H. Lindsey ---------At Home, doing my own thing------------------------
Tel: +44 161 436 6131 Fax: +44 161 436 6133   Web: http://www.cs.man.ac.uk/~chl
Email: [email-masked]      Snail: 5 Clerewood Ave, CHEADLE, SK8 3JU, U.K.
PGP: 2C15F1A9      Fingerprint: 73 6D C2 51 93 A0 01 E7 65 E8 64 7E 14 A4 AB A5

---

From: "Charles Lindsey" <[email-masked]>
Date: Mon, 4 Jul 2005 13:53:01 GMT

>However, the text seems to have support as "better than what we have now".

Agreed.

> of possible msg-ids permitted by RFC 2822;

I have already pointed out that it is more that "some" news software. It
is also the new NNTP standard-to-be.

> If domain literals are used, the syntax found in [RFC2821] section

I think some people had a problem with that last sentence.

---

From: Frank Ellermann <[email-masked]>
Date: Tue, 05 Jul 2005 06:03:24 +0200

> I think those items are more USEPRO or UESEAGE.

The RHS semantics is reflected in the syntax of 1036 and 1738:

1036: <unique@full_domain_name>

1738: 1*[ uchar | ";" | "/" | "?" | ":" | "&" | "=" ] "@" host

The RHS semantics is reflected in my msg-id.txt and news-uri:

| msg-id       =  "<" id-local "@" id-domain ">"

| message-id   = unique "@" host                ; see RFC 1036

The name <id-right> is a severe security violation.  Bye, Frank

---

From: "Charles Lindsey" <[email-masked]>
Date: Tue, 5 Jul 2005 19:16:22 GMT

In <[email-masked]> Frank Ellermann <[email-masked]> writes:

>The name <id-right> is a severe security violation.

Since using a particular name for a syntax rule can have no effect on what
is allowed, how can it possibly be the cause of any security violation?

---

From: Harald Tveit Alvestrand <[email-masked]>
Date: Wed, 20 Jul 2005 16:24:37 +0200

In accordance with the message posted July 4, I've opened the ticket below:

Subject: USEPRO 7.5: Rules for Generating message-ID

In the discussion of ticket #1003, the following message was posted by
Charles Lindsey:

 It is not completely clear where this should go, but since generating
message-IDs are considered part of what a posting agent does (I
think), this ticket lists section 7.5 of USEPRO.

---

From: Frank Ellermann <[email-masked]>
Date: Thu, 21 Jul 2005 07:34:36 +0200

Harald Tveit Alvestrand wrote:

> generating message-IDs are considered part of what a posting
> agent does (I think)

Or the injection agent if there is no Message-ID in a proto
article.  That's a feature for users without a proper name
space, they can stop to create <local@bogus> Message-IDs and
let the injection agent do it.

For some time "proposed Message-IDs" were an optional NNTP
feature, but I don't find it in the new NTP-base RfC ?!  Now
I'm lost how the posting agent can determine which Message-ID
it got, if it's not reported in the 340 or 240 POST reply.

                             Bye, Frank

---

From: Russ Allbery <[email-masked]>
Date: Wed, 20 Jul 2005 22:52:31 -0700

Frank Ellermann <[email-masked]> writes:

> feature, but I don't find it in the new NTP-base RfC ?!

It was dropped for various reasons that I believe are in the list
archives, or rather deferred for someone to document as an extension if
they're so inclined.

> Now I'm lost how the posting agent can determine which Message-ID it
> got, if it's not reported in the 340 or 240 POST reply.

It can't, in the general case.

-- 
Russ Allbery ([email-masked])             <http://www.eyrie.org/~eagle/>

---

From: Frank Ellermann <[email-masked]>
Date: Thu, 21 Jul 2005 11:32:13 +0200

Russ Allbery wrote:

  [a <msg-id> determined by the injection agent]
>> Now I'm lost how the posting agent can determine which
>> Message-ID it got, if it's not reported in the 340 or 240
>> POST reply.
 
> It can't, in the general case.

Bad.  Maybe we should address this in USEAGE, something like:

"decent news servers offer vanity domains for their users
 for the creation of valid Message-IDs without collisions".

For #1003 the problem of abusing foreign name spaces is still
unresolved, that's a USEFOR problem, last discussed in:

<http://mid.gmane.org/[email-masked]>
<http://mid.gmane.org/[email-masked]>

                      Bye, Frank

---

From: "Charles Lindsey" <[email-masked]>
Date: Thu, 21 Jul 2005 13:56:46 GMT

> >> convention (for instance, not to outlaw it)

1. There is a clear requirement [USEFOR/RFC 2822] that message identifiers
be globally unique.

2. It is well known that if you deliberately break that requirement you
can bring about a situation whereby two different versions of what is
ostensibly the same article can propagate, but that any given server will
see only one of them.

3. In general, such deliberate breach of the standard would be regarded as
malpractice, meriting LARTing the perpetrator to his ISP. However, in a
few exceptional situations Usenet (more specifically, the consensus view
of the operators of servers) has consciously decided to turn a "blind eye"
to the breach.

In my opinion, we should leave it that way, by remaining resolutely silent
on the issue, certainly within USEFOR and USEPRO. I have reviewed the
earlier thread on this topic, and I find no calls for any specific action.

On looking at the current text of USEAGE, I find that I have written:

   ..... It is also in order to include
   additional information of significance to the poster within the <id-
   left>, and even to deliberately make a non-unique identifier in cases
   where the identical message is to be posted by several posters (for
   example, a cancel for an article which may also be cancelled by
   others).

I now think that maybe I ought to tone that down somewhat. Opinions?

Here is a little more background on the matter:

Usenet is a strange social phenomenon. There Is No Cabal - there is just
the body of server administrators world wide who, de facto, have ultimate
control.

Shortly after the Green Card affair, when a large number of spammers
started to cause widespread disruption of Usenet, Cancelmoose started to
issue mass cancels for spammed articles. Since such cancels were clearly
against all rules of good order on Usenet, he did so anonymously, through
anon.penet.fi, and I am not aware that, even to this day, his true
identity has ever become known. But he was quite open about it, posting
and discussing in news.admin.misc what he was doing.

Rather to everyone's surprise, Usenet as a whole hailed him as a hero.
There was an apparent consensus to turn a "blind eye", and various people
joined in to refine the process, resulting in the $alz convention, the
syberspam convention, and the Briedbart Index. That is a typical example
of how Usenet governs itself. We should leave it that way.

That is the approach I have taken in USEAGE. There are the usual
definitions of 1st, 2nd and 3rd party cancels, and what it says for 3rd
party cancels is:

   3. Other entities MAY be entitled to issue a cancel message for that
      article, in circumstances where established policy for any
      hierarchy or group in the Newsgroups header, or established custom
      within Usenet, so allows (such policies and customs are not
      defined by this document). ........

> >> people's namespace needs to be documented

We are talking here of people who construct <msg-id>s which contain the
names of other people's domains in their <id-right>. Assuming that they
have taken care to choose an <id-left> such that the <msg-id> as a whole
is still globally unique, they are not in breach of USEFOR; nothing will
break as a result, hence they are not in breach of USEPRO. Nevertheless
the practice is, to say the least, extremely rude and probably constitutes
an attempt to throw doubt on the true origin of the article (since
<msg-id>s are one the places people will regularly look when trying to
trace the origin of an article). Therefore, this could be a proper concern
for USEAGE.

Here is a possible text for USEAGE, though I am not at all sure that it is
worth inclusion:

        NOTE: To use, in the <id-right>, a domain name or IP address not
        associated with the originating site could defeat the object of
        achieving global uniqueness and would, moreover, be an affront
        to the true owner of that domain (perhaps leading people to
        believe the article was somehow associated with that other
        domain). Such practice is therefore deprecated.
[possible text for #1083.]

Opinions?