IESG Review: draft-ietf-fax-esmtp-conneg-10.txt

"Scott Hollenbeck" <[email protected]> Thu, 8 Jul 2004 13:15:45 -0400
Newsgroups gmane.ietf.fax
Message-ID <5BEA6CDB196A4241B8BE129D309AA4AF02E0F677@vsvapostal8.vcorp.ad.vrsn.com>
The IESG reviewed draft-ietf-fax-esmtp-conneg-10.txt during today's
telechat.  I've included the comments below and request that the authors and
WG chairs talk to the ADs that provided the comments.  The document will
definitely need to be revised to address the "Discuss" issues described by
Steve Bellovin, Ted Hardie, and Alex Zinin.  The actions to take with the
other comments will likely depend on the outcome of discussions with the
reviewers.

These comments can also be found in the I-D tracker.

-Scott-
----------
Steve Bellovin:
Discuss:
[2004-07-06] This scheme completely breaks S/MIME.  At the very least, there
needs to be discussion of that fact and its implications; ideally, there
should be some mention of the architecture for -- and the security
implications of -- a content-converting S/MIME gateway.

The CPU load of such conversions should also be discussed in the Security
Considerations section.  Is this another way to DoS a mail server?

Ted Hardie:
Discuss:
[2004-07-06] In general, this does not seem adequately specified for general
use.  A limited use
case might be made specifically for one class of devices using SMTP in a
specific
way, but this is not the approach the authors have taken.

Going through the draft point by point would be exhausting, and I'm not sure
it would help.  Among the issues are:  the document allows for the
conversions
to happen off the message path, but has not dealt with the issues raised
by the IAB in the context of OPES; the document allows for conversion 
and continuation of the use of CONPERM so that a later conversion may
take place--creating the classic "copy of a copy" syndrome; the document
permits a message intended for multiple recipients to be split according
to the capabilities of the recipients and fails to specify whether the
recipient
list is retained or split; the document punts completely how the SMTP
service
gets the CONNEG data in the first place, putting a critical part of the
security story out of reach.

Alex Zinin:
Discuss:
[2004-07-08] Gen-art reviewer Joel Halpern:

This draft is basically ready for publication, but has nits that should be 
fixed before publication.  This may be more positive than I really am, in 
that the long comment that follows is either me being confused or the 
comment is fairly significant.


Significant comments:

There is a consistent phrasing in this document which I think is just 
unfortunate.  The text says repeatedly that the conversion MUST be 
performed at the point where CONPERM meets CONNEG.
This would, as stated, result in avoidable delivery failures.
To elaborate, the client has sent the email, with CONPERM and permitted 
mandatory conversions, to server S1 which supports CONPERM and some 
conversions.  Server S2 happens to know the capabilities of target T, so it 
responds with CONNEG.  Let us assume that there is a non-empty intersection 
between the target acceptable forms and the sender specified 
transforms.  So, by the spec S1 is required to perform the transform or 
fail the request.  But it would seem likely, particularly if T is a limited 
device and S2 explicitly supports T, that S2 could perform the conversion 
even if S1 can not.
If the working group really intended to prohibit S1 from sending the 
request on to S2 without conversion, I really think some explanatory text 
is required.
(This is particularly odd since if S2 simply chose not to tell S1 that it 
know the targets capabilities, the S2 would get the message, and could 
perform the conversion.)

Related to this is the requirement that a server only offer CONPERM if it 
is able to perform conversions.  But CONPERM is a generalized capability, 
not a statement of specific conversions relevant to the specific 
message.  Thus, the requirement is vacuous.  (If the server is able to 
convert useless format A to useless format B, and it preserves CONPERM 
information, then it can advertise CONPERM.  But if it does not happen to 
have any conversion that it supports, then it can not advertise this?  It 
is even more vacuous since it is vacated if the server somehow magically 
knows that someone down the line can perform the conversion.
It seems to me that CONPERM ought to be offered if the server is prepared to
a) carry CONPERM forward
b) do the right thing if the next neighbor does not support CONPERM
c) do the right thing relative to a client, including failing the request 
if a mandatory conversion can not be performed


Maybe my usage of English is odd, but as I read this spec, the 
"Content_Conversion_Permission" service extension is used not to give 
permission to convert, but rather to mandate conversion.  permission is 
given by the presence of the Content-Convert header.  Shouldn't this be 
called the "Content_Conversion_Required" service extension?


I got confused in section 4.2.  To backtrack, reading everything else, 
CONPERM indicates that conversion is required before delivery.  Earlier 
text indicates that in the absence of CONPERM, message delivery continues 
even if conversion can not be performed.  Then, in the Client Action 
portion of 4.2 on CONNEG, the text says that if the intersection of 
conversion goals is empty:
          (1)  If the message is subject to CONPERM, the Client MAY
                continue to transmit the original content, according to
                CONPERM.

          (2)  Otherwise, the Client MUST treat the conversion as
                failed.
I am not sure what either bullet actually means.
I am guessing that bullet 1 is trying to say that even if CONPERM was 
indicated for the whole message, the failure response depends upon whether 
the conversion of the specific body part was mandatory.  If so, it just 
does not say that.
I am guessing that bullet 2 really means "just let the message proceed 
without recording any conversions" since that is what the rest of the spec 
says to do if one can not convert.  However, the words do not say that.


I believe the following is typographic, but it leaves the reader guessing:
The list of features refers to "Content-Convert, Content-Converted, and 
Content-Features.  The general overview indicates that the conversions are 
recorded into the Content-Converted and Content-Features MIME 
headers.  However, the description of the "Intermediary Actions" says that 
the record of conversions is placed in the "Content-Previous" headers 
(rather than the "Content-Converted" headers.)
Section 6 always describes this extensively as the Content-Previous header 
rather than the Content-Converted Header.
Could we have just one name for this header?

Minor:
There is no citation of an RFC defining the ABNF format used in this 
document.  And I would not be surprised if the existing document does not 
support <<[ref] or [ref]>> for inclusion by reference.

The phrasing of the IANA considerations section is odd.  I believe what is 
desired is that IANA record the new parameters in the registries (I assume 
those exist) but that no new registries or opportunities for other folks to 
create entries are created by this document.

[CONMSG] is either a normative reference or an informative reference.  If 
(as I suspect) it is used normatively some of the time, it should appear in 
the normative list and not in the informative list.

There is no IPR disclosure.