Say Alice wants to open up an HTTPS connection to Bob through a proxy named Earl.
What prevents Earl from reading alices request, opening a connection pretending to be bob, and then opening a https connection with bob pretending to be Alice , and snooping on the traffic as it passes through ?
The security of HTTPs relies on public key certificates.
I recommend reading up on it here: https://en.m.wikipedia.org/wiki/HTTPS#Overview
Especially the part after this segment:
Great explanation indeed!
I was missing this part from my understanding:
In a sense it all comes down to a CA (e.g let’s encrypt) not giving out certificates for your domain, so that only your server has a valid certificate for your domain and not also some attacker.
But that itself requires domain verification to be secure (robust against MITM attacks), which apparently it wasn’t for the longest time.
Just recently there was a post about
ACME-CAA
, which addresses this issue (when configured). Great article on it here: https://www.devever.net/~hl/acme-caa-liveYeah, pretty much. If you control the DNS you can do whatever