IoT機器へのサイバー攻撃は2026年現在も増加の一途。セキュリティ未対策のIoTデバイスがボットネットや産業スパイの踏み台になるケースが急増しています。本記事ではSTMicroelectronicsのSTM32とAWS IoT Coreを組み合わせたデバイス認証・暗号化の実装を、コードを交えて解説します。

🔐 IoTセキュリティの3大脅威と対策
デフォルトパスワードや認証なしのデバイスが標的に。X.509証明書ベースの相互認証(mTLS)を実装することで、正規デバイスのみがクラウドに接続できる。
平文通信のIoTデバイスは中間者攻撃に脆弱。TLS 1.3による暗号化通信とメッセージ署名(HMAC-SHA256)が必須。
未検証のファームウェアを実行させるFirmware Injection攻撃。セキュアブート+コード署名検証でROM上から改ざんを防止。
🛡️ STM32 + AWS IoT Core:デバイス認証実装
AWS IoT CoreはX.509証明書を使ったデバイス認証をサポート。STM32にmbedTLSを組み込み、AWSのルートCA証明書・デバイス証明書・秘密鍵を書き込む実装手順を示します。
#include “mbedtls/ssl.h”
#include “mbedtls/entropy.h”
#include “mbedtls/ctr_drbg.h”
// 証明書をROMに配置(セキュアエレメント推奨)
extern const uint8_t aws_root_ca[];
extern const uint8_t device_cert[];
extern const uint8_t device_key[];
void iot_connect(void) {
mbedtls_ssl_context ssl;
mbedtls_ssl_config conf;
mbedtls_x509_crt ca_cert, cli_cert;
mbedtls_pk_context key;
// 証明書ロード・TLS設定・MQTT接続処理
}
秘密鍵の保護にはSTM32のTFM(Trusted Firmware-M)またはST33外付けセキュアエレメントを使用し、鍵をメモリから分離することを強く推奨します。
🔑 セキュアブート実装のポイント
| 項目 | 実装方法 | 効果 |
|---|---|---|
| ブートローダー署名検証 | RSA-2048 / ECDSA-P256 | 改ざんFWの起動を阻止 |
| ルートオブトラスト | OTP(One-Time Programmable)に公開鍵ハッシュ | 鍵の改ざん不可 |
| ロールバック防止 | バージョンカウンタをOTPに記録 | 脆弱な旧FWへの降格防止 |
| TrustZone活用 | Cortex-M33以上で有効化 | セキュア/ノンセキュア分離 |

📋 IoTセキュリティ設計チェックリスト
✅ デバイスごとにユニークな証明書・鍵を発行(共有鍵はNG)
✅ TLS 1.2以上を使用・TLS 1.0/1.1は無効化
✅ MQTTトピック権限を最小化(Least Privilege)
✅ OTAアップデート時の署名検証を実装
✅ 不要なデバッグポート(JTAG/SWD)を製品版で無効化
✅ ハードコードされたパスワード・鍵は絶対に禁止
📚 IoTセキュリティ学習書籍・リファレンス
📖 IoTセキュリティ・TLS実装書籍を探す
🔧 STM32・AWS IoT開発書籍を見る

❓ よくある質問 Q&A
PSA Certifiedとは何ですか?
Arm主導のIoTセキュリティ認証プログラムです。STM32L5・U5シリーズはPSA Certified Level 2以上を取得しており、TrustZone・セキュアブートが評価済み。医療・産業・家電など規制産業では取得が事実上必須になりつつあります。
mbedTLSとWolfSSLどちらを選ぶべきですか?
mbedTLS(現Mbed TLS)はArmが主導しSTM32との親和性が高く、フリーのApache 2.0ライセンス。WolfSSLはコードサイズが小さく組み込み最適化が優秀で有償サポートあり。商用製品ではWolfSSL、プロトタイプや研究目的ではmbedTLSが多い傾向です。
セキュリティ対応でコストはどれくらいかかりますか?
STM32+mbedTLSのソフトウェア実装は追加コスト最小。セキュアエレメント(ATECC608等)を追加する場合は部品代1〜3ドル/台程度。PSA認証取得は数百万円単位のコストですが、規制産業向け製品では必須投資と考えるべきです。
