(57)【要約】【課題】トラステッドコンポーネント更新システムおよびトラステッドコンポーネント更新方法を提供する。【解決手段】トラステッドコンポーネント更新システム１０は、演算装置１２１のトラステッドコンポーネント９０に対する更新の完全性を確認するように構成される検証ロジック１１１と、トラステッドコンポーネント９０内に配置されるとともに、検証ロジック１１１の完全性を確認するように構成されるロジック１０４とを備える。【選択図】図１
2010524123.tif 000002
【特許請求の範囲】
【請求項１】
トラステッドコンポーネント更新システム（１０）であって、
演算装置（１２１）のトラステッドコンポーネント（９０）に対する更新の完全性を確認するように構成される検証ロジック（１１１）と、
前記トラステッドコンポーネント（９０）内に配置されると共に、前記検証ロジック（１１１）の完全性を確認するように構成されるロジック（１０４）と
を備えるトラステッドコンポーネント更新システム。
【請求項２】
前記システム（１０）であって、
前記トラステッドコンポーネント（９０）内の前記ロジック（１０４）は、前記検証ロジック（１１１）の少なくとも一部をハッシュして該検証ロジック（１１１）の前記完全性を確認するように構成される
請求項１に記載のシステム。
【請求項３】
前記システム（１０）であって、
前記トラステッドコンポーネント（９０）内の前記ロジック（１０４）は、前記検証ロジック（１１１）の少なくとも一部をハッシュして、前記ハッシュの結果を前記トラステッドコンポーネント（９０）内に格納されている所定のハッシュ値（１０５）と比較するように構成される
請求項１に記載のシステム。
【請求項４】
前記システム（１０）であって、
前記検証ロジック（１１１）は前記更新に関連付けられる署名（１１５）の完全性を確認するように構成される
請求項１に記載のシステム。
【請求項５】
前記システム（１０）であって、
前記検証ロジック（１１１）は、前記更新の少なくとも一部をハッシュして前記更新の前記完全性を確認するように構成される
請求項１に記載のシステム。
【請求項６】
検証ロジック（１１１）を使用して演算装置（１２１）のトラステッドコンポーネント（９０）に対する更新の完全性を確認することと、
前記トラステッドコンポーネント（９０）内に配置されるロジック（１０４）を使用して前記検証ロジック（１１１）の完全性を確認することと
を含むトラステッドコンポーネント更新方法。
【請求項７】
前記更新の前記完全性を確認することは、前記更新に関連付けられる署名（１１５）の完全性を確認することを含む
請求項６に記載の方法。
【請求項８】
前記検証ロジック（１１１）の前記完全性を確認することは、前記検証ロジック（１１１）の少なくとも一部をハッシュすることを含む
請求項６に記載の方法。
【請求項９】
前記検証ロジック（１１１）の前記完全性を確認することは、
前記検証ロジック（１１１）の少なくとも一部をハッシュすることと、
前記ハッシュの結果を前記トラステッドコンポーネント（９０）内に格納されている所定のハッシュ値（１０５）と比較することと
を含む
請求項６に記載の方法。
【請求項１０】
前記更新の前記完全性を確認することは、前記更新の少なくとも一部をハッシュすることを含む
請求項６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、トラステッドコンポーネント更新システム及びトラステッドコンポーネント更新方法に関する。
【背景技術】
【０００２】
コンピュータ製造業者は一般的に、基本入出力システム（ＢＩＯＳ）フラッシュメモリのようなトラステッドコンポーネントのコンテンツを更新してバグを修正し且つ／又は新たな機能を提供する方法を必要としている。
しかしながら、ＢＩＯＳフラッシュメモリ又は他のトラステッドコンポーネントが修正されることを可能にすることによって、そのトラステッドコンポーネントは、悪意のあるロジック又は権限のないロジックによる改変の影響を受けやすくなる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、トラステッドコンポーネント更新システム及びトラステッドコンポーネント更新方法を提供する。
【課題を解決するための手段】
【０００４】
本発明の一形態は、トラステッドコンポーネント更新システム（１０）であって、演算装置（１２１）のトラステッドコンポーネント（９０）に対する更新の完全性を確認するように構成される検証ロジック（１１１）と、前記トラステッドコンポーネント（９０）内に配置されると共に、前記検証ロジック（１１１）の完全性を確認するように構成されるロジック（１０４）とを備える。
【０００５】
本出願並びに本出願の目的及び利点のより完全な理解のために、これより添付の図面と合わせて以下の説明を参照する。
【図面の簡単な説明】
【０００６】
【図１】トラステッドコンポーネント更新システムの一実施形態を示す図である。
【図２】トラステッドコンポーネント更新方法の一実施形態を示す図である。
【発明を実施するための形態】
【０００７】
図１は、トラステッドコンポーネント更新システム１０の一実施形態を示す図である。
更新システム１０によって、トラステッドコンポーネントは、該トラステッドコンポーネントへの提案される更新が、信頼されるソースとして前もって特定されたソースによって提供されていること、及び提案されるトラステッドコンポーネント更新が改ざんされていないことを検証することが可能になる。
図１に示す実施形態では、更新システム１０は、トラステッドコンポーネント９０、中央処理装置（ＣＰＵ）１２０、及びシステムメモリ１１０を有する演算システム１２１を備える。
図１において、トラステッドコンポーネント９０は、ファームウェアフラッシュメモリのようなファームウェアメモリ１００を備える。
演算システム１２１は、ノートブックコンピュータ、デスクトップコンピュータ、サーバ、ゲーム装置、オーディオ装置、ビデオ装置、又はトラステッドコンポーネントを備える任意の種類の装置を含むことができる。
図１では、演算システム１２１が最初に電源オン、再起動、及び／又はリセットされるときに、ファームウェアメモリ１００は演算システム１２１のためのブートアップ機能を提供する。
たとえば、ＣＰＵ１２０がＣＰＵ１２０の特定の機能を有効及び／又は無効にすること等によって命令の実行を開始すると共に、ＣＰＵ１２０におけるクロック速度の設定を開始する時点より前に、ファームウェアメモリ１００はＣＰＵ１２０の構成を初期化することができる。
【０００８】
図１に示す実施形態では、演算システム１２１はメモリの２つの区画を含む。
それらの２つの区画は「信頼」によって分離され、通常、別個に製造されたコンポーネント内に存在する。
たとえば、幾つかの実施形態では、ファームウェアメモリ１００は、トラステッドメモリブートブロック１０２（たとえば、演算システム１２１が最初に電源オン、再起動、及び／又はリセットされるときに、演算システム１２１のためのブートアップ機能を提供する）を備えるフラッシュメモリであるのに対し、メモリ１１０はトラステッドメモリを備えない場合があり、且つ／又は非ファームウェアメモリを備える場合がある。
しかしながら、トラステッドメモリはファームウェアメモリ１００以外のロケーションにも存在する場合があることを理解されたい。
「信頼（trust）」又は「信頼される、トラステッド（trusted）」は、本明細書において使用される場合、「TCG Specification Architecture Overview Specification, Revision 1.2」（Trusted Computing Group, 2004）において記載されている「信頼」の定義のような、演算ハードウェア及び／又は演算ソフトウェアによって施行される予め規定されたルールのセットの範囲内における一貫性のある動作を予期することを意味する。
たとえば、ファームウェアメモリ１００のブートブロック１０２のような、演算システム１２１内のメモリの特定の区画のコンテンツが、信頼されるソースとして定義される、前もって特定されたソースによって生成された情報しか含まないことを確実にすることによって、システムコンポーネントのその特定の区画の信頼が有効になる。
【０００９】
ファームウェアメモリ１００は、ブートアップ動作を実施するためにＣＰＵ１２０に結合され、ファームウェアメモリ１００によって使用されるデータを読み取るためにメモリ１１０に結合される。
図１に示す実施形態では、ファームウェアメモリ１００は不揮発性フラッシュメモリを含む。
幾つかの実施形態では、ファームウェアメモリ１００は基本入出力システム（ＢＩＯＳ）を備える。
幾つかの実施形態では、ファームウェアメモリ１００は拡張可能ファームウェアインタフェース（ＥＦＩ）又は統一ＥＦＩ（ＵＥＦＩ）を備える。
しかしながら、ファームウェアメモリ１００は、演算システムのためのブートアップ機能性を提供する任意のシステムを備えることができることを理解されたい。
メモリ１１０は、揮発性メモリ、不揮発性メモリ、及びデジタルメディアドライブ（ＤＭＤ）のような永久記憶媒体を含むことができる。
図１に示す実施形態では、演算システム１２１は単一のＣＰＵ１２０を備えて示されているが、より多くの数のＣＰＵを使用してもよいことを理解されたい。
【００１０】
図１に示す実施形態では、ファームウェアメモリ１００はブートブロック１０２を備える。
ブートブロック１０２は通常、演算システム１２１が最初に電源オン、再起動、及び／又はリセットされるときにファームウェアメモリ１００において実行される初期ロジックである。
ブートブロック１０２は、ファームウェアメモリ１００内にロックされると共に通常の演算システム１２１の動作中の更新から保護される（すなわち、ブートブロック１０２は、たとえば暗号方式によって確認されることができる信頼されるソースからの信頼される方法によって更新される）ため、信頼されるロジックである。
【００１１】
信頼されるシステム及び信頼される方法は、トラステッドメモリのコンテンツに対する権限のない変更を防ぐのに十分なレベルのセキュリティを有するシステム及び方法である。
たとえば、信頼されるシステム及び信頼される方法は、ＲＳＡ検証、楕円曲線暗号（ＥＣＣ）、デジタル署名アルゴリズム（ＤＳＡ）、セキュアハッシュアルゴリズム１（ＳＨＡ−１）及びＳＨＡ−２を含む暗号アルゴリズムのような強力なセキュリティ方法を使用して、信頼されるソースが特定のデジタルファイルを生成したこと、及び／又は信頼されるソースがデジタルファイルを生成して以降、そのデジタルファイルが変更若しくは改ざんされていないことを確実にすることができる。
信頼されるシステム及び信頼される方法は、デジタルファイルをトラステッドメモリを変更するのに使用する前に、そのデジタルファイルを信頼することができることを確実にする。
このようにして、信頼されるソースによって権限を与えられていないロジック及びウィルスを、トラステッドメモリが変更可能である場合であっても該トラステッドメモリから締め出すことができる。
【００１２】
図１に示す実施形態では、ブートブロック１０２は、初期化ロジック１０３、ハッシュロジック１０４、ハッシュ値１０５、ブート命令１０６、及び更新ロジック１０７を備える。
初期化ロジック１０３は、ファームウェアメモリ１００のブートブロック１０２内で処理及び／又は実行される、ロジック、データ、及び命令を含む。
通常、ファームメモリ１００は、ブートブロック１０２内で発見され且つ／又はブートブロック１０２によって参照される命令の処理を完了すると、演算システム１２１の制御をオペレーティングシステムに渡す前に、任意の他のブートアッププロシージャを実施することができる。
更新ロジック１０７は、ブートブロック１０２のようなファームウェアメモリ１００の区画を上書きするための実行可能な命令を含む。
【００１３】
ハッシュ関数を実施することによってデジタルファイルの完全性を検証するために、ハッシュロジック１０４が実行される。
ハッシュ関数は結果としてハッシュ値を生成する数学操作である。
幾つかの実施形態では、ハッシュロジック１０４はＳＨＡ−１アルゴリズムを含むが、代替的に又は付加的に他のハッシュ関数を使用してもよい。
ハッシュ値１０５は前もって計算された完全性確認値であり、デジタルファイル（たとえば実行可能なコンピュータプログラム）が改ざんされていないことを確認するのに使用される数字である。
動作時に、ハッシュロジック１０４がデジタルファイル上で実行され、それによってハッシュ値が計算され、ファームウェアメモリ１００内に格納されているハッシュ値１０５と比較される。
したがって、計算されたハッシュ値がハッシュ値１０５に対応し且つ／又は他の態様でマッチする場合、デジタルファイルは信頼性があると見なされる。
ハッシュロジック１０４及びハッシュ値１０５は、ファームウェアメモリ１００内に存在するブートブロック１０２内に格納される。
幾つかの実施形態では、ハッシュロジック１０４及びハッシュ値１０５は、演算システム１２１が製造、改造、更新、又は修理されるときに初期的にブートブロック１０２内に配置される。
したがって、更新システム１０は、ブートブロック１０２からファームウェアメモリ１００の外側に格納されているデジタルファイルへと信頼を拡張することが可能であり、それによって信頼チェーンを作成する。
【００１４】
図１に示す実施形態では、メモリ１１０は検証ロジック１１１と署名された更新１１２とを備える。
署名された更新１１２は、演算システム１２１の製造者のような信頼される当事者によって提案される、ブートブロック１０２の更新のようなトラステッドコンポーネント９０の更新を含む。
たとえば、署名された更新１１２は更新データ１１６内に表されるバグ修正を含むことができる。
検証ロジック１１１は、署名された更新１１２が演算システム１２１の製造者又はコンピュータネットワーク管理者のような信頼されるソースによって製造されたこと、及びさらには署名された更新１２１が製造されて以降改ざんされていないことを検証するための、ロジック、命令、及び署名検証データ１１３を含むデータを含む。
ハッシュロジック１０４及び検証ロジック１１１はそれぞれ信頼検証の手段を備える。
しかしながら、ハッシュロジック１０４によって、ファームウェアメモリ１００がファームウェアメモリ１００から検証ロジック１１１まで信頼を拡張することが可能になるため、検証ロジック１１１がトラステッドファームウェアメモリ１００の外側に格納されている場合であっても、検証ロジック１１１を信頼することができる。
検証ロジック１１１が署名された更新１１２内のデジタル署名１１５の複数の特定の部分を独立して計算することを可能にすることによって、署名検証データ１１３を、完全性検証（たとえば改ざんがないことを確実にする）及び起点検証（たとえば前もって識別された信頼されるソースが製造者であることを確実にする）のために使用する。
図１に示す実施形態では、検証ロジック１１１はシステムメモリ１１０内に配置され、且つ／又はシステムメモリ１１０から実行されることができる。
しかしながら、幾つかの実施形態では、検証ロジック１１１はファームウェアメモリ１００内に存在すると共にファームウェアメモリ１００から実行されてもよいことを理解されたい。
【００１５】
幾つかの実施形態では、デジタル署名１１５は、署名された更新１１２の作成者によって、署名された更新１１２に添付される英数字列を含む。
この英数字列は作成者を一意に特定すると共に、ハッシュアルゴリズムを用いてファイル完全性を確実にする基礎も提供する。
署名検証データ１１３は、デジタル署名１１５及び署名された更新１１２の他の部分を使用して独立した計算を実施するために、検証ロジック１１１によって使用されるデータである。
たとえば、幾つかの実施形態では、署名検証データ１１３は、信頼される当事者の秘密鍵によって署名及び／又は暗号化された更新データ１１６のハッシュを含む。
検証ロジック１１１は、署名された更新１１２の少なくとも一部、たとえば更新データ１１６をハッシュし、デジタル署名１１５を復号し、更新データ１１６のハッシュが復号されたデジタル書名１１５に対応するか否かを判断する。
２つの値が対応する場合、署名された更新１１２は、信頼される当事者によって作成された、生成されて以降改ざんされていないファイルの検証された複製であるとみなされる。
いくつかの実施形態では、検証ロジック１１１は、デジタル署名検証に適したアルゴリズムであるＲＳＡ検証を含む。
【００１６】
更新データ１１６は、ブートブロック１０２のコンテンツ、ハッシュロジック１０４、ハッシュ値１０５、及びブート命令１０６のような、ファームウェアメモリ１００のコンテンツを変更するのに使用される情報を含む。
幾つかの実施形態では、署名された更新１１２はさらに又は代替的に検証ロジック１１１のための変更情報を含んでもよい。
幾つかの実施形態では、署名された更新１１２は、更新ロジック１０７を使用することなくブートブロック１０２のコンテンツを変更することが可能な、実行可能なパッチプログラムを含む。
【００１７】
更新システム１０の動作の幾つかの実施形態では、演算システム１２１の製造者又は他のエンティティは、ファームウェアメモリ１００への将来的な更新のために、該エンティティを信頼されるソースとして一意に特定する署名検証データ１１３を有する検証ロジック１１１を生成する。
エンティティは検証ロジック１１１の全て又は一部をハッシュロジック１０４の複製を用いてハッシュし、ハッシュ値１０５を計算する。
ハッシュロジック１０４、ハッシュ値１０５、及びブート命令１０６はファームウェアメモリ１００内のブートブロック１０２内に格納され、検証ロジック１１１はメモリ１１０内に格納される。
幾つかの実施形態では、演算システム１２１がブートアップする度に、ブート命令１０６は、署名された更新１１２のような更新が利用可能であり且つ／又はファームウェアメモリ１００のコンテンツを修正するのに使用されるために待機している（たとえば、メモリ１１０、ハードディスク、又は他の記憶媒体内で待機している）ことの指示を検索する。
たとえば、演算システム１２１の前回の使用中に、エンティティがコンピュータネットワークを介して、メモリ１１０内に署名された更新１１２を配置する電子メッセージを送信した場合がある。
【００１８】
署名された更新１１２が発見される場合、ハッシュロジック１０４は、検証ロジック１１１の全て又は一部をハッシュし、該ハッシュの結果をハッシュ値１０５と比較して検証ロジック１１１が改ざんされていないことを確実にすることによって、検証ロジック１１１の完全性を確認する。
検証ロジック１１１が有効である（すなわち、ハッシュ値１０５に対応する検証ロジック１１１のハッシュ値に基づいて、検証ロジック１１１が改ざんされていないとみなされる）場合、ブートブロック１０２は検証ロジック１１１を実行し、署名検証データ１１３を使用してデジタル署名１１５の作成者を検証する。
たとえば、幾つかの実施形態では、検証ロジック１１１は、ＲＳＡデジタル署名検証アルゴリズムのような暗号方式を使用することによって、署名された更新１１２と関連付けられるデジタル署名ファイル（たとえばデジタル署名１１５）を検証するのに使用される。
したがって、幾つかの実施形態では、デジタル署名１１５は、信頼される当事者の秘密鍵によって暗号化された更新データ１１６の少なくとも一部の、予め計算されたハッシュ値を表す。
動作時に、検証ロジック１１１は、（たとえば信頼される当事者の秘密鍵と対の公開鍵のような署名検証データ１１３を使用して）デジタル署名１１５を復号し、更新データ１１６の対応する部分をハッシュし、計算されたハッシュ値を復号されたデジタル署名１１５と比較する。
デジタル署名の検証に成功する場合、ブートブロック１０２は更新ロジック１０７を実行し、更新データ１１６を使用して、ブートブロック１０２のようなファームウェアメモリ１００のコンテンツを変更する。
したがって、システム１０の実施形態によって、製造者又は他の信頼されるエンティティは、権限のないエンティティによるファームウェアメモリ１００への権限のない変更又は悪意のある変更の危険を最小限にしながら、バグを修正し且つ／又は他の態様でファームウェアメモリ１００を変更することが可能になる。
【００１９】
図２はトラステッドファームウェアメモリ更新方法２００の一実施形態を示す図である。
方法２００は図１の更新システム１０を参照して説明されるが、方法２００を代替的な実施形態と共に使用してもよいことを理解されたい。
【００２０】
ブロック２０１において、ブートブロック１０２は、署名された更新１１２が存在する（たとえばメモリ１１０内又は他の場所に存在する）か否かを判断する。
署名された更新１１２が存在しない場合、本方法はブロックはブロック２２２に進み、ブロック２２２において、ブートブロックは演算システム１２１のブートを継続する。
署名された更新１１２が利用可能であるか又は存在する場合、ブロック２０４において、ブートブロック１０２のハッシュロジック１０４は検証ロジック１１１をハッシュし、新たに計算されたハッシュ値を生成する。
ブロック２０６において、新たに計算されたハッシュ値をファームウェア１００内に格納されているハッシュ値１０５と比較し、検証ロジック１１１の有効性を判断する。
判定ブロック２０８において、新たに計算されたハッシュ値がハッシュ値１０５と対応しない場合、そのような更新を用いてトラステッドコンポーネント９０を更新せず、代わりにブロック２２２において、ブートブロック１０２は演算システム１２１のブートを継続する。
判定ブロック２０８において、新たに計算されたハッシュ値がハッシュ値１０５と対応する場合、本方法はブロック２１２に進む。
【００２１】
ブロック２１２において、検証ロジック１１１を実行及び使用して、更新データ１１６をハッシュすることによって、署名された更新１１２のデジタル署名を検証する。
ブロック２１４において、検証ロジック１１１は署名検証データ１１３を使用してデジタル署名１１５を復号し、ブロック２１６において、更新データ１１６のハッシュを復号されたデジタル署名１１５と比較する。
判定ブロック２１８において、更新データ１１６のハッシュが復号されたデジタル署名１１５と対応しない場合、署名された更新１１２のデジタル署名は有効ではなく、そのような更新はロード、インストール、又は実施されない。
代わりにブロック２２２において、ブートブロック１０２は演算システム１２１のブートを継続する。
判定ブロック２１８において、更新データ１１６のハッシュが復号されたデジタル署名１１５とマッチする場合、署名された更新１１２のデジタル署名は有効であると検証されたとみなされ、ブロック２２０において、更新ロジック１０７を実行することによって、更新データ１１６を用いてトラステッドコンポーネント９０を更新する。
ブロック２２２において、ブートブロック１０２は演算システム１２１のブートを継続する。
【００２２】
このように、更新システム１０の実施形態によって、トラステッドメモリに対しフィールド更新を行うことが可能になる。
上述した方法において、幾つかの機能を省くことができるか、図２に示す順序と異なる順序で達成することができるか、又は同時に実施することができることを理解されたい。
また、図２に示す方法は、本明細書内の他の場所に記載される他の特徴又は態様の任意のものを包含ように変更することができることを理解されたい。
さらに、実施形態をソフトウェアにおいて実施することができ、異なるプラットフォーム及びオペレーティングシステム上で実行されるように適合することができる。
特に、たとえばロジック１０４、ロジック１１１、及びロジック１０７によって実施される機能を、実行可能な命令の順序付けされたリストとして提供することができる。
それらの実行可能な命令は、コンピュータベースのシステム、プロセッサを含むシステム、又は命令実行システム、命令実行機器、若しくは命令実行装置から命令を取り出すと共に該命令を実行することができる他のシステムのような、命令実行システム、命令実行機器、若しくは命令実行装置によって使用されるか、又はそれらと接続して使用される任意のコンピュータ可読媒体において具現化されることができる。
本特許文献の文脈において、「コンピュータ可読媒体」は、命令実行システム、命令実行機器、若しくは命令実行装置によって使用されるか、又はそれらと接続して使用されるプログラムを、含有、格納、通信、伝搬、又は転送することができる任意の手段とすることができる。
コンピュータ可読媒体は、たとえば電子、磁気、光学、電磁、赤外線、又は半導体の、システム、機器、装置、又は伝播媒体とすることができるがこれらに限定されない。
【符号の説明】
【００２３】
１０・・・トラステッドコンポーネント更新システム，
１００・・・ファームウェアメモリ，
１０２・・・ブートブロック，
１０３・・・初期化ロジック，
１０４・・・ハッシュロジック，
１０５・・・ハッシュ値，
１０６・・・ブート命令，
１０７・・・更新ロジック，
１１０・・・メモリ，
１１１・・・検証ロジック，
１１２・・・署名された更新，
１１３・・・署名検証データ，
１１５・・・デジタル署名，
１１６・・・更新データ，
１２０・・・ＣＰＵ，
１２１・・・演算システム
【図１】
2010524123.tif 000003
【図２】
2010524123.tif 000004
【国際調査報告】
2010524123.tif 000005
2010524123.tif 000006
2010524123.tif 000007