Juniper SSL VPN login fails

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

 



David Woodhouse wrote:
>Tom Metro wrote:
>> Failed to read from SSL socket: Rehandshake was requested by the peer.
> 
> Right. The Juniper server asks for a rehandshake when it decides it
> wants to see a client certificate - even if you already offered one in
> the initial connection. Which we do but their client presumably
> doesn't.
> 
> We need to make our code handle that.

So this is either a known limitation you've encountered already, or at
least logically follows based on what you know about the behavior of the
OpenConnect code? OK, then at least we don't need to go hunting for the
underlying cause.

I haven't looked up the SSL terminology to know the distinction between
a renegotiation and a rehandshake (if there is one), but isn't it
logical that the server would want to see the client's credentials if
the parameters of the link are being reexamined?


> You could probably do that as a
> quick hack without much difficulty. 

./openconnect --version

reports:
OpenConnect version v7.05
Using GnuTLS. Features present: PKCS#11, RSA software token, HOTP
software token, TOTP software token, DTLS

So I gather I'd start by looking in the GnuTLS related files. Although...

I can't find "Rehandshake was requested by the peer" in the code. Is
that an error message generated by GnuTLS? I see similar error messages
in other source files:

cstp.c:	vpn_progress(vpninfo, PRG_ERR, _("Rehandshake failed; attempting
new-tunnel\n"));
dtls.c:	vpn_progress(vpninfo, PRG_ERR, _("DTLS Rehandshake failed;
reconnecting.\n"));
oncp.c:	vpn_progress(vpninfo, PRG_ERR, _("Rehandshake failed; attempting
new-tunnel\n"));

auth-juniper.c suggests that it might be using code in oncp.c for the
transport, and oncp.c seems to be the layer at which rehandshake
problems are addressed (I was expecting to find that in the ssl.c or
lower layer), and oncp.c seems to sit above gnutls.c (is ssl.c another
layer in the middle?). If that's correct, then the modification needs to
go into oncp.c, and should be applicable to either GnuTLS or OpenSSL.

Am I anywhere close to being on the right track?


> ...make sure it works sanely with both GnuTLS and
> OpenSSL builds of OpenConnect.

Do you have reason to believe the fix will be library specific?


> Before actually committing it I'd
> want to familiarise myself with the insecure handshake security issues
> from last year and make sure that whatever we do isn't opening a
> vulnerability...

Sure. There are versions of that problem dating back to 2009:
http://itknowledgeexchange.techtarget.com/Irregular-Expressions/ssl-tls-renegotiation/

 -Tom




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux