-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Initial release of Webinterface addon #1379
base: master
Are you sure you want to change the base?
Conversation
This addon offers an alternative way of controlling devices in your home while outside of your home. Even though this addon is nowhere near as powerful as the tunnel system, it could be useful in case the tunnel goes down. Its main focus is privacy: - Distributed. By default the addon uses the Candle webserver as the middleman. But users can run their own server, and it will work on cheap shared hosting. - Anonimity. The server requires no identifiable information from the user (e.g. email address), and does not keep logs. - Control. Outside access can be enabled and disabled at any time, and this can be automated with rules. - Security. No ports need to be opened on the home system. Data is encrypted while in transit.
Any update or feedback on this? |
I'm not through it yet but I already have a couple of thoughts. Why do we need a second tunnel system? You're pointing out that the focus is on security and privacy. There are already instructions in the readme on how to sideload the addon. |
Thanks for taking the time to look into it! I'll try and address your points one by one, and try to explain in more depth how the addon works.
Not really? That requires a serious webserver and serious skills. This can run on shared hosting, and is a drop-in solution.
That's absolutely true, but in this case I don't think it applies. This uses a bog-standard AES solution, nothing custom.
This solution does store data on the webserver, but only sometimes.
So there is almost never data on the server. Further, any data is also deleted as soon as possible. Both the server and client will try to delete any data if it notices the other party it no longer there.
Put simply: if the user is not actually logged in from the outside, then there is no data stored on the server.
This addon has a similar protection, in that the gateway will attempt to decrypt the commands it periodically downloads from the intermediary webserver. Even if the assailant could redirect or has control over the server, that won't help them. If the assailant doesn't have the password, they cannot create valid commands. This is one of those cases where Alice and Bob are the same person, so all the issues with asymetrical key exchange are not a factor here. Replay attacks are also not possible, since the addon checks the timestamp that comes with each downloaded command. This stamp may not be older than 15 seconds. This timestamp is inside the ecrypted payload, so it cannot be changed on the webserver. I would argue that in some ways this addon is more secure than the tunnel system.
Privacy is also stronger, since this solution can be used much more anonymously than the tunnel system. To use the tunnel users must create an account, which involves sharing their email address. They have to agree to a privacy policy. I'm not sure how the tunnel tech works, but I suspect the cloud server needs to be kept informed what the IP address of the gateway is. In contrast, the WebInterface addon collects no personal or even aggregated data, so a privacy policy is not even required. This design also makes it more secure: if someone hacked the intermediary server, there would be no meta-data there that could lead an attacker to figure out who the encrypted data even belongs to. There is no email address sent to / on the webserver, since it's never collected in the first place. All they would have, if they hacked it at the right moment that a user is actually logging in from outside, is an anonymous ID, a hash, and an encrypted string. And perhaps IP address if they want looking in server logs. I would hope that's about the same they would find on the tunnel server (and it may be less). Some smaller arguments that rely on a broader definition of security:
I hope I've been able to explain why this solution is not insecure, and it could be argued that it is more secure. I didn't build this just to handle the corner case that the tunnel was down. I built it because I wanted a solution for outside access that..
Finally, I don't build addons for them to then require side-loading. Information on how to do so in only on Github for beta-testers, and is not intented as a permanent solution. I build addons to give people options. If people don't want to use this addon, then they should not install it. Anyway, I hope this information was useful in explaining how the addon functions, and why I believe it's a valueable option to have. |
It would be nice to have this accepted. We had the whole debate around the idea that the 'community version' of the Gateway should be very accepting to new addons. In this case to support research into new privacy protections for smart homes. |
@createcandle -- I think that if you put that full, long, complete description of how this works in the readme of your add-on, which is linked directly from author name in the gateway add-on list, then it should be acceptable as a general add-on. it's basically this message to the user: "Use this as a choice if you want more privacy and trust the intermediary server". I also like having an alternative approach available since at some point centralized tunneling doesn't scale, it's costing someone we know money to host, and I wonder if it even works at all in China. |
This addon offers an alternative way of controlling devices in your home while outside of your home. Even though this addon is nowhere near as powerful as the tunnel system, it could be useful in case the tunnel goes down.
Its main focus is privacy: