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

Azure IoT Edge セキュリティ マネージャーは、セキュア シリコン ハードウェアを抽象化することによって IoT Edge デバイスとそのすべてのコンポーネントを保護するための、適切に境界付けられたセキュリティ コアです。The Azure IoT Edge security manager is a well-bounded security core for protecting the IoT Edge device and all its components by abstracting the secure silicon hardware. セキュリティ マネージャーはセキュリティ強化の中心点であり、相手先ブランド製造 (OEM) にテクノロジの統合ポイントを提供します。The security manager is the focal point for security hardening and provides technology integration point to original equipment manufacturers (OEM).

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

IoT Edge セキュリティ マネージャーの目的は、IoT Edge デバイスとすべての本質的なソフトウェア動作の整合性を保護することです。IoT Edge security manager aims to defend the integrity of the IoT Edge device and all inherent software operations. セキュリティ マネージャーは、基になる信頼のハードウェア ルート ハードウェア (ある場合) から信頼を移行して、IoT Edge ランタイムをブートストラップし、進行中の操作を監視します。The security manager transitions trust from underlying hardware root of trust hardware (if available) to bootstrap the IoT Edge runtime and monitor ongoing operations. IoT Edge セキュリティ マネージャーは、セキュア シリコン ハードウェア (使用可能な場合) と共に動作するソフトウェアで、可能な最高のセキュリティ保証を提供する助けとなります。The IoT Edge security manager is software working along with secure silicon hardware (where available) to help deliver the highest security assurances possible.

IoT Edge セキュリティ マネージャーには次のような役割がありますが、これらに限定されているわけではありません。The responsibilities of the IoT Edge security manager include, but aren't limited to:

  • Azure IoT Edge デバイスのセキュリティで保護されて測定されたブートストラップ。Secured and measured bootstrapping of the Azure IoT Edge device.
  • デバイス ID のプロビジョニングと信頼の切り替え (該当する場合)。Device identity provisioning and transition of trust where applicable.
  • Device Provisioning Service などのクラウド サービスのデバイス コンポーネントのホストと保護。Host and protect device components of cloud services like Device Provisioning Service.
  • 一意の ID による、セキュリティで保護された、IoT Edge モジュールのプロビジョニング。Securely provision IoT Edge modules with unique identities.
  • 公証人サービスによる信頼のデバイス ハードウェア ルートに対するゲートキーパー。Gatekeeper to device hardware root of trust through notary services.
  • 実行時の IoT Edge の動作の整合性の監視。Monitor the integrity of IoT Edge operations at runtime.

IoT Edge セキュリティ マネージャーには、次の 3 つのコンポーネントが含まれます。IoT Edge security manager includes three components:

  • IoT Edge セキュリティ デーモン。IoT Edge security daemon.
  • ハードウェア セキュリティ モジュール プラットフォーム抽象化レイヤー (HSM PAL)。Hardware security module platform abstraction Layer (HSM PAL).
  • 必須ではないが強く推奨される信頼のハードウェア シリコン ルート (HSM)。Optional but highly recommended hardware silicon root of trust or HSM.

IoT Edge セキュリティ デーモンThe IoT Edge security daemon

IoT Edge セキュリティ デーモンは、IoT Edge セキュリティ マネージャーの論理動作を担当します。The IoT Edge security daemon is responsible for the logical operations of IoT Edge security manager. これは、IoT Edge デバイスの信頼できるコンピューティング ベースの重要な部分を表します。It represents a significant portion of the trusted computing base of the IoT Edge device.

設計原則Design principles

IoT Edge セキュリティ デーモンは、動作の整合性を最大にする、肥大化とチャーンを最小限にするという 2 つの中心原則に従います。The IoT Edge security daemon follows two core principles: maximize operational integrity, and minimize bloat and churn.

動作の整合性を最大にするMaximize operational integrity

IoT Edge セキュリティ デーモンは、特定の信頼のハードウェア ルートに備わる防御機能内で、可能な限り高い整合性を持って動作します。The IoT Edge security daemon operates with the highest integrity possible within the defense capability of any given root of trust hardware. 適切な統合により、信頼のルート ハードウェアは、静的および実行時にセキュリティ デーモンを測定および監視して改ざんを防ぎます。With proper integration, the root of trust hardware measures and monitors the security daemon statically and at runtime to resist tampering.

物理的なアクセスは、常に IoT デバイスに対する脅威となっています。Physical access is always a threat to IoT devices. 信頼のハードウェア ルートは、IoT Edge セキュリティ デーモンの整合性の保護において重要な役割を果たします。Hardware root of trust plays an important role in defending the integrity of the IoT Edge security daemon. 信頼のハードウェア ルートには、次の 2 種類があります。Hardware root of trust come in two varieties:

  • シークレットや暗号化キーなどの機密情報を保護するためのセキュリティで保護された要素。secure elements for the protection of sensitive information like secrets and cryptographic keys.
  • キーのようなシークレットおよび測定や課金のような機密性の高いワークロードなどを保護するためのセキュリティで保護されたエンクレーブ。secure enclaves for the protection of secrets like keys, and sensitive workloads like metering and billing.

信頼のハードウェア ルートを利用するために、次の 2 種類の実行環境があります。Two kinds of execution environments exist to use hardware root of trust:

  • 機密情報の保護をセキュリティで保護された要素の使用に依存する標準またはリッチ実行環境 (REE)。The standard or rich execution environment (REE) that relies on the use of secure elements to protect sensitive information.
  • 機密情報の保護およびソフトウェア実行に対する保護の提供をセキュリティで保護されたエンクレーブ テクノロジの使用に依存する、信頼できる実行環境 (TEE)。The trusted execution environment (TEE) that relies on the use of secure enclave technology to protect sensitive information and offer protection to software execution.

信頼のハードウェア ルートとしてセキュリティで保護されたエンクレーブを使用するデバイスの場合、IoT Edge セキュリティ デーモン内の機密性の高いロジックはエンクレーブ内に存在する必要があります。For devices using secure enclaves as hardware root of trust, sensitive logic within IoT Edge security daemon should be inside the enclave. セキュリティ デーモンの重要ではない部分は、TEE の外部に存在できます。Non-sensitive portions of the security daemon can be outside of the TEE. いずれの場合も、元の設計製造 (ODM) およ相手先ブランド製造 (OEM) は、それらの HSM から信頼を拡張し、起動時と実行時に IoT Edge セキュリティ デーモンの整合性を測定して保護する必要があります。In any case, original design manufacturers (ODM) and original equipment manufacturers (OEM) should extend trust from their HSM to measure and defend the integrity of the IoT Edge security daemon at boot and runtime.

肥大化とチャーンを最小にするMinimize bloat and churn

IoT Edge セキュリティ デーモンのもう 1 つの中心原則は、チャーンを最小限に抑えることです。Another core principle for the IoT Edge security daemon is to minimize churn. 最高レベルの信頼のために、IoT Edge セキュリティ デーモンは信頼のデバイス ハードウェア ルートと緊密に結合し、ネイティブ コードとして動作することができます。For the highest level of trust, the IoT Edge security daemon can tightly couple with the device hardware root of trust and operate as native code. この種の実現方法では、(OS で提供される更新メカニズムではなく) 信頼のハードウェア ルートのセキュリティで保護された更新パスによってデーモンのソフトウェアを更新するのが一般的であり、一部のシナリオでは困難になる可能性があります。It's common for these types of realizations to update the daemon software through the hardware root of trust's secure update paths (as opposed to OS provided update mechanisms), which can be challenging in some scenarios. IoT デバイスに対してはセキュリティの更新が推奨されますが、過剰な更新要件や大規模な更新ペイロードは、さまざまな方法で脅威にさらされる面を拡大する可能性があります。While security renewal is recommended for IoT devices, excessive update requirements or large update payloads can expand the threat surface in many ways. たとえば、動作の可用性を最大化する更新のスキップ、または大きな更新ペイロードを処理するために過度に制約される信頼のルート ハードウェアなどです。Examples include skipping of updates to maximize operational availability or root of trust hardware too constrained to process large update payloads. そのため、IoT Edge セキュリティ デーモンの設計は、フットプリントにしたがって信頼できるコンピューティング ベースを小さく保ち、更新要件を最小限に抑えるために、簡潔なものになっています。As such, the design of IoT Edge security daemon is concise to keep the footprint and trusted computing base small and to minimize update requirements.

IoT Edge セキュリティ デーモンのアーキテクチャArchitecture of IoT Edge security daemon

Azure IoT Edge セキュリティ デーモン

IoT Edge セキュリティ デーモンは、セキュリティ強化のために利用可能な信頼のハードウェア ルート テクノロジを活用します。The IoT Edge security daemon takes advantage of any available hardware root of trust technology for security hardening. ハードウェア テクノロジによって、信頼できる実行環境 (TEE) が提供される場合は、標準/リッチ実行環境 (REE) と信頼できる実行環境の間の分割動作も可能となっています。It also allows for split-world operation between a standard/rich execution environment (REE) and a trusted execution environment (TEE) when hardware technologies offer trusted execution environments. ロール固有のインターフェイスによって、IoT Edge の主要コンポーネントは、IoT Edge デバイスとその動作の整合性を確保できます。Role-specific interfaces enable the major components of IoT Edge to assure the integrity of the IoT Edge device and its operations.

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

