Earlier quoted context omitted.
Can you describe the kind of person who hosts their own website but cannot easily set up Let's Encrypt automatic renewal?
The whole "Let's Encrypt should solve all your problems" attitude is arrogant and short-sighted. 1) In my experience the user experience even for technical admins is still flakey on at least some popular platforms. In other words, it's not as incredible as you think. 2) It's not available to a host that doesn't connect to the internet but does occasionally get connected to by a local browser (eg. IoT firewalled insid…
Chromium and Mozilla to enforce 1 year validity for TLS certificates
331–340 of 375 posts
Re: Chromium and Mozilla to enforce 1 year validity for TLS certificates
#332Earlier quoted context omitted.
Can you describe the kind of person who hosts their own website but cannot easily set up Let's Encrypt automatic renewal?
Letsencrypt is broken or an incredible pain in so many different setups its not even funny.
If you can’t accept inbound http traffic then you use DNS verification and if you never contact the internet then no public cert could work for you.
Re: Chromium and Mozilla to enforce 1 year validity for TLS certificates
#333Earlier quoted context omitted.
Can you describe the kind of person who hosts their own website but cannot easily set up Let's Encrypt automatic renewal?
Devices with web based interface (KVM over IP, IPMI, etc).
Re: Chromium and Mozilla to enforce 1 year validity for TLS certificates
#334Earlier quoted context omitted.
How is it not practical? It's really not hard to set up and there is great documentation out there
I get the feeling you have no real experience either running a company network or dealing with end users and home networks. Any of these solutions work fine for a majority of people who just use their laptop in Starbucks, but they really break down when you need to start doing anything more complicated than that.
Re: Chromium and Mozilla to enforce 1 year validity for TLS certificates
#335Earlier quoted context omitted.
(Disclaimer: I'm not a security expert). Ideally, I think, something like this: "You're trying to connect to a new device on your local network. To ensure the security please check that the device has a display or a printed label that says 'HTTPS certificate ID: correct horse battery staple couple more random words'?" (mobile devices may suggest to scan a QR code instead). I'm pretty sure if at least one major browse…
It certainly sounds a lot better than simply asking browser vendors to give .local a pass on cert validity. I’m still wary of any flow that would have browser users “accepting” a device as secure - could I impersonate that device on the local network? Could I convince someone to accept a site on the wider internet as their IoT device? Someone smarter than me needs to think hard about these questions. Maybe another ap…
It’s about accepting that communication with the device is secure, not guaranteeing that the device itself is secure. In reality you don’t know if your bank’s servers are secure or if they encrypt passwords properly, etc, but you do know it’s them and your communication isn’t tampered with.
> could I impersonate that device on the local network?
Not readily with a device specific id check and TOFU (trust on first use) similar to SSH. If the device certificate was stored permanently for .local urls like `my-device-23ed.local`, then anyone who tried intercepting or MITM’img that device would have the user receive a message "warning device identity has changed, please check your device is secure ... etc " warning.
Not having any browser support .local certificate or identity "pinning" means that anyone who compromised your network (WiFi psk hacking anyone?) can impersonate a device you’d not know it. Browsers forget self-signed certs regularly, if they let you "pin" the certificate at all. A hacker can intercept the .local url (trivial) and use another self-signed cert. the user’s only real option is to blindly accept it whenever it happens. Then an intruder can MITM the connection to the device all they want. Is your router’s config page really your router? Who knows.
> Could I convince someone to accept a site on the wider internet as their IoT device? Someone smarter than me needs to think hard about these questions.
Any `.local` domain isn’t allowed to have a normal cert or global dns name. They could trick them on first use, but again with a device specific ID on first use it’d make that harder to do. After trust-on-first-use any access afterword wouldn’t be able to be tricked without a explicit warning to the user about changing device identity and that something funny might be happening.
If browsers implemented entering a device specific code as part of the "do you accept this device" on first use, that’d make it a much more usable and secure pattern. It’d standardize the pattern and encourage IoT shops do setup the device id checking properly.
To impersonate a device using .local certificate/identity pinning, a hacker would need physical access to the device to get it’s device id code, then hi-Jack the mdns request with the correct device specific .local address (on first use!), then setup a permanent MITM in order to impersonate a device. Otherwise the user would get a warning. Possible but serious resources required. With physical access you can modify hardware, possibly install a false cert on the user machine, etc, so security in that scenario would be largely compromised already.
Perhaps some IoT devices use custom apps and certificates but many just use http, or self-signed https. In my experience, IoT device makers have little experience with something like creating a CA. Getting users to install it would be a headache. Time is money on those projects and having an entire factory down because they can’t figure out how to install a certificate chain on Windows 7, well, most users will complain loudly. Currently IoT is full on IT-installing-certificate-chains, or no security at all. Many go with none at all therefore.
Therefore the current status quo with browser certificates on .local domains encourages far more security gaps and effectively makes it difficult for non-internet connected device to Operate securely without a fairly expensive and complicated IT setup.
Re: Chromium and Mozilla to enforce 1 year validity for TLS certificates
#336Earlier quoted context omitted.
Not just intercept: Using HTTPS prevents messing with the connection in-flight. So an attacker won't be able to inject their own payload into that web page you just requested.
Except you’re using garbage certificates so anyone could MITM you and inject whatever they like.
Re: Chromium and Mozilla to enforce 1 year validity for TLS certificates
#337Earlier quoted context omitted.
If the browser correctly explained what you were doing, and warned you that this is an attack unless you are in control of the entire network and the machines on it, I don't see the problem.
What would it say? “You’re connecting to an IoT device that has a worthless certificate. Would you like me to open up a completely pointless AES256 session with it and pretend that you have a secure connection?” Just use HTTP.
Re: Chromium and Mozilla to enforce 1 year validity for TLS certificates
#338Earlier quoted context omitted.
It certainly sounds a lot better than simply asking browser vendors to give .local a pass on cert validity. I’m still wary of any flow that would have browser users “accepting” a device as secure - could I impersonate that device on the local network? Could I convince someone to accept a site on the wider internet as their IoT device? Someone smarter than me needs to think hard about these questions. Maybe another ap…
> I’m still wary of any flow that would have browser users “accepting” a device as secure - It’s about accepting that communication with the device is secure, not guaranteeing that the device itself is secure. In reality you don’t know if your bank’s servers are secure or if they encrypt passwords properly, etc, but you do know it’s them and your communication isn’t tampered with. > could I impersonate that device on…
Re: Chromium and Mozilla to enforce 1 year validity for TLS certificates
#339Re: Chromium and Mozilla to enforce 1 year validity for TLS certificates
#340Earlier quoted context omitted.
How do you actually generate a constrained CA certificate? I have tried to do this for a long time but openssl is inscrutable.
There seems to be a guide for openssl here [0] but it seems kinda complicated. This discussion inspired me to add name constraints support to rcgen [2]. If you aren't afraid to write Rust, you should give using it a try. [0] https://www.marcanoonline.com/post/2016/09/restrict-certific... [1] https://tools.ietf.org/html/rfc5280#page-41 [2] https://github.com/est31/rcgen/commit/059cc19fcd1b8bb57feed5...