> From: owner-openssl-us...@openssl.org On Behalf Of Jeffrey Walton
> Sent: Thursday, 29 November, 2012 14:57

> > I need to know, first, what "Secure Renegotiation" is, and 
> then, if it is a
> > legitimate way to configure a secure server, why it is used.

> Secure Renegotiation is a variant of the original negotiation supplied
> in SSL way back when. There were two separate issues in renegotiation.
> First was an authentication gap, and second was a DoS by the folks at
> THC (the latter is disputed by libraries such as OpenSSL and NSS).
> 
> The authentication gap can be found all over the web by searching for
> "TLS Authentication Gap." Also see CVE-2009-3555 and
> http://www.educatedguesswork.org/2009/11/understanding_the_tls
> _renegoti.html
> 
> The group THC released a DoS tool. See CVE-2011-1473, CVE-2011-5094,
> and http://vincent.bernat.im/en/blog/2011-ssl-dos-mitigation.html.
> 
> You can find the details of the steps taken in Secure Renegotiation at
> https://tools.ietf.org/rfc/rfc5246.txt.
> 
*5746* is Secure Renegotiation (or officially Renegotiation 
Indication), which is an extension that can modify any TLS
version: 1.0 is 2246, 1.1 is 4346, and 1.2 is *5246*.

The "DoS" -- or at least server load -- caused by renegotiation is 
not altered in any way by 5746; it is inherent in the re/negotiation 
(handshake) protocol if using RSA which 99.99% of the Internet does.
(For DSA and ECDSA the load is more even, and for PSK or KRB, or null, 
there is essentially no load. But practically nobody uses those.) And 
it differs from the "DoS" of just doing lots of initial negotiations 
ONLY in that it occurs on existing TCP connections and not new ones, 
which makes it a little harder for external fixes like firewall rate 
limits (but not impossible, because the handshake-type records *are* 
detectable in the TCP data).

> I don't allow renegotiation in code under my purview. I don't want a
> connection starting out secure, and then change to insecure via choice
> of weak/wounded ciphers. It also adds extra, useless code that has
> been exploited in the past. But that's just my opinion.
> 
> > need to know what needs to be done to have a client 
> application adapt to it.
> > Firefox seems to have no problem with it, but my Perl 
> programs that actually
> > use the server in question do appear to have a problem with it.

> To support it, a client needs to be compliant. Is your PERL client up
> to date? If so, have the PERL maintainers kept its gear up to date
> with the latest standard?
> 
Perl is almost certainly not implementing SSL/TLS itself but 
calling a library like OpenSSL or GNUTLS, which might be installed 
as part of some Perl package or separately, so the real questions 
are: is the Perl module(s?) compatible with an uptodate library, 
is the uptodate library included in the Perl install or otherwise 
installed, and if any options or config need to be set are they?

However, if openssl s_client can't even start to handshake (below) 
probably perl can't either and this has nothing to do with 5746.

> > And it isn't feasible for me to muck around with
> > the server because I do not have that kind of access (it is 
> owned/managed by
> > another company).
> They probably told you they have a patch policy and keep their servers
> up to date, too.
> 
> Jeff
> 
> On Thu, Nov 29, 2012 at 2:24 PM, Ted Byers 
> <r.ted.by...@gmail.com> wrote:
> > Please consider the following output:
> >
> > C:\Work>openssl s_client -connect secure.theserver.com:443
> > Loading 'screen' into random state - done
> > CONNECTED(000000F0)
> > write:errno=10054
> > ---
> > no peer certificate available
> > ---
> > No client certificate CA names sent
> > ---
> > SSL handshake has read 0 bytes and written 321 bytes
> > ---
> > New, (NONE), Cipher is (NONE)
> > Secure Renegotiation IS NOT supported
> > Compression: NONE
> > Expansion: NONE
> > ---
> >
> > The same command, getting Google's home page over SSL produces the
> > following: <snip>

> > But it now occurs to me that "Secure Renegotiation" might not be the
> > problem.  After all, the output related to it when 
> accessing Google comes
> > after the server certificate is received, and no 
> certificate is received
> > from this problem server.  And it isn't feasible for me to 
> muck around with
> > the server because I do not have that kind of access (it is 
> owned/managed by
> > another company).  Therefore, I have another question, 
> which is, how to I
> > determine and verify the real cause of the problem, and 
> then, how do I fix

Not only did you not receive server cert from the problem server, 
you didn't even *send* ClientHello (note error on *write*).
That definitely has nothing whatsoever to do with 5746.

Since you are on Windows (or a very good imitation) 10054 is 
really RST received -- and here even before your first send. 
Although RST was originally meant to be from the peer, and 
the official Windows error string still (at least in 7) says 
"forcibly closed by the remote host", in fact nowadays lots of 
middleboxes like firewalls use RST to break connections.

I'd guess your best bet is that some firewall (possibly 
including software on the server host) is deciding to break 
your connection, for some reason that some admin or manager 
or developer somewhere thought up. I'd suggest first verifying 
this by getting a network-level trace: on Windows I recommend 
www.wireshark.org as easy to install and use; check that 
you are actually getting RST, and: does seq# match (host 
should always but in my experience firewalls sometimes not)? 
any other flags? from what (claimed) IP and MAC? 
If your net connection goes through your own firewall, 
NAT router, or similar, try a trace outboard of that.
See if you can traceroute (tracert on Windows) to their 
host, although the sorts of net people who wrongly deny 
TCP connections tend to unnecessarily ban ICMP echo also.

If you can establish the RST is coming from the target 
company, and you can't get someone there to help find 
the problem, you're probably out of luck. 


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to