Skip to main content


I am amazed that Let's Encrypt has been around for 10 years.

I have used it for many years, but certainly not 10.

I still want to find time to deploy my own CA, but for most external-facing things, I just use Let's Encrypt, and I'm very pleased to be able to do so.

reshared this

in reply to Neil Brown

@Neil Brown I just wish there was was a way to do your own CA and limit it to a single domain... I'd love to just have https on the internal domain but not be opening a security risk of that CA being used against other sites.
in reply to Shiri Bailem

@shiri Interesting! Yes, that would be a further mitigation against loss of control of the private key, I guess?
in reply to Neil Brown

@Neil Brown precisely, it's one of many things I'd love to see implemented in current standards... a restricted ca that explicitly limits how it can be applied. (it's right up there with me thinking there should be a static encryption standard as a companion to https)
in reply to Shiri Bailem

@Neil Brown just for fun, my rant on static https: foggyminds.com/display/c6ef095…


Randomly thinking about small protocols or protocol changes that I think should exist.

Prime example is Static HTTPS:
I think there should be a companion protocol to HTTPS for handling static requests. This would be great for caching, general performance, and even saving storage/bandwidth on things like ActivityPub.

The gist of it is that HTTPS uses a static set of keys to negotiate a dynamic set of keys and dynamically encrypts your entire conversation with the server. It's impossible to do any sort of caching on HTTPS without decrypting it first, but also there's no way to make it unique either without things like php sessions (requiring logins or backchannel confirmations).

How this would work, using the existing HTTPS keys, a request would be made similar to HTTP where the connection itself is unencrypted, but the host/url will specifically be encrypted and the payload of the data sent in return will be encrypted. If you were to cache it the same encrypted request will net the same encrypted data (unless the file behind it gets updated of course). If headers must be added then those can be encrypted separately as well, but also support unencrypted where not necessary... everything would be avoiding using headers in general for this, especially as the files are static.

(Optionally the html could also include a key explicitly for that file)

This means that anything in the middle can cache data without necessarily knowing anything about it. Meaning that something like Cloudflare could provide caching for an HTTPS website without also having to have the key.

Obviously in less secure cases where it doesn't include a special key in the html it will mean that if someone knows what site you're accessing (often an easy guess from IP unless it's something like a cloudflare protected site) they can potentially identify the file by matching to their own browsing... but these should be unimportant files anyways (ie. the google logo, css style sheets, etc), even if visible they'll be effectively signed and you'll know the site wasn't tampered with in transit.

But the really special case shines in things like the fediverse where when I make a followers-only post with a picture attached... right now either the picture is relying on obscurity (publically visible if you know the address) or it has to be embedded in the post as it's sent to the recipient.

This protocol would mean that the html of the post could include the key to the file. The receiving server wouldn't even need to support this protocol or have any change at all in ActivityPub standard to show this image, but the image would still be visible to the recipient so long as their browser or client supported it.

Example:
<a href="shttps://foggyminds.com/images/123456" key="101010101">
(obviously the key would be much longer usually)

A backwards compatible call when privacy isn't a concern (ie. google logo):
<a href="https://foggyminds.com/images/123456" shttps=1>
(Browser with no shttps support would use https normally, but one with that support would see the shttps=1 on there and change the protocol automatically)

#nerd #rant #protocols #https #webdev #http #ssl #web


reshared this

in reply to Shiri Bailem

The phrase you're looking for is "Name Constraints", aka RFC5280. Lets you limit the CA to a single domain and subdomains under it.
in reply to Neil Brown

@Neil Brown I constantly feel like LE was vandalism against the security of the internet. Just keeping the incredibly dangerous and bad CA system around on life support and removing all the energy that had been built by the Verisign hack to replace it.
in reply to silverwizard

@silverwizard within the framework of the current approach, LE turned money for old rope into an easy to deploy, automatable, free convenience, IMHO.

Would it be ideal to change the system? Yes!

in reply to Neil Brown

@Neil Brown Yeah, saved the dying system, but I just can't considered it good, and am constantly surprised others do. (I'm not trying to tell you to hate it, but ya know, strong opinions, internet)
in reply to silverwizard

@silverwizard @Neil Brown has anyone actually established a better system really?

Not going to argue that LE doesn't have it's problems, or even just the underlying SSL system in general.

LE thanks to ease and being free without much "competition" it has the crucial problem of hosting far too high a proportion of the the certs for the whole internet.

SSL in general has the problem of CAs getting hacked and issuing fraudulent certs.

Only improvement I can think of in that security at all is maybe double-certified certificates? (require you to go through two wholly separate providers with the same key to have a valid key and requiring both to sign for any updates to go through and maybe a certificate chain for whenever it changes hands)

Beyond that it's always a cludge, people aren't going to check them themselves, they're not going to manage certificates themselves... so you just have a preauthed group of keys installed in your system, trust them to be above board, and then trust the providers of those keys to be above board. Honestly shocked we haven't had more issues, but that's kinda how security goes.

in reply to silverwizard

@silverwizard @Neil Brown nah, just "DANE" is kinda also a word and most people are still using google to search so lord knows where they end up