> 
> Ignoring --cipher in a future release will have quite a higher
> probability of breaking existing configurations.  Now, this is set in
> context of --data-ciphers, which is very different code wise.  But the
> code for --ciphers is essentially the same as --data-ciphers-fallback.

It is not the same. After this change the following will happen:

--cipher sets *ONLY* the OCC cipher that we announce during the
handshake and give a cipher that it is being ignored.

--data-cipher-fallback sets the OCC cipher that we announcer *AND*
determines what cipher to use if and only the other side does not
announce any cipher.

> I am therefore of the opinion, based on the prior --udp-mtu discussion,
> that --ciphers should be an alias to --data-ciphers-fallback.
> 
> In addition, since adding a warning about using the deprecated --udp-mtu
> option and put up a plan for removing it was also considered too much, I
> don't see why that argument would be much different with --ciphers.

I think again the difference here is that we want to change what the
cipher directives and I think we can agree on:

- data-ciphers-fallback behaviour that is only useful for 2.3 and
earlier clients with --enable-small does not need to be turned on by
default anymore in 2.6. It is already turned off by default in 2.5 if
you have no '--cipher' in your config.

The --data-ciphers-fallback option is an option that allows you to
workaround these situations where the fallback is needed. We should keep
it as is.

Going forward we need:

A way that sets the cipher that will be announced in OCC to keep older
(everything 2.4 and below) happy, especially servers/clients that have
occ strict enabled.

Making --cipher only setting the OCC cipher allows us to be compatible
in this as long server/client are 2.4+ as these will negotiate to
AES-256-GCM.

One thing that we could discuss is if --cipher should add itself to
data-ciphers. But if it does we need another switch/option that disables
that behaviour again. Otherwise there is no way of migrating (in the
sense of not allowing) the cipher used by --cipher.

So in summary the options do a combination from:

a) set the occ cipher
b) set the fallback cipher when the peer is a non-OCC openvpn version
c) add themselves to data-ciphers

Currently in 2.5:

no '--cipher' in config: a) with BF-CBC

--cipher xyz in config a), b) and c) if not in --data-ciphers
                       a) but not b) when in --data-ciphers

--data-ciphers-fallback a), b) but not c)

Basically the idea was that when you ensured that data-ciphers is
correct or data-ciphers-fallback was used, you already configured the
config with the new NCP in mind.

My proposal for 2.6:

--cipher just does a)
--data-ciphers-fallback does a) and b)



_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to