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 -- [email protected]
To unsubscribe send an email to [email protected]
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/[email protected]