Greg Stein wrote on Tue, Apr 16, 2013 at 19:01:23 -0400:
> Pulled from an accidental moderation rejection:
> 
> ---------- Forwarded message ----------
> > From: Charles Duffy <char...@dyfis.net>
> > To: dev@subversion.apache.org
> > Cc:
> > Date: Tue, 16 Apr 2013 10:09:22 -0500
> > Subject: Feature proposal: SVN_USERNAME and SVN_PASSWORD environment 
> > variables
> > Howdy --
> >
> > At present, the easiest way to pass credentials into Subversion is on the 
> > command line, which is supported across all bundled tools.
> >
> > Unfortunately, on UNIX, this is extremely insecure: The contents of 
> > programs' argv array is visible to all users (as in ps). While a program 
> > can overwrite its argv array, there is necessarily a window between startup 
> > and the point when this operation occurs.
> >
> > A moderate improvement would be to allow credentials to be passed in 
> > through the environment; on Unixlike systems following best-practices, this 
> > protects them from being read by other non-root users on the same system. 
> > (Some security-hardened systems have stronger controls available than 
> > merely "same user", allowing a similar level of control to that exercised 
> > over ptrace).
> >
> > A larger improvement would be to allow a file descriptor to be specified 
> > which _only_ reads password data in an unambiguous form. This is what GnuPG 
> > does with its --passphrase-fd option, and is an improvement over reusing 
> > stdin in contexts where passwords are being provided automatically as there 
> > is no need to track stdout for reprompting, alternate requests, etc.
> >
> > My interest is in having something which can be safely used from shell 
> > scripts in a reasonably secure manner, and with a level of implementation 
> > difficulty compatible with my available schedule. Counterproposals, 
> > objections, or alternate mechanisms would be greatly appreciated.
> >

Additional options:

- allow specifying a filename which contains the password. (This can be
  done today, via --config-dir, if you know the realm.)

- read a password from stdin.  (Why?  Because `man openssl | less -p
  'PASS PHRASE ARGUMENTS'` supports that.  How does that interact with
  'svnrdump load' and 'svn ci -F -', which already consumed stdin?
  Needs to be determined.)

Reply via email to