(57)【要約】  ブートコードをシステムメモリにロードする前に、ブートコードを、ユーザのバイオメトリック情報に基づき認証する改良されたシステムブート処理をする方法、システム、及び記憶媒体を開示する。少なくとも幾つかの実施形態では、バイオメトリック認証により、一意的プラットフォーム識別子に基づきブートコードの認証を補強する。改良されたブートコード認証は、オペレーティングシステムのロード前に行われ、Ｕｎｉｆｉｅｄ  Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ（ＵＥＦＩ）ブートシーケンス中に実行されてもよい。他の実施形態は説明し請求項に記載した。【特許請求の範囲】
【請求項１】
ブートコードのバイオメトリック認証を行う方法であって、
リセットイベントの通知を受け取るステップと、
一以上のバイオメトリックデバイスから、ユーザに関連するバイオメトリック情報を受け取るステップと、
前記バイオメトリック情報に基づいて、ブートシーケンス中に実行されるべき命令を暗号化するステップと、
残りの処理を実行して、オペレーティングシステムをロードするステップとを有し、
前記暗号化は、さらに、計算デバイスに関連する一意的な識別に基づき、オペレーティングシステムをロードする前に実行される、方法。
【請求項２】
一以上のプラットフォーム初期化命令を実行するステップと、
一以上のバイオメトリックデバイスを初期化するステップとをさらに有する、
請求項１に記載の方法。
【請求項３】
前記暗号化はＵＥＦＩブートシーケンスのドライバー実行環境フェーズ中に実行される、
請求項１に記載の方法。
【請求項４】
前記暗号化は、さらに、ユーザに関連する一以上の追加的データに基づく、
請求項１に記載の方法。
【請求項５】
前記一以上の追加的データは、さらに、（ａ）トークンの所持、（ｂ）パスワード、（ｃ）パスフレーズ、及び（ｄ）ユーザの位置のうちの一以上を含む、
請求項４に記載の方法。
【請求項６】
計算デバイスで実行されると、それに応じて前記計算デバイスに、請求項１ないし５いずれか一項に記載の方法を実行させる複数の命令を含む少なくとも１つの機械読み取り可能媒体。
【請求項７】
ブートコードのバイオメトリック認証を行う方法であって、
リセットイベントの通知を受け取るステップと、
一以上のバイオメトリックデバイスから、ユーザに関連するバイオメトリック情報を受け取るステップと、
前記バイオメトリック情報に基づいて、ブートシーケンス中に実行されるべき命令を復号するステップと、
残りの処理を実行して、オペレーティングシステムをロードするステップとを含み、
前記復号は、さらに、計算デバイスに関連する一意的な識別に基づき、オペレーティングシステムをロードする前に実行される、方法。
【請求項８】
一以上のプラットフォーム初期化命令を実行するステップと、
一以上のバイオメトリックデバイスを初期化するステップとをさらに有する、
請求項７に記載の方法。
【請求項９】
前記復号はＵＥＦＩブートシーケンスのドライバー実行環境フェーズ中に実行される、
請求項７に記載の方法。
【請求項１０】
前記復号は、さらに、ユーザに関連する一以上の追加的データに基づく、
請求項７に記載の方法。
【請求項１１】
前記一以上の追加的データは、さらに、（ａ）トークンの所持、（ｂ）パスワード、（ｃ）パスフレーズ、及び（ｄ）ユーザの位置のうちの一以上を含む、
請求項１０に記載の方法。
【請求項１２】
計算デバイスで実行されると、それに応じて前記計算デバイスに、請求項７ないし１１いずれか一項に記載の方法を実行させる複数の命令を含む少なくとも１つの機械読み取り可能媒体。
【請求項１３】
オペレーティングシステムのブート中にブートコードのバイオメトリック認証を実行するシステムであって、
プロセッサと、
前記プロセッサに結合した不揮発性メモリと、
前記プロセッサに結合したシステムメモリとを含み、
前記不揮発性メモリは、
ユーザのバイオメトリック情報に基づいて、第１の鍵を生成し、
不揮発性メモリに記憶された命令を認証し、
認証された命令を不揮発性メモリから揮発性メモリにロードする一以上の命令を含む、
前記認証は第１の鍵と、システムに関連する一意的な識別子とに基づく、
システム。
【請求項１４】
前記認証された命令は、オペレーティングシステムコードのシステムメモリへのロードの前に実行される命令である、
請求項１３に記載のシステム。
【請求項１５】
前記一意的な識別子はシステムに関連するシリアルナンバーである、
請求項１３に記載のシステム。
【請求項１６】
前記一意的な識別子はトラステッドプラットフォームモジュール鍵である、
請求項１３に記載のシステム。
【請求項１７】
前記バイオメトリック情報は指紋である、
請求項１３に記載のシステム。
【請求項１８】
前記バイオメトリック情報はユーザの顔の画像である、
請求項１３に記載のシステム。
【請求項１９】
前記認証された命令は、さらに、一以上のドライバーに関連する命令を含む、
請求項１３に記載のシステム。
【請求項２０】
不揮発性メモリに記憶された前記命令は、さらに、一以上のＵＥＦＩドライバーに関連する命令を含む、
請求項１３に記載のシステム。
【請求項２１】
前記不揮発性メモリは、一意的な識別子に基づいて、第２の鍵を生成する一以上の命令を含む、
請求項１３に記載のシステム。
【請求項２２】
前記復号は、さらに、ユーザに関連する追加的データに基づく、
請求項１３に記載のシステム。
【請求項２３】
ユーザに関連する前記追加的データはさらにパスワードを含む、
請求項２２に記載のシステム。
【請求項２４】
ユーザに関連する前記追加的データはさらにパスフレーズを含む、
請求項２２に記載のシステム。
【請求項２５】
ユーザに関連する前記追加的データはさらにユーザ位置情報を含む、
請求項２２に記載のシステム。
【請求項２６】
オペレーティングシステムのブート中にブートコードのバイオメトリック認証を実行する方法であって、
リセットイベントの通知の受け取りに応じて、計算システムにおいてブートシーケンスの初期動作を実行するステップと、
複数の鍵を用いてブートシーケンスコードを復号（ｄｅｃｒｙｐｔ）する、前記複数の鍵は前記計算システムのユーザのバイオメトリック情報から生成された少なくとも１つの鍵を含む、ステップと、
前記復号に応じて、前記ブートシーケンスの残りの（ａｄｄｉｔｉｏｎａｌ）動作を実行する、前記残りの動作は前記計算システムのシステムメモリへの、オペレーティングシステムコードのロードを含む、ステップと、
前記復号が不成功であったとき、前記オペレーティングシステムコードをロードすることなく、前記ブートシーケンスを終了するステップとを含む、方法。
【請求項２７】
ブートシーケンスはＵＥＦＩブートシーケンスである、
請求項２６に記載の方法。
【請求項２８】
前記復号はＵＥＦＩブートシーケンスのドライバー実行環境フェーズ中に実行される、
請求項２６に記載の方法。
【請求項２９】
ブートシーケンスコードの復号は、さらに、ＵＥＦＩドライバーコードの復号を含む、
請求項２６に記載の方法。
【請求項３０】
ブートシーケンスの前記初期動作は、計算システムのプロセッサを初期化する一以上の動作を含む、
請求項２６に記載の方法。
【請求項３１】
一以上のバイオメトリックデバイスを初期化するステップとをさらに有する、
請求項２６に記載の方法。
【請求項３２】
一以上のバイオメトリックデバイスからバイオメトリック情報を収集するステップをさらに含む、
請求項２６に記載の方法。
【請求項３３】
複数の鍵は、さらに、計算システムに対して一意的な情報から生成された少なくとも１つの鍵を含む、
請求項２６に記載の方法。
【請求項３４】
計算デバイスで実行されると、それに応じて前記計算デバイスに、請求項２６ないし３３いずれか一項に記載の方法を実行させる複数の命令を含む少なくとも１つの機械読み取り可能媒体。
【請求項３５】
オペレーティングシステムのブート中にブートコードのバイオメトリック認証を実行するシステムであって、
リセットイベントの通知を受け取る手段と、
一以上のバイオメトリックデバイスから、ユーザに関連するバイオメトリック情報を受け取る手段と、
前記バイオメトリック情報に基づいて、ブートシーケンス中に実行されるべき命令を暗号化する手段と、
残りの（ａｄｄｉｔｉｏｎａｌ）処理を実行して、オペレーティングシステムをロードする手段とを含み、
前記暗号化する手段は、さらに、計算デバイスに関連する一意的な識別に基づき、命令を暗号化する手段を有し、オペレーティングシステムをロードする前に実行される、システム。
【請求項３６】
一以上のプラットフォーム初期化命令を実行する手段と、
一以上のバイオメトリックデバイスを初期化する手段とをさらに有する、
請求項３５に記載のシステム。
【請求項３７】
前記暗号化はＵＥＦＩブートシーケンスのドライバー実行環境フェーズ中に実行される、
請求項３５に記載のシステム。
【請求項３８】
前記暗号化は、さらに、ユーザに関連する一以上の追加的データに基づく、
請求項３５に記載のシステム。
【請求項３９】
前記一以上の追加的データは、さらに、（ａ）トークンの所持、（ｂ）パスワード、（ｃ）パスフレーズ、及び（ｄ）ユーザの位置のうちの一以上を含む、
請求項３８に記載のシステム。
【請求項４０】
オペレーティングシステムのブート中にブートコードのバイオメトリック認証を実行するシステムであって、
リセットイベントの通知を受け取る手段と、
一以上のバイオメトリックデバイスから、ユーザに関連するバイオメトリック情報を受け取る手段と、
前記バイオメトリック情報に基づいて、ブートシーケンス中に実行されるべき命令を復号する手段と、
残りの（ａｄｄｉｔｉｏｎａｌ）処理を実行して、オペレーティングシステムをロードする手段とを含み、
前記復号する手段は、さらに、計算デバイスに関連する一意的な識別に基づき、命令を復号する手段を有し、オペレーティングシステムをロードする前に実行されるものである、システム。
【請求項４１】
一以上のプラットフォーム初期化命令を実行する手段と、
一以上のバイオメトリックデバイスを初期化する手段とをさらに有する、
請求項４０に記載のシステム。
【請求項４２】
前記復号はＵＥＦＩブートシーケンスのドライバー実行環境フェーズ中に実行される、
請求項４０に記載のシステム。
【請求項４３】
前記復号は、さらに、ユーザに関連する一以上の追加的データに基づく、
請求項４０に記載のシステム。
【請求項４４】
前記一以上の追加的データは、さらに、（ａ）トークンの所持、（ｂ）パスワード、（ｃ）パスフレーズ、及び（ｄ）ユーザの位置のうちの一以上を含む、
請求項４３に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
タブレット、ネットブック、ウルトラブック、携帯電話、スマートフォン、その他のハンドヘルドデバイスなどの比較的ポータブルな計算システムは、窃盗されるおそれが大きい。幾つかの場合、窃盗の目的は、自分で使用するために、またはデバイスを他人に販売するために、そのデバイスの所有権を取ることである。窃盗したデバイスを窃盗犯が再利用したいと思うことを防ぐため、元のオーナー以外の何人もそのデバイスをブートできないようにすることが望ましい。
【先行技術文献】
【非特許文献】
【０００２】
【非特許文献１】Ortega,  et.  al,“De-Activate  the  RootKit:  Attacks  on  BIOS  Anti-theft  Technologies,”  Black  Hat  Briefings  2009  USA.  Las  Vegas,  NE.  July  30,  2009
【図面の簡単な説明】
【０００３】
【図１】ＵＥＦＩブートシーケンスを示す状態図である。
【図２】バイオメトリック情報でファームウェアを暗号化する方法の少なくとも一実施形態を示すフローチャートである。
【図３】ＵＥＦＩブートにおける図２に示した方法の少なくとも一実施形態を示す状態図である。
【図４】バイオメトリックベースのファームウェアの認証をする改良されたブートプロセスの少なくとも一実施形態を示すフローチャートである。
【図５】ＵＥＦＩブートにおける図４に示した方法の少なくとも一実施形態を示す状態図である。
【図６】ブートにおけるファームウェアをバイオメトリック認証の少なくとも一実施形態を実行するファームウェアモジュールを示すブロック図である。
【図７】ＵＥＦＩブートにおいてファームウェアのバイオメトリック暗号化及び復号を実行する機能的ファームウェア及びソフトウェアモジュールを示す状態図である。
【図８】本発明の少なくとも一実施形態による第１と第２のシステムを示すブロック図である。
【図９】本発明の他の少なくとも一実施形態によるシステムを示すブロック図である。
【図１０】本発明の他の少なくとも一実施形態によるシステムを示すブロック図である。
【発明を実施するための形態】
【０００４】
説明する実施形態は、計算デバイスのファームウェアにおける盗難防止機能を提供する。より具体的には、ユーザのバイオメトリック情報を用いて、処理システムのオペレーティングシステム（ＯＳ）をブートするのに必要なファームウェアを暗号化する。その後のブート時に、バイオメトリック情報を用いてファームウェアを復号し、そのユーザのみがシステムをブートできるようにする。このように、窃盗されたデバイスの再利用を阻止できる。
【０００５】
現在の盗難防止技術のうち多くのものは、ソフトウェアドライバとしてＯＳ環境で実行される。これらの技術は、盗難されたマシンにおいては、アンインストールし、ＯＳを再インストロールし、またはハードディスクを新しいものと交換することにより、阻止できる。既存のその他の盗難防止技術はファームウェア機能である。これらは、同様にパワーオン・パスワードプロテクションで動作するものであり、これの阻止は、ファームウェアコードを数バイト変更して認証処理をバイパスするようにジャンプすることにより、または同じタイプの他の一デバイスから、窃盗された計算デバイスにファームウェアの新しいコピーを焼くことによりできる。
【０００６】
ここに説明する実施形態は、既知の複数のセキュリティ手法に対する優位性を提供する。これらの実施形態は、計算システムのＯＳ前ファームウェアの固有の機能であるセキュリティメカニズムを提供、他の幾つかのセキュリティメカニズムがバイパスされるようにはバイパスされないからである。
【０００７】
計算デバイスの無許可の再利用（ｒｅ−ｐｕｒｐｏｓｉｎｇ）を回避するために、ここに説明する実施形態は、幾つかのセキュリティ侵害手法を解決する。例えば、このような手法の一つは、窃盗した計算デバイスのＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）をハックして、異なるオペレーティングシステム（「ＯＳ」）を再インストールすることである。ここに説明する実施形態を適用していない計算システムにおいては、これは、例えば、ＢＩＯＳイメージを再フラッシュしてブートローダコードを変更し、ブート時に別のＯＳがロードされるようにすることにより実現できる。このように、元のオーナーのＯＳパワーオンパスワードはバイパスできてしまう。ここに説明する実施形態はブートローダコードの実行前のブートシーケンスにおいてバイオメトリック認証チェックを実行することにより、このタイプの侵害（ｂｒｅａｃｈ）を解決する。
【０００８】
ここに説明するいずれかの実施形態を含まない計算システムでは、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）イメージの再フラッシュを用いて、ＣＰＵ自体ではなく、システムの別のコンポーネントにより提供されるセキュリティ機能をバイパスすることもできる。例えば、バンド外セキュリティ機能をディスエーブルするために、計算デバイスのＢＩＯＳイメージを再フラッシュしてもよい。このようなバンド外セキュリティ機能は、例えば、管理可能性エンジン（ｍａｎａｇｅａｂｉｌｉｔｙ  ｅｎｇｉｎｅ）、トラステッドプラットフォームモジュール（「ＴＰＭ」）、またはＣＰＵとは別のその他のスタンドアロンセキュリティコンポーネントにより提供されるものを含む。このようなバンド外セキュリティ機能に対する改良として、ここに説明する実施形態は、暗号化されたファームウェアコンポーネントにより、認証が失敗した場合にそのデバイスのブートを防止する。
【０００９】
ここに説明する実施形態により解決される他の一セキュリティ侵害手法は、計算システムのメモリのスワッピングである。言い換えると、計算デバイスにおける記憶の暗号化をバイパスするために、無許可のユーザは、計算デバイスのユーザ交換可能記憶ハードウェアを変更または切り替えることができる。幾つかの場合に、記憶はフラッシュでもよいが、フラッシュの替わりに（またはそれに加えて）、交換される記憶ハードウェアは計算システムの内部ハードディスクドライブやその他の記憶媒体であってもよい。ここに説明する実施形態はブートローダコードの実行前のブートシーケンスにおいてバイオメトリック認証チェックを実行することにより、このタイプの侵害（ｂｒｅａｃｈ）を解決し、それにより記憶媒体への無断アクセスを防止する。
【００１０】
ここに説明する実施形態により解決される他の一セキュリティ侵害手法は、オプションＲＯＭにエージェントとして組み込まれたセキュリティ機能のディスエーブルである。例えば、非特許文献１を参照されたい。これらの機能は、計算システムのＢＩＯＳに関連するセキュアなＯＳ前処理（ｓｅｃｕｒｅ  ｐｒｅ−ＯＳ  ｐｒｏｃｅｓｓｉｎｇ）においてトラステッド計算ベース（ｔｒｕｓｔｅｄ  ｃｏｍｐｕｔｉｎｇ  ｂａｓｅ）の一部として実行されないが、サードパーティにより提供されるオプションＲＯＭのブート処理においてロードされる。このようなＲＯＭベースセキュリティ機能に対する改良として、説明する実施形態は、暗号化されたファームウェアコンポーネントにより、認証が失敗した場合にそのデバイスのブートを防止する。したがって、オプションＲＯＭへの無許可アクセスが防止される。
【００１１】
ここで図１を参照するに、計算システムのＯＳをブートする方法１００の概略を示す図である。図１に示した方法１００の少なくとも一実施形態は、Ｕｎｉｆｉｅｄ  Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ（ＵＥＦＩ）Ｓｐｅｃｉｆｉｃａｔｉｏｎｓ（ＵＥＦＩ２．３．１ｃなど）に対応する。これは＊＊＊．ｕｅｆｉ．ｏｒｇで取得できる（ハイパーリンクとならないように「ｗｗｗ」をアスタリスクで置き換えた）。図１は、方法１００がブロック１１０から始まることを示す。ブロック１１０において、プラットフォームリセットイベントの通知を受け取る。少なくとも一実施形態について、プラットフォームリセットイベントは、パワーオンイベントまたは（例えば、Ｓ３及び／またはＳ４低電力状態などの低電力状態からの復帰など）ウォームスタートイベントのどちらかである。ブロック１１０の処理は、概して、ＵＥＦＩブートシーケンスのセキュリティ（ＳＥＣ）フェーズ１１１に対応する。このような実施形態について、ブロック１１０は、リセットイベントが発生したとの通知を受け取るだけでなく、幾つかの予備的初期化処理の実行も含む。例えば、少なくとも一実施形態について、リセットイベント通知に応じて、ブロック１１０において、次の予備的処理を実行する：プレＲＡＭコードが（例えば、不揮発性メモリ中のｅｘｅｃｕｔｅ  ｉｎ  ｐｌａｃｅ（ＸＩＰ）コードを実行する）ＣＰＵキャッシュに一時的スタックを生成する最初のＣＰＵ初期化を行う。
【００１２】
図１は、最初のセキュリティフェーズ１１１中のリセット処理１１０の後、処理はブロック１２０に進むことを示している。ブロック１２０において、ＣＰＵやその他のシステムコンポーネントなどのプラットフォームハードウェアを初期化する。幾つかの実施形態について、その他のコンポーネントの例としては、次のものがある：メモリコントローラハードウェア、Ｉ／Ｏコントローラハードウェア、（チップセットがあれば）チップセットハードウェア、及び／または（マザーボードがあれば）マザーボードハードウェア。少なくとも一実施形態では、ブロック１２０におけるプラットフォーム初期化は、ＵＥＦＩブートシーケンスのプレＥＦＩ初期化（Ｐｒｅ−ＥＦＩ  Ｉｎｉｔｉａｌｉｚａｔｉｏｎ、「ＰＥＩ」）フェーズ１２１に対応する。少なくともこのような一実施形態では、ブロック１２０における処理は、ＣＰＵの初期化を終わらせる（ｆｉｎａｌｉｚｅ）動作を含み、また、ＤＲＡＭをディスカバリする（ｄｉｓｃｏｖｅｒｉｎｇ）動作と、ブロック１１０で受け取ったリセットイベントがコールドスタートイベントかウォームスタートイベント（例えば、Ｓ３／Ｓ４スリープモードやハイバネーションモードなどの低パワーモードからの復帰など）をディスカバリする動作とを含んでもよい。イベントがコールドスタートイベントである場合、処理はブロック１２０からブロック１３０に進む。幾つかの実施形態では、イベントがあるタイプのウォームスタートイベント（Ｓ３パワー状態などの低パワーモードからの復帰など）である場合、処理は１２０から、ブロック１３０、１４０、１５０及び１６０における処理をスキップして、ＯＳレジューム／ベクトル処理（図示せず）に進む。
【００１３】
ドライバー実行フェーズ（ＤＸＥ）１３１において、少なくとも一実施形態では、方法１００は、復号（ｄｅｃｒｙｐｔ）（ブロック１３０参照）と、残りのシステムハードウェアの初期化に用いられるドライバーのロード（ブロック１４０参照）をする。ブロック１３０における復号（ｄｅｃｒｙｐｔｉｏｎ）の実行は、セキュアなブートを保証するという目標を促進するため、ＤＸＥフェーズに関連するＵＥＦＩドライバーが暗号化されているからである。ＤＸＥステージファームウェアは、プラットフォーム識別子（例えば、図２のプラットフォームＩＤキー１８０を参照）に基づくキーを用いて、ブロック１３０において復号（ｄｅｃｒｙｐｔｅｄ）される。少なくとも一実施形態では、プラットフォーム識別子は、製品シリアルナンバー、イーサネット（登録商標）デバイスのＭＡＣアドレス、ＴＰＭ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｍｏｄｕｌｅ）鍵などの、計算プラットフォームに関連する一意的な識別子である。少なくとも一実施形態では、プラットフォーム識別子は、製造者によりプラットフォーム鍵の生成に用いられ、プラットフォーム鍵は、製造者によりＤＸＥフェーズ１３１中にディスパッチ（ｄｉｓｐａｔｃｈ）されるファームウェアの暗号化にもちいられたものである。ブロック１３０において、この同じプラットフォーム識別子をブート処理１００において用いて、プラットフォームＩＤ鍵（例えば、図２のプラットフォームＩＤ鍵１８０を参照）を生成する。少なくとも一実施形態では、プラットフォームＩＤ鍵は、プラットフォーム識別子のハッシュを生成することにより、プラットフォーム識別子から生成される。
【００１４】
ブロック１３０において、プラットフォームＩＤ鍵を用いて実行可能ＤＸＥファームウェアを復号する。処理はブロック１４０に進む。ブロック１４０において、復号（ｄｅｃｒｙｐｔｅｄ）されたドライバーのうち適当なものをシステムメモリにロードしてディスパッチ（ｄｉｓｐａｔｃｈ）する。処理は、ＵＥＦＩフェーズＢＤＳ（Ｂｏｏｔ  Ｄｅｖ  Ｓｅｌｅｃｔ）１４１、ＴＳＬ（Ｔｒａｎｓｉｅｎｔ  Ｓｙｓｔｅｍ  Ｌｏａｄ）１５１、及びＲＴ（Ｒｕｎ  Ｔｉｍｅ）１６１でそれぞれブロック１５０、１６０、及び１７０に進む。これらのステージ１４１、１５１、１６１の１つ以上において、オペレーティングシステムコードが不揮発性記憶装置から揮発性システムメモリにロードされる。一実施形態では、このようなＯＳコードのロードは、ＴＳＬフェーズ１５１におけるブロック１６０において行われる。
【００１５】
図２は、修正されたブート方法２００の少なくとも一実施形態を示すフローチャートである。方法２００は、バイオメトリック情報を用いてブートファームウェア命令を暗号化するステップを含む。このように、その後のブートシーケンスは、ユーザ認証を含み、それからドライバーなどのブート命令を実行のためにメモリにロードしても良い。
【００１６】
図２の方法２００は、例えば、新しく購入したシステムをユーザが最初にブートした時に、行われる。このようなシナリオの場合、計算システムの製造者は、製造中に、フラッシュマネージャ（ｆｌａｓｈ  ｍａｎａｇｅｒ）をインストールして、そのフラッシュマネージャは次のパワーオンイベントで図２の方法２００を起動し、バイオメトリック認証を初期化するように設定されていてもよい。
【００１７】
あるいは、図２の方法２００は、初回のブートの後に、ユーザにより起動されてもよい。このような代替的シナリオは、例えば、ユーザ制御選択メカニズム（例えば、計算デバイスの制御パネルや設定オプションなど）を介してバイオメトリック認証初期化のユーザ選択により起動されてもよい。少なくともこのような一実施形態では、バイオメトリック認証がまだイネーブルされていなければ（例えば、製造者が初回ブート時に方法２００を強制的に実行するデフォルト処理をインプリメントしていない場合）、バイオメトリック認証を起動するため、ユーザ制御メカニズムを利用できる。そうでない場合、ユーザは事前に起動した認証情報の変更を望むかも知れない。このようなシナリオの場合、図２に示したように、ユーザは、まず、古いバイオメトリック情報を提供してから（この処理は図示していない）、認証を受けて、方法２００の（後述する）ブロック２２２に進むことができる。言い換えると、システムの窃盗犯は、バイオメトリック情報を自分の情報に変更することによっては、ここに説明した認証をバイパスできない。
【００１８】
図２は、方法２００は、図１を参照して上で説明した処理１１０と１２０に倣って、それぞれリセット２１０とプラットフォーム初期化２２０の処理で始まることを示している。
【００１９】
方法２００の処理は、ブロック２２０からブロック２２２に進む。ブロック２２２において、一以上のバイオメトリック入力デバイス（例えば、図６と図７の６０２を参照）を初期化する。ブロック２２２において起動されるデバイスは、次のデバイスのうち一つ以上を含む：カメラその他の顔認識デバイス、指紋スキャナ、網膜スキャナ、瞳スキャナ、マイクロホンその他のボイススキャナー、脳波スキャナ、ＤＮＡアナライザ、手形アナライザ、またはその他のバイオメトリック入力デバイス。処理は、ブロック２２２からブロック２２４に進む。
【００２０】
ブロック２２４において、ユーザからの入力は一以上のバイオメトリック入力デバイスから受け取られる。注目すべきは、一つのデバイスから、顔の複数のビュー（ｖｉｅｗｓ）、複数の指の指紋、両目のスキャンなどの複数のサンプルが受け取られる。このように、ファームウェア暗号化の場合、マルチファクタ認証がサポートされ、これには（説明したばかりの）同じタイプの複数の測定値及び／または複数のデバイスそれぞれからの一つの測定値（例えば、暗号化用の網膜スキャンとボイスデータの組み合わせなど）が含まれる。受け取られる情報はデジタルフォーマットで記憶されてもよい。処理は、ブロック２２４からブロック２３０に進む。
【００２１】
ブロック２３０において、デジタル化したバイオメトリック情報を用いて、ユーザのバイオメトリックデータに対応するパーソナル鍵を生成する。パーソナル鍵は、ブロック２３０において、例えば、ブロック２２４において収集されたユーザのデジタル化バイオメトリック情報に基づき、ハッシュ値を生成することにより生成される。処理は、ブロック２３０からブロック２５０に進む。
【００２２】
ブロック２５０において、実行可能ファームウェア命令が暗号化される。少なくとも一実施形態では、これは、ＤＸＥフェーズ命令があるファームウェアボリュームを暗号化することにより実現される。ブロック２５０における暗号化は、ブロック２３０で生成されたパーソナル鍵を、上で説明したプラットフォーム識別子から生成されたプラットフォームＩＤ鍵１８０とともに用いて行われる。暗号化された命令は、デバイスファームウェアにロードされ、ファームウェアボリュームの既存の命令を書き換える。処理は、ブロック２５０からブロック２８０に進む。少なくとも別の一実施形態では、処理はブロック２５０から任意的ブロック２５５に進む。ブロック２５５は任意的なので、図２において、破線で示している。
【００２３】
ブロック２５５において、ユーザがブートプロセスを続けることを望んでいるか判断する。望んでいなければ、ブロック１８０において処理は終了する。このような処理は、例えば、ユーザが最初の暗号化処理のみを行いたいが、計算デバイスを実際にブートして使用したいとは今のところ望んでいないときなどに生じる。ユーザの望みは、ブロック２５５において、キーボード入力、ユーザスクリーン入力、ボイス入力などを含む既知の方法により確認される。
【００２４】
ユーザがブートプロセスの継続を望んでいる場合、処理は、ＯＳのロードと実行開始のために、ブロック２５５から、ブート処理ブロック２６０、２７０、及び２７５に進む。
【００２５】
図２に示した方法２００の処理は、少なくとも一実施形態では、ＵＥＦＩブートプロセスの一部として、インプリメントされ得る。図３に戻り、図２の方法２００を、ＵＥＦＩブートシーケンスのフェーズ３１１、３２１、３３１、３４１、３５１、３６１に適用したところを示した。図３は、方法２００の大部分がＤＸＥフェーズ３３１中に行われることを示している。
【００２６】
具体的に、図３は、方法２００のブロック２１０がＳＥＣフェーズ３１１中に行われ、ブロック２２０がＰＥＩフェーズ３２１中に行われることを示している。処理は、ブロック２２０からブロック２２２に進む。
【００２７】
図３は、ブロック２２２、２２４、２３０、２５０及び２５５がＤＸＥフェーズ３３１中に行われることを示す。すなわち、ＵＥＦＩファームウェアが、（プラットフォーム識別子の他に）ユーザのバイオメトリック情報に基づくパーソナル鍵で暗号化されるのは、ＤＸＥファーズ３３１中である。ブロック２５５における判断が「真」値であれば、処理ブロック２６０、２７０及び２７５は、それぞれＢＤＳフェーズ３４１、ＴＳＬフェーズ３５１及びＲＴフェーズ３６１中に行われる。そうでなければ、ブロック２８０において処理は終了する。
【００２８】
図４は、バイオメトリックベースのファームウェアの復号（ｄｅｃｒｙｐｔｉｏｎ）をする改良されたブートプロセスの少なくとも一実施形態を示すフローチャートである。少なくとも一実施形態では、図４の方法４００は、図２の方法２００がすでに実行された計算システム上で実行されると仮定する。すなわち、図４は、図２に示した方法２００がそのシステム上で実行されて、ユーザのバイオメトリック情報を用いてファームウェアを暗号化した後に、ユーザのバイオメトリック情報を用いて、ファームウェアを復号する方法を示す。このように、方法４００を用いて、ドライバーなどのブート命令を認証してから、ブートシーケンス中に実行するためドライバーがメモリにロード（例えば、揮発性システムメモリにロード）される。
【００２９】
図４は、方法４００が、図１の方法１００を参照して説明したブロック（それぞれ１１０、１２０、１３０、１４０、１５０、１６０、１７０）に倣って進む幾つかの処理ブロック４１０、４２０、４３０、４４０、４５０、４６０、４７０を含むことを示す。しかし、図４は、通常のブートシーケンス１００が、改良され、バイオメトリック暗号化を考慮することを示す。このように、図４は、ブロック４２５において、強化されたバイオメトリック認証がそのデバイスに対してイネーブルされているか判断することを示す。すなわち、幾つかの実施形態では、ユーザは、本システムにおいてこのような暗号化を差し控えることを前もって選択している。同様に、製造者はこの機能をディスエーブルすることを選択しているかも知れない。このような場合、処理はブロック４３０に進む。ブロック４３０の評価が「偽」値である場合、図４に示した方法４００に対して実行された処理ブロックは、図１に示した通常のブートシーケンス（例えば、１１０、１２０、１３０、１４０、１５０、１６０、１７０）に対応することに注目すべきである。他方、ブロック４２５の評価が「真」値であった場合、バイオメトリック復号処理を開始するため、処理はブロック４３２に進む。
【００３０】
ブロック４３２において、バイオメトリック入力デバイスを初期化する。少なくとも一実施形態では、ブロック４３２の処理は、図２を参照して説明したブロック２２２に倣って進む。処理は、ブロック４３２からブロック４３４に進む。ブロック４３４において、ユーザのバイオメトリック情報を収集する。少なくとも一実施形態では、ブロック４３４の処理は、図２を参照して説明したブロック２２４に倣って進む。処理はブロック４３６に進む。
【００３１】
ブロック４３６において、ブロック４３４で収集されたバイオメトリック情報に基づいてパーソナル鍵が生成される。再び、ブロック４３６の少なくとも一実施形態の処理は、図２を参照して説明したブロック２３０の処理に倣って進む。処理は、ブロック４３６からブロック４３８に進む。
【００３２】
ブロック４３８において、前に暗号化されたファームウェアボリューム（図２参照）を、ブロック４３６において生成したパーソナル鍵を用いて、復号する。少なくとも一実施形態では、復号は、プラットフォームＩＤ鍵１８０及びパーソナル鍵に基づく。少なくとも他の一実施形態では、暗号化は付加情報に基づいても良い。このような付加情報に含まれるのは、パスワードやパスフレーズ（「あなたが知っていること」）などの他のファクタ、ＵＳＢドングルやスマートカードやその他のデバイスなどのトークン（「あなたが持っているもの」）、及び／またはＧＰＳデータやジオフェンス（ｇｅｏｆｅｎｃｉｎｇ）データなどのロケーション情報（「あなたがいるところ」）である。少なくとも一実施形態では、このような付加情報は、バイオメトリックパーソナル鍵とともに復号に使われる付加的な鍵としてキャプチャされる。少なくとも一実施形態では、付加情報がパーソナル鍵に含まれてもよい。これらのどの実施形態でも、言うまでもなく、ブロック４３８において暗号化に用いられる（バイオメトリックデータ及び「あなたが知っていること」、「あなたが持っているもの」、及び「あなたがいるところ」を含む）ユーザベース情報は、図２のブロック２５０において実行された暗号化にも予め使われている。
【００３３】
図４は、ブロック４３２、４３４、４３６及び４３８における処理のため、ブートプロセス中にユーザがいないと、ファームウェアボリュームが復号できないことを示す。このように、計算システムは、ユーザがいないと（ｗｉｔｈｏｕｔ  ｐｈｙｓｉｃａｌ  ｐｒｅｓｅｎｃｅ）ＯＳをブートできず、盗まれたときにそのデバイスは使い物にならなくなる。また、ブロック２５０（図２）と４３８（図４）に示した暗号化／復号はプラットフォームＩＤも用いるので、付加的なセキュリティが維持される。すなわち、第１の計算システムのユーザは、たとえそのユーザが両システムを所有していたとしても、第２の計算システムから第１の計算システムにファームウェアのコピーをすることができない。これは、プラットフォーム識別子がコンピュータシステム間で一意的であることによる。
【００３４】
ブロック４３８における復号動作が成功すると、ブロック４４０、４５０、４６０及び４７０において、通常のブート処理が実行される。
【００３５】
しかし、復号動作が成功しないと、処理はブロック４５８において終了する。しかし、終了前に、任意的ブロック４５６が実行される。ブロック４５６において、復号を再試行するか判断する。このような判断はデフォルト設定に基づいてもよいし、ユーザに求められた選択入力に基づいても良い。どんな場合であっても、再試行を行う場合、処理はブロック４３４に進み、復号の追加的な試行のため、バイオメトリック情報が収集される。
【００３６】
図４に示した方法４００の処理は、少なくとも一実施形態では、ＵＥＦＩブートプロセスの一部として、インプリメントされ得る。図５に戻り、図４の方法４００を、ＵＥＦＩブートシーケンスのフェーズ３１１、３２１、３３１、３４１、３５１、３６１に適用したところを示した。図５は、方法４００の大部分がＤＸＥフェーズ３３１中に行われることを示している。
【００３７】
具体的に、図５は、方法４００のブロック４１０がＳＥＣフェーズ３１１中に行われ、ブロック４２０がＰＥＩフェーズ３２１中に行われることを示している。処理は、ブロック４２０からブロック４２５に進む。
【００３８】
図５は、ブロック４２５、４３０、４３２、４３４、４３６、４３８及び４４０と任意的ブロック４５６がＤＸＥフェーズ３３１中に実行されることを示す。すなわち、ＵＥＦＩファームウェアが、（プラットフォーム識別子の他に）ユーザのバイオメトリック情報を用いて復号されるのは、ＤＸＥファーズ３３１中である。ブロック４５６における判断が「真」値であれば、処理ブロック４５０、４６０及び４７０が、それぞれＢＤＳフェーズ３４１、ＴＳＬフェーズ３５１及びＲＴフェーズ３６１中に行われる。そうでなければ、ブロック４５８において処理は終了する。
【００３９】
図６は、ブートにおけるファームウェアのバイオメトリック認証の少なくとも一実施形態を実行するモジュール６３０とその他のシステム要素を示すブロック図である。例えば、モジュール６３０は、図２と図３に示した暗号化ブロック２２２、２２４、２３０、２５０の実施形態を実行する命令を含んでもよいし、図４と図５に示した復号ブロック４３０、４３２、４３４、４３６、４３８の実施形態を実行する命令を含んでもよい。したがって、本発明の実施形態は、ここに説明した動作を実行する命令を含むマシンアクセス可能記憶媒体を含む。このような実施形態はコンピュータプログラム製品とも呼ばれる。
【００４０】
図６は、モジュール６３０が、デバイス初期化部６０４、入力コレクタ６０６、鍵生成部６０８、暗号化モジュール６１２、及び復号モジュール６１４のうち少なくとも一つを含むことを示す。少なくとも一実施形態では、このようなモジュール６３０は、計算デバイスの読み出し専用メモリ（ＲＯＭ）に記憶され、ＯＳがロードされる前のブートプロセスで実行されるファームウェアモジュールである。例えば、ブート中に、デバイス分析部６０４の一以上の命令が実行され、図２と図３に示したブロック２２２の処理を実行し、図４と図５に示したブロック４３２の処理を実行する。入力コレクタ６０６の一以上の命令が実行され、図１と図３に示したブロック２２４の処理を実行し、図４と図５に示したブロック４３４の処理を実行する。鍵生成部６０８の一以上の命令が実行され、図２と図３のブロック２３０と、図４と図５に示したブロック４３６とに示したように、パーソナル鍵６１０を生成する処理が実行される。
【００４１】
暗号化モジュール６１２の一以上の命令が実行され、図２と図３に示したブロック２５０を参照して説明したようにブート命令を暗号化する。少なくとも一実施形態では、暗号化モジュール６１２により実行される暗号化処理２５０が、ＵＥＦＩドライバー命令を含むファームウェアボリュームに適用される。
【００４２】
復号モジュール６１４の一以上の命令が実行され、図４と図５に示したブロック４３８を参照して説明したようにブート命令を復号（ｄｅｃｒｙｐｔ）する。少なくとも一実施形態では、復号モジュール６１４により実行される復号処理４３８が、ＵＥＦＩドライバー命令を含むファームウェアボリュームに適用される。
【００４３】
図６は、さらに、モジュール６３０が入力データに適用され、ここに説明の機能を実行し、出力情報を生成することを示す。したがって、モジュール６３０のうちの一以上のモジュールは、計算システムの他のコンポーネントから入力を受け取る。例えば、図６は、暗号化モジュール６１２と復号モジュール６１４が両方とも計算システムからプラットフォームＩＤ６８０を受け取ることを示す。
【００４４】
入力コレクタ６０６は、一以上のバイオメトリックデバイス６２０からバイオメトリック情報を受け取る。追加的バイオメトリックデバイスは任意的なので図６において破線で示した。少なくとも一実施形態では、バイオメトリックデバイスは、次のデバイスのうち一つ以上を含む：カメラその他の顔認識デバイス、指紋スキャナ、網膜スキャナ、瞳スキャナ、マイクロホンその他のボイススキャナー、脳波スキャナ、ＤＮＡアナライザ、手形アナライザ、またはその他のバイオメトリック入力デバイス。
【００４５】
モジュール６３０のうちの一以上のモジュールは、計算システムの他のコンポーネントにデータまたは信号を出力する。例えば、図６は、デバイス初期化部６０４が一以上のバイオメトリックデバイス６０２に、初期化信号及び／またはデータを提供することを示す。また、鍵生成モジュール６０８は、ユーザのバイオメトリックデータに少なくとも部分的に基づいて、鍵６１０を生成し、その鍵６１０を、暗号化モジュール６１２と復号モジュール６１４などの他モジュールに提供する。
【００４６】
ここでは主にＲＯＭファームウェア命令として説明したが、ここに開示したモジュール６３０の実施形態は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの実装方法の組み合わせで実装してもよい。実施形態は、少なくとも一プロセッサ、データ記憶システム（揮発性及び／または副発性メモリ、及び／または記憶要素を含むもの）、少なくとも一入力デバイス（例えば、キーボード、タッチスクリーンなど）、及び少なくとも一出力デバイス（例えば、一体型ディスプレイスクリーンやモニターなどの周辺ディスプレイデバイス）プログラマブルシステム上で実行されるコンピュータ命令として実装してもよい。
【００４７】
このようなマシンアクセス可能記憶媒体には、マシンまたはデバイスにより製造または形成された有体かつ非一時的な粒子の配置を含み、ハードディスク、フロッピー（登録商標）ディスク（登録商標）、光ディスク、コンパクトディスク・リードオンリメモリ（ＣＤ−ＲＯＭ）、コンパクトディス・クリライタブル（ＣＤ−ＲＷ）、光磁気ディスク等のその他の任意タイプのディスク、リードオンリメモリ（ＲＯＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、消去可能プログラマブル・リードオンリメモリ（ＥＰＲＯＭ）、フラッシュメモリ、電気的消去可能プログラマブル・リードオンリメモリ（ＥＥＰＲＯＭ）等の半導体デバイス、磁気または光カード、その他の電子的命令を記憶するのに好適な媒体が含まれるが、これらに限定はされない。
【００４８】
図６に示したモジュール６３０は、少なくとも一実施形態では、ＵＥＦＩブートプロセスの一部として、実行され得る。図７を参照して、ＵＥＦＩブートにおいてファームウェアのバイオメトリックベースの認証を実行する機能的ファームウェア及びソフトウェアモジュールを示す状態図である。図７は、スタートアップモジュール７１０とＰＥＩコアモジュール７２０を示す。図１−３及び図４−５をそれぞれ参照して説明したように、スタートアップモジュール７１０が実行され、少なくとも一実施形態では、ブロック１１０、２１０及び４１０の処理を実行する。このような処理はＵＥＦＩブートシーケンスのＳＥＣフェーズ３１１において実行される。
【００４９】
同様に、図１−３及び図４−５をそれぞれ参照して説明したように、ＰＥＩコアモジュール７２０が実行され、少なくとも一実施形態では、ブロック１２０、２２０及び４２０の処理を実行する。このような処理はＵＥＦＩブートシーケンスのＰＥＩフェーズ３２１において実行される。
【００５０】
図７は認証モジュール６３０も示す。認証モジュール６３０は、様々な入力を受け取り、これには一以上のバイオメトリックデバイスからのバイオメトリックデータと、プラットフォーム識別子も含まれる。図６を参照して説明したように、認証モジュール６３０を実行して、ブートプロセス中に実行されるファームウェアドライバのバイオメトリック認証を実行する。このような処理はＵＥＦＩブートシーケンスのＤＸＥフェーズ３３１において実行される。
【００５１】
図７は、ＯＳブートプロセスのフェーズ３３１、３４１、３５１及び３６１において実行される追加的モジュール７４０、７５０、７６０及び７７０も示している。このようなモジュールは、ファームウェアモジュールを含むが、ソフトウェアプログラムも含む。例えば、ＯＳ７７０は、ファームウェア命令ではなくソフトウェアプログラムとして実装してもよい。
【００５２】
ソフトウェアプログラム（例えば、７７０）として実装されたとのモジュールも、高レベルの、手続き型又はオブジェクト指向プログラミング言語で実装され、処理システムと通信してもよい。プログラムは、必要ならアセンブラ又は機械語で実装してもよい。実際、ここに説明のメカニズムは特定のプログラミング言語の範囲には限定されない。いずれの場合でも、言語はコンパイルされるかインタープリットされる言語であってもよい。
【００５３】
ここで図８を参照し、第１のシステム８００ａと第２のシステム８００ｂのブロック図を示している。どちらも上記の改良されたブート処理の実施形態を実行できる。本願の目的において、処理システムは、デジタル信号プロセッサ（ＤＳＰ）、マイクロコントローラ、特定目的集積回路（ＡＳＩＣ）、グラフィックス処理ユニット、マイクロプロセッサなどのプロセッサを有する任意のシステムを含む。
【００５４】
図８に示したように、第１のシステム８００ａは、一以上の処理要素８１０、８１５を含む、これらはグラフィックスメモリコントローラロジック（ＧＭＣ）８２０に結合している。追加的処理要素８１５は任意的なので、図８において破線で示した。
【００５５】
各処理要素８１０、８１５は、シングルコアあってもよいし、代替的に複数のコアを含んでいてもよい。処理要素８１０、８１５は、任意的に、処理コアに加えて、集積メモリコントローラ及び／または集積Ｉ／Ｏ制御ロジックなどの他のオンダイ（ｏｎ−ｄｉｅ）要素を含んでいても良い。また、第１のシステム８００ａの少なくとも一実施形態では、処理要素８１０、８１５のコアは、１つのコア当たり一以上のハードウェアスレッドコンテクスト（ｈａｒｄｗａｒｅ  ｔｈｒｅａｄ  ｃｏｎｔｅｘｔ）を含むという点で、マルチスレッドであってもよい。
【００５６】
図８は、ＧＭＣ８２０が、例えばダイナミックランダムアクセスメモリ（ＤＲＡＭ）であってもよいメモリ８３０に結合していることを示す。少なくとも一実施形態では、ＧＭＣ８２０はチップセットであっても、チップセットの一部であってもよい。あるいは、ＧＭＣのコントローラロジックは、例えば、システムオンチップ（ＳＯＣ）構成で、システムの他のコンポーネントと集積されていてもよい。ＧＭＣ８２０は、プロセッサ８１０、８１５と通信し、プロセッサ８１０、８１５とメモリ８３０との間のインターラクションを制御する。
【００５７】
ＧＭＣ８２０は、プロセッサ８１０、８１５と、システム８００ａの他の要素との間の高速バスインタフェースとしても動作する。少なくとも一実施形態では、ＧＭＣ８２０は、フロントサイドバス（ＦＳＢ）８９５などのマルチドロップバス（ｍｕｌｔｉ−ｄｒｏｐ  ｂｕｓ）を介して、プロセッサ８１０、８１５と通信する。他の実施形態（例えば、図９と図１０を参照）では、ＧＭＣ８２０は、ポイントツーポイント・インターコネクト（ｐｏｉｎｔ−ｔｏ−ｐｏｉｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ）を介してプロセッサ８１０、８１５と通信する。
【００５８】
さらに、ＧＭＣ８２０はディスプレイ８４０（例えば、フラットパネルディスプレイやタッチセンサー方式ディスプレイなど）に結合している。ＧＭＣ８２０は、グラフィックスアクセラレータが集積されていてもよい。ＧＭＣ８２０は、さらに、入出力（Ｉ／Ｏ）コントローラロジック（ＩＣ）８５０に結合している。これは、システム８００ａに様々な周辺デバイスを結合するのに使われる。例えば、外部グラフィックスデバイス８６０を示した。これは、一以上のキーボード、マウス、または数字キーパッドなどの他の周辺デバイス８７０と共にＩＣ８５０に結合されたディスクリートグラフィックスデバイスであってもよい。
【００５９】
あるいは、第１のシステム８００ａには、他の異なる処理要素があってもよい。例えば、第２のシステム実施形態８００ｂを参照して直下で説明するどの機能も、第１のシステム８００ａに含まれ得る。また、追加的処理要素８１５は、プロセッサ８１０と同じ追加的プロセッサ、プロセッサ８１０とは異種の追加的プロセッサ、アクセラレータ（例えば、グラフィックスアクセラレータやデジタル信号プロセッシング（ＤＳＰ）ユニットなど）、フィールドプログラマブルゲートアレイ、またはその他の任意の処理要素を含み得る。物理的リソース８１０、８１５の間には、利点の基準のスペクトルの点で、アーキテクチャ、マイクロアーキテクチャ、熱的、消費電力特性など、様々な違いがあり得る。これらの違いは、処理要素８１０、８１５の間における非対称性及び不均一性として現れる。少なくとも一実施形態では、様々な処理要素８１０、８１５は、同じダイパッケージにある。
【００６０】
図８は、第２のシステム８００ｂが一以上の処理要素８１１を含むことも示す。図８に示した第１のシステム８００ａと同様に、システム８００ｂは、電子デバイス８００ｂを望み通りに構成する好適なハードウェア及び／またはソフトウェアを用いて実装される電子デバイスである。図８は、一実施形態では、一例のシステム８００ｂが、タッチセンサー方式ディスプレイデバイス８０２と一以上のプロセッサ８１１とがシステム制御ロジック８０４に結合していることを示す。システム８００ｂは、システム制御ロジック８０４に結合したシステムメモリ８３０も含む。システム制御ロジック８０４は、不揮発性メモリ及び／または記憶デバイス８３５にも結合され、一以上の通信インタフェース８０６にも結合している。
【００６１】
タッチセンサー方式ディスプレイデバイス８０２（ここでは「タッチスクリーン」とも呼ぶ）は、例えば、容量型、抵抗型、表面音響波（ＳＡＷ）、赤外線型、光学的画像化型など、任意の好適なタッチセンサー技術を用いて実装されてもよい。一実施形態において、タッチセンサー方式ディスプレイデバイス８０２に用いられるタッチセンサー技術は、その表面に実際に触らなくても、表面近くにオブジェクトがあることを検知することができる。このような技術はそれでもタッチセンサー方式（ｔｏｕｃｈ−ｓｅｎｓｉｔｉｖｅ）であると考えられるのは、このような技術はディスプレイデバイス８０２の表面に実際にタッチするオブジェクトを同様に検知し、このような表面は電子デバイス８００ｂが使用される時に実際にタッチされる可能性が高いからである。一実施形態では、タッチセンサー方式ディスプレイデバイス８０２は、任意の好適なマルチタッチ技術を用いて実装できる。タッチセンサー方式ディスプレイデバイス８０２は、例えば、液晶ディスプレイ（ＬＣＤ）などの好適なディスプレイ技術を用いて実装できるディスプレイを含む。少なくとも一実施形態ではシステム制御ロジック８０４は、一以上のグラフィックスコントローラを含み、タッチセンサー方式ディスプレイデバイス８０２への一以上のディスプレイインタフェースを提供する。
【００６２】
少なくとも一実施形態では、システム制御ロジック８０４は、少なくとも一プロセッサ８１１及び／またはシステム制御ロジック８０４と通信する任意の好適なデバイスまたはコンポーネントへの任意の好適なインタフェースを提供する任意の好適なインタフェースコントローラを含む。
【００６３】
システム制御ロジック８０４は、少なくとも一実施形態では、システムメモリ８３０とのインタフェースを提供する１つ以上のメモリコントローラを含む。システムメモリ８３０は、例えば、システム８００ｂの動作中に、データ及び／または命令をロードするために用いられる。少なくとも一実施形態では、システムメモリ８３０を用いて、任意の好適なドライバーソフトウェア、アプリケーションソフトウェア、及び／またはオペレーティングシステムソフトウェア（例えば、図７のオペレーティングシステム７７０を参照）任意の好適なソフトウェア８３２を記憶する。システムメモリ８３０は、一実施形態では、ＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）などの好適な揮発性メモリを含んでいてもよい。
【００６４】
少なくとも一実施形態では、システム制御ロジック８０４は、一以上の入出力（Ｉ／Ｏ）コントローラを含み、タッチセンサー方式ディスプレイデバイス８０２、不揮発性メモリ、及び／または記憶デバイス８３５、及び／または通信インタフェース８０６へのインタフェースを提供する。
【００６５】
不揮発性メモリ及び／または記憶デバイス８３５は、データ及び／または命令８３７を記憶するために用いられる。例えば、不揮発性メモリ及び／または記憶デバイス８３５は、図６に示したモジュール６０４、６０６、６０８、６１２、６１４に倣ってファームウェアモジュールを記憶する。このような実施形態では、命令８３７は、図６と図７に示した認証モジュール６３０に対応する。
【００６６】
不揮発性メモリ及び／または記憶デバイス８３５は、例えば、フラッシュメモリなどの任意の好適な不揮発性メモリを含み、一以上のハードディスクドライブ（ＨＤＤ）、一以上のコンパクトディスク（ＣＤ）デバイス、及び／または一以上のデジタルバーサタイルディスク（ＤＶＤ）ドライブなどの任意の好適な不揮発性記憶デバイスを含む。不揮発性メモリ及び／または記憶デバイス８３５は、少なくとも一実施形態では、（例えば、図６のモジュール６３０と図１−５のブート処理を参照）ブート処理の命令を記憶する不揮発性リードオンリーメモリ（ＲＯＭ）を含む。
【００６７】
通信インタフェース８０６は、ネットワークにより、及び／またはその他の好適なデバイスにより通信するインタフェースをシステム８００ｂに提供する。通信インタフェース８０６は好適なハードウェア及び／またはファームウェアを含み得る。通信インタフェース８０６は一実施形態では、ネットワークアダプタ、ワイヤレスネットワークアダプタ、電話モデム、及び／またはワイヤレスモデムなどを含む。ワイヤレス通信の場合、通信インタフェース８０６は一実施形態では１つ以上のアンテナ８０８を用いる。
【００６８】
少なくとも一実施形態では、システム制御ロジック８０４は、例えば、オーディオデバイスなどの入出力デバイスにインタフェースを提供して、サウンドの対応デジタル信号への変換を助け、デジタル信号の対応サウンド、カメラ、カムコーダ、プリンタ、及び／またはスキャナへの変換を助ける、一以上の入出力（Ｉ／Ｏ）コントローラを含む。
【００６９】
少なくとも一実施形態では、少なくとも一プロセッサ８１１は、システム制御ロジック８０４の１つ以上のコントローラのロジックとともにパッケージされ得る。一実施形態では、少なくとも一プロセッサ８１１は、システム制御ロジック８０４の１つ以上のコントローラのロジックとともにパッケージされ、システムインパッケージ（ＳｉＰ）を構成し得る。一実施形態では、少なくとも一プロセッサ８１１は、システム制御ロジック８０４の１つ以上のコントローラのロジックと同じダイ（ｄｉｅ）に集積され得る。一実施形態では、少なくとも一プロセッサ８１１は、システム制御ロジック８０４の１つ以上のコントローラのロジックと同じダイ（ｄｉｅ）に集積され、システムオンチップ（ＳｏＣ）を構成し得る。
【００７０】
一実施形態では、システム８００ｂで用いられるものとして説明したが、他の実施形態のタッチセンサー方式ディスプレイデバイス８０２は他のシステム構成でも用いることができる。
【００７１】
ここで図９を参照するに、本発明の一実施形態による第３のシステム９００の実施形態を示すブロック図である。図９に示したように、マルチプロセッサシステム９００は、ポイントツーポイント・インターコネクト・システムであり、ポイントツーポイント・インターコネクト９５０を介して結合された第１の処理要素９７０と第２の処理要素９８０とを含む。図９に示したように、各処理要素９７０、９８０は、マルチコアプロセッサでもよく、第１と第２のプロセッサコア（すなわち、プロセッサコア９７４ａと９７４ｂ及びプロセッサコア９８４ａと９８４ｂ）を含む。
【００７２】
あるいは、処理要素９７０、９８０のうち一以上は、アクセラレータやフィールドプログラマブルゲートアレイなどのプロセッサ以外の要素であってもよい。
【００７３】
２つの処理要素９７０、９８０のみを示したが、言うまでもなく特許請求の範囲はこれに限定されない。他の実施形態では、追加的な一以上の処理要素がプロセッサにあってもよい。
【００７４】
第１の処理要素９７０は、さらに、メモリコントローラロジック（ＭＣ）９７２及びポイントツーポイント（Ｐ−Ｐ）・インタフェース９７６と９７８を含む。同様に、第２の処理要素９８０はＭＣＨ９８２及びＰ−Ｐインタフェース９８６と９８８を含む。図９に示したように、メモリコントローラロジック９７２と９８２は、プロセッサを、それぞれのメモリ、すなわちメモリ９３２とメモリ９３４に結合する。これらのメモリは、それぞれのプロセッサに局所的に付加されたメインメモリの一部であってもよい。
【００７５】
第１の処理要素９７０と第２の処理要素９８０は、それぞれＰ−Ｐインターコネクト９５２と９５４を介して、Ｉ／Ｏ制御ロジック９９０に結合している。図９に示したように、Ｉ／Ｏ制御ロジック９９０はＰ−Ｐインタフェース９９４と９９８を含む。さらに、Ｉ／Ｏ制御ロジック９９０は、Ｉ／Ｏ制御ロジック９９０を高性能グラフィックスエンジン９３８と結合するインタフェース９９２を含む。一実施形態では、バス９３９を用いてグラフィックスエンジン９３８をＩ／Ｏ制御ロジック９９０に結合する。あるいは、これらの構成要素はポイントツーポイント・インターコネクト９３９で結合してもよい。
【００７６】
同様に、Ｉ／Ｏ制御ロジック９９０は、インタフェース９９６を介して第１のバス９１６に結合されてもよい。一実施形態では、第１のバス９１６は、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスであっても、またはＰＣＩ  Ｅｘｐｒｅｓｓバスやその他の第３世代Ｉ／Ｏインターコネクトバスなどのバスであってもよく、特許請求の範囲はこれに限定されない。
【００７７】
図９に示したように、様々なＩ／Ｏデバイス９１４を第１のバス９１６に結合でき、バスブリッジ９１８で第１のバス９１６を第２のバス９１０に結合できる。一実施形態では、第２のバス９１０はローピンカウント（ＬＰＣ）バスであってもよい。一実施形態では、例えば、キーボード及び／またはマウス９１２と、通信デバイス９１６と、コード９３０を含むディスクドライブやその他の大規模記憶デバイスなどのデータ記憶ユニット９１８とを含む様々なデバイスを、第２のバス４２０に結合してもよい。コード９３０は、上記の方法のうち一以上の実施形態を実行する命令を含む。さらに、オーディオＩ／Ｏ９１４は第２のバス９１０に結合してもよい。他のアーキテクチャも可能であることに留意せよ。例えば、図９のポイントツーポイントアーキテクチャのかわりに、システムはマルチドロップバスその他のアーキテクチャを実施してもよい。
【００７８】
ここで図１０を参照するに、本発明の一実施形態による第４のシステム１０００の実施形態を示すブロック図である。図９と図１０中の同様の要素は同じ参照数字で示した。図１０の他の態様をわかりにくくしないよう、図９の一部の態様は図１０では省略している。
【００７９】
図１０は、処理要素９７０、９８０が、それぞれ集積されたメモリ及びＩ／Ｏ制御ロジック（「ＣＬ」）１０７２と１０８２を含むことを示している。少なくとも一実施形態では、ＣＬ１０７２、１０８２は、メモリコントローラロジックを含む。また、ＣＬ１０７２、１０８２はＩ／Ｏ制御ロジックも含み得る。図１０は、メモリ９３２、９３４がＣＬ１０７２、１０８２に結合しているだけでなく、Ｉ／Ｏデバイス１０４４も制御ロジック１０７２、１０８２に結合していることも示している。レガシーＩ／Ｏデバイス１０１５は、Ｉ／Ｏサブシステム９９０に、またはもしあればチップセットに、結合される。
【００８０】
ここに示したのは、Ｉ／Ｏデバイスに可能性のあるインターラプトを問い合わせるためＯＳを高速に起動する、ユーザ選択メカニズムに基づきＩ／Ｏデバイスに問い合わせをするように修正することもできる、改良されたシステムブート処理をする方法とシステムの実施形態である。本発明の具体的な実施形態を示して説明したが、当業者には明らかなように、特許請求の範囲から逸脱することなく、多くの変更、改変、修正が可能である。
【００８１】
したがって、当業者には言うまでもなく、本発明から逸脱することなく、その広い態様において、変更と修正をできる。特許請求の範囲は、その範囲内に、本発明の真の範囲と精神に属する変更、改変、及び修正を含む。
【００８２】
以下の例は、本明細書に記載した実施形態に関するものである。一以上の実施形態では、計算システムのオペレーティングシステムのブート中に、ブートモジュールのバイオメトリック認証を実行する方法が提供される。本方法は、リセットイベントの通知の受け取りに応じて、計算システムにおいてブートシーケンスの最初の動作を実行するステップと、複数の鍵を用いてブートシーケンスコードを復号（ｄｅｃｒｙｐｔ）する、前記複数の鍵は前記計算システムのユーザのバイオメトリック情報から生成された少なくとも１つの鍵を含む、ステップと、前記復号に応じて、前記ブートシーケンスの残りの（ａｄｄｉｔｉｏｎａｌ）動作を実行する、前記残りの動作は前記計算システムのシステムメモリへの、オペレーティングシステムコードのロードを含む、ステップと、前記復号が不成功であったとき、前記オペレーティングシステムコードをロードすることなく、前記ブートシーケンスを終了するステップとを含む。
【００８３】
一以上の実施形態の一例において、ブートシーケンスはＵＥＦＩブートシーケンスである。このような実施形態では、復号はＵＥＦＩブートシーケンスのドライバー実行環境フェーズ中に実行される。このような実施形態では、復号は、さらに、ＵＥＦＩドライバーコードの復号を含む。
【００８４】
一以上の実施形態の一例において、ブートシーケンスの初期動作は、計算システムのプロセッサを初期化する一以上の動作を含む。
【００８５】
一以上の実施形態の一例において、この方法は、さらに、一以上のバイオメトリックデバイスを初期化するステップを含む。この方法は、さらに、一以上のバイオメトリックデバイスからのバイオメトリック情報を収集するステップを含む。
【００８６】
一以上の実施形態の一例において、複数の鍵は、さらに、計算システムに対して一意的な情報から生成された少なくとも１つの鍵を含む。
【００８７】
一以上の実施形態により提供される少なくとも１つのマシンアクセス可能記憶媒体は、プロセッサにより実行された時に、計算デバイスに次の動作をさせる一以上の命令を含む：リセットイベントの通知を受け取る動作、一以上のバイオメトリックデバイスから、ユーザに関連するバイオメトリック情報を受け取る動作、前記バイオメトリック情報に基づいて、ブートシーケンス中に実行されるべき命令を暗号化する動作、残りの（ａｄｄｉｔｉｏｎａｌ）処理を実行して、オペレーティングシステムをロードする動作、前記暗号化は、さらに、計算デバイスに関連する一意的な識別に基づき、オペレーティングシステムをロードする前に実行される。
【００８８】
このような少なくとも一実施形態では、暗号化はＵＥＦＩブートシーケンスのドライバー実行環境フェーズ中に実行される。
【００８９】
このような少なくとも他の一実施形態では、暗号化は、さらに、ユーザに関連する一以上の追加的データに基づく。一以上の追加的データは、さらに、（ａ）トークンの所持、（ｂ）パスワード、（ｃ）パスフレーズ、及び（ｄ）ユーザの位置のうちの一以上を含む。
【００９０】
少なくとも１つのコンピュータ読み取り可能媒体の一以上の実施形態の他の一例では、一以上の追加的命令は、実行されると、計算デバイスに次の動作を実行させる：一以上のプラットフォーム初期化命令を実行する動作、及び一以上のバイオメトリックデバイスを初期化する動作。
【００９１】
一以上の実施形態により提供される少なくとも他の１つのマシンアクセス可能記憶媒体は、プロセッサにより実行された時に、計算デバイスに次の動作をさせる一以上の命令を含む：リセットイベントの通知を受け取る動作、一以上のバイオメトリックデバイスから、ユーザに関連するバイオメトリック情報を受け取る動作、前記バイオメトリック情報に基づいて、ブートシーケンス中に実行されるべき命令を復号（ｄｅｃｒｙｐｔ）する動作、残りの（ａｄｄｉｔｉｏｎａｌ）処理を実行して、オペレーティングシステムをロードする動作、前記復号は、さらに、計算デバイスに関連する一意的な識別に基づき、オペレーティングシステムをロードする前に実行される。
【００９２】
少なくとも１つのコンピュータ読み取り可能媒体の一以上の実施形態の他の一例では、一以上の追加的命令は、実行されると、計算デバイスに次の動作を実行させる：一以上のプラットフォーム初期化命令を実行する動作、及び一以上のバイオメトリックデバイスを初期化する動作。
【００９３】
このような少なくとも一実施形態では、復号はＵＥＦＩブートシーケンスのドライバー実行環境フェーズ中に実行される。
【００９４】
このような少なくとも他の一実施形態では、暗号化は、さらに、ユーザに関連する一以上の追加的データに基づく。一以上の追加的データは、さらに、（ａ）トークンの所持、（ｂ）パスワード、（ｃ）パスフレーズ、及び（ｄ）ユーザの位置のうちの一以上を含む。
【００９５】
一以上の実施形態により提供されるシステムは、ブートモジュールのバイオメトリック認証を実行する。このような一実施形態の一例は、プロセッサと、前記プロセッサに結合した不揮発性メモリと、前記プロセッサに結合したシステムメモリとを含み、前記不揮発性メモリは、ユーザのバイオメトリック情報に基づいて、第１の鍵を生成し、不揮発性メモリに記憶された命令を認証し、認証された命令を不揮発性メモリから揮発性メモリにロードする一以上の命令を含み、前記認証は第１の鍵と、システムに関連する一意的識別子とに基づく。
【００９６】
このような少なくとも一システム実施形態例では、前記認証された命令は、オペレーティングシステムコードのシステムメモリへのロードの前に実行される命令である。
【００９７】
このような少なくとも他の一システム実施形態例では、前記一意的な識別子はシステムに関連するシリアルナンバーである。
【００９８】
このような少なくとも他の一システム実施形態例では、前記一意的な識別子はトラステッドプラットフォームモジュール鍵である。
【００９９】
このような少なくとも他の一システム実施形態例では、前記バイオメトリック情報は指紋である。
【０１００】
このような少なくとも他の一システム実施形態例では、前記バイオメトリック情報はユーザの顔の画像である。
【０１０１】
このような少なくとも他の一システム実施形態例では、前記認証された命令は、さらに、一以上のドライバーに関連する命令を含む。このような少なくとも一実施形態では、不揮発性メモリに記憶された前記命令は、さらに、一以上のＵＥＦＩドライバーに関連する命令を含む。
【０１０２】
このような少なくとも他の一システム実施形態例では、前記不揮発性メモリは、一意的な識別子に基づいて、第２の鍵を生成する一以上の命令を含む。
【０１０３】
このような少なくとも他の一システム実施形態例では、請求項１１のシステムにおいて、前記復号はさらにユーザに関連する追加的データに基づく。このような少なくとも一実施形態では、ユーザに関連する前記追加的データはさらにパスワードを含む。このような少なくとも一実施形態では、ユーザに関連する前記追加的データはさらにパスフレーズ（ｐａｓｓｐｈｒａｓｅ）を含む。このような少なくとも一実施形態では、ユーザに関連する前記追加的データはさらにユーザ位置情報を含む。
【図１】
2015532987.tif 000002
【図２】
2015532987.tif 000003
【図３】
2015532987.tif 000004
【図４】
2015532987.tif 000005
【図５】
2015532987.tif 000006
【図６】
2015532987.tif 000007
【図７】
2015532987.tif 000008
【図８】
2015532987.tif 000009
【図９】
2015532987.tif 000010
【図１０】
2015532987.tif 000011
【国際調査報告】
2015532987.tif 000012
2015532987.tif 000013