技術関連ブログ

IoT機器に最適なSTM32マイコンでセキュアなクラウド接続

クラウド・サービスとIoT端末の要件

リモートワークの時代が到来し、誰もが場所を選ばずに仕事を行えるようになりました。日々進化するクラウド・サービスによって、利便性の高いサービスが受けられるようになり、インターネットへの接続環境とIoT端末があれば、どこにいても、どの端末からでも、さまざまな体験を享受することができます。その結果、労力の削減や時短が可能になり、業務の効率化やコストダウンが実現しています。
一方、IoT端末の設計要件は、バッテリ駆動でありながら、長寿命かつデータ処理能力の高さが求められています。さらに、無防備なIoT端末はサイバー攻撃者にとっては、絶好の標的になるため、強固なセキュリティ機能も必須になります。
IoT端末を開発する上で、その中核となるマイコンには、低消費電力化によるバッテリ寿命の向上、高いデータ処理能力、さらにはセキュアなクラウド接続やFUOTA(Firmware Update Over-The-Airファームウェア更新)などが求められています。

STのIoT端末向けマイコン

STでは、IoT端末の要件に適したさまざまなマイコンを提供しています。

図1. STM32ファミリのポートフォリオ

低消費電力に関しては、超低消費電力マイコンのSTM32LおよびSTM32Uシリーズがあります。STM32LにはSTM32L0、STM32L1、STM32L4、STM32L4+およびSTM32L5シリーズがあり、STM32UにはSTM32U5シリーズがあります。特にSTM32L4、STM32L4+、STM32L5およびSTM32U5には、浮動小数点機能(FPU)およびデジタル信号処理機能(DSP)付のArm® Cortex®-M4またはCortex-M33が搭載されており、高いデータ処理能力も実現できます。

セキュリティ機能に関しては、STM32ファミリのほとんどの製品で、次のようなST独自のセキュリティ機能を搭載しています。

  • メモリの読出しおよび書込み保護
  • 内蔵メモリ(RAM、EEPROM、周辺機能のレジスタなど)に関するアクセス保護
  • システムの侵入者を検知するタンパ検知機能
  • デバッグ・アクセスポート遮断
  • 暴走を検知するウォッチドッグタイマ
  • 暗号化エンジン

STM32L5およびSTM32U5には上記の機能に加え、Arm独自のセキュリティ機能TrustZone®を実装したCortex-M33を搭載し、さらなるセキュリティ強度を実現することができます。

図2. 広範なセキュリティ機能

FUOTAとは、IoT端末のファームウェアをWi-Fi®などの無線通信によって配布・更新することです。FUOTAを使えば、ファームウェアの最新版を直接入手してアップデートできますので、利用者の手間が軽減され、更新忘れを防止することができます。
FUOTAを実現するには、ブートローダや内蔵Flashメモリが内部で2面に分かれている必要があります。仮想的に分けても実現することが可能ですが、ハードウェア的に分かれている方が、はるかに便利です。
STM32ファミリには、Flashメモリがハードウェア的に2つに分かれているデュアルバンクFlashメモリを搭載した製品があります。先ほど紹介した超低消費電力マイコンではSTM32L4、STM32L4+、STM32L5およびSTM32U5です。

STM32マイコンの開発環境

STでは、セキュアなクラウド接続を実現するために、次のようなハードウェアとソフトウェアの開発環境を提供しています。

  • IoTノード向けSTM32 Discoveryキット「B-L4S5I-IOT01A」
  • ソフトウェア・ライブラリ(STM32Cube拡張パッケージ)
  • 充実したトレーニング・マニュアル

B-L4S5I-IOT01A

IoTノード向けSTM32 Discoveryキット「B-L4S5I-IOT01A」は、先ほど紹介したSTM32L4+を搭載した「AWS Partner Device Catalog」、「Azure Certified Device Catalog」に認定済みの開発キットです。
B-L4S5I-IOT01Aを使用すると、ユーザはクラウド・サーバに直接接続してアプリケーションを開発できます。低電力マルチリンク通信(Bluetooth®LowEnergy、Wi‑Fi、NFC)、マルチウェイセンシング(動体検出、環境認識)、およびSTM32L4+の機能を活用することにより、幅広いアプリケーションを可能にします。
また、ARDUINO®UnoV3およびPmod™接続は、専用アドオンボードの幅広い選択肢による機能拡張を提供します。
B-L4S5I-IOT01Aには、ST-LINKデバッガ/プログラマが含まれ、「STM32CubeL4 MCUパッケージ」が利用可能です。これには、STM32ファミリのソフトウェアHALライブラリと、クラウド・サーバにシームレスに接続するための様々なソフトウェア・サンプルが含まれています。

図3. STM32L4+ Discovery Kit IoTノード

ソフトウェア・ライブラリ

実際にクラウド接続を開発するためには、メジャー・クラウドに接続できるソフトウェア・パッケージが必要になります。そこで、STでは次の3つのソフトウェア・ライブラリを提供しています。

  • X-CUBE-AWS・・・AWSクラウド接続向けソフトウェア・ライブラリ
  • X-CUBE-AZURE・・・Azureクラウド接続向けソフトウェア・ライブラリ
  • X-CUBE-SBSFU・・・セキュアブートやセキュア・ファームウェア・アップデートを実現するソフトウェア・ライブラリ

X-CUBE-AWS拡張パッケージは、エンド・デバイスとして機能するSTM32L4、STM32L4+およびSTM32H7のライブラリとアプリケーションで構成されています。B-L4S5I-IOT01A Discoveryキットに実装されているInventek社製モジュールを使ってWi-Fi接続を行います。
このソフトウェアは、B-L4S5I-IOT01A Discoveryキットで実行することができます。また、イーサネット接続とデュアルコア・コンピューティングをサポートするNUCLEO-H755ZI-Q STM32 Nucleo-144ボードでも使うことができます。

図4. X-CUBE-AWSのパッケージ・アーキテクチャ

図5. X-CUBE-AWSのセキュリティ・コンセプト

X-CUBE-AZURE拡張パッケージは、エンド・デバイスとして機能するSTM32L4、STM32L4+、STM32F4、およびSTM32F7のライブラリとアプリケーションで構成されています。X-CUBE-AZURE拡張パッケージは、次のプラットフォームで動作します。 B-L475E-IOT01Aおよび32F413HDISCOVERYボードでは、オンボードのInventek社製モジュールでWi-Fi接続を行います。32F769IDISCOVERYボードは、ネイティブ・イーサネット・インタフェースを使用します。 P-L496G-CELL02パックには、セルラー接続用のQuectel社製のBG96モデム(LTE Cat M1 / LTE Cat NB1 / 2Gフォールバック)を搭載したSTM32L496AGI6ベースの低電力ディスカバリ・ボードが搭載されています。B-L475E-IOT01Aボードの場合は、湿度、温度、大気圧の測定値などを遠隔制御で取得可能(テレメータリング)です。

X-CUBE-SBSFUセキュアブート、およびセキュア・ファームウェア・アップデート・ソリューションを使用すると、STM32ファミリの組み込みプログラムを、新しいファームウェア・バージョンでアップデートし、新しい機能を追加して、潜在的な問題を修正できます。アップデート・プロセスは安全な方法で実行され、不正なアップデートやデバイス上の機密データへのアクセスを防ぎます。ファームウェアの更新は、ファームウェア・イメージ全体、またはファームウェア・イメージの一部でのみ実行されます。
B-L475E-IOT01AおよびB-L4S5I-IOT01Aボードで提供されます。

充実したトレーニング・マニュアル

STでは、B-L4S5I-IOT01Aを使って、AWSクラウドへセキュア通信を行うトレーニング用資料を、STの汎用マイコン / マイクロプロセッサ サイトで提供しています。これは、ハンズオン・ウェビナーで使用した資料です。
B-L4S5I-IOT01AとPC(64bit Windows10)と、次に挙げたソフトウェア・ツールを揃えて、この資料に従えば、実際にAWSクラウドへセキュア通信を行うことができます。

ソフトウェア・ツール名
バージョン
リンク
X-CUBE-AWS
2.2.1
FreeRTOS
202002
x-cube-aws 2.2 パッケージに同梱
STM32 CubeIDE
1.9.1
STM32 Cube Programmer
2.10.0
STM32 Cube Monitor
1.4.0
Web Browser(IE、Edge以外)
右記いずれかの
最新バージョン
Tera term
4.105以上

表1. 必要なソフトウェア・ツール

実際の作業は、次の1)→2)→3)手順になります。
1) デバイスとAWSプラットフォームの準備
 1. STM32とSTSAFE-A110の間にペアリングキーをインストール
 2. SBSFUのコンパイル
 3. STSAFE-A110から証明書を抽出
 4. 抽出した証明書をAWSプラットフォームに登録

2) AWS側のセットアップ
   ブラウザからWebインタフェース(GUI)を使用する。
   AWSマルチ・アカウント登録、モノの作成および証明書の登録等を行います。
 1. デバイス証明書はST Generic CAにて署名済
 2. STの工場にて、STSAFE-A110に格納
 3. OEMは個々のデバイス証明書を読み取る ST Generic CA Certを使用してデバイス証明書を検証可能(オプション)
 4. OEMアカウントへのシングル・デバイス証明書の登録
   デバイス・クラウドのIDやポリシーなどを設定
   このプロセスは、スクリプトを使用して自動化が可能
 5. AWSがデバイス証明書を受け取り、登録されていれば通信を開始

図6. AWS マルチ・アカウント登録

3)センサ・データをクラウドに送信して可視化   
  センサ・デモは、AWS標準デモを拡張し、ボード固有の機能(センサやLED)を制御します。    
  また、AWS標準デモのネットワーク初期化機能(Wi-Fi初期化など)を利用しています。
 1. デバイスからクラウドへの通信:センサ・データをAWSクラウドに送信し、シンプルなダッシュボードを使用して
   データを可視化する。
 2. クラウドからデバイスへの通信:AWS Device Shadowを使用してクラウドから周辺機器(LED)を制御する。
   LEDコントロール = Lチカ:AWSの”テスト”で、ボード上のLEDの制御を行う。

プロジェクトを上書きすることにより、以下のセンサのサポートと、LEDのコントロールが追加されます。
・湿度センサ ・温度センサ ・圧力センサ ・マグネット・センサ
・ジャイロ・センサ ・加速度センサ ・近接センサ
・LEDコントロール = Lチカ

技術関連ブログ一覧