Security team successfully cracks SSL using 200 PS3's and MD5

I suppose I wasn't sufficiently clear.

It seems that part of the proposed solution is to get people to move from
MD5-signed to SHA1-signed. There will be a certain amount of resistance.
What I was suggesting was the use of the revocation mechanism as part of
the "stick" (think carrot-and-stick) in a campaign to replace MD5-based
certs. If there is a credible threat to MD5-signed certs, then forcing
their retirement would seem to be a reasonable reaction, but everyone here
knows how successful "voluntary" conversion strategies typically are.

Either we take the potential for transparent MitM attacks seriously, or
we do not. I'm sure the NSA would prefer "not." :slight_smile:

As for the points raised in your message, yes, there are additional
problems with clients that have not taken this seriously. It is, however,
one thing to have locks on your door that you do not lock, and another
thing entirely not to have locks (and therefore completely lack the
ability to lock). I hope that there is some serious thought going on in
the browser groups about this sort of issue.

We cannot continue to justify security failure on the basis that a
significant percentage of the clients don't support it, or are broken in
their support. That's an argument for fixing the clients.

... JG

At a more basic level, though, isn't failure guaranteed for these kind of clients (web browsers) so long as users are conditioned to click OK/Continue for every SSL certificate failure that is reported to them?

If I was attempting a large-scale man-in-the-middle attack, perhaps I'd be happier to do no work and intercept 5% of sessions (those who click OK on a certificate that is clearly bogus) than I would to do an enormous amount of work and intercept 100% (those who would see no warnings). And surely 5% is a massive under-estimate.

Joe

Joe Greco wrote:

[ .... ]

Either we take the potential for transparent MitM attacks seriously, or
we do not. I'm sure the NSA would prefer "not." :slight_smile:

As for the points raised in your message, yes, there are additional
problems with clients that have not taken this seriously. It is, however,
one thing to have locks on your door that you do not lock, and another
thing entirely not to have locks (and therefore completely lack the
ability to lock). I hope that there is some serious thought going on in
the browser groups about this sort of issue.

[ ... ]

... JG

F Y I, see:

SSL Blacklist 4.0 - for a Firefox extension able to detect 'bad'
certificates @
http://www.codefromthe70s.org/sslblacklist.aspx

Best.

Something worth noting. I am not sure about Firefox, but with IE 7 (and IE
6 when CRL validation is enabled) when a the browser encounters a revoked
certificate, it does not present the usual "yes/no" box. Instead, one gets
a message basically saying "certificate is revoked, you can't continue,
period". Now, if the user is smart enough they can go into the advanced
settings and turn off CRL validation and get around the error. Though not
bullet-proof, that is better than just a "yes/no" box.

In a perfect world, all certificate checks should result in a
non-bypass-able error message. But the wide spread nature of self-signed
certs and the lack of knowledge of many tech staff would make this a very
hard position for any web browser vendor to swallow. In the near term, it
would be nice to see browsers start to implement mandatory CRL checking for
all non-self signed/root-level certificates. Ensuring that a each tier of
the PKI has a time/signature valid CRL published (note, many root
certificates do not publish CRL paths for themselves, hence the exception
for them and self-signed).

Speaking of this attack specifically. Publishing a CRL that would revoke
this certificate would be basically useless. Since the CRL path that is
used to valid a certificate is contained in the certificate, not the issuing
CA's certificate. And a potential attacker would have little reason to
point to a CRL that would incriminate themselves. (Note, there are a *few*
applications that actually do mandate strict CRL checking, and thereby
require the certificate to point to a valid CRL signed by the issuing CA,
though they are not very common).

My $0.02,
Adam Stasiniewicz

* Joe Greco:

It seems that part of the proposed solution is to get people to move from
MD5-signed to SHA1-signed. There will be a certain amount of resistance.
What I was suggesting was the use of the revocation mechanism as part of
the "stick" (think carrot-and-stick) in a campaign to replace MD5-based
certs. If there is a credible threat to MD5-signed certs, then forcing
their retirement would seem to be a reasonable reaction, but everyone here
knows how successful "voluntary" conversion strategies typically are.

