対象:
IoT Edge 1.5
重要
IoT Edge 1.5 LTS は、サポートされているリリースです。 IoT Edge 1.4 LTS は 2024 年 11 月 12 日に終了しました。 以前のリリースを使用している場合は、「Update 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では、security デーモン と呼ばれるコンポーネントがセキュリティ マネージャーの論理セキュリティ操作を管理します。 バージョン 1.2 では、いくつかの重要な責任が Azure IoT Identity Service セキュリティ サブシステムに移行します。 これらのセキュリティ タスクがセキュリティ デーモンから移動した後、その名前がそのロールに適合しません。 このコンポーネントがバージョン 1.2 以降で実行する内容をよりよく反映するために、 モジュール ランタイムに名前が変更されます。
IoT Edge モジュール ランタイム
IoT Edge モジュール ランタイムは、IoT Edge コンテナー ランタイム環境を保護するために、Azure IoT Identity Service セキュリティ サブシステムから信頼を委任します。 Azure IoT Identity Service に委任されたサービスの 1 つは、EST サーバーを介した証明書の自動登録と更新サービスです。 このしくみを確認し、IoT Edge デバイス用に作成されたサンプル EST サーバーを作成するには、
モジュール ランタイムは、セキュリティ マネージャーの論理的なセキュリティ操作を担当します。 これは、IoT Edge デバイスの信頼されたコンピューティング ベースのかなりの部分を表します。 モジュール ランタイムは IoT ID サービスのセキュリティ サービスを使用し、これがさらに、デバイスの製造元のハードウェア セキュリティ モジュール (HSM) の選択によってセキュリティ強化されます。 デバイスのセキュリティ強化には HSM の使用を強くお勧めします。
設計原則
IoT Edgeは、運用の整合性を最大化し、肥大化とチャーンを最小限に抑えるという 2 つの主要な原則に従います。
動作の整合性を最大にする
IoT Edge モジュール ランタイムは、任意の信頼のルート ハードウェアの防御機能内で可能な限り高い整合性で動作します。 適切な統合により、信頼のルート ハードウェアは、静的および実行時にセキュリティ デーモンを測定および監視して改ざんを防ぎます。
デバイスへの悪意のある物理的なアクセスは、常に IoT での脅威です。 信頼のハードウェア ルートは、IoT Edge デバイスの整合性を守る上で重要な役割を果たします。 ハードウェアのルート・オブ・トラストには2種類があります。
- シークレットや暗号化キーなどの、機密情報の保護のためのセキュリティで保護された要素。
- キーなどのシークレット、または機密の機械学習モデルや測定操作などの機密性の高いワークロードの保護のためのセキュリティで保護されたエンクレーブ。
信頼のハードウェア ルートを利用するために、次の 2 種類の実行環境があります。
- 機密情報の保護をセキュリティで保護された要素の使用に依存する標準またはリッチ実行環境 (REE)。
- 機密情報の保護およびソフトウェア実行に対する保護の提供をセキュリティで保護されたエンクレーブ テクノロジの使用に依存する、信頼できる実行環境 (TEE)。
セキュリティで保護されたエンクレーブを信頼のハードウェア ルートとして使用するデバイスの場合、IoT Edge モジュール ランタイム内の機密性の高いロジックはエンクレーブ内に存在する必要があります。 モジュール ランタイムの機密性の低い部分は、TEE の外部に存在できます。 いずれの場合も、元の設計メーカー (ODM) と OEM (original equipment manufacturer) が 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 が使用するのと同じ構成証明プロセスでも、IoT Edge エージェントのみに管理 API へのアクセスが制限されます。
コンテナー API
コンテナー API は、モジュール管理に使用されているコンテナー システム (Moby や Docker など) と対話します。
ワークロード API
ワークロード API は、すべてのモジュールからアクセスできます。 これが、HSM ルート化署名付きトークンまたは X509 証明書のいずれかで ID の証明を提供し、対応する信頼バンドルをモジュールに提供します。 信頼バンドルには、モジュールが信頼する必要のある他のすべてのサーバーの CA 証明書が含まれています。
IoT Edge モジュール ランタイムは、構成証明プロセスを使用してこの API を保護します。 モジュールがこの API を呼び出すと、モジュール ランタイムは、その ID の登録を見つけようとします。 正常に完了した場合は、登録のプロパティを使ってモジュールを測定します。 測定プロセスの結果が登録と一致する場合は、新しい ID の証明が生成されます。 モジュールには、対応する CA 証明書 (信頼バンドル) が返されます。 モジュールでは、この証明書を使用して、IoT Hub、他のモジュールに接続するか、サーバーを起動します。 署名付きトークンまたは証明書の有効期限が近づいたときは、モジュールが新しい証明書を要求する必要があります。
統合とメンテナンス
Microsoft では、IoT Edge モジュール ランタイムおよび GitHub の Azure IoT ID サービスのメイン コード ベースを保持しています。
IoT Edgeコードベースを読み取ると、module ランタイムがsecurity デーモンから進化したことを思い出してください。 このコードベースには、セキュリティ デーモンへの参照が引き続き含まれている可能性があります。
インストールと更新
IoT Edge モジュール ランタイムのインストールと更新は、オペレーティング システムのパッケージ管理システムを介して管理されます。 ハードウェアルートの信頼を持つデバイスIoT Edge、セキュア ブートおよび更新管理システムを通じてライフサイクルを管理することで、モジュール ランタイムの整合性をさらに強化する必要があります。 デバイスの製造元は、それぞれのデバイス機能に基づいて、これらの手段を検討する必要があります。
バージョン管理
IoT Edge ランタイムは、IoT Edge モジュール ランタイムのバージョンを追跡して報告します。 バージョンは、IoT Edge エージェント モジュールの報告されるプロパティの runtime.platform.version 属性として報告されます。
ハードウェア セキュリティ モジュール
IoT Edge セキュリティ マネージャーは、トラステッド プラットフォーム モジュールと PKCS#11 インターフェイス標準を使用して、ハードウェア セキュリティ モジュール (HSM) を統合します。 これらの標準を使用すると、独自のインターフェイスを含め、ほぼすべての HSM を統合できます。 HSM を使用してセキュリティを強化します。
信頼の基点を持つセキュアシリコンハードウェア
セキュリティで保護されたシリコンによるアンカーは、IoT Edgeデバイスのハードウェアに信頼をもたらします。 セキュア シリコンには、トラステッド プラットフォーム モジュール (TPM)、埋め込み Secure Element (eSE)、Arm TrustZone、Intel SGX、およびカスタムセキュア シリコン テクノロジが含まれます。 IoT デバイスへの物理的なアクセスに伴う脅威が原因で、セキュリティで保護された信頼のシリコン ルートをデバイスで使用することが重要です。
IoT Edge セキュリティ マネージャーは、カスタムのセキュリティ強化のためにAzure IoT Edge プラットフォームのセキュリティと整合性を保護するコンポーネントを識別して分離します。 デバイスメーカーやその他のサード パーティは、デバイス ハードウェアで使用できるカスタム セキュリティ機能を使用できます。
ソフトウェアまたは仮想 TPM を使用して、トラステッド プラットフォーム モジュール (TPM) を使用してAzure IoT セキュリティ マネージャーを強化する方法について説明します。
仮想 TPM を用いた IoT Edge デバイスを Linux または Windows 上の Linux で作成してプロビジョニングする。