hi guys:
I am doing some research about using HTTPS on Arduino. Does anyone know the material that can help me with HTTPS on Arduino.
Some reading material.
USVnut:
hi guys:
I am doing some research about using HTTPS on Arduino. Does anyone know the material that can help me with HTTPS on Arduino.
When you say "research", are you investigating the question "Can an Arduino do https?", or the questions "Why can't an Arduino do https?"
The short answer to the first question is "no", and the slightly longer answer to the second is "because it lacks the computational resources to run cryptographic libraries such as OpenSSL".
Something like an Arduino Uno, running at 16MHz with 2K ram and 32KB program memory, has no chance. The code footprint of even a radically slimmed down OpenSSL implementation runs at about 1MB, for example. Even moving up the foodchain to the next level, like the Due, is still way under-resourced for the computational power required to run an https session.
You really need to start getting to something like a Raspberry Pi class device to have the resources to comfortably implement a secure sockets layer. But consider that a Raspberry Pi with an 4GB SD Card has about 125,000 times as much program memory, 256,000 times as much ram as an Uno, and its 32-bit CPU is clocked at 700-1000MHz, compared to an 8-bit core running at 16MHz for an Uno.
So the only practical way for an Uno class device to access https URLs is via a proxy server arrangement of some kind; the Arduino connects to a SSL/TLS capable server, which does the actual heavy-lifting connecting to the secure https, and serves the data to the Arduino using something like a lightweight http connection. It's how I do it with the RFXduino gateway system for Arduinos, for example, which uses a Raspberry Pi as the server; but in principle it can be done using a great variety of more powerful computers as proxy servers. But you need a proxy in the middle somewhere.