Internet of Things becomes important industry. Unfortunately, there are big security problems special in home deployed devices like smart locks, baby web cams and more. I recommend you to read book Abusing the Internet of Things. If is end device connected directly to internet you must use encrypted communication like HTTPS. This is simplest think you can do. If you use microcontrollers with limited resources special RAM you can’t use HTTPS.
Azure Event Hub
Azure Event Hub is simple service for IoT telemetry. It can receive telemetry from millions of devices. This is secure end point for your data. Every request must be signed by Shared Access Signature and HTTPS is forced. You will need following information for signature:1. Service Bus namespace (Event Hub is part of Service Bus)
- Security Key name
ESP8266
ESP8266 is SoC combining microcontroller and WiFi with enough resources to use HTTPS. There are many frameworks you can use. I used support for Arduino IDE for PoC because of popularity of Arduino and easy to use.
Libraries
You will need HMAC-SHA256 and base64 libraries to sign your request. Libraries available for Arduino depends on AVR libraries. I changed those libraries to work with NodeMCU.
Conclusion
You can find working PoC in attachment. ESP8266 SoC is very cheap way if you need internet connectivity in your project. It is very easy to program it thanks to Arduino IDE support.
Comments