メインコンテンツまでスキップ

10. 鮮度

10. 鮮度

検証者または依拠者は、証拠または証明結果が生成された時点(すなわち「エポック」)を知る必要がある場合があります。これは、含まれるクレームが新鮮であると見なせるか、つまり証明者の最新の状態を依然として反映しており、かつ証明結果が証拠、裏付け、参照値に関する最新の評価ポリシーを使用して生成されたかを判断する上で不可欠です。

本セクションでは多くの詳細を提供します。ただし、プロトコル形式は定義せず、示される相互作用は抽象的なものです。本セクションは、鮮度を確保するために利用可能なオプションを理解するために、プロトコルとソリューションを作成する人々を対象としています。プロトコルにおける鮮度の提供方法はアーキテクチャ上の決定です。鮮度の提供はプロトコルにおける必要なラウンドトリップ数に影響を与えるため、設計の非常に早い段階で行う必要があります。異なる決定は、結果として得られる相互運用性に重大な影響を与えます。そのため、本セクションでは、図 9 に示されているような相互作用するプロトコル間で鮮度の選択が互換性を持つように十分な詳細を記述します。

鮮度は、推定されたエポックをそのポリシーにローカルに定義された「期限切れ」閾値と比較する証拠または証明結果の評価ポリシーに基づいて評価されます。ただし、証拠または証明結果が生成された直後に証明者の状態と評価ポリシーが変更される可能性があるという競合状態は常に存在します。目標は、検証者(証拠の場合)または依拠者(証明結果の場合)が受け入れられるレベルに最近性を絞り込むことです。鮮度要件に対するある程度の柔軟性は、証拠と証明結果の両方のキャッシュと再利用を可能にする重要な要素であり、それらの計算がリソース予算の大部分を使用する場合(例えば、制約されたデバイスのエネルギー)に特に価値があります。

証拠または証明結果のエポックを決定するための一般的なアプローチが 3 つあります。

10.1. 同期クロックを使用した明示的な時刻管理

最初のアプローチは、同期された信頼できるクロックに依存し、証拠または証明結果のクレームと共に署名されたタイムスタンプ([RATS-TUDA] を参照)を含めることです。タイムスタンプは、証拠または証明結果の生成時刻と特定のクレームが生成された時刻を区別するために、クレームごとに追加することもできます。クロックの信頼性は一般的に裏付けによって確立でき、通常は署名者の時刻同期メカニズムに関する追加のクレームが必要です。

ただし、一部のユースケースでは信頼できるクロックが利用できない場合があります。例えば、今日の多くの TEE では、クロックは TEE の外部でのみ利用可能であるため、TEE はそれを信頼できません。

10.2. ノンスを使用した暗黙的な時刻管理

2 番目のアプローチは、時刻管理の責任を検証者(証拠の場合)または依拠者(証明結果の場合)のみに置きます。例えば、このアプローチは、証明者が信頼できるクロックを持っていない場合、または時刻同期が何らかの形で損なわれている場合に適している可能性があります。このアプローチでは、評価エンティティが予測不可能なノンスを送信し、そのノンスが署名され、証拠または証明結果のクレームと共に含まれます。送信されたノンスと受信されたノンスが同じであることを確認した後、評価エンティティは、クレームがノンスが生成された後に署名されたことを知ります。これにより、証拠または証明結果に「おおよその」エポックを関連付けることができます。この場合、エポックがおおよそであると言われるのは次の理由によります。

  • エポックは、より細かい関連付けではなく、クレームセット全体に適用される、および

  • クレームの作成とクレームの収集の間の時間は区別できない。

10.3. エポック ID を使用した暗黙的な時刻管理

3 番目のアプローチは、一部の「エポック ID 配布者」によって証拠または証明結果の送信者と受信者の両方に定期的に送信されるエポック識別子(ID)を持つことに依存しています。

エポック ID はノンスとは異なり、複数回使用でき、同時に複数のエンティティによって使用することもできます。エポック ID はタイムスタンプとは異なり、時点に関する情報を伝える必要がありません。つまり、必ずしも単調に増加する整数である必要はありません。

ノンスアプローチと同様に、これにより、証拠または証明結果の鮮度を生成または評価するために信頼できるクロックや時刻同期を必要とせずに「おおよその」エポックを関連付けることができます。エポック ID 配布者のみがクロックへのアクセスを必要とし、定期的に新しいエポック ID を送信できるようにします。

生成された証拠または証明結果には最新のエポック ID が含まれ、評価エンティティは、受信した証拠または証明結果のエポック ID を、エポック ID 配布者から受信した最新のエポック ID と比較して、現在のエポック内にあるかどうかを判断できます。実際のソリューションでは、新しいエポックへの移行時の競合状態も考慮する必要があります。例えば、エポック ID 配布者によって署名されたカウンターをエポック ID として使用すること、メッセージおよび/またはチェックに現在と以前のエポック ID の両方を含めること、エポック ID が一致しない場合に再試行を要求すること、または受信者がまだ取得していないエポック ID に関連付けられている可能性のある着信メッセージをバッファリングすることによって対処できます。

より一般的には、評価エンティティが誤検知を生成しないようにするため(例えば、古くない証拠でも古いと見なして破棄する)、評価エンティティは最近受信したエポック ID で構成される「エポックウィンドウ」を保持する必要があります。このようなエポックウィンドウの深さは、エポック ID を最初に受信したものと最後に受信したものの間の最大ネットワーク伝播遅延に正比例し、エポック期間に反比例します。評価エンティティは、受信した証拠または証明結果に含まれるエポック ID を、そのエポックウィンドウ内のエポック ID と比較して、適切な一致を見つける必要があります。

ノンスアプローチでは通常、評価エンティティが生成された各ノンスの状態を保持する必要がありますが、エポック ID アプローチでは、すべてが同じエポック ID 配布者を使用している限り、証拠または証明結果を受信することが期待される証明者または検証者の数に依存しないように保持される状態を最小化します。

10.4. 議論

暗黙的および明示的な時刻管理は、ハイブリッドメカニズムに組み合わせることができます。例えば、証明環境内にクロックが存在し、信頼できる(改ざん防止)と見なされているが同期されていない場合、ノンスベースの交換を使用して、関係するピア間の(相対的な)時刻オフセットを決定し、その後任意の数のタイムスタンプベースの交換を行うことができます。

クレームの実際の値は、クレームが署名されるずっと前に生成されている可能性があることに注意することが重要です。その場合、署名時に値がまだ新鮮であることを保証するのは署名者の責任です。例えば、起動時に生成された値は、リモート検証者へのネットワーク接続が確立されてノンスが取得されるまで、セキュアストレージに保存されている可能性があります。

より詳細な議論と例は付録 A に記載されています。

エポック ID のセキュリティに関する議論については、セクション 12.3 を参照してください。