I recall that subdomains are their own record inside a DNS, which would imply that anyone can claim that their server is a non-existent subdomain of the real domain

  • Draghetta@lemmy.world
    link
    fedilink
    arrow-up
    70
    ·
    14 hours ago

    There are a lot of answers here but I feel they mostly miss OP’s point so I’ll try my own:

    What stops a scammer from HTTPS certifying foobar.reputable.com is the trust system.

    Anybody can create a certificate on their machine for anything within seconds, even you could create a certificate for www.google.com. The problem is that you, as an issuer, are not trusted by anybody.

    Browsers and operating systems are released with a list of issuers that are considered trustworthy, so if you want your certificate to be recognised it has to come from one of these, not from you.

    All of these issuers are in the list because they have been individually vetted, and are known to do their due diligence before issuing certificates, so they would not give you that cert unless they know that the bank domain or subdomain belongs to you, and the technical means to achieve this have been explained in other answers.

    But if one of these issuers went rogue, or if you hypothetically hacked into their certification authority, then indeed nothing would stop you from obtaining a valid and recognised certificate for foobar.bank.com.

    This is why for example Trustcor was removed from this list in 2022: from that position it would be trivial for a certificate authority to allow third parties to spy on people.

    • Nougat@fedia.io
      link
      fedilink
      arrow-up
      13
      arrow-down
      4
      ·
      14 hours ago

      And when you are requesting a certificate for foobar.bank.com, your certificate request must come from an authorized email address at bank.com. That is also where your issued certificate would be sent. So, in order to get a certificate from a third party issuer, you have to:

      • Control the domain registration at the level just above the TLD (I don’t know how it works for co.uk, probably similar though)
      • Have access to a mailbox at the domain, where that mailbox has an address which is authorized to request certificates (this would be configured in the domain registration)

      Could a malicious actor compromise that mailbox in a way that allows them to request a certificate and then receive it? It’s not impossible, but it would be a huge effort with a small payout. Honestly, if you’ve got access to that mailbox, you don’t want to give yourself away by making false certreqs through it. You want to just exfiltrate as much data from it as you can. There’s certainly something way more valuable in there.

      • MartianSands@sh.itjust.works
        link
        fedilink
        arrow-up
        13
        ·
        13 hours ago

        your certificate request must come from an authorized email address at bank.com

        That isn’t true in general. In fact, it can’t be.

        It might be policy for most cases from the well-known certificate authorities, but it’s not part of the protocol or anything like that.

        If it were, then it would be impossible to set up your mailserver to begin with because you could never get a certificate for mail.bank.com

            • chameleon@fedia.io
              link
              fedilink
              arrow-up
              1
              ·
              30 minutes ago

              The email ecosystem is changing in recent years but yeah, it’s best to expect that there is at least one opportunity for any given email to be sent over the internet unencrypted. MTA-STS has been slowly changing the landscape but adoption isn’t going all that great.

        • Ghoelian@lemmy.dbzer0.com
          link
          fedilink
          arrow-up
          4
          ·
          edit-2
          11 hours ago

          Yeah, letsencrypt doesn’t do this for example. They do ask for an email address, but that’s just for expiry notices.

          They do require you control the domain, and run it on the server the DNS record points to. When using certbot at least.