A CA statement that they won't issue MD5-signed certificates in the
future should be sufficient. There's no need to reissue old
certificates, unless the CA thinks other customers have attacked it.

Either we take the potential for transparent MitM attacks seriously, or
we do not. I'm sure the NSA would prefer "not." :slight_smile:

I doubt the NSA is interested in MITM attacks which can be spotted by
comparing key material. :sunglasses:

Snort rule to detect said...

url: http://vrt-sourcefire.blogspot.com/2009/01/md5-actually-harmful.html

alert tcp $EXTERNAL_NET $HTTP_PORTS -> $HOME_NET any (msg:"POLICY Weak SSL OSCP response -- MD5 usage"; content:"content-type: application/ocsp-response"; content:"2A 86 48 86 F7 0D 01 01 05"; metadata: policy security-ips drop, service http; reference: url, www.win.tue.nl/hashclash/rogue-ca/; classtype: policy-violation; sid:1000001;)

cheers,
--dr

You can't really use any snort rule to detect SHA-1 certs created by a fake authority created using the MD5 issue.

Yes, this is a serious matter, but it hardly has any operational impact to speak of for users and none for NSPs.

   Gadi.

Dunno. Last I checked NSPs had web servers too. :stuck_out_tongue:

cheers,
--dr

so, aside from 'get a re-issued cert signed SHA-1 from an approved CA
that's SHA-1 signed as well' what's the recourse for an NSP?

-chris

Dragos Ruiu wrote:

Joe Greco wrote:

[ .... ]

Either we take the potential for transparent MitM attacks seriously, or
we do not. I'm sure the NSA would prefer "not." :slight_smile:

As for the points raised in your message, yes, there are additional
problems with clients that have not taken this seriously. It is, however,
one thing to have locks on your door that you do not lock, and another
thing entirely not to have locks (and therefore completely lack the
ability to lock). I hope that there is some serious thought going on in
the browser groups about this sort of issue.

[ ... ]

... JG

F Y I, see:

SSL Blacklist 4.0 - for a Firefox extension able to detect 'bad'
certificates @
http://www.codefromthe70s.org/sslblacklist.aspx

Best.

Snort rule to detect said...

url: http://vrt-sourcefire.blogspot.com/2009/01/md5-actually-harmful.html

alert tcp $EXTERNAL_NET $HTTP_PORTS -> $HOME_NET any (msg:"POLICY Weak SSL OSCP response -- MD5 usage"; content:"content-type: application/ocsp-response"; content:"2A 86 48 86 F7 0D 01 01 05"; metadata: policy security-ips drop, service http; reference: url, www.win.tue.nl/hashclash/rogue-ca/; classtype: policy-violation; sid:1000001;)

cheers,
--dr

--
World Security Pros. Cutting Edge Training, Tools, and Techniques
Vancouver, Canada March 16-20 2009 http://cansecwest.com
London, U.K. May 27/28 2009 http://eusecwest.com
pgpkey http://dragos.com/ kyxpgp

Everyone seems to be stampeding to SHA-1..yet it was broken in 2005. So we trade MD5 for SHA-1? This makes no sense.

Would using the combination of both MD5 and SHA-1 raise the computational
bar enough for now, or are there other good prospects for a harder to crack
hash?

Would using the combination of both MD5 and SHA-1 raise the computational
bar enough for now,

I have never seen this recommended (and I do try and follow this).

or are there other good prospects for a harder to crack
hash?

The Federal Information Processing Standard 180-2, Secure Hash Standard, specifies algorithms for computing five cryptographic hash functions — SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512.

SHA-256 is thought to be still safe, unlike SHA-1

http://eprint.iacr.org/2008/271
http://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html

and its use is recommended by RFC4509.

So, I would use SHA-256 if possible. (SHA-224 is a truncation of -256 - see rfc3874.)

There is, BTW, a competition to find a replacement.

Regards
Marshall

(a) SHA-1 was not broken as badly. The best attack is, as I recall,
2^63, which is computationally infeasible without special-purpose
hardware.

