Donate for the Cryptome archive of 65.000 files from June 1996 to the present

5 October 2011. Add ianG comment. Another view ("locked in ones own OODA loop"):

http://yorkporc.wordpress.com/2011/10/04/a-rant-on-cryptome/

4 October 2011. Add Ben Laurie comment. Add Bodo Moeller and Marsh Ray exchange.

3 October 2011. Add Marsh Ray and Jon Callas exchange. Add Steve Bellovin and James Donald comments.

3 October 2011

SSL Was Broken by Design


Date: Sat, 01 Oct 2011 08:11:15 -0400
From: William Allen Simpson <william.allen.simpson[at]gmail.com>
To: cryptography[at]randombit.net
Subject: Re: [cryptography] SSL *was* "broken by design"

On 9/20/11 12:51 PM, ianG wrote:

> On 20/09/11 01:53 AM, Andy Steingruebl wrote:
>> SSH doesn't solve phishing either. Is it a total failure also? I don't think so. SSL is used for a lot more than HTTPS. Any proposal to "fix" it *must* take that into account. - Andy

> Irrelevant, because SSH at the architectural level and SSH at the protocol level are aligned and in balance. There is no discord because SSH was never really taken out of its intended design framework. That's arguably because the designer wasn't facing the

> political forces of the times, which the designers of SSL drowned in. For whatever reasons, we can skip that and look at the results: SSH was pretty much always used in accordance with its original design-assumptions, whereas SSL was pretty much never used

> in accordance with its original design-assumptions.

Actually, SSH faced a lot of the same political pressures as SSL.  SSH didn't cave!  Instead, they carefully did all the work by non-US persons outside the US -- even though that meant some foreign developers of OpenSSH had to drive across the US border into Canada.

Meanwhile, back when Netscape was located near the Stanford campus (an easy walk from  the computing center), Paul Mockapetris got me to visit. I sat down with Taher Elgamal and others, explaining what we were doing with Photuris.

To the best of my memory, we thought it would be better to:

1) Authenticate the list of supported methods/transforms.  We did that in Photuris to avoid MITM attackers choosing the lowest common denominator. And not only the parameters, but the length fields of the parameters, too. [Phil] Karn had insisted on cheap Photuris renegotiation from the start, and that requires protection against substitution.

2) Hide the certificates/users.  We called that "party privacy protection".  We used the initial D-H exchange to create a temporary stream key, and "masked" the data with the stream (simply an MD5 hash).

3) Require Perfect Forward Secrecy.  We'd not managed to get IPsec to do that.  It was a big argument at the time.  Even today, not all TLS suites provide PFS.

4) Authenticate outside of encryption, so we could quickly and cheaply check before doing a more computationally intensive decryption.  We managed to force that into IPsec, and hoped to get Netscape to do the same for SSL (now TLS).  IIRC, that's since been proven to be more secure, but we didn't know it at the time.  We were mostly interested in practicality.

So how was it that Netscape SSL had exactly the same faults as IPsec, ISAKMP, Oakley, IKE?  Political pressure!  Somebody really REALLY wanted to be able track users and intercept/substitute....

Do I have proof?  No, it's merely circumstantial.  Also, my multi-year FBI personal investigation over PPP CHAP was coincidental, too.

Netscape caved, for their commercial interests.  There was also the CA business model.  User's own interests took last place.

So, arguing about ease of use is a waste of time, as long as the easy to use protocol was designed to be broken.  It really is time to start over.

_______________________________________________

cryptography mailing list
cryptography[at]randombit.net
http://lists.randombit.net/mailman/listinfo/cryptography


Date: Sun, 2 Oct 2011 09:48:01 +0800
From: Sandy Harris <sandyinchina[at]gmail.com>
To: Crypto discussion list <cryptography[at]randombit.net>
Subject: Re: [cryptography] PFS questions (was SSL *was* "broken by design")

William Allen Simpson <william.allen.simpson[at]gmail.com> wrote:

> 3) Require Perfect Forward Secrecy. We'd not managed to get IPsec to do that. It was a big argument at the time. Even today, not all TLS suites provide PFS. What on Earth were the arguments against it? I'd have thought PFS was a complete no-brainer.   So how was it that Netscape SSL had exactly the same faults as IPsec, ISAKMP, Oakley, IKE? Political pressure! Somebody really REALLY wanted to be able track users and intercept/substitute....

