>> ARDUINO WIFISHIELD101 - AVAILABLE, BUT IS IT READY?
Security has been a hot topic for IoT - but sometimes things can be released
too early.
I reported on the
announcement of the
Arduino WiFiShield 101
a while ago but after a year of waiting; the device has been released to
the market and as such retiring the existing
WiFiShield.
Has it's introduction been a stunning hit or has it been a massive flop -
one way to find out is the review the
forums
to see the teething issues popping up and how they are being responded to.
The good news is that the
WiFi101
library is 1:1 matching the existing WiFi library so that will make
transition of existing code quite easy; just a matter of changing the
header file being included in the start of the sketch to WiFi101.h
instead of WiFi.h.
As for changes; there is now support for connecting to WPA2 Enterprise WiFi
networks and the inclusion of a new function, connectSSL that has
been provided to allow for HTTPS connections at both an IP and URL level on
a specific port. The
documentation
of the function contains something that raised my eye brows and needs clarification:
Say what - one must upload the servers SSL certificates to the shield in advance?
Tim over on the Arduino forums posted a
question
about this where he states he can connect to the arduino.cc:443 domain
as shown in the example but not his own website. After a month; the question
doesn't seem to be answered so it does raise some concerns - also, the procedure
to upload a new SSL certificate isn't available yet; so how useful is the
shield right now?
Another community member raises the
concern
about the amount of space the WiFi101 library uses - just a very basic
setup where the scan for network stage is met and it uses 59% of the
available flash on the Arduino UNO, not leaving much for doing anything else.
It would be interesting to know exactly what level of transport layer security
is actually supported - given the limited memory of the devices processing
a X.509 certificate is quite difficult on the low powered devices. One user
has outlined the various
methods
(basics shown below) behind SSL/TLS - it looks like the library may only
support RSA key exchange where the client encrypts 48 bytes (46 random)
with the servers public key and there is no ServerKeyExchange.
I will keep an eye on the discussion and watch how the documentation
gets updated - but I think there needs to be a little clarification on
how the shield actually works and what level of TLS is supported before
one dives in and purchases these for production. It looks like it needs a
little move love to mature before being ready for the market.