ARM(PSA Certified) Platform Security Model 内容理解 [5] 2章まで
の続き
2 Platform Root of Trust
Platform Root of Trust(PRoT)には、システムレベルのセキュリティ構成、セキュアブートプロセスによるプラットフォームの信頼チェーンの確立、独自の機能のためのパーティションの確立、そして分離された安全な処理環境の構築を担うハードウェアおよびソフトウェアコンポーネントが含まれます。PRoTサービスは、初期化フェーズ以降もシステムが利用できる機能を提供します。これらの機能については、PSA Certified がAPIおよびABIの形式でいくつかのインターフェースを定義しています。
図10に示す機能セットは、図2に示す最小限のPSMデバイスモデルを示しています。
図10は、実装におけるハードウェア部分とソフトウェア部分の典型的な分割も示しています。
各機能と特定のパーティションおよびセキュア処理環境のマッピングは、各プラットフォームアーキテクチャに固有です。例えば、図4に示すようなシステムでは、各SPEにセキュアパーティション管理機能が備わっている可能性があり、NSPEおよびPSM以外の処理環境にもパーティション管理機能が備わっている可能性があります。
2.1 Hardware Elements
プラットフォームのルート・オブ・トラストには、以下のハードウェア要素が含まれます。これらのハードウェア要素へのアクセスは、PRoTおよびPRoTサービス経由でのみ可能となります。
- ブートROM(Boot ROM)には、リセット解除後に最初に実行されるコードが含まれており、(プロセッサから分離された領域にあるROMではなく)オンチップで実装する必要があります。ブートROMコードとそれが実行する設定は、プラットフォームとデバイスの信頼チェーンのトラストアンカーを確立します。ROMという用語は、製造後に変更できないことを意味します。ブートROMは通常、マスクROM、恒久的にロックされたワンタイムプログラマブルメモリ(OTP)、ロックされたオンチップフラッシュ、またはこれらの組み合わせを使用して実装されます。セクション6を参照してください。
- 分離された場所(Isolated Location)には、不揮発性メモリに格納された機密データが含まれています。これらの場所は、通常はOTP、または(可能な場合は)オンチップフラッシュメモリ上に存在する必要があります。アクセスはPRoTまたはPRoTサービスによってのみ許可されます。一部のオンチップ分離された場所は、システム構成時にBoot ROMによって使用される可能性があり、また、一部の場所はハードウェアパスを介して暗号化ハードウェアやその他のセキュリティ構成ハードウェアを直接制御する可能性があります。
- シールドされた場所(Shielded Location)は、PRoTルートパラメータを含むプロビジョニングされた秘密情報を保管するための、耐タンパー性を備えた隔離された場所です(セクション3を参照)。耐タンパー性には、内部バスやインターフェースへのアクセスのための物理的な分解など、アクティブプロービングを困難にするメカニズム、電力およびタイミング分析などのサイドチャネル攻撃対策、電力およびクロックのグリッチに対する保護などが含まれる場合があります。ただし、耐タンパー性の程度と保存されるデータの選択は、脅威分析中に特定された、導入要件または認証要件に適用される脅威によって異なります。オフチップの耐タンパー性ストレージハードウェアは、信頼できるサブシステムとして分類できます(セクション1.3.3を参照)。
- 分離ハードウェア(Isolation Hardware)とは、セクション1.3.1および1.3.2で規定されている分離要件を実装するために必要なオンチップハードウェアです。分離の範囲は、認証スキーム、導入要件、または脅威分析で特定された脅威の軽減方法によって異なります。処理環境を分離するハードウェアの制御と構成は、PRoTが行う必要があります。
- オンチップ暗号化ハードウェア(Cryptographoc Hardware)が利用可能となる場合があります。オンチップハードウェアはパフォーマンス上の利点を提供し、オンチップ上の隔離された場所またはシールドされた場所に保存された鍵と設定を直接利用できる可能性があります。サイドチャネル攻撃やフォールトインジェクションに対するある程度の対策は可能かもしれませんが、必要に応じてオフチップ暗号化ハードウェアがより強力な物理的保護を提供できる可能性があります。信頼できるサブシステムについては、下記およびセクション1.3.3を参照してください。
- 信頼されたサブシステム(Trusted Subsystem(s))は、PRoTまたはPRoTサービスが正しい動作を行うために依存する機能を提供する場合があります。例えば、信頼されたサブシステムは、暗号化、復号化、署名生成といった暗号操作を提供する一方で、その操作に使用される鍵マテリアルへのアクセスをすべて拒否する場合があります。セクション1.3.3を参照してください。
- ライフサイクル状態管理(Lifecycle State Management)とは、状態に依存する操作を指示または制御するために使用されるハードウェアを指します。セクション4を参照してください。
2.2 Software Elements
プラットフォームの信頼のルートとサービスには通常、図 10 に示すように次のソフトウェア要素が含まれます。
- セキュアブート(Secure Boot)は、Boot ROMに埋め込まれた信頼チェーンをシステムまで拡張します。セキュアブートは、すべてのPSMセキュア処理環境において必須要件です。その他の処理環境におけるセキュアブートは一般的な要件ですが、具体的なセキュリティ要件によって異なります。
- セキュアアップデート(Secure Update)により、uPRoT、PRoT Service、および任意のARoTサービスを更新し、特定された脆弱性を軽減できます。セキュアアップデートはiPRoTには適用できません。その他の処理のセキュアアップデートは一般的な要件であり、推奨されます。
- 処理環境管理(Processing Environment Management)は、管理対象処理環境間の必要な分離を強制し、システムレベルのリソースとそれらの処理環境との関連付けを強制します。すべてのPSMセキュア処理環境は、他のすべての処理環境から分離されている必要があります。この機能は、管理対象セキュア処理環境間で共有される処理リソースの割り当てと使用スケジュールの設定も担当する場合があります。
- セキュア パーティション管理(Secure Partition Management)は、管理対象のセキュア パーティション間で必要な分離を実施し、各セキュア パーティションのリソースへのアクセスを制御します。たとえば、内部信頼ストレージへのアクセスや暗号化サービスによって実行される操作などです (下記およびセクション 5 を参照)。この機能は、管理対象のセキュア パーティション間で共有される処理リソースの使用の割り当てとスケジュール設定も担当する場合があります。
- 内部トラステッドストレージ(Internel Trusted Storage: ITS)は、すべてのPSMセキュア処理環境において、隔離され遮蔽された場所へのパーティションベースのアクセス制御を提供するPRoTサービスです。つまり、ITSはPRoTまたはARoTサービス機能を実装したあらゆるセキュアパーティションで利用できます。セクション7.1を参照してください。
- セキュア ストレージ(Secure Storage)は、あらゆる ARoT サービスに対して非分離ストレージでセキュア ストレージを提供する PRoT サービスです (セクション 2.3 および 7.4 を参照)。
- 暗号操作(Cryptographic Primitives)は、PRoTまたはARoT機能を実装するすべてのセキュアパーティションにおける鍵の使用と暗号処理に対するパーティションベースのアクセス制御を提供するPRoTサービスです。セクション7.2を参照してください。
- 初期認証(Initial Attestation)は、図1に示すように、検証エンティティがプラットフォームのルートオブトラスト、その実装、およびセキュアブート中にロードされる更新可能なコンポーネントの信頼性を検証できるようにするPRoTサービスです。セクション7.3を参照してください。
すべての処理環境の分離要件が満たされている場合、内部の信頼できるストレージ、暗号化操作、および初期構成証明をサポートする PRoT サービスは、非 PSM 処理環境 (たとえば、図 2 に示す NSPE) または図 4 に示す非 PSM 処理環境で利用できる場合があります。
2.3 Non-Isolated Strage
図2に示す非分離ストレージとは、論理的または物理的(オフチップまたはリムーバブルの場合)なアクセス制御がPRoTによって強制できないストレージです。非分離ストレージは、アプリケーション固有のデータ(必要なキーがPRoTサービスによって保護されている暗号化保護データなど)に適しています。セクション7.4では、バインディング(セクション5を参照)および暗号化サービス(セクション7.2を参照)を使用して機密データを保護する方法について概説しています。
Discussion