home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / ietf / ftpext / ftpext-minutes-97apr.txt < prev   
Text File  |  1997-05-29  |  18KB  |  550 lines

  1. Editor's Note:  These minutes have not been edited.
  2.  
  3.  
  4. Reported by Bill Curtin <curtanw@ftm.disa.mil>
  5.  
  6.                    Minutes for the FTPEXT WG in Memphis
  7.  
  8. The  working group chair opened the meeting by proposing an agenda which 
  9. included discussions on the groups outstanding drafts: security 
  10. considerations, variable ftp, ftp internationalization, MLST/MLSD, and 
  11. Restart.
  12.  
  13.  
  14. - SECURITY CONCIDERATIONS (draft-allman-ftp-sec-consider-01.txt)
  15.  
  16. A presentation of the security considerations document was made by 
  17. the authors. They explained that the document was based on concerns 
  18. raised on the mail list. The document recommends ways to reduce 
  19. security problems and details bounce attacks associated with 3 way 
  20. connections,  access restrictions based on IP addresses, and how to 
  21. protect passwords against brute force attacks.
  22.  
  23. An example of a bounce attack was presented using the PASV and PORT 
  24. command to pass a file containing RFC822 commands to the well known 
  25. port for SMTP thereby fooling the SMTP server as to the origin of the 
  26. mail message. The recommended solution to this attack was to refuse 
  27. PORT commands to well known ports (i.e. <1024). A suggestion was made 
  28. to use a reply code 504  in response to an attempt by the user-FTP to 
  29. use the PORT command with a port number <1024.
  30.  
  31. It was noted during the description of restricting access based on 
  32. network address that the server must verify both the control and data 
  33. connection and that this approach would still be open to a "spoof 
  34. attack"
  35.         
  36. The recommended solution to a brute force attack on password guessing 
  37. was to limit attempts to 3-5 and then close the connection. An 
  38. additional solution was to add in a delay and to use operating system 
  39. services where available. The group noted that rather then abruptly 
  40. closing the connection that the server should return a 421 reply. It 
  41. was also noted that there was still the possibility to using the 
  42. brute force attack, even with this recommendation, by simply opening 
  43. up numerous control connections. It was noted that the draft should 
  44. include sections on port stealing, integrity, and privacy. The 
  45. suggestion to the latter 2 was to reference the FTP security 
  46. extensions draft (being progressed through the Common Authentication 
  47. working group);  the recommendation for the former was to avoid 
  48. assigning port numbers sequentially (i.e. assign them randomly) or  
  49. to possibly use a cookie passing technique.
  50.  
  51. - FTP Extensions for Variable Protocol Specification
  52.  
  53. The authors noted that RFC959 limits the PORT and PASV command to a 32 
  54. bit IPV4 and 16 bit TCP addresses and that this will not work with other 
  55. network or transport protocols, most notably Ipv6. The authors also 
  56. noted that the FOOBAR RFC, while removing this restriction still 
  57. associates specific network and transport protocols. In an attempt to 
  58. decouple the relationship of the network and transport protocols while 
  59. not removing functionality defined in RFC959 the authors defined 2 new 
  60. commands, EPRT and EPSV, to replace the PORT and  PASV commands. 
  61.  
  62. The format of the EPRT command is: 
  63. EPRT <net-prot>|<trans-prot>|net-addr|<trans-addr 
  64. The first 3 fields are optional.  The last is required in all cases.
  65.  
  66. The protocol also defines field keywords for the EPRT command as:
  67. IP4, IP6, TCP, and RDP. Other keywords will be defined as necessary.
  68.  
  69. The group commented that the draft needed to clarify that the "|" were 
  70. being used as field delimiters by the protocol and did not connote the 
  71. word "or". A suggestion was also made to place a delimiter after the 
  72. space separating the commands from the fields and to possibly allow the 
  73. first non-blank character to represent the delimiter. This would allow 
  74. future network protocols maximum freedom to represent network addresses 
  75. without concern for colliding with the delimiter defined in this draft.  
  76.  
  77. The format of the EPSV returns information necessary to open a data 
  78. connection by the EPRT command in the following format:
  79.  
  80. (<net-prot>|<trans-prot>|net-addr|<trans-addr) <Text to express that 
  81. server is entering extended passive mode>
  82.  
  83. The parenthesis and the fields within them must be returned from a EPSV 
  84. request.
  85.  
  86. It was noted that there may be a problem if EPSV returns a protocol 
  87. which can not be supported. The group commented that possibly there 
  88. should be a prior negotiation which could last the entire session or 
  89. until it was changed.
  90.  
  91.  
  92. - Internationalization of the File Transfer Protocol (draft-ietf-ftpext-
  93. intl-ftp-01.txt)
  94.  
  95. The editor for this draft gave a brief overview on what was contained in 
  96. the draft (e.g. restriction on 7 bit ASCII dropped, use ISO 10646-1 
  97. character set, and use UTF-8 transfer encoding). A description of the 
  98. changes from the first version of this draft were given: draft 
  99. restructured to shorten normative portion and added 2 informative 
  100. appendices; and defined use of space and CRLF characters used in 
  101. pathnames.
  102.  
  103. It was noted that there were not many comments on the latest version of 
  104. the draft and that all of the editorial comments had already been 
  105. changed in the working draft copy. There were 3 outstanding comments to 
  106. the latest version: Caveat of ISO's adoption of amendment 5 may no 
  107. longer be necessary because ISO may have already approved the amendment; 
  108. the code example to check for UTF-8 strings was expanded but needed to 
  109. be checked; and it might be nice to have a section which dealt with 
  110. transitional issues and backward compatibility.
  111.  
  112. The presentation finished by asking if this draft should go standards 
  113. track and if the RFC 1123 tables needed to be updated to include the new 
  114. features and commands being developed in this and other FTP related 
  115. drafts. The group seemed to feel that the draft should go to standards 
  116. track and that a RFC 1123 type table, while not necessary, might be 
  117. nice. 
  118.   
  119.  
  120. - MLST command and Extensions to FTP (draft-ietf-ftpext-mlst-00.txt)
  121.  
  122. A proposal by the chair to merge the Restart document with the MLST 
  123. document was presented. The chair noted that all of the authors of the 
  124. drafts had already concurred with the proposal. The group had no 
  125. objection.
  126.  
  127.  
  128. There was a discussion on directory and filename concatenation. It was 
  129. noted that trend is toward virtual file names and may not be able to 
  130. concatenate directory and filename. Suggestion to maybe allow 
  131. directory/filename without doing a CWD. But not the weird things.
  132.  
  133. The author agreed to align the UTC time to the format given in the 
  134. RESTART draft.
  135.  
  136. The consensus at the meeting was to drop MLST replies over the control 
  137. connection. It was suggested that the STAT command could be used for the 
  138. same behavior. A server which supports MLST would use the same format if 
  139. STAT is used.
  140.  
  141. The author asked if it made sense to allow implementation specific 
  142. extensions to be case sensitive (i.e. x -vs- X). The group opinion was 
  143. that extensions should by case insensitive.
  144.  
  145. After some discussion about the need or use of the link "type" fact it 
  146. was decided that it added no real value and should be removed from the 
  147. specification.
  148.  
  149. There was a discussion on what use the x value of the "perm" fact has 
  150. given that there is no guarantee that the file can execute on a given 
  151. platform. The suggestion is to remove the x value from the draft.
  152.  
  153. There was a discussion on the ability to cache the FEAT command for use 
  154. in subsequent sessions. The group felt that caching should not be a 
  155. condoned strategy and that it should not be addressed in the draft. 
  156.  
  157. - REST Command and Extensions to FTP (draft-ietf-ftpext-restart-00.txt)
  158.  
  159. It was decided that the REST command must immediately precede the 
  160. operative command (RETR/STOR). Anywhere else and its effect will be 
  161. undefined.
  162.  
  163. There was some questions on the need for a manual restart and whether 
  164. the same results couldn't be achieved by doing an ABOR and later use the 
  165. SIZE command to get the restart marker. This topic was left for further 
  166. discussion on the list.
  167.  
  168. ======================================================================
  169. IPv6 Slides
  170.  
  171. ---Slide 1---
  172.  
  173.         FTP Extensions for Variable
  174.            Protocol Specification
  175.  
  176.       draft-allman-ftp-variable-04.txt
  177.  
  178.          April 9, 1997
  179.  
  180.       Mark Allman and Shawn Ostermann
  181.  
  182.       {mallman,ostermann}@cs.ohiou.edu
  183.  
  184.         Ohio University
  185.  
  186.          http://jarok.cs.ohiou.edu/
  187.  
  188. ---Slide 2---
  189.  
  190.        PORT/PASV Examples
  191.  
  192. PORT Command
  193.  
  194.     PORT EXAMPLE - FIGURE
  195.  
  196. PASV Command
  197.  
  198.     PASV EXAMPLE - FIGURE
  199.  
  200. ---Slide 3---
  201.  
  202.           Introduction
  203.  
  204. FTP [RFC 959] limits addresses to IPv4/TCP
  205.     -32 bit network address (IP address)
  206.     -16 bit transport address (TCP port number)
  207.  
  208. This will not work with IPv6 network addresses (128 bits).
  209.  
  210. Piscitello's FOOBAR [RFC 1639] mechanism solves the problem, but... 
  211.     -Network and transport protocols are linked together.
  212.     -Choosing a network protocol automatically chooses a transport 
  213.      protocol.
  214.  
  215. ---Slide 4---
  216.  
  217.              Goals
  218.  
  219. Design more general versions of the PORT and PASV FTP commands.
  220.     -Should work over any combination of network and transport
  221.      protocols supported by a given client/server pair.
  222.  
  223. Maintain all the functionality present in RFC 959.
  224.  
  225. New commands: EPRT and EPSV
  226.  
  227. ---Slide 5---
  228.  
  229.         EPRT
  230.  
  231. FTP command sent from one machine to another.
  232.  
  233. Allows the use of \textit{extended addresses}.
  234.  
  235. Format: EPRT <NP>|<TP>|<NA>|<TA>
  236.     <NP> - network protocol
  237.     <TP> - transport protocol
  238.     <NA> - network address
  239.     <TA> - transport address
  240.  
  241. ---Slide 6---
  242.        Defined Protocols
  243.  
  244. Protocols MUST be upper-case strings indicating the protocol (and,
  245. implicitly, address length)
  246.  
  247. Network Protocols defined in the draft:
  248.  
  249.     Text    Meaning
  250.     ----    -------
  251.     IP4     Internet Protocol, Version 4
  252.     IP6     Internet Protocol, Version 6
  253.  
  254. Transport Protocols defined in the draft:
  255.     Text    Meaning
  256.     ----    -------
  257.     TCP     Transmission Control Protocol
  258.     RDP     Reliable Data Protocol
  259.  
  260. ---Slide 7---
  261.  
  262.           Network Address Formats
  263.  
  264. For each of the following keywords, the address in the EPRT command
  265. MUST be in the format given:
  266.  
  267. IP4
  268.     -String representation of dotted decimal format address.
  269.     -Example: 132.235.1.2
  270.  
  271. IP6
  272.     -IPv6 string representations defined in RFC 1884.
  273.     -Example: 1080::8:800:200C:417A
  274.  
  275. ---Slide 8---
  276.  
  277.          Transport Address Formats
  278.  
  279. TCP
  280.     -String representation of decimal port number.
  281.     -Example: 6446
  282.  
  283. RDP
  284.     -String representation of decimal port number.
  285.     -Example: 3684
  286.  
  287. ---Slide 9---
  288.  
  289.          Default Values
  290.  
  291. The network and transport protocols and the network address have
  292. default values if they are not specified in the EPRT command, as
  293. follows.
  294.  
  295.     Network Protocol - defaults to network protocol used for the
  296.   control connection
  297.     Transport Protocol - defaults to the transport protocol used for
  298.   the control connection
  299.     Network Address - defaults to the network address of the remote 
  300.   machine on the control connection
  301.  
  302. EPRT Examples:
  303.     EPRT IP4|TCP|132.235.1.2|6275
  304.     EPRT |RDP||5282
  305.     EPRT |||6446
  306.  
  307. ---Slide 10---
  308.  
  309.           Return Codes
  310.  
  311. Upon receipt of a valid EPRT command, a return code of 200 MUST be
  312. sent.
  313.  
  314.     This is the same return code sent in response to valid
  315.         PORT commands.
  316.  
  317. The standard return codes 500 and 501 are sufficient to handle 
  318. most errors (e.g., syntax errors).
  319.  
  320. Two new response codes are needed:
  321.     -522 - network protocol unknown
  322.     -523 - transport protocol unknown
  323.  
  324. If the remote host does not support either the network or transport
  325. protocol, the error returned should be 522 (invalid network
  326. protocol).
  327.  
  328. ---Slide 11---
  329.  
  330.       Return Codes (cont.)
  331.  
  332. The text portion of a 522 or 523 response MUST list the supported
  333. protocols followed by an optional human readable description.
  334.  
  335. Text response format:
  336.     (prot1,prot2,...,protN) <text for people>
  337.  
  338. The listed protocols MUST be in the form of the protocol keywords
  339. defined above.
  340.  
  341. Example responses:
  342.     522 (IP4,IP6) supported network protocols
  343.     523 (TCP) supported transport protocols
  344.  
  345. ---Slide 12---
  346.  
  347.         EPSV
  348.  
  349. Allows a machine to request a passive connection be setup using the
  350. extended address format.
  351.  
  352. The response includes all information needed to setup a data
  353. connection using the EPRT command.
  354.  
  355. The new response code 229 MUST be returned when entering passive
  356. mode using an extended address.
  357.  
  358. The text portion of the response MUST be of the following format:
  359.     (<NP>|<TP>|<NA>|<TA>) <text for people>
  360.  
  361. ---Slide 13---
  362.  
  363.           EPSV (cont.)
  364.  
  365. The portion enclosed in parenthesis MUST be in the format defined
  366. above for EPRT.
  367.  
  368. Example response:
  369.     229 (|||6446) Entering Passive Mode
  370.  
  371. Again, as in EPRT, the <NP>, <TP> and <NA> fields may be omitted to
  372. assume their default values.
  373.  
  374. The existing standard negative error codes 500 and 501 are
  375. sufficient to handle all errors involving EPSV (e.g., syntax
  376. errors).
  377.  
  378. ---Slide 14---
  379.  
  380.         Work in Progress
  381.  
  382. As defined in the draft, FTP using EPSV has a problem.
  383.     -If the response to EPSV contains protocols not supported by the
  384.      machine issuing the EPSV command, no data connection can be
  385.      established. 
  386.  
  387. This problem can be fixed by appending an argument to the EPSV
  388. command that advertises the supported protocols.
  389.  
  390. Example new EPSV command: 
  391.     EPSV IP4,IP6|TCP
  392.  
  393. ---Slide 15---
  394.  
  395.           Work in Progress (cont.)
  396.  
  397. The advertisement of one or both protocols is OPTIONAL.
  398.     -If an advertisement is not sent, the host sending the EPSV
  399.      command must be prepared to abort the transfer if the response
  400.      includes an unsupported protocol. 
  401.   -The ABOR command followed by a new EPSV command (with an
  402.    advertisement) will need to be sent on the control
  403.    connection.  
  404.  
  405. If the none of the advertised protocols are supported by the host
  406. receiving the EPSV command,  the existing error code 504 (``command
  407. not implemented for that parameter'') MUST be returned. 
  408.  
  409. ---Slide 16---
  410.  
  411.         Security Issues
  412.  
  413. Using an extended address increases the scope of the FTP ``bounce
  414. attack'' by making it possible to use non-TCP transport protocols to
  415. attack servers.
  416.  
  417. A companion Internet Draft discusses FTP security issues in more
  418. detail.
  419.  
  420. ======================================================================
  421.  
  422. FTP Security Slides
  423.  
  424. ---Slide 1---
  425.  
  426.         FTP Security Considerations
  427.  
  428.     draft-allman-ftp-sec-consider-01.txt
  429.  
  430.          April 9, 1997
  431.  
  432.       Mark Allman and Shawn Ostermann
  433.  
  434.       {mallman,ostermann}@cs.ohiou.edu
  435.  
  436.         Ohio University
  437.  
  438.          http://jarok.cs.ohiou.edu/
  439.  
  440. ---Slide 2---
  441.  
  442.              Goals
  443.  
  444. Recommend ways to reduce security problems with FTP. 
  445.  
  446. The draft currently addresses:
  447.     -The ``bounce attack''
  448.     -Restricting access based on network address.
  449.     -Protecting passwords.
  450.  
  451. ---Slide 3---
  452.  
  453.         Normal 3-Way FTP
  454.  
  455. Normal 3-way transfer:
  456.  
  457.     3-WAY FTP FIGURE
  458.  
  459. ---Slide 4---
  460.  
  461.        The Bounce Attack
  462.  
  463. Example using FTP to ``attack'' SMTP server on a third machine: 
  464.  
  465.     BOUNCE ATTACK FIGURE
  466.  
  467. ---Slide 5---
  468.  
  469.     Protecting Against the Bounce Attack
  470.  
  471. TCP port numbers in the range 0-1023 are reserved for well known
  472. services.
  473.  
  474. The FTP specification [RFC 959] makes no restrictions on the TCP
  475. port number used for the data connection.
  476.  
  477. This allows FTP clients to instruct FTP servers to ``attack''
  478. well-known TCP ports on any host on the network.
  479.  
  480. It is SUGGESTED that servers refuse to open data connections to TCP
  481. ports less than 1024.
  482.  
  483. ---Slide 6---
  484.  
  485.       Protecting Against the Bounce Attack (cont.)
  486.  
  487. If a server receives a PORT command containing a TCP port number
  488. less than 1024, the SUGGESTED response code is 504 (``command not
  489. implemented for that parameter'').
  490.  
  491. Note: This still leaves non-well known servers vulnerable to bounce
  492. attacks.
  493.  
  494. The companion Internet-Draft and RFC 1639 (FOOBAR) provide
  495. mechanisms to use transport protocols besides TCP.  Similar
  496. precautions should be taken to protect well-known services when
  497. these protocols are used.
  498.  
  499. ---Slide 7---
  500.  
  501.        Restricted Access
  502.  
  503. For some FTP servers, it is desireable to restrict access based on
  504. network address.
  505.  
  506. In such situations, a server SHOULD verify both the remote address
  507. on the data connection and the remote address on the control
  508. connection before transmitting a file.
  509.  
  510. This protects against the case when the control connection is
  511. established with a trusted host and the data connection is not.
  512.  
  513. Note that restricting access based on network address leaves a
  514. server vulnerable to ``spoof'' attacks.
  515.  
  516. ---Slide 8---
  517.  
  518.       Protecting Passwords
  519.  
  520. To minimize the risk of brute force password guessing through the
  521. FTP server, it is SUGGESTED that servers limit the number of
  522. attempts to send the correct password to a small number (3-5).
  523.     -After 3-5 attempts, the server SHOULD close the control
  524.      connection.  
  525.  
  526. It is also SUGGESTED that FTP servers impose a small delay (5
  527. seconds) before responding to invalid PASS commands.
  528.  
  529. If available, mechanisms provided by the operating system to
  530. accomplish the above SHOULD be used.
  531.  
  532. ---Slide 9---
  533.  
  534.         Protecting Passwords (cont.)
  535.  
  536. It is SUGGESTED that FTP clients and servers use alternate
  537. encryption mechanisms, such as draft-ietf-cat-ftpsec-09.txt, to
  538. prevent eavesdropping. 
  539.  
  540. ---Slide 10---
  541.  
  542.         Work in Progress
  543.  
  544. Develop a simple and effective way to diminish the chance of port
  545. stealing.
  546.  
  547. Some suggestions
  548.     -A cookie mechanism.
  549.     -Ensure the TCP port chosen is random.
  550.