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!

  • Cralder@lemmy.world
    link
    fedilink
    English
    arrow-up
    57
    ·
    10 months ago

    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.

  • navigatron@beehaw.org
    link
    fedilink
    arrow-up
    13
    ·
    10 months ago

    Other comments here do a great job pointing to DH key exchange; I’d like to try explaining it with the paint analogy.

    You and Youtube need to agree on a “color of paint” (encryption key) without ever sending it over the network.

    You and Youtube agree on a common “yellow” in the clear, and you each pick a secret color. Youtube mixes yellow and their secret and sends it to you. This is okay, because un-mixing paint (factoring large prime numbers) is really hard. You add your secret to the mixture, and now you have yellow+Youtube’s secret+your secret.

    You mix yellow and your secret and send it to youtube. Youtube adds their secret; now they’ve got yellow+Youtube’s secret+your secret. You both have the final color!

    An eavesdropper can’t reconstruct this - everything sent over the network had yellow mixed in, and un-mixing paint can be really hard. Maybe you can guess that green minus yellow is probably blue, but you can’t get close enough to decrypt anything. And what if it’s brown? Is that blue + orange, or is it red + green?

    Cryptographers have worked very hard to make the communications secure. I would be more worried about the other end ratting you out - using a relay / proxy / vpn that you trust is a good idea :)

  • stoy@lemmy.zip
    link
    fedilink
    arrow-up
    8
    ·
    10 months ago

    Asymetrical encryption solves this, here is my attempt to do an ELI5:

    Adam want’s to send a chat message to Ben, but want to do it securely, so they use a special program on their computers.

    When the Adam’s program first reaches out to Ben’s computer, it asks for an unlocked padlock, this is a padlock that can only be unlocked by Ben’s program.

    Adam’s program takes the padlock and crafts a new special series of padlocks that only Adam’s program can unlock, which it put’s in a box and locks it with Ben’s padlock.

    The box is sent to Ben’s program, the program unlocks the box and creates it’s own special series of padlocks that only Ben’s program can unlock, put them in a box and locks it with Adam’s padlocks.

    The box is then sent to Adam’s program, and is unlocked.

    This now means that Adam’s program can put messages to Ben in a box, lock the box with one of Ben’s special padlocks and send it on it’s way knowing that only Ben can unlock the box and read the message.

    Likewise, Ben can also send messages in boxes locked with Adam’s padlocks and know that only Adam can unlock them and read the message.

    Added to this is the fact that messages from Ben can be verified as having used the special padlocks Adam sent to Ben, as else Adam’s special key wouldn’t fit the padlocks given to Ben.

    In reality the padlocks are keys to lock a message, and the above text describe a secure key exchange.

    • zaknenou@lemmy.dbzer0.comOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      10 months ago

      Oh! I remember these steps being explained on a youtube video before. So the point is that the padlock (that Adam received on the third paragraph) is like a program on my windows desktop, I can run it (here like Adam uses it to encrypt the date), I can copy it and send it to a friend, but I can’t read the code which is compiled through an unknown language (i.e even if snooper received the padlock he can’t figure out how to unlock it and decrypt the data)?

  • 7heo@lemmy.ml
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    10 months ago

    Seeing as other answers are either links, or wall of texts, I’ll try to keep it short and approachable:

    • Encryption, asymmetrical or symmetrical, relies on private keys being private. Once those keys are compromised, the encryption also is (read on).

    • By default, in the most simplistic form, it doesn’t matter when the content was encrypted, the private key can decrypt it. There are solutions to this problem, making encryption time (or iteration) sensitive.

    • For an attacker with enough means, the private keys can always be exfiltrated, and content can be intercepted, but usually there are much simpler solutions for snooping on encrypted content: the devil is in the (implementation) details (this link is an illustration, and by no means an exhaustive list).

    • Cryptography is always simpler to go around than to break. So never be satisfied with a cryptography only (or protocol only) audit. There are near infinite of ways to neutralize encryption with a single line of code in a client.

    • The architecture is also essential. Client-Server encryption has entirely different use cases than Client-Client encryption (EE2E).

    • And finally, Schneier’s law:

    Any person can invent a security system so clever that she or he can’t think of how to break it.

    • Deckweiss@lemmy.world
      link
      fedilink
      arrow-up
      5
      ·
      edit-2
      10 months ago

      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.

      • Display Name@lemmy.ml
        link
        fedilink
        arrow-up
        3
        ·
        10 months ago

        Yes, if the government has the key, they can read it. Otherwise spying of the NSA would be a little tricky. I’m no pro in this regard but doesn’t the gov/ NSA has a special API to access data of the big companies?

      • zeluko@kbin.social
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        10 months ago

        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.

  • banazir@lemmy.ml
    link
    fedilink
    arrow-up
    4
    ·
    10 months ago

    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.

  • Quereller@lemmy.one
    link
    fedilink
    arrow-up
    4
    ·
    10 months ago

    I think no one has mentioned the base for all the cryptographic functions. A mathematical operation which is simple in one direction but very hard in the the other (backwards). The factorisation of large prime numbers is one example.

    • zaknenou@lemmy.dbzer0.comOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      10 months ago

      I’m satisfied with the answers and insights I got so far. But if you may add I’d be happy to know why factorization of prime numbers is so crucial in cryptography. I heard about this a lot before but don’t know anything. I know quite well about Prime number and theorems about them on math, but not their applications

      • 𝕽𝖔𝖔𝖙𝖎𝖊𝖘𝖙@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        10 months ago

        As I understand it, it’s just as they said:

        Calculating primes is fairly straightforward so you calculate a few large prime numbers, and do some math to them.

        Now you have a strong key that didn’t require a supercomputer to create but taking that final number and turning it back into those original primes is a much more computationally expensive proposition.

        In fact, it’s one that’s not viable with current technology.

  • catacomb@beehaw.org
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    2
    ·
    10 months ago

    I think you’re asking if it’s possible for your government to be a man-in-the-middle? Depending on which government you live under, the answer is likely no but more importantly the answer will always be; it’s not worth their effort to find out what you’re watching.

    YouTube’s public key is signed by a certificate authority whose public key (root) is likely installed on your device from the factory. When you connect to YouTube, they send you a certificate chain which your browser will verify against that known root. In effect, it’s information both you and YouTube already share and can’t be tampered with over the wire.

    Technically, those signatures can be forged by a well resourced adversary (i.e. a government) with access to the certificate authority through subversion, coercion, etc. At the same time, it’s probably easier to subvert or coerce you or YouTube to reveal what you watch.

  • hungprocess@lemmy.sdf.org
    link
    fedilink
    arrow-up
    3
    ·
    10 months ago

    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.

  • paris@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    3
    ·
    10 months ago

    While we’re talking about asymmetric encryption, can someone explain to me why you can’t decrypt information with the same public key that encrypted it? I understand the analogies (locks on a briefcase, unmixing paint, etc), but I can’t “un-analogize” them to understand what’s actually going on. Encryption keys aren’t physical locks or paint. They’re numbers(?). So why can I encrypt something by multiplying by a known public encryption key, but I can’t decrypt it by dividing by that same known public key?

  • JackGreenEarth@lemm.ee
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    10 months ago

    Bh sharing, unencrypted, on Lemmy that you like watching revolutionary videos on YouTube, the government now has that data, even if Google wasn’t going to give it to them. I thought I would just add that, as everyone else has explained asymmetric encryption well.

    Also, usually it’s just the content of the website, not the URL itself that is encrypted, so anyone, not just the government, can know what YouTube videos you watch (as the video ID is in the URL) as well as the URL of any other websites you visit.

    • RHOPKINS13@kbin.social
      link
      fedilink
      arrow-up
      4
      arrow-down
      1
      ·
      10 months ago

      That’s not true. The original DNS request, for youtube.com, may not have been encrypted, but any URL parameters afterwards are kept encrypted. As long as HTTPS is used, if hypothetically Google wasn’t going to give it to them, “the government,” or your ISP for that matter, can tell you’re watching YouTube, but can’t tell which video you’re watching.

    • Jajcus@kbin.social
      link
      fedilink
      arrow-up
      4
      arrow-down
      1
      ·
      10 months ago

      URLs are definitely encrypted. What can be sent unencrypted are domain names and IP addresses. Which is not a problem when the host name is ‘youtube.com’, but is a bigger problem if it is ‘the-terrorists.com’.

    • CaptainSpaceman@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      10 months ago

      The other 2 commenters are wrong. URLs as they appear in your web browser are NOT encrypted when sent over https protocols.

      The only data that is encrypted is POST data, and ONLY if it is sent over HTTPS.

      So for example, a website login page crafts a URL like https://some.example.com/login?sessionID=12345678 and when you log in to the site extra parameters like Username and Password are sent via POST data, then anyone listening to your web traffic (like the NSA or your neighbor with wireshark) will br able to see the website and the sessionID, but not the login details as they will only show up encrypted.

      However, if the site is ran by idiots who pass the data in the URL like this https://some.example.com/login?sessionID=12345678&username=Homer&password=Simpson, then ANYONE listeneing would have your credentials.