クラウド インターフェイスにより、IoT Edge セキュリティ デーモンは、セキュリティ更新のようなデバイス セキュリティに対するクラウド補完などのクラウド サービスにアクセスできます。The cloud interface allows the IoT Edge security daemon to access cloud services such as cloud compliments to device security like security renewal. たとえば、IoT Edge セキュリティ デーモンは、現在、このインターフェイスを使用してデバイス ID ライフサイクル管理のために Azure IoT Hub の Device Provisioning Service にアクセスします。For example, the IoT Edge security daemon currently uses this interface to access the Azure IoT Hub Device Provisioning Service for device identity lifecycle management.

管理 APIManagement API

IoT Edge セキュリティ デーモンには管理 API が用意されており、IoT Edge モジュールの作成/開始/停止/削除時に IoT Edge エージェントによって呼び出されます。IoT Edge security daemon offers a management API, which is called by the IoT Edge agent when creating/starting/stopping/removing an IoT Edge module. このセキュリティ デーモンは、すべてのアクティブなモジュールの "登録" を保持しています。The security daemon stores “registrations” for all active modules. これらの登録は、モジュールの ID をモジュールの一部のプロパティにマップします。These registrations map a module’s identity to some properties of the module. これらのモジュール プロパティには例えば、コンテナーで実行しているプロセスのプロセス ID (pid) や、Docker コンテナーの内容のハッシュなどがあります。For examples, these module properties include the process identifier (pid) of the process running in the container and the hash of the docker container’s contents.

これらのプロパティは、呼び出し元がアクションを許可されていることを確認するために、ワークロード API (後述) によって使用されます。These properties are used by the workload API (described below) to verify that the caller is authorized for an action.

管理 API は特権を持つ API であり、IoT Edge エージェントからのみ呼び出すことができます。The management API is a privileged API, callable only from the IoT Edge agent. IoT Edge セキュリティ デーモンは、IoT Edge エージェントをブートストラップして開始するので、IoT Edge エージェントが改ざんされていないことを確認した後で、IoT Edge エージェントの暗黙の登録を作成できます。Since the IoT Edge security daemon bootstraps and starts the IoT Edge agent, it verifies that the IoT Edge agent hasn't been tampered with, then it can create an implicit registration for the IoT Edge agent. ワークロード API が使用するものと同じ構成証明プロセスによって、管理 API へのアクセスが IoT Edge エージェントだけに制限されます。The same attestation process that the workload API uses also restricts access to the management API to only the IoT Edge agent.

コンテナー APIContainer API

コンテナー API は、モジュール管理に使用されているコンテナー システム (Moby や Docker など) と対話します。The container API interacts with the container system in use for module management, like Moby or Docker.

ワークロード APIWorkload API

ワークロード API は、すべてのモジュールからアクセスできます。The workload API is accessible to all modules. これが、HSM ルート化署名付きトークンまたは X509 証明書のいずれかで ID の証明を提供し、対応する信頼バンドルをモジュールに提供します。It provides proof of identity, either as an HSM rooted signed token or an X509 certificate, and the corresponding trust bundle to a module. 信頼バンドルには、モジュールが信頼する必要のある他のすべてのサーバーの CA 証明書が含まれています。The trust bundle contains CA certificates for all the other servers that the modules should trust.

IoT Edge セキュリティ デーモンは、構成証明プロセスを使用してこの API を保護します。The IoT Edge security daemon uses an attestation process to guard this API. モジュールがこの API を呼び出すと、このセキュリティ デーモンは ID の登録の検出を試みます。When a module calls this API, the security daemon attempts to find a registration for the identity. 見つかった場合は、登録のプロパティを使ってモジュールを測定します。If successful, it uses the properties of the registration to measure the module. 測定プロセスの結果が登録と一致する場合は、新しい ID の証明が生成されます。If the result of the measurement process matches the registration, a new proof of identity is generated. モジュールには、対応する CA 証明書 (信頼バンドル) が返されます。The corresponding CA certificates (trust bundle) are returned to the module. モジュールは、この証明書を使って、IoT Hub や他のモジュールに接続したり、サーバーを起動したりします。The module uses this certificate to connect to IoT Hub, other modules, or start a server. 署名付きトークンまたは証明書の有効期限が近づいたときは、モジュールが新しい証明書を要求する必要があります。When the signed token or certificate nears expiration, it's the responsibility of the module to request a new certificate.

統合とメンテナンスIntegration and maintenance

Microsoft は、GitHub 上の IoT Edge セキュリティ デーモンに対するメイン コード ベースを保持しています。Microsoft maintains the main code base for the IoT Edge security daemon on GitHub.

インストールと更新Installation and updates

