Azure IoT Edge セキュリティ マネージャー
適用対象: IoT Edge 1.1
重要
IoT Edge 1.1 のサポート終了日は、2022 年 12 月 13 日でした。 本製品、サービス、テクノロジ、または API のサポート内容については、Microsoft 製品のライフサイクルに関するページをご確認ください。 最新バージョンの IoT Edge への更新の詳細については、「 Update IoT Edge」を参照してください。
Azure IoT Edge セキュリティ マネージャーは、セキュア シリコン ハードウェアを抽象化することによって IoT Edge デバイスとそのすべてのコンポーネントを保護するための、適切に境界付けられたセキュリティ コアです。 セキュリティ マネージャーはセキュリティ強化の中心点であり、相手先ブランド製造 (OEM) にテクノロジの統合ポイントを提供します。
セキュリティ マネージャーは、IoT Edge デバイス上のセキュア シリコン ハードウェアを抽象化します。
IoT Edge セキュリティ マネージャーは、IoT Edge デバイスとすべての固有のソフトウェア操作の整合性を保護することを目的としています。 セキュリティ マネージャーは、基になる信頼のハードウェア ルート ハードウェア (ある場合) から信頼を移行して、IoT Edge ランタイムをブートストラップし、進行中の操作を監視します。 IoT Edge セキュリティ マネージャーは、セキュア シリコン ハードウェア (使用可能な場合) と共に動作するソフトウェアで、可能な最高のセキュリティ保証を提供する助けとなります。
IoT Edge セキュリティ マネージャーには次のような役割がありますが、これらに限定されているわけではありません。
- Azure IoT Edge デバイスをブートストラップします。
- 公証人サービスを使用して、信頼のデバイス ハードウェア ルートへのアクセスを制御します。
- 実行時の IoT Edge の動作の整合性の監視。
- ハードウェア セキュリティ モジュール (HSM) から信頼の委任を受信します。
- デバイス ID をプロビジョニングし、該当する場合は信頼の切り替えを管理します。
- Device Provisioning Service などのクラウド サービスのデバイス コンポーネントのホストと保護。
- IoT Edge モジュールを一意の ID でプロビジョニングします。
IoT Edge セキュリティ マネージャーは、次の 3 つのコンポーネントで構成されています。
- IoT Edge セキュリティ デーモン
- ハードウェア セキュリティ モジュール プラットフォーム抽象化レイヤー (HSM PAL)
- 信頼のハードウェア シリコン ルートまたは HSM (必須ではないが、強く推奨される)
IoT Edge セキュリティ デーモン
IoT Edge セキュリティ デーモンは、セキュリティ マネージャーの論理的なセキュリティ操作を担当します。 これは、IoT Edge デバイスの信頼できるコンピューティング ベースの重要な部分を表します。
設計原則
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 セキュリティ デーモンの設計は、適切に分離されたトラステッド コンピューティング ベースを小さく維持して頻繁な更新を促進するように簡潔になっています。
Architecture
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 セキュリティ デーモンに対するメイン コード ベースを保持しています。
インストールと更新
IoT Edge セキュリティ デーモンのインストールと更新は、オペレーティング システムのパッケージ管理システムによって管理されます。 信頼のハードウェア ルートを備えた IoT Edge デバイスでは、セキュリティで保護された起動および更新管理システムによってライフサイクルを管理することで、デーモンの整合性がさらに強化されるはずです。 デバイスの製造元は、それぞれのデバイス機能に基づいて、これらの手段を検討する必要があります。
バージョン管理
IoT Edge ランタイムは、IoT Edge セキュリティ デーモンのバージョンを追跡して報告します。 バージョンは、IoT Edge エージェント モジュールが報告するプロパティの runtime.platform.version 属性として報告されます。
ハードウェア セキュリティ モジュール
ハードウェア セキュリティ モジュール プラットフォーム抽象化レイヤー (HSM PAL) は、すべての信頼のルート ハードウェアを抽象化して、IoT Edge の開発者またはユーザーをそれらの複雑さから切り離します。 これには、アプリケーション プログラミング インターフェイス (API) と、ドメイン内通信手順 (標準実行環境とセキュリティで保護されたエンクレーブとの間の通信など) の組み合わせが含まれます。 HSM PAL の実際の実装は、使用されている特定のセキュリティ保護されたハードウェアに依存します。 それが存在することで、ほとんどすべてのセキュア シリコン ハードウェアが使用可能になります。
信頼のセキュア シリコン ルート ハードウェア
セキュア シリコンは、IoT Edge デバイス ハードウェア内に信頼を固定するために必要です。 セキュア シリコンは、トラステッド プラットフォーム モジュール (TPM)、埋め込みセキュア エレメント (eSE)、ARM TrustZone、Intel SGX、カスタム セキュア シリコン テクノロジなど、さまざまな形式で提供されます。 IoT デバイスの物理的なアクセシビリティに関連する脅威のため、デバイスでは信頼のセキュア シリコン ルートを使うことをお勧めします。
IoT Edge セキュリティ マネージャーの目的は、Azure IoT Edge プラットフォームのセキュリティと整合性を保護するコンポーネントを識別して分離し、独自のセキュリティ強化を図ることです。 デバイス製造元などのサード パーティは、それぞれのデバイス ハードウェアで使用できるカスタム セキュリティ機能を活用する必要があります。
ソフトウェアまたは仮想 TPM を使用するトラステッド プラットフォーム モジュール (TPM) で Azure IoT セキュリティ マネージャーを強化する方法について説明します。
Linux または Linux on Windows で、仮想 TPM を使用する IoT Edge デバイスを作成し、プロビジョニングします。
次のステップ
IoT Edge デバイスのセキュリティ保護の詳細については、次のブログ記事を参照してください。