mbedの使いどころはIoT+TLS?

昨日ためしに動かしてみたmbedですが、ArduinoやESP8266と比べてどう使うのがいいのか、まだつかめていません。
mbedのハードウェアはクロックが100MHzクラス、RAMが数十KBと、Arduinoよりも1桁上のレンジですが、Raspberry Piよりも1桁下のレンジです。
mbedならできそうだけどArduinoだと難しい処理、というと、やはりネットワーク系でしょうか。

LPC1768CPU.jpg

Ethernetパケットは1.5KBありますから、Arduinoで扱うのはやや無理があります。
ESP8266は何とかTCP/IPが動作しますが、現時点ではSSL/TLSは古いTLS1.1までしかサポートされていません

AmazonのAWS IoTはTLS1.2を必須としています。
製品寿命がPCよりも長いと予想されるIoTですから、現時点で既に過去のものになっている規格は推奨できないのも頷けます。

Security and Identity for AWS IoT – AWS IoT

その点、mbedOSではARMが買収した「PolarSSL」がmbed用に提供されており、これはTLS1.2をサポートしています

SSL Library mbed TLS / PolarSSL: Download for free or buy a commercial license

つまりセキュリティをちゃんと考えた組み込みシステムのためのプラットホームを選定するなら、mbedは一応HTTPSが安全に使えるらしいので有力候補になりそう、ということです。
(他の候補の筆頭はLinuxになるでしょう。その場合は電力供給が課題になりますが・・・)

ただ、mbedOSのSSLのサンプルを見ると、サポートしているボードは現時点「FRDM-K64F」だけのようです。
mbedOSのページにある例題をLPC1768で試してみたところ、「authcrypt」は動いたものの「benchmark」は動きませんでした。
ですので、mbedならmbed-TLSが必ず使える、というわけではなさそうです。

mbed-os-example-tls/README.md at master · ARMmbed/mbed-os-example-tls · GitHub

結局、趣味でIoTというかネット接続機能があるデバイスを作ろうとすると、セキュリティを考慮するならTLSが必要なのでmbedかRaspberry Pi、そこまでセキュリティは重視しないというのであればお手軽にESP8266、となりそうです。
IntelもGalileoとかEdisonとか出していますが、Galileoは生産終了だしEdisonはちょっと価格がこなれてこないですね。

AppleやGoogleがHTTPSのデフォルト化を強力に推進していますので、世の中はなんとなくそちらへ向かいつつあります。しかし、安かろう悪かろうが勝つ場合もあるのがこの世界ですので、まだまだ予断を許しません。

コメント