On Thu, Mar 30, 2023 at 12:15 AM Nathan Hartman
<hartman.nat...@gmail.com> wrote:
>
> On Wed, Mar 29, 2023 at 6:02 PM Evgeny Kotkov
> <evgeny.kot...@visualsvn.com> wrote:
> >
> > Nathan Hartman <hartman.nat...@gmail.com> writes:
> >
> > > I think a good middle ground is:
> > >
> > > * Build with --enable-plaintext-password-storage by default; users who
> > >   want to harden their system can do so, but will need to build their
> > >   own client.
> >
> > +1.

+1

> > > * Set the default run-time config to store-plaintext-passwords = no
> > >   (if it isn't already; haven't checked) and instruct users on how to
> > >   change it. This makes the decision to store in plaintext an explicit
> > >   one that the user can opt into. (I appreciate that this could be
> > >   changed without the user's knowledge; perhaps the systemwide config
> > >   should always take precedence over the user-controlled one for this
> > >   setting?)
> >
> > So, apparently, the current default is "ask".
> >
> > I haven't checked all the details, but I think that defaulting to "ask"
> > already makes the user decision explicit and allows it to happen naturally,
> > without requiring any additional instructions or knowledge.
> >
> > If we change the default to "no", this part of the experience could be 
> > worse,
> > because for the end users it might look like the credentials aren't being
> > stored for unknown reasons / a bug in the software.
>
> Ah, this makes sense. In that case, I'm +1 to leave it as "ask" (no change).

+1

Basically this would correspond to kfogel's proposal earlier in this
thread [1] (and the one most participants agreed with):

"I think it's just a matter of reverting r1845377, right?  (And
updating CHANGES, etc.)"

For completeness, I want to quickly summarize two additional
suggestions made by Mark Phippard [2][3]:

- If plaintext-pwd-caching support is compiled out (by explicitly
giving the compile-time flag for this), also stop reading already
cached ones. This would render Daniel's python script useless in these
environments. It might satisfy some security sensitive people who
would regard the script as a way to "circumvent" the
plaintext-disablement. It would make the "plaintext-disabling" more of
a complete feature. Additionally, it was suggested that svn could warn
or erase such legacy plaintext-cached passwords (instead of just
ignoring them), as yet another mitigation improvement.

- Apply some obfuscation or encryption with a key hidden in the code
(or even supplied by a compile time option) to the plaintext
passwords. This helps against non-malicious exposure, and makes it a
tad harder for simple scripts to extract the password (which might
appease some part of our user base). This might break legitimate
scripts that explicitly (mis-)use the cached password for other
purposes, though we could regard such uses as hacks that we are
allowed to break.


IMHO these additional "mitigations" are not absolutely required (I
mainly would like to see r1845377 reverted), but if some people feel
strongly about them ... sure, why not (though in that case we'd need
someone to put in the work too).

[1] https://lists.apache.org/thread/shzxh04l493qnj8pdt8vl0x4gkjrkvcy
[2] https://lists.apache.org/thread/1tfny40nokqf6p6nll30p06t8or2c8hm
[3] https://lists.apache.org/thread/p2vn6foj8qz3lfvdl70bs62vg5krcgr7

-- 
Johan

Reply via email to