Fwd: Re: Last Call: 'Message Submission' to Draft Standard
"JFC (Jefsey) Morfin" <[email protected]> Wed, 16 Feb 2005 12:22:20 +0100
| Newsgroups | gmane.ietf.opes |
|---|---|
| Message-ID | <[email protected]> |
I have not the competence to fully understand if this concerns OPES/SMTP, but I think it does? John quotes OPES in the discussion. All this, together with the current IDN security debate, etc. lead me to think that my interest in DN massaging is a key OPES issue and that the OPES/SMTP proper location is the UA "virtual" I/O, that is at the first (front-end) and at the last (back-end) MTA only, what simplifies our debate and makes it of immediate interest? jfc >From: John C Klensin <[email protected]> >To: Randall Gellens <[email protected]>, [email protected] >Bruce, > >Let me make a few observations, largely, in support of my >esteemed co-author... > >--On Tuesday, 15 February, 2005 15:28 -0800 Randall Gellens ><[email protected]> wrote: > > >>> > Specifically regarding the 4.3 MUST quoted above and the > >>> > reply code, and the necessary two independent > >>> > implementations required for advancement to Draft > >>> > Standard status, do the implementations supporting the > >>> > request to advance to Draft in fact unconditionally > >>> > require authorization (i.e. independent of whether port > >>> > 25 or 587 is used, and regardless of administrative > >>> > configuration other than specifying that the > >>> > implementation is to act as an MSA), and reply with code > >>> > 530 (unspecified extended response code) if > >>> > authorization is lacking? > >>> > >>> Both the draft and RFC 2476 allow submission to use 25 > >>> instead of 587, but state that "normally" 587 is used, and > >>> allow 25 to be used in order to accommodate implementations > >>> that are hard to configure. Both say that port 587 is > >>> reserved for submission. So, 587 is the normal case for > >>> submission, and 25 is an exceptional case. > >> > >> But as written, section 4.3 specifies that when acting as an > >> MSA, authentication MUST (emphasis in original) be used, > >> regardless of port. > > > > Section 4.3 says "unless it has already independently > > established authentication or authorization (such as being > > within a protected subnetwork)." It's not uncommon for > > organizations to deploy MSAs that treat all internal > > connections as authenticated, even if they allow travellers to > > connect in using port 587 and in that case require > > authentication. > >Bruce, if I understand your concern (I may not), let's back up a >bit and look at a bit of history and the usage case. The notion >of a separate submission protocol arose in part out of a problem >that became clear when we were doing 2821. There were a whole >series of things that we would really prefer that MTAs not do >--things that violated the "don't mess with the message" >meta-principle for MTAs but were necessary because clients >weren't able to supply all of the information needed for a valid >2822/822 message, or weren't able to supply it in a form that >would be security-acceptable. So, to face the reality of the >fact that these MTA-fixes were being applied (and were >necessary), 2821 contains a loophole for submission servers to >fix messages up. > >That loophole is, however, somewhat bad news, since it doesn't >involve explicit client authorization for message-tampering and >there is no real way to permit such authorization even if one >wanted to do it (similarities to some of the OPES issues here >are not coincidental). "Message Submission" ("Submit" below) is >obviously different: we allowed for extensions to be used with >Submit that are not specified for SMTP (even though no one has >done that -- the mechanism has been shown to work with >extensions that are also specified for SMTP) and the mere fact >of using the Submit protocol says "this is a submission agent, >not a general MTA, and hence gets to use those features". > >Now the intent is that Submit be used on its own port, for all >of the obvious reasons. But (i) nothing really prevents it from >being run on _any_ port; such is the nature of IETF applications >protocols and (ii) in particular, it can, explicitly, be run on >Port 25. But, if it is run on port 25, the question >immediately arises as to how you tell it from SMTP, since the >two are deliberately quite similar in their handshakes. The >answer is "administrative or policy decision, reflected in >configurations". No other answer really makes sense. And, if >you get that far, then you need to ask the question of whether >one would want to permit a host whose port 25 is being used to >support Submit to also support SMTP. And the answer is that >the question is meaningless if you are not either using Submit >extensions that are not defined for SMTP (or vice versa) and a >really dumb idea if you are and feel like mixing the two and >distinguishing heuristically, halfway through the protocol >transaction. Such a concurrent implementation on the same port >would actually probably violate both specs, since it would have >to advertise extensions that were not defined for the protocol >that the client was expecting (not that doing so would make a >lot of difference). > >So... > > >> Again, "or not" is not allowed by the draft as written; > >> implementations with an "or not" provision would fail to > >> comply with the "MUST" (they would comply with a "SHOULD", > >> however). > > > > My understanding is that implementations are permitted to have > > configuration options that allow sites to deploy them in ways > > that violate the RFCs, as long as they can be operated in a > > conforming manner. For example, it is not uncommon for POP > > implementations to have options to have timeouts shorter than > > mandated, or to enter UPDATE state on abort. > >This has always been the rule, at least since we decided that >specifications, to advance to draft, must exhibit implementation >of all of the features. We don't do code review to verify >conformance and spot possibly-non-conforming capabilities. The >rule is that the implementations must be able to demonstrate >that they can be configured in a way that conforms to the spec. >Nothing else counts as it is, by definition, outside the >specification. > > >... > > From my understanding of the requirements, there are multiple > > implementations which comply. This is based on two points: > > (1) implementations can be compliant even if they have options > > which permit non-conformance; and (2) there must be at least > > two implementations for each feature, but it is not required > > that any individual implementation meet every SHOULD. I > > believe Message Submission meets the criteria on the basis of > > either of these points; the fact that it meets it on both is > > nice but not required. > >Under other circumstances, I might actually quibble about (2), >but (1) is the important point. > > >>> > On another matter, admittedly unchanged since RFC 2476, > >>> > there seem to be some undesirable discrepancies between > >>> > submission and non-submission ESMTP regarding extended > >>> > response codes. Draft section 3.4 states that extended > >>> > status code 5.6.2 means "Bad domain or address", whereas > >>> > RFC 3463 assigns that code the semantics "Conversion > >>> > required and prohibited" [RFC 3463 section 3.7]. The > >> > > corresponding RFC 3463 extended response code for > >>> > domain/address issues would be in the 5.1.XXX range [RFC > >>> >... > >To the extent to which this is an issue, it is an issue with RFC >3463 and not with this draft. A real problem would arise only >in the "both protocols, same machine, port 25" case described >above. But I agree with Randy -- the right action is to delete >the specific codes from this specification and leave that to >1893, 3463, and their successors. > > >>> > the draft should explicitly say so (the term "gateway" > >>> > does not appear anywhere in the draft). [that would be a > >>> > novel use of the term "gateway" in Internet mail; a > >>> > gateway usually has one side in a non-SMTP environment] > >Actually, we discovered in working on RFC 2821 that life wasn't >that easy. First, it has never been the definition, "usually" >or otherwise: at the time 821 was written, the concept of a >mail gateway applied when either one side was in a non-SMTP >environment or when one side was in a non-TCP environment, >whether SMTP was being used or not (or, indeed, when the two >sides didn't share underlying transports, whether either one was >TCP or not). >While I would prefer that "one side in non-SMTP or different >transport" definition, one runs into real-world problems when >the addressing structures differ, whether SMTP and TCP are on >both sides or not. For example, assume that one has a >submission client on a private network using 1918 space. It >submits the message to an MSA which lies at the NAT boundary >between that network and the public Internet. To meet the >requirements of 2821, the MSA (or submission MTA) should modify >or supplement addresses and internal names so that they reflect >public names and addresses. That moves it into gateway >territory, and 2821 was written to permit that case (doesn't >make that I, or the DRUMS WG, liked the case very much, but it >reflects reality). > > >>> > Conversely, if MSAs are not always to be considered as > >>> > gateways, then returning errors in response to message > >>> > content is: 1. explicitly counter to the SHOULD NOT of > >>> RFC 2821 section 3.4 (bottom of > >>> > page 18) > >>> > 2. inappropriately associated with "conversion" > >>> > semantics where no conversion is in fact required > >>> > (indeed, > >>> other than adding trace fields, > >>> > tinkering with message data by > >>> non-gateway SMTP receivers is disallowed > >>> > [RFC 2821 section 2.3.8]). > >>> > >>> It is not the intent of either this draft or RFC 2476 to > >>> say that MSAs are always gateways; rather, the intent in > >>> both is to recognize the reality that organizations > >>> sometimes see a need to examine and potentially modify > >>> messages submitted using their servers, and to make a clear > >>> distinction between this case, and the > >>> examination/modification of messages being relayed. > >Bruce, you are assuming, I think, that every MSA must be >conformant to the MTA requirements of 2821 (gateway or not). >That was never intended to be the case. Indeed, that is part of >the reason why this is a separate protocol (i.e., the "clear >distinction" to which Randy refers to above).