(57)【要約】  機密共有スキームを外部機密と併用して、複数のストレージデバイスのセットを保護するための、システム、方法及びコンピュータ可読記憶媒体。初期マスター機密を生成し、外部機密を用いてこれを最終マスター機密に変換する。初期マスター機密から複数の共有機密を生成し、ストレージデバイスに分配する。デバイス固有キーを用いて各ストレージデバイスのデータを暗号化し、最終マスター機密を用いてこのキーを暗号化する。所定のストレージデバイス上のデータを読み出すためには、閾値個数の共有機密及び外部機密から再構成された初期マスター機密を引き出す。次に外部機密を用いて、初期マスター機密を最終マスター機密に変換し、この最終マスター機密を用いて、所定のストレージデバイスの暗号化されたキーを復号化する。
2016539567.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージデバイスを備える、計算システムであって、
前記計算システムは：
初期マスター機密から複数の共有機密を生成し；
前記複数のストレージデバイスのうちの１つ又は複数の前記ストレージデバイスに、１つ又は複数の前記共有機密を記憶し；
前記計算システムから分離して記憶された１つ又は複数の外部機密を用いて、前記初期マスター機密を最終マスター機密に変換し；
前記最終マスター機密を利用して、前記複数のストレージデバイスの各前記ストレージデバイスに記憶されたデータの少なくとも一部分を暗号化する
よう構成される、計算システム。
【請求項２】
前記計算システムは更に：
デバイスキーを用いて、前記複数のストレージデバイスの各前記ストレージデバイスに記憶された前記データを暗号化し、ここで各前記ストレージデバイスは、別個のデバイスキーを使用し；
前記最終マスター機密を用いて各前記デバイスキーを暗号化し；
各前記ストレージデバイスに、対応する暗号化された前記デバイスキーを記憶し；
前記複数のストレージデバイスの各前記ストレージデバイスに、前記複数の共有機密のうちのある１つの前記共有機密を記憶する
よう構成される、請求項１に記載の計算システム。
【請求項３】
前記計算システムは更に、前記複数のストレージデバイスのうちの少なくとも１つの前記ストレージデバイスに、前記１つ又は複数の外部機密を引き出す方法に関する情報を記憶するよう構成される、請求項１に記載の計算システム。
【請求項４】
前記計算システムは更に、前記最終マスター機密及びデバイス固有値を用いて、各前記デバイスキーを暗号化するよう構成される、請求項２に記載の計算システム。
【請求項５】
前記計算システムは更に：
前記複数の共有機密のうちの閾値個数の前記共有機密を用いて、前記初期マスター機密を再構成し；
前記１つ又は複数の外部機密を用いて、前記初期マスター機密を前記最終マスター機密に変換し；
前記最終マスター機密を用いて、前記暗号化されたデバイスキーを復号化し；
復号化された前記デバイスキーを揮発性メモリに記憶し；
前記復号化されたデバイスキーを用いて、対応する前記ストレージデバイスにアクセスする
よう構成される、請求項２に記載の計算システム。
【請求項６】
前記計算システムは更に、前記１つ又は複数の外部機密をアクセス不可とすることによって、前記計算システムに記憶されたデータを破壊するよう構成される、請求項１に記載の計算システム。
【請求項７】
前記計算システムは更に：
前記最終マスター機密及び前記デバイス固有値を用いて、各前記デバイスキーを暗号化し；
前記最終マスター機密及び前記デバイス固有値を用いて、暗号化された各前記デバイスキーを復号化する
よう構成される、請求項５に記載の計算システム。
【請求項８】
初期マスター機密から複数の共有機密を生成するステップ；
前記複数のストレージデバイスのうちの１つ又は複数の前記ストレージデバイスに、１つ又は複数の前記共有機密を記憶するステップ；
前記計算システムから分離して記憶された１つ又は複数の外部機密を用いて、前記初期マスター機密を最終マスター機密に変換するステップ；及び
前記最終マスター機密を利用して、前記複数のストレージデバイスの各前記ストレージデバイスに記憶されたデータの少なくとも一部分を暗号化するステップ
を含む、方法。
【請求項９】
デバイスキーを用いて、前記複数のストレージデバイスの各前記ストレージデバイスに記憶された前記データを暗号化するステップであって、ここで各前記ストレージデバイスは、別個のデバイスキーを使用する、ステップ；
前記最終マスター機密を用いて各前記デバイスキーを暗号化するステップ；
各前記ストレージデバイスに、対応する暗号化された前記デバイスキーを記憶するステップ；及び
前記複数のストレージデバイスの各前記ストレージデバイスに、前記複数の共有機密のうちのある１つの共有機密を記憶するステップ
を更に含む、請求項８に記載の方法。
【請求項１０】
前記複数のストレージデバイスのうちの少なくとも１つの前記ストレージデバイスに、前記１つ又は複数の外部機密を引き出す方法に関する情報を記憶するステップを更に含む、請求項８に記載の方法。
【請求項１１】
前記最終マスター機密及びデバイス固有値を用いて、各前記デバイスキーを暗号化するステップを更に含む、請求項９に記載の方法。
【請求項１２】
前記複数の共有機密のうちの閾値個数の前記共有機密を用いて、前記初期マスター機密を再構成するステップ；
前記１つ又は複数の外部機密を用いて、前記初期マスター機密を前記最終マスター機密に変換するステップ；
前記最終マスター機密を用いて、前記暗号化されたデバイスキーを復号化するステップ；
復号化された前記デバイスキーを揮発性メモリに記憶するステップ；及び
前記復号化されたデバイスキーを用いて、対応する前記ストレージデバイスにアクセスするステップ
を更に含む、請求項９に記載の方法。
【請求項１３】
前記１つ又は複数の外部機密をアクセス不可とすることによって、前記計算システムに記憶されたデータを破壊するステップを更に含む、請求項８に記載の方法。
【請求項１４】
前記最終マスター機密及び前記デバイス固有値を用いて、各前記デバイスキーを暗号化するステップ；並びに
前記最終マスター機密及び前記デバイス固有値を用いて、暗号化された各前記デバイスキーを復号化するステップ
を更に含む、請求項１２に記載の方法。
【請求項１５】
プログラム命令を含む、非一時的コンピュータ可読記憶媒体であって、
前記プログラム命令は：
初期マスター機密から複数の共有機密を生成し；
前記複数のストレージデバイスのうちの１つ又は複数の前記ストレージデバイスに、１つ又は複数の前記共有機密を記憶し；
計算システムから分離して記憶された１つ又は複数の外部機密を用いて、前記初期マスター機密を最終マスター機密に変換し；
前記最終マスター機密を利用して、前記複数のストレージデバイスの各前記ストレージデバイスに記憶されたデータの少なくとも一部分を暗号化する
ために実行可能である、非一時的コンピュータ可読記憶媒体。
【請求項１６】
前記プログラム命令は更に：
デバイスキーを用いて、前記複数のストレージデバイスの各前記ストレージデバイスに記憶された前記データを暗号化し、ここで各前記ストレージデバイスは、別個のデバイスキーを使用し；
前記最終マスター機密を用いて各前記デバイスキーを暗号化し；
各前記ストレージデバイスに、対応する暗号化された前記デバイスキーを記憶し；
前記複数のストレージデバイスの各前記ストレージデバイスに、前記複数の共有機密のうちのある１つの共有機密を記憶する
ために実行可能である、請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記プログラム命令は更に、前記複数のストレージデバイスのうちの少なくとも１つの前記ストレージデバイスに、前記１つ又は複数の外部機密を引き出す方法に関する情報を記憶するために実行可能である、請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記プログラム命令は更に、前記最終マスター機密及びデバイス固有値を用いて、各前記デバイスキーを暗号化するよう構成される、請求項１６に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記プログラム命令は更に：
前記複数の共有機密のうちの閾値個数の前記共有機密を用いて、前記初期マスター機密を再構成し；
前記１つ又は複数の外部機密を用いて、前記初期マスター機密を前記最終マスター機密に変換し；
前記最終マスター機密を用いて、前記暗号化されたデバイスキーを復号化し；
復号化された前記デバイスキーを揮発性メモリに記憶し；
前記復号化されたデバイスキーを用いて、対応する前記ストレージデバイスにアクセスする
ために実行可能である、請求項１６に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記プログラム命令は更に、前記１つ又は複数の外部機密をアクセス不可とすることによって、前記計算システムに記憶されたデータを破壊するために実行可能である、請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムに関し、より詳細には、権限のないアクセスからデータを保護するためのシステムに関する。
【背景技術】
【０００２】
ストレージシステムは多くの異なるタイプの保護必要情報を記憶する場合がある。従ってストレージシステムは、記憶されているデータを権限のないユーザが読み出すことができない、又は他の方法で破損できないことを保証する必要がある。データが破損されるのを防止することは、多様な状況において困難であると考えられる。例えばストレージデバイスを複数の場所間で搬送する場合、遺失した又は盗まれたストレージデバイス上でデータをアクセスから保護するのは困難であり得る。更に別の例では、権限のない人物がある単一のストレージデバイスを盗み、使用されているセキュリティ手段の裏をかいて又は上記セキュリティ手段を突破して、そのストレージデバイス上のデータアクセスする場合がある。
【０００３】
これらのタイプの状況に対する保護のための既存のスキームは典型的には、データのセキュリティに対するこれらの脅威に十分に対処できない。権限のないユーザがストレージシステムに記憶されたデータを読み出すことができないことを保証することは、重要である。更に、データを迅速に、かつストレージデバイスの電源をオンにする必要なく、読み取り不可能とすることができることが望ましい場合も多い。従って、ストレージシステム内のデータを保護するための改善されたシステムが望まれている。
【０００４】
以上に鑑みて、複数のストレージデバイスのセットに対するアクセスを防御するための改善されたシステム及び方法が望まれている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ストレージアレイ内に記憶されたデータに対する権限のないアクセスを防止するためのシステム及び方法の様々な実施形態を考える。
【課題を解決するための手段】
【０００６】
一実施形態では、機密共有スキームを１つ又は複数の外部機密と組み合わせて、ストレージアレイ内に記憶されたデータを保護できる。上記機密共有スキームは、少数のストレージデバイスを遺失した又は盗まれた場合に、データが破損されるのを防止することによって、ストレージアレイを保護できる。ストレージアレイ全体を遺失した場合に権限のないデータアクセスを防止するために、１つ又は複数の外部機密を上記機密共有スキームと併用して、記憶されたデータを保護できる。
【０００７】
一実施形態では、初期マスター機密を生成して、これを複数の共有機密の集合に分割してよく、これにより、十分な個数の共有機密を保有していれば、初期マスター機密の復元が可能となり、共有機密の保有数が不十分であれば、初期マスター機密に関する情報を殆ど又は全く提供できない。１つ又は複数の共有機密をシステムの各ストレージデバイスに関して生成してよく、１つ又は複数の共有機密を、対応するストレージデバイスに記憶してよい。十分なストレージデバイスが存在する場合、初期マスター機密を、これらのストレージデバイスに記憶された共有機密から再構成できる。一実施形態では、初期マスター機密を１つ又は複数の外部機密と組み合わせて、最終マスター機密を生成できる。１つ又は複数の外部機密は、パスワード、ＵＳＢキー、外部サーバに記憶されたキー、及び／又は別のタイプの外部に記憶された機密であってよい。
【０００８】
一実施形態では、各ストレージデバイス上のデータはキーを用いて暗号化してよく、各ストレージデバイスは、別個の一意のキーを用いて、ストレージデバイス上のデータを暗号化してよい。キーを用いてストレージデバイス上のデータを暗号化するために、多様な暗号化方法のいずれを利用してよい。一実施形態では、各ストレージデバイスに関して、最終マスター機密及びデバイス固有値を用いて、ドライブ毎の暗号化キーを暗号化してよい。続いて暗号化されたキーを、対応するストレージデバイスに記憶してよい。一実施形態では、デバイス固有値は所定のストレージデバイスのシリアルナンバーであってよい。
【０００９】
ストレージアレイ内のデータを復号化するために、十分な個数の共有機密から初期マスター機密を再構成してよい。また、１つ又は複数の外部機密を引き出してよい。初期マスター機密を再構成し、１つ又は複数の外部機密を配置した及び／又は引き出した後、１つ又は複数の外部機密を用いて、初期マスター機密を最終マスター機密に変換してよい。続いて、最終マスター機密及びデバイス固有値を用いて、デバイス固有の暗号化されたキーそれぞれを復号化してよい。次に、これらのキーを用いて、ストレージアレイ内のストレージデバイス上のデータを復号化してよい。
【００１０】
ストレージアレイ上のデータは、初期マスター機密と１つ又は複数の外部機密との組み合わせを用いて暗号化されているため、復号化するべきデータに関してこれらの入力全てが存在していなければならない。従って、ストレージアレイに記憶されたデータは、１つ若しくは複数の外部機密を破壊する、又は上記１つ若しくは複数の外部機密をアクセス不可とすることによって、容易に破壊できる。ＵＳＢキートークンを外部機密として使用する場合、ＵＳＢキートークンを破壊すれば、ストレージアレイ上のデータが効果的に破壊されることになる。あるいは、スマートカードを用いて外部機密を記憶する場合、スマートカードを破壊することによって、ストレージアレイ上のデータを破壊してよい。外部機密がリモートネットワークサーバ上に記憶されている場合、サーバは外部機密の提供を拒否してよく、これにより、ストレージアレイに記憶されたデータを復号化するために必要なステップの完了が防止される。
【００１１】
これらの及びその他の実施形態は、以下の説明及び添付の図面を検討することで明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１】図１は、ストレージシステムの一実施形態を示す一般的なブロック図である。
【図２】図２は、ストレージシステムの別の実施形態を示す一般的なブロック図である。
【図３】図３は、複数のストレージデバイスのグループ上のデータを保護するための方法の一実施形態を示す一般的なフローチャートである。
【図４】図４は、外部機密による機密共有スキームを用いてストレージシステム内のデータを復号化するための方法の一実施形態を示す一般的なフローチャートである。
【図５】図５は、暗号化されたキー及び共有機密の生成の一実施形態のブロック図である。
【発明を実施するための形態】
【００１３】
本発明は様々な実施形態及び代替形態が可能であるが、特定の実施形態を図面において例として示し、また本明細書において詳細に説明する。しかしながら、上記図面及びそれに関する詳細な説明は、開示されている特定の形態に本発明を限定することを意図したものではなく、対照的に、本発明は、添付の請求項によって定義されるような本発明の精神及び範囲内に当てはまるあらゆる修正例、均等物及び代替例を包含すべきものである。
【００１４】
以下の説明では、本発明の完全な理解を提供するために、多数の具体的詳細を挙げる。しかしながら、これらの具体的詳細を用いずに本発明を実施してもよいことを、当業者は認識しなければならない。いくつかの例では、本発明を不明瞭にするのを避けるため、公知の回路、構造、信号、コンピュータプログラム命令及び技術について詳細には示していない。例示の簡潔性及び明瞭性のために、図中に示されている要素は必ずしも正確な縮尺で描画されていないことを理解されたい。例えばこれらの要素のうちのいくつかの寸法は、他の要素に対して拡大されている場合がある。
【００１５】
本明細書は、「一実施形態（ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ）」に対する言及を含む。「一実施形態では（ｉｎ  ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ）」という句が異なる複数の文脈に見られる場合、これは必ずしも同一の実施形態を指すものではない。特定の特徴、構造又は特性は、本開示と矛盾しないいずれの好適な様式で組み合わせてよい。更に、本出願全体を通して使用されるように、単語「…してよい／…する場合がある／…できる（ｍａｙ）」は、強制の意味（即ち「…しなければならない（ｍｕｓｔ）」）ではなく許可の意味（即ち「…する可能性を有する（ｈａｖｉｎｇ  ｔｈｅ  ｐｏｔｅｎｔｉａｌ  ｔｏ）」）で使用される。同様に、単語「…を含む（ｉｎｃｌｕｄｅ、ｉｎｃｌｕｄｉｎｇ、ｉｎｃｌｕｄｅｓ）」は、「それを含むがそれに限定されない」ことを意味する。
【００１６】
用語法
以下の数段落は、（添付の請求項を含む）本開示において見られる用語に関する定義及び／又は文脈を提示する。
【００１７】
「…を備える／…を含む（ｃｏｍｐｒｉｓｉｎｇ）」：この単語は非制限的なものである。添付の請求項中で使用される場合、この用語は追加の構造又はステップを排除するものではない。「複数のストレージデバイスを備える計算システム（Ａ  ｃｏｍｐｕｔｉｎｇ  ｓｙｓｔｅｍ  ｃｏｍｐｒｉｓｉｎｇ  ａ  ｐｌｕｒａｌｉｔｙ  ｏｆ  ｓｔｏｒａｇｅ  ｄｅｖｉｃｅｓ）」という記述を有する請求項を考える。このような請求項は上記計算システムが追加の構成部品（例えばネットワークインタフェース、１つ又は複数のプロセッサ、ストレージコントローラ）を含むことを排除しない。
【００１８】
「…するよう構成される（ｃｏｎｆｉｇｕｒｅｄ  ｔｏ）」：様々なユニット、回路又は他の構成部品が、１つ又は複数のタスクを実施する「よう構成される」として説明又は請求される場合がある。このような文脈では、「…するよう構成される」は、上記ユニット／回路／構成部品が、動作中に上記１つ又は複数のタスクを実施する構造（例えば回路構成）を含むことを指示することによって構造を暗示するために使用される。従って上記ユニット／回路／構成部品は、上記指定されたユニット／回路／構成部品が動作中でない（例えばオンでない）場合であっても上記タスクを実施するよう構成されていると言うことができる。「…するよう構成される」という語法と共にしようされるユニット／回路／構成部品は、ハードウェア、例えば回路、動作を実装するために実行できるプログラム命令を記憶したメモリ、等を含む。ユニット／回路／構成部品が１つ又は複数のタスクを実施「するよう構成される」、という記載は、上記ユニット／回路／構成部品に対して米国特許法第１１２条第６項が適用されないことを明らかに意図している。更に「…するよう構成される」は、ソフトウェア及び／又はファームウェア（例えばＦＰＧＡ又は汎用プロセッサ実行型ソフトウェア）によって、問題となっている上記１つ又は複数のタスクを実施できる様式で動作するように操作される一般的構造（例えば一般的回路構成）を含むことができる。「…するよう構成される」はまた、製造プロセス（例えば半導体製造設備）を、１つ又は複数のタスクを実装又は実施するよう適合されたデバイス（例えば集積回路）を制作するために適合させることを含み得る。
【００１９】
「…に基づいて（ｂａｓｅｄ  ｏｎ）」：本明細書において使用する場合、この用語は、決定に影響を与える１つ又は複数の因子を説明するために使用される。この用語は、決定に影響を与え得る追加の因子を排除するものではない。即ち決定は、これらの因子のみに基づく、又は少なくとも部分的にこれらの因子に基づくものであってよい。句「Ｂに基づいてＡを決定する（ｄｅｔｅｒｍｉｎｅ  Ａ  ｂａｓｅｄ  ｏｎ  Ｂ）」を考える。ＢはＡの決定に影響を与える因子であってよいが、このような句は、Ａの決定がＣにも基づくものであることを排除しない。他の例では、ＡはＢのみに基づいて決定され得る。
【００２０】
図１を参照すると、ストレージシステム１００の一実施形態を示す一般的なブロック図が示されている。ストレージシステム１００は、ストレージコントローラ１１０と、シェルフ１４０、１４５内に含まれるストレージデバイス１５０Ａ〜Ｎを含んでよい。ストレージコントローラ１１０は、ストレージデバイス１５０Ａ〜Ｎへの権限のないアクセスを防止するために、１つ又は複数の外部機密１２４の使用と組み合わせられる、機密共有アルゴリズムを実装してよい。実施形態に応じて、１つ又は複数の外部機密１２４は、１つ若しくは複数のパスワード、１つ若しくは複数のユニバーサルシリアルバス（ＵＳＢ）キートークンに記憶された１つ若しくは複数の機密、１つ若しくは複数のスマートカードに記憶された機密、ネットワークによってアクセス可能な１つ若しくは複数のリモートサーバに記憶された１つ若しくは複数の機密、及び／又は１つ若しくは複数の他のデバイスに記憶された１つ若しくは複数の機密を含んでよい。
【００２１】
一実施形態では、初期マスター機密生成ユニット１１５は、初期マスター機密１２０を生成してよく、共有機密は、共有機密生成ユニット１２５によって初期マスター機密１２０から生成され得る。最終マスター機密生成ユニット１２６は、初期マスター機密１２０及び１つ又は複数の外部機密１２４を利用して、最終マスター機密１２８を生成してよい。一実施形態では、各ストレージデバイス１５０Ａ〜Ｎは、デバイスに記憶されたデバイスを暗号化するためのキーを生成及び利用してよい。これらの暗号化されていないキーを、最終マスター機密１２８及びデバイス固有値を用いて暗号化してよい。得られた暗号化されたキー１５５Ａ〜Ｎをそれぞれ、対応するストレージデバイス１５０Ａ〜Ｎに記憶してよい。
【００２２】
一実施形態では、外部機密１２４の各タイプに関して、外部機密に関する情報をストレージシステム１００の各ストレージデバイス１５０Ａ〜Ｎに記憶してよい。別の実施形態では、外部機密に関する情報を十分に多数のストレージデバイスに記憶してよく、これにより少なくとも１つのストレージデバイスがこの情報を有するようになる。この情報は、ストレージデバイス１５０Ｎの拡大図示において外部機密アクセス情報１６２Ｎとして示される。一実施形態では、各ストレージデバイス１５０Ａ〜Ｎは、ストレージデバイス１５０Ｎの拡大図示において示されているものと同一の様式で組織してよい。
【００２３】
外部機密アクセス情報１６２は、１つ又は複数の外部機密１２４を引き出すためには使用できないが、情報１６２は、１つ又は複数の外部機密１２４を得ることができる方法を指示する。例えば一実施形態では、情報１６２は、外部機密１２４がＵＳＢキートークンに記憶されていること、及び最終マスター機密１２８を提供するために、初期マスター機密１２０を上記ＵＳＢキートークンに通さなければならないことを指示し得る。情報１６２はまた、接触して外部機密１２４を得るために、キー交換プロトコル及び１つ又は複数のサーバのインターネットプロトコル（ＩＰ）アドレスを指定してよい。この実施形態では、情報１６２はまた、識別子を指定してサーバに提示してよい。一実施形態では、ストレージシステム１００に関して、複数の外部機密１２４の単一のセットが存在してよい。この実施形態では、各ストレージデバイス１５０は、外部機密１２４を得るための同一の情報１６２を記憶してよい。しかしながら、情報１６２は、外部機密１２４が追加又は削除された場合に、異なる複数のストレージデバイス１５０Ａ〜Ｎ上で経時的に変化し得る。
【００２４】
いくつかの状況では、外部機密１２４に関して不正な値を特定できてよい。従っていくつかの実施形態では、各ストレージデバイス１５０Ａ〜Ｎはチェックサム１６４Ｎを記憶してよく、チェックサム１６４Ｎを用いて最終マスター機密１２８を検証してよい。チェックサム１６４Ｎは最終マスター機密１２８よりも遥かに小さくてよく、これにより、最終マスター機密１２８をチェックサム１６４Ｎから計算しようとする攻撃は失敗に終わることになる。他の実施形態では、最終マスター機密１２８を検証する他の方法を利用してよく、あるいは最終マスター機密１２８を検証するための試みを実施しなくてもよい。
【００２５】
図１に示すデータ保護スキームによって、１つ又は複数の外部機密１２４をアクセス不可とすることによる、ストレージシステム１００に記憶された全てのデータの破壊が簡単になる。例えばＵＳＢキートークンはいずれの多数の方法で物理的に破壊でき、これによって外部機密１２４の復元は不可能となる。安全な場所のキーサーバから得られる外部機密１２４を、サーバ上で破壊する必要はない。その代わりに、サーバがストレージシステム１００に外部機密１２４を提供するのを拒否してよく、これによりストレージシステム１００内のデータをあらゆる人物が読み出すのが防止される。
【００２６】
ストレージシステム１００が利用する全体的なデータ保護スキームの一部として、機密共有スキームをストレージコントローラ１１０によって実装してよい。一実施形態では、初期マスター機密生成ユニット１１５がＳｈａｍｉｒ機密共有を用いて、全体的なデータ保護スキームの機密共有アルゴリズム部分を実装してよい。しかしながら、他の実施形態では他の機密共有スキームを利用してよいことに留意されたい。例えば他の実施形態では、Ｂｌａｋｌｅｙ、Ｋｒａｗｃｚｙｋ又は中国の剰余定理といった他の機密共有スキームを利用してよい。本説明の残りの部分はＳｈａｍｉｒ機密共有に特化したものとなり得るが、これは他の機密共有スキームの使用を排除するものではないことを理解されたい。
【００２７】
一実施形態では、ユニット１１５は、「ｍ」個の共有機密を生成するよう構成されてよく、上記「ｍ」個の共有機密のうち「ｋ」個が、初期マスター機密１２０を再構成するために必要となる。一実施形態では、共有機密の数「ｍ」は、ストレージデバイスの数「ｎ」と同一であってよい。しかしながら他の実施形態では、共有機密の数「ｍ」はストレージデバイスの数「ｎ」より大きくてよい。初期マスター機密１２０及びｍ個の共有機密は、当業者には公知の多様な技術のいずれを用いて生成してよい。
【００２８】
各共有機密１３５Ａ〜Ｎは、対応するストレージデバイス１５０Ａ〜Ｎに分配されて記憶されてよい。ストレージシステム１００のストレージデバイス１５０Ａ〜Ｎは、２つの同一サイズのシェルフ１４０、１４５に分割されたものとして示されている。しかしながら他の実施形態では、ストレージシステム内で他の個数のシェルフを利用してよく、また更に、各シェルフのサイズは様々であってよい。
【００２９】
初期マスター機密生成ユニット１１５、共有機密生成ユニット１２５、最終マスター機密生成ユニット１２６、キー暗号化ユニット１３０は、ストレージコントローラ１１０内の別個のエンティティとして示されているが、これらを組み合わせて単一のユニットとしてよいことが理解されるだろう。また、ストレージコントローラ１１０は図１に示されていない他の構成部品及び論理を含んでよいことにも留意されたい。更にいくつかの実施形態では、ユニット１１５、１２５、１２６、１３０は、ストレージコントローラ１１０の１つ又は複数のプロセッサ（図示せず）上で実行されるプログラムから呼び出されるソフトウェアルーチンであってよい。一般に、ストレージコントローラ１１０内に含まれる、又はストレージコントローラ１１０によって実装されるものとして記載される論理、アルゴリズム、機構は
ハードウェア及び／又はソフトウェアを含んでよい。
【００３０】
図１に図示されている機能性の分配は例示のために示されたものであり、他の実施形態は複数の構成部品間で異なる機能性の配置を有してよいことを理解されたい。例えば別の実施形態では、ユニット１１５、１２５、１２６、１３０のうちの１つ又は複数は、シェルフ１４０、シェルフ１４５、いずれのストレージデバイス１５０Ａ〜Ｎ、又は別の計算デバイス内にあってよい。いくつかの実施形態では、共有機密及び機密を生成する並びに／又はキーを暗号化するための論理があるシェルフ内又はあるストレージデバイス内にある場合、上記共有機密、機密及び／又は暗号化されたキーは、ストレージコントローラからストレージデバイス１５０Ａ〜Ｎに搬送しなくてよい。その代わりに、上記共有機密、機密及び／又は暗号化されたキーを、生成後にそのそれぞれのストレージデバイスでローカルに利用してよい。
【００３１】
様々な実施形態において、各ストレージデバイス１５０Ａ〜Ｎは、いずれの多様なタイプのデータストレージ技術を利用してよい。例えば一実施形態では、ストレージデバイス１５０Ａ〜Ｎのうちの１つ又は複数は、永続データを記憶するためのソリッドステートメモリからなるストレージを含んでよい。他の実施形態では、ストレージデバイス１５０Ａ〜Ｎのうちの１つ又は複数は、スピントルク変換技術、磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）技術、瓦記憶ディスク、メモリスタ、相変化メモリ又は他のストレージ技術といった、他の技術を用いたストレージを含んでよい。一実施形態では、含まれるソリッドステートメモリはソリッドステートドライブ（ＳＳＤ）技術を含んでよい。ソリッドステートドライブ（ＳＳＤ）は、ソリッドステートディスクと呼ばれる場合もあることに留意されたい。
【００３２】
一実施形態では、各ストレージデバイス１５０Ａ〜Ｎは、デバイスに記憶されたデータを暗号化するためのキーを生成及び利用してよい。各ストレージデバイス１５０Ａ〜Ｎは、デバイスに記憶されたデータを暗号化するためのキーを利用するハードウェア暗号化機構を含んでよい。あるいは、ストレージデバイス１５０Ａ〜Ｎが利用するキーを、ストレージコントローラ１１０又は別のユニットが生成してよい。一実施形態では、更なるレベルの保護を追加するために、ストレージデバイス１５０Ａ〜Ｎ上のハードウェアを、これらのキーを暗号化するよう構成してよい。各キーは、各ストレージデバイス１５０Ａ〜Ｎ上のハードウェアによって、他のキーから独立して別個に暗号化してよい。あるいは別の実施形態では、ストレージコントローラ１１０のキー暗号化ユニット１３０を、キーを暗号化するよう構成してよい。キー暗号化ユニット１３０は、ストレージコントローラ１１０内にあるものとして示されているが、これは単に図示を容易にするために示されているものであることに留意されたい。いくつかの実施形態では、各ストレージデバイス１５０Ａ〜Ｎは独自のキー暗号化ユニットを含んでよく、ストレージコントローラ１１０は、各デバイスのキー暗号化ユニットにある値を提供してよく、デバイスはこの値を用いてそのデバイスのキーを暗号化してよい。
【００３３】
更に、各キーは、各ストレージデバイス上で暗号化されて記憶されるデータから独立して別個に暗号化してよい。各ストレージデバイスに関するキーは、最終マスター機密１２８と、各ストレージデバイスに固有の第２の値との両方を用いて暗号化してよい。例えば一実施形態では、値１６５はストレージデバイスのシリアルナンバーであってよい。別の実施形態では、第２の値は、ストレージデバイスのヘッダ１６０に記憶された識別情報（ＩＤ）又はＩＤの一部であってよい。他の実施形態では、第２の値は、所定のストレージデバイスが本質的に有する他の情報に基づくものであってよい。更なる実施形態では、複数のデバイス固有値を利用してキーを暗号化してよい。またいくつかの実施形態では、最終マスター機密１２８のみを使用してキーを暗号化してよい。
【００３４】
別の実施形態では、同一のキーを２つ以上のストレージデバイスが利用してよく、キー暗号化ユニット１３０はこのキーを暗号化して、暗号化されたキーを、このキーを使用するストレージデバイスに搬送してよいことに留意されたい。あるいは更なる実施形態では、最終マスター機密１２８は、各ストレージデバイス１５０Ａ〜Ｎ上でデータを暗号化するために使用されるキーであってよい。この実施形態では、各ストレージデバイス１５０Ａ〜Ｎは、共有機密１３５、外部機密アクセス情報１６２、チェックサム１６４、暗号化されたデータ１７０を、ヘッダ１６０内のいずれの他のデバイス固有データと共に記憶してよい。この実施形態では、データを復号化するために、十分な個数のストレージデバイス１５０Ａ〜Ｎの共有機密を用いて、初期マスター機密１２０を再構成してよい。続いて１つ又は複数の外部機密１２４を引き出し、初期マスター機密１２０と組み合わせて、最終マスター機密１２８を生成してよい。次に最終マスター機密１２８を用いて、暗号化されたデータ１７０を復号化してよい。
【００３５】
一実施形態では、ハッシュ関数を利用して、最終マスター機密１２８を、所定のストレージデバイス１５０のシリアルナンバー１６０を用いてハッシュし、中間値を生成してよい。続いて、所定のストレージデバイス１５０上でデータを暗号化するために使用されたオリジナルのキーの値を、この中間値で暗号化してよい。この暗号化ステージの出力は、上記所定のストレージデバイス１５０に記憶される暗号化されたキー１５５であってよい。様々な実施形態において、いずれのタイプのハッシュ関数（例えばＭＤ５、ＳＨＡ‐１）を利用してよい。他の実施形態では、最終マスター機密１２８及びデバイス固有値を用いて暗号化されたキー１５５を生成するために、他の暗号化技術を使用してよい。
【００３６】
一実施形態では、初期マスター機密１２０、共有機密１３５Ａ〜Ｎ、最終マスター機密１２８、暗号化されたキー１５５Ａ〜Ｎの生成は、ストレージシステム１００の構成及び設置中に実施してよい。更にこれらの値は、ストレージシステム１００により良好なセキュリティを提供するために、定期的に再生成してよい。例えば一実施形態では、初期マスター機密生成ユニット１１５は、新規の初期マスター機密１２０を毎日生成してよく、また最終マスター機密生成ユニット１２６は、新規の最終マスター機密１２８を毎日生成してよい。そしてユニット１１５は、新規の初期マスター機密１２０から新規の共有機密１３５Ａ〜Ｎを生成し、これらをストレージデバイス１５０Ａ〜Ｎに分配してよい。またユニット１３０は、新規の最終マスター機密１２８から暗号化されたキー１５５Ａ〜Ｎを生成し、これら暗号化されたキー１５５Ａ〜Ｎを対応するストレージデバイス１５０Ａ〜Ｎに分配してよい。他の実施形態では、他のスケジュールを利用して、初期マスター機密１２０、最終マスター機密１２８、共有機密１３５Ａ〜Ｎ、暗号化されたキー１５５Ａ〜Ｎを更新してよい。
【００３７】
一実施形態では、ストレージシステム１００は、中央認証装置への通信を行うことなく、ストレージデバイス１５０Ａ〜Ｎのキーを変更してよい。その代わりに、ストレージコントローラ１１０は、１つ又は複数の外部機密１２４の複製をキャッシュしてよく、又はＵＳＢキートークンを使用するアプローチに関しては、ストレージコントローラ１１０は、新規に生成された初期マスター機密を上記トークンに再び通してよい。新規の最終マスター機密が生成されると、ストレージコントローラ１１０はストレージデバイス１５０Ａ〜Ｎのキーを変更してよい。
【００３８】
他の実施形態では、機密及びキーの生成中に利用されるステップを変更してよく、またデータ保護スキームの更新に他のステップを組み込んでよい。例えば別の実施形態では、新規の暗号化されたキー１５５を生成するためにオリジナルのキーを単に再暗号化する代わりに、各ストレージデバイス１５０上の暗号化されたデータを復号化して、新規のキーを用いて再暗号化してよい。また更なる実施形態では、各ストレージデバイス１５０Ａ〜Ｎに記憶されたデータを暗号化するために使用されるオリジナルのキーを、各ストレージデバイスが生成する代わりにキー生成ユニット１３０が生成してよい。
【００３９】
図１では、ストレージデバイス１５０Ｎの別個のデータ成分を示すために、ストレージデバイス１５０Ｎを拡大している。一実施形態では、ストレージデバイス１５０Ｎは、デバイス固有値１６５Ｎ、共有機密１３５Ｎ、暗号化されたキー１５５Ｎ、外部機密アクセス情報１６２Ｎ、チェックサム１６４Ｎ、暗号化されたデータ１７０Ｎを含んでよい。デバイス固有値１６５Ｎ、共有機密１３５Ｎ、暗号化されたキー１５５Ｎ、外部機密アクセス情報１６２Ｎ、チェックサム１６４Ｎは、ヘッダ１６０Ｎの一部であってよい。あるいは別の実施形態では、暗号化されたキー１５５Ｎは、ストレージデバイス１５０Ｎ上の、エンドユーザがアクセスできない領域に記憶されてよい。この実施形態では、暗号化されたキーは、アンロック指令によってしかアクセスできないものとなり得る。ヘッダ１６０Ｎはまた、図１に示されていない他の情報も含んでよい。ストレージデバイス１５０Ｎは他の実施形態とは異なるフォーマットであってよいことに留意されたい。更にストレージデバイス１５０Ｎは、暗号化を実施するための論理（図示せず）を含んでよい。
【００４０】
図１に示すようなストレージデバイス１５０Ｎのフォーマットは、不揮発性メモリ（例えばソリッドステートストレージ、ディスクドライブ又はいずれの他の好適なストレージデバイス）に記憶されたデータのフォーマットである。図１には示されていないが、ストレージデバイス１５０Ｎはまた、それを用いて読み出し及び書き込みを実施できる復号化されたキーを記憶するための揮発性メモリも含んでよい。一般にストレージデバイス１５０Ｎは、ストレージデバイス１５０Ｎに対する上記読み出し及び書き込み中に上記復号化されたキーを使用してよい。ストレージデバイス１５０Ｎに電源投入する際、ストレージデバイス１５０Ｎを動作状態とするための初期化プロセスが存在してよい。この動作状態により、暗号化されたデータ１７０Ｎを復号化でき、また新規のデータを暗号化してストレージデバイス１５０Ｎに書き込むこともできるようになり得る。電源投入時、ストレージデバイス１５０Ｎは暗号化されたキー１５５Ｎを保持してよく、これは、デバイス１５０Ｎに記憶された上記データ（暗号化されたデータ１７０Ｎ）を暗号化する際に使用したオリジナルのキーを再生成するために復号化されるまでは使用不可能である。このプロセスについて、図２に関連してより詳細に説明する。
【００４１】
共有機密１３５Ｎは、共有機密生成ユニット１２５によって生成してよい。共有機密１３５Ｎの生成は、実データの暗号化から独立して別個に実施してよい。換言すると、ストレージデバイス１５０Ｎに記憶されたユーザデータは、共有機密１３５Ｎの生成には使用されない。一実施形態では、共有機密１３５Ｎは、多項式への入力及び上記特定の入力に関する上記多項式の結果であってよい。いくつかの実施形態では、共有機密１３５Ｎはまた、追加の情報も含んでよい。例えば一実施形態では、共有機密１３５Ｎは値「ｋ」を含んでよく、これは、共有された機密１２０を再構成するために必要な共有機密の数を指示する。
【００４２】
一実施形態では、ストレージデバイスに記憶されたデータを、上記ストレージデバイスに関して一意のキーを用いて暗号化してよい。ストレージデバイス１５０Ｎの暗号化されたデータは、暗号化されたデータ１７０Ｎによって表される。ストレージデバイスに固有の別の値と共に、各ストレージデバイス１５０からキー暗号化ユニットにキーを搬送してよい。例えば一実施形態では、ストレージコントローラ１１０は、各ストレージデバイス１５０からキー及びデバイス固有値１６５Ｎを受信してよい。キー暗号化ユニット１３０はキー、デバイス固有値１６５Ｎ、最終マスター機密１２８を利用して、特定のストレージデバイス１５０に関する暗号化されたキー１５５を生成してよい。別の実施形態では、各ストレージデバイスを、それぞれのキーをローカルに暗号化するよう構成してよく、従ってこの実施形態では、最終マスター機密１２８とデバイス固有値１６５Ｎとを組み合わせた結果を、各ストレージデバイスに搬送してよい。キーを暗号化する場所及び方法の更なる変形例が可能であり、これについて検討する。
【００４３】
ここで図２を参照すると、ストレージシステム２００の別の実施形態のブロック図が示されている。ストレージシステム２００は、ストレージコントローラ２０５を含み、ストレージコントローラ２０５内に図示されているユニットを実装するために使用される実論理は実施形態に応じて変更してよい。様々な実施形態において、ストレージコントローラ２０５は、ハードウェア、ソフトウェア又はこれらの組み合わせを用いて実装してよい。例えば一実施形態では、ユニット２１０、２１６、２２０は、ストレージコントローラ２０５の１つ又は複数のプロセッサ（図示せず）によって実行されるソフトウェアを表してよい。更に、ストレージコントローラ２０５内に示されている論理は、シェルフ２４０、２４５内、又は他の実施形態ではストレージデバイス２５０Ａ〜Ｎ内にあってよい。
【００４４】
ストレージコントローラ２０５は、ストレージデバイス２５０Ａ〜Ｎを含むシェルフ２４０、２４５に連結されてよい。図２では、ヘッダ２５５Ｎ及び暗号化されたデータ２７５Ｎを示すために、ストレージデバイス２５０Ｎを拡大している。ヘッダ２５５Ｎは、デバイス固有値２６０Ｎ、共有機密２６５Ｎ、暗号化されたキー２７０Ｎ、外部機密アクセス情報２６２Ｎ、チェックサム２６４Ｎを含んでよい。ストレージコントローラ２０５はまた、ランダムアクセスメモリ（ＲＡＭ）２３０にも連結されてよい。
【００４５】
ストレージコントローラ２０５は、初期マスター機密再構成ユニット２１０、最終マスター機密再構成ユニット２１６を含んでよい。ユニット２１０を、ストレージデバイス２５０Ａ〜Ｎから共有機密を受信するよう構成してよい。十分なストレージデバイスが存在し、かつアクセス可能である限り、ユニット２１０は、これらストレージデバイスから得た共有機密から初期マスター機密２１５を再構成できる。またストレージコントローラ２０５は、初期マスター機密２１５の再構成の前に、又はこれと並行して、又はその後に、１つ又は複数の外部機密２０２を得てよい。続いてストレージコントローラ２０５は、所定の順序で外部機密２０２を通過してよく、初期マスター機密２１５を各外部機密によって変換する。次にストレージコントローラ２０５は、チェックサム２６４Ｎを用いて最終マスター機密２１８を検証してよく、最終マスター機密２１８が予測されたチェックサム２６４Ｎと適合した場合のみ進行してよい。続いてこの最終マスター機密２１８を用いて、デバイス毎の暗号化キー２２５を生成し、各ストレージデバイス２５０Ａ〜Ｎをアンロックしてよい。
【００４６】
他の実施形態では、ストレージコントローラ２０５はまた、他のタスクを実施するための多数の他のユニット及び他の論理も含んでよい。例えばストレージコントローラ２０５は、図１のストレージコントローラ１１０内に示されている論理等の、図２には示されていない他の論理も含んでよい。様々な実施形態において、ストレージコントローラ２０５は、サーバ又は計算デバイスの一部であってよく、ストレージコントローラ２０５は、ハードウェア（例えば回路構成、専用の論理、プログラム可能な論理、マイクロコード）、ソフトウェア（例えば実行可能なプログラム命令）又はこれらのいずれの組み合わせを含んでよい。
【００４７】
最終マスター機密２１８の再構成及び暗号化されたキー２７０の復号化の動作は、ストレージシステム２００の起動時に１回実施してよい。暗号化されたキー２７０を復号化した後、これらを揮発性メモリ（ＲＡＭ２３０）に記憶して、ストレージデバイス２５０Ａ〜Ｎへのアクセスのために複数回使用してよい。これは、最終マスター機密２１８を再構成すること、及び暗号化されたキー２７０を１回復号化して複数回再使用することを可能とする、ストレージシステム２００の有利な特徴であることに留意されたい。
【００４８】
キー復号化ユニット２２０は、ストレージデバイス２５０Ａ〜Ｎの暗号化されたキーを復号化するよう構成してよい。ユニット２２０は、各ストレージデバイス２５０Ａ〜Ｎから、暗号化されたキー及びデバイス固有値を受信してよい。ユニット２２０は、特定のストレージデバイスからの最終マスター機密２１８及びデバイス固有値を用いて、上記キーを暗号化するために使用された暗号化プロセスを逆行してよい。キー２２５は、ストレージデバイス２５０Ａ〜Ｎに記憶された暗号化されたデータ２７５を復号化するために使用できる、復号化されたキーの典型である。各ストレージデバイス２５０Ａ〜Ｎは、個々のデバイスに記憶されたデータを暗号化及び復号化するために使用される別個のキーを有してよい。キー復号化ユニット２２０はストレージコントローラ２０５内にあるものとして図示されているが、いくつかの実施形態では、各ストレージデバイス２５０Ａ〜Ｎが独自のキー復号化ユニットを含んでよいことに留意されたい。例えば一実施形態では、デバイス固有キーをストレージコントローラ２０５で生成して、ストレージデバイス２５０へと移動させ、暗号化されたキー２７０をシリアルアドバンステクノロジアタッチメント（ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ：ＳＡＴＡ）アンロック指令によって復号化してよい。他の実施形態では、キー復号化ユニット２２０の機能性を、ストレージコントローラ２０５及びストレージデバイス２５０Ａ〜Ｎに分割してよい。
【００４９】
キー２２５は、実施形態に応じて多様な場所に記憶してよい。キー２２５はストレージコントローラ２０５に記憶されるものとして図示されているが、別の実施形態では、キー２２５をＲＡＭ２３０に記憶してよい。更に、ＲＡＭ２３０はストレージコントローラ２０５とは別個のユニットとして図示されているが、別の実施形態ではＲＡＭ２３０はストレージコントローラ２０５内に含まれていてよい。更なる実施形態では、各ストレージデバイス２５０Ａ〜Ｎは、復号化されたキー２２５を記憶するための内部ＲＡＭ２３０を含んでよい。
【００５０】
ＲＡＭ２３０は、ＲＡＭ２３０の電源を切断した場合にキーが保存されないよう、いずれのタイプの揮発性メモリであってよい。これにより、キーの復号化後に権限のないユーザがキーにアクセスするのを防止するのを補助する。各ストレージデバイス２５０Ａ〜Ｎは、ＲＡＭ２３０から対応するキーを引き出し、このキーを用いて、ストレージデバイスの読み出し及び書き込み中にデータを暗号化及び復号化してよい。あるいは各ストレージデバイス２５０Ａ〜Ｎは、揮発性メモリの一部分を含んでよく、キーを、対応するストレージデバイスの上記揮発性メモリに記憶してよい。復号化されたキーを記憶するための場所に関する他の可能性も可能であり、これについて検討する。一実施形態では、キー復号化プロセス全体を各ストレージデバイス２５０Ａ〜Ｎ上で実施してよい。この実施形態では、ストレージコントローラ２０５は、各ストレージデバイス２５０Ａ〜Ｎに最終マスター機密２１８を提供して、各デバイスが対応する暗号化されたキー２７０を復号化できるようにしてよい。
【００５１】
様々な実施形態において、ストレージデバイス２５０Ａ〜Ｎのうちの１つ又は複数が、ストレージシステム２００全体の動作中に故障する場合がある。このような故障に応答して、ストレージコントローラ２０５を、故障したストレージデバイスを置換する新規のストレージデバイスに関する新規の共有機密を生成するよう構成してよい。新規の共有機密を生成するプロセスの一部として、ストレージコントローラ２０５は、マスター機密を復元するために十分な共有機密を収集してよい。例えば一実施形態では、マスター機密２１５が多項式に由来する場合、上記多項式の全ての係数に対する解を得るために、必要な数の共有機密を使用してよい。続いてこの多項式を異なる点で評価して、新規のストレージデバイスに関する新規の共有機密を生成してよい。他のタイプの機密共有スキームに関して、故障したストレージデバイスを置換する新規のストレージデバイスに関する新規の共有機密を生成するために、適切なプロセスを利用してよい。別の実施形態では、ストレージコントローラ２０５は、既存のストレージデバイスが故障した場合又は新規のストレージデバイスがシステムに追加された場合等、構成要素が変化した場合に必ず、新規の初期マスター機密及び新規の最終マスター機密を生成するよう構成してよい。そして上記新規の最終マスター機密を用いて、全てのストレージデバイス上の暗号化されたキー及び共有機密を刷新してよい。あるいはストレージコントローラ２０５は、以前に使用した同一の機密から、新規の複数の機密のセットを生成してよい。
【００５２】
ストレージシステム２００内のデータを破壊して、権限のないアクセスを防止するために、多数の異なる技術を用いてよい。例えば、十分なストレージデバイスが破壊されると、初期マスター機密２１５を再構成するために十分な共有機密を引き出すことが不可能となる。しかしながら、ストレージデバイスの破壊には時間がかかる場合があり、従って１つ又は複数の機密２０２が破壊されるか又はアクセス不可となり得る。例えばＵＳＢキートークンが破壊されると、上記ＵＳＢキートークンに記憶された外部機密はもはやアクセス不可となり、システム２００は、記憶されたデータへのアクセスを得るプロセスを完了できなくなる。同様に、シェルフ２４０、２４５が盗まれると、リモートネットワークサーバは、必要な外部機密の提供を拒否してよく、これはデータにアクセスするために必要なステップの完了を防止する。従って、システム２００に記憶されたデータの破壊は、システム２００への電力を除去することによって、及び少なくとも１つの必要な外部機密へのアクセス手段を破壊することによって、達成できる。
【００５３】
上述のステップによって、記憶されたデータに攻撃者がアクセスするのを防止するが、これらのステップは可逆的である。ストレージシステム２００を後に復元する場合、外部機密２０２をバックアップコピーから復元してよい。これは、ストレージシステム２００が通常安全な環境に保持されているものの、これをそれ単体で好ましくない環境を通して送らなければならない場合に有利であり得る。外部機密は、これとは別のより安全な経路を通して送ってよく、その後目的地においてストレージシステムと再結合してよい。このアプローチにより、外部機密２０２の偶発的な遺失からの復元も可能となる。ＵＳＢキートークンがハードウェアの故障に遭遇した場合、同一の機密を有する別のトークンを用いて、上記ＵＳＢキートークンを置換できる。同様に、ＵＳＢキートークンを誤って破壊してしまった場合、システム内のデータは失われず、同一の機密を有する別のキートークンを得ることによって回復できる。従って関係機関は、極めて安全な場所に追加のトークン又は機密を記憶して、必要に応じて置換を提供できる。
【００５４】
ストレージシステム２００を起動するために外部機密２０２へのアクセスが必要であるため、いくつかの実施形態では、各外部機密２０２の冗長コピーを維持してよい。例えばシステム２００は、トークンのうちの１つが故障した場合に冗長性を提供するよう全く同様に構成された、２つのＵＳＢキートークンを使用してよい。関係機関はまた、１つのサーバが利用不可となった場合に外部機密を提供するために、２つ以上のネットワークサーバを提供してもよい。
【００５５】
ここで図３に移ると、複数のストレージデバイスのグループ上のデータを保護するための方法の一実施形態が示されている。議論を容易にする目的で、この実施形態の複数のステップを順次示している。以下に記載する方法の様々な実施形態では、記載されている要素のうちの１つ又は複数を、同時に、若しくは図示されているものとは異なる順序で実施してよく、又は全体として削除してもよいことに留意されたい。他の追加の要素を所望に応じて実施してもよい。
【００５６】
一実施形態では、方法３００は、複数のストレージデバイスのグループの各ストレージデバイスがキーを生成するステップで開始してよい（ブロック３０５）。一実施形態では、各ストレージデバイスは、他のストレージデバイスとは独立してキーを生成してよく、またこのキーはランダムに生成された数であってよい。また一実施形態では、各ストレージデバイスは、ストレージコントローラ又は中央管理ユニットからのいずれの入力又は制御なしに、キーの生成を実施してよい。各ストレージデバイスはこのキーを使用して、ストレージデバイスにデータが書き込まれる際にデータを暗号化してよい。各ストレージデバイスは、キーを用いてデータを暗号化するよう構成されたハードウェアを含んでよい。キーはまた、ストレージデバイスからデータを読み出す際にデータを復号化するためにも使用してよい。別の実施形態では、キーを他のいずれの場所（例えばストレージコントローラ）で生成して、各ストレージデバイスに搬送してよい。
【００５７】
次に、ストレージコントローラは、各ストレージデバイスからキーを引き出してよい（ブロック３１０）。いくつかの実施形態では、各ストレージデバイスからデバイス毎の値を引き出し、これを利用してデバイス毎のキーを暗号化してよい。この値は、特定のストレージデバイスに関して一意のいずれの値であってよい。例えば一実施形態では、デバイス毎の値は、ストレージデバイスのシリアルナンバーであってよい。ストレージコントローラは、ストレージデバイスのグループを管理する、及び／又はストレージデバイスのグループへのアクセスを制御するよう構成された、いずれの集中管理ユニットであってよい。様々な実施形態において、ストレージコントローラは、ハードウェア及び／又はソフトウェアを備えてよい。例えば一実施形態では、ストレージコントローラは、計算デバイスの１つ又は複数のプロセッサ上で実行されるソフトウェアであってよい。
【００５８】
ストレージコントローラは、グループ全体に関する単一の初期マスター機密と、各ストレージデバイスに関する共有機密とを生成してよい（ブロック３１５）。いくつかの実施形態では、ストレージコントローラは、初期マスター機密と、各ストレージデバイスに関する共有デバイスを生成した後、各ストレージデバイスからランダムなキー及び他の値を引き出してよい。ストレージコントローラは、初期マスター機密及び共有機密を生成するために、多様な機密共有スキームのいずれを利用してよい。例えば一実施形態では、ストレージコントローラは、Ｓｈａｍｉｒ機密共有スキームを利用して、初期マスター機密及び個々の共有機密を生成してよい。
【００５９】
次にストレージコントローラは、１つ又は複数の外部機密に基づく１つ又は複数の変換を適用することによって初期マスター機密を改変して、最終マスター機密を生成してよい（ブロック３２０）。１つ又は複数の外部機密は、ユーザ入力型パスワード、ＵＳＢキー、外部サーバに記憶されたキー、他の機密、又は単一のタイプの機密の複数のインスタンスを含むこれらの組み合わせであってよい。例えば一実施形態では、２つの異なるＵＳＢキーを利用して、２つの外部機密を記憶してよく、両方の外部機密に基づく変形を利用して、初期マスター機密から最終マスター機密を生成してよい。各ストレージデバイスに関して、ストレージコントローラは上記最終マスター機密を利用して、ストレージデバイスのキーを暗号化してよい（ブロック３２５）。いくつかの実施形態では、最終マスター機密をデバイス固有値と併用して、ストレージデバイスのキーを暗号化してよい。一実施形態では、デバイス固有値はストレージデバイスのシリアルナンバーであってよい。一実施形態では、最終マスター機密及びシリアルナンバーを共にハッシュしてよく、次にこの値を用いてストレージデバイスのキーを暗号化してよい。一実施形態では、他の暗号化スキームを用いて、最終マスター機密及びデバイス固有値に基づいてキーを暗号化してよい。いくつかの実施形態では、最終マスター機密及びデバイス固有値の両方を使用するのではなく、最終マスター機密自体を用いて、ストレージデバイスのキーを暗号化してよい。
【００６０】
次に、ストレージコントローラは、対応する暗号化されたキー、共有機密、外部機密アクセス情報を、ストレージデバイスのグループ内の各ストレージデバイスへと搬送してよい（ブロック３３０）。共有機密、暗号化されたキー、外部機密アクセス情報を、ストレージデバイスに記憶してよい（ブロック３３５）。一実施形態では、共有機密及び外部機密アクセス情報をストレージデバイスのヘッダに記憶してよく、その一方で、暗号化されたキーを、ストレージデバイス上の、エンドユーザがアクセスできない領域に記憶してよい。この実施形態では、暗号化されたキーは、アンロック指令によってしかアクセスできないものとなり得る。いくつかの実施形態では、各ストレージデバイスは、最終マスター機密を検証するために使用されるチェックサムを記憶してよい。ブロック３３５の後、方法３００を終了してよい。
【００６１】
ここで図４に移ると、外部機密による機密共有スキームを用いてストレージシステム内のデータを復号化するための方法の一実施形態が示されている。議論を容易にする目的で、この実施形態の複数のステップを順次示している。以下に記載する方法の様々な実施形態では、記載されている要素のうちの１つ又は複数を、同時に、若しくは図示されているものとは異なる順序で実施してよく、又は全体として削除してもよいことに留意されたい。他の追加の要素を所望に応じて実施してもよい。
【００６２】
方法４００は、ストレージコントローラが、いずれのストレージデバイスから外部機密アクセス情報を引き出すステップで開始してよい（ブロック４０５）。外部機密アクセス情報は、１つ又は複数の外部機密を識別してよく、またこれら１つ又は複数の外部機密を引き出す方法を指示してよい。１つ又は複数の外部機密は、実施形態に応じて変化してよい。例えば様々な実施形態において、１つ又は複数の外部機密は、パスワード、ＵＳＢキートークン、外部サーバに記憶された機密、又は他のタイプの機密であってよい。次にこの外部機密アクセス情報を用いて、ストレージコントローラは１つ又は複数の外部機密を引き出してよい（ブロック４１０）。
【００６３】
また、ストレージコントローラは、閾値個数のストレージデバイスから共有機密を引き出してよい（ブロック４１５）。上記閾値の値は、初期マスター機密が生成された方法によって決定してよい。次に、引き出された共有機密から初期マスター機密を再構成してよい（ブロック４２０）。一実施形態では、多項式の補間を利用して、初期マスター機密を再構成してよい。より具体的には、初期マスター機密を再構成するために使用される補間プロセスの一部として、共有機密から多項式のラグランジュ補間を計算してよい。ブロック４１５、４２０はブロック４０５、４１０と並行して実施してよく、あるいはブロック４１５、４２０はブロック４０５、４１０の前に実施してよいことに留意されたい。
【００６４】
次に、引き出された１つ又は複数の外部機密を用いて、初期マスター機密を最終マスター機密に変換してよい（ブロック４２５）。一実施形態では、安全なハードウェアトークンは、上記トークンがある値を受け取って変換された値を返すことができるようにする、インタフェースを含んでよい。上記変換は、暗号化、キー付きハッシュ又は他のタイプの変換であってよい。このような実施形態では、初期マスター機密を上記トークンに提示し、返された値を最終マスター機密として使用することによって、初期マスター機密を変換してよい。ストレージアレイへのアクセスを防止するために、トークンを物理的に損傷することによってトークンを容易に破壊できる。
【００６５】
別の実施形態では、外部機密を１つ又は複数のネットワークサーバに記憶してよい。サーバは、ストレージアレイよりも良好に保護された環境にあってよく、また仮に上記アレイが盗まれても、ネットワークサーバは、いずれの請求者に対する１つ又は複数の外部機密の提供を単に拒否することによって、盗まれたアレイが読み出されるのを防止できる。更なる実施形態では、外部機密は、キーボード又は他の入力デバイスを通してストレージシステムに直接入力されるパスワードであってよい。このパスワードは、ストレージシステムの始動時に、初期マスター機密を再構築するためのいずれの試みが実施される前に要求してよい。そしてストレージシステムは、このパスワードを、必要となるまでＲＡＭ内に維持してよい。
【００６６】
ブロック４２５の後、最終マスター機密を用いて、ストレージシステムのストレージデバイスの暗号化されたキーを復号化してよい（ブロック４３０）。ある所定のストレージデバイスに関して、暗号化されたキーの復号化は、上記所定のストレージデバイスに固有の値も必要とする場合がある。上記所定のストレージデバイスに固有の値を使用することによって、異なるストレージデバイスはそれぞれ異なるキーを有することになる。しかしながら、デバイス固有値の使用は、本明細書に開示されるスキームに関して任意である。一実施形態では、このデバイス固有値は、上記所定のストレージデバイスのシリアルナンバーであってよい。他の実施形態では、デバイス固有値は、ストレージデバイスのヘッダ位に記憶されたいくつかのデータ等、上記所定のストレージデバイスの異なる属性（又は上記ストレージデバイスに他の様式で関連する値）であってよい。更なる実施形態では、デバイス固有値は、デバイスＩＤ、デバイスのヘッダに記憶された１つ又は複数の値、いずれの他の好適な値等の値の組み合わせに基づくものであってよい。また更なる実施形態では、ある所定のストレージデバイスの暗号化されたキーを復号化するために、デバイス固有値を利用しなくてよい。
【００６７】
ブロック４３０の後、復号化されたキーを用いて、ストレージシステムのストレージデバイス上のデータを復号化してよい（ブロック４３５）。また、復号化されたキーを用いて、ストレージデバイスに書き込まれるデータを暗号化してもよい。復号化されたキーは揮発性メモリに記憶してよく、これにより、システムの電源を切断した場合に復号化されたキーが失われるようにすることができる。再起動時、システムは方法４００を再び実行して、ストレージシステムのストレージデバイスの暗号化されてキーを復号化してよい。方法４００を１回実行した後、復号化されたキーを用いて、記憶された複数のデータのブロックを（読み出しのために）復号化してよく、及び／又はストレージシステムに記憶された複数の新規のデータのブロックを（書き込みのために）暗号化してよい。
【００６８】
ここで図５を参照すると、暗号化されたキー及び共有機密の生成の一実施形態のブロック図が示されている。このブロック図は、ストレージシステム全体（図示せず）の各ストレージデバイス（図示せず）に関する、暗号化されたキー及び共有機密の生成を示す。デバイス固有キー５０５は、ある特定のストレージデバイスに記憶されたデータを暗号化するために使用されるキーの典型である。デバイス固有値５１０は、上記特定のストレージデバイスに関して一意のいずれの値又は値の組み合わせの典型である。１つ又は複数の外部機密５１５は、ストレージシステムに記憶されたデータに外部保護を提供するために使用できる１つ又は複数の外部機密の典型である。初期マスター機密５２０は、複数の共有機密に分割できる、共有される機密の典型である。
【００６９】
１つ又は複数の変形ステージ５２５によって示されているように、初期マスター機密５２０を、１つ又は複数の外部機密５１５を用いて最終マスター機密５３０に変形してよい。変形ステージ５２５は、実施形態に応じて、暗号化、キー付きハッシュ、ＸＯＲ演算及び／又は他のタイプの変換を含んでよい。デバイス固有値５１０及び最終マスター機密５３０は、ハッシュステージ５３５に入力してよく、これら２つの入力からハッシュされた値を生成してよい。ハッシュステージ５３５は、値５１０及び最終マスター機密５３０を共にハッシュするためのいずれのタイプのハッシュ関数を利用してよい。ハッシュステージ５３５からの出力を、暗号化ステージ５４０への入力として連結してよい。暗号化ステージ５４０は、ハッシュステージ５３５の出力を用いて、オリジナルのキー５０５を暗号化してよい。暗号化ステージ５４０の出力は、暗号化されたキー５５０であってよく、これを対応するストレージデバイスに記憶してよい。暗号化ステージ５４０は、暗号化されたキー５５０を生成するために好適ないずれのタイプの暗号化を利用してよい。
【００７０】
共有機密生成器５４５は、初期マスター機密５２０から共有機密５５５を生成するよう構成してよい。いくつかの実施形態では、共有機密生成器５４５は、単一のストレージデバイスに関して複数の共有機密５５５を生成するよう構成してよい。一実施形態では、共有機密生成器５４５は、各共有機密５５５に関して、１つの多項式に１つの点を生成してよい。他の実施形態では、共有機密５５５は、他の技術を利用して生成してよい。図５に示す図は、単一のストレージデバイスに関して実施できる操作を示す。複数のストレージデバイスを有するストレージシステムに関して、これらの操作を、システム内の各ストレージデバイスに対して反復してよい。暗号化されたキー５５０及び共有機密５５５を各ストレージデバイスに関して生成してよく、続いて暗号化されたキー５５０及び共有機密５５５の両方を、対応するストレージデバイスに記憶してよい。別個のストレージデバイスに関して別個のキー５０５及び別個のデバイス固有値５１０を利用してよいが、システム内の全てのストレージデバイスに対して同一の初期マスター機密５２０及び同一の１つ又は複数の外部機密５１５を利用してよい。
【００７１】
図５は、あるストレージデバイスに関する暗号化されたキー及び共有機密の生成の、１つの可能な実施形態の論理的表現を意図したものであることを理解されたい。他の実施形態では、共有機密及び暗号化されたキーを生成するために好適な他の機構又は方法を利用してよい。図５に示す様々な機能は、ストレージコントローラ内のハードウェア及び／若しくはソフトウェア、ストレージデバイス上のハードウェア及び／若しくはソフトウェア、又はこれらの組み合わせによって実施してよい。
【００７２】
上述の実施形態はソフトウェアを含んでよいことに留意されたい。このような実施形態では、方法及び／又は機構を実装するプログラム命令は、非一時的コンピュータ可読媒体に搬送又は記憶してよい。プログラム命令を記憶するよう構成された多数のタイプの媒体が利用可能であり、これにはハードディスク、フロッピーディスク、ＣＤ‐ＲＯＭ、ＤＶＤ、フラッシュメモリ、プログラマブルＲＯＭ（ＰＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、及び多様な他の形態の揮発性又は不揮発性ストレージが含まれる。
【００７３】
様々な実施形態において、本明細書に記載の方法及び機構の１つ又は複数の部分は、クラウドコンピューティング環境の一部を形成し得る。このような実施形態では、リソースは、１つ又は複数の様々なモデルによるサービスとしてインターネットを介して提供され得る。このようなモデルとしては、インフラストラクチャ・アズ・ア・サービス（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ：ＩａａＳ）、プラットフォーム・アズ・ア・サービス（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ：ＰａａＳ）、ソフトウェア・アズ・ア・サービス（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ：ＳａａＳ）が挙げられる。ＩａａＳでは、コンピュータインフラストラクチャがサービスとして配信される。このような場合、計算設備は一般に、サービスプロバイダが所有し、操作する。ＰａａＳモデルでは、ソフトウェア的解決策を開発するためにディベロッパが使用するソフトウェアツール及び基礎となる設備がサービスとして提供され、サービスプロバイダがそのホストとなってよい。ＳａａＳは典型的には、オンデマンドのサービスとして、サービスプロバイダ認可ソフトウェアを含む。サービスプロバイダはソフトウェアのホストとなってよく、又はある所定の期間だけソフトウェアを顧客に対して配備してよい。上述のモデルの多数の組み合わせが可能であり、考察の対象となる。
【００７４】
以上の実施形態についてかなり詳細に説明したが、以上の開示を完全に理解すれば、当業者には多数の変更及び修正が明らかになるであろう。以下の請求項は、このような変更及び修正の全てを包含するものとして解釈されることを意図している。
【図１】
2016539567.tif 000003
【図２】
2016539567.tif 000004
【図３】
2016539567.tif 000005
【図４】
2016539567.tif 000006
【図５】
2016539567.tif 000007
【国際調査報告】
2016539567.tif 000008
2016539567.tif 000009
2016539567.tif 000010