(57)【特許請求の範囲】
【請求項１】
公開／秘密鍵のペアを含みコンピュータに常駐するセキュア・チップと、記憶手段と、入力手段とを有する前記コンピュータにおいてセキュリティを提供する方法であって、
（ａ）前記セキュア・チップが第１の乱数を使って、鍵を含むマイグレート可能キーブロブを作成するステップと、
（ｂ）前記セキュア・チップが前記鍵の親鍵の公開鍵を使って、前記マイグレート可能キーブロブをラップするステップと、
（ｃ）前記入力手段から前記セキュア・チップが前記鍵のユーザのパス・フレーズを受け取るステップと、
（ｄ）前記セキュア・チップが前記鍵のユーザのパス・フレーズを使って、前記第１の乱数を暗号化するステップと、
（ｅ）前記セキュア・チップが前記暗号化した第１の乱数を前記記憶手段に記憶するステップと、
（ｆ）前記マイグレート可能キーブロブを前記コンピュータから前記セキュア・チップにマイグレートするステップとを含む方法。
【請求項２】
前記作成ステップ（ａ）が、
（ａ１）前記セキュア・チップが第１の乱数を生成するステップと、
（ａ２）前記セキュア・チップが前記鍵をスクランブルするステップと、
（ａ３）前記セキュア・チップが前記第１の乱数と前記スクランブルした鍵の排他的論理和をとることによって、前記マイグレート可能キーブロブを作成するステップとを含む、請求項１に記載の方法。
【請求項３】
前記暗号化ステップ（ｄ）が、
（ｄ１）前記セキュア・チップが前記パス・フレーズをハッシュすることによって第２の乱数を生成するステップと、
（ｄ２）前記セキュア・チップが前記第２の乱数にマスク生成関数（ＭＧＦ）を適用することによって、第３の乱数を生成するステップと、
（ｄ３）前記セキュア・チップが前記第３の乱数を、前記第１の乱数と同じ長さのストリングに変換するステップと、
（ｄ４）前記セキュア・チップが前記第１の乱数と前記変換された第３の乱数の排他的論理和をとることによって、第４の乱数を生成するステップとを含む、請求項１に記載の方法。
【請求項４】
前記記憶ステップ（ｅ）が、
（ｅ１）前記第４の乱数を前記記憶手段に記憶するステップを含む、請求項３に記載の方法。
【請求項５】
（ｇ）前記セキュア・チップが前記第３の乱数を、それを生成するために使用したＭＧＦとハッシュをリバースすることによって、前記パス・フレーズから得るステップと、
（ｈ）前記セキュア・チップが前記第３の乱数と前記記憶した第４の乱数の排他的論理和をとることによって、前記第１の乱数を得るステップと、
（ｉ）前記コンピュータから前記第１の乱数および前記マイグレート可能キーブロブを、前記セキュア・チップに送るステップと、
（ｊ）前記セキュア・チップの秘密鍵を使って、前記セキュア・チップが前記マイグレート可能キーブロブをアンラップするステップと、
（ｋ）前記セキュア・チップが前記マイグレート可能キーブロブと前記第１の乱数の排他的論理和をとることによって、スクランブルされている鍵を得るステップと、
（ｌ）前記セキュア・チップが前記スクランブルされている鍵をアンスクランブルするステップとをさらに含む、請求項４に記載の方法。
【請求項６】
公開／秘密鍵のペアを含みコンピュータに常駐するセキュア・チップと、記憶手段と、入力手段とを有する前記コンピュータにおいて実行するプログラムを記憶するコンピュータ可読記憶媒体であって、前記プログラムが前記コンピュータに、
（ａ）前記セキュア・チップが第１の乱数を使って、鍵を含むマイグレート可能キーブロブを作成する機能と、
（ｂ）前記セキュア・チップが前記鍵の親鍵の公開鍵を使って、前記マイグレート可能キーブロブをラップする機能と、
（ｃ）前記入力手段から前記セキュア・チップが前記鍵のユーザのパス・フレーズを受け取る機能と、
（ｄ）前記セキュア・チップが前記鍵のユーザのパス・フレーズを使って、前記第１の乱数を暗号化する機能と、
（ｅ）前記セキュア・チップが前記暗号化した第１の乱数を前記記憶手段に記憶する機能と、
（ｆ）前記マイグレート可能キーブロブを前記コンピュータから前記セキュア・チップにマイグレートする機能を実現させるコンピュータ可読記録媒体。
【請求項７】
前記作成機能（ａ）が、
（ａ１）前記セキュア・チップが第１の乱数を生成する機能と、
（ａ２）前記セキュア・チップが前記鍵をスクランブルする機能と、
（ａ３）前記セキュア・チップが前記第１の乱数と前記スクランブルした鍵の排他的論理和をとることによって、前記マイグレート可能キーブロブを作成する機能を含む、請求項６に記載の記録媒体。
【請求項８】
前記暗号化機能（ｄ）が、
（ｄ１）前記セキュア・チップが前記パス・フレーズをハッシュすることによって第２の乱数を生成する機能と、
（ｄ２）前記セキュア・チップが前記第２の乱数にマスク生成関数（ＭＧＦ）を適用することによって、第３の乱数を生成する機能と、
（ｄ３）前記セキュア・チップが前記第３の乱数を、前記第１の乱数と同じ長さのストリングに変換する機能と、
（ｄ４）前記セキュア・チップが前記第１の乱数と前記変換された第３の乱数の排他的論理和をとることによって、第４の乱数を生成する機能を含む、請求項６に記載の記録媒体。
【請求項９】
前記記憶機能（ｅ）が、
（ｅ１）前記第４の乱数を記憶する機能を含む、請求項８に記載の記録媒体。
【請求項１０】
（ｇ）前記セキュア・チップが前記第３の乱数を、それを生成するために使用したＭＧＦとハッシュをリバースすることによって、前記パス・フレーズから得る機能と、
（ｈ）前記セキュア・チップが前記第３の乱数と前記記憶された第４の乱数の排他的論理和をとることによって、前記第１の乱数を得る機能と、
（ｉ）前記セキュア・チップが前記第１の乱数および前記マイグレート可能キーブロブを前記セキュア・チップに送る機能と、
（ｊ）前記セキュア・チップの秘密鍵を使って、前記セキュア・チップが前記マイグレート可能キーブロブをアンラップする機能と、
（ｋ）前記セキュア・チップが前記マイグレート可能キーブロブと前記第１の乱数の排他的論理和をとることによって、スクランブルされている鍵を得る機能と、
（ｌ）前記スクランブルされている鍵をアンスクランブルする機能とをさらに含む、請求項９に記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ・ネットワークにおけるセキュリティに関し、より詳細には、コンピュータ・ネットワークにおいてセキュア・チップ中のルート・キーを保護することに関する。
【０００２】
【従来の技術】
ＴＣＰＡ（トラステッド・コンピューティング・プラットフォーム・アライアンス）プロトコルに準拠したセキュア・チップは、当技術分野ではよく知られている。本明細書では、「セキュア・チップ」はＴＰＭ（トラステッド・プラットフォーム・モジュール）である。一般に、ＴＰＭは、コンピュータ・ネットワーク中のクライアント・コンピュータ・システムに常駐している。機能の中でも特に、ＴＰＭは、ネットワーク上で使用されるクライアントのために、暗号鍵を公開／秘密鍵のペアの形で生成する。鍵は、使用されていない場合は、ＴＰＭの外部に、チェーン方式により、安全な方法で記憶されている。
【０００３】
図１は、従来のセキュア・チップの鍵チェーンを示す。セキュア・チップ１０２はＴＰＭであると仮定する。ＴＰＭ１０２は、それ自体のルート鍵１０４を持っている。ルート鍵１０４は、ＴＰＭが情報を記憶することを可能にするメカニズムである。ルート鍵１０４は、ＴＰＭ１０２の公開／秘密鍵のペアを含む。ＴＰＭ１０２は、鍵１０６など、ネットワークのためのさらに多くの鍵を生成する。これらの鍵１０６のうち少なくとも１つは、マイグレート可能な鍵である。これらの鍵１０６のそれぞれは、公開／秘密鍵のペアを含む。これらの鍵１０６のそれぞれを、ＴＰＭ１０２の公開鍵を使ってラップする。ＴＰＭ１０２は、次いで、子鍵１０８を生成し、それらを鍵１０６の公開鍵中にラップする。その他の鍵１１０を生成して、鍵１０８の公開鍵中にラップすることもできる。したがって、チェーンは、親鍵１０８の公開鍵中にラップされた子鍵１１０、親の親鍵１０６の公開鍵中にラップされた親鍵１０８、およびＴＰＭ１０２の公開鍵中にラップされた親の親鍵１０６を含む。
【０００４】
ＴＣＰＡ仕様によれば、鍵には、マイグレート可能およびマイグレート不能の２種類がある。本発明には、特に、マイグレート可能鍵が関連するので、従って、本明細書ではそれらについてのみ記載する。ＴＣＰＡ仕様は、鍵をあるＴＰＭから別のＴＰＭに移動させるための２つのコマンドを含む。第１は、単純な再ラップ・コマンドであり、このコマンドにより、ユーザの鍵がＴＰＭにロードされ、その親の鍵でアンラップされ、次いで、別の親の鍵で再ラップされる。このコマンドは、コンピュータのアップグレードの間、あるコンピュータ・システムから別のコンピュータ・システムにユーザの鍵をマイグレートするために使用することができる。第２のコマンドは、ハードウェアの故障の場合に、サード・パーティの鍵を使ってユーザの鍵を記憶するために使用する。第２のコマンドの場合、記憶の間、交換システムの親鍵が何になるか分からないので、サード・パーティの公開鍵を使用してラップする。
【０００５】
第２のコマンドについては、そのサード・パーティの鍵が信頼できない場合には、追加保護機能を提供することができる。この鍵をラップする前に、最適非対称暗号パディング（optimal asymmetric encryption padding）（ＯＡＥＰ）を適用し、最終ラッピングの前に、その結果と乱数Ｒの排他的論理和をとる。これによって、このサード・パーティが自分の公開鍵を使ってこのユーザの鍵をアンラップすることを防ぐことができる。ユーザの鍵がサード・パーティからリコールされた場合には、ユーザは、ユーザの鍵を再ラップするための公開鍵（新しいＴＰＭに関連する）をサード・パーティーに提供し、次いで、その新しいＴＰＭの鍵でラップされたユーザの鍵を、Ｒとともに挿入する。次いで、ＴＰＭは、最終ラッピングをアンラップし、その結果とＲの排他的論理和をとり、ＯＡＥＰを逆に行い、それによってユーザの鍵を回復する。次に、この鍵を新しいＴＰＭにロードする。新しいＴＰＭは、通常の方法で鍵をラップし、この再ラップされた鍵がハードディスク上に記憶される。
【０００６】
【発明が解決しようとする課題】
しかし、セキュア・チップ１０２中のルート鍵１０４の公開鍵を、ＴＰＭをはがし、ハードウェアを調べることによって読むことができる。ルート鍵１０４が得られると、それを使って、ルート鍵の公開鍵でラップされている親の親鍵１０６のすべてをアンラップすることができる。親の親鍵１０６にアクセスできると、親鍵１０８のすべてをアンラップすることが可能になり、次いで、子鍵１１０をアンラップすることができる。これは、重大なセキュリティの侵害を招く。
【０００７】
したがって、セキュア・チップを使って、改善されたセキュリティを提供するための方法が必要とされている。本発明はこのような必要に応えるものである。
【０００８】
【課題を解決するための手段】
セキュア・チップを使ってセキュリティを提供する方法は、第１の乱数を使って、鍵を含むマイグレート可能なキーブロブを作成するステップと、そのマイグレート可能キーブロブを、その鍵の親鍵の公開鍵を使ってラップするステップと、第１の乱数を、その鍵のユーザのパス・フレーズを使って暗号化するステップと、暗号化した第１の乱数を記憶するステップと、マイグレート可能キーブロブを、コンピュータからそれ自体にマイグレートするステップを含む。セキュア・チップの公開鍵が盗まれたとしても、盗用者は、マイグレート可能キーブロブ中の鍵の、祖先である鍵をアンラップできるだけである。マイグレート可能キーブロブ中の鍵を得るためには、それを作成するのに使用した乱数が必要となる。しかし、それを復号するには、ユーザのパス・フレーズが必要となる。これにより、マイグレート可能キーブロブ中に記憶されている鍵およびその子鍵のセキュリティを強化することができる。
【０００９】
【発明の実施の形態】
本発明は、セキュア・チップを使って、改善されたセキュリティを提供するための方法およびシステムを提供する。以下の説明は、当業者が本発明をつくり、使用することができるように記載し、また、特許出願およびその要件という文脈で提供している。当業者には、好ましい実施形態の様々な変更が明らかであろうし、本明細書に記載した一般的な原理は、他の実施形態にも適用できる。したがって、本発明は、例示の実施形態に限定されるものではなく、本明細書に記載されている原理および特徴に一致する最大範囲を対象とするように意図したものである。
【００１０】
本発明の特徴をより詳細に説明するために、以下の説明とともに、図２〜５を参照していただきたい。
【００１１】
図２は、本発明による、セキュア・チップを使った、改善されたセキュリティのための方法の、好ましい実施形態によって作成された鍵チェーンである。好ましい実施形態では、セキュア・チップ１０２は、セキュア・チップの鍵チェーン中の鍵の１つを、マイグレート可能キーブロブ２０２中に記憶する。例えば、親鍵１０８のユーザが、親鍵１０８およびその子鍵１１０に関して、改善されたセキュリティを望むとする。親鍵１０８を最適非対称暗号パディング（ＯＡＥＰ）とスクランブルすることによって、マイグレート可能キーブロブ２０２に記憶する。ＯＡＥＰは、当技術分野ではよく知られている。次いで、このＯＡＥＰでスクランブルされた親鍵１０８と乱数の排他的論理和をとり、マイグレート可能キーブロブ２０２を作成する。次いで、マイグレート可能キーブロブ２０２を、親の親鍵の公開鍵中にラップする。本発明では、マイグレート可能キーブロブ２０２を作成するために使用する乱数を、セキュア・チップの乱数発生ルーチン（図示せず）によって生成する。
【００１２】
親鍵１０８を使用するために、セキュア・チップ１０２は、マイグレート可能キーブロブ２０２を、その秘密鍵を使ってアンラップする。マイグレート可能キーブロブ２０２から親鍵１０８を得るには、それをスクランブルするために使用した乱数を、セキュア・チップ１０２が利用できなければならない。セキュア・チップ１０２は、この乱数を使って、マイグレート可能キーブロブ２０２の親鍵１０８をアンスクランブルして、親鍵１０８を得る。しかし、この乱数は、通常、多ビット数であり、ユーザが覚えておくには長すぎるし、セキュア・チップ１０２を使ってディスク上に乱数を記憶すると、十分なセキュリティが提供されない。この乱数も、保護するために、ユーザが作成したパス・フレーズを使って暗号化する。次に、暗号化した乱数をシステム上に記憶する。したがって、親鍵１０８を得るために、ユーザのパス・フレーズが必要となる。パス・フレーズを使って、乱数を復号する。次に、セキュア・チップ１０２が、この乱数を使って親鍵１０８を得る。したがって、チップ１０２がはがされ、セキュア・チップのルート鍵が発見されたとしても、パス・フレーズなしには、マイグレート可能キーブロブ２０２に記憶されている親鍵１０８にアクセスすることは依然としてできない。マイグレート可能キーブロブ２０２の親鍵１０８をアンスクランブルすることができなければ、その鍵の子鍵１１０にアクセスすることもできない。これによって、セキュア・チップの鍵チェーンのこの部分において、セキュア・チップのセキュリティが強化される。
【００１３】
図３は、本発明による、セキュア・チップを使った、改善されたセキュリティのための方法の、好ましい実施形態を示す流れ図である。最初に、ステップ３０２で、セキュア・チップ１０２は第１の乱数を生成する。ステップ３０４で、この第１の乱数を使って、マイグレート可能ブロブ２０２を作成する。マイグレート可能キーブロブ２０２は、親鍵１０８などの鍵を含む。次いで、ステップ３０６で、セキュア・チップ１０２は、親の親鍵１０６の公開鍵である、この鍵の親鍵の公開鍵で、マイグレート可能キーブロブ２０２をラップする。ステップ３０８で、セキュア・チップ１０２は、鍵１０８のユーザのパス・フレーズを受け取る。次いで、ステップ３１０で、セキュア・チップ１０２は、パス・フレーズに基づいて、第２の乱数を生成する。ステップ３１２で、第２の乱数に基づいて、第３の乱数を生成する。次に、ステップ３１４で、第１の乱数および第３の乱数に基づいて、第４の乱数を生成する。ステップ３１６で、この第４の乱数を記憶する。次いで、ステップ３１８で、マイグレート可能キーブロブ２０２を、セキュア・チップ１０２が常駐するコンピュータからセキュア・チップにマイグレートする。好ましい実施形態では、この方法は、セキュア・チップ１０２も常駐しているコンピュータ内のディスクに常駐するソフトウェアによって実行される。
【００１４】
このように、ルート鍵１０４が何かの理由で盗まれたとしても、盗用者は、マイグレート可能キーブロブ２０２中に記憶されている鍵の祖先である、鍵チェーン中の鍵をアンラップできるだけである。マイグレート可能キーブロブ２０２中の鍵を得るには、マイグレート可能キーブロブ２０２を作成するのに使用した乱数が必要となる。この乱数は暗号化されて記憶されており、復号するには、その鍵のユーザのパス・フレーズが必要となる。これによって、マイグレート可能キーブロブ２０２中に記憶されている鍵のセキュリティが強化される。マイグレート可能キーブロブ２０２中の鍵を得ることができないので、その子鍵１１０も得ることができない。したがって、本発明による方法は、鍵チェーンのこの部分において、鍵のセキュリティを強化する。
【００１５】
図４は、本発明による、セキュア・チップを使った、改善されたセキュリティのための方法の、好ましい実施形態をより詳細に示す流れ図である。セキュア・チップ１０２が、トラステッド・コンピューティング・プラットフォーム・アライアンス（ＴＣＰＡ）プロトコルを使った、トラステッド・プラットフォーム・モジュール（ＴＰＭ）であると想定する。最初に、ステップ４０２で、親鍵１０８などの鍵をスクランブルする。次に、ステップ４０４で、ＴＰＭ１０２の乱数発生ルーチンが第１の乱数を生成する。次に、ステップ４０６で、この第１の乱数と、スクランブルした親鍵１０８の排他的論理和をとって、マイグレート可能キーブロブ２０２を作成する。ステップ４０８で、ＴＰＭ１０２は、マイグレート可能キーブロブ２０２を、親鍵の親鍵の公開鍵、すなわち親の親鍵１０６の公開鍵を使ってラップする。ステップ４１０で、親鍵１０８のユーザのパス・フレーズも受け取る。ステップ４１２で、ユーザのパス・フレーズをハッシュすることによって、第２の乱数を生成する。ステップ４１４で、第２の乱数にマスク生成関数（ＭＧＦ）を適用し、第１の乱数と同じ長さのストリングに変換することによって、第３の乱数を生成する。ＭＧＦは、当技術分野ではよく知られている。ステップ４１６で、第１の乱数と第３の乱数の排他的論理和をとることによって、第４の乱数を生成する。ステップ４１８で、この第４の乱数を記憶する。ステップ４２０で、マイグレート可能キーブロブ２０２を、ＴＰＭを有するコンピュータからＴＰＭにマイグレートする。
【００１６】
親鍵１０８を使用するためには、ユーザは自分のパス・フレーズを入力する。図５は、本発明による方法で保護された鍵がどのように得られるかを示す流れ図である。最初に、ステップ５０２で、ユーザのパス・フレーズを受け取る。次いで、ステップ５０４で、パス・フレーズをハッシュし、ＭＧＦを適用することによって、第３の乱数を得る。次いで、ステップ５０６で、第３の乱数と記憶した第４の乱数の排他的論理和をとることによって、第１の乱数を得る。次いで、ステップ５０８で、ＴＰＭの乱数および暗号化したマイグレート可能キーブロブ２０２を、ＴＰＭ１０２に送る。ステップ５１０で、ＴＰＭ１０２は、暗号化されているマイグレート可能キーブロブ２０２を、その秘密鍵を使ってアンラップする。ステップ５１２で、ＴＰＭ１０２は、マイグレート可能キーブロブ２０２と第１の乱数の排他的論理和をとって、スクランブルされている親鍵１０８を得る。次いで、ステップ５１４で、ＴＰＭ１０２は、親鍵１０８をアンスクランブルする。鍵１０８は、アンスクランブルすると、使用することができる。従来のマイグレート可能キーブロブを使うと、回復された鍵１０８をノーマル・ブロブ中に再ラップして永続メモリに記憶するが、本発明による回復された鍵１０８については、そのようなことは行わない。代わりに、返されたノーマル・ブロブを廃棄する。
【００１７】
あるいは、マイグレート可能キーブロブが提供するセキュリティが必要ではない場合は、マイグレート不能キーブロブを使用することができる。ＴＰＭ１０２とマイグレート不能キーブロブの排他的論理和をとることによって、マイグレート不能キーブロブと等しい長さの乱数が得られる。その結果を記憶する。次いで、乱数を、ユーザのパス・フレーズから引き出した鍵で暗号化することによって隠す。
【００１８】
セキュア・チップを使って、改善されたセキュリティを提供する方法を開示してきた。この方法は、セキュア・チップの鍵チェーン中の鍵を、マイグレート可能キーブロブ内に記憶する。マイグレート可能キーブロブを作成するために使用する乱数を、鍵のユーザのパス・フレーズを使って暗号化して記憶する。セキュア・チップのルート鍵が何かの理由で盗まれたとしても、盗用者は、マイグレート可能キーブロブ中に記憶されている鍵の祖先である、鍵チェーン中の鍵をアンラップできるだけである。マイグレート可能キーブロブ中の鍵を得るには、それを作成するのに使用した乱数が必要となる。しかし、それを復号するには、ユーザのパス・フレーズが必要となる。これによって、マイグレート可能キーブロブ中に記憶された鍵、およびその子鍵のセキュリティが強化される。
【００１９】
本発明を、例示の実施形態によって説明してきたが、当業者は、これらの実施形態はさまざまな変形が可能であり、そのような変形形態も本発明の趣旨および範囲に入ることを理解されよう。したがって、当業者は、頭記の特許請求の範囲の趣旨および範囲から逸脱することなく、多くの変更を施すことができる。
【図面の簡単な説明】
【図１】従来のセキュア・チップの鍵チェーンを示す図である。
【図２】本発明による、セキュア・チップを使った、改善されたセキュリティのための方法の、好ましい実施形態によって作成された鍵チェーンを示す図である。
【図３】本発明による、セキュア・チップを使った、改善されたセキュリティのための方法の好ましい実施形態を示す流れ図である。
【図４】本発明による、セキュア・チップを使った、改善されたセキュリティのための方法の好ましい実施形態を、より詳細に示す流れ図である。
【図５】本発明による方法で保護された鍵がどのようにして得られるかを示す流れ図である。
【符号の説明】
１０２ ＴＰＭ、セキュア・チップ
１０４ ルート鍵
１０６ 鍵、親の親鍵
１０８ 鍵、親鍵
１１０ 子鍵
２０２ マイグレート可能キーブロブ
【図１】
0003927501.tif 000002
【図２】
0003927501.tif 000003
【図３】
0003927501.tif 000004
【図４】
0003927501.tif 000005
【図５】
0003927501.tif 000006