(b) Per a paper Eric Rescorla and I wrote, there's no usable
alternative, since too many protocols (including TLS) don't negotiate
hash functions before presenting certificates. In particular, this
means that a web site can't use SHA-256 because (1) most clients won't
support it; and (2) it can't tell which ones do. (Note that this
argument applies just as much to combinations of hash functions --
anything that *the large majority of today's* browsers don't implement
isn't usable.)

These two points lead us to (c): security is a matter of economics, not
algorithms. Switching now to something else loses more in connectivity
or customers than you would lose from such an expensive attack.

    --Steve Bellovin, http://www.cs.columbia.edu/~smb

Everyone seems to be stampeding to SHA-1..yet it was broken in 2005.
So we trade MD5 for SHA-1? This makes no sense.

(a) SHA-1 was not broken as badly. The best attack is, as I recall,
2^63, which is computationally infeasible without special-purpose
hardware.

special purpose? or lots of commodity? like the Amazon-EC2 example
used in the cert issue? (or PS3s or...)

(b) Per a paper Eric Rescorla and I wrote, there's no usable
alternative, since too many protocols (including TLS) don't negotiate
hash functions before presenting certificates. In particular, this
means that a web site can't use SHA-256 because (1) most clients won't
support it; and (2) it can't tell which ones do. (Note that this
argument applies just as much to combinations of hash functions --
anything that *the large majority of today's* browsers don't implement
isn't usable.)

This is a function of an upgrade (firefox3.5 coming 'soon!') for
browsers, and for OS's as well, yes? So, given a future flag-day (18
months from today no more MD5, only SHA-232323 will be used!!)
browsers for the majority of the market could be upgraded. Certainly
there are non-browsers out there (eudora, openssl, wget,
curl..bittorrent-clients, embedded things) which either will lag more
or break all together.

These two points lead us to (c): security is a matter of economics, not
algorithms. Switching now to something else loses more in connectivity
or customers than you would lose from such an expensive attack.

only if not staged out with enough time to roll updates in first, right?

-Chris

>
>> Everyone seems to be stampeding to SHA-1..yet it was broken in
>> 2005. So we trade MD5 for SHA-1? This makes no sense.
>>
> (a) SHA-1 was not broken as badly. The best attack is, as I recall,
> 2^63, which is computationally infeasible without special-purpose
> hardware.
>

special purpose? or lots of commodity? like the Amazon-EC2 example
used in the cert issue? (or PS3s or...)

No -- special-purpose chips, along the lines of Deep Crack
(EFF DES cracker - Wikipedia).

Let's do the arithmetic. 'openssl speed sha1' on my desktop -- a 3.4
Ghz Dell -- manages 1583237 16-byte blocks in 2.92 seconds, or
~542204/second. Let's assume that for an attack to be economical, the
calculations have to be completed within 30 days. My machine could do
1405B hashes in that time frame. But I need 2^63 of them, which means
I need 6.5 million machines cooperating. Not impossible for BOINC, but
I don't think that EC2 could handle it.

> (b) Per a paper Eric Rescorla and I wrote, there's no usable
> alternative, since too many protocols (including TLS) don't
> negotiate hash functions before presenting certificates. In
> particular, this means that a web site can't use SHA-256 because
> (1) most clients won't support it; and (2) it can't tell which ones
> do. (Note that this argument applies just as much to combinations
> of hash functions -- anything that *the large majority of today's*
> browsers don't implement isn't usable.)

This is a function of an upgrade (firefox3.5 coming 'soon!') for
browsers, and for OS's as well, yes? So, given a future flag-day (18
months from today no more MD5, only SHA-232323 will be used!!)
browsers for the majority of the market could be upgraded. Certainly
there are non-browsers out there (eudora, openssl, wget,
curl..bittorrent-clients, embedded things) which either will lag more
or break all together.

Have you looked at the statistics on upgrades lately? Not a pretty
picture... See, among others,

http://www.ews.uiuc.edu/bstats/latest.html
http://www.upsdell.com/BrowserNews/stat_trends.htm

http://www.techzoom.net/publications/insecurity-iceberg/index.en

>
> These two points lead us to (c): security is a matter of economics,
> not algorithms. Switching now to something else loses more in
> connectivity or customers than you would lose from such an
> expensive attack.
>

only if not staged out with enough time to roll updates in first,
right?

From all the data I've seen, very many machines are *never* upgraded, so
the proper metric for "enough time" is "computer lifetime".

Firefox 3 does handle SHA-256/384/512; I don't think IE7 does.

    --Steve Bellovin, Steven M. Bellovin

Christopher Morrow wrote:

This is a function of an upgrade (firefox3.5 coming 'soon!') for
browsers, and for OS's as well, yes? So, given a future flag-day (18
months from today no more MD5, only SHA-232323 will be used!!)
browsers for the majority of the market could be upgraded. Certainly
there are non-browsers out there (eudora, openssl, wget,
curl..bittorrent-clients, embedded things) which either will lag more
or break all together.

I think you might be downplaying the size of the problem here. X.509 and
TLS/SSL isn't just used for browsers, but for a wide variety of places
where there is a requirement for PKI based security. So when you talk
about a flag day for dealing with SHA-X (where X != 1), have you considered
the logistical problems of upgrading all those embedded devices around the
world? The credit card terminals? The tiny CPE vpn units? The old
machine in the corner which handles corporate sign-on, where the vendor has
now gone bust and no-one has the source code. And the large web portal
which had a whole bunch of local apache customisations based on apache
1.3.x and where the original developers left for greener pa$ture$, and
no-one in-house really understands what they did any longer. Etc, etc.

It's different if you have a protocol which allows parameter negotiation to
deal with issues like this, but not so good when you don't.

Nick

* Nick Hilliard:

I think you might be downplaying the size of the problem here. X.509 and
TLS/SSL isn't just used for browsers, but for a wide variety of places
where there is a requirement for PKI based security. So when you talk
about a flag day for dealing with SHA-X (where X != 1), have you considered
the logistical problems of upgrading all those embedded devices around the
world?

They won't be affected by the flag day, because the flag day is set by
the relying party (that is, the browser), not the CA.

If you've got a real PKI deployment, by definition, you've got
procedures to deal with sudden advances in published cryptanalysis
(even if it involves posting guards at certain buildings, instead of
relying on smartcards for access control). The problematic areas are
those where cryptography is used to comply with some checklist (or for
PR purposes), and not for its security properties. In those
environments, algorithm changes can never justify the associated
costs.

Christopher Morrow wrote:

This is a function of an upgrade (firefox3.5 coming 'soon!') for
browsers, and for OS's as well, yes? So, given a future flag-day (18
months from today no more MD5, only SHA-232323 will be used!!)
browsers for the majority of the market could be upgraded. Certainly
there are non-browsers out there (eudora, openssl, wget,
curl..bittorrent-clients, embedded things) which either will lag more
or break all together.

I think you might be downplaying the size of the problem here. X.509 and

I wasn't, not intentionally.. I was trying to address the problem
which the researchers harped on, and which seems like the hot-button
for many folks: "oh my, someone can intercept https silently!!"

I understand there are LOTS of things out there using certs for all
manner of not-http things. I also understand that by telling a browser
class that they shouldn't accept anything but sha-X seems workable. I
suppose having the CA's kick out ONLY SHA-X is a bad plan, but ...
maybe letting cert requestors select the hash funciton (not md5) is
better? (or a step in the right direction at least)

TLS/SSL isn't just used for browsers, but for a wide variety of places
where there is a requirement for PKI based security. So when you talk
about a flag day for dealing with SHA-X (where X != 1), have you considered
the logistical problems of upgrading all those embedded devices around the
world? The credit card terminals? The tiny CPE vpn units? The old

I had... yup.

machine in the corner which handles corporate sign-on, where the vendor has
now gone bust and no-one has the source code. And the large web portal
which had a whole bunch of local apache customisations based on apache
1.3.x and where the original developers left for greener pa$ture$, and
no-one in-house really understands what they did any longer. Etc, etc.

It's different if you have a protocol which allows parameter negotiation to
deal with issues like this, but not so good when you don't.

agreed, 100%. There are also lots of folks using certs internally for
all manner of oddball reasons... signed on their own CA (perhaps
chained to a 'real' CA, perhaps not). They'll have to be accomodated
as well, of course.

-chris