ARM(PSA Certified) Platform Security Model 内容理解 [4] 1.3.3章まで

に公開

https://zenn.dev/yurufuwa_embed/articles/6ee1ced085c6e3
の続き

1.3.1 isolation

分離機能によってあるパーティションでの処理がほかのパーティションから侵害されないことを保証します。PSMでは、各SPEをハードウェア機構によって他すべての処理から分離する必要があります。図5では、図2の最小限のPSMの構成をもとに、赤枠を使ってNSPEからSPE環境が分離されていることを図示しています。
この分離を強制するために必要なランタイムハードウェアは、PRoTによって実行されるPRの管理機能によってのみ構成可能である必要があります。NSPEの分離要件は、PSMでは定義されませんが推奨されます。

PSE内での分離(Isolation between partitions)はPSMでは定義していませんが、セキュリティ要件と適用可能な認証スキームによって異なります。
図6では、オレンジ色でSPE内のPRoT/PRoT ServiceとARoTのセキュアパーティションを分離していることを示しています。このように、すべての処理、特にソフトウェアは分離されることを前提に設計されることが勧められます。これにより、例えば開発後半に分離することになった場合や、分離を実施するデバイスで再利用される場合にも機能し続ける堅牢なソフトウェアの開発が促進されます。

パーティションの分離はパーティション管理機能によって処理されます (セクション 2.2 を参照)。この機能は、オペレーティング システムなどによって実現されますが、オペレーティング システム自体は、パーティション管理機能も果たすハイパーバイザによって他の仮想マシンから分離されたパーティションである場合があります。つまり、パーティションは別のパーティション内にネストされる可能性があります。各最外部パーティションマネージャは、単一の処理環境でホストされます。ネストされたセキュアパーティションは、別のセキュアパーティション内にネストされ、セキュアな処理環境でのみホストされることに注意してください。

図7は、PEにパーティション管理機能が含まれている例を示しています。管理対象パーティションの1つには、2つのパーティションを管理する別のパーティション管理機能が含まれています。オレンジ色の枠線は、該当するパーティションマネージャによって分離が強制されている領域を示しています。図3のように複数の処理環境では、複数のパーティションをサポートするすべての処理環境にパーティション管理機能が必要になります。

1.3.2 Immutable Platform Root-of-Trust Protection

Immutable PRoT(iPRoT)ブートROM(セクション2参照)とPRoTルートパラメータ(セクション3参照)は、システムにとって本質的に信頼できる基盤を形成します。この基盤が侵害されると、その基盤は信頼できなくなる可能性があります。その結果、PRoTおよびPRoTサービスが信頼されなくなる可能性があります。また、ARoTサービスも信頼されなくなる可能性があります。デバイス全体に対する信頼が失われる可能性があります。
このリスクを最小限に抑えるには、ルートパラメータとブートROMへのアクセスは、目的を達成した後できるだけ早く拒否する必要があります。これは通常、制御がuPRoTに渡される時点を指します。これは「時間的分離」と呼ばれます。時間的分離境界の前のすべての処理は、タスクを完了し、境界後の段階に引き継ぐ必要があります。この境界に戻る唯一の方法は、システムブートにつながるリセットを実行することです。これはハードウェアで強制する必要があります。
図 8 は、セクション 6 のセキュア ブート フローにおける時間的な分離を示しています。

時間境界後に実行される処理で使用するために明示的に提供された状態のみが、境界後もアクセス可能でなければなりません。セキュアブートの場合、その状態はルートパラメータ内の機密資産から導出される可能性が高く、外部ストレージは状態を攻撃にさらす可能性があるため、オンチップに保存する必要があります。時間境界前のコードを再利用して全体的なフットプリントを削減することは、時間境界によって保護されるべき機密データを公開しない限り、許容される可能性があります。

iPRoT も、製品の寿命全体にわたって侵害から保護される必要があります (セクション 4 を参照)。

1.3.3 Trusted Subsystems

トラステッドサブシステムとは、PRoTまたはPRoTサービスが正常な動作を行うために依存する、構成可能または更新可能なセキュリティ機能であり、コード実行可能なプロセッサを含む場合もあります。例としては、オンチップセキュリティコプロセッサ、オフチップセキュアエレメント、トラステッドプロセッシングモジュール、または加入者識別モジュールなどが挙げられます。

通常、信頼できるサブシステムは、そのセキュリティ特性ゆえにセキュアな処理環境として使用されます。その結果、複数のセキュアな処理環境に分散されたPRoTまたはPRoTサービスが実現します。図9の例は、信頼できるサブシステムを備えたデバイスを示しており、セクション1.3.1で説明した分離境界を示しています。

信頼されたサブシステムは、独自の信頼のルートと独自のセキュリティライフサイクルを持つ場合があります。ただし、すべての構成と更新はPRoTによって実行される必要があり、その構成と状態は常にPRoTによって証明可能でなければなりません(セクション7.3を参照)。

Discussion