disclaimer: I’m just asking to get understanding of the theory behind network traffic encryption, I know this doesn’t happen irl most likely.
Let’s take https connection for example. I like watching revolutionary things on youtube and do not wish for authorities to know what I am watching, we accept here for the sake of showcase that google won’t sell my watch history if asked (LMAO what am I even saying?).
So if I’m not mistaken since youtube has https implemented, our communication is encrypted, the keys are shared only between me and youtube. But when Youtube shares the key with me/my client the first time, is that also encrypted? Wouldn’t the same question keep getting answered until there is something unencrypted? I know this is a bit too much unlikely, but if ISP automated the process of gathering keys and decrypting web traffic for a certain site with them for all users, would that work for them?
I’m taking https here as an example, while I have the same question for like VPN.
EDIT: Thank you everybody. I am not a member of this community, but every comment was a golden experience to read!
https://en.m.wikipedia.org/wiki/Transport_Layer_Security#Description describes it very well
However, many clients and servers supporting TLS (including browsers and web servers) are not configured to implement such restrictions. In practice, unless a web service uses Diffie–Hellman key exchange to implement forward secrecy, all of the encrypted web traffic to and from that service can be decrypted by a third party if it obtains the server’s master (private) key; e.g., by means of a court order.
Same page, security.
So in the context of OPs example of watching revolutionary content, where it is in the governments interest to protect itself against, one could consider some parts of the TLS protected web compromised.
afaik, most if not all modern browsers and clients in e.g. apps, use Diffie-Hellman key exchange in TLS.
Some Apps go even further and implmement certificate pinning, only allowing a set of specific certificates the server is allowed to “present”.
You can only break it by an active Man in the middle attack, presenting your own Diffie-hellman parameters toeachother and signing them with a certificate the client trusts (we can probably assume US agencies have access to some CA keys and can do this)
I dont think this is very feaseable on a large scale as you’d need to intercept every interesting connection, break the handshake, risking detection, and further proxy and process the whole traffic.
Metadata will be more juicy en mass than the content and easier to obtain with less risks.
But when Youtube shares the key with me/my client the first time, is that also encrypted?
Here’s an explanation of what happens during the initial TLS handshake.
…if ISP automated the process of gathering keys and decrypting web traffic for a certain site with them for all users, would that work for them?
Not sure this is exactly what you’re asking, but there’s the concept of forward secrecy for defending recorded encrypted traffic from future key compromises.
Okey, it’s like this: You and youtube both generate two keys, public and private. Public keys are public, anyone can see them. Doesn’t matter. When you send a message to youtube, you encrypt it with their public key. Now, the trick is, the encryption is asymmetric, which means that the message can only be decoded if you also know the private key, which you never send anyone but keep hidden. Right? This way, as long as your private key is secure, you can not realistically decode the encryption from outside just knowing the public key. Thus setting up a secure connection is just an exchange of public keys.
This is more or less how I understand it.
You are describing symmetric encryption where both parties have the same key. There is something called asymmetric encryption that solves this. Basically you have a public key and a private key. You can give your public key to youtube, they can use that key to encrypt the symmetric key that will be used for the actual communication. The only way to decrypt the symmetric key is by using your private key, which is only known to you. So youtube can safely send it to you so you can decrypt it. Now you both have the same key and nothing was sent unencrypted.
Well your public key was sent unencrypted but that’s fine because of how asymmetric encryption works.