RFC 501 (rfc501) - Page 2 of 5


Un-muddling "free file transfer"



Alternative Format: Original Text Document



RFC 501             Un-Muddling "Free File Transfer"         11 May 1973


   account, or whatever, and decided that he is, indeed, a valid user of
   the system.  This user, who would like to have some information
   processing performed on his behalf, is termed a principal in "privacy
   and protection" parlance.  Some number of processes are initially set
   up for this principal, and some (presumably unforgeable) principal
   identifier is associated with the process(es), so that their requests
   for access to files and other system resources may be properly
   validated.  In addition, the identify of the account to be charged
   for the resources consumed by these processes is associated with the
   processes at this time [1], although on some systems, a process may
   change its account identifier at any time.

   The first question is: Whose principal identifier does a File
   Transfer Server process use? There are at least two possibilities: 1)
   the File Transfer Server can run as a "system daemon" process, with
   (usually) a highly privileged principal identifier.  When acting on
   behalf of a user, it must, itself, interpretively evaluate that
   user's access to a desired file.  Also, it must be able to charge
   that user's account for the resources it uses.  2) A File Transfer
   Server process can be given the user's own principal identifier.
   With this implementation, validation of the user's access to files is
   performed automatically by the usual file system mechanisms.

   Paragraph four of RFC 487 clearly presumes implementation 1): "If a
   user connects to an FTP server and makes a file request without
   supplying a user name-password, the server should then examine the
   file access parameters ..." Systems truly concerned about protection
   may prefer implementation 2), and for good reason -- it follows the
   "principle of least privilege", which states that a process should
   execute with as little access privilege as it requires to perform its
   tasks properly.  Running a File Transfer Server process with a user's
   principal identifier rather than with that of a system daemon leaves
   the system far less susceptible to damage caused by incorrect actions
   of the File Transfer Server. [2]

   The next question is: Whom do you charge for file transfers? Bressler
   tries to set down some guidelines for determining who to charge for
   "non-logged-in" (read: "free") file transfer usage: "Clearly, storing
   a file in a user's directory can be charged to that user." How is the
   word "storing" used here? Surely, "that user" can be billed for the
   disk or other storage medium charges incurred by that file which is
   now taking up space, but is it legitimate to charge "that user" for
   the I/O and/or CPU resources used by someone else to transfer a file
   over the Network, and place it into that user's directory? For
   example, should the recipient of Network mail be charged for the
   resources consumed by someone else in sending it? (Would you care to
   pay the postage for all the junk mail that arrives in your home (U.S.
   Mail) mailbox?).



Pogran