Let’s stop punishing IoT devices that embrace HTTPS
neosmart.net
neosmart.net
If anything I would say that a solution would be for browsers to adopt the following changes.
1) Make HTTP plaintext show the warning you currently get with a self signed cert (ie: warning of death)
2) Make HTTPS self-signed show a "not secure" warning in the address bar (currently what happens on HTTP plaintext) with more info available on a click
3) Standard CA signed HTTPS has no changes
If it's the latter, all that stands between an active MitM and my paypal.com credentials is a non-blocking "Not Secure" indicator in the address bar. That's not really acceptable.
1) Identity of the server
2) If the connection to the server is encrypted or not
would be a good idea in modern browsers. Because the article is completely correct, everything as it is right now essentially disincentives anyone producing IoT or any other kinds of consumer based lan devices from using https.
If I can request an SSL cert for a private IP address, how does the CA verify it? Even if they do verify it, what prevents me from using it for malicious purposes on other networks (MITM https://192.168.0.1 with a valid cert or similar)?
For enterprises you can run your own CA, push out the trusted root with Group Policy (or equivalent), so it's not a issue there.
IoT vendors should definitely use HTTPS, but document how to generate a self-signed cert (or generate a request) from their own proprietary interface and how to install it. This would fix the problem.
The argument is that self-signed certificates on internal-only IPs aren't any less secure than plain HTTP.
In this case he makes no reference to hostnames, but short hostnames (not fully qualified) are a similar case. I believe they should still display a warning, but perhaps adjust the wording. SSL certs are not just useful for validation (domain validation, exstended validation) but also for fingerprinting. Self-signed certs are not a security risk provided you confirm it has the expected fingerprint and/or install it so it appears in browser as validated.
No need to change DNS A/AAAA records, have it point to an internal IP from day one and use ACME's DNS challenge to get the cert. I'll readily admit this doesn't solve the underlying problem though, and you'd presumably end up re-using the same cert on all IoT devices too which isn't ideal (a unique self-signed cert would be much better here!)
The same reason you use HTTPS for anything else. If I can get on your WiFi network and you're using HTTP to access local servers (say your NAS) I can inject resources or capture your traffic.
> If you want to expose an IoT device to the internet (assuming you can deal with the NAT barrier), why not use a domain name like for any other server?
Many people do this, but it requires that your router supports hairpinning/NAT loopback and also that you know the option is there... many consumers and their routers do not.
Since it is decidedly not TLS, we should call that protocol something else. HTTPC perhaps then use SSH protocol on the outside with HTTP on the inside. Port 223/TCP.
You're falling for the same false dichotomy browser vendors have fallen for. There are two, disjoint factors: encryption and authentication. HTTPS provides encryption and recognized CAs provide authentication. HTTP provides neither. The encryption is most definitely NOT an illusion, it's real and it's working. But perhaps you meant to say "your security is but an illusion," which is a very different statement.