this post was submitted on 16 Dec 2024
362 points (97.9% liked)

Technology

60055 readers
2921 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 6 points 5 days ago* (last edited 5 days ago) (1 children)

Well it stands to reason, that TLS, i.e. Transport-Layer-Security, would secure the transport, and not secure the server providing the service against intrusion.

Also how is your hypothetical related to cost of certificates? If you use an expensive certificate with in person validation of your organization and its ownership of the domain name (these types of certs exist), then how does that change the case where your site is hacked, compared to the free certificate?

[–] [email protected] 0 points 5 days ago (2 children)

I think there is a big misunderstanding here.

My question is why shall I use a trusted certificate instead of rolling my own, if it wasn't enforced (or st least made inconvenient) by google & co.

Does their certs protect better in some way?

[–] [email protected] 3 points 5 days ago* (last edited 5 days ago) (1 children)

A certificate fundamentally only does the following, it binds a name and a public key together and attaches a signature to that binding.

Anyone can make a certificate binding any key to any name and put their own signature on it, they just can't fake others people's signatures. This is also what you do if you self sign a certificate. If you then install the public key of your signing key in your webbrowser you can connect to your own services using your TLS key and your browser will check that the server presents the certificate with a matchign signature proving that it is using the right TLS key.

You can also bind your TLS key to www.wikipedia.org and sign it. However nobody else knows your signing key, and thus nobody would trust the certificate you signed. Which is a good thing, because otherwise it would be easy for you to impersonate Wikipedia's website.

The value of trusted certificates lies in the established trust between the signers (CAs) and the software developers who make browsers etc. The signers will only sign certificates to bind names and TLS keys for the people who actually own the name, and not for third parties.

The validation of ownership is the thing that varies a lot. The simple way is just checking for control of the web server currently reachable under a name, or checking for control of the DNS entries for a name, but the more complicated validations check business records etc.

So when you're asking do they protect better, it's kind of difficult to say.

  • If you can validate the signature yourself, say you have control of the browser and the server, then your own signature is fine, and a trusted one wouldn't be any better.
  • But if you want third parties, that don't know you, to be able to verify that their TLS session is established to a person who actually owns the domain, rather than a man in the middle, then the only practical solution today is using that established trust system.
  • If you are asking about the encryption strength of the TLS session itself, then that's completely independent of the certificate issue, because again the certificate only binds a name to a key with a signature. You can bind an old short key, whose private key has been leaked before to a name, or you can bind a modern long key that is freshly generated to the same name. You can used either key in a good or a bad cryptographic setup. You can use deprecated SSL 3.0 or modern TLS 1.3. Those choices don't depend on who signs the certificate.

I hope that helps, sorry for writing so much

[–] [email protected] 1 points 5 days ago (1 children)

Not at all, thank you for actually trying to answer my question instead of just telling me how it is supposed to work!

Just quickly, no I didn't wonder about the keys encryption strength, what I do wonder about is if it is overall more secure to use a "trusted" entity, than, if the browsers weren't locked down, my own home-generated signature.

I mean, if someone tries to "man in the middle", or maskerade as my website, the trusted stuff will not add any security.

If someone hacks my site, and then maskerades as me (or does their shenanigans) the trusted stuff doesn't add any security there either. They can just use my installed all set up "Trusted tm" certificate until it expires (my home made cert will expire too BTW).

So, for now, I don't see any benefit to this except the trusted entity gets to have control over it all (and earn some money).

I bet there are smarter people than me out there who knows why I'm wrong, hence all the noobie questions.

Cheers!

[–] [email protected] 1 points 4 days ago* (last edited 4 days ago)

I mean, if someone tries to “man in the middle”, or maskerade as my website, the trusted stuff will not add any security.

As long as they can obtain a certificate signed by a trusted signer for your name, you are correct. And you are touching on a real issue here. The number of trusted signers in the browser stores is large, and if only one can be tricked or compromised, then the MitM can generate a certificate your browser would trust just as well as your own original one.

If someone hacks my site [...]

then it's over anyway, yes. The signature on the certificate only validates your TLS key as being one that was properly assigned to the holder of your domain name. Once the endpoint is compromised, TLS doesn't matter anymore.

if the browsers weren’t locked down

Actually maybe they aren't as locked down as you think. To my knowledge you can add your own signing key certificates to your local installation of Firefox, Chrome and the Windows cert storage. In fact there are companies who do this a lot. They Man-in-the-Middle all their employees, with a proxy that does security scanning. For this reason they will deploy their signing keys internally. So the browsers still work. You can use these mechanisms for yourself if you like.

Example documentation: https://support.mozilla.org/en-US/kb/setting-certificate-authorities-firefox

[–] [email protected] 1 points 5 days ago

because if you roll your own root cert, nobody's web browsers will see it as trusted, they all will warn the user that something weird is happening and treat the site as if it was plain HTTP. no lemmy server would federate with it for the same reason.