(57)【要約】実施形態は、ストレージデバイスのデータを暗号化する方法、装置、システムを含む。１方法では、鍵を用いてストレージデバイスのデータを暗号化し、次に鍵を暗号モジュールに送信し、モジュールで鍵を暗号化してＢＬＯＢ（Ｂｉｎａｒｙ  Ｌａｒｇｅ  Ｏｂｊｅｃｔ）を形成すること、を含む。ＢＬＯＢを、該ＢＬＯＢを保存するストレージデバイスと接続したアレイ制御装置に送信する。【選択図】図１Ａ
2011517205.tif 000002
【特許請求の範囲】
【請求項１】
ストレージデバイスのデータを暗号鍵で暗号化し、
前記暗号鍵を暗号化してＢＬＯＢ（Ｂｉｎａｒｙ  Ｌａｒｇｅ  Ｏｂｊｅｃｔ）を形成する暗号モジュールに前記暗号鍵を送信し、
前記ＢＬＯＢを、前記ストレージデバイスに接続されたアレイ制御装置に送信し、
前記ＢＬＯＢを前記ストレージデバイスに保存すること、
を含む、方法。
【請求項２】
前記ストレージデバイスのデータを復号化する要求を受信し、
前記要求に応えて、前記ＢＬＯＢを前記ストレージデバイスから、前記ＢＬＯＢから前記暗号鍵を抽出する前記暗号モジュールに送信し、
前記ＢＬＯＢから抽出した前記暗号鍵を、前記アレイ制御装置に送り、
前記ストレージデバイスの前記データを、前記暗号鍵で復号化すること、
を更に含む、請求項１に記載の方法。
【請求項３】
前記ストレージデバイスのアクセス可能なメタデータ部分に前記ＢＬＯＢを保存することを更に含む、請求項１に記載の方法。
【請求項４】
ＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）で前記暗号鍵を封印することを更に含む、請求項１に記載の方法。
【請求項５】
前記ストレージデバイスのパワーアップ初期化プロセス毎に前記暗号鍵を再生成することを更に含む、請求項１に記載の方法。
【請求項６】
前記ストレージデバイスがディスクドライブである、請求項１に記載の方法。
【請求項７】
前記ストレージデバイスを移動して、別のアレイ制御装置と接続し、
前記ＢＬＯＢをサーバで開封した後に、前記データを前記ストレージデバイスから読み込み可能にすること
を更に含む、請求項１に記載の方法。
【請求項８】
ストレージデバイスにＢＬＯＢ（Ｂｉｎａｒｙ  Ｌａｒｇｅ  Ｏｂｊｅｃｔ）を保存し、
暗号化された鍵を前記ＢＬＯＢから抽出する暗号モジュールに、前記ストレージデバイスから前記ＢＬＯＢを送信し、
前記暗号鍵を、前記ストレージデバイスに接続した制御装置に送信し、
前記暗号鍵を使用して、前記ストレージデバイスに保存したデータを暗号化又は復号化すること、
を含む方法をコンピュータに実行させる命令を有する、有形のコンピュータ可読媒体。
【請求項９】
前記方法が、乱数発生器で前記鍵を生成することを更に含む、請求項８に記載の有形のコンピュータ可読媒体。
【請求項１０】
前記方法が、
前記鍵を使用して前記ストレージデバイスに保存した前記データを暗号化又は復号化した後に、前記鍵をサーバに返送し、
前記サーバで暗号モジュールを使用して、前記ＢＬＯＢを形成し、
前記ＢＬＯＢを前記記憶用ストレージデバイスに送信すること
を更に含む、請求項８に記載の有形のコンピュータ可読媒体。
【請求項１１】
前記方法が、アプリケーションデータから分離しており、且つユーザがアクセス不可能な前記ストレージデバイスのセキュア区画に、前記ＢＬＯＢを保存することを更に含む、請求項８に記載の有形のコンピュータ可読媒体。
【請求項１２】
前記方法が、前記ＢＬＯＢを、サーバ又は前記制御装置ではなく、前記ストレージデバイスのみに、恒久的に保存することを更に含む、請求項８に記載の有形のコンピュータ可読媒体。
【請求項１３】
前記方法が、前記ＢＬＯＢを、前記制御装置がマルチドライブＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ／Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）セットの各ストレージデバイスに保存することを更に含む、請求項８に記載の有形のコンピュータ可読媒体。
【請求項１４】
前記方法が、前記制御装置を使用して、前記サーバが前記ＢＬＯＢを保存する必要なく、認証ポリシーを設定し、実行すること、を更に含む、請求項８に記載の有形のコンピュータ可読媒体。
【請求項１５】
前記方法が、前記サーバに対して一意のＩＤを使用して、前記鍵を封印し、前記ＢＬＯＢを形成することを更に含む、請求項８に記載の有形のコンピュータ可読媒体。
【請求項１６】
鍵を封印して、ＢＬＯＢ（Ｂｉｎａｒｙ  Ｌａｒｇｅ  Ｏｂｊｅｃｔ）を形成する暗号モジュールと、
前記暗号モジュールと通信状態のアレイ制御装置と、
前記ＢＬＯＢを保存し、前記アレイ制御装置に接続するストレージデバイスであって、
前記ストレージデバイスにより、前記ＢＬＯＢを前記暗号モジュールに送信し、前記暗号モジュールにより、前記鍵を抽出し、前記鍵を前記アレイ制御装置に送信して、前記ストレージデバイスに保存したデータを暗号化又は復号化するストレージデバイスと、
を含む、ストレージシステム。
【請求項１７】
前記暗号モジュールを、サーバに配設したＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）とする、請求項１６に記載のストレージシステム。
【請求項１８】
前記鍵を乱数発生器で生成するソフトウェア管理ツールを更に含む、請求項１６に記載のストレージシステム。
【請求項１９】
前記ＢＬＯＢを、前記ストレージデバイスにのみ保存する、請求項１６に記載のストレージシステム。
【請求項２０】
前記ＢＬＯＢを前記アレイ制御装置には保存せず、前記ストレージデバイスに保存するため、前記アレイ制御装置が故障した後も、前記ストレージデバイスに保存したデータにアクセス可能である、請求項１６に記載のストレージシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
ディスクドライブは、多くのストレージシステムにおいて、ホストコンピュータから読み出し及び書き込み要求を受信する。セキュリティのために、ディスクドライブに保存したデータを、暗号化する必要がある。データを保護するために、保存したデータをどのように保護し、暗号鍵を何処に保存するかについて重大な問題が生じる。
【０００２】
ストレージシステムによっては、ホストコンピュータが、暗号鍵とデータの両方をドライブに送信する。この動作では、ホストが暗号鍵とデータフローの両方を制御する。
【０００３】
他のストレージシステムでは、暗号鍵は中央鍵サーバに保存される。単一のサーバで多数の暗号鍵をタイムリー且つ安全に管理するのは、困難なタスクである。例えば、暗号鍵にアクセスするにあたって数多くのユーザ又はホストがサーバで認証される必要があるため、問題が発生する可能性がある。更に、暗号鍵がサーバ内に保存される場合、対応するディスクアレイ制御装置をサポートするサーバは、各暗号鍵保存に伴う特定の条件を、認識しなければならない。
【０００４】
更に他のストレージシステムでは、暗号鍵はディスクアレイ制御装置に保存される。しかしながら、アレイ制御装置が故障した場合、保存された暗号鍵は故障した制御装置に閉じ込められてしまい、ディスクに保存された関連データにアクセスできなくなる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ディスクドライブは、多くのストレージシステムにおいて、ホストコンピュータから読み出し及び書き込み要求を受信する。セキュリティのために、ディスクドライブに保存したデータを、暗号化する必要がある。データを保護するために、保存したデータをどのように保護し、暗号鍵を何処に保存するかについて重大な問題が生じる。
【課題を解決するための手段】
【０００６】
本発明による実施形態は、ストレージシステムにおいて暗号鍵管理を自動化する装置、システム、方法に関する。例示的な１実施形態では、ディスクドライブ等のストレージデバイスにおいて、データを暗号化及び復号化するのに用いる暗号鍵を、安全に取得、配送、保存する。また、例示的な実施形態では、リムーバブルメディア（ハードディスクドライブ等）が無許可の機器に移動又は載置された際に、リムーバブルメディアを不正アクセスから保護する。
【０００７】
例示的な１実施形態では、暗号鍵をディスク制御装置から鍵サーバに提供する。暗号鍵を使用して、ディスクドライブ上のデータを暗号化及び復号化する。暗号鍵を受信すると、鍵サーバは、暗号鍵にデータを加え、暗号化して、ＢＬＯＢ（Ｂｉｎａｒｙ  Ｌａｒｇｅ  Ｏｂｊｅｃｔ）を形成する。ＢＬＯＢはこの時点で封印すなわち暗号化されており、次にＢＬＯＢをディスクドライブに送る該制御装置に返送される。
【０００８】
ＢＬＯＢを開封するために、ディスク制御装置は封印されたＢＬＯＢを鍵サーバに送信する。ＢＬＯＢを受信すると、鍵サーバは、ＢＬＯＢを開封して、元の暗号鍵を制御装置及びディスクドライブに返す。ここでデータを、暗号鍵を使用してディスクドライブから読み出す、及びディスクドライブに書き込むことができる。
【０００９】
ディスクドライブがＢＬＯＢを実際に保存するため、ディスクドライブは保存データへのアクセスを提供したまま、制御装置から制御装置へと移動できる。移動後、ディスクドライブはＢＬＯＢを鍵サーバへと再び提供し、鍵サーバは元の暗号鍵をディスクドライブに返す。
【００１０】
１実施形態では、鍵サーバは、ＢＬＯＢを生成するために、暗号モジュール（ＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）等）を含む。鍵サーバは、ＢＬＯＢを恒久的に保存せず、記憶用ディスクドライブにＢＬＯＢを送信する。そのため、鍵サーバは多数のディスクドライブに関する状態情報（鍵やＢＬＯＢ等）を保存する負担がない。その代わり、ＢＬＯＢの記憶は、夫々のディスクドライブで行なわれ、一方鍵サーバを使用して、一旦受信したＢＬＯＢを封印及び開封するために、変換が行なわれる。
【００１１】
各鍵サーバは、一意のアイデンティティすなわち身元証明を有する。１実施形態では、この一意のアイデンティティを使用して、アレイ制御装置から受信した暗号鍵を封印及び開封する。該アイデンティティを、特定の鍵サーバに一意とするため、ＢＬＯＢを封印した鍵サーバだけが、後でＢＬＯＢを開封して、元の鍵を抽出できる。例として、各鍵サーバは、特定のストレージデバイスに対してデータを封印及び開封するのに使用する様々な一意の鍵（例えば、各顧客又はホストは１つ又は複数の一意の鍵を持つ）を保存できる。
【００１２】
１実施形態では、ディスクドライブのメタデータ領域に、計算ノード鍵ＢＬＯＢ又は鍵サーバ鍵ＢＬＯＢを、保存する。例えば、サーバＴＰＭを使用して、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ／Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）コントローラの計算ノード鍵をバインド又は封印するＢＬＯＢを、ディスクドライブのユーザがアクセスできないメタデータ領域に保存する。ディスクドライブのメタデータ領域を、アプリケーションデータから分離した、ユーザがアクセスできないディスクドライブのセクションとする。
【図面の簡単な説明】
【００１３】
【図１Ａ】本発明の例示的な実施形態によるディスクドライブに暗号鍵を保存するフローチャートである。
【図１Ｂ】本発明の例示的な実施形態によるディスクドライブに暗号鍵を保存するシステムのブロック図である。
【図２Ａ】本発明の例示的な実施形態によるディスクドライブから暗号鍵を検索するフローチャートである。
【図２Ｂ】本発明の例示的な実施形態によるディスクドライブから暗号鍵を検索するシステムのブロック図である。
【図３Ａ】本発明の例示的な実施形態によるディスクドライブに暗号鍵を保存するフローチャートの別の例である。
【図３Ｂ】本発明の例示的な実施形態によるディスクドライブに暗号鍵を保存するシステムのブロック図である。
【図４Ａ】本発明の例示的な実施形態によるディスクドライブから暗号鍵を検索するフローチャートの別の例である。
【図４Ｂ】本発明の例示的な実施形態によるディスクドライブから暗号鍵を検索するシステムのブロック図である。
【図５】本発明の例示的な実施形態による暗号化を使用するストレージシステムである。
【図６】本発明の例示的な実施形態による暗号化を使用するコンピュータ又はストレージシステムである。
【発明を実施するための形態】
【００１４】
図１Ａは、ストレージデバイスに暗号鍵を保存／封印するフローチャートを示し、図１Ｂは、本発明の例示的実施形態によるストレージデバイスに暗号鍵を保存／封印するシステム１５０のブロック図を示す。説明のために、ストレージデバイスをディスクドライブとして示し、暗号鍵を計算ノードの鍵として示す。
【００１５】
１実施形態では、ボリュームアクセスポリシーにより、ディスクドライブにアクセスするための一連の規則又はポリシーを定義する。ボリュームアクセスポリシーを、計算ノードを含むよう設定すると、ＲＡＩＤコントローラが適切なサーバにある場合にだけ、暗号化したディスクデータが正確に復号化される。ボリュームアクセスポリシーを、計算ノード構成を含むよう設定すると、ＲＡＩＤコントローラ適切なサーバにあり、かつこのサーバが適切に構成されている場合にだけ、暗号化したディスクデータが正確に復号される。サーバ及びサーバ構成を、ＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）のＢＬＯＢ封印メカニズムを使用して、確認する。ＲＡＩＤコントローラ当り１つ又は複数の計算ノード鍵が存在する（例えば、複数の計算ノード鍵がブレード環境に存在する）。設計インプリメンテーションにより、ストレージボリューム当り異なる計算ノード鍵が可能である。
【００１６】
１実施形態では、計算ノード鍵は平文の状態では暗号境界から出ず、不揮発性メモリには保存されない。その代わり、該鍵は暗号境界を出る前に暗号化される。計算ノード鍵を、サーバのＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）で、パワーアップ初期化プロセス毎に、再生成する。
【００１７】
ブロック１００によると、管理ツール１８０により計算ノード鍵を生成する。例えば、管理ツール（ハードウェア及び／又はソフトウェアに実装する）により、２５６ビットの計算ノード鍵を、乱数発生器を使用して生成する。
【００１８】
ブロック１０５によると、管理ツール１８０は、計算ノード鍵をアレイ制御装置１７０に送信する。アレイ制御装置１７０は計算ノード鍵を受信すると、ボリュームアクセスポリシーに計算ノード鍵を加える。
【００１９】
ブロック１１０によると、管理ツール１８０は次に計算ノード鍵を封印するためにサーバ１９０に送信する。一例として、管理ツール１８０により計算ノード鍵を、サーバ１９０の暗号モジュール（ＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）等）に輸送し、この計算ノード鍵を封印してＢＬＯＢを作成するよう要求する。
【００２０】
ブロック１１５によると、サーバ１９０は、暗号モジュールを使用して計算ノード鍵を封印すなわち暗号化して、ＢＬＯＢを作成する。封印された計算ノード鍵（ここでは暗号化されたＢＬＯＢ）を、管理ツール１８０に返す。一例として、ＴＰＭにより計算ノード鍵を封印して、得られたＢＬＯＢを管理ツールに返す。
【００２１】
ブロック１２０によると、管理ツール１８０は、アレイ制御装置１７０にＢＬＯＢを送信する。１実施形態では、ＢＬＯＢ自体が如何なる暗号秘密も露見させないので、この交換を暗号化する必要はない。
【００２２】
ブロック１２５によると、アレイ制御装置１７０は、ディスクドライブ１６０にＢＬＯＢを供給しそこでＢＬＯＢを保存する。例えば、アレイ制御装置１７０は、封印された計算ノード鍵を、メタデータ領域にある適切なボリュームのボリューム固有情報領域に、保存する。
【００２３】
図２Ａは、ストレージデバイスにおいて暗号鍵を検索／開封することに関するフローチャートを示し、図２Ｂは、本発明の例示的な実施形態によるストレージデバイスにおいて暗号鍵を検索／開封するシステム２５０のブロック図を示している。図２Ｂでは、図１Ｂと同じ参照番号を共通して使用する。
【００２４】
ブロック２００によると、ホストで実行するソフトウェアコード２６０で、アレイ制御装置１７０に、封印された計算ノード鍵（即ち、ＢＬＯＢ）を要求する。説明のために、このコードを、実行オプションＲＯＭコードとして示す。
【００２５】
ブロック２０５によると、アレイ制御装置１７０は、ディスクドライブ１６０からＢＬＯＢを検索して、検索したＢＬＯＢをホストに返す。例えば、ＲＡＩＤコントローラは、適切な封印された計算ノード鍵をディスクドライブから検索して、検索した計算ノード鍵をＲＡＩＤコントローラＮＶＲＡＭから返す。
【００２６】
ブロック２１０によると、実行オプションＲＯＭコード２６０は、ＢＬＯＢを開封するために、サーバ１９０にある暗号モジュールにＢＬＯＢを提示する。例えば、実行オプションＲＯＭコード２６０は、ＢＬＯＢをサーバのＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）に送信して、計算ノード鍵を開封するよう要求する。
【００２７】
ブロック２１５によると、暗号モジュールによりＢＬＯＢを開封し、元の計算ノード鍵を実行オプションＲＯＭコードに返す。ＲＡＩＤコントローラ１７０が適切なサーバに（サーバが適切に構成された状態で）存在すれば、サーバのＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）は、実行オプションＲＯＭコードに、元の計算ノード鍵を返す。
【００２８】
ブロック２２０によると、実行オプションＲＯＭコード２６０は、計算ノード鍵をアレイ制御装置１７０に送信する。データを、ここでディスクドライブとの間で暗号化又は復号化できるようになる。
【００２９】
例示的な実施形態はまた、鍵サーバ及び対応する鍵サーバ鍵と共に使用できる。例えば、ボリュームアクセスポリシーを、鍵サーバ鍵（２５６ビットの鍵等）を含むように設定した場合、アレイ制御装置が鍵サーバと（即ち、適切なネットワークで）通信できれば、暗号化したディスクデータのみが復号化される。１実施形態では、ボリューム当り１つの鍵サーバ鍵が存在し、この鍵サーバ鍵を、鍵サーバが生成する。鍵サーバポリシーに応じて、全ボリュームで同じ鍵サーバ鍵を使用できる、又は各ボリュームの鍵サーバ鍵を、一意にできる。
【００３０】
鍵サーバ鍵を、ボリュームＬＵＮ（論理ユニット番号）識別子に基づいて特定のボリュームに関連付ける。１実施形態では、ボリュームＬＵＮ識別子を、ボリュームが他の制御装置に移行した後も存続させて、確実に、暗号化したボリュームをドライブ移行後も引続きアクセス可能にする（制御装置のアクセスポリシーが、異なるサーバの計算ノード鍵を含まなかったと仮定した場合）。
【００３１】
鍵サーバ鍵を、該鍵を不揮発性メモリに保存する鍵サーバを別にして、揮発性メモリに保存する。鍵サーバ鍵は、暗号境界を超えると、輸送鍵等の別の鍵でまず暗号化される。一例として、輸送鍵を、アレイ制御装置と管理ツールとの間で未認証のディフィー−ヘルマン交換（ＩＫＥｖ２−ＳＣＳＩ）を用いて、作成する。
【００３２】
輸送鍵を、暗号境界を超えて鍵を送信する必要に応じて、作成する。輸送鍵を確立したら、この鍵をアレイ制御装置の揮発性メモリに保存する。輸送鍵を、暗号境界を超える複数の鍵又はパスワードの代わりに複数回使用できる。新たな輸送鍵の生成を（既存の輸送鍵を取替えるために）、管理ツールはいつでも要求できる。
【００３３】
１実施形態では、アレイ制御装置は鍵サーバと直接通信しない。その代わり、アレイ制御装置は管理ツールと通信し、管理ツールが鍵サーバと通信する。通信交換中、アレイ制御装置は（故意に）自装置自体を認証しない。ボリュームアクセスを特定のアレイ制御装置に制限する場合、制御装置アクセスポリシーを、ローカル鍵を含むように設定する。
【００３４】
アレイ制御装置が鍵サーバに鍵サーバ鍵を（管理ツールの助けを借りて）要求し、鍵サーバが（何らかの理由で）、適当なタイムアウト及びリトライ数後に拒否した場合、この鍵に関連するボリュームを無効にする。
【００３５】
ボリュームアクセスポリシーを、鍵サーバ鍵を含むように設定すると、その結果アレイ制御装置が鍵サーバと（即ち、適切なネットワークで）通信できる場合にだけ、暗号化されたディスクデータを復号化できる。１実施形態では、ボリューム当り１つの鍵サーバ鍵が存在し、この鍵サーバ鍵を、鍵サーバが生成する。鍵サーバポリシーに応じて、全ボリュームで同じ鍵サーバ鍵を使用できる、又は各ボリュームの鍵サーバ鍵を、一意にできる。
【００３６】
１実施形態では、鍵サーバ鍵は平文の状態では暗号境界から出ず、不揮発性メモリには保存されない（暗号境界を出る前に鍵が暗号化される）。鍵サーバ鍵を、鍵サーバで、パワーアップ初期化プロセス毎に、再生成する。
【００３７】
ブロック３００によると、管理ツール３８０により鍵サーバ鍵を生成する。例えば、管理ツール（ハードウェア及び／又はソフトウェアに実装する）により、２５６ビットの鍵サーバ鍵を、乱数発生器を使用して生成する。
【００３８】
ブロック３０５によると、管理ツール３８０は、鍵サーバ鍵を、アレイ制御装置３７０に送信する。アレイ制御装置３７０は鍵サーバ鍵を受信すると、鍵サーバ鍵をボリュームアクセスポリシーに加える。
【００３９】
ブロック３１０によると、管理ツール３８０は次に鍵サーバ鍵を封印するためにサーバ３９０に送信する。一例として、管理ツール３８０により鍵サーバ鍵を、サーバ３９０の暗号モジュール（ＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）等）に輸送し、この鍵サーバ鍵を封印してＢＬＯＢを作成するよう要求する。
【００４０】
ブロック３１５によると、サーバ３９０では暗号モジュールを使用して鍵サーバ鍵を封印又は暗号化し、ＢＬＯＢを作成する。封印された鍵サーバ鍵（ここでは暗号化されたＢＬＯＢ）を、管理ツール３８０に返す。一例として、ＴＰＭにより鍵サーバ鍵を封印して、得られたＢＬＯＢを管理ツールに返す。
【００４１】
ブロック３２０によると、管理ツール３８０は、アレイ制御装置３７０にＢＬＯＢを送信する。１実施形態では、ＢＬＯＢ自体が如何なる暗号秘密も明かさないので、この交換を暗号化する必要はない。
【００４２】
ブロック３２５によると、アレイ制御装置３７０は、ＢＬＯＢを保存するディスクドライブ３６０に、ＢＬＯＢを供給する。例えば、アレイ制御装置３７０は、封印された鍵サーバ鍵を、メタデータ領域にある適切なボリュームのボリューム固有情報領域に、保存する。
【００４３】
図４Ａは、ストレージデバイスにおいて暗号鍵を検索／開封することに関するフローチャートを示し、図４Ｂは、本発明の例示的な実施形態によるストレージデバイスにおいて暗号鍵を検索／開封するシステム４５０のブロック図を示している。図４Ｂでは、図３Ｂと同じ参照番号を共通して使用する。
【００４４】
ブロック４００によると、ホストで実行するソフトウェアコード４６０で、アレイ制御装置３７０に、封印された鍵サーバ鍵（即ち、ＢＬＯＢ）を要求する。説明のために、このコードを、実行オプションＲＯＭコードとして示す。
【００４５】
ブロック４０５によると、アレイ制御装置３７０は、ディスクドライブ３６０からＢＬＯＢを検索して、検索したＢＬＯＢをホストに返す。例えば、ＲＡＩＤコントローラは、適切な封印された鍵サーバ鍵をディスクドライブから検索して、検索した鍵サーバ鍵をＲＡＩＤコントローラＮＶＲＡＭから返す。
【００４６】
ブロック４１０によると、実行オプションＲＯＭコード４６０は、ＢＬＯＢを開封するために、サーバ３９０にある暗号モジュールにＢＬＯＢを提示する。例えば、実行オプションＲＯＭコードは、ＢＬＯＢをサーバのＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）に送信して、鍵サーバ鍵を開封するよう要求する。
【００４７】
ブロック４１５によると、暗号モジュールによりＢＬＯＢを開封し、元の鍵サーバ鍵を実行オプションＲＯＭコードに返す。ＲＡＩＤコントローラ３７０が適切なサーバに（サーバが適切に構成された状態で）存在すれば、サーバのＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）は、実行オプションＲＯＭコードに、元の鍵サーバ鍵を返す。
【００４８】
ブロック４２０によると、実行オプションＲＯＭコード４６０は、鍵サーバ鍵をアレイ制御装置３７０に送信する。データを、ここでディスクドライブとの間で暗号化又は復号化できるようになる。
【００４９】
本発明による実施形態は様々なシステム、方法、装置で利用できる。説明のために、例示的な実施形態を、ハードディスクドライブ・ストレージシステムに関して、記述する。しかしながら、例示的な実施形態は、テープカートリッジ、光ディスク、又は可搬媒体を使用するストレージデバイス等、他の種類のストレージシステムにも適用可能である。
【００５０】
図５は、本発明の例示的な実施形態による例示的な分散ファイルシステム又はストレージシステム５００のブロック図である。一例として、このシステムを、ストレージネットワーク及び／又はストレージエリアネットワーク（ＳＡＮ）とし、ネットワークには、複数のホストコンピュータ５０２と、１つ又は複数のストレージ制御装置５０４（一例として、アレイ制御装置で示す）を含む１台又は複数台のストレージデバイス又はアレイ５０３Ａ、５０３Ｂと、複数のストレージデバイス５０６（一例として、ディスクアレイ１〜ディスクアレイＮで示す）を含む。
【００５１】
ホストコンピュータ５０２（ホスト１〜ホストＮとして示す）を、１つ又は複数のファブリック又はネットワーク５１０を介してアレイ制御装置５０４に接続し、ストレージデバイス又はアレイ５０３を、１つ又は複数のファブリック又はネットワーク５１１を介してストレージデバイス５０６と接続する。管理ツール５１７は、アレイ制御装置５０４及び鍵サーバ等の１台又は複数台のサーバ５１９と通信するネットワーク５１０に、接続する。例えば、ホストは、ファイバチャネル（ＦＣ）上でスモール・コンピュータ・システム・インタフェース（ＳＣＳＩ）又は他のインタフェース／コマンドを使用して、アレイ制御装置と通信する。一例として、ネットワーク５１０及び５１１は、イーサネット（登録商標）、ファイバチャネル（ＦＣ）、シリアル接続ＳＣＳＩ（ＳＡＳ）、ｉＳＣＳＩ、インターネット、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、パブリック及び／又はプライベートネットワークの中の１つ又は複数を含む。通信リンク５１２は、通信経路、又は、ホスト、制御装置、ストレージデバイス、管理ツール、サーバ間の結合を表すために、図示している。
【００５２】
例示的な１実施形態では、アレイ制御装置５０４及びディスクアレイ５０６を、ネットワークに接続したデバイスとし、このデバイスは、ランダムアクセスメモリ（ＲＡＭ）及び／又はディスクスペース（記憶用、及び仮想ＲＡＭとして）及び／又は他の形態のストレージ、幾つか例を挙げれば、磁気メモリ（例、テープ）、微小機械システム（ＭＥＭＳ）、又は光ディスク等を、提供する。典型的には、アレイ制御装置及びディスクアレイは、大規模なＲＡＭ及び／又はディスクスペースと、１台又は複数の専用デバイス、例えばネットワークディスクドライブ又はディスクドライブアレイ、（例、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ／Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）、高速テープ、磁気ランダムアクセスメモリ（ＭＲＡＭ）又は他のデバイス、及びそれらの組み合わせ等を含む。例示的な１実施形態では、アレイ制御装置５０４及びディスクアレイ５０６を、１台又は複数台のサーバを含むメモリノードとする。
【００５３】
ストレージ制御装置５０４により様々なデータ記憶動作及びデータ検索動作を管理する。ストレージ制御装置５０４は、データ読出要求、データ書込要求、保持要求等のホストコンピュータ５０２からのＩ／Ｏ要求又はコマンドを受信する。ストレージ制御装置５０４は、複数のディスクアレイ５０６及びディスク群にあるデータの記憶及び検索を処理する。例示的な１実施形態では、ストレージ制御装置５０４を、独立したデバイスとする、又はサーバ等のコンピュータシステムの一部としてもよい。また、ストレージ制御装置５０４を、ディスクアレイ５０６と共に、又は近接して、又はディスクアレイ５０６から地理的に遠隔に若しくは互いに離隔して、配置してもよい。
【００５４】
アレイ制御装置５０４は、多数の電子デバイス、回路基板、電子部品等を含む。一例として、アレイ制御装置５０４は、ファームウェア５２０と、入出力（Ｉ／Ｏ）スケジューラ５２２と、バッファ又はキュー５２４（例えば、オーナー権移行中に、一時的にメタデータ構造を保存するのに使用する）と、１つ又は複数のインタフェース５２６と、１つ又は複数のプロセッサ５２８（一例として、ＣＰＵ、中央演算処理装置として示す）と、メモリ５３０（リード及びライトキャッシュを含む）を含む。ＣＰＵ５２８は、ホストコンピュータ５０２から受信した様々なデータ記憶要求及びデータ検索要求を管理するのに必要な動作及びタスクを実行する。例えば、プロセッサ５２８を、１台又は複数台のホストコンピュータ５０２との双方向データ通信を提供するホストインタフェース５２６Ａと、接続する。また、プロセッサ５２８を、ディスクアレイ５０６との双方向データ通信を提供するアレイインタフェース５２６Ｂとも、接続する。
【００５５】
また、メモリ５３０を、プロセッサ５２８と接続し、プロセッサがタスクを実行する際にプロセッサが使用する様々な情報を保存する。一例として、メモリ５３０は、１つ又は複数の揮発性メモリ、不揮発性メモリ、又は揮発性メモリと不揮発性メモリの組合せを含む。例えば、メモリ５３０は、アプリケーション、データ、制御プログラム、アルゴリズム（本発明による実施形態を実行する、又は実行するのを支援するソフトウェアを含む）、及びストレージデバイスに関連する他のデータ（例、マッピングメタデータ、構成メタデータ、及びキャッシュしたユーザデータ等の状態データ）を、保存する。プロセッサ５２８は、１つ又は複数のバス５３２を介して、メモリ５３０、インタフェース５２６、及び他のコンポーネントと通信する。
【００５６】
少なくとも１実施形態では、既存のレプリケーション、ディスクロギング、及びディスクイメージング方式、及び１レベル又は複数レベルのＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）を含むが、これらに限定しない、他の方法を用いて、ストレージデバイスを耐障害性とする。レプリケーションは、１つ又は複数のディスクアレイがクラッシュする、或は故障した際に、高可用性を提供するものである。更に、例示的な１実施形態では、ストレージデバイスはディスク又はディスクアレイの形でメモリを提供し、ディスク又はディスクアレイでは、処理するデータ項目は、ディスク（例、夫々５１２、１０２４、４０９６・・・バイト）又はストライプ断片（夫々４Ｋ、１６Ｋ、３２Ｋ…等）に保存した個々のブロックとしてアクセスされる。
【００５７】
１実施形態では、ストレージデバイス５０３Ａ、５０３Ｂをディスクアレイとする。各ディスクアレイは、１台又は複数の制御装置を有することができる。例えば、アレイは、２台の冗長制御装置を有する。更に、ストレージデバイスは、本明細書で説明するように、プロダクションディスクとバックアップディスクの両方を含む。
【００５８】
１実施形態では、ストレージデバイス５０３Ａ、５０３Ｂを、同じデータセンターに物理的に配置する。別の実施形態では、ストレージデバイスを、別々のデータセンターに地理的に離隔して配置する。更に、２つのストレージデバイスだけを示したが、ＳＡＮは、数百又は数千のこうしたストレージデバイスを含むことができる。
【００５９】
図６は、コンピュータ又はストレージシステム６００の例示的な実施形態を示している。このシステムは、暗号モジュール６２０を使用するコンピュータ６０２（鍵サーバ等）を含む。コンピュータ６０２は、ネットワーク６５２を介して、少なくとも１つの遠隔のエンティティ６５４に接続する。コンピュータ６０２を、例えば、サーバ、デスクトップコンピュータ、ラップトップコンピュータ又はモバイル機器としてもよい。コンピュータ６０２には、少なくとも１つのローカルエンティティ６５０に接続したプロセッサ６４０を備える。本明細書において「ローカルエンティティ」は、コンピュータ６０２に内部にあるハードウェア／ファームウェア／ソフトウェア・エンティティを指し、「リモートエンティティ」は、コンピュータ６０２の外部にあるハードウェア／ファームウェア／ソフトウェア・エンティティを指す。ローカルエンティティの例としては、オペレーティングシステム、及びスマートカードリーダー、ハードディスクドライブ、ネットワーク制御装置、グラフィックスコントローラ等の周辺機器が挙げられるが、これらに限定されない。リモートエンティティの例としては、ホスト、ディスクアレイ、コントローラ、サーバ、メインフレームコンピュータ、分散コンピューティング装置、ラップトップ等の様々な携帯型及び非携帯型コンピュータ及び／又は電子デバイス、及び他の携帯型か非携帯型かを問わない電子デバイス及びシステムが挙げられるが、これらに限定するものではない。
【００６０】
プロセッサ６４０は、ネットワークインタフェース６４８及び、コンピュータ６０２のオペレーティングシステム（ＯＳ）６４４を保存するメモリ６４２にも接続する。また、図示したように、メモリ６４２は、プロセッサ６４０と接続したＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）６２０に送信された要求を処理するＴＰＭソフトウェアスタック（ＴＳＳ）６４６を保存できる。
【００６１】
ＴＰＭ６２０を、デジタル署名用及び暗号化用ＲＳＡ非対称アルゴリズム、ＳＨＡ−１ハッシング、ハッシュベースメッセージ認証コード（ＨＭＡＣ）関数、セキュアストレージ、乱数発生等の暗号化機能、又は他の機能を提供するように構成する。ＴＰＭ６２０を、ソフトウェア、ファームウェア及び／又はハードウェアを使用して実行する。図６に示したＴＰＭコンポーネントは汎用化されており、包括的なものではない。また、ＴＰＭアーキテクチャ及び機能については、ＴＣＧ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ）によって、いずれは変更される可能性がある。
【００６２】
図６に示したように、ＴＰＭ６２０は、プロセッサ６４０と通信状態にある入出力（Ｉ／Ｏ）インタフェース６２２から成る。Ｉ／Ｏインタフェース６２２は、暗号サービス６２４、乱数源６２６、非対称アルゴリズム６２８、ストレージ６３０、ＰＣＲ（Ｐｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｇｉｓｔｅｒ）６３２等の他のＴＰＭコンポーネントに接続する。暗号サービス６２４は、ハッシング、デジタル署名、暗号化、復号化等の機能をサポートする。乱数源６２６は、暗号サービス６２４用の乱数を生成する。例えば、実施形態によっては、暗号サービス６２４は、乱数を使用して暗号鍵を生成する。非対称アルゴリズム６２８により、ＴＰＭ６２０で非対称鍵の処理を実行可能にする。ストレージ６３０は、ＴＰＭ６２０が保護する秘密（例えば、暗号鍵又は他のデータ）を安全に保存する。ＰＣＲ６３２は、コンピュータ６０２に関する個別のインテグリティ測定の他、インテグリティ測定のシーケンスも保存する。
【００６３】
例示的な実施形態では、ＴＰＭを収容したサーバに関係なく（サーバ固有サポートは不要）、ＴＰＭが生成したＢＬＯＢを保存するための方法を提供する。そのため、実施形態では、データを暗号化したＲＡＩＤコントローラが故障し、別の暗号化用ＲＡＩＤコントローラと交換しても、確実にディスクデータにアクセスできるようにする（即ち、ＢＬＯＢを故障したＲＡＩＤコントローラにトラップ又は保存せず、ドライブに保存する）。更にまた、例示的な実施形態では、ＢＬＯＢをＲＡＩＤコントローラによりマルチドライブＲＡＩＤセットの各ドライブに保存するので、コンピュータノード鍵のバックアップ動作を実行するのに、人間の介入を必要としない。サーバからサーバにＴＰＭを移行する場合、関連ディスクドライブも、暗号管理者の関与なく、新たなサーバに移行できる。
【００６４】
例示的な実施形態では、他のＲＡＩＤコントローラからアレイ制御装置（ハードウェアベースとソフトウェアベース両方の）を保護する。何処にＲＡＩＤコントローラのＢＬＯＢが保存されているかは、特定の制御装置に設定された特徴により提供される点（即ち、ドライブを移行するのが困難）や、暗号アプリケーションでは通常鍵管理アーキテクチャを開示するという点から、明らかである。更にまた、ＢＬＯＢをドライブのメタデータ部分に保存するため、認証の証明が、証明書又は秘密鍵というよりむしろＢＬＯＢ自体となる。
【００６５】
定義
本明細書及び特許請求の範囲において、次の用語は、次に定義された意味を有する。
【００６６】
本明細書では、「ＢＬＯＢ」を、（保護されたストレージにおいて使用する、又はＴＰＭ外でコンテキストを保存する）ＴＰＭ等の暗号モジュール又はプロセッサが生成する暗号化されたデータとする。
【００６７】
本明細書では、用語「ストレージデバイス」は、１つ又は複数のディスクアレイ、ディスクドライブ、テープドライブ、半導体ドライブ、光学ドライブ、ＳＣＳＩデバイス、又はファイバチャネルデバイスを含むがこれらに限定しない、データを保存可能なあらゆるデータストレージデバイスを意味する。本明細書では、「ディスクアレイ」又は「アレイ」を、複数のディスクドライブと、キャッシュと、制御装置を含むストレージシステムとする。アレイには、ネットワーク接続ストレージ（ＮＡＳ）アレイ、モジュラＳＡＮアレイ、モノリシックＳＡＮアレイ、ユーティリティＳＡＮアレイ、及びストレージ仮想化を含むが、これらに限定しない。
【００６８】
本明細書では、「ＴＰＭ」即ち「Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ」を、ＴＣＧのＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）仕様に基づき定義された仕様に従い実行される暗号プロセッサとする。ＴＰＭは、暗号鍵の安全な生成、リモート認証（ｒｅｍｏｔｅ  ａｔｔｅｓｔａｔｉｏｎ）、封印されたストレージ、バインディング、及びハードウェア乱数発生器等、様々な機能を提供する。
【００６９】
例示的な１実施形態では、フローチャートの１つ又は複数のブロックを自動化する。つまり、装置、システム、及び方法が自動的に起動する。本明細書では、用語「自動化した」又は「自動的に」（及びこれらに類する用語）は、人間の介入、観察、取組み、決定の必要なく、コンピュータ及び／又は機械装置／電気装置を使用して、装置、システム、及び／又はプロセスを制御動作させることを意味する。
【００７０】
本発明の例示的な実施形態によるフローチャートは、例として提供するもので、本発明の範囲内で他の実施形態を限定するものと解釈すべきではない。例えば、ブロックは、特定の順序で進めねばならないステップとして、解釈すべきではない。更なるブロック／ステップを追加してもよく、幾つかのブロック／ステップを除去したもの、又はブロック／ステップの順序を変更したものも、依然として本発明の範囲内とする。更に、各図面中のブロックを、他の図面に加える、或は他の図面のブロックと交換することもできる。更にまた、特定のデータ数値（特定の量、数、カテゴリ等）又は他の特定情報は、例示的な実施形態を記述するために説明したように、解釈すべきである。そうした特定情報は、本発明を限定するのに提供されるものではない。
【００７１】
本発明による様々な実施形態では、実施形態を、方法、システム及び／又は装置として実行する。１例として、例示的な実施形態を、本明細書に記載した方法を実行する１つ又は複数のコンピュータソフトウェアプログラムとして実行する。ソフトウェアを、１つ又は複数のモジュール（コードサブルーチン、又はオブジェクト指向プログラミングで「オブジェクト」とも呼ぶ）として実行する。ソフトウェアの格納先は、個々の代替実施形態によって異なる。例えば、コンピュータ又はサーバの１プロセッサ又は複数のプロセッサが、ＣＤ−ＲＯＭドライブ、フラッシュメモリ、又はハードドライブ等の一種の長期記憶媒体から、ソフトウェアのプログラミングコードにアクセスする。ソフトウェアのプログラミングコードを、データ処理システムで使用するあらゆる既知の各種媒体や、ディスク、ハードドライブ、ＣＤ−ＲＯＭ、ＲＯＭ、フラッシュメモリ等を含む、半導体、磁気装置、光学デバイスといった記憶装置に、具現又は保存する。このコードを、そうした媒体で配信する、又はこのコードをユーザに、１コンピュータシステムのメモリ又はストレージから、何らかのネットワークを介して、他のコンピュータシステムに、かかる他のシステムのユーザが使用するために、配信する。或は、プログラミングコードを、メモリに具現し、このコードにプロセッサがバスを使用してアクセスする。ソフトウェアのプログラミングコードを、物理媒体のメモリに具現する、及び／又はソフトウェアコードをネットワークを介して配信する方法は、既知であり、本明細書では詳細には説明しない。
【００７２】
以上の記述は、本発明の原理及び様々な実施形態の例示を意図するものである。上記開示を完全に理解したなら、多くの変形例及び変更例が当業者には明らかになろう。以下の請求項は、そうした変形例及び変更例全てを包含すると解釈されるものとする。
【図１Ａ】
2011517205.tif 000003
【図１Ｂ】
2011517205.tif 000004
【図２Ａ】
2011517205.tif 000005
【図２Ｂ】
2011517205.tif 000006
【図３Ａ】
2011517205.tif 000007
【図３Ｂ】
2011517205.tif 000008
【図４Ａ】
2011517205.tif 000009
【図４Ｂ】
2011517205.tif 000010
【図５】
2011517205.tif 000011
【図６】
2011517205.tif 000012
【国際調査報告】
2011517205.tif 000013
2011517205.tif 000014