Logjam: the latest TLS vulnerability explained
blog.cloudflare.com
blog.cloudflare.com
2 of the 3 options ("Universal SSL" and "Full SSL") are not "secure" by today's standards. Universal SSL leaves connections to the origin unsecured allowing for passive and active MITM attackers to intercept things. Full SSL allows an active MITM to intercept origin connections.
Advertising these services as "SSL" is misleading and offers a false sense of security to visitors as they will see the nice green SSL lock and think their connection to a cloudflare-protected website is fully protected. Meanwhile their credit card information and other personal details could be travelling over the internet in plain text to the origin.
Wow, that was easy.
The beta test of a Cloudflare CA for "Full SSL" is a big improvement over accepting any self-signed certificate, but I still think "Flexible SSL" should not be a thing.
I get the business case (the whole point is that SSL is hard for a large class of server admins). Also it does help for e.g. users coming in via tor or un-trusted networks.
But dammit, I still can't bring myself to like it.
Edit: to respond to both comments at once: alright Cloudflare may not recognize my HN cookie and account, but they do have two cf_* cookies, and I am merely loading the homepage. No weird URL parameters, no POST data, nothing.
Dude.
They've even acknowledged that they're doing an unsatisfactory job of it, but still haven't gotten around to improving their system in several months.
To be clear, we don't disfavor (or favor) Tor exit nodes. The reputation of their IPs is generated automatically, just like the reputation of a company's VPN or your home router. People have suggested we provide our customers a way to whitelist all of Tor's nodes. We could do that, but I worry it may have the opposite of the intended effect. The vast majority of our customers, if given the ability to apply a rule to the Tor network, would choose to blacklist it entirely. While not the HN crowd, most site owners see Tor as a source of their headaches (e.g., credit card fraud, spam, trolling, hacking attempts, etc.). I'm not sure how we can build a system to allow customers to identify a set of IPs to whitelist without also allowing them to blacklist those IPs. I've been the voice internally who has resisted providing a selector on Tor but, maybe counter intuitively, because I am worried about not further harming the network's ability to allow users to surf the network anonymously.
All that said, I agree right now our solution is far from perfect. I believe long term we'll always add a bit of friction to anonymous, shared networks but I think we can make it less painful/annoying. A number of very high profile individuals ranging from human rights activists to ACLU attorneys to even Edward Snowden and Julian Assange have personally asked me to, please!, make it better. A significant portion of our team is working to improve the experience for legitimate anonymized visitors without putting our customers at more risk. We've gotten incrementally better, but we're far from perfect. If you have ideas on how we can be better while still offering the protection our customers hire us for, send them our way or, better yet, come work with us. This is a hard engineering and Internet policy problem that there isn't a silver bullet solution for but that making progress on will have an enormously positive impact to millions of Internet users globally.
Some thoughts based off this:
It's clear that these captchas are 95% broken, the fact that these ones are so unreadable suggests the more readable ones were solved, so apparently this implementation can't last in any case.
For what it's worth I would have no problem filling out captchas if they're readable, and other places on the internet do still have readable captchas.
Another reading here is that Cloudflare has sold a product to its customers (hacking protection) that other cloud providers have not attempted to sell. I'm going to be harsh and call that negative externalities for Tor users.
And I'm not sure that product even works as advertised - a scan of the internet can reveal the backend server, which could still be hacked (probably even more so, if the customer is now relying on Cloudflare to protect it).
It seems we're talking about automated attacks only? Else the attacker could just fill out the captcha manually first.
If a targeted attack can be detected (attacker has completed the captcha), just rely on that code instead? If not, have we gained much?
Clearly a lot of customers will have blindly cranked their s3cur1ty bar to 11. Perhaps make it harder for a customer to do that, given the adverse impact it currently causes? Most people probably think DoS when they head to Cloudflare, not free captchas.
Note that I do mean "common case", because its weakens the anonymity set when normal people are hassled out of Tor. So just making "GET /boring-article.html$" work would be a great improvement. If that then lead to a work-flow of "POST /comment" -> 403, user notices, hits refresh and fills out a magically-appeared captcha, then so be it.. Tor users would learn this flow quick enough, and prefer it.
I could totally ask and suggest ideas about this all day for free, but I won't be applying to Cloudflare for the time being fwiw :P Still, I'm grateful you're working on the issue.
Keep an eye on blog.filippo.io maybe, then!
An analogy I like to use are boxes with locks. Imagine that, given a lock design, I can produce a bunch of boxes with the exact copies of the lock and keys for the lock. Symmetric crypto corresponds to everyday locks: if you have the key for the lock, you can open or close the lock as you wish. Asymmetric crypto corresponds to a special kind of lock, which comes with two keys: one kind for locking the lock (the public keys), another for unlocking (the private keys).
Now if somebody wants to communicate with me securely, the choice of lock affects the key distribution significantly. If I have just symmetric locks, for each person I want to talk to, I have to create a new box with a separate lock, and make sure they are the only ones having a key for this lock. The latter I have to in person. Meaning, if I want to talk to somebody on the Internet, I first have to meet them in person (that is, out of band), before we can communicate securely. This doesn't scale well. With asymmetric crypto, however, I can just leave a bunch of open boxes and corresponding locking (public) keys lying around (the keys for the different boxes can be same or different, doesn't matter). If Assange now wants to send me a message, he writes it on a piece of paper, puts it in one of the open boxes, and locks it with the locking key. I'm the only person with the unlocking (private) key for this lock so I'm the only one who can read the message. This is just basic asymmetric crypto.
Another thing Assange could do is, instead of leaving a piece of paper with the message, to leave a piece of paper with a fresh design of a symmetric lock. Now I can safely create my own symmetric box according to the design, put messages inside, lock them and leave them around for Assange to pick up. This is secure since he's created the design and he's the only one apart from me who can open such boxes.
This is a 10,000 foot view of how to do the switch from asymmetric to symmetric crypto, but there are many other questions that need to be addressed to get an actual protocol. Thes include "how does Assange know this public key belongs to me" (answer: certificates and certificate authorities), "how do I know the message came from Assange" (answer: digital signatures), "what purpose does this message serve" (tagging and nonces), "what kind of designs I can produce locks for" (ciphersuite negotiation) and so on. Additionally, there's all kinds of things that can go wrong when implementing this - basically, even though we know how to check the security of a high-level design of a protocol using formal methods (the so-called "symbolic verification" tools), we don't really have a systematic way of translating these designs into actual implementations while preserving the security guarantees.
Also, there are direct key-exchange protocols (such as Diffie-Hellman) which work differently than the basic idea above.
* Inject JS via html packets rewriting
* High numbers of false positives even on lowest threshold
* Issues with flash resources for some users
* Odd price structure (Based on number of domains not traffic)
* Adsense on error/not-a-bot pages