適用対象: IoT Edge 1.5
重要
IoT Edge 1.5 LTS は、サポートされているリリースです。 IoT Edge 1.4 LTS は、2024 年 11 月 12 日をもってサポートが終了しています。 以前のリリースの場合は、「IoT Edge を更新する」を参照してください。
Azure IoT Edge セキュリティ マネージャーは、セキュリティで保護されたシリコン ハードウェアを抽象化することによって IoT Edge デバイスとそのコンポーネントを保護する、適切な境界付きセキュリティ コアです。 セキュリティ マネージャーは、セキュリティ強化に重点を置き、OEM (Oem) にテクノロジ統合ポイントを提供します。
セキュリティ マネージャーは、IoT Edge デバイス上のセキュリティで保護されたシリコン ハードウェアを抽象化し、追加のセキュリティ サービスのための拡張性フレームワークを提供します。
IoT Edge セキュリティ マネージャーは、IoT Edge デバイスとそのソフトウェア操作の整合性を保護します。 セキュリティ マネージャーは、基になる信頼のハードウェア ルート ハードウェア (ある場合) から信頼を移行して、IoT Edge ランタイムをブートストラップし、進行中の操作を監視します。 IoT Edge セキュリティ マネージャーは、セキュリティで保護されたシリコン ハードウェア (使用可能な場合) と連携して、可能な限り最高のセキュリティ保証を提供します。
IoT Edge セキュリティ マネージャーは、ホスト レベルのモジュールを介してセキュリティ サービス拡張機能用の安全なフレームワークも提供します。 これらのサービスには、一部のデバイス コンポーネントへの特権アクセス権を持つデバイス内のエージェントを必要とするセキュリティ監視と更新が含まれます。 拡張性フレームワークにより、これらの統合によってシステム全体のセキュリティが常に維持されます。
IoT Edge セキュリティ マネージャーは、次のようなタスクを担当します。
- Azure IoT Edge デバイスの初期設定
- 公証人サービスを使用して、信頼のデバイス ハードウェア ルートへのアクセスを制御する
- 実行時に IoT Edge 操作の整合性を監視する
- デバイス ID をプロビジョニングし、必要に応じて信頼の移行を管理する
- Device Update for IoT Hub や Microsoft Defender for IoT などのサービスのクライアント エージェントが安全に実行されていることを確認する
IoT Edge セキュリティ マネージャーには、次の 3 つのコンポーネントがあります。
- IoT Edge モジュール ランタイム
- PKCS#11 やトラステッド プラットフォーム モジュール (TPM) などの標準実装によるハードウェア セキュリティ モジュール (HSM) の抽象化
- ハードウェア シリコン ルート オブ トラストまたは HSM(任意ですが、強く推奨します)
バージョン 1.2 以降の変更点
バージョン 1.0 および 1.1 の IoT Edge では、セキュリティ デーモンと呼ばれるコンポーネントによって 、セキュリティ マネージャーの論理セキュリティ操作が管理されます。 バージョン 1.2 では、いくつかの重要な責任が Azure IoT Identity Service セキュリティ サブシステムに移行します。 これらのセキュリティ タスクがセキュリティ デーモンから移動した後、その名前がそのロールに適合しません。 このコンポーネントがバージョン 1.2 以降で実行する内容をよりよく反映するために、 モジュール ランタイムに名前が変更されます。
IoT Edge モジュール ランタイム
IoT Edge モジュール ランタイムは、IoT Edge コンテナーのランタイム環境を保護するために、Azure IoT ID サービス セキュリティ サブシステムから信頼を委任します。 現在、Azure IoT ID サービスに委任されているサービスの 1 つが、EST サーバーを介した証明書の自動登録および更新サービスです。 この仕組みを確認し、IoT Edge デバイス用に作成されたサンプル EST サーバーを作成するには、チュートリアルの「Azure IoT Edge 用の Secure Transport Server 経由の登録を構成する」を試してみてください。
モジュール ランタイムは、セキュリティ マネージャーの論理的なセキュリティ操作を担当します。 これは、IoT Edge デバイスの信頼できるコンピューティング ベースの重要な部分を表します。 モジュール ランタイムは IoT ID サービスのセキュリティ サービスを使用し、これがさらに、デバイスの製造元のハードウェア セキュリティ モジュール (HSM) の選択によってセキュリティ強化されます。 デバイスのセキュリティ強化には HSM の使用を強くお勧めします。
設計原則
IoT Edge は、動作の整合性の最大化と、肥大化およびチャーンの最小化という 2 つの中核の原則に従います。
動作の整合性を最大にする
IoT Edge モジュール ランタイムは、いずれか特定の信頼のルート ハードウェアの防御機能内で、考えられる最も高い整合性で動作します。 適切な統合により、信頼のルート ハードウェアは、静的および実行時にセキュリティ デーモンを測定および監視して改ざんを防ぎます。
デバイスへの悪意のある物理的なアクセスは、常に IoT での脅威です。 信頼のハードウェア ルートは、IoT Edge デバイスの整合性の防御において重要な役割を果たします。 信頼のハードウェア ルートには、次の 2 種類があります。
- シークレットや暗号化キーなどの、機密情報の保護のためのセキュリティで保護された要素。
- キーなどのシークレット、または機密の機械学習モデルや測定操作などの機密性の高いワークロードの保護のためのセキュリティで保護されたエンクレーブ。
信頼のハードウェア ルートを利用するために、次の 2 種類の実行環境があります。
- 機密情報の保護をセキュリティで保護された要素の使用に依存する標準またはリッチ実行環境 (REE)。
- 機密情報の保護およびソフトウェア実行に対する保護の提供をセキュリティで保護されたエンクレーブ テクノロジの使用に依存する、信頼できる実行環境 (TEE)。
信頼のハードウェア ルートとしてセキュリティで保護されたエンクレーブを使用するデバイスの場合、IoT Edge モジュール ランタイム内の機密性の高いロジックはエンクレーブ内に存在する必要があります。 モジュール ランタイムの機密性の低い部分は、TEE の外部に存在できます。 いずれの場合も、相手先ブランド設計製造 (ODM) や相手先ブランド製造 (OEM) では、その HSM の信頼を拡張して、起動時と実行時に IoT Edge モジュール ランタイムの整合性を測定して防御することを強くお勧めします。
肥大化とチャーンを最小にする
IoT Edge モジュール ランタイムのもう 1 つの中核の原則は、チャーンを最小限に抑えることです。 最も高いレベルの信頼のために、IoT Edge モジュール ランタイムは信頼のデバイス ハードウェア ルートと緊密に結合し、ネイティブ コードとして動作できます。 これらの場合は、困難な場合があるオペレーティング システムの更新メカニズムではなく、信頼のハードウェア ルートのセキュリティで保護された更新パスを使用して IoT Edge ソフトウェアを更新することが一般的です。 IoT デバイスにはセキュリティの更新が推奨されますが、過剰な更新要件または大きな更新ペイロードによって、脅威にさらされる面が多くの点で拡張される場合があります。 たとえば、デバイスの可用性を最大化するために、いくつかの更新をスキップしたくなる場合があります。 そのため、IoT Edge モジュール ランタイムの設計は、適切に分離されたトラステッド コンピューティング ベースを小さく維持して頻繁な更新を促進するように簡潔になっています。
アーキテクチャ
IoT Edge モジュール ランタイムは、セキュリティ強化のために、使用可能な任意の信頼のハードウェア ルート テクノロジを利用します。 ハードウェア テクノロジによって、信頼できる実行環境 (TEE) が提供される場合は、標準/リッチ実行環境 (REE) と信頼できる実行環境の間の分割動作も可能となっています。 ロール固有のインターフェイスによって、IoT Edge の主要コンポーネントは、IoT Edge デバイスとその動作の整合性を確保できます。
クラウド インターフェイス
クラウド インターフェイスを使用すると、デバイス セキュリティを補完するクラウド サービスへのアクセスが可能になります。 たとえば、このインターフェイスでは、デバイス ID のライフサイクル管理のために Device Provisioning Service へのアクセスが許可されます。
管理 API
管理 API は、IoT Edge モジュールの作成/起動/停止/削除時に IoT Edge エージェントによって呼び出されます。 このモジュール ランタイムでは、すべてのアクティブなモジュールの "登録" を格納します。 これらの登録によって、モジュールの ID がそのモジュールの一部のプロパティにマップされます。 たとえば、これらのモジュール プロパティには、コンテナーで実行されているプロセスのプロセス識別子 (pid) や、Docker コンテナーの内容のハッシュが含まれます。
これらのプロパティは、呼び出し元がアクションを許可されていることを確認するために、ワークロード API によって使用されます。
管理 API は特権を持つ API であり、IoT Edge エージェントからのみ呼び出すことができます。 IoT Edge モジュール ランタイムは IoT Edge エージェントをブートストラップして起動するため、IoT Edge エージェントが改ざんされていないことを確認した後に、IoT Edge エージェントの暗黙的な登録を作成できます。 ワークロード API が使用するものと同じ構成証明プロセスによって、管理 API へのアクセスが IoT Edge エージェントだけに制限されます。
コンテナー API
コンテナー API は、モジュール管理に使用されているコンテナー システム (Moby や Docker など) と対話します。
ワークロード API
ワークロード API は、すべてのモジュールからアクセスできます。 これが、HSM ルート化署名付きトークンまたは X509 証明書のいずれかで ID の証明を提供し、対応する信頼バンドルをモジュールに提供します。 信頼バンドルには、モジュールが信頼する必要のある他のすべてのサーバーの CA 証明書が含まれています。
IoT Edge モジュール ランタイムは、構成証明プロセスを使用して、この API を保護します。 モジュールがこの API を呼び出すと、モジュール ランタイムは、その ID の登録を見つけようとします。 見つかった場合は、登録のプロパティを使ってモジュールを測定します。 測定プロセスの結果が登録と一致する場合は、新しい ID の証明が生成されます。 モジュールには、対応する CA 証明書 (信頼バンドル) が返されます。 モジュールは、この証明書を使って、IoT Hub や他のモジュールに接続したり、サーバーを起動したりします。 署名付きトークンまたは証明書の有効期限が近づいたときは、モジュールが新しい証明書を要求する必要があります。
統合とメンテナンス
Microsoft は、GitHub 上の IoT Edge モジュール ランタイムと Azure IoT ID サービスのメイン コード ベースを保持しています。
IoT Edge のコードベースを読み取る場合は、モジュール ランタイムがセキュリティ デーモンから進化したことに注意してください。 このコードベースには、セキュリティ デーモンへの参照が引き続き含まれている可能性があります。
インストールと更新
IoT Edge モジュール ランタイムのインストールと更新は、オペレーティング システムのパッケージ管理システムを使用して管理されます。 信頼のハードウェア ルートを備えた IoT Edge デバイスでは、そのライフサイクルをセキュア ブートと更新管理システムで管理することによって、モジュール ランタイムの整合性がさらに強化されます。 デバイスの製造元は、それぞれのデバイス機能に基づいて、これらの手段を検討する必要があります。
バージョン管理
IoT Edge ランタイムは、IoT Edge モジュール ランタイムのバージョンを追跡して報告します。 バージョンは、IoT Edge エージェント モジュールが報告するプロパティの runtime.platform.version 属性として報告されます。
ハードウェア セキュリティ モジュール
IoT Edge セキュリティ マネージャーは、トラステッド プラットフォーム モジュールと PKCS#11 インターフェイス標準を使用して、ハードウェア セキュリティ モジュール (HSM) を統合します。 これらの標準を使用すると、独自のインターフェイスを含め、ほぼすべての HSM を統合できます。 HSM を使用してセキュリティを強化します。
信頼のセキュア シリコン ルート ハードウェア
IoTエッジデバイスのハードウェアにおけるセキュアなシリコンアンカーは信頼を根底から支えます。 セキュア シリコンには、トラステッド プラットフォーム モジュール (TPM)、埋め込み Secure Element (eSE)、Arm TrustZone、Intel SGX、およびカスタムセキュア シリコン テクノロジが含まれます。 IoT デバイスへの物理的なアクセスに伴う脅威が原因で、セキュリティで保護された信頼のシリコン ルートをデバイスで使用することが重要です。
IoT Edge セキュリティ マネージャーは、カスタム強化のために Azure IoT Edge プラットフォームのセキュリティと整合性を保護するコンポーネントを識別して分離します。 デバイスメーカーやその他のサード パーティは、デバイス ハードウェアで使用できるカスタム セキュリティ機能を使用できます。
ソフトウェアまたは仮想 TPM を使用して、トラステッド プラットフォーム モジュール (TPM) を使用して Azure IoT セキュリティ マネージャーを強化する方法について説明します。
Linux または Linux on Windows で、仮想 TPM を使用する IoT Edge デバイスを作成し、プロビジョニングします。
次のステップ
IoT Edge デバイスのセキュリティ保護の詳細については、次のブログ記事を参照してください。