IoT Edge セキュリティ デーモンのインストールと更新は、オペレーティング システムのパッケージ管理システムによって管理されます。Installation and updates of the IoT Edge security daemon are managed through the operating system's package management system. 信頼のハードウェア ルートを備えた IoT Edge デバイスでは、セキュリティで保護された起動および更新管理システムによってライフサイクルを管理することで、デーモンの整合性がさらに強化されるはずです。IoT Edge devices with hardware root of trust should provide additional hardening to the integrity of the daemon by managing its lifecycle through the secure boot and updates management systems. デバイスの製造元は、それぞれのデバイス機能に基づいて、これらの手段を検討する必要があります。Device makers should explore these avenues based on their respective device capabilities.

バージョン管理Versioning

IoT Edge ランタイムは、IoT Edge セキュリティ デーモンのバージョンを追跡して報告します。The IoT Edge runtime tracks and reports the version of the IoT Edge security daemon. バージョンは、IoT Edge エージェント モジュールが報告するプロパティの runtime.platform.version 属性として報告されます。The version is reported as the runtime.platform.version attribute of the IoT Edge agent module reported property.

ハードウェア セキュリティ モジュール プラットフォーム抽象化レイヤー (HSM PAL)Hardware security module platform abstraction layer (HSM PAL)

HSM PAL は、すべての信頼のルート ハードウェアを抽象化して、IoT Edge の開発者やユーザーをそれらの複雑さから切り離します。The HSM PAL abstracts all root of trust hardware to isolate the developer or user of IoT Edge from their complexities. これには、アプリケーション プログラミング インターフェイス (API) と、ドメイン内通信手順 (標準実行環境とセキュリティで保護されたエンクレーブとの間の通信など) の組み合わせが含まれます。It includes a combination of application programming interface (API) and trans-domain communication procedures, for example communication between a standard execution environment and a secure enclave. HSM PAL の実際の実装は、使用されている特定のセキュリティ保護されたハードウェアに依存します。The actual implementation of the HSM PAL depends on the specific secure hardware in use. それが存在することで、ほとんどすべてのセキュア シリコン ハードウェアが使用可能になります。Its existence enables the use of virtually any secure silicon hardware.

信頼のセキュア シリコン ルート ハードウェアSecure silicon root of trust hardware

セキュア シリコンは、IoT Edge デバイス ハードウェア内に信頼を固定するために必要です。Secure silicon is necessary to anchor trust inside the IoT Edge device hardware. セキュア シリコンは、トラステッド プラットフォーム モジュール (TPM)、埋め込みセキュア エレメント (eSE)、ARM TrustZone、Intel SGX、カスタム セキュア シリコン テクノロジなど、さまざまな形式で提供されます。Secure silicon come in variety to include Trusted Platform Module (TPM), embedded Secure Element (eSE), ARM TrustZone, Intel SGX, and custom secure silicon technologies. IoT デバイスの物理的なアクセシビリティに関連する脅威のため、デバイスでは信頼のセキュア シリコン ルートを使うことをお勧めします。The use of secure silicon root of trust in devices is recommended given the threats associated with physical accessibility of IoT devices.

IoT Edge セキュリティ マネージャーの統合とメンテナンスIoT Edge security manager integration and maintenance

IoT Edge セキュリティ マネージャーの目的は、Azure IoT Edge プラットフォームのセキュリティと整合性を保護するコンポーネントを識別して分離し、独自のセキュリティ強化を図ることです。The IoT Edge security manager aims to identify and isolate the components that defend the security and integrity of the Azure IoT Edge platform for custom hardening. デバイス製造元などのサード パーティは、それぞれのデバイス ハードウェアで使用できるカスタム セキュリティ機能を活用する必要があります。Third parties, like device makers, should make use of custom security features available with their device hardware. Linux および Windows プラットフォームでトラステッド プラットフォーム モジュール (TPM) を使用して Azure IoT セキュリティ マネージャーのセキュリティを強化する方法が示されているページへのリンクについては、「次の手順」セクションをご覧ください。See next steps section for links that demonstrate how to harden the Azure IoT security manager with the Trusted Platform Module (TPM) on Linux and Windows platforms. これらの例は、ソフトウェアまたは仮想 TPM を使用していますが、個別の TPM デバイスの使用について直接当てはまります。These examples use software or virtual TPMs but directly apply to using discrete TPM devices.

次のステップNext steps

ブログ「Securing the intelligent edge」(インテリジェント エッジをセキュリティで保護する) を読む。Read the blog on Securing the intelligent edge.

Linux 仮想マシン上で、仮想 TPM を使用する IoT Edge デバイスを作成し、プロビジョニングする。Create and provision an IoT Edge device with a virtual TPM on a Linux virtual machine.

Windows 上で、シミュレートされた TPM を使用する IoT Edge デバイスを作成し、プロビジョニングする。Create and provision an IoT Edge device with a simulated TPM on Windows.