crossbario / autobahn-c

Apache License 2.0
14 stars 5 forks source link

Target HW Platforms #9

Open oberstet opened 7 years ago

oberstet commented 7 years ago

AutobahnC initially has two target SoC platforms:



Dump from research:

FreeRTOS

lwIP

http://lwip.wikia.com/wiki/LwIP_Wiki

http://savannah.nongnu.org/projects/lwip/
http://www.nongnu.org/lwip/2_0_x/index.html

mbedTLS

https://tls.mbed.org/
https://github.com/ARMmbed/mbedtls

formerly PolarSSL! they bought it:

https://community.arm.com/iot/b/blog/posts/polarssl-is-dead-long-live-mbed-tls

they relicensed under Apache 2.0 (formerly GPL)

support TLS 1.2 with ECDHE-RSA, AES-GCM, SHA-384!
supports EC crypto with both NIST and Brainpool curves!

https://tls.mbed.org/core-features
https://tls.mbed.org/supported-ssl-ciphersuites

Perfect: TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384

it can be easily integrated into an event/callback based network stack (like lwIP)

https://tls.mbed.org/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS

in particular:

mbedtls_ssl_set_bio()
https://tls.mbed.org/api/ssl_8h.html#a8b7442420aef7f1a76fa8c5336362f9e

Espressif ESP-WROOM-32

https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf

http://esp32.net/

https://github.com/espressif/esp-idf

http://esp-idf.readthedocs.io/en/latest/

https://www.soselectronic.de/products/espressif/esp-wroom-32-234033

The operating system chosen for ESP32 is freeRTOS with LWIP; TLS 1.2 with hardware acceleration is built in as
well.

https://www.pycom.io/product-category/shop/oem-products/

https://www.pycom.io/product/w01/
https://www.pycom.io/product/g01/

https://www.pycom.io/wp-content/uploads/2016/12/g01Specsheet.pdf

https://pypi.python.org/pypi/micropython-uasyncio.core
https://github.com/micropython/micropython-lib/tree/master/uasyncio

http://www.gemalto.com/m2m/solutions/modules-terminals/industrial/ems31

LTE Category M1 ("LTE Cat M1") and M2 ("NB-IoT")

https://www.qualcomm.com/media/documents/files/paving-the-path-to-narrowband-5g-with-lte-iot.pdf

https://www.pycom.io/
https://www.pycom.io/product/w01/
https://www.pycom.io/wp-content/uploads/2016/12/w01Specsheet.pdf
https://docs.pycom.io/pycom_esp32/_downloads/wipy2SpecsheetGraffiti.pdf

Cellular IoT Solutions

Altair Semi. ALT1250/ALT1910

https://altair-semi.com/press-releases/altair-introduces-alt1250-advanced-integrated-narrowband-cat-m1-nb1-cellular-iot-chip/
http://altair-semi.com/products/alt1250/
http://altair-semi.com/wp-content/uploads/2017/02/Altair-ALT1250-Product-Brochure.pdf

Altair ist eine israelische Fabless Chipdesign Schmiede die im Beseitz von Sony ist.

https://www.kickstarter.com/projects/1795343078/fipy-the-worlds-first-5-network-iot-dev-board
oberstet commented 7 years ago

More dev boards / projects:

oberstet commented 7 years ago

ESP32 modules:

https://www.alibaba.com/product-detail/Wireless-Transceiver-IC-chips-ESP32_60642601445.html

oberstet commented 7 years ago

https://www.wolfssl.com/wolfSSL/Home.html

Evidlo commented 7 years ago

I'm very interested in seeing autobahn available in Micropython (which would imply a C implementation).

It's probably also worth mentioning that there is an MQTT lib for micropython available.

oberstet commented 7 years ago

https://mcuoneclipse.com/2017/04/17/tutorial-secure-tls-communication-with-mqtt-using-mbedtls-on-top-of-lwip/

oberstet commented 6 years ago
codelectron commented 5 years ago

New wifi hardware - STM32F205 https://www.adafruit.com/product/3056 https://community.cypress.com/docs/DOC-1168

oberstet commented 5 years ago

@codelectron what we want is running the TLS stack on the MCU so we can use a good TLS implementation built from source. as far as I see (not sure though .. I looked 15s), above is the same as many "wifi on a chip" solutions: it runs the TLS on the wifi thing, not the MCU. this sucks. I don't trust it .. it likely has incomplete/broken TLS, and it is closed source / black box - no way I am going to use that for TLS

codelectron commented 5 years ago

@oberstet I understand what you mean, I researched about the board a bit more and it seems it is already using the mbed TLS library - https://community.cypress.com/thread/5138 . Additionally WolfSSL is also supported https://github.com/wolfSSL/wolfssl/issues/1266 .

oberstet commented 5 years ago

mbed TLS is good! but ideally not on an 2nd MCU (where it is "~closed source" or at least requires a full 2nd dev env), but on the main MCU. this "wifi + tls on a 2nd chip" approach: not really convinced;)

eg STM makes MCUs that allow full TLS on-MCU (eg mbed TLS) and have Ethernet. however, not Wifi as far as I know. which is a problem. also, not sure if there is a single-MCU that can run TLS and has Wifi and has a OSS Wifi stack

and finally: ideally we'd want TLS v1.3

neither mbed TLS nor WICED goes beyond v1.2:

https://tls.mbed.org/core-features https://community.cypress.com/docs/DOC-1168

summary: I don't have a perfect answer too;)