Hi,

On Thu, Jul 19, 2018 at 2:38 PM, Selva Nair <selva.n...@gmail.com> wrote:
> Jon: I have a server for testing static and dynamic challenge. If
> interested I can send you a config. Or use access server with a free
> test license. Mine will just challenge with 1 + 1 = ? kind of
> questions, nothing fancy.

Thanks, Selva! Your testing server worked fine and I have Tunnelblick
doing dynamic challenge/response properly now.

However, dynamic C/R needs to include '--auth-retry interact' to work
because the default is to fail fatally. From what I understand, the
configs generated by Open Access Server don't include '--auth-retry
interact', but apparently OpenVPN GUI for Windows forces that option
because it can assume that it is always being used interactively.
Tunnelblick can't assume that because it can be and is used
non-interactively (for example. to connect to a VPN when the computer
starts up and nobody is logged in to interact with).

I can think of four ways to deal with this problem:

 1. Have Tunnelblick require that the user include 'auth-retry
interact' in the OpenVPN configuration file.

 2. Have Tunnelblick guess if the configuration is interactive and, if
it is, to include '--auth-retry interact' in the command line when
starting OpenVPN.

 3. Have Tunnelblick send 'auth-retry interact' through the management
interface as soon as it sees a ">PASSWORD:Verification Failed: 'Auth'
['CRV…" message.

 4. Patch OpenVPN so that the connection will be restarted instead of
getting a fatal error if the error message starts with
">PASSWORD:Verification Failed: 'Auth' ['CRV", ignoring --auth-retry.

The problem with 1 is that it means a Windows config will not work
with Tunnelblick unless the config is changed. I could add a checkbox
to enable it, or to disable it, but that's a pain for users and
clutters up the GUI.

The problem with 2 is that if the guess is incorrect it will break
existing setups and cause them to loop trying to connect instead of
simply failing. I could add a checkbox to enable it, or to disable it,
but that's a pain for users and clutters up the GUI.

The problem with 3 is that it may not work, or it may work only
sometimes because of a race between OpenVPN processing the failure
message and processing the 'auth-retry interact' from the management
interface.

One problem I see with 4 is that I don't think that OpenVPN code
(other than in OpenVPN GUI) actually "knows" about dynamic C/R. It
looks to me to be simply a convention between the OpenVPN GUI (and
other GUIs) and the scripts that run on the OpenVPN server. It would
also break a dynamic C/R setup in which 'auth-retry nointeract' was
specified, or in which no 'auth-retry' was included, but they wouldn't
be working setups anyway.

Another problem with 4 is that presumably it wouldn't appear until
OpenVPN 2.5, which means that it Tunnelblick would require OpenVPN 2.5
(which is included in Tunnelblick betas) for dynamic C/R to work.
Some, perhaps including Selva's $payingCustomer, may not want to use
Tunnelblick betas or use OpenVPN 2.5 until it is released.

The good things about 4 are that it would be a pretty small patch (I
think) and it would "automatically" fix what I consider to be an
OpenVPN configuration error.

4 is the best solution from a narrow thinking-only-of-Tunnelblick
perspective. Would you all consider a patch that does 4?

Best regards, and thanks for all your help,

Jon

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to