Regardless of whether or not you provide your own SSL certificates, cloudflare still uses their own between their servers and client browsers. So any SSL encrypted traffic is unencrypted at their end before being re-encrypted with your certificate. How can such an entity be trusted?
Good point. Who’s to say that LetsEncrypt doesn’t keep a copy of my private keys?
A certificate authority doesn’t have a copy of your private key, you send them a certificate signing request. The private key never leaves your system. That’s the whole point of public key encryption.
Then trusting root CAs is a non-issue?
A root-CA can still swap out your certificates, but they do not have access to the private keys. What they can do is issue valid certs for domains not under their control (or the control of their users). With a bit of DNS poisioning you can now serve traffic through a Proxy and no one would notice (think: someone obtains a valid cert for google.com, sets the local DNS to resolve google.com to the IP of a server hosting a proxy and et voila, you can read all their encrypted traffic to google.com).
Isn’t this also what many companies do to monitor web-traffic from their network?
Speaking from experience, companies that are trying to do this will typcially do it one of two ways: either through DNS lookups by having their on-network DNS server acting as a recursive server, thus being able to intercept/interpret DNS requests and apply filtering rules, OR through a forward proxy that all web traffic exiting the company network will go through. Forward proxies can absolutely be configured for SSL interception, and it’s typically handled by using a company-issued certificate signed by the company’s CA…and every company computer has the company’s CA certificate installed, so it’s explicitly trusted. This is why you shouldn’t do any kind of personal business (especially banking) on company-owned devices.
The biggest difference between companies using a forward proxy and an attacker using DNS poisoning to redirect the traffic is intent - the attacker is doing it for explicitly malicious purposes, while the company is ostensibly doing it to enforce company policy (especially AUPs)…having access to all the delicious unencrypted data is simply a side effect. You trust your employer, don’t you friend citizen?
You damn well do iff you wanna pay that mortgage, peasant! 🤑
This is exactly the original point I was trying to make regarding cloudflare.
The point that i take from this tongue-in-cheek sentence of yours is that no, we should absolutely not trust our employer with our unencrypted traffic.
But then on the other hand there are loads of people on here saying that, yes, of course we should trust cloudflare with having access to all of the data flowing through it.
It is, but for a different issue.
Every CA you trust can create certificates for every site. If you trust the e.g. NSA CA, they can create a certificate for gmail.com and put a MITM between you and gmail.
The EU is planning to force browsers to add their backdoor CA
Because that’s not how certificates work?
Your private key is never sent to the CA with you submit a Certificate Signing Request, only the public key and a bunch of metadata.
(The exception being code signing certs that are delivered on an HSM but the key never leaves the HSM)