Authentication Gap in TLS Renegotiation
The SSL 3.0+ and TLS 1.0+ protocols are vulnerable to a set of related attacks which allow a man-in-the-middle (MITM) operating at or below the TCP layer to inject a chosen plaintext prefix into the encrypted data stream, often without detection by either end of the connection. This is possible because an “authentication gap” exists during the renegotiation process at which the MitM may splice together disparate TLS connections in a completely standards-compliant way. This represents a serious security defect for many or all protocols which run on top of TLS, including HTTPS.
I first began to suspect the existence of this category of bug in related software while doing code review on some third-party software in support of the solution we provide at my work, PhoneFactor. That was early August. Many late nights and weekends later, I had enough evidence to talk about, and at the beginning of September, I had a working exploit and demoed it to Steve Dispensa (PhoneFactor CTO).
We realized this situation needed to be handled with a good measure of care. Over the first part of September, 2009, we began disclosing the initial group of independent security consultants for independent verification and advice on how to proceed. An initial group of vendors, which included members of ICASI, the IETF, and multiple open-source SSL implementations were disclosed with technical details over the week of September 21 - 25. A meeting was held at a helpful company’s headquarters in Mountain View, CA on September 29, where tentative agreement was reached on a preliminary solution in the form of a protocol extension. The remediation efforts for this bug have been conducted under the code name “Project Mogul”.
At that meeting, it was pointed out that the proposed solution had many similarities with work being done in the IETF TLS Channel Bindings working group. Indeed, over the coming weeks while vendors made their preparations, we followed the discussions on the IETF mailing list to see how close they might come to uncovering the problem there.
Today, an MitM attack on TLS was proposed by Martin Rex in the public forum. Martin’s early proposal may differ in a few details and lack the research time and working exploit that Steve and I had developed, but it clearly identifies the core problem and effectively represents public knowledge of the bug. Noted security researcher HD Moore tweeted about the possible attack, and it was quickly re-tweeted by 10 others. Vendors (e.g. PhoneFactor) and security researchers began to get independent requests for more information.
For these reasons, Steve and I feel that public disclosure has now occurred, and the results of our research should be available to all interested parties. I expect some other announcements shortly, including an Internet Draft proposal for the fix.
Technical details are in the attached .zip archive.
renegotiating_tls_20091104_pub.zip
More posts to come on this topic, and I’ll try to be available for whatever questions arise.
I’ll be posting contact info for the multi-vendor coordination efforts as well.
Tags: disclosure, TLS
November 5th, 2009 at 3:37 am
Social comments and analytics for this post…
This post was mentioned on Twitter by hdmoore: Authentication Gap in TLS Renegotiation (w00t!): http://extendedsubset.com/?p=8...
November 5th, 2009 at 7:03 am
[...] the last 6 weeks or so, a bunch of us have been working on a really serious issue in SSL. In short, a man-in-the-middle can use SSL renegotiation to inject an arbitrary prefix into any SSL [...]
November 5th, 2009 at 9:23 am
[...] Wednesday afternoon, enough people were talking about the issue that PhoneFactor decided to go public with their findings. “At that point we felt like the bad guys knew and we felt we had a [...]
November 5th, 2009 at 11:18 am
[...] Ray annonce sur son blog qu’il aurait découvert cette faille lors de travaux pour sa société Phonefactor. Les [...]
November 5th, 2009 at 12:27 pm
[...] Read more: Extended Subset [...]
November 5th, 2009 at 2:13 pm
Here is an article about this discovery by the UK Register just out:
http://www.theregister.co.uk/2009/11/05/serious_ssl_bug/
December 5th, 2009 at 12:01 pm
[...] Prieš kelias dienas oficialiai buvo pranešta apie trijų klaidų esančių FreeBSD sistemoje pataisymus. Pirmoji pataisa skirta šią savaitę paskelbtai kritinei klaidai, kai lokalus vartotojas gali gauti administratoriaus teises. Antroji ištaiso prieigos teisių problemą naudojant freebsd-update programą. Trečioji ištaiso neseniai paskelbtą OpenSSL klaidą. [...]
December 9th, 2009 at 6:16 am
[...] Marsh Ray and Steve Dispensa’s blog entry on the TLS renegotiation problem. [...]
December 13th, 2009 at 12:26 pm
[...] vulnerability and mitigation’ – MARC Links » Another Protocol Bites The Dust Extended Subset » Blog Archive » Authentication Gap in TLS Renegotiation The Secure Goose: TLS renegotiation vulnerability (CVE-2009-3555) Confidence 2009.02 – My TLS [...]
January 20th, 2010 at 2:17 am
[...] The original description (site is suffering from a slashdot effect as I write this) [...]
January 24th, 2010 at 9:53 pm
[...] the flaws discovered during the last year or so, primarily the the null-prefix cert names and the TLS renegotiation bug. I felt good about already knowing just about everything of what he told us. I can also boast with [...]