• Rikudou_Sage@lemmings.world
    link
    fedilink
    English
    arrow-up
    41
    ·
    1 year ago

    It is kinda big, previously you had to send the host unencrypted to support SNI which in turn was needed to support https for multiple sites per one IP address, which was needed because we lack IP addresses. So there were basically two options: compromise privacy a tiny bit (by sending host unencrypted), or make it impossible for most websites to have any privacy at all (by making it impossible to have a https certificate).

    Now you can have the best of both worlds. Granted, you need to have DoH (which still isn’t the default on most systems AFAIK), but it’s still a step in the right direction.

    • Guillaume Rossolini@infosec.exchange
      link
      fedilink
      arrow-up
      5
      ·
      edit-2
      1 year ago

      @rikudou @voxel
      ASFAIR it used to be even worse than that, because if you didn’t want SNI (for compatibility reasons or whatever), but you still wanted a certificate, you had to have one server for every hostname (because each had its own IP), assuming you could afford the additional IP space

      Granted you didn’t need a physical server, but that was still a bigger cost

      Some servers are more flexible on that front, but early SNI didn’t have those

      • Rikudou_Sage@lemmings.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 year ago

        Yeah, I thought I implied that, but that was the reason SNI started - IPv4 is a scarce resource and thus expensive and the only way to host multiple https websites was having multiple IPs (not necessarily multiple servers, you can easily have multiple IPs for one server, you just had to bind one IP per host), which was adding to the costs quite a bit and hobby projects couldn’t really afford it (well, they could, but not many people are spending hundreds of dollars for a hobby website).

      • Rikudou_Sage@lemmings.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        1 year ago

        It’s happening as part of the handshake. Probably not completely what it’s about, but it was the first that came to my mind.

        Edit: It has to happen before the encryption is established, because otherwise the server doesn’t know which certificate to use, because it doesn’t know which host is the client requesting. There’s also ESNI (encrypted SNI) to solve this but I’m not sure on how many servers actually deploy it.

  • JCpac@lemmy.today
    link
    fedilink
    arrow-up
    12
    arrow-down
    1
    ·
    1 year ago

    I don’t get it… How does this protect anything? If we want our packets to reach a web server, we need to write the server’s IP address on them. If a snooper has the IP, can’t they just lookup the domain name from a DNS server? Or is that not a service DNS provides?

    If the IP address is encrypted, how will the routers know where to send the packets? Only solution I can think of would be onion routing… Am I wrong??

    • Domi@lemmy.secnd.me
      link
      fedilink
      arrow-up
      27
      ·
      1 year ago

      An IP address is no longer associated with just one website/domain name. There could be thousands of websites running on a single IP address.

      As is, anyone can currently look at your encrypted traffic and see in plain text which site you’re surfing to. So this proposal is long overdue.

      • Bageler@lemmy.ml
        link
        fedilink
        arrow-up
        13
        ·
        1 year ago

        A government will still subpoena the destination IP for the information if they want it.

        ECH protects against warrantless monitoring and other non-government bad actors and I’m happy to see it implemented. If there hasn’t been a strong enough privacy argument to use Firefox for someone to date, this is a big one.

    • Danny M@lemmy.escapebigtech.info
      link
      fedilink
      arrow-up
      14
      ·
      1 year ago

      somebody wiresharking your traffic can see the domain name you’re contacting even if you use https; this solves that.

      reverse DNS lookup does exist, but it’s not always accurate, especially when multiple websites are hosted on the same server (which is more common than you think)

      • JCpac@lemmy.today
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        Is it because of the “Host” HTTP header? I always thought it was optional, since the IP address and port were handled by the network and transport layers respectively. Turns out it’s required to resolve between different virtual hosts in the same server. Today I Remembered (TIR?) that virtual hosts are a thing…

        Is there anything else that might indicate the domain name in the handshake connection?

        • Domi@lemmy.secnd.me
          link
          fedilink
          arrow-up
          8
          ·
          1 year ago

          Is there anything else that might indicate the domain name in the handshake connection?

          The SNI (Server Name Indication) happens before any HTTP communication and is done in plain text. It is needed because a single web server might host multiple websites, since each of them has their own certificate it needs to know which one to serve you.

          With the new proposal that SNI is now encrypted. It makes the difference between anyone listening in being able to tell “you visited lemmy.world” and “you visited something behind Cloudflare”.

    • Perhyte@lemmy.world
      link
      fedilink
      English
      arrow-up
      8
      ·
      edit-2
      1 year ago

      Technically DNS will let you look up a host name from an IP address, but the catch is that it might not work: it’s not automatically configured. And even if it is configured you might not get all of the host names pointing at that address.

      Very many webserver operators don’t bother adding the server’s host name to reverse DNS. For example, lemmy.world’s IP address does not map to any host name in reverse DNS, and google.com’s IP address maps to some completely different name for me, with no mention of Google in the returned name.

      Also, many websites can be served from the same IP address, especially if they are hosted in the cloud. You are correct that someone snooping on the connection would still see the IP address, but if that points them at something like a webhosting company or a CDN (or some other server hosting many different sites) it still doesn’t really tell them which specific site is being accessed.

      But yes, if the site you’re accessing is the only one hosted on that server then the snoop could potentially guess the host name. But even then: how would they know that’s the only site hosted there? If some site they’ve never even heard of uses the same IP address they would never know.

  • Boring@lemmy.ml
    link
    fedilink
    arrow-up
    6
    ·
    1 year ago

    While this is good for survielience circumventing… It is looking like the beginning of the end of DNS filtering and the popularization of encrypted telemetry.

    • Encrypted DNS has been possible and in use for years (including looking up IP addresses over HTTP, which I’ve caught several apps doing), but this isn’t DNS related.

      SNI filtering was pretty popular back in the day, but domain fronting is trivial to set up outside the browser. No SNI filtering setups I’ve come across actually bother to check certificate validity, so generating a self-signed eff.org certificate and using that from within an app would make quick work of most network filters.

      I’m afraid firewalls are the only workable solution if you’re not in control of the software you’re running. You can try to force apps through a MitM setup by blocking all outgoing traffic and configuring something like Privoxy as the only way out, but getting your MitM CA loaded into these apps can be a royal pain.

    • Hotzilla@sopuli.xyz
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      You can do filtering and monitoring in the DNS server itself in corpo environment, like umbrella or AD DNS.

  • deerdelighted@lemmy.ml
    link
    fedilink
    arrow-up
    6
    ·
    1 year ago

    So if I understand it correctly, with this scheme the traffic between my computer and the DNS server is encrypted and so my internet provider won’t know which websites I’m visiting?

    • Boring@lemmy.ml
      link
      fedilink
      arrow-up
      9
      ·
      edit-2
      1 year ago

      DNS of HTTPS or TLS has been available for years, but it hasn’t been adopted widely because the hello at the beginning if the three way handshake when connecting to a website ratted you out to your ISP anyways.