That is certainly a distinctly plausible motive. However, it would have had to be disguised as technical or ease-of-use arguments. I find it impossible to imagine any.


From: Peter Gutmann <pgut001[at]cs.auckland.ac.nz>
To: cryptography[at]randombit.net
Date: Sun, 02 Oct 2011 21:38:26 +1300
Subject: Re: [cryptography] PFS questions (was SSL *was* "broken by design")

Sandy Harris <sandyinchina[at]gmail.com> writes:

What on Earth were the arguments against it? I'd have thought PFS was a complete no-brainer.

Two things, it's computationally very expensive, and most people have no idea what PFS is.


Date: Mon, 03 Oct 2011 19:23:39 +1100
From: ianG <iang[at]iang.org>
To: cryptography[at]randombit.net
Subject: Re: [cryptography] SSL *was* "broken by design"

On 1/10/11 22:11 PM, William Allen Simpson wrote:

I started reading this thread, and then left it alone, and am catching up. It's hard to know where to start, so changing the subject a little.

:)

> On 9/20/11 12:51 PM, ianG wrote:
>> On 20/09/11 01:53 AM, Andy Steingruebl wrote:
SSH doesn't solve phishing either. Is it a total failure also? I don't think so. SSL is used for a lot more than HTTPS. Any proposal to "fix" it *must* take that into account. - Andy

>> Irrelevant, because SSH at the architectural level and SSH at the protocol level are aligned and in balance. There is no discord because SSH was never really taken out of its intended design framework. That's arguably because the designer wasn't facing the political forces of the times, which the designers of SSL drowned in.

>> For whatever reasons, we can skip that and look at the results: SSH was pretty much always used in accordance with its original design-assumptions, whereas SSL was pretty much never used in accordance with its original design-assumptions.

[William Simpson message above snipped.]

Proof is hard.  But we might see it in the future.  Not now, but in a few years.

Whoever that somebody is, they did too good a job.  And now they get to pay the cost.  It isn't as if they can cherry-pick the consequences, because the net was cast too wide:  the whole infrastructure is institutionally weak, and if we triangulate the spots that should have been strong but are weak, they all seem to point one location.

So now we have the cyber-war scenario.  One side spikes a nuclear plant, the other side punches a hole in "trust" infra.  Tit for tat, bring it on!

I suspect if it does take off -- tit for tat in cyber warfare -- there will be some smarter people who will realise they stupidly fired the first shot.  And now they can't stop the 100 shots...

Not a few people in there will be examining the causes, and realise that they set themselves up for a fall.

Ho to reverse this?  I suspect the only way is for somebody to come clean and tell people what they did.

Otherwise, all the believers out there will ... carry on, keeping our infrastructure insecure.

> Netscape caved, for their commercial interests.  There was also the CA business model.  User's own interests took last place.

https://financialcryptography.com/mt/archives/000609.html  I think it was inevitable.

> So, arguing about ease of use is a waste of time, as long as the easy to use protocol was designed to be broken.  It really is time to start over.

Well, yes and no, WYTM?  The thing is, "somebody" doesn't really matter to us.  Arguably, ComodoHacker doesn't really matter as much as all the press makes out.  And he's fixable.

What matters is phishing and breaches.  And the former is impacted by SSL.  If we could get more SSL it would improve things.  The reason we can't is because the UI is so horrible that people prefer to avoid it.


Date: Mon, 03 Oct 2011 17:44:41 -0500
From: Marsh Ray <marsh[at]extendedsubset.com>
To: Crypto discussion list <cryptography[at]randombit.net>
Subject: Re: [cryptography] PFS questions (was SSL *was* "broken by design")

On 10/03/2011 01:37 PM, Jon Callas wrote [responding to Marsh Ray]:

[Ray] At the risk of feeding the conspiracy angle, I note that there is only one stream cipher for SSL/TLS (RC4). All the others in common use are CBC modes, with that same predictable IV weakness as IPsec (i.e. BEAST). There are no DHE cipher suites defined for RC4. So if you want PFS, you have to accept predictable IVs. If you want resistance to BEAST, you have to give up PFS.

Personally, I don't interpret this as anything more than the IETF process and some vendor biases back in the 90s. But it shows that designing for this concept of 'agility' is important, in particular for reasons you don't know at the time.

