Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Arduino Due HTTPS Support

Tags:

c

https

arduino

In previous versions of Arduino, the limiting 8-bit microcontroller board, it seems that implementing HTTPS (not merely HTTP) was almost impossible. But the newer version of Arduino Due provides 32-bit ARM core - see spec here.

I tried to check several network libraries (libcurl, openssl, yaSSL), but I didn't find anyone that was already ported to work with Arduino Due.

OpenSSL is probably too heavy to be able to run on this processor, but I believe that yaSSL as an embedded library should be possible to do.

Do you have any information of a library that I can use to trigger HTTPS requests on Arduino Due?

like image 230
Guy Avatar asked Apr 05 '13 09:04

Guy


People also ask

Is the Arduino Due discontinued?

The Due from arduino.cc (the original Arduino group) has been discontinued, but Arduino.org (you can read up on the issues between the . cc and .

How do I connect to Arduino Due?

Connect your board to the computer by attaching the USB cable to the Due's Programming port (this is the port closer to the DC power connector). In the "Tools" menu choose "Serial Port" and select the serial port of the Due. Under the "Tools > Boards" menu select "Arduino Due (Programming port)"

CAN protocol Arduino Due?

A CAN transceiver is a line driver that converts the controller's TTL signal to the actual CAN level, which is a differential voltage. The use of differential voltage contributes to the vast reliability of CAN. Out of cost constraints, boards like the Arduino Due and the mbed LPC1768 have no onboard CAN transceivers.


1 Answers

Unfortunately this is too long for a comment.

No out of the box solution

From what I have gathered, there is no straightforward solution for a webserver running on the Atmel SAM3X8E ARM Cortex-M3 CPU that outputs HTTPS out of the box. Texas Intstruments provides better options at the moment using their boards equipped with a Stellaris Microcontroller ARM Cortex-M3 CPU.

► Alternative

There are several options available that render cryptographic functions, based upon which one could lay out and implement a simple secure communication protocol that communicates with an intermediary device, which in turn facilitates Rapid Application Development and SSL.

This intermediary device, for instance an off-the-shelf 70$ Android smartphone that keeps your project mobile and connected, runs a service on a specified port which in turn communicates with Amazon SQS. Already available. This may sound ugly or tough, but is much easier than doing the programmatic groundwork for a webserver with full TLS 3 support on the Arduino. Given the proper motivation the latter may be easy, but not if one just wants a fast pragmatic solution to one's own project.

Cryptographic libraries

  • crypto-arduino-library http://code.google.com/p/crypto-arduino-library/ (not maintained since 2010)
  • matrixssl
  • mbed TLS (formerly PolarSSL)
  • wolfSSL (formerly CyaSSL)

Discussions

Following is a list of discussions to get you started:

  • HTTPS alternative on Arduino
  • SSL from a Microcontroller
  • Lightweight Packet Encryption

Many of these libraries would still need to be adapted, but community experts can help you with that fairly quickly.

Good luck! If you are at liberty to upload your final project to github then you just gained a thanks and a follower.

like image 179
Lorenz Lo Sauer Avatar answered Sep 21 '22 06:09

Lorenz Lo Sauer