Re: ZEO SSL support and Daft docs

Patrick Strawderman <[email protected]>
Newsgroups gmane.comp.web.zope.zodb
Message-ID <CANBtHex0UZPHB_AVr2t5AKwEXXAM3zVFQJfExs7uUFqyd79JAg@mail.gmail.com>
On Wed, Jun 22, 2016 at 3:30 PM, Vincent Pelletier <[email protected]>
wrote:

> On Wed, 22 Jun 2016 17:07:00 -0400, Jim Fulton <[email protected]>
> wrote:
> > On Wed, Jun 22, 2016 at 4:43 PM, Patrick Strawderman <[email protected]>
> wrote:
> > > and cipher
> > > suites?
> >
> > I have no idea. Whatever you get by default in a SSLContext. :)
>
> +1 for default SSL library ciphers suites.
> At least with OpenSSL (and this is likely true for LibreSSL too) it
> reacts to an environment variable to tell which to disable, which to
> prefer, ... But I don't know if it is good practice to depend on this.
>

Looking at the defaults for SSLContext, I think they are probably good
enough, especially if the context is constructed via
SSLContext.create_default_context() (See the defaults
<https://github.com/python/cpython/blob/master/Lib/ssl.py#L184>). Fewer
security-related knobs means fewer ways to shoot yourself in the foot. If
people needed finer grained control, maybe provide a way to override how
the SSLContext is constructed (and default to
SSLContext.create_default_context())? Not suggesting that such an option be
added now, but it would avoid having to add ZEO configuration options
around every single SSL option.


> > > I would suggest not supporting SSL at all, and only supporting TLS.
> > > It seems like ssl.create_default_context() disables SSLv2 and SSLv3,
> as well
> > > as some weak ciphers, but it might make sense to provide a stricter
> default
> > > for the ciphersuite list, and to disable compression (to mitigate
> attacks
> > > like CRIME).  Note that Python >= 2.7.9 and Python >= 3.4 is a
> requirement
> > > for a lot of these options in the ssl module.
> >
> > This sounds reasonable. I'll look into this.
>
> I would go further than only disabling "SSL" (ie, <SSL 4.0): disable
> <TLS 1.2 (ie, <SSL 4.2) by default (hence enabling 1.2 and any future
> evolution), as there is no need for any backward compatibility right
> now.
>

+1
I was going to advocate only supporting TLS 1.2 as well, but didn't have
time to think about the implications. I believe it means OpenSSL >= 1.0.1
would be a requirement (which was released 4 years ago). Note that it seems
like OS X (10.11.5) still ships with OpenSSL 0.9.8 :-(. Anyway, TLS 1.2 is
definitely attractive, because of ECC, perfect forward secrecy, etc.


> I think CRIME does not apply here, but I think it shouldn't hurt to
> disable SSL-level compression.
>

I agree, but I'd say err on the side of caution. I think the weaknesses
that allowed for CRIME apply more broadly, but would definitely be more
difficult to exploit in a non-browser context. Note that
SSLContext.create_default_context() disables compression. Also, storage
implementations such as zc.zlibstorage are already compressing records, so
protocol level compression would mostly be redundant in that case.

-- 
You received this message because you are subscribed to the Google Groups "zodb" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.