IoT or Internet of Things is a real hype nowadays. Everybody is talking about it and everybody is doing it. Especially companies producing various electronic devices like light bulbs, electric switches, thermometers, scales, CCTV and such. Everything can be smart – even your toilet. All you need to do is to measure something or replace the manual switch with electronic one and connect it to Bluetooth, Zigbee, ZWave or even WiFi and you have a smart device that people will pay a hefty price for. But there are some issues (apart from the obvious one that not all those devices make sense).
Those companies producing now smart devices typically know how to do great hardware. They have plenty of experience doing so, they did it for decades and they take pride in what they do. Now they are still doing the hardware but they need to touch software a little bit as well. How hard that can be? Well, here is the chip, it has WiFi on it, let’s plug it in, here is the nice web service that looks like doing roughly what do we want, let’s talk to those guys, let’s connect it together and software problem solved, let’s get back to the important part – the hardware.
Problem with this approach is that the software industry has been around for decades as well. We learned that security shouldn’t be underestimated. What was considered secure ten years ago is highly vulnerable nowadays. Keeping software up to date is crucial for security. Also, privacy is something even average users are more and more concerned nowadays, so sending personal data to some third-party service raises few eyebrows.
Mozilla to the rescue
Seeing the state IoT world is in – insecure chaos where devices can’t talk to each other in any other way except via several clouds, Mozilla decided to attempt to help the world and fix the current situation. Problems with IoT that I stated in the previous part are incompatibility – lack of standardized API and security/privacy – your personal data are sent who knows where in insecure manner.
To address those issues, Mozilla created a Web Thing API trying to create unified API and abstraction layer covering various IoT devices. If the proprietary gateways/devices/clouds joined, the cooperation between devices across vendors could be much simpler. And it would open up space for other parties to create services using that API – some smart home management applications and such. That would also help with the other problem – security/privacy. We could get secure services, maybe even ones running on premises and keeping data data locally and encrypted. If you have a software controlling all the data from your smart home located physically at home at some secure device, your attack surface is much smaller. Yes, without automatic updates individual devices are still locally exploitable, but the attacker has to get physically to your neighborhood first to try some attack.
What Mozilla did is that they took the effort even further. They created that application as well. Application that will take in all the data from IoT devices, collect it, display it and let you control those devices. Display them nicely on top of your floor plan, create a secure tunnel to access your gateway from around the world and more. User-friendly, but at your home.
Turris enters the mix
Now what part Turris plays in this effort? Mozilla did plenty of interesting and useful stuff. But in the end, the software has to run somewhere. Turris Omnia is a router that features automatic updates, other security measures like distributed adaptive firewall and honeypots and is also completely open. Not mentioning the performance. It is a nice fit with Mozilla philosophically but also from the practical point of view. We make it really easy to create your own software running on your router and to generally customize what the router actually does.
And Mozilla did exactly that. They took our OS, integrated their gateway and built a custom image with everything integrated. That is one of the great advantages of being open – enabling people to solve the issues that are important to them.
Obviously, we prefer cooperation where package could be nicely integrated into distribution and UI coexisting with the rest of the stuff we are providing. That is something we are working on with Mozilla, but with the tools we provide, they have it really easy to create their own releases using the latest and greatest from both projects.
One last warning, although it is easy to do, we do not officially support other OS on our device as with third party software we can’t guarantee compliance with all the regulation and also you might install something that heavily wears down the internal flash memory (like databases and other IO intensive applications). So think twice before you decide to install third party software.