[Pound Mailing List] openssl/Windows 2003/Secure Renegotiation

Albert <[email protected]>
Newsgroups gmane.comp.web.pound.general
Message-ID <[email protected]>
I'm trying to migrated pound from an older load balancer to a new 
machine, and ran into a problem connecting via HTTPS to a backend server 
running Windows 2003. In my log files, I was seeing this error:

Jan  2 15:28:42 pound: BIO_do_handshake with <Win2003webserver>:443 
failed: error:1412F152:SSL routines:SSL_PARSE_SERVERHELLO_TLSEXT:unsafe 
legacy renegotiation disabled

This error was only happening for Win 2003 servers, and not Win 2008.  
Pound versions were the same (2.7d), but CentOS & openssl are different, 
as follows:

Old server: Linux 2.6.18-371.12.1.el5 (CentOS 5.11), OpenSSL 
0.9.8e-fips-rhel5 01 Jul 2008
New Server: Linux 3.10.0-123.13.2.el7.x86_64 (CentOS 7.0.1406), OpenSSL 
1.0.1e-fips 11 Feb 2013

I also ran some diagnostics using openssl command, as follows:
  openssl s_client -no_legacy_server_connect -connect <myserver>:443

On Linux 2.6, I got "Secure Renegotiation IS supported", and connection 
left open. Where on Linux 3.0, I received "Secure Renegotiation IS NOT 
supported", and connection closed.  If I remove 
"-no_legacy_server_connect" from Linux 3.0 call, it keeps the connection 
open.  Also, running openssl against Win2008 on Linux 3.0 returns 
"Secure Renegotiation IS supported", so Win2008 is OK.

So, this looked like an openssl option, which was introduced in v1.0, so 
I tracked down a problem to couple of openssl options being cleared in 
config.c (I'm looking at Pound 2.7 branch) :

SSL_CTX_clear_options(res->ctx, SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION);
SSL_CTX_clear_options(res->ctx, SSL_OP_LEGACY_SERVER_CONNECT);

I have a 2 part question:
1. Does anybody know if Win 2003 can support Secure Renegotiation?
2. Is there a reason why Pound would set these options to a backend (or 
at least not make these optional)?  I understand that there are 
different vulnerabilities with web servers if these setting are set, but 
this is being done on internal machines, not client-facing.  
Additionally, these can be set when a client connects to pound via 
SSLAllowClientRenegotiation in HTTPS Listener (though, as documentation 
describes, this might leave your server to DoS exploits and other 
vulnerabilities).

I'd rather find a patch for Win2003 (if there is one), and leave the 
pound code the same (currently, I have commented out the 2 lines from 
above, and able to connect to Win2003).  But if there are none, should 
pound allow connections to backends that don't support secure 
renegotiations?

Albert
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.