技術関連ブログ
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チカ
技術関連ブログ一覧