(57)【特許請求の範囲】
【請求項１】
システムであって：
基本入出力システム（ＢＩＯＳ）からアクセス可能なセキュアストレージ；
システムのブートの間に、セキュアストレージ内の固定記憶位置にある認証値を記憶するＢＩＯＳセキュリティモジュール；および
暗号化キーモジュールを含み、暗号化キーモジュールは：
固定記憶位置から認証値を読み出し；
固定記憶位置にある認証値を上書きし；そして
認証値を使用して暗号化キーを取得する、システム。
【請求項２】
暗号化キーは、認証値を使用して暗号化キーを生成することによって取得される、請求項１のシステム。
【請求項３】
暗号化キーは、認証値に基づいて、システムがアクセス可能なストレージ上にある暗号化キーをアクセスすることによって取得される、請求項１のシステム。
【請求項４】
セキュアストレージはＢＩＯＳのプライベートメモリであり、そして固定記憶位置はユニファイド・エクステンシブル・ファームウェア・インタフェース（ＵＥＦＩ）変数である、請求項１のシステム。
【請求項５】
暗号化キーモジュールは認証値をＵＥＦＩ変数から、アドミニストレータ権限を用い、プライベートＢＩＯＳコールを使用して読み出す、請求項４のシステム。
【請求項６】
セキュアストレージは信頼されたプラットフォームモジュールであり、そして固定記憶位置は予め決定されたプラットフォーム構成レジスタである、請求項１のシステム。
【請求項７】
認証値を上書きすることは、レジスタをランダムデータで拡張することを含む、請求項６のシステム。
【請求項８】
コンピュータ可読媒体であって、プロセッサによって実行された場合に：
セキュアストレージ内の固定記憶位置から認証値を読み出し、ここで認証値は基本入出力システム（ＢＩＯＳ）のスタートアップの間に固定記憶位置に記憶されたものであり；
認証値を固定記憶位置から消去し；そして
認証値を使用して暗号化キーを取得するようにプロセッサを制御する、プロセッサで実行可能な命令を記憶している、コンピュータ可読媒体。
【請求項９】
認証値を消去することは、固定記憶位置にランダムデータを書き込むことを含む、請求項８のコンピュータ可読媒体。
【請求項１０】
固定記憶位置は、ユニファイド・エクステンシブル・ファームウェア・インタフェース（ＵＥＦＩ）変数を介してアクセス可能なＢＩＯＳプライベートメモリ内にある、請求項８のコンピュータ可読媒体。
【請求項１１】
固定記憶位置は、信頼されたプラットフォームモジュールのプラットフォーム構成レジスタである、請求項８のコンピュータ可読媒体。
【請求項１２】
暗号化キーは、認証値を使用して暗号化キーを生成すること、認証値を使用して記憶場所から暗号化キーをアクセスすることの一方によって取得される、請求項８のコンピュータ可読媒体。
【請求項１３】
システムであって：
基本入出力システム（ＢＩＯＳ）からアクセス可能な第１のプラットフォーム構成レジスタを有する、信頼されたプラットフォームモジュール；
システムのスタートアップの間に、認証値をプラットフォーム構成レジスタに記憶するＢＩＯＳセキュリティモジュール；
プラットフォーム構成モジュールから認証値を取得し、そしてプラットフォーム構成レジスタをランダムデータで拡張する値取得モジュール；および
認証値を使用して暗号化キーを取得するよう認証値を使用するキー取得モジュールを含む、システム。
【請求項１４】
キー取得モジュールは、認証値を使用して暗号化キーを生成する、請求項１３のシステム。
【請求項１５】
キー取得モジュールは、認証値を使用してシステムからアクセス可能なストレージから暗号化キーを取得する、請求項１３のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
暗号鍵の生成は、ソフトウェアおよびデータの安全確保のために頻発するタスクである。暗号鍵は、データの暗号化および解読、データおよび／またはコマンドをアプリケーション間で安全に伝送すること、システムの部品の間でデータおよび／またはコマンドを安全に伝送すること、およびその他を含む、種々のタスクのために使用されている。
【図面の簡単な説明】
【０００２】
本出願は、添付図面に関連して行われる以下の詳細な説明に関連して、より十分に理解されるであろう。
【０００３】
図１は、暗号化キーのセキュリティに関連する例示的なシステムを説明している。
【０００４】
図２は、暗号化キーのセキュリティに関連する別の例示的なシステムを説明している。
【０００５】
図３は、暗号化キーのセキュリティに関連する例示的な動作のフローチャートを説明している。
【０００６】
図４は、暗号化キーのセキュリティに関連する別の例示的なシステムを説明している。
【０００７】
図５は、例示的なシステム、方法、および均等物が作動してよい、例示的なコンピューティング装置を説明している。
【発明を実施するための形態】
【０００８】
暗号化キーのセキュリティに関連するシステム、方法、および均等物が記載される。暗号化キーを生成する場合、後で使用するためにキーを持続させることが望ましいが、その理由はキーの生成プロセスは、キー生成プロセスが同一のキーを生成することを防止するため、キーがランダムに生成されることを保証してよいからである。キーを持続させることなしには、キーを使用したデータ暗号化は、回復不能となりうる。キーを望ましくないアクセス（例えば悪意の動作主体による）から保護するために、キーは認証値によって保護されていてよい。幾つかの場合には、この認証は個人識別番号（ＰＩＮ）またはパスワードであってよい。しかしながら、特定の場合にはユーザーが入力した値は不適切な解決策となる可能性があり、ユーザーの入力なしに認証値を取得することが望ましい。
【０００９】
従って、本願に記載された例は、暗号鍵を生成および／またはアクセスするための認証値を記憶する、基本入出力システムのセキュリティプロセスに関する例について記述している。システムのブート中に、認証値は、暗号鍵の生成またはアクセスに責任を負う信頼されたプロセスに知られている、固定された位置に記憶されてよい。この信頼されたプロセスが認証値にアクセスしたならば、認証値がその後悪意の存在によってアクセスされることを防止するために、信頼されたプロセスは認証値を固定された位置から消去してよい。
【００１０】
図１は、暗号化キーのセキュリティに関連する例示的なシステムを図示している。図１に描かれた項目は説明的な例であり、そして多くの異なるシステム、デバイス、およびその他が、種々の例に従って作動してよいことが理解されねばならない。
【００１１】
図１は、暗号化キーのセキュリティに関連する例示的なシステム１００を図示している。起動の一環として、システム１００は、データアクセスおよび部品間の通信の暗号化といった、種々の機能を行うために、１つまたはより多くの暗号化キーを使用してよい。これらの暗号鍵の生成および／またはアクセスは、認証値１０４によって保護（セキュア化）されてよい。システム１００はこれらの暗号化キーを、認証値のユーザー入力を取得することが実行可能となる前に使用してよいことから、システム１００がユーザー入力なしに、暗号化キーの生成および／またはアクセスを行うための方途を有することが望ましくありうる。
【００１２】
従って、システム１００は、セキュリティモジュール１２５を含む、基本入出力システム（ＢＩＯＳ）１２０を含んでいる。システム１００の起動の間にＢＩＯＳセキュリティモジュール１２５は、ＢＩＯＳ１２０がアクセス可能なセキュアストレージ（安全記憶領域）１１０の固定記憶位置１０２に認証値１０４を記憶させてよい。認証値１０４が暗号鍵の生成および／または取得に使用される場合には、ＢＩＯＳ１２０および／またはシステム１００によって信頼されている認証値取得モジュール１３０が、固定記憶位置１０２から認証値１０４を探索してよい。従って、固定記憶位置１０２はＢＩＯＳセキュリティモジュール１２５および認証値取得モジュール１３０の両者に知られているセキュアストレージ１１０内部の位置であってよく、認証値取得モジュール１３０はシステム１００がブートされる毎に、認証値１０４が同じ位置に記憶されまた検索されることを許容する。認証値取得モジュール１３０が認証値１０４を取得したならば、認証値取得モジュール１３０は次いで固定記憶位置１０２をランダムデータで上書きして、認証値１０４が他のプロセスに読み取り可能となることを防止してよい。
【００１３】
認証値取得モジュール１３０は次いで、認証値１０４を暗号化キー取得モジュール１４０に提供してよく、これは認証値１０４を使用して暗号化キー（単数または複数）を取得してよい。１つの例において、暗号化キー取得モジュール１４０は、認証値１０４に基づいて暗号化キーを生成することにより、暗号化キーを取得してよい。これは例えば、暗号化キーがシステム１００によって最初に使用される場合に行われてよい。他の例においては、暗号化キー取得モジュール１４０は暗号化キーを記憶場所１９９から、認証値１０４を使用して検索してよい。実例として、記憶場所１９９は、それ自体が認証値１０４に基づいて暗号化されている、暗号化キーのバージョンを記憶していてよい。かくして、暗号化キー取得モジュール１４０は認証値１０４を使用して、暗号化キーの暗号化されたバージョンを解読（復号）することにより、暗号化キーを取得してよい。
【００１４】
種々の例において、セキュアストレージ１１０は種々の形態を取ってよい。セキュアストレージ１１０の形態は、システム１００がアクセス可能な資源に依存していてよく、そしてまた、固定記憶位置１０２の形態、および／または種々の部品がどのようにして固定記憶位置１０２および／または認証値１０４と相互作用（例えばアクセスや消去）を行うかを決定付けるものであってよい。例えば、セキュアストレージ１１０は、ＢＩＯＳ１２０のプライベートメモリであってよい。このＢＩＯＳプライベートメモリは例えば、望ましくないアクセスを防止するようにＢＩＯＳ１２０によってアクセスが制御されたメモリであってよい。このことは、ＢＩＯＳプライベートメモリに対するアクセスが、例えばＢＩＯＳ１２０によって信頼されたプロセス、プライベートメモリを望ましくない改変やアクセスから保護することが可能なＢＩＯＳコードに対するＡＰＩコール、およびその他によってのみ行われ得ることを確実なものとしてよい。かくして、固定記憶位置１０２は、ユニファイド・エクステンシブル・ファームウェア・インタフェース（ＵＥＦＩ）変数であってよい。このことは、認証値取得モジュール１３０がアドミニストレータ権限を使用したプライベートＢＩＯＳコールを使用して、認証値１０４を固定記憶位置１０２から読み出すことを意味してよい。例えば、ウィンドウズオペレーティングシステムを実行しているシステム１００について、プライベートＢＩＯＳコールは、ウィンドウズ・マネジメント・インスツルメンテーション（ＷＭＩ）コールの形態を取ってよい。
【００１５】
別の例においては、セキュアストレージ１１０は信頼されたプラットフォームモジュールであってよい。かくして、固定記憶位置１０２はプラットフォーム構成レジスタであってよい。この例において、認証値取得モジュール１３０は、アドミニストレータ権限での操作を直接に使用して、プラットフォーム構成レジスタから認証値１０４を読み出してよい。さらに、この例においては、プラットフォーム構成レジスタを消去することは、プラットフォーム構成レジスタをランダムデータで拡張することを包含していてよい。
【００１６】
この例においては別個の部品として示されているのであるが、他の実施形態においては、システム１００の種々の他の部品をＢＩＯＳ１２０の一部分として実施してよい。例えば、認証値取得モジュール１３０および／または暗号化キー取得モジュール１４０は、ＢＩＯＳレベルで実施される命令であってよく、そして上述したように、セキュアストレージ１１０はＢＩＯＳプライベートメモリであってよい。
【００１７】
理解されるように、以下の記載においては、例示物の完全な理解を提供するために、幾つもの具体的な詳細事項が記述されている。しかしながら、それらの例示物は、そうした具体的な詳細事項に限定することなく実施されてよいことが理解される。他の場合においては、例示物の説明を不必要に不明瞭にすることを避けるため、方法および構造が詳細に記載されない場合がある。また、例示物は相互に組み合わせて使用されてよい。
【００１８】
本願で使用するところでは、「モジュール」は、限定するものではないが、ハードウェア、ファームウェア、コンピュータ可読媒体に記憶されたソフトウェアまたはマシン上で実行中のソフトウェア、および／または機能（単数または複数）または動作（単数または複数）を行うための、および／または別のモジュール、方法、および／またはシステムから機能または動作を生じさせるための各々の組み合わせを含んでいる。モジュールには、ソフトウェア制御されたマイクロプロセッサ、ディスクリートモジュール、アナログ回路、デジタル回路、プログラムされたモジュールデバイス、命令を保持しているメモリデバイス、およびその他が含まれていてよい。モジュールは、ゲート、ゲートの組み合わせ、または他の回路部品を含んでいてよい。複数の論理モジュールが記載される場合には、それら複数の論理モジュールを１つの物理モジュールに組み入れることが可能であってよい。同様に、単一の論理モジュールが記載される場合には、その単一の論理モジュールを複数の物理モジュールの間に分散することが可能であってよい。
【００１９】
図２は、暗号化キーのセキュリティに関連する例示的なシステム２００を示している。このシステム２００は、セキュアストレージ２１０を含んでいる。セキュアストレージ２１０は、基本入出力システム２２０からアクセス可能であってよい。システム２００はまた、セキュアストレージ２１０に認証値を記憶するため、ＢＩＯＳセキュリティモジュール２２５を含んでいる。認証値は、固定記憶位置においてセキュアストレージ２１０に記憶されてよい。認証値は、システム２００のブートの間にセキュアストレージ２１０に記憶されてよい。幾つかの例においては、セキュアストレージ２１０はＢＩＯＳ２２０のプライベートメモリであってよい。かくして、固定記憶位置は、ユニファイド・エクステンシブル・ファームウェア・インタフェース（ＵＥＦＩ）変数であってよい。他の例においては、セキュアストレージ２１０は信頼されたプラットフォームモジュールであってよい。ここで、固定記憶位置は、予め決定されたプラットフォーム構成レジスタであってよい。
【００２０】
システム２００はまた、暗号化キーモジュール２３０を含んでいる。暗号化キーモジュール２３０は、セキュアストレージ２１０内の固定記憶位置から認証値を読み出してよい。例示として、固定記憶位置がＵＥＦＩ変数である場合、暗号化キーモジュール２３０は認証値をＵＥＦＩ変数から、アドミニストレータ権限を用い、プライベートＢＩＯＳコールを使用して読み出してよい。暗号化キーモジュール２３０はまた、固定記憶位置にある認証値を上書きしてよい。例示として、固定記憶位置がプラットフォーム構成レジスタである場合、認証値を上書きすることは、レジスタをランダムデータで拡張することを含んでいてよい。暗号化キーモジュール２３０はまた、認証値を使用して暗号化キーを取得してよい。１つの例では、暗号化キーは、認証値を使用して暗号化キーを生成することによって取得されてよい。他の例では、暗号化キーは、認証値を使用して、システム２００がアクセス可能なストレージ上にある暗号化キーをアクセスすることにより、取得されてよい。
【００２１】
図３は、例示的な方法３００を示している。方法３００は、非一時的なプロセッサ可読媒体で実行可能な命令について具現化されてよい。こうした命令は、プロセッサによって実行された場合に、プロセッサが方法３００を実施するようにさせてよい。他の例においては、方法３００は、論理ゲートおよび／または特定用途向け集積回路（ＡＳＩＣ）のＲＡＭ内に存在していてよい。
【００２２】
方法３００は、暗号化キーのセキュリティに関連する種々のタスクを実施してよい。方法３００は、３１０において認証値を読み出すことを含んでいる。この認証値は、セキュアストレージ内の固定記憶位置から読み出されてよい。この認証値は、基本入出力システム（ＢＩＯＳ）のスタートアップの間に固定記憶位置に記憶されてよい。この固定記憶位置は、例えば、ユニファイド・エクステンシブル・ファームウェア・インタフェース（ＵＥＦＩ）変数、信頼されたプラットフォームモジュール、プラットフォーム構成レジスタ、およびその他を介してアクセス可能なＢＩＯＳプライベートメモリであってよい。
【００２３】
方法３００はまた、３２０において固定記憶から認証値を消去することを含んでいる。認証値を消去することは、固定記憶位置にランダムデータを書き込むことを含んでいてよい。方法３００はまた、３３０において、認証値を使用して暗号化キーを取得することを含んでいる。暗号化キーは、例えば、認証値を使用して暗号化キーを生成し、認証値を使用して暗号化キーを記憶場所からアクセスし、およびその他によって取得されてよい。
【００２４】
図４は、暗号化キーのセキュリティに関連するシステム４００を示している。システム４００は、信頼されたプラットフォームモジュール４１０を含んでいる。信頼されたプラットフォームモジュールは、基本入出力システム（ＢＩＯＳ）４２０からアクセス可能なプラットフォーム構成レジスタを含んでいてよい。ＢＩＯＳ４２０は、ＢＩＯＳセキュリティモジュール４２５を含んでいてよい。ＢＩＯＳセキュリティモジュールは、システム４００のスタートアップの間に、認証値をプラットフォーム構成レジスタに記憶させてよい。
【００２５】
システム４００はまた、値取得モジュール４３０を含んでいてよい。値取得モジュール４３０は、プラットフォーム構成モジュールから認証値を取得してよい。値取得モジュール４３０はまた、プラットフォーム構成レジスタをランダムデータで拡張してよい。このことは、その後にプラットフォーム構成レジスタをアクセスする主体が、認証値を取得することを防止してよい。
【００２６】
システム４００はまた、キー取得モジュール４４０を含んでいてよい。キー取得モジュール４４０は、認証値を使用して暗号化キーを取得してよい。キー取得モジュールは、認証値を使用して暗号化キーを生成することにより、認証値を使用して暗号化キーのためのセキュアストレージにアクセスすることにより、およびその他によって、暗号化キーを取得してよい。
【００２７】
図５は、例示的なシステムおよび方法、およびそれらの均等物が動作してよい、例示的なコンピューティングデバイスを示している。この例示的なコンピューティングデバイスは、バス５３０によって接続されたプロセッサ５１０およびメモリ５２０を含むコンピュータ５００であってよい。コンピュータ５００は、暗号化キーのセキュリティモジュール５４０を含んでいる。暗号化キーのセキュリティモジュール５４０は単独で、または組み合わせられて、例示的なシステム、方法、およびその他に関して上記に説明した、種々の機能を行ってよい。異なる例においては、暗号化キーのセキュリティモジュール５４０は、プロセッサで実行可能な命令を記憶している非一時的なコンピュータ可読媒体として、ハードウェア、ソフトウェア、ファームウェア、特定用途向け集積回路、および／またはこれらの組み合わせにおいて実施されてよい。
【００２８】
これらの命令はまた、メモリ５２０に一時的に記憶され、次いでプロセッサ５１０によって実行される、データ５５０および／またはプロセス５６０としてコンピュータ５００に提示されてよい。プロセッサ５１０は、デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを含む、種々のプロセッサであってよい。メモリ５２０は、不揮発性メモリ（例えば、リードオンリーメモリ）および／または揮発性メモリ（例えば、ランダムアクセスメモリ）を含んでいてよい。メモリ５２０はまた、例えば、磁気ディスクドライブ、半導体ドライブ、フロッピーディスクドライブ、テープドライブ、フラッシュメモリカード、光学ディスク、およびその他であってよい。かくして、メモリ５２０はプロセス５６０および／またはデータ５５０を記憶していてよい。コンピュータ５００はまた、他のコンピュータ、デバイス、周辺機器、およびその他を含む他のデバイスと、数多くの構成（図示せず）でもって関連されていてよい。
【００２９】
開示された例についての以上の記載は、任意の当業者が本開示物を作成または使用することを可能にするように提供されたものであることが理解されよう。当業者には、これらの例の多種多様な修正が即座に明白であり、そして本願に規定された一般的な原理は、開示の思想または範囲から逸脱することなしに、他の例に対しても適用されてよい。かくして、本開示は本願に示された例に限定されることを意図したものではなく、本願に開示された原理および新規な特徴と一貫性のある、最も広い範囲が与えられるものである。
【図１】
0006898519.tif 000002
【図２】
0006898519.tif 000003
【図３】
0006898519.tif 000004
【図４】
0006898519.tif 000005
【図５】
0006898519.tif 000006