TSV-DIR review of draft-hethmon-mcmurray-ftp-hosts-11.txt

2010-05-06 Thread Joe Touch
Hi, all,

I've reviewed this document as part of the transport area directorate's
ongoing effort to review key IETF documents. These comments were written
primarily for the transport area directors, but are copied to the
document's authors for their information and to allow them to address
any issues raised. The authors should consider this review together with
any other last-call comments they receive. Please always CC
tsv-...@ietf.org if you reply to or forward this review.

The document defines a new FTP command called "HOST" that allows an FTP
server to support virtual hosts, i.e., multiple hosts on the same IP
address.

The document does raise an important concern from a transport viewpoint.
The document extends FTP to support the same kind of virtual hosting
common in the web. Although the Internet defines hosts by IP address,
virtual hosts are specified in various ways, including DNS names, that
may or may not map to the IP address of the connection to the server.

The extension is discussed in ways that imply that the user is
connecting to a HOST as indicated in the command, rather than the IP
address of the FTP connection. IMO, the HOST command ought to be
presented more as a way to provide context within a host, not to
indicate a host. That might be acheived by a name change (VHOST?) and/or
by revising some of the discussion accordingly.

Thus, I would strongly suggest the document be revised as follows. Notes
are included below that indicate places where thes critical issues
should be addressed, flagged by "".
--
This document should emphasize that the argument to the host command is,
at the protocol level, an opaque string passed to the application that
indicates only a session context (including authentication, file system,
etc.). There should be no attempt for the protocol to validate,
translate, or interpret that string - e.g., as matching the IP address
of the connection, or providing a valid IP address or fqdn. That
validation can be performed by the server implementation, but should not
be a constraint of the protocol.

There are places where SHOULDs are used where I expected MUSTs. Any
place a SHOULD is used, the document ought to include a description of
what happens if not, i.e., if the SHOULD is not followed, and it'd be
useful to also include reasons why and conditions where this might be
useful or valid.

Also, in terminology, the document would benefit from a bit of
clarification and revision, notably its title and description of the
purpose of this command. The HOST command performes much the same
function as HTTP including the full URL in the GET command, which
similarly allows virtual hosting. The document should avoid confusing
this with multi-homing, which is not necessarily related.
--

I have provided some other feedback interspersed in the text below
(flagged with ""). The most notable is the issue of how to handle
multiple HOST commands, the potential for HOST commands after the USER
command (without a REIN command), and updating the state machine to
include the effects of REIN interactions with the HOST command.

I also found numerous places where "should" or "must" are used but not
capitalized; the document should be checked for these uses to confirm
the intent. If case is important, then Section 2 should include text to
indicate such (as noted there).

I'd like to also suggest that the alternatives discussed might consider
an opportunity to integrate this command with the USER command to accept
"na...@hoststring]" arguments, e.g., sm...@host.example.com This syntax
would suffice, and might need only an additional error code (to indicate
that the hoststring is not valid, rather than the entire command
argument), rather than defining a new name and introducing an additional
round trip into the login process. It seems equally compatible with the
wrapper approach discussed (which, IMO, should also be noted as a goal
of the design, FWIW).

I'd be glad to discuss this further on whatever list would be useful.

Joe

-

Network Working Group P. Hethmon
Internet-Draft  Hethmon Brothers
Updates: 959 R. McMurray
Intended status: Standards Track   Microsoft
Expires: October 6, 2010  April 2010


  File Transfer Protocol HOST Command
  draft-hethmon-mcmurray-ftp-hosts-11


The title should more accurately indicate the nature of the command, e.g.,
"The File Transfer Protocol HOST Command for Virtual Hosts"


Abstract

   The File Transfer Protocol, as defined in RFC 959 and Section 4
   of RFC 1123, is one of the oldest and most widely used protocols on
   the Internet.

   This document addresses the subject of creating multi-homed hostname-
   based FTP servers on a single IP address.  This is achieved by
   extending the FTP 

RE: TSV-DIR review of draft-hethmon-mcmurray-ftp-hosts-11.txt

2010-05-17 Thread Robert McMurray
 parameter for the HOST command should 
be an opaque string rather than constraining the parameter through the 
protocol. The intention of this draft is to allow an FTP client to specify the 
correct hostname (typically an FQDN) for an FTP server to use after an FTP 
client has connected, so that limits the parameter for the HOST command to 
hostnames that are already constrained by protocol, although I tried to make 
allowances for an FTP client to send the IP address via the HOST command rather 
than force the client to know the difference between an FQDN and an IP address. 
(An actual human using an FTP client should be able to tell the difference, of 
course, but their FTP software application might not. )


In any event, I am still working on an updated draft. Thanks again for the 
feedback.

Robert


-Original Message-
From: Joe Touch [mailto:to...@isi.edu]
Sent: Thursday, May 06, 2010 10:48 AM
To: IETF discussion list
Cc: TSV Dir; draft-hethmon-mcmurray-ftp-ho...@tools.ietf.org; 
tsv-...@tools.ietf.org
Subject: TSV-DIR review of draft-hethmon-mcmurray-ftp-hosts-11.txt

Hi, all,

I've reviewed this document as part of the transport area directorate's ongoing 
effort to review key IETF documents. These comments were written primarily for 
the transport area directors, but are copied to the document's authors for 
their information and to allow them to address any issues raised. The authors 
should consider this review together with any other last-call comments they 
receive. Please always CC tsv-...@ietf.org if you reply to or forward this 
review.

The document defines a new FTP command called "HOST" that allows an FTP server 
to support virtual hosts, i.e., multiple hosts on the same IP address.

The document does raise an important concern from a transport viewpoint.
The document extends FTP to support the same kind of virtual hosting common in 
the web. Although the Internet defines hosts by IP address, virtual hosts are 
specified in various ways, including DNS names, that may or may not map to the 
IP address of the connection to the server.

The extension is discussed in ways that imply that the user is connecting to a 
HOST as indicated in the command, rather than the IP address of the FTP 
connection. IMO, the HOST command ought to be presented more as a way to 
provide context within a host, not to indicate a host. That might be acheived 
by a name change (VHOST?) and/or by revising some of the discussion accordingly.

Thus, I would strongly suggest the document be revised as follows. Notes are 
included below that indicate places where thes critical issues should be 
addressed, flagged by "".
--
This document should emphasize that the argument to the host command is, at the 
protocol level, an opaque string passed to the application that indicates only 
a session context (including authentication, file system, etc.). There should 
be no attempt for the protocol to validate, translate, or interpret that string 
- e.g., as matching the IP address of the connection, or providing a valid IP 
address or fqdn. That validation can be performed by the server implementation, 
but should not be a constraint of the protocol.

There are places where SHOULDs are used where I expected MUSTs. Any place a 
SHOULD is used, the document ought to include a description of what happens if 
not, i.e., if the SHOULD is not followed, and it'd be useful to also include 
reasons why and conditions where this might be useful or valid.

Also, in terminology, the document would benefit from a bit of clarification 
and revision, notably its title and description of the purpose of this command. 
The HOST command performes much the same function as HTTP including the full 
URL in the GET command, which similarly allows virtual hosting. The document 
should avoid confusing this with multi-homing, which is not necessarily related.
--

I have provided some other feedback interspersed in the text below (flagged 
with ""). The most notable is the issue of how to handle multiple HOST 
commands, the potential for HOST commands after the USER command (without a 
REIN command), and updating the state machine to include the effects of REIN 
interactions with the HOST command.

I also found numerous places where "should" or "must" are used but not 
capitalized; the document should be checked for these uses to confirm the 
intent. If case is important, then Section 2 should include text to indicate 
such (as noted there).

I'd like to also suggest that the alternatives discussed might consider an 
opportunity to integrate this command with the USER command to accept 
"na...@hoststring]" arguments, e.g., sm...@host.example.com This syntax would 
suffice, and might need only an additional error code (to indicate that the 
hoststring is not valid, rather than the entire command argument), rather than 
defining a new name and introducing an addi

Re: TSV-DIR review of draft-hethmon-mcmurray-ftp-hosts-11.txt

2010-05-17 Thread Douglas Otis

On 5/17/10 10:06 AM, Joe Touch wrote:

My point here is that if you're discussing alternatives, you need to
address why this alternative was not used. There may be useful reasons
(in specific, using a separate command allows you to reuse some error
codes more usefully), but you're also incurring an extra round trip,
which people tend to count these days.
   

Joe,

The use of AUTH follows HOST and precedes USER and PASS.  Your 
suggestion of combining USER+HOST exposes USER.


International consensus was reached between the ISO, IETF, ITU, and 
UNCEFACT on use of UTF-8 for interoperability.  However, this draft 
requires Puny-code input for international domain names.  While 
Puny-code allows IDNs to be encoded using ASCII, Puny-code is not 
intended as a human interface, nor is Puny-code interoperable with 
existing name services, and certificate validations.  Distinguished 
names in certs are UTF-8 encoded.   Local name services such as LLMNR, 
mDNS or Bonjour resolve domain names using UTF-8 queries.


Don't assume a server responding represents a valid server for the 
host.  More attention should be given to client compliance checks and 
the human interface.


-Doug
___
Ietf mailing list
Ietf@ietf.org
https://www.ietf.org/mailman/listinfo/ietf


Re: TSV-DIR review of draft-hethmon-mcmurray-ftp-hosts-11.txt

2010-05-17 Thread Martin Rex
Douglas Otis wrote:
> 
> On 5/17/10 10:06 AM, Joe Touch wrote:
> > My point here is that if you're discussing alternatives, you need to
> > address why this alternative was not used. There may be useful reasons
> > (in specific, using a separate command allows you to reuse some error
> > codes more usefully), but you're also incurring an extra round trip,
> > which people tend to count these days.
> >
> Joe,
> 
> The use of AUTH follows HOST and precedes USER and PASS.  Your 
> suggestion of combining USER+HOST exposes USER.
> 
> International consensus was reached between the ISO, IETF, ITU, and 
> UNCEFACT on use of UTF-8 for interoperability.  However, this draft 
> requires Puny-code input for international domain names.  While 
> Puny-code allows IDNs to be encoded using ASCII, Puny-code is not 
> intended as a human interface, nor is Puny-code interoperable with 
> existing name services, and certificate validations.  Distinguished 
> names in certs are UTF-8 encoded.   Local name services such as LLMNR, 
> mDNS or Bonjour resolve domain names using UTF-8 queries.

There may be a misunderstanding.

When performing server endpoint identification (similar to what is
suggested for HTTP over TLS in rfc-2818), then the prefered method
is to match against dNSName subjectAltNames, which are IA5String.

Hostnames in the CN= part of certificates are also pure IA5Strings,
because hostnames were pure IA5Strings when this scheme was
originally devised and it has been deprecated many years ago.


-Martin
___
Ietf mailing list
Ietf@ietf.org
https://www.ietf.org/mailman/listinfo/ietf