[Callas] Oh, please.

I'm sorry, Marsh, but this is just silly, suggesting that there are vendor biases against stream ciphers and agility.

Hmmm, I wasn't trying to say that exactly. Mainly I thought it was a little ironic. Let me try to clarify.

I think there were, and still are, "biases" among vendors like everyone else. This is Situation Normal, to suggest otherwise is to say that every party acts perfectly rational and with complete information. Understanding how we make decisions when faced with imperfect logic or information is critical to making our own best decisions and interpreting those of others. The technique of "putting one's self in another's shoes" is particularly helpful.

[Callas] After all, if we look through the library of publicly-available, well-trusted stream ciphers there is, ummmm, well, there's always, urrrrr, well.

Right.

The document best describing SSLv3 is:
http://www.mozilla.org/projects/security/pki/nss/ssl/draft302.txt

It has a date of November 18, 1996 on it, this was probably the date on which the draft was uploaded to the IETF. This draft was allowed to expire.

RC4 http://en.wikipedia.org/wiki/RC4 is the only stream cipher defined. As you point out, there weren't exactly a lot to choose from. RC4 had been a poorly kept trade secret of RSA until September 1994 when someone posted some source code for an equivalent implementation on the net. For some reason, RSA seems to have refused to acknowledge its child in the algorithm itself, yet they claim ownership of the name RC4.

The authors of the draft302 document undoubtedly found the situation difficult. Evidence of their struggle surfaces in the body, where citations are made "DES[DES], RC4[RC4], etc.", yet there is no actual entry for [RC4] in the References section. The Glossary puts it thusly:

RC2, RC4 Proprietary bulk ciphers from RSA Data Security, Inc. (There is no good reference to these as they are unpublished works; however, see [RSADSI]). RC2 is block cipher and RC4 is a stream cipher.

Later specs would not fare much better.

http://tools.ietf.org/html/rfc2246        TLS 1.0 January 1999
RC4
   A stream cipher licensed by RSA Data Security [RSADSI]. A compatible cipher is described in [RC4].
...
[RC4]    Thayer, R. and K. Kaukonen, A Stream Cipher Encryption Algorithm, Work in Progress.

http://tools.ietf.org/html/rfc4346    TLS 1.1 April 2006  and
http://tools.ietf.org/html/rfc5246    TLS 1.2 August 2008:

RC4
A stream cipher invented by Ron Rivest.  A compatible cipher is described in [SCH].
...
[SCH]      B. Schneier. "Applied Cryptography: Protocols, Algorithms, and Source Code in C, 2nd ed.", Published by John Wiley & Sons, Inc. 1996.

The IETF really likes to have the RFCs describe things well enough that they can actually be implemented and interoperable. They also really like to have intellectual property disclosures along with the things they standardize too.

Putting myself in those spec authors' shoes, I think they were probably wishing the RC4 problem would just go away somehow. But it couldn't for two good reasons:

* RC4 was (and still is) preferred by many sites for performance reasons. DES was specifically designed for a hardware implementation.

* RC4 was the only defined stream cipher. In fact, the RC4-based cipher suites were the only non 64 bit block size CBC cipher modes at all! Dropping RC4 would effectively amount to dropping a significant bit of the standard's functionality.

From 1999 onward, defining a new cipher suite for using Diffie-Hellman key exchange would have been straightforward matter of writing it up and allocating the code point. But it would have been a largely pointless exercise unless Microsoft or Mozilla implemented it. Or worse, possibly the author would have been accused of contributing to the "unnecessary proliferation of ciphersuites" [RFC 3268]

What would have been the demand for it? Security-minded endpoints wanting PFS would prefer triple-DES or, later, AES. Performance-minded sites wouldn't have touched EDH with a ten foot pole. Or so the thinking
probably went.

Take a look at the RFC 3268, the one which allocates the code points for AES based ciphersites.

http://tools.ietf.org/html/rfc3268   June 2002

Overview

At present, the symmetric ciphers supported by TLS are RC2, RC4, IDEA, DES, and triple DES.  The protocol would be enhanced by the addition of AES [AES] ciphersuites, for the following reasons:

1. RC2, RC4, and IDEA are all subject to intellectual property claims.  RSA Security Inc. has trademark rights in the names RC2 and RC4, and claims that the RC4 algorithm itself is a trade secret.  Ascom Systec Ltd. owns a patent on the IDEA algorithm.

Reason numero uno. The other reasons given are interesting too. None of them really seem too concerned with the prospect of RC4 being less secure than AES.

So yeah, in summary, I'd say there was some "vendor bias" in the process going on. Not against stream ciphers in general, but against RC4 and its uncooperative vendor in particular.

On 10/03/2011 01:37 PM, Jon Callas wrote:

[Callas] Oh, I know! Counter mode! Yeah, that's it.

Yeah that would have come in handy about now.

http://www.dial911anddie.com/dtls/tlsctr.html

As I understand it, people weren't comfortable with using DES or 3DES in a way that looked so much like a related-plaintext attack. Or maybe they simply didn't see much of a need to improve upon CBC:

http://www.ietf.org/mail-archive/web/tls/current/msg00337.html

[Callas] On the agility front, most people seem to be against it. Weren't we in a huge o-choices-are-the-only-security mood a few weeks ago?

In SSL/TLS the thing you really can't have agility on is the HMAC that authenticates the handshake messages negotiating all the other specifics. If there's a choice of algorithm there, the attacker gets to choose the weakest one to attack. In TLS 1.2 this was changed from a combination of MD5 and SHA-1 to SHA-256.

But there have been multiple generations of ciphers to have come in and fallen out of favor over the lifespan of SSL/TLS. Cipher suite agility is one reason the protocol survives today.

[Callas] Stream ciphers are hard. They're hard to build correctly, hard to use correctly, and have been the red-headed-stepchild of cipher design for really good reasons.

They're not as amenable to cryptanalysis with the standard linear/differential framework developed for DES.

Time and power are objectively measurable (in $) whereas security beyond the minimum needed to resist standard attacks is largely subjective. So in practice the designer is going to have a harder time arguing for any
additional computational expense made for the sake of security.

[Callas] Remember WEP? The most damning problem in it to my mind was the order-2^24 attack caused by using a stream cipher (and a 24-bit pseudo-IV).

Well the problem was the specific stream cipher RC4 and the way it was used, not stream ciphers in general. The problem with WEP was so bad it allowed for key recovery, not just a many-megabyte distinguisher.

Unlike, say, the way that block ciphers in general require additional complexity (and things to go wrong) in the form of CBC mode :-)

TLS does a really good job of deriving pseudorandom keys for every new connection. Even resumed sessions get new cipher and MAC keys in each direction. My understanding is that this makes it not vulnerable to the
same issues as WEP, even though it does use the initial bytes out of RC4 instead of discarding them per modern recommendations.

[Callas] Any stream cipher that gets created has to answer this really good question: Why are you better than AES-CTR?

I know some secure websites that would love to be able to choose AES-CTR right now. Why can't they?

Probably some of the same reasons there's only one stream cipher to choose from.

[Callas] The next question would be why it's better than Serpent-CTR, or Twofish-CTR, or heck why not
use Threefish-CTR?

Just some example answers for RC4, I'm not sure how well they generalize to stream ciphers:

RC4 may be faster for you.

RC4 maintains an internal state size of around 1600 bits using 272 bytes of storage. That's a lot for a symmetric cipher! Those who are concerned with the collision properties of small block ciphers may consider that an advantage.

The general algorithm is even well-defined as large as you'd like to make it. If you were to make it larger than a memory chip, you could define a work factor in terms of external memory transactions like scrypt. RC4 probably comes closest to a maximizing this (random memory lookup cost)/(other stuff that can be accelerated by ASIC) ratio.

[Callas] Of course right now, the best thing to do stream-cipher-wise is to use GCM mode, with is in TLS 1.2, but hardly deployed at all, no doubt because of bias against wanting to use something that's authenticated, right?

I've never heard of such a bias. Maybe it exists and I've never heard of it, or maybe you're just pulling my leg.

[Callas] After all, wouldn't the surveillance state want us all to be vulnerable to CBC attacks like BEAST, and people who are preventing that must be in cahoots with the NSA, right?

But of course, GCM mode is part of Suite B, and that's the NSA's push for using an authenticated data stream. So that means that the people who are pushing for stream ciphers are also in cahoots with the surveillance state by pushing for authenticated modes, too!

In case anyone missed it, the sarcasm bits should have been showing up in the UTF-8 over the last couple of paragraphs at some point or other.

Come on. This discussion has descended past whacko, which is where it went once the "broken by design" discussion started. Yeah, security is hard, but it's software. We know how to do that, once we understand the problems.

No, SSL/TLS is a protocol and implementations. Sometimes the important parts are actually in hardware and sometimes they're in software in so many machines nobody can break interoperability with 0.01% of them.

I don't believe we understand the problems. If we did, we wouldn't have guys in Argentina decrypting PayPal cookies transmitted over properly-encrypted TLS as a stage trick.

It's hard for me to imagine a first-rate engineer with an unbiased mind knowing all the issues today sitting down with a clean sheet of paper and coming up with CBC as a new design. Yet it continues to be regarded as some kind of gold standard. Why? Because we love Mother AES and Grandmother DES so much and CBC is such an improvement over ECB that surely it's "good enough"? Because people who propose alternatives are alternately ignored or accused of "inventing their own crypto", "vanity crypto", or "wasting our precious cipher suite code points"?

[Callas] The wrong questions have been asked for so long in this long discussion that I think the only reasonable people are the ones ignoring the whole thing.

Yeah. I wish those reasonable people would participate more. :-)

- Marsh

_______________________________________________
cryptography mailing list
cryptography[at]randombit.net
http://lists.randombit.net/mailman/listinfo/cryptography


Date: Tue, 04 Oct 2011 10:18:15 +1000
From: "James A. Donald" <jamesd[at]echeque.com>
To: Crypto discussion list <cryptography[at]randombit.net>
Subject: Re: [cryptography] PFS questions (was SSL *was* "broken by design")

[Jon Callas] Come on. This discussion has descended past whacko, which is where it went once the "broken by design" discussion started.

On 2011-10-04 9:18 AM, Steven Bellovin wrote:

Quite.  I had to point someone at some of these threads today; when it came to this part, I alluded to black helicopters.

SSH faced political and administrative difficulties that protocols easier for the authorities to intercept did not face.  That is suggestive.


Date: Tue, 4 Oct 2011 11:22:13 +0100
From: Ben Laurie <ben[at]links.org>
To: jamesd[at]echeque.com, Crypto discussion list <cryptography[at]randombit.net>
Subject: Re: [cryptography] PFS questions (was SSL *was* "broken by design")

On Tue, Oct 4, 2011 at 1:18 AM, James A. Donald <jamesd[at]echeque.com> wrote:

> SSH faced political and administrative difficulties that protocols easier
> for the authorities to intercept did not face.  That is suggestive.

Really? When I added SSL to Apache it turned out it used to exist in NCSA (Apache's original codebase) and was removed at the request of the NSA.


Date: Tue, 04 Oct 2011 13:58:05 -0500
From: Marsh Ray <marsh[at]extendedsubset.com>
To: Crypto discussion list <cryptography[at]randombit.net>
Subject: Re: [cryptography] PFS questions (was SSL *was* "broken by design")

On 10/04/2011 09:25 AM, Bodo Moeller wrote:

There's TLS_ECDHE_RSA_WITH_RC4_128_SHA.

Thanks! That is informative and helpful. Seriously.

http://tools.ietf.org/html/rfc4492

Unfortunately, it looks like because it was only standardized 5.5 years ago *sigh* it's not available in my server environments yet. But it looks like it's coming in the next round of upgrades.

- Marsh


Date: Wed, 05 Oct 2011 23:57:34 +1100
From: ianG <iang[at]iang.org>
To: cryptography[at]randombit.net
Subject: Re: [cryptography] PFS questions (was SSL *was* "broken by design")

On 4/10/11 10:18 AM, Steven Bellovin wrote:

[Callas] Come on. This discussion has descended past whacko, which is where it went once the "broken by design" discussion started.

[Bellovin] Quite.  I had to point someone at some of these threads today; when it came to this part, I alluded to black helicopters.

This thread originated in a state-led attack on google and 4 CAs (minimum) with one bankruptcy, one state's government certificates being replaced, measured cert uses (MITMs?) in the thousands.  USG is the likely end game due to a recent shot across the bows at a nuclear processing plant.

The business has been declared a legal munition since forever, and the NSA's cute trick has been turned on its own flock.

Whaddya guys need?  A declaration of war?

The name of this syndrome is called "being locked in ones own OODA loop."  C.f., John Boyd.