Giter Site home page Giter Site logo

howsmyssl's Introduction

Comparing Arduino TLS Stacks

https://www.howsmyssl.com/ returns helpful information about a TLS client such as TLS version number and possible security issues. The rating "Probably Okay" is the highest possible rating.

howsmyssl has a REST API that returns a JSON string instead of HTML. The Arduino program howsmyssl.ino uses this API and prints the results on the serial console.

The following table summarizes the results. None of the boards received the "Bad" rating. Four received the "Probably Okay" rating.

See the files such as esp32.txt and mkr1010.txt for the full listing of cipher suites.

Board TLS Version Rating Ephemeral keys supported Session ticket supported TLS compression supported Unknown cipher suite supported Beast vuln Able to detect n minus one splitting
mkr1010 TLS 1.2 Probably Okay 1 1 0 0 0 0
feather_wifi101 TLS 1.2 Probably Okay 1 0 0 0 0 0
esp32 TLS 1.2 Probably Okay 1 1 0 0 0 0
esp8266_bearssl TLS 1.2 Probably Okay 1 0 0 0 0 0
esp8266_bearssl_basic TLS 1.2 Improvable 0 0 0 0 0 0
esp8266_axtls TLS 1.2 Improvable 0 0 0 0 0 0
due_airlift TLS 1.2 Probably Okay 1 1 0 0 0 0

MKR WiFi1010 uses an ESP32 running WiFiNINA firmware so it is not surprising to see it has similar TLS characteristics as an ESP32 Arduino. One difference is the ESP32 enables cipher suites with PSK (Pre-Shared Keys). This is not a security problem but neither Chromium nor Firefox support TLS-PSK.

The default ESP8266 Bear SSL uses a full set of cipher suites similar to ESP32/WiFiNINA including Elliptic Curve and Ephemeral keys. The basic options supports the same cipher suites as the ESP8266 with AXTLS (no Elliptic Curve and no Ephemeral keys).

ESP8266 AXTLS and Bear SSL basic receive the "Improvable" rating probably because they does not support Ephemeral Keys.

ESP8266 AXTLS was run using ESP8266 Arduino Board package 2.4.2. The ESP8266 BearSSL tests were run with package 2.5.2.

The source code howsmyssl.ino handles all TLS stacks but at the cost of a lot of #if conditionals. All cases use root CA certificate authentication. SHA1 fingerprint authentication is not safe and requires frequent updates.

The Adafruit Airlift shield (ESP32 running WiFiNINA firmware) works fine on an Arduino Due. It has the same rating and cipher suites as the MKR WiFi 1010. The limited RAM on Uno and Mega limit the usefulness shield but I can confirm it works on Mega 2560.

The root CA certificate is included in the source code for the ESP32 and ESP8266. The root CA certificate for the WiFi1010 (WiFiNINA) and ATWINC1500 (WiFi101)and must be loaded using the WiFi101/WiFiNINA Firmware/Certificates Updater. The Adafruit Airlift has pre-loaded root certs that work for the three examples.

Library Dependencies

All can be installed using the IDE library manager.

ArduinoJson, WiFiNINA, WiFi101

howsmyssl's People

Contributors

gdsports avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

ezhangle

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.