IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特表2024-507531デジタルデバイスのためのトラステッドコンピューティング
<>
  • 特表-デジタルデバイスのためのトラステッドコンピューティング 図1
  • 特表-デジタルデバイスのためのトラステッドコンピューティング 図2
  • 特表-デジタルデバイスのためのトラステッドコンピューティング 図3
  • 特表-デジタルデバイスのためのトラステッドコンピューティング 図4
  • 特表-デジタルデバイスのためのトラステッドコンピューティング 図5
  • 特表-デジタルデバイスのためのトラステッドコンピューティング 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-20
(54)【発明の名称】デジタルデバイスのためのトラステッドコンピューティング
(51)【国際特許分類】
   H04L 9/32 20060101AFI20240213BHJP
   G06F 21/57 20130101ALI20240213BHJP
【FI】
H04L9/32 200B
G06F21/57 350
H04L9/32 200F
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023550268
(86)(22)【出願日】2021-02-24
(85)【翻訳文提出日】2023-10-20
(86)【国際出願番号】 US2021019399
(87)【国際公開番号】W WO2022182341
(87)【国際公開日】2022-09-01
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】センフト,オスカー・ジャーハード
(72)【発明者】
【氏名】オソリオ,ミゲル・エンジェル
(72)【発明者】
【氏名】チェン,ティモシー・ジェイ
(72)【発明者】
【氏名】リゾ,ドミニク・アントニー
(57)【要約】
本文書は、デジタルデバイスのためのトラステッドコンピューティングをもたらすための技法およびシステムを説明する。技法およびシステムは、トラステッドコンピューティングおよび処理をもたらすために暗号アルゴリズムを使用し得る。そのようにすることにより、技法は、真正の計算を確実にし、不正行為を防止することの助けとなる。例えば、被指定者と関連付けられる署名(290)を受信し、署名(290)を検証する方法が説明される。署名(290)は、ホストコンピューティングデバイス(102)の被指定者と関連付けられ得るものであり、署名(290)は、ホストコンピューティングデバイス(102)の集積回路(120)と関連付けられるファームウェア、および、第1の非対称鍵ペアの第1のプライベート鍵によって生成され得る。署名の検証は、第2のプライベート鍵(210)と第2の公開鍵(214)とを有する第2の非対称鍵ペアに基づき得るものであり、第2のプライベート鍵(210)は、ホストコンピューティングデバイス(102)のライトワンスメモリ(110)内に記憶される。
【特許請求の範囲】
【請求項1】
ホストコンピューティングデバイス(102)の被指定者と関連付けられる署名(290)を受信するステップ(502)であって、前記署名(290)は、前記ホストコンピューティングデバイス(100)の集積回路と関連付けられるファームウェア、および、第1の非対称鍵ペアの第1のプライベート鍵(234)によって生成される、受信するステップ(502)と、
第2のプライベート鍵(210)と第2の公開鍵(214)とを有する第2の非対称鍵ペアに基づいて、前記署名(290)を検証するステップ(504)であって、前記第2のプライベート鍵は、前記ホストコンピューティングデバイス(102)のライトワンスメモリ(110)内に記憶される、検証するステップ(504)と
を含む方法。
【請求項2】
前記署名を検証する前記ステップは、前記第2の公開鍵により前記ファームウェアと関連付けられる第1の公開鍵にさらに基づく、請求項1に記載の方法。
【請求項3】
前記第1の公開鍵によって前記ファームウェアを検証するステップをさらに含む、請求項2に記載の方法。
【請求項4】
前記署名および前記第2のプライベート鍵に基づいて、前記ファームウェアの実行を制約するステップをさらに含む、請求項1から3のいずれか1項に記載の方法。
【請求項5】
実行を制約する前記ステップは、前記第2のプライベート鍵により定義されるルート署名にさらによる、請求項4に記載の方法。
【請求項6】
前記第2のプライベート鍵は、前記ホストコンピューティングデバイスの製造中に、前記ライトワンスメモリに書き込まれる、請求項1から5のいずれか1項に記載の方法。
【請求項7】
前記署名は、前記第1のプライベート鍵によりエンドースされる、請求項1から6のいずれか1項に記載の方法。
【請求項8】
前記第2のプライベート鍵は、前記集積回路と関連付けられる情報から導出され、前記ホストコンピューティングデバイスと同じモデルタイプを有する他のコンピューティングデバイスに関して、前記ホストコンピューティングデバイスに対して一意的である、請求項1から7のいずれか1項に記載の方法。
【請求項9】
前記第2のプライベート鍵は、前記ホストコンピューティングデバイスのコントローラと関連付けられる情報から導出され、前記ホストコンピューティングデバイスと同じモデルを有するデバイスに関して、前記ホストコンピューティングデバイスに対して一意的である、請求項1から8のいずれか1項に記載の方法。
【請求項10】
ホストコンピューティングデバイスのライトワンスメモリ内に記憶される第2のプライベート鍵に対して一意的なデバイス識別子とともに、ノンスを送出するステップと、
前記ノンスおよび前記デバイス識別子に基づく、署名されたコマンドを受信するステップと、
前記ホストコンピューティングデバイスの被指定者と関連付けられる第1の公開鍵によって、前記署名されたコマンドを検証するステップと
を含む方法。
【請求項11】
対称鍵、および、新たな被指定者と関連付けられる新たな被指定者識別子に基づいて、認証コードを生成するステップと、
読み出し専用メモリ拡張の追加的なエントリに、前記認証コードを書き込むステップと、
前記読み出し専用メモリ拡張から、前記被指定者と関連付けられる以前の被指定者エントリを削除するステップと
をさらに含む、請求項10に記載の方法。
【請求項12】
前記追加的なエントリに、新たな非対称鍵ペアの新たな公開鍵を書き込むステップ
をさらに含む、請求項11に記載の方法。
【請求項13】
前記新たな被指定者に、前記新たな非対称鍵ペアの新たなプライベート鍵を送出するステップをさらに含む、請求項12に記載の方法。
【請求項14】
前記新たな被指定者と関連付けられる前記新たなプライベート鍵によって生成された署名を受信するステップと、
前記第2のプライベート鍵と第2の公開鍵とを有する第2の非対称鍵ペアに基づいて、前記署名を検証するステップと
をさらに含む、請求項13に記載の方法。
【請求項15】
実行されるときに、請求項1から14に記載の方法のうちのいずれか1つを遂行するように、コンピューティングデバイスのプロセッサを構成する命令を含むコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【0001】
背景
デジタルコンピューティングデバイスは、様々な集積回路から成立させられることが多い。これらの集積回路は、随時改訂を要することがある。改訂は、インターネット、リムーバブルメディア、または、別の手段から、遠隔で供給されることがある。不正および悪質行為を防止するために、チップおよびデバイス設計者は、土台となるファームウェアに対する変更を制限するための機構を厳格に用いる。
【0002】
それらの機構は、一般的にはセキュアであるが、前に述べられた機構は、デジタルコンピューティングデバイス、および、様々な集積回路のコンフィギュアビリティを制限する。安全対策に関してよくあることであるが、セキュリティは、デジタルコンピューティングデバイスの使用、改訂、改造、および再加工の容易さを問題視することがある。
【発明の概要】
【0003】
概要
本文書は、コンピューティングシステムのセキュリティおよびレジリエンシを改善することを対象とされる、デジタルデバイスのためのトラステッドコンピューティングをもたらすための技法および装置を含む。これらの技法は、コンピューティングシステムについての信頼を確立し、以て、セキュアブート機能性、および、システムリソースについてのセキュアにされた処理をもたらし得る。
【0004】
これらの技法およびシステムは、トラステッドコンピューティングおよび処理をもたらすために暗号アルゴリズムを使用し得る。そのようにすることにより、技法は、真正の計算を確実にし、不正行為を防止することの助けとなる。例えば、被指定者と関連付けられる第1の署名を受信し、第1の署名を検証する方法が説明される。署名は、ホストコンピューティングデバイスの被指定者と関連付けられ得るものであり、署名は、ホストコンピューティングデバイスの集積回路と関連付けられるファームウェア、および、第1の非対称鍵ペアの第1のプライベート鍵によって生成され得る。署名の検証は、第2の非対称鍵ペアを使用するとき、第2のプライベート鍵と第2の公開鍵とを有し、第2のプライベート鍵は、ホストのライトワンスメモリ内に記憶される。
【0005】
本文書は、さらには、デジタル記憶域を有するコンピュータ可読媒体を説明する。デジタル記憶域は、読み出し専用、ライトワンス区画、および不揮発性部分を含む。コンピュータ可読媒体は、読み出し専用、ライトワンス区画上に記憶される第2のプライベート鍵と、不揮発性部分上に記憶される第1の公開鍵とを含み得る。コンピュータ可読形式においてデジタル記憶域上に記憶される検証プログラムが、プライベート鍵により署名され、公開鍵によって復号されたダイジェストを、元のファイルのダイジェストと比較することにより、署名を検証する。
【0006】
上記で説明された方法などの、1つの態様の任意選択の特徴は、他の態様と組み合わされ得る。
【0007】
本文書は、さらには、デジタル記憶域とプロセッサとを有するシステムを説明する。デジタル記憶域は、読み出し専用、ライトワンス区画、および不揮発性部分を含む。コンピュータ可読媒体は、読み出し専用、ライトワンス区画上に記憶される第2のプライベート鍵と、不揮発性部分上に記憶される第1の公開鍵とを含み得る。コンピュータ可読媒体は、さらには、受信された署名を検証する、コンピュータ可読形式においてデジタル記憶域上に記憶される検証プログラムを含む。
【0008】
これらのものによって、信頼システムが、無認可のファームウェア改訂がホストコンピューティングデバイスの集積回路上で実行することを防止する、ホストコンピューティングシステム上のトラステッド処理およびコンピューティングを確実にすることが可能になる。
【0009】
本概要は、詳細な説明および図面において下記でさらに説明される、デジタルデバイスのためのトラステッドコンピューティングに関する単純化された概念を紹介するために提供される。本概要は、請求される主題事項の本質的な特徴を識別することを意図されず、本概要は、請求される主題事項の範囲を決定することにおける使用を意図されるものでもない。
【0010】
デジタルデバイスのためのトラステッドコンピューティングをもたらすことの1つまたは複数の態様の詳細が、後に続く図面を参照して、本文書において説明される。同じ番号が、類する特徴および構成要素を参照するために、図面の全体を通して使用される。
【図面の簡単な説明】
【0011】
図1】本開示の1つまたは複数の実現形態による、デジタルデバイスのためのトラステッドコンピューティングを可能にする技法が実現され得る一例の環境を例示する図である。
図2】本開示の1つまたは複数の実現形態による、一例のコンピューティングデバイスを例示する図である。
図3】本開示の1つまたは複数の実現形態による、一例のコンピュータ可読媒体を例示する図である。
図4】本開示の1つまたは複数の実現形態による、マニフェストを更新するための例方法を例示する図である。
図5】本開示の1つまたは複数の実現形態による、ソフトウェアの実行を制約するための例方法を例示する図である。
図6】本開示の1つまたは複数の実現形態による、被指定者をアクティベートするための例方法を例示する図である。
【発明を実施するための形態】
【0012】
詳細な説明
概観
一例のコンピューティングシステム(例えば、サーバブレード)は、マザーボードまたは他のプリント回路板に装着される、様々な集積回路およびハードウェア構成要素を含む。集積回路およびハードウェア構成要素は、通信および相互作用するために相互接続する。構成要素どうしの間の通信および相互作用は、暗号機構に基づいて信頼を確立し得る。
【0013】
コンピューティングシステムは、階層構造において通信する様々な構成要素を有するということを想定する。例として、ルート構成要素が、暗号鍵(例えば、公開-プライベート鍵ペア)と関連付けられ得る。鍵の1つまたは両方は、ルート構成要素上に記憶され得る。例として、ルート構成要素は、プライベート鍵により署名されたファームウェアの検証を提供するための公開鍵を所蔵し得る。署名またはエンドースメントは、プライベート鍵により暗号化され、公開鍵により検証されるメッセージである。メッセージは、ビットのセット、または、ビットのセットのダイジェストであり得る。ファームウェアがコンピューティングシステムにより受信されるとき、ルート構成要素から下流の構成要素は、公開鍵によってファームウェアを走らせるために、ルート構成要素から認可を受けなければならない。
【0014】
プライベート鍵が、元の機器製造者または被指定者により保有されるならば、コンピューティングシステムのファームウェアは、プライベート鍵の持主により更新されるのみであり得る。本開示の全体を通して論考されるように、プライベート鍵は、無認可のアクセスを防止し、権限指定としての代替的な鍵の発行を可能とするために、ルート構成要素、または、他のセキュアにされた記憶域上に記憶される。例として、主鍵が、追加的なプライベート-公開鍵ペアを発行し、それらのプライベート-公開鍵ペアが、コンピューティングシステムに向けられるファームウェアに署名し、そのファームウェアを検証することを可能とするために使用され得る。そうであるから、ルート構成要素と関連付けられる公開鍵は、プライベート-公開鍵ペアが正当であるということ、および、発行されたペアにより署名され、検証されたファームウェアが正当であるということについて、さらに検証することができる。
【0015】
本開示により教示される例として、ルート構成要素は、発行された、および妥当なプライベート-公開鍵ペアのマニフェストまたはリポジトリを保有し得る。マニフェストは、コンピューティングシステムについての発行された署名者権限を追跡、更新、および剥奪するために、各プライベート-公開鍵ペアと関連付けられる、識別子、公開鍵、およびダイジェストを維持し得る。
【0016】
そのようなコンピューティングシステムは、本開示により教示されるように、攻撃ベクトルに対して補強され得る。例として、ヒューズが、ルート構成要素への物理的アクセスを阻止するために適所にあり得る。コンピューティングシステムは、競合状態(例えば、チェックの時間-使用の時間(time-of-check to time-of-use))に対してさらに補強され得る。例として、ルート構成要素は、受信されたファームウェアに署名し、プラットフォームの下流構成要素は、ルート構成要素と関連付けられる公開鍵に対して署名をチェックする。そうであるから、侵入は、ルートキットおよび他の不正行為を遂行することができない。
【0017】
この例において、検証が、ルート構成要素によって、ファームウェア更新およびハードウェア構成要素動作について維持される。製造後の公開-プライベート鍵ペアの発行を可能とすることにより、コンピューティングシステムおよびデバイスは、寿命の終了、または、サポートの終了まででさえ維持され得る。さらに言えば、サポートは、新たな公開-プライベート鍵ペアの発行によって、追加的なエンティティにシームレスに移転させられ得る。
【0018】
代替的または付加的な例において、ルート構成要素の公開-プライベート鍵ペアは、製造時にルート構成要素に書き込まれ得る。鍵は、モデルタイプまたはモデル番号に基づいて、デバイスに対して一意的、または、実質的に一意的であり得る。例として、鍵は、コンピューティングシステム上で、乱数生成器、および、他のハードウェア構成要素識別子に基づいて生成され得る。鍵値の重複、または、起こり得る意図的な重複についての数値的可能性が存し得る。鍵値は、時間的(例えば、データ時間)値、または、製造時にもたらされる他の情報(例えば、場所、商標、モデル番号)にさらに基づき得る。所有者または被指定者は、製造においてデバイスと関連付けられた、または、製造後にファームウェア財産管理者として指定された関係者であり得る。例として、デバイスまたは回路が、会社Aにより製造されるが、その会社Aは結局、デバイスのサポートを終了する、または、会社Bにデバイスのサポートを渡すことがある。会社Bは、そのデバイス内のファームウェアまたはチップセットのうちの1つまたは複数の所有者または財産管理者として指定され、デバイスについてのファームウェア更新に署名するために、この認可を使用することがある。
【0019】
本開示の1つの例は、コンピューティングシステム上のプライベート鍵の記憶を含む。コンピューティングシステム上の他の構成要素について、ファームウェアに署名し、そのファームウェアを実行するための権限は、そのプライベート鍵に基づき得る。さらに言えば、本開示において提供される、このおよび他の実現形態のそのような応用によって、ユーザエクスペリエンスは増大し、デバイス維持持続期間は延びる。これらは、説明される技法およびデバイスがコンピューティングシステムのセキュリティを改善するためにどのように使用され得るかの、ごく少数の例であり、そのことの他の例および実現形態は、本文書の全体を通して説明される。本文書は、今から、例動作環境に移り、その後に、例デバイス、方法、およびシステムが説明される。
【0020】
動作環境
図1は、本開示の1つまたは複数の実現形態による、データを認証および秘匿し得るホストコンピューティングデバイス102の一例のデバイス線図100を例示する。ホストコンピューティングデバイス102は、明快さのために図1から省かれた追加的な構成要素およびインターフェースを含み得る。ホストコンピューティングデバイス102は、種々の電子デバイスまたはユーザデバイスであり得る。例えば、ホストコンピューティングデバイス102は、モバイルフォン102-1、タブレットデバイス102-2、ラップトップコンピュータ102-3、デスクトップコンピュータ102-4、サーバ、クラウドコンピュータ、または、デジタル論理を使用する計算手段であり得る。
【0021】
ホストコンピューティングデバイス102は、1つまたは複数のプロセッサ104を含む。プロセッサ104は、任意の手段のものであり得るものであり、コンピュータ可読媒体106と関連付けられ得る。コンピュータ可読媒体106は、ランダムアクセスメモリ(RAM)108、読み出し専用メモリ(ROM)110、または不揮発性メモリ(NVM)112を含み得るものであり、非一時的である。セキュアブート、および、他のトラステッドコンピューティング手段をもたらす、1つの例が、図1において示される。任意の組み合わせおよび数のプロセッサまたはコンピュータ可読媒体が使用され得る。コンピュータ可読媒体は、ホストコンピューティングデバイス102に搭載されて、または、非搭載で、または、それらの任意の組み合わせで位置を定められ得る。例として、コンピュータ可読媒体106は、ネットワークアクセス可能な場所(例えば、クラウド)、または、リムーバブルデバイス(例えば、thumb drive)であり得る。
【0022】
任意のタイプのコンピュータ可読媒体106(例えば、ランダムアクセスメモリ(RAM)、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、不揮発性RAM(NVRAM)、読み出し専用メモリ(ROM)、フラッシュメモリ)が、ホストコンピューティングデバイス102のデータを記憶し、処理バッファをもたらすために使用され得る。データは、オペレーティングシステム、1つまたは複数のアプリケーション、ユーザデータ、およびマルチメディアデータを含み得る。データは、本開示の教示を実現するように動作可能な命令を含む、検証プログラムを含む、コンピュータ可読形式における命令を含み得る。命令は、任意の手段のものであり得るものであり、フィールドプログラマブルゲートアレイ(FPGA)、機械コード、アセンブリコード、高次コード(例えば、RUBY)、または、それらの任意の組み合わせを含み得る。プロセッサは、本開示において提供されるようなステップおよび実行の組み合わせにしたがうように命令を実行し得る。
【0023】
ホストコンピューティングデバイス102は、多くの電気構成要素またはチップのうちの1つとしての集積回路120を含み得る。集積回路120は、ホストコンピューティングデバイス102と関連付けられるモノリスまたは擬似モノリス回路であり得る。例として、集積回路120は、トラステッドプラットフォームモジュール(TPM)であり得る。集積回路は、ホストコンピューティングデバイス102と関連付けられる、任意のチップ、構成要素、回路網、または、それらの任意の組み合わせであり得る。集積回路120は、インストールされたファームウェア122を含み得る。例として、インストールされたファームウェア122は、集積回路120を動作させるための命令の任意のセットを含み得る。インストールされたファームウェア122は、集積回路120と関連付けられる任意のタイプのメモリ内に保持され得る。インストールされたファームウェア122は、より高いレベルのソフトウェアにサービスを提供する任意の数の基本的または基礎的機能を含み得る。被指定者130または任意の他のエンティティ(例えば、ユーザ、コントローラ)は、インストールされたファームウェア122を、改訂されたファームウェア124によって更新することを所望することがある。改訂されたファームウェア124は、インストールされたファームウェア122に対する任意のタイプのソフトウェア更新であり得る。
【0024】
図2は、本開示の1つまたは複数の実現形態による、一例のホストコンピューティングデバイス102を例示する。ホストプライベート鍵210が、ROM110上に配され得る。ROM110は、ROM110の変造を防止するヒューズまたは他の機構によってROM基板に結着されるライトワンスメモリであり得る。加えて、ROM110は、変造または無認可のアクセスが試行されるという事象において、ホストコンピューティングデバイス102をロックアウトするためのタンパーエビデント機構を含み得る。ROM110は、NVM112と電気通信している。ROM110とNVM112との間の電気通信は、双方向であり得るものであり、NVM112内に記憶されるマニフェスト220は、マニフェスト220の真正性を確実にするために、ホストプライベート鍵210により署名された署名を含む。マニフェスト220、または、そのマニフェスト220内のエントリについて言えば、それは、ホストプライベート鍵により署名され、暗号ライブラリ212によってNVM112内に記憶され得る。暗号ライブラリ212に関して言えば、それは、ホストプライベート鍵210およびNVM112への分離されたアクセスを有し得る。
【0025】
本明細書において論考されるホストプライベート鍵210および他の鍵は、様々な手段のものであり得る。ホストプライベート鍵210は、様々なアルゴリズムを使用して生成され得る。例として、RSA-SHA3-512が使用され得る。
【0026】
例において、暗号ライブラリ212は、ホストプライベート鍵210により署名されたプライベートおよび公開鍵を生成するための命令を含む。ライブラリは、オープンソース(例えば、OPENSSL)またはクローズドソースであり得る。暗号ライブラリ212は、ホストプライベート鍵210に基づいて、以前の被指定者エントリ230を生成するために使用される。以前の被指定者エントリ230は、製造中に構成され、現在の被指定者公開鍵232を含み得る。
【0027】
指定ステータスに依存して、マニフェスト220は、2つ以上のエントリ230、240を含み得る。例として、現在の被指定者エントリ240は、新たな被指定者についての、新たな被指定者公開鍵242と、準備の追加的な鍵とを含む。それぞれエントリ230、240と関連付けられる公開鍵232、242は、改訂されたファームウェア124を検証するために、集積回路120上に記憶される。
【0028】
改訂されたファームウェア124は、現在の被指定者132によって発行され得るものであり、現在の被指定者132は、集積回路120についての改訂されたファームウェア124を提供する様々なエンティティであり得る。例において、現在の被指定者132は、被指定者署名290を形成するために、以前の被指定者エントリ230と関連付けられる、および、公開鍵232と関連付けられる、被指定者プライベート鍵234によって、改訂されたファームウェア124に署名する。換言すれば、被指定者プライベート鍵234および被指定者公開鍵232は、非対称鍵ペアであり、被指定者プライベート鍵234は、改訂されたファームウェア124にデジタル署名し、以て、被指定者署名290を生成するために使用される。被指定者署名290および改訂されたファームウェア124は、ホストコンピューティングデバイス102のネットワークインターフェースカード250に、インターネット200越しに送出される。ブート時、集積回路120は、改訂されたファームウェア124が妥当であるということを確実にするために、ホストコンピューティングデバイス102の中に記憶される改訂されたファームウェア124をチェックし、ホスト公開鍵214は、改訂されたファームウェア124が、ホストプライベート鍵210によりエンドースされたプライベート鍵により署名されたということを確実にするために、改訂されたファームウェア124をチェックするために使用され得る。改訂されたファームウェア124は、ファームウェアが、以前の被指定者エントリ230の現在の被指定者に割り当てられたプライベート鍵により署名されたということを確実にするために、ホスト公開鍵214または被指定者公開鍵232によりチェックされ得る。
【0029】
図3を参照すると、本開示の1つまたは複数の実現形態による、一例のコンピュータ可読媒体106が示される。コンピュータ可読媒体106は、個別の個々の構成要素よりもむしろ、ホストコンピューティングデバイス102の至るところに分散されることがある。例において、コンピュータ可読媒体106は、さらにはホストプライベート鍵210と暗号ライブラリ212とを含み得る、ROM110を含む。コンピュータ可読媒体106は、フラッシュ情報セクション330を含む、NVM112をさらに含み得る。フラッシュ情報セクション330は、以前の被指定者エントリ230と、現在の被指定者エントリ240とを含む、マニフェスト220を所蔵し得る。コンピュータ可読媒体106は、1つまたは複数のフラッシュバンク350をさらに含み得る。フラッシュバンク350は、ROM拡張メモリ352、被指定者証明書メモリ354、ブートローダメモリ356、カーネルメモリ358、および、ホストコンピューティングデバイス102と関連付けられる他のデータメモリ360を格納し得る。ROM拡張メモリ352は、NVM112内に記憶され、ホストプライベート鍵210により署名された情報を内包する。ROM拡張メモリ352は、さらには、機能を含み得るものであり、1つのそのような機能は、次のブートステージに実行特権を引き渡す前にマニフェスト220へのアクセスを不可能にし得る。
【0030】
ROM拡張メモリ352は、ROM110の機能性を拡張する修正可能コードを表し得る。ROM110は、初期ブートストラップ、セキュアブート、およびセキュリティ構成について責任を負い得る。ROM拡張メモリ352は、ハードウェア問題点を是正するためにパッチを適用すること、セキュリティセッティングを適用すること、および、鍵の準備を遂行することと関連付けられ得る。
【0031】
ブートローダメモリ356は、被指定者プライベート鍵234により署名され得るものであり、カーネルメモリ358は、さらには、被指定者プライベート鍵234により署名され得る。そうであるから、ブートローダメモリ356およびカーネルメモリ358内に記憶される情報の真正性は、被指定者公開鍵232により検証され得る。ホスト公開鍵214が、ROM拡張メモリ352内にさらに記憶され、完全性は、ホストプライベート鍵210により署名されたROM拡張署名により保護され得る。
【0032】
本明細書において論考される鍵は、ホストコンピューティングデバイス102と関連付けられる、集積回路120または他の構成要素に基づき得る。鍵は、集積回路120と関連付けられる情報から導出され得る。例として、鍵は、集積回路120のシリアル番号またはモデル番号から導出され得る。
【0033】
例方法
図4に移ると、本開示の1つまたは複数の実現形態による、マニフェスト220を更新するための一例の方法400が示される。方法400は、ブロックのセットとして示され、それらのブロックは、遂行される動作およびステップを明示するが、それぞれのブロックによる動作を遂行することについて、示される順序または組み合わせに必ずしも制限されない。さらに、動作のうちの1つまたは複数のうちの任意のものは、広範囲の勢ぞろいの、追加的な、および/または代替の方法をもたらすために、反復させられる、組み合わされる、再編成される、省かれる、または、連結されることがある。後に続く論考の部分において、先の図の例への言及がなされることがあり、それらの図への言及は、単に例のためになされる。技法は、1つのデバイス上で動作する、1つのエンティティまたは複数個のエンティティによる遂行に制限されない。
【0034】
マニフェスト220の以前の被指定者エントリ230という形になる、スロット指定402、識別子指定404、公開鍵リポジトリ406、およびダイジェストリポジトリ408に対応する組織的指定を有するマニフェスト220が示される。公開鍵リポジトリ406は、被指定者公開鍵232を含み得る。スロット指定402は、以前の被指定者エントリ230(例えば、以前または元の被指定者)および現在の被指定者エントリ240(例えば、現在の被指定者)へのエントリを割り当てる、2つの値に制限され得る。識別子指定404は、エントリ230、240を一意的に識別し得る。例として、エントリ230、240は、ホストコンピューティングシステム102の各被指定者に対応するようにインクリメントする識別子を割り当てられ得る。公開鍵リポジトリ406は、以前の被指定者130および現在の被指定者132と関連付けられる鍵を含み得る。カラムを横断し続けると、ダイジェストリポジトリ408は、第1のエントリまたは以前の被指定者エントリ230と関連付けられる、以前の被指定者ダイジェスト410を含む。以前の被指定者ダイジェスト410は、メッセージ認証コード(MAC)、鍵付きハッシュメッセージ認証コード(HMAC)、または、別のタイプの完全性および真正性関数であり得る。
【0035】
以前の被指定者ダイジェスト410は、暗号ライブラリ212により管理される対称鍵に基づき得る。対称鍵は、製造中に準備され、ROM110のライトワンス記憶域内に記憶される。以前の被指定者ダイジェスト410が以前の被指定者エントリ230と関連付けられる実例において、現在の被指定者エントリ240と関連付けられる現在の被指定者ダイジェスト412は、鍵を管理連鎖(custody chain)に結び付けるための取り組みにおいて、以前の被指定者ダイジェスト410に基づき得る。
【0036】
初期化ステップ420中、ホストコンピューティングデバイス102は、ROM110およびROM拡張メモリ352内に記憶される機能によって、以前の被指定者エントリ230を生成し得る。準備ステップ440は、被指定者プライベート鍵234により署名された署名を検証するために、現在の被指定者132と関連付けられる公開鍵を含む、マニフェスト220への追加的なエントリまたは現在の被指定者エントリ240を発行する。アクティベーションステップ460は、1つのみのアクティベートされたエントリ、現在の被指定者エントリ240を伴うマニフェスト220を発行する。以前の被指定者エントリ230は、マニフェスト220から削除され、または、他の形で非アクティベートされる。
【0037】
図5において、本開示の1つまたは複数の実現形態による、ソフトウェアの実行を制約するための一例の方法500が示される。方法500は、ホストコンピューティングデバイス102により遂行され得る。ブロック502において、被指定者署名290が受信される。被指定者署名290は、インストールされたファームウェア122または改訂されたファームウェア124に基づき得る。被指定者署名290は、プライベート鍵に基づき得るということが察知されるはずである。プライベート鍵は、製造中にホストに割り当てられ、ROM110内または他のところに記憶され得る。別の例において、プライベート鍵は、現在の被指定者132に割り当てられ、現在の被指定者132により、セキュアに記憶され得る。
【0038】
ブロック504において、被指定者署名290は、ホストコンピューティングシステム102により検証される。被指定者署名290は、種々の手立てにおいて、ならびに、複数個のプロセスおよびステップによって検証され得る。1つの非制限的な例として、被指定者署名290は、被指定者公開鍵232がホストプライベート鍵210によりエンドースされたということを確実にするために、被指定者公開鍵232のハッシュを算出し、ホスト公開鍵214により被指定者公開鍵232のエンドースメントを復号することにより検証され得る。エンドースメントは、被指定者公開鍵232と関連付けられて、以前の被指定者エントリ230内に記憶され得る。
【0039】
代替法として、または加えて、被指定者署名290は、ROM拡張メモリ352のハッシュを算出し、ホスト公開鍵214によってROM拡張メモリ352のエンドースメントを復号することにより検証され得る。ホスト公開鍵214は、直接的または間接的に、被指定者公開鍵232のホストプライベート鍵210によるいかなるエンドースメントについても検証するために使用され得る。ホストプライベート鍵210は、被指定者公開鍵232を検証するために、被指定者公開鍵232、ROM拡張メモリ352、ホストコンピューティングデバイス102と関連付けられる他のメモリ、または、それらの任意の組み合わせをエンドースし得る。
【0040】
被指定者署名290は、改訂されたファームウェア124のハッシュを算出することにより検証され得る。被指定者署名290は、被指定者公開鍵232によって復号され得る。任意の一意性アルゴリズムまたは暗号機構が、本明細書において論考されるハッシング、暗号化、および復号のために使用され得る(例えば、巡回冗長検査、チェックサム、鍵付き暗号ハッシュ関数、鍵なし暗号ハッシュ関数)。一意性アルゴリズムは、改訂されたファームウェア124上で、他の情報、または、その情報の任意の部分と併せて遂行され得る。例において、改訂されたファームウェア124のハッシュが、復号された被指定者署名290と等価であり(例えば、等しく)、使用される復号鍵が、ホスト公開鍵214により認証されるならば、ファームウェア124は、真正と考えられ、集積回路120上で実行され得る。
【0041】
ブロック506において、改訂されたファームウェア124は、被指定者公開鍵232などの被指定者公開鍵によって検証される。例として、被指定者公開鍵232は、NVM112上に記憶され、被指定者署名290、または、ファームウェア124全体を復号するためにアクセスされ得る。ファームウェア124が、被指定者132により暗号化された、または、被指定者132により署名されたということを検証するために、比較が実行され得る。そうであるから、ファームウェア124は、2つの公開鍵の検証を含むプロセスによって検証され得る。検証のうちの1つは、被指定者公開鍵232が、妥当であり、ルート署名を使用してホストプライベート鍵210により署名されるということを確実にし得る。そのような検証は、ホスト公開鍵214により遂行され得る。検証のうちの別のものは、ファームウェア124が、被指定者プライベート鍵234を使用して被指定者132により署名したということを確実にし得る。そうであるから、プロセスによって、ホストコンピューティングデバイス102の中に記憶される信頼のルートによる、変動する被指定者132への、ホストコンピューティングデバイス102による所有権の移転が可能となる。
【0042】
ブロック508において、改訂されたファームウェア124の実行は、集積回路120または別の手段により制約され得る。例として、集積回路120は、上記で論考された1つまたは複数の比較の論理結果に基づくイネーブルビットを含み得る。ハッシュ、および、復号された被指定者署名290が等しくないならば、集積回路120上でのファームウェア124の実行は防止される。ファームウェアの実行制約は、ホストコンピューティングデバイス102の任意のファームウェアに拡張され得る。集積回路への電力が取り去られることがある。
【0043】
ホストプライベート鍵210は、集積回路120、ホストコンピューティングデバイス102上に配される他の集積回路、乱数、製造者に関係付けられる任意の他の情報(例えば、ホストコンピューティングデバイス102のモデル、ソフトウェア、または回路網)、または、それらの任意の組み合わせに基づき得る。ホストプライベート鍵210は、実質的に、ホストコンピューティングデバイス102に対して一意的、または、ホストコンピューティングデバイス102のセット(例えば、モデルタイプ、モデル番号)について一意的であり得る。モデル番号は、製品を識別するための、製造者による様々な指定であり得る。モデルタイプは、製品またはモデル番号のグループを識別するための、製造者による様々な指定であり得る。
【0044】
絶対の一意性は、数値アルゴリズムにより、数値的に達成されないことがあり、実質的に一意的というのは、同様のホストコンピューティングデバイス102の個別のセットが、セットの中で一意的なホストプライベート鍵210を有することの一意性を含み得る。さらに言えば、1つの他の例において、実現される現実よりもむしろ、製造者の意向が、実質的な一意性を定義し得る。
【0045】
図6に移ると、本開示の1つまたは複数の実現形態による、被指定者をアクティベートするための一例の方法が例示される。ブロック602において、ノンスが送出される。ノンスは、1回使用の数であり得るものであり、ホストコンピューティングデバイス102のクロックに基づき得る。ノンスは、ホストコンピューティングデバイス102の決定論的ランダムビット生成器に基づき得る。ホストコンピューティングデバイス102は、所有権移転要求に応答して、ノンスを送出し得る。例において、ノンスは、ホストコンピューティングデバイス102と関連付けられるデバイス識別子とともに発送される。デバイス識別子、ノンス、および要求は、そのとき、ホストコンピューティングデバイス102により署名される。さらなる例として、新たな被指定者が所有権移転を要求し得るということを想定する。この新たな被指定者は、寿命の終了、または、サポートの終了の発行に起因して、新たな被指定者が必要であるときなどの、製造者および現在の被指定者とは異なるエンティティであり得る。
【0046】
ブロック604において、署名されたアンロックコマンドが受信される。ホストコンピューティングデバイス102は、アンロックコマンドを要求し得る。クラウドベースのアプリケーション、または、別の手段が、ホストコンピューティングデバイス102により送出されたアンロックコマンド要求を受信し得る。現在の被指定者132は、アンロックコマンド要求へのアクセスを許可され得るものであり、被指定者プライベート鍵により署名されたアンロックコマンドの送信を認可し得る。署名されたアンロックコマンドは、ホストコンピューティングデバイス102が、現在の被指定者エントリ240、または、新たな被指定者に対応する別のエントリを書き込むために、NVM112の所有権ステータスをアンロックすることを認可する。
【0047】
ブロック606において、ホストコンピューティングデバイス102は、被指定者プライベート鍵234により署名されたような、現在の被指定者132によるアンロックコマンドの署名を検証する。検証は、アンロックコマンドのハッシュ、および、アンロックコマンドの復号された署名を比較することを含み得る。署名されたコマンドの検証は、現在の被指定者エントリ240が書き込まれることを可能とするように、NVM112をアンロックする。
【0048】
ブロック608において、ホストコンピューティングデバイス102は、現在の被指定者ダイジェスト412を計算する。現在の被指定者ダイジェスト412は、メッセージ認証コード(MAC)、鍵付きハッシュメッセージ認証コード(HMAC)、または、別のタイプの完全性および真正性関数であり得る。現在の被指定者ダイジェスト412は、暗号ライブラリ212により管理される対称鍵に基づき得る。対称鍵は、発行される公開およびプライベート鍵のセキュアな移転を可能にするために、新たな被指定者またはデバイス製造者に知られ得る。対称鍵は、製造中に準備され、ROM110のライトワンス記憶域内に記憶される。以前の被指定者ダイジェスト410が以前の被指定者エントリ230と関連付けられる実例において、現在の被指定者エントリ240と関連付けられる現在の被指定者ダイジェスト412は、鍵を管理連鎖に結び付けるための取り組みにおいて、以前の被指定者ダイジェスト410に基づき得る。
【0049】
ブロック610において、現在の被指定者ダイジェスト412は、NVM112に書き込まれる。現在の被指定者ダイジェスト412を書き込む際、ホストコンピューティングデバイス102は、マニフェスト220、ROM拡張354、フラッシュバンク350の残り、または、それらの任意の組み合わせに再署名し得る。ブロック612において、以前の被指定者エントリ230は、マニフェスト220から削除される、消去される、または、他の形で消失させられる。以前の被指定者ダイジェスト410を削除する際、ホストコンピューティングデバイス102は、マニフェスト220、ROM拡張354、フラッシュバンク350の残り、または、それらの任意の組み合わせに再署名し得る。
【0050】
ブロック614において、新たな公開鍵が、公開鍵リポジトリ406に書き込まれ、現在の被指定者エントリ240と関連付けられ得る。新たな公開鍵は、被指定者公開鍵232であり得る。そうであるから、ブロック616において、新たな公開鍵は、本開示の全体を通して論考された方法を使用して、ファームウェア改訂を認可するために使用され得る。本明細書においてブロックと呼称される、これらのステップのうちの任意のものが、省かれる、再配置構成される、または、繰り返されることがあるということが察知されるはずである。
【0051】
結論
デジタルデバイスのためのトラステッドコンピューティングのための技法、および、そのトラステッドコンピューティングを可能にする装置の実現形態が、特徴および/または方法に特有の文言において説明されたが、添付される特許請求の範囲の主題は、説明された特定の特徴または方法に必ずしも制限されないということが理解されるべきである。むしろ、特定の特徴および方法は、デジタルデバイスのためのトラステッドコンピューティングを可能にする一例の実現形態として開示される。
図1
図2
図3
図4
図5
図6
【手続補正書】
【提出日】2023-11-06
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ホストコンピューティングデバイス(102)の被指定者と関連付けられる署名(290)を受信するステップ(502)であって、前記署名(290)は、前記ホストコンピューティングデバイス(102)の集積回路と関連付けられるファームウェア、および、第1の非対称鍵ペアの第1のプライベート鍵(234)によって生成される、受信するステップ(502)と、
第2のプライベート鍵(210)と第2の公開鍵(214)とを有する第2の非対称鍵ペアに基づいて、前記署名(290)を検証するステップ(504)であって、前記第2のプライベート鍵は、前記ホストコンピューティングデバイス(102)のライトワンスメモリ(110)内に記憶される、検証するステップ(504)と
を含む方法。
【請求項2】
前記署名を検証する前記ステップは、前記第2の公開鍵により前記ファームウェアと関連付けられる第1の公開鍵にさらに基づく、請求項1に記載の方法。
【請求項3】
前記第1の公開鍵によって前記ファームウェアを検証するステップをさらに含む、請求項2に記載の方法。
【請求項4】
前記署名および前記第2のプライベート鍵に基づいて、前記ファームウェアの実行を制約するステップをさらに含む、請求項1から3のいずれか1項に記載の方法。
【請求項5】
実行を制約する前記ステップは、前記第2のプライベート鍵により定義されるルート署名にさらによる、請求項4に記載の方法。
【請求項6】
前記第2のプライベート鍵は、前記ホストコンピューティングデバイスの製造中に、前記ライトワンスメモリに書き込まれる、請求項1から5のいずれか1項に記載の方法。
【請求項7】
前記署名は、前記第1のプライベート鍵によりエンドースされる、請求項1から6のいずれか1項に記載の方法。
【請求項8】
前記第2のプライベート鍵は、前記集積回路と関連付けられる情報から導出され、前記ホストコンピューティングデバイスと同じモデルタイプを有する他のコンピューティングデバイスに関して、前記ホストコンピューティングデバイスに対して一意的である、請求項1から7のいずれか1項に記載の方法。
【請求項9】
前記第2のプライベート鍵は、前記ホストコンピューティングデバイスのコントローラと関連付けられる情報から導出され、前記ホストコンピューティングデバイスと同じモデルを有するデバイスに関して、前記ホストコンピューティングデバイスに対して一意的である、請求項1から8のいずれか1項に記載の方法。
【請求項10】
ホストコンピューティングデバイスのライトワンスメモリ内に記憶される第2のプライベート鍵に対して一意的なデバイス識別子とともに、ノンスを送出するステップと、
前記ノンスおよび前記デバイス識別子に基づく、署名されたコマンドを受信するステップと、
前記ホストコンピューティングデバイスの被指定者と関連付けられる第1の公開鍵によって、前記署名されたコマンドを検証するステップと
を含む方法。
【請求項11】
対称鍵、および、新たな被指定者と関連付けられる新たな被指定者識別子に基づいて、
認証コードを生成するステップと、
読み出し専用メモリ拡張の追加的なエントリに、前記認証コードを書き込むステップと、
前記読み出し専用メモリ拡張から、前記被指定者と関連付けられる以前の被指定者エントリを削除するステップと
をさらに含む、請求項10に記載の方法。
【請求項12】
前記追加的なエントリに、新たな非対称鍵ペアの新たな公開鍵を書き込むステップ
をさらに含む、請求項11に記載の方法。
【請求項13】
前記新たな被指定者に、前記新たな非対称鍵ペアの新たなプライベート鍵を送出するステップをさらに含む、請求項12に記載の方法。
【請求項14】
前記新たな被指定者と関連付けられる前記新たなプライベート鍵によって生成された署名を受信するステップと、
前記第2のプライベート鍵と第2の公開鍵とを有する第2の非対称鍵ペアに基づいて、前記署名を検証するステップと
をさらに含む、請求項13に記載の方法。
【請求項15】
コンピューティングデバイスのプロセッサに請求項1から14に記載の方法のうちのいずれか1つを実行させるプログラム
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0049
【補正方法】変更
【補正の内容】
【0049】
ブロック610において、現在の被指定者ダイジェスト412は、NVM112に書き込まれる。現在の被指定者ダイジェスト412を書き込む際、ホストコンピューティングデバイス102は、マニフェスト220、ROM拡張メモリ352、フラッシュバンク350の残り、または、それらの任意の組み合わせに再署名し得る。ブロック612において、以前の被指定者エントリ230は、マニフェスト220から削除される、消去される、または、他の形で消失させられる。以前の被指定者ダイジェスト410を削除する際、ホストコンピューティングデバイス102は、マニフェスト220、ROM拡張メモリ352、フラッシュバンク350の残り、または、それらの任意の組み合わせに再署名し得る。
【国際調査報告】