I have a pretty comprehensive instance of openHAB running in my home. I can control my heating, lighting, irrigation and security system. This worries me a little, as if someone gained access to openHAB on my network they would have full control of pretty much everything in my home.
Now I have setup SECURITY=ON for openHAB itself, and create users for myself and my wife, with very strong passwords (a nightmare to type into HABDroid!). I have shut down access to my LAN from the outside using strict firewall rules. And I have setup strict authentication and ACLs for my MQTT broker, including TLS certificates etc.
So I feel I have done as much as I can to secure my network.
However there are a couple of things I would like to do further, to really put my mind at ease. Firstly I think we need some sort of user/role based permissions system. I want to be able to setup a 'house sitter' sitemap for example, and create a 'housesitter' login which I hand out to those who stay while we are away. This would be a restricted view of the house and give them a simplified interface since they don't need to know how many kW of energy were consumed yesterday!
Likewise it would be nice to provide a readonly sitemap which I could hand out to selected friends/family, so they can keep an eye on the house if we are away. I currently do that in fact, but there is nothing stopping them logging into the full sitemap and having complete control of the system.
So having a simple permissions system which controls which sitemaps a user/role is permitted to view would solve these issues. I can't imagine this is that hard to implement but I haven't looked at the code, and I am guessing Kai/Thomas will be wanting to minimise the changes to core whilst the Eclipse Smart Home project gets underway.
The second idea is a little trickier. What I would like to do is add an extra level of security to certain widgets in a sitemap. The idea being that on the 'Disarm Alarm' button fore example I could add a pin number or password. When a user hits that button they are prompted to enter this pin before the action will be completed. The idea being that if my phone was stolen, someone couldn't disarm my security system without knowing that pin.
I realise this is a lot harder to implement since it requires updates to all the various UIs. But I thought I would note it down for reference.
Interested to hear others views on security and openHAB. I think it is a very real issue with smart homes and whilst we have some features already (user/passwords etc) I think we perhaps need to focus a little more energy in this area to make openHAB as robust and secure as possible.
Cheers,
Ben