Moxie Marlinspike's Solution To the SSL CA Problem 189
Trevelyan writes "In his Blackhat talk on the past and future of SSL (YouTube video) Moxie Marlinspike explains the problems of SSL today, and the history of how it came to be so. He then goes on to not only propose a solution, but he's implemented it as well: Convergence. It will let you turn off all those untrustable CAs in you browser and still safely use HTTPS. It even works with self-signed certificates. You still need to trust someone, but not forever like CAs. The system has 'Notaries,' which you can ask anonymously for their view on a certificate's authenticity. You can pool Notaries for a consensus, and add/remove them at any time."
Pooling Opinions... (Score:4, Funny)
I always trust what Blackhats tell me.
Re: (Score:3)
Re: (Score:2)
> Or I hack the router you use to access the internet... all of the notaries you try to talk to I redirect to me. I say every site is valid regardless if it is or not.
You start off with the assumption that you need to hack the notary. I believe this is not necessary.
How does a Notary authenticate a cert? I would wager that in many cases, they check a source THEY consider reputable.
This leads to the cascading errors that you get in broadcast and internet news, where the AP gets it wrong, CNN gets it fro
Re: (Score:2)
How does a Notary authenticate a cert?
They compare to each other. The system works on the assumption that it is difficult for a man-in-the-middle to invade all paths to a website.
Re: (Score:2)
So I hijack the router that website is using to access the internet.
This is indeed a valid concern... Hopefully routers near important web sites are appropriately secured...
Or I hack the router you use to access the internet...
Won't work if the notaries sign their certificates. The browser would notice that suddenly all notaries' signatures changed.
Re: (Score:2)
These days the "black hats" are more likely to be trustworthy than the "white hats".
Re: (Score:2)
Never trust a guy who's hat is too dirty ... or too clean.
Trust in us gray hats. We say don't trust either option. SSL as identification is worthless. :)
Re: (Score:2)
Eh? Most of what he said was pointing out obvious things. Like a NP-problem: formulating the solution is hard, but verifying that the given solution really is a solution is easy.
Notaries... (Score:2)
How do you know the Notaries are who they say they are? How can you prevent a (wo)man in the middle attack?
Re: (Score:3, Insightful)
Re: (Score:2)
More likely:
If my notaries disagree, let me know. Then you can make a decision - whether it's the BOFA problem (thousands of certs), or a genuine anomoly.
Lserver attack (Score:3)
since the paths from notaries to target certificates are multiple
Not necessarily. The server with the target certificate has only one path to the Internet proper, namely through its ISP. Compromising the ISP, which is trivial for a government that maintains a Great Firewall, allows what the whitepaper about Perspectives [wordpress.com] calls the "Lserver" attack: "A compromise of the server’s local link lets an attacker inject arbitrary keys when either clients or notaries contact the server."
Similarly... (Score:2)
If you control the *client's* ISP, you can MITM every single last connection to any number of notaries.
Notaries' public keys (Score:2)
If you control the *client's* ISP, you can MITM every single last connection to any number of notaries.
Unless the notaries' public keys (or certificates that verify them) are already on the client's computer somehow.
Re: (Score:2)
Unless the notaries' public keys (or certificates that verify them) are already on the client's computer somehow.
But what if those are fake?
Again, you're replacing a broken but kind of works most of the time system with a hand-waving belief that if you trust more people it will all work out OK.
Re: (Score:2)
Re: (Score:3)
So someone would have to forge a certificate for addons.mozilla.org.
Done! [thenextweb.com]
Re: (Score:2)
I think the idea is that because you would be using multiple notaries and working from a consensus, even if a couple of notaries were undermined, the system would still be more rigorous then the single-point-of-failure system we have now. I think, to assure statistical rigor, you're going to need several notaries, but by spreading the decision point out along a curve, you make the job of any hacker attempting undermine the CA system impressively harder. Say you had ten notaries. It would mean he would ha
Re: (Score:2)
Install OS with root cert->install browser signed with OS cert->receive other root certs from signed browser including browser manufacturer's root cert.
Any of the 3 certs (OS, browser, other) can be used to anchor downloading more root certs, preferably for notaries, but they all anchor with the OS cert. A good thing to remember the next time you think about ru
Re: (Score:2)
Actually, I'd trust the Blackhat ISP more. They'll probably provide statistical graphs on link and uplink utilization, and give you an interface to review your own potential security flaws (we sniffed these passwords from your session on 1/1/2011 at 4am).
What does any major provider give you? At best something resembling bandwidth graphs. If they bill for overages, they won't even provide you with the graphs, they'll just add it to your bill. A friend of mine, on a state-
Re: (Score:2)
"Not necessarily . . . " Let me stop you there.
Re: (Score:2)
because generally many notaries will have contacted the server earlier
Unless an Lserver MITM is in place from day one, which is not unthinkable in the case of a national firewall.
Re: (Score:2)
Unless an Lserver MITM is in place from day one, which is not unthinkable in the case of a national firewall.
A server could periodically ask the notaries for its own certificate, and raise an alarm if there is a mismatch. Notaries' replies can be made secure by having them signed by the notaries (whose certificate are hopefully "well known" in the browser)
Well a smart MITM could foil this by "stepping back" when it sees that the server sends out a request for its own key, but then smart notaries could detect this by caching server certificates for a while.
Re: (Score:2)
but the truly paranoid would do their own OS installs and get their browser executables from a trusted source if they don't trust the ISP.
What would be the trusted source here, and how would they obtain a guaranteed non-tampered OS install image, if all Internet connections are potentially MITM'ed?
Re: (Score:2)
Have you ever heard of sneakernet?
Re: (Score:2)
Sneakernet lets you distribute things within the country, but you'd still need the first person in the chain to get the master copy somehow - and this can be cracked down on much easier than anything on the Net, since physical inspection at the border can be as thorough as you want, assuming you even let your citizens come and go (see also: DPRK).
Certificates included in extension download (Score:2)
Re: (Score:2)
So, it's the CA system (a blessed number of authorities with pre-distributed keys), but without any initial validation of the target by people vouching for it? Brilliant!
Embrace certificates signed by multiple CAs and poof, you've added the biggest potential value of this approach while taking on none of the negatives/unknowns.
Re: (Score:2)
Er, Self-Signed certs work, so long as you KNOW you want to trust them. Any attempt to use a different self-signed cert will throw an error, since the cert thumbprints wont match the "trusted" ones.
Re: (Score:2)
Er, Self-Signed certs work, so long as you KNOW you want to trust them. Any attempt to use a different self-signed cert will throw an error, since the cert thumbprints wont match the "trusted" ones.
And, uh, how do you know to trust the key?
You've solved the problem of untrustworthy keys by... ignoring it away.
No, he said you have to KNOW to trust them (Score:2)
First step thus is to ensure you know you want to trust them.
A great way to do that would be to verify the fingerprint of the cert with someone you trust. You can do this over the phone if you'd like (and trust the phone).
And then once you mark to trust that one, your browser will only trust that one, not derived certs, not bogus certs that match the same site name but are from other CAs.
Re: (Score:2)
At some point you will be downloading either a binary browser, or its source code, or an OS distribution with the browser on it. You MUST be able to trust whatever channel you got them from, otherwise neither SSL nor anything else can work.
Ditto here, you need to have some initial way to get the keys, which is generally with current browsers visiting the site and manually importing its cert, or with the keys being preinstalled on various browsers, and the browser's hash available on the site for comparison
Re: (Score:2)
And, uh, how do you know to trust the key?
You confirm the certificate out-of-band by calling the named entity on the phone or meeting them, and comparing the key fingerprint. Only way to do it, really. That's why it doesn't scale.
Re: (Score:2)
You're trusting that the key hasn't changed.
How do you know your mother is really your mother? All you know is that she's (presumably) the same person who you've identified as your mother since you were born.
Re: (Score:2)
Fewer people need to buy a cert (Score:2)
The US Post Office had a plan... (Score:2)
How do you know the Notaries are who they say they are?
There was a plan, over a decade ago, where the US Post Office would issue certs to people, sort of the way they issue passports now. You'd go to a PO in person, verify you are you, and they issue you a cert on a floppy. (It was that long ago)
Not a completely bad idea. I wouldn't trust any random POcert to be who they say they are, just that Xyzzy today, is the same Xyzzy as yesterday, unless their cert has been revoked.
From there, you set up a chain or web of trust. I know my friend certs, the
Re: (Score:2)
It does not prove that X really is X. It proves that the cert you got for X website is the same as the certs others got for X website. It prevents an unnoticed cert swap. There is no "issuing" of the cert. It can be self signed... Just checking to make sure it is the same cert as yesterday, and for all places. No special cert for the hidden proxy in Iran.
Unless it's a reverse proxy (Score:2)
Just checking to make sure it is the same cert as yesterday, and for all places. No special cert for the hidden proxy in Iran.
Unless it's a reverse proxy, MITMing all sites hosted in Iran [slashdot.org].
Re: (Score:2)
Interestingly enough, the Swiss Post Office provides that same service [postsuisseid.ch]. One goes to the local post office, shows a valid ID card/passport for identity validation, and can then apply for the certificate (contained in a smartcard, smartcard-on-a-USB-stick, or the "SwissStick" [which has a built-in browser and some other tools]).
The certs chain back to SwissSign, a widely-deployed CA owned by the Swiss Post Office.
I have no idea how widely used such certs are in Switzerland (I only moved here a month ago), but
Re: (Score:2)
Re: (Score:2)
It certainly underlies the current problem, which is that we've basically opened up cert issuing so widely now that we've undermined the underlying trust. Short of certs you issue yourself, it's getting quite worrisome. The problem, to a degree, is that everyone wanted cheap certs and were pissed off that the old big guys like Thawt and Verisign were charging a lot of money. But the point back then was proof of identity, and not just some guy going on to GoDaddy and buying a cert for $10, or encouraging
It reminds me of Perspectives (Score:3)
Re: (Score:2)
Move the box out of the country (Score:2)
You can querry the notaries directly when you start up. If there is no match, than you know there is a lserver attack in place, and you move the box.
Only the operator of the server can do this or even know that an Lserver attack is in progress. And the operator of a server in a given country that mounts a nationwide Lserver attack is likely going to have a hard time moving a box out of the country.
Re: (Score:2)
Re: (Score:2)
There's no technical fix for it, because one isn't needed. If a government does that on a country-wide scale, too many people know that it's happening, for it to remain a secret.
Re: (Score:2)
They've said it was derived from Perspectives on the website. I'm curious as to what changes they've made.
changes from Perspectives (Score:5, Informative)
From the talk, Convergence is based on Perspectives, with some updates:
- Once a client has confirmed a certificate through the notaries, it is cached locally. Future contacts for that site will not need re-notarization until the site's cert is changed. That way your browsing history is not exposed through your notary contacts very often.
- Contact to the notaries can be done through a trusted proxy over SSL, to protect exposure of your browser history.
- The user can choose one or more notaries, and choose to distrust any of them at any time.
- Each notary can use any backend validation method it wants. It could check certs stored in DNSSEC, it could use the existing CA system, the EFF will have one that uses their SSL observatory, etc.
"convergence" (Score:2)
Each notary can use any backend validation method it wants. It could check certs stored in DNSSEC, it could use the existing CA system, the EFF will have one that uses their SSL observatory, etc.
Ah, this must be the convergence aspect of Convergence, allowing different validation techniques through being technique agnostic. Smart move.
(Re notary specification: Perspectives allows you to configure which notaries you wish to use, but the interface is not polished.)
A solved problem? (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
It doesn't throw out the existing system. The existing system can work right along side of it.
Re: (Score:2)
Enumerating Goodness (Score:2)
bootstrap problem. (Score:2)
Sure, I'll download and run code without a crypto hash from a non-HTTPS site.
https://addons.mozilla.org (Score:2)
Convergence vs. Perspectives (Score:2)
Re: (Score:2)
Convergence doesn't solve the "Lserver" problem, but CAs don't really solve this problem either.
A traditional certificate authority solves the problem by having the server operator generate a certificate signing request (CSR) from his local copy of the certificate. Or are you claiming that the connection in which the CSR is sent and the connection in which the certificate is downloaded will be intercepted?
and doesn't leak your browsing history to your notaries like perspectives.
Does Convergence solve the problem that DNS leaks your browsing history to your DNS server?
Re: (Score:2)
Sure, I'll download and run code without a crypto hash from a non-HTTPS site.
And you think https is more secure? Have you been reading the news? I think the period should have gone directly after "crypto hash."
Web Of Trust (Score:3, Informative)
Web Of Trust, really, are you fucking kidding me? This has been implemented for how long already? Thawte personal certificates for e-mail work like that, with "trusted" notaries and shit.
And this is somehow a NEW AND REVOLUTIONARY idea, because it has a Web 2.0 name like "Convergence"?
Sheesh, the shit one has to put up with.
Re: (Score:3)
It's mainly because he's called Moxie Marlinspike.
Only people with cool names can invent things.
Re: (Score:2)
City-wide vs. global webs (Score:2)
Web Of Trust, really, are you fucking kidding me? This has been implemented for how long already?
A city-wide web of trust is easy: all participants arrange a key-signing party in the city. But a city-wide web of trust allows authentication of a channel only between participants living in the same city. Far fewer participants regularly travel to key-signing parties in foreign countries, mostly maintainers of high-profile free software projects, so the resulting web of trust will have those people as choke points when trying to establish multiple paths through the web of trust between any two given parti
Re: (Score:2)
Re: (Score:2)
A city-wide web of trust is easy:
Most cities have notaries. Why shouldn't it be possible to turn up at your local notary with your credentials and get them to digitally sign your key? I'm sure there would be other ad hoc ways to bestow some trust. e.g. your ISP / host might sign your cert since you're running on their site, or your business suppliers might sign your key and you theirs. Basically the web of trust could have a formal network of signers and an informal network of signers which would form the web of trust.
I also wonder how b
HTTPS in the address bar (Score:2)
Most cities have notaries. Why shouldn't it be possible to turn up at your local notary with your credentials and get them to digitally sign your key?
It should be possible, but it isn't yet.
your ISP / host might sign your cert since you're running on their site
Web hosts such as Go Daddy already charge extra for a certificate, and they charge extra for the dedicated IP address needed to use the certificate. (Go Daddy is known to host upwards of a thousand sites on a single IP address, but Internet Explorer on Windows XP and Android Browser on Android phones still don't support SNI and thus can't see any certificate other than the first certificate on a given IP.) I'd bet ISPs would likewise charge extra for signing customers
Re: (Score:2)
The rationale I've always seen for throwing up a big warning for self-signed certificates and not for plaintext is that HTTPS in the address bar with an unverifiable public key gives the end user a false sense of security.
That might have been the intent but in reality it splits websites into two groups - those who are prepared to pay a tax on security and those who aren't. For the sake of a secure web there has to be a cert which perhaps has a different trust model to CAs but still a
Re: (Score:2)
As far as I can remember there is some kind of mod_gpg for apache that does exactly that. web of trust, but using pgp. its free, and pretty good in fact.
can't seem to find the link tho, probably didn't really get many users.
Re: (Score:2)
Agreed. There's this mindset in the "social" community that online social inputs can validate businesses through "crowdsourcing". This has repeatedly failed, because crowds can be sourced. Citysearch, Twitter, and Yelp are full of fake "reviews", many auto-generated so that crawlers will find and count them. This took Google Places into the tank last October. Here's a video from an SEO firm [youtube.com] which shows how bad the situation is.
The explanation on the site of how it works is " "Convergence allows you to
Re: (Score:2)
Re: (Score:2)
Yeah, everyone knows that the REAL thing is the Circle of Trust [imdb.com]!!!
Re: (Score:2)
P.S.: ...
Wow, if I had to choose a Slashdot comment for the Summer of 2011, this would be it. Is it morally wrong to prevent damage to people who wouldn't know better? I can cite dozens of examples on how a society or service based on the assumption that people should fail, feel the pain and learn is psychopathic. But your comment made me apathetic, so I'll just go for an ad hominem. You are the anti-social here.
It'll work when people use it..... like bitcoin... (Score:2)
And it'll fail when they don't.
I want it to work, but you need to convince some sites to use it first, such as I dunno...
google.com
hotmail.com
facebook.com...
I didn't check any of these sites, but lastpass caused it to error out, and then every ssl cert ever is invalid. So very much kind of pointless currently, and I can't see the SSL cert providers being very friendly to it either?
Once its actually validating a sensible number of sites then I'll give it another try, for now I just stick to my paranoid "don'
Re: (Score:2)
I want it to work, but you need to convince some sites to use it first
I'll save a couple of steps by saying "I must be new here".
A site op needs to check his own site frequently (Score:2)
The point is that the site operators don't have to opt in or do anything differently.
Other than use it frequently to see if MITM attacks are in progress. If the majority of notaries are reporting a certificate other than the actual certificate for your site, then your server's connection to the Internet is itself being MITM'd [slashdot.org].
Use TOR (Score:2)
One way to improve security is to use TOR to get the certificate as well as getting it directly. This way, if you have a man-in-the-middle attack, you will likely detect it.
This doesn't do anything against someone who is hijacking the entire web site (though DNS hacks, for example), but it does help catch one category of possible attacks.
Of course, browsers should also cache certificates and notice when they change, so you would only need to use multiple paths to get certificates when they change or when v
Re: (Score:2)
This way, if you have a man-in-the-middle attack, you will likely detect it.
Except that it is entirely possible that your Tor exit was performing the MITM, and I would bet that is more likely to happen.
Re: (Score:2)
Yes, but the point is that it is unlikely that a man-in-the-middle attack would catch both your direct connection and a connection routed through TOR. And if the certificates don't match, you know you have a big problem.
Deciding on what to do if you detect a problem is another matter. Perhaps try a wide assortment of TOR exit nodes to get a better world-wide view.
Re: (Score:2)
Right. But, the Tor exit is not encrypted to the next hop (typically). So if the bad guy owned the Tor exit (the gov owns more than a few) they will see your traffic plain text.
Be my own CA (Score:2)
Re: (Score:2)
If you name a machine NNN and create a self signed cert for it they confirming machine(s) will ask NNN.example.com for the certificate (in addition to the visitor). The confirming machine will pass it to the visitor, it will be compared, and if they are the same NNN.example.com will work just fine. No authority is needed in the process.
So a web of trust then (Score:2)
Re: (Score:2)
MITM on Website's End? (Score:2)
I made this comment on the youtube video about a week ago, but perhaps I'll get better responses on /. .
What happens when the MITM is on the website's end of things? The notaries will all get the same information. The CA system is able to work around this (mainly by telling you that the certificate isn't valid). How does a notary system know when all of the notaries are being lied to?
Re: (Score:2)
There can not be a MITM attack on only one end. The Middle is important. What your probably thinking is a DNS poisoning attack where the victim is going to the site replaced in the DNS record. The fix, according to Moxie, is to cache the certificate from the last visit. This would force the user to make the correct choice to beat a poisoning attack. However, Moxie also allows the use of DNSSEC as one of the verifying choices. DNSSEC, theoretically, is much harder to poison.
Re: (Score:2)
No, what I'm thinking is when the intercept point is in a place such that *all* connections to the website go through the MITM.
It's all very well... (Score:3)
This project is all very well, but we want SSL to solve two problems today: prevent MITM attacks (which Convergence can do) and *also* identification (in other words, EV certificates) to prevent phishing or at least reduce the chances of phishing.
Unfortunately Convergence only does one of them (prevent the MITM attacks). A much bigger problem, certainly in the west, is phishing rather than MITM attacks. I'd suggest for many people Convergence still needs quite a bit of work before we can start using it in place of the current method of CAs (which I agree is broken).
Re: (Score:2)
Possible problems? (Score:2)
The concept is sound, but the practice is probably too lofty to take off (armchair assessment)
The problem I foresee is that users won't change notaries based on trust. Most users click yes to anything, don't know what's going on 99% of the time and have no clue/don't want to know how crypto works on the internet. Asking my mom to manage trust relationships is what I am imagining is ridiculous.
So, you need a mediator to manage notaries for you. Your browser vendor can do it, but trusting them is no more a re
Re: (Score:2)
You do not need a mediator to manage notaries. You use a mediator to verify certificates for you. There will no longer be a benefit to running a notary outside of helping people that do not know how to create certificates avoid learning the process.
I. R. Vindicated (Score:2)
I've always trusted self signed certs on machines I know because nobody can request a cert from an unknown entity. I feel vindicated.
Too complicated (Score:2)
This will break frequently. And because users are impatient and do not understand security, it will be default_open. In other words: basically worthless.
I installed it - seems fairly easy (Score:2)
You get a little 'Lock++' icon in the right corner (by default) that will tell you the verification status. For instance going to https://mail.google.com/ [google.com] gets you a list of the current notaries and how they're 'voting'. You can add, edit, remove, or enable/disable notaries at will by providing host:port and a cert. It comes with 'notary.thoughtcrime.org' and 'notary2.thoughtcrime.org' by default, which gives you two entries to play with to start with.
The advanced options are the interesting ones - whether
Re: (Score:2)
1/10. Troll will possibly garner a little rage, but on the whole easy to spot and not terribly imaginative.
Re: (Score:2)
Citation necessary, just leave your bank account information here so that the admins can verify the big bucks. I'll do it first.
2******************
7**********
3***************
S****
The cool thing is that the software automatically replaces it with stars when displaying.
Re: (Score:2)
That's sort of the problem, this is a bit like cod liver oil back in the say, they may not like the medicine, but for everybody's well being they need it. Allowing people to get online who have no idea what they're doing is a recipe for bad things happening.
Re: (Score:2)
the problem is cost of verification. Currently this is pretty much how it works, you ask the CA for a cert and they issue it to you after verifying your identity in some way.
Trouble is, the 'verification' often consists of little more than an automated email with a link in it, so its no wonder the issued certs end up in the hands of others.
There are a lot of certs issued, so making verification foolproof would ramp the cost of them up to prohibitive prices.
On the other hand - maybe this is exactly what is n
Re: (Score:2)
In about:config, create a new boolean named
extensions.checkCompatibility.7.0
and set it to false, then restart. Working fine for me with last night's 7.0 beta.
Of course this turns off all compatibility checking, so the better solution would be for them to update their install package.
Disclaimer: I haven't tried installing without that boolean to see what happens.