[OpenID] The HTTPS in the OpenID (Re: Bug in OpenID RP implementations)

Martin Paljak martin at paljak.pri.ee
Fri Jan 2 09:08:39 UTC 2009


First a Happy New 2009 to all of you!

Second a rant about "HTTPS in OpenID"...

On 02.01.2009, at 3:49, Martin Atkins wrote:
> Eric Norman wrote:
>> On Jan 1, 2009, at 6:40 PM, Martin Atkins wrote:
>>
>>> OpenID really needs a way to migrate from one identifier to another
>>> without breaking the connection to existing accounts.
>>
>> If RPs do indeed include the "http(s)://" as part of their
>> account identifiers, then yep, there's a migration problem.
>>
>> In any case, I suggest that y'all rethink the notion that
>> URLs that only differ by that "s" can represent different
>> entities.  I note that the above statement about what
>> OpenID needs makes an implicit assumption that such URLs
>> would represent the same entity.
>>
>
> Two URLs that differ only in that the scheme is https vs. http  
> *must* be
> considered to be different, otherwise any security benefits offered by
> using https are rendered ineffective. (You could just compromise the
> non-SSL version, ignoring the SSL version.)



I've never quite understood the security or inherent "trust" of the  
current PKI/HTTPS scheme. I know that most of the talk here is about  
average users and actual risks have been small in 2008 and are  
hopefully going to be small in 2009 as well, but the comforting signal  
of "no-no, everything is just fine, nothing to see here, no reason to  
worry, just pay more for EV certs and everything is magically going to  
be just fine" from the CA industry and some folks, remind me the  
(sorry for the comparison ... ) credit industry, which long tried to  
and suggested to fix the now "apparently fundamental problems in the  
financial system" with just more loan money. We all know what  
eventually happened...

A look back at 2008 suggests a following flow:

1. DNS poisoning or being on a rogue wifi network will move all  
traffic (either http or https) for example.com to badguy.com  
("Kaminsky DNS attack" http://it.slashdot.org/article.pl?sid=08/07/08/195225)
2. connecting software (browser/openid library) is OK with whatever is  
presented on the HTTP site (obvious reasons)
3. connecting software "security checks for PKI" are OK with whatever  
is presented on the HTTPS site because
  3a. Some dedicated badguy.com have forged a valid certificate for  
example.com ("MD5 certificate attack" http://it.slashdot.org/article.pl?sid=08%2F12%2F30%2F1655234)
  3b. Some "trusted" CA has issued a valid certificate for example.com  
("mozilla.com certificate from comodo attack" http://it.slashdot.org/article.pl?sid=08%2F12%2F23%2F0046258)
4. User is satisfied as there were no nagging popups where to press  
"OK" (!!!) to get into the site.

OpenID has long been accused in security problems. The answer from the  
community has been 1) No way! We build upon HTTPS-> we're definitely  
safe! 2) No way! Look, we have PAPE and you can have badass  
authentication!

We've had badass (NIST level 4 compatible) authentication since before  
PAPE even existed to carry the fact to the RP. Yet even now without  
manual checks at RP side for OP certificate(public key) fingerprints  
and related trust settings for the OP we (both OP and RP) would be as  
good as using rot13 plaintext passwords via HTTP.

In real life most end user software do not check for the status of a  
certificate (CRL/OCSP), there is no easy user control over the "trust  
list" ("trusted" CA-s in the system) and after all, most software does  
not care if if the site which used to present a valid EV certificate  
suddenly starts to present a "trusted" and valid certificate from  
"Russian Business Network CA, Signed by Comodo"...

I second here the questions often raised about CA-s by Peter Williams,  
but the community has managed to subtly ignore the topic. "If there is  
a problem (which we don't believe there is) then this is for the PKI/ 
TLS/HTTPS guys to fix", "Just pay to a big company for your certs",  
"Apparently we use whatever CA certificates Debian uses" are all signs  
of delegating the problem somewhere else.

For average joe and and average RP, the case remains the same -  
hopeless in the browser and other software. I liked the "This is not a  
trust system. Trust requires identity first." on the old openid.net  
page.
Yes, for average uses (the long tail of  the distribution for  
websites) OpenID does provide value as it reduces rot13 plaintext  
passwords and makes it a bit more complicated to post spam for  
example. But when it comes to addressing technical security/trust  
issues in OpenID, it suddenly is an open system where everything is  
possible or the problem does not concern OpenID directly. "Problem  
creep" pattern?

I'd like to copypaste from Bruce Schneier blog @ http://www.schneier.com/blog/archives/2008/12/forging_ssl_cer.html 
:

<copy>
But SSL doesn't provide much in the way of security, so breaking it  
doesn't harm security very much. Pretty much no one ever verifies SSL  
certificates, so there's not much attack value in being able to forge  
them.
...
If you're like me and every other user on the planet, you don't give a  
shit when an SSL certificate doesn't validate. Unfortunately, commons- 
httpclient was written by some pedantic fucknozzles who have never  
tried to fetch real-world webpages.
</copy>

In addition to "lets just do what everybody else is doing" OpenID  
could provide additional mechanisms. I once suggested having a  
separate configuration file and format for RP libraries to be able to  
configure white/blacklists and OP certificates/CA-s checksums and  
trust settings. This would raise the issue into OpenID space instead  
of relying on the host system for RP-s (dotnet using windows  
certstores, hosts without CA certificates installed, requirement to  
fiddle with curl options to make php library accept different  
certificates etc)



-- 
Martin Paljak
http://martin.paljak.pri.ee
+372.515.6495







More information about the general mailing list