Azure IoT Edge セキュリティ マネージャー

適用対象:IoT Edge 1.4 checkmark IoT Edge 1.4

重要

IoT Edge 1.4 がサポートされているリリースです。 以前のリリースの場合は、「IoT Edge を更新する」を参照してください。

Azure IoT Edge セキュリティ マネージャーは、セキュア シリコン ハードウェアを抽象化することによって IoT Edge デバイスとそのすべてのコンポーネントを保護するための、適切に境界付けられたセキュリティ コアです。 セキュリティ マネージャーはセキュリティ強化の中心点であり、相手先ブランド製造 (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 以降の変更点

IoT Edge のバージョン 1.0 および 1.1 では、セキュリティ デーモンと呼ばれるコンポーネントがセキュリティ マネージャーの論理的なセキュリティ操作を担当していました。 バージョン 1.2 への更新では、いくつかの重要な役割が Azure IoT ID サービス セキュリティ サブシステムに委任されました。 これらのセキュリティ ベースのタスクがセキュリティ デーモンから削除された後、その名前には意味がなくなりました。 このコンポーネントがバージョン 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 デバイスとその動作の整合性を確保できます。

Azure IoT Edge module runtime architecture

クラウド インターフェイス

クラウド インターフェイスを使用すると、デバイス セキュリティを補完するクラウド サービスへのアクセスが可能になります。 たとえば、このインターフェイスでは、デバイス 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 セキュリティ マネージャーは、ハードウェア セキュリティ モジュール (HSM) を統合するためのトラステッド プラットフォーム モジュールと PKCS#11 インターフェイスの標準を実装しています。 これらの標準を使用すると、独自のインターフェイスを持つものを含め、ほぼすべての HSM を統合できます。 セキュリティ強化のために HSM を使用することを強くお勧めします。

信頼のセキュア シリコン ルート ハードウェア

セキュア シリコンは、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 デバイスのセキュリティ保護の詳細については、次のブログ記事を参照してください。