Re: Preparing openvpn3 packaging for review - openssl challenges

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2020-02-19 at 12:35 +0100, David Sommerseth wrote:
> On 19/02/2020 11:33, Tomas Mraz wrote:
> > On Wed, 2020-02-19 at 11:06 +0100, David Sommerseth wrote:
> > > On 19/02/2020 08:25, Tomas Mraz wrote:
> > > [...snip...]
> > > > >               if (!SSL_CTX_set_cipher_list(ctx,
> > > > >                                            /* default list as
> > > > > a
> > > > > basis
> > > > > */
> > > > >                                            "DEFAULT"
> > > > >                                            /* Disable export
> > > > > ciphers,
> > > > > low and medium */
> > > > >                                            ":!EXP:!LOW:!MEDIU
> > > > > M"
> > > > >                                            /* Disable static
> > > > > (EC)DH
> > > > > keys (no forward secrecy) */
> > > > >                                            ":!kDH:!kECDH"
> > > > >                                            /* Disable DSA
> > > > > private
> > > > > keys */
> > > > >                                            ":!DSS"
> > > > >                                            /* Disable RC4
> > > > > cipher
> > > > > */
> > > > >                                            ":!RC4"
> > > > >                                            /* Disable MD5 */
> > > > >                                            ":!MD5"
> > > > >                                            /* Disable
> > > > > unsupported
> > > > > TLS
> > > > > modes */
> > > > >                                            ":!PSK:!SRP:!kRSA"
> > > > >                                            /* Disable SSLv2
> > > > > cipher
> > > > > suites*/
> > > > >                                            ":!SSLv2"
> > > > >                                            ))
> > > > >                   OPENVPN_THROW(ssl_context_error,
> > > > > "OpenSSLContext:
> > > 
> > > [...snip...]
> > > 
> > > > > The second block should really be fine too, it just strictly
> > > > > enforces
> > > > > a fairly
> > > > > strict default set of ciphers.
> > > > 
> > > > No, the second call is not correct. Basically there should be
> > > > no
> > > > call
> > > > to SSL_CTX_set_cipher_list() unless the user explicitly wants
> > > > to
> > > > override the defaults. The default in Fedora is already sane
> > > > and
> > > > safe
> > > > and ensures the crypto policy is properly applied.
> > > 
> > > I brought your argument up internally, and added Arne Schwabe on
> > > Cc
> > > as he
> > > knows both OpenVPN and OpenSSL and how they integrate even
> > > better.
> > > 
> > > We understand and agree that the system running OpenVPN should be
> > > able to
> > > define the defaults and avoid hard-coding it.  But we explicitly
> > > want
> > > to
> > > remove any non-PFS compliant ciphers (like kDH, kECDH, kRSA),
> > > which
> > > in most
> > > cases makes the setup stricter than the system
> > > configuration.  Currently we
> > > see that Fedora's default ciphers allow some non-DH/ECDH and non-
> > > PFS
> > > capable
> > > ciphers.
> > > 
> > > Another aspect is that since OpenVPN is talking strictly to other
> > > OpenVPN
> > > capable products (where SoftEther is the only product we're aware
> > > of
> > > not being
> > > under the fold of OpenVPN Inc or the OpenVPN community).  This
> > > results in
> > > OpenVPN being able to further reduce the available ciphers
> > > further
> > > than the
> > > more standard TLS defaults, thus increasing the security level of
> > > the
> > > TLS
> > > channel for the VPN tunnel.
> > > 
> > > At the same time we also see the argument where someone wants an
> > > even
> > > stricter
> > > set of ciphers.  In OpenVPN 2, we have that capability via --tls-
> > > cipher and
> > > --tls-ciphersuites (for TLSv1.3).  I do see that OpenVPN 3 lacks
> > > these
> > > options, but that is something we are looking into.
> > 
> > This would not be an issue if these options are used only when user
> > explicitly configures them.
> 
> OpenVPN 2.x does a similar call today, and has done it since at least
> the
> early days in v2.3 (February 2012) - possibly even longer (the source
> tree
> changed a lot from 2.3, so didn't try to follow the code any more
> than this).
> 
> This cipher list has gradually become stricter and stricter over the
> years,
> and is nowadays fairly similar to what we have in OpenVPN 3.  That
> is, this
> OpenVPN default setting will be overridden if the user adds --tls-
> ciphers to
> their config with a list of allowed ciphers.  And we normally
> discourage users
> from setting their own list of TLS ciphers.
> 
> > > If there is a better way to narrow down the list of ciphers we
> > > allow
> > > in
> > > OpenVPN instead of replacing the cipher list, that would be even
> > > better from
> > > our point of view.  We are really reluctant to implicitly open up
> > > for
> > > ciphers
> > > which reduces the security level of OpenVPN, where PFS ability is
> > > a
> > > critical
> > > part of the ciphers being used.
> > 
> > You can use "PROFILE=SYSTEM" instead of "DEFAULT" as a start.
> > However
> > this special string is downstream-only.
> 
> It's a pity that this is Fedora (and possibly RHEL?) specific.  But
> that is
> something we can use.  Do you know if any other distros than
> Fedora/RHEL have
> taken this approach?  Just wondering if I should just do the patching
> in the
> .spec file, or add some build-time macros in the upstream OpenVPN 3
> project.
> If it is only Fedora/RHEL, it makes it hard to push for an upstream
> OpenVPN 3
> change.

It is Fedora/RHEL only thing.

-- 
Tomáš Mráz
No matter how far down the wrong road you've gone, turn back.
                                              Turkish proverb
[You'll know whether the road is wrong if you carefully listen to your
conscience.]

_______________________________________________
security mailing list -- security@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to security-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/security@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Coolkey]

  Powered by Linux