(57)【要約】【課題】ハードウェア鍵を介するストレージデバイスのデータ暗号化およびストレージデバイスのデータアクセスのシステムおよび方法を提供すること。【解決手段】一実施形態は、ストレージデバイスのセットの１つに格納されたデータにアクセスするためにホストからストレージデバイスに送信される要求をインターセプトするハードウェア鍵を含み、ここで、そのストレージデバイスに格納されたデータは、暗号化されている。ハードウェア鍵は、ホストのポートに差し込まれるように構成され、ストレージデバイスのセットに対するデータアクセスを制御するユニットを備える。ハードウェア鍵は、暗号化されたデータにアクセスするために、要求を解釈し、ストレージデバイスのセットの１つにコマンドを発行する。ハードウェア鍵は、ストレージデバイスのセットの１つからの暗号化されたデータを暗号解読するために暗号化鍵を提供する。【選択図】  図１
2008219871.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア鍵が、ストレージデバイスのセットの１つに格納されたデータにアクセスするためにホストからストレージデバイスに送信される要求をインターセプトすることであって、前記ストレージデバイスのセットの１つに格納されたデータは、暗号化され、前記ハードウェア鍵は、前記ホストのポートに差し込まれるように構成され、ストレージデバイスの前記セットに対するデータアクセスを制御するユニットを備えることと、
前記ハードウェア鍵が、前記暗号化されたデータにアクセスするために、前記要求を解釈し、ストレージデバイスの前記セットの前記１つにコマンドを発行することと、
前記ハードウェア鍵が、ストレージデバイスの前記セットの前記１つからの前記暗号化されたデータを暗号解読するために暗号化鍵を提供することと
を備えることを特徴とする方法。
【請求項２】
ストレージデバイスの前記セットは、ＲＡＩＤサブシステムを備えることを特徴とする請求項１に記載の方法。
【請求項３】
ストレージデバイスの前記セットに対するデータアクセスを制御する前記ユニットは、前記ＲＡＩＤサブシステムを制御するユニットを備えることを特徴とする請求項２に記載の方法。
【請求項４】
前記ＲＡＩＤサブシステムを制御する前記ユニットは、コントローラおよびソフトウェアインスタンスの１つを備えることを特徴とする請求項３に記載の方法。
【請求項５】
前記ＲＡＩＤサブシステムは、ＡＴＡインターフェースを介して前記ハードウェア鍵に結合されることを特徴とする請求項３に記載の方法。
【請求項６】
前記ハードウェア鍵が、前記ストレージデバイスからの暗号化されたデータを含む前記ストレージデバイスからの応答をインターセプトすることと、
前記ハードウェア鍵が、前記暗号化されたデータを暗号解読するのに前記暗号化鍵を使用することと
をさらに備えることを特徴とする請求項５に記載の方法。
【請求項７】
前記ハードウェア鍵は、ＵＳＢ鍵を備えることを特徴とする請求項６に記載の方法。
【請求項８】
前記暗号化鍵にアクセスすることは、前記暗号化されたデータを暗号解読するのに使用される前記暗号化鍵を暗号解読するために別々の暗号化鍵にアクセスすることを備えることを特徴とする請求項６に記載の方法。
【請求項９】
ハードウェア鍵であって、
ストレージデバイスのセットの１つに格納されたデータにアクセスするためにホストからストレージデバイスに送信される要求をインターセプトするユニットであって、前記ストレージデバイスのセットの１つに格納されたデータは、暗号化され、前記ハードウェア鍵は、前記ホストのポートに差し込まれるように構成され、ストレージデバイスの前記セットへのデータアクセスを制御するユニットを備え、
前記暗号化されたデータにアクセスするために、前記要求を解釈し、ストレージデバイスの前記セットの前記１つにコマンドを発行するユニットと、
ストレージデバイスの前記セットの前記１つからの前記暗号化されたデータを暗号解読するために暗号化鍵を提供するユニットと
を備えることを特徴とするハードウェア鍵。
【請求項１０】
ＲＡＩＤサブシステムと共に動作可能であることを特徴とする請求項９に記載のハードウェア鍵。
【請求項１１】
ストレージデバイスの前記セットに対するデータアクセスを制御する前記ユニットは、前記ＲＡＩＤサブシステムを制御するユニットを備えることを特徴とする請求項１０に記載のハードウェア鍵。
【請求項１２】
前記ＲＡＩＤサブシステムを制御する前記ユニットは、コントローラおよびソフトウェアインスタンスの１つを備えることを特徴とする請求項１１に記載のハードウェア鍵。
【請求項１３】
前記ＲＡＩＤサブシステムは、ＡＴＡインターフェースを介して前記ハードウェア鍵に結合されることを特徴とする請求項１１に記載のハードウェア鍵。
【請求項１４】
前記ハードウェア鍵と、
前記ストレージデバイスからの暗号化されたデータを含む前記ストレージデバイスからの応答をインターセプトし、前記暗号化されたデータを暗号解読するユニットと
をさらに備えることを特徴とする請求項１３に記載のハードウェア鍵。
【請求項１５】
前記ハードウェア鍵は、ＵＳＢ鍵を備えることを特徴とする請求項１４に記載のハードウェア鍵。
【請求項１６】
前記暗号化鍵を提供する前記ユニットは、前記暗号化されたデータを暗号解読するのに使用される前記暗号化鍵を暗号解読するために別々の暗号化鍵にアクセスするユニットを備えることを特徴とする請求項１４に記載のハードウェア鍵。
【請求項１７】
命令のセットが実行されると、
ハードウェア鍵が、ストレージデバイスのセットのうちの１つに格納されたデータにアクセスするためにホストからストレージデバイスに送られる要求をインターセプトすることであって、前記ストレージデバイスのセットのうちの１つに格納されたデータは、暗号化され、前記ハードウェア鍵は、前記ホストのポートに差し込まれるように構成され、ストレージデバイスの前記セットに対するデータアクセスを制御するユニットを備えること、
前記ハードウェア鍵が、前記暗号化されたデータにアクセスするために、前記要求を解釈し、ストレージデバイスの前記セットの前記１つにコマンドを発行することと、
前記ハードウェア鍵が、ストレージデバイスの前記セットの前記１つからの前記暗号化されたデータを暗号解読するために暗号化鍵を提供することと
を備える方法を実施する命令のセットが格納されていることを特徴とするマシン読取可能媒体。
【請求項１８】
ストレージデバイスの前記セットは、ＲＡＩＤサブシステムを備えることを特徴とする請求項１７に記載のマシン読取可能媒体。
【請求項１９】
前記ハードウェア鍵が、前記ストレージデバイスからの暗号化されたデータを含む前記ストレージデバイスからの応答をインターセプトすることと、
前記ハードウェア鍵が、前記暗号化されたデータを暗号解読するのに前記暗号化鍵を使用することと
をさらに備えることを特徴とする請求項１７に記載のマシン読取可能媒体。
【請求項２０】
前記暗号化鍵にアクセスすることは、前記暗号化されたデータを暗号解読するのに使用される前記暗号化鍵を暗号解読するために別々の暗号化鍵にアクセスすることを備えることを特徴とする請求項１９に記載のマシン読取可能媒体。
【請求項２１】
ホスト、ハードウェア鍵、およびストレージデバイスのセットを備えるシステムで実行されると、請求項１から８のいずれか１つに記載の方法を前記システムに実装させることを特徴とするコンピュータプログラム。
【請求項２２】
請求項２１に記載のプログラムを担持することを特徴とするキャリア。
【請求項２３】
マシン読取可能媒体であることを特徴とする請求項２２に記載のキャリア。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、全般的に、ハードウェア鍵を介するストレージデバイスのセットのデータ暗号化およびデータアクセスのシステムおよび方法に関する。
【背景技術】
【０００２】
ポータブル電子デバイスの使用の増加に伴って、個人のプライバシおよび機密保持は、電子デバイスの不正アクセスにおいて危険にさらされる可能性があるので、ストレージデバイスに格納されたデータのセキュリティは、不可欠なものとなっている。パスワード（例えば、オペレーティングシステムのログオンパスワード、ＢＩＯＳパスワードなど）は、権限を与えられていないユーザがホストデバイス（例えば、ラップトップコンピュータ）にログオンすることを防いできたが、ストレージデバイスの内容は、ホストシステムからデバイスを取り外す際に、危険にさらされる可能性がある。例えば、データハッカーは、ストレージデバイスを物理的に取り外し、そのストレージデバイスを、そのデータハッカーがアクセス権限を有する別のホストデバイスに移すことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
したがって、ホストシステムのオペレーティングシステムがアクティブでない場合、ストレージデバイス上のデータを保護するのに使用されることとなるストレージデバイスに格納されたデータを暗号化するセキュリティ技法が必要である。例えば、データがストレージデバイスから直接に読み取られることが試みられると、アクセスの要求が、アクセスされることとなるストレージデバイス上のデータの暗号化解除の前に許可される。
【０００４】
さらに、ストレージデバイス上のデータを暗号化する暗号化鍵が格納される位置は、暗号化されたストレージデバイスのセキュリティに影響する。暗号化鍵が、ホストシステム内のストレージデバイスに格納されると、暗号化鍵のセキュリティは、ホストシステムが紛失または盗まれるときに危険にさらされる可能性がある。例えば、ストレージデバイス上のデータが、直接に読み取られ、格納された暗号化鍵の位置が、ハッカーによって知られる場合である。したがって、データセキュリティは、システムに存在する暗号化鍵に起因して危険にさらされる可能性がある。
【０００５】
さらに、データ保全性、フォールトトレランス、スループット、およびストレージ容量も、ストレージシステムにとって重要である。したがって、ＲＡＩＤ（redundant array of independent disks）を使用して、複数のハードディスクドライブの間でデータを共有し、または複製することができる。さらに、ハードディスクドライブのセットを、単一の論理ユニットに結合することができる。複数のハードディスクドライブのアレイのデータ容量に起因して、暗号化を通じたデータのセキュリティは、システム信頼性を大きく高め、データが盗まれる危険性を減らすことができる。
【課題を解決するための手段】
【０００６】
ハードウェア鍵を介するストレージデバイスのセットのデータ暗号化およびデータアクセスのシステムおよび方法を、本明細書で説明する。本発明のいくつかの実施形態を、このセクションで要約する。
【０００７】
一実施形態は、ストレージデバイスのセットの１つに格納されたデータにアクセスするためにホストからストレージデバイスに送信される要求をインターセプトするハードウェア鍵を含み、ここで、ストレージデバイスに格納されたデータは、暗号化されている。ハードウェア鍵は、ホストのポートに差し込まれ、ストレージデバイスのセットに対するデータアクセスを制御するように構成される。ハードウェア鍵は、暗号化されたデータにアクセスするために、要求を解釈し、ストレージデバイスのセットの１つにコマンドを発行する。ハードウェア鍵は、暗号化鍵を提供し、ストレージデバイスのセットの１つからの暗号化されたデータを暗号解読するものである。一実施形態において、ストレージデバイスのセットは、ＲＡＩＤサブシステムを備える。
【０００８】
一実施形態において、ハードウェア鍵は、さらに、ストレージデバイスからの暗号化されたデータを含むストレージデバイスからの応答をインターセプトするものであり、ハードウェア鍵は、暗号化鍵を使用し、暗号化されたデータを暗号解読するものである。さらに、一実施形態において、ハードウェア鍵は、ＵＳＢ鍵を備える。
【０００９】
本開示は、方法、および、これらの方法を実施する処理システムと、処理システムで実行されるときにシステムにこれらの方法を実施させるコンピュータ読取可能媒体とを含むこれらの方法を実施する装置を含む。
【００１０】
本発明の他の特徴は、添付図面および以下の詳細な説明から明らかになるであろう。
【００１１】
本開示は、添付図面の図において、限定ではなく例として表され、添付図面の図においては、同様の参照符号は、同様の要素を示す。
【発明を実施するための最良の形態】
【００１２】
次の説明および図面は、例示であって、限定として解釈されてはならない。多くの特定の詳細は、本開示の完全な理解を提供するために説明する。しかし、ある種の場合には、周知のまたは従来の詳細は、説明を混乱させるのを避けるために説明しない。本開示において一実施形態、または実施形態についての言及は、同一の実施形態についての言及とすることができるが、必ずしもそうではなく、そのような言及は、少なくとも１つを意味する。
【００１３】
本明細書において、「一実施形態」または「実施形態」についての言及は、その実施形態に関連して説明される特定の特徴、構造、または特性が、本開示の少なくとも１つの実施形態に含まれることを意味する。本明細書内のさまざまな箇所における「一実施形態において」というフレーズの出現は、必ずしもすべてが同一の実施形態について言及するものではなく、他の実施形態と相互に排他的な、別々のまたは代替の実施形態でもない。さらに、さまざまな特徴を説明するが、これらの特徴は、いくつかの実施形態によっては示すことができるが、他の実施形態によっては示すことができない場合がある。同様に、さまざまな要件を説明するが、これらの要件は、いくつかの実施形態に対する要件とすることができるが、他の実施形態に対する要件とすることができない場合がある。
【００１４】
本開示の実施形態は、ハードウェア鍵を介するストレージデバイスのセットのデータ暗号化およびデータアクセスのシステムおよび方法を含む。
【００１５】
パーソナルコンピュータ／ラップトップ機などの処理デバイスが、ビデオおよびオーディオの編集などのストレージ集中型タスクにさらに使用されるようになるにつれて、大容量ストレージシステムに関する需要も急増している。したがって、大容量ストレージシステムでフォールトトレランスおよび高性能を達成するために、ＲＡＩＤ構成を、サーバおよび／またはパーソナルコンピュータで使用することができる。
【００１６】
ＲＡＩＤ構成は、複数のハードドライブを、オペレーティングシステムによって参照される単一の論理ユニットに結合する。さらに、異なるレベルのＲＡＩＤ構成は、異なるレベルのデータミラーリングまたはストライピングを提供することができる。ＲＡＩＤストレージ構成を、ＩＤＥ／ＡＴＡ、ＳＡＴＡ、ｅ−ＳＡＴＡ、ＳＣＳＩ、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ、ｉＳＣＳＩ、高速ＳＣＳＩ、および／またはＰＣＩｅインターフェースなどの１つまたは複数を使用してホストシステムに結合することができる。さらに、ＲＡＩＤコントローラを、ホストシステムおよびＲＡＩＤ構成の複数のストレージデバイスに結合して、複数のストレージデバイスを１つの論理ユニットとしてホストシステムに提示することができる。例えば、ＲＡＩＤアダプタは、ホストシステム内に（例えば、マザーボード上に）組み込むか、別々のアドオン（例えば、拡張カード、ＵＳＢ鍵など）として組み込むことができる。
【００１７】
ハードウェアモジュールを介してストレージデバイスのアレイの１つまたは複数のストレージデバイスに格納されたか、格納されることとなるデータの暗号化は、ストレージデバイスのアレイ（例えば、ＲＡＩＤアレイ）上のデータの暗号化を通じてプライバシおよび機密保持を保証する安全な方法を提供する。ディスクドライブなどのストレージデバイス上の既存データは、暗号化を介して保護することができる。データ暗号化は、ストレージデバイスのアレイおよびホストシステムに論理接続されたハードウェア鍵によって実施することができる。暗号化されたストレージデバイスに対するアクセスは、ハードウェア鍵を、ホストおよびストレージデバイスのアレイに物理的に接続することを介して得ることができる。
【００１８】
例えば、ハードウェア鍵は、ホストシステムへの結合用およびストレージデバイスのアレイへの結合用の、複数のインターフェースを含むことができる。一実施形態において、ホストシステムに結合するためのインターフェースは、ＵＳＢインターフェース、シリアルインターフェース、パラレルインターフェース、ＦｉｒｅＷｉｒｅなどを利用することができる。ストレージデバイスのアレイに結合するためのインターフェースは、ＩＤＥ／ＡＴＡ、ＳＡＴＡ、ｅ−ＳＡＴＡ、ＳＣＳＩ、Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ、ｉＳＣＳＩ、高速ＳＣＳＩ、および／またはＰＣＩｅインターフェースの１つまたは複数とすることができる。
【００１９】
一実施形態において、暗号化鍵は、ホストシステムから取り外し可能であるハードウェア鍵などのハードウェアデバイスに格納されるか、ハードウェアデバイスによって他所からアクセスされることとなる。暗号化鍵は、ハードウェア鍵のメモリ、不揮発性メモリ、フラッシュ、または離散ロジック内に格納することができる。一実施形態において、ハードウェア鍵は、暗号化されたデータにアクセスするために、要求を解釈し、ストレージデバイスのセットの１つまたは複数のストレージデバイスへのコマンドを発行することとなる。
【００２０】
ハードウェア鍵が、ストレージデバイスからデータを読み取るコマンドを受け取ると、パスワードプロンプトを生成することができる。正しいパスワードが供給されると、要求されたデータが、ストレージデバイスから読み取られ、暗号解読される（例えば、暗号化解除される）。同様に、ストレージデバイス上のデータを消去する要求が受け取られると、パスワードをユーザに要求することができる。
【００２１】
例えば、ハードウェア鍵は、メモリ内に１つまたは複数の暗号化鍵を格納することができる。この１つまたは複数の暗号化鍵は、その中にあるデータがその暗号化鍵を用いて暗号化される、ストレージデバイス、ファイル、またはフォルダに対応する。一実施形態において、暗号化鍵の管理は、ハードウェア鍵に存在するコントローラによって容易にされる。
【００２２】
一実施形態において、ＲＡＩＤサブシステムは、ＡＴＡインターフェースを介してハードウェア鍵に結合されることとなる。一実施形態によると、ストレージデバイスのセットのストレージデバイス上のデータに対するアクセスの要求が、ハードウェア鍵によって受け取られると、要求を生成したホストシステムに送り返されることとなるデータを暗号解読するために、暗号化鍵が、ハードウェア鍵によって提供される。
【００２３】
一実施形態において、ストレージデバイスのセットは、ＲＡＩＤサブシステムを備える。一実施形態において、ハードウェア鍵は、ストレージデバイスからの暗号化されたデータを含むストレージデバイスからの応答をインターセプトし、ハードウェア鍵は、暗号化鍵を使用して、暗号化されたデータを暗号解読することとなる。一実施形態において、ハードウェア鍵は、ＵＳＢ鍵を含む。ストレージデバイスに格納された要求データは、任意の適切な暗号化アルゴリズムで暗号化することができる。例えば、使用することができる暗号化アルゴリズムは、ＤＥＳ／３ＤＥＳ（Data Encryption Standard）、Ｂｌｏｗｆｉｓｈ、ＩＤＥＡ（International Data Encryption Algorithm）、ＳＥＡＬ（Software-optimized Encryption Algorithm）、ＡＥＳ（RC4、Advanced Encryption Standard）などを含むが、これらに限定はされない。
【００２４】
一実施形態によると、ストレージデバイスを保護するコマンドが受け取られると、パスワードセットアッププロセスが開始される。初期セットアッププロセスは、ユーザが、ストレージデバイス上のデータにアクセスする（例えば、暗号化し、暗号解読し、削除し、バックアップをとるなど）ための１つまたは複数のパスワードをセットアップすることを可能にする。一実施形態によると、異なるアクセスレベル（例えば、読み取る／書き込む／消去する特権）は、システムの異なるユーザに設定することができる。例えば、システム管理者には、ストレージデバイスから、データを暗号化し、データを暗号解読する権限を与えることができる。システム管理者は、異なる暗号化鍵で再暗号化を開始する特権を所有することもできる。権限を与えられたユーザは、暗号化されたドライブからデータを読み取る（または暗号解読する）特権を所有することができる。
【００２５】
一実施形態によると、保護されたストレージデバイス上の暗号化されたデータに対するアクセスは、所定のパスワードと一致するパスワードを供給することを介して得られる。所定のパスワードを供給することを通じて、保護されたストレージデバイス上のデータを暗号化するのに使用される暗号化鍵に、アクセスすることができ、暗号化されたデータを暗号解読することができる。一実施形態において、暗号化鍵、または暗号化鍵のマスクされたバージョンは、ホストシステムにおける１つまたは複数のストレージデバイス上の、ブート中にオペレーティングシステムへのログオンの前にアクセス可能な、所定の位置に格納される。格納された暗号化鍵にアクセスできるように、ストレージデバイスのその所定の位置は、オペレーティングシステムに対するログオンの前のブート中にアクセス可能である。
【００２６】
図１は、一実施形態による、ハードウェア鍵１１０を通じてホストシステム１０６と通信するストレージデバイス１１２Ａ〜Ｎのセットの例を図示する。
【００２７】
ストレージデバイス１１２Ａ〜Ｎのセットは、ホストシステム１０６の周辺装置である、ハードディスクドライブ、パラレルポート（ＰＡＴＡ）を有するハードディスクドライブ、ＳＡＴＡを有するハードディスクドライブ、ＳＣＳＩドライブ、光学ドライブ、磁気ドライブ、外部ストレージデバイス、フラッシュデバイスなどの半導体ストレージ、または光磁気ストレージデバイスの少なくとも１つを備える。ハードウェア鍵１１０は、システム上のポート（例えば、パラレルポート、シリアルポート、ＵＳＢポート、またはＦｉｒｅＷｉｒｅポート）に差し込まれるデバイスとすることができる。一実施形態においては、ハードウェア鍵１１０は、ホストシステムが動作している間にホストシステムに差し込み、引き抜くことができるメモリデバイスである。
【００２８】
例えば、ハードウェア鍵は、プラグアンドプレイ（ホットスワッピング）をサポートするデバイスとすることができる。さらに、ハードウェア鍵１１０は、暗号化処理および暗号化解除処理を実行することができて必要なソフトウェアコードを格納することができる任意のタイプのストレージデバイスおよび／またはメモリデバイスとすることができる。一実施形態において、ハードウェア鍵がホストシステムに接続されていないと、ホストシステムのストレージデバイスに、アクセスすることができない。一実施形態において、ハードウェア鍵は、ＵＳＢインターフェースを介してホストシステムに結合されるＵＳＢ鍵である。他のタイプのハードウェア鍵またはインターフェースを使用することができる。
【００２９】
一実施形態において、ハードウェア鍵は、コントローラと、ストレージコントローラと、暗号化モジュール、オペレーティングシステム、および／またはハードウェアドライバを有する処理ユニットとを含む。代替実施形態において、ハードウェア鍵は、より少数のコンポーネントまたは追加コンポーネントを含むことができる。
【００３０】
一実施形態において、鍵は、別のデバイスへのパススルーとしても働く。ユーザが、ログオフしてシステムを保護することを望む場合、ハードウェア鍵を、ホストシステムから物理的に切り離すことができる。ハードウェア鍵がホストシステムに結合されない限り、アクセスは、再び得ることができない。したがって、ハードウェア鍵に存在する暗号化鍵は、システム自体には格納されない。一実施形態において、所定のパスワードが供給され、暗号化鍵を格納したハードウェア鍵が、ホストシステム、および読み取られることとなるストレージデバイスに結合されると、ハードウェア鍵上の暗号化鍵は、アクセス可能となる。
【００３１】
一実施形態において、ハードウェア鍵は、ストレージデバイスのセット（アレイ）の１つまたは複数のストレージデバイスに格納されたデータにアクセスするために、そのストレージデバイスにホストから送られる要求をインターセプトする。ストレージデバイスに格納されたデータは、少なくとも１つの暗号化鍵を使用して暗号化されており、ハードウェア鍵は、ホストのポートに差し込まれるように構成される。一実施形態において、ハードウェア鍵は、暗号化鍵を使用してストレージデバイスからの暗号化されたデータを暗号解読し、ストレージデバイスのセットへのデータアクセスを制御するユニットを、さらに備える。例えば、ストレージデバイスのセットに対するデータアクセスを制御するユニットは、ＲＡＩＤサブシステムを制御するユニットを含むことができる。
【００３２】
ハードウェア鍵は、ストレージデバイスを保護するのに使用される１つまたは複数の暗号化鍵を格納することができる。一実施形態において、１つまたは複数のストレージデバイスは、１つまたは複数の暗号化鍵を用いて保護されており、格納された暗号化鍵は、接続性が確立されると、ホストシステムによってアクセス可能である。例えば、コントローラは、暗号化鍵、およびその暗号化鍵を用いて保護されたストレージデバイスを管理する。一実施形態において、暗号化鍵は、コントローラまたはメモリ内のルックアップテーブル内で、その暗号化鍵で暗号化された各ストレージデバイスと突き合わされる。他の管理技法も使用することができる。
【００３３】
暗号化モジュールは、任意の数のストレージデバイスを保護するのに使用される１つまたは複数の暗号化鍵を格納するメモリを含むことができる。一実施形態において、暗号化モジュールは、暗号化鍵を格納しない。さらに言うと、暗号化鍵は、データ暗号化解除のために別のデバイスからハードウェア鍵１１０に送信される。一実施形態において、ハードウェア鍵１１０は、ホストシステム１０６を通じてストレージデバイス１１２Ａ〜Ｎに結合される。
【００３４】
一実施形態において、暗号化鍵は、ハードウェア鍵を紛失した場合に暗号化鍵の機密保持が危険にさらされないように、マスクされた形式でハードウェア鍵に格納される。さらに、転送がインターセプトされる場合に暗号化鍵の機密保持が危険にさらされるのを防ぐために、暗号化鍵は、マスクされた形式（例えば、暗号化された形式、マスクされた形式、秘密鍵／公開鍵ローリング交換など）で、デバイスからデバイスに転送される。
【００３５】
暗号化鍵は、多数の形式の１つでマスクする（隠す）ことができる。例えば、暗号化鍵を、ハードウェア鍵に格納すると、ユーザが設定したパスワードによって決定される秘密鍵を用いて暗号化することができる。したがって、暗号化鍵は、ユーザが正しいパスワードを供給することなどの要求の検証において、アンマスクされる。正しいパスワードは、秘密鍵に対するアクセスを提供することができ、または、暗号化鍵をマスクするのに使用した秘密鍵自体である。
【００３６】
さらに、暗号化鍵は、所定のアルゴリズムに基づいてハッシュ化することができる。所定のアルゴリズムは、所定のパスワードを用いる暗号化鍵の演算（例えば、ブール演算、算術演算など）とすることができる。したがって、暗号化鍵のハッシュ化されていないバージョンにアクセスするために、ユーザによって、所定のパスワードが供給されることとなる。一実施形態において、所定のパスワードは、ハッシュ化されていないバージョンにアクセスするために、所定のアルゴリズムを暗号化鍵に対して実施することを可能にする。
【００３７】
一実施形態において、ホストシステム上の各ファイルは、異なる暗号化鍵を有する。いくつかの実施形態において、各フォルダは、異なる暗号化鍵を有する。別の実施形態において、ストレージデバイスに存在するすべてのデータは、１つの暗号化鍵で暗号化される。ファイル固有暗号化鍵、フォルダ固有暗号化鍵、および／またはパーティション固有暗号化鍵の組合せは、ストレージデバイス上またはホストシステムの複数のストレージデバイス上で実装することができる。ファイル、フォルダ、パーティション、および／またはストレージデバイスに対する暗号化鍵の割り振りは、自動的またはユーザ指定とすることができる。
【００３８】
さらに、データ暗号化に使用される暗号化鍵は、ユーザ要求時にまたは自動トリガの際に変更することができる。異なる暗号化鍵を適用する前に、暗号化されたデータは、異なる暗号化鍵で同一データを再び暗号化する前に元の鍵で暗号化解除することができる。例えば、自動トリガは、いくつかの失敗したログオン試行の後に成功した試行のようにイベントベースとすることができる。自動トリガは、暗号化鍵が所定の時間にわたって使用された時など、時間ベースとすることもできる。
【００３９】
一実施形態において、ハードウェア鍵１１０は、ホストシステムのＵＳＢポートに差し込むことができるＵＳＢ鍵である。例えば、ＵＳＢ鍵は、リムーバブルでリライタブルなフラッシュドライブとすることができる。ハードウェア鍵１１０内のコントローラは、一実施形態によると、ＵＳＢコントローラである。
【００４０】
一実施形態において、ハードウェア鍵上のストレージコントローラ（ハードディスクコントローラ）は、ハードウェア鍵１１０に結合されたＲＡＩＤアレイを管理するＲＡＩＤコントローラである。一般に、ストレージコントローラは、ＩＤＥ（ＰＡＴＡ）、Ｓｅｒｉａｌ  ＡＴＡ、ｅｘｔｅｒｎａｌ−ＳＡＴＡ、ＳＣＳＩ、および／またはｉＳＣＳＩのインターフェースアダプタとすることができる。ハードウェア鍵１１０は、上記に列挙したアダプタの任意の組合せを伴う任意の個数のストレージコントローラを含むことができる。
【００４１】
ホストシステム１０６は、ストレージデバイス１０２およびさまざまな論理構成を有するストレージデバイス１１２Ａ〜Ｎのアレイをサポートする任意のタイプのシステムとすることができる。例えば、ホストシステムは、デスクトップコンピュータや、ノートブック機、ラップトップコンピュータ、ハンドヘルドコンピュータ、携帯電話機、スマートホン、ＰＤＡなどのモバイルコンピューティングデバイスを含むことができるが、これらに限定はされない。一実施形態において、ホストシステム１０６を、ネットワーク１０８に結合することができる。一実施形態において、ストレージデバイス１１２Ａ〜Ｎのアレイを接続することができる。他の実施形態においては、暗号化されたデータを、ホストシステムのオペレーティングシステムに組み込まれたドライバを使用してチップセットを通じてリダイレクトし、インターセプタ１０４の利用を伴ってまたは伴わずに内部ストレージデバイスにリダイレクトすることができる。
【００４２】
図２は、一実施形態による、ホストシステム１０６のポート２０８を通じてホストシステム１０６に論理接続されるハードウェア鍵１１０を介してストレージデバイス１１２Ａ〜Ｎのセットと通信するホストシステム１０６の例示的な図を示す。
【００４３】
一実施形態において、ホストシステム１０６は、処理ユニット２０２、チップセット２０４、メモリ２０６、ポート２０８、および多数のＩ／Ｏデバイスを含み、このＩ／Ｏデバイスは、キーボード、ポインティングデバイス、サウンドシステム、および／またはビデオシステムなどを含むことができる。ポート２０８は、シリアルポート（例えば、ＲＳ−２３２）、パラレルポート、イーサネット（登録商標）ポート、ＦｉｒｅＷｉｒｅ、および／またはＵＳＢポートの少なくとも１つとすることができる。さらに、ポート２０８は、物理シリアルポートのエミュレーションである仮想シリアルポートなどの仮想ポートとすることができる。
【００４４】
図示したホストシステム１０６は、例示的な概要であり、したがって、本開示の趣旨から逸脱することなく、このシステムの多くの変形形態および修正形態とすることができる。例えば、メモリは、当技術分野で「ノース」ブリッジとして知られているものに配置することができ、ビデオシステムが、それ自体の別々のノースブリッジアクセスを有することができ、Ｉ／Ｏを、「サウス」ブリッジを介して接続することができる。
【００４５】
一実施形態において、ポート２０８は、チップセット２０４を介してホストシステム１０６に結合される。ストレージデバイス１１２Ａ〜Ｎのセットは、異なるインターフェースを通じてハードウェア鍵と通信するハードディスクドライブを備えることもできる。ハードウェア鍵１１０は、シリアルＡＴＡ（ＳＡＴＡ）、パラレルＡＴＡ（ＰＡＴＡ）インターフェース、ＦｉｒｅＷｉｒｅ、ＳＣＳＩ、またはＵＳＢなど、異なるストレージデバイスと通信するのに適する任意の数のストレージコントローラを有することができる。一実施形態において、ストレージデバイス１１２Ａ〜Ｎのセットは、ＲＡＩＤアレイとして構成され、ＲＡＩＤコントローラを有するハードウェア鍵１１０を介してホストシステムと通信する。
【００４６】
ストレージデバイス１１２Ａ〜Ｎのセットとのハードウェア鍵１１０インターフェースは、異なるストレージデバイスの仕様に応じて異なるデータ転送レートをサポートする。例えば、ＳＡＴＡインターフェースは、１．５ギガビット／秒、３ギガビット／秒、および６ギガビット／秒のデータレートをサポートする。ＦｉｒｅＷｉｒｅ  ８００バスおよびＦｉｒｅＷｉｒｅ  ４００バスも、異なるデータ転送レートを有する。
【００４７】
図３Ａは、一実施形態による、ストレージデバイスのセットの１つまたは複数のストレージデバイスの、データ暗号化およびデータアクセスのためのパスワードをセットアップするプロセスを図示するフローチャート３００Ａである。
【００４８】
プロセス３０２では、ストレージデバイスにアクセスするための最初の要求を受け取る。例えば、ユーザが、新たに購入したラップトップ機（例えば、ホストシステム）に対するログオンを試みると、そのユーザは、新たに購入したラップトップ機のストレージデバイスにアクセスするための最初の要求を生成する。さらに、ユーザが、ストレージデバイスのセットの１つまたは複数のストレージデバイスの使用を試みると、そのストレージデバイスにアクセスするための最初の要求が、そのユーザによって生成される。
【００４９】
一実施形態において、ユーザが、ストレージデバイスのセットの１つまたは複数のストレージデバイス上の既存データを保護することを試みると、使用済みのストレージデバイスにアクセスする最初の要求も生成される。この要求は、ホストシステムまたはホストシステムに結合されたハードウェア鍵にインストールされたソフトウェアに基づいて検出することができる。
【００５０】
この要求は、ストレージデバイスの補助的なパーティションにインストールされた第二のオペレーティングシステムを稼動させるために、ユーザが生成することもできる。特定のファイルまたはフォルダにアクセスする試行は、ストレージデバイスに格納された暗号化されたデータに対するアクセスのために、要求をトリガすることもできる。さらに、システムまたはオペレーティングシステムがスリープモード、節電モード、またはタイムアウトを終了すると、要求を、自動または手動で生成することができる。一般に、要求は、システムのブート中またはシステムのリスタート中に自動的に生成される。
【００５１】
プロセス３０４では、図６の例示のスクリーンショットに示すように、ユーザに、１つまたは複数のパスワードおよびパスワードヒントをセットアップするように促す。一実施形態において暗号化鍵は、ハードウェア鍵に格納されるため、ハードウェア鍵（例えば、ＵＳＢ鍵）を、パスワードのセットアップ中にホストシステムに結合する（例えば、ＵＳＢポートに差し込む）ことができる。一実施形態において、１つまたは複数のパスワードが、ホストシステムの１つまたは複数のストレージデバイス上のデータを暗号化するための１つまたは複数の暗号化鍵を生成するのに使用される。
【００５２】
一実施形態において、暗号化鍵は、あらかじめ定められ、１つまたは複数のパスワードが要求に応答してユーザによってセットアップされると、それらのパスワードに関連付けられる。さらに、所定の暗号化鍵を、ユーザによって設定された１つまたは複数のパスワードに基づいてさらにマスクする（例えば、暗号化する、またはハッシュ化する）ことができる。一実施形態によると、図９の例示のスクリーンショットに示すように、パスワードヒントは、誤ったパスワードで失敗したログオン試行の際に、ユーザに供給される。
【００５３】
初期セットアッププロセスが完了し、所定のパスワードが供給されると、一実施形態によれば、ストレージデバイスに書き込まれることとなる新しいデータは、そのストレージデータへの格納の前に暗号化することができる。さらに、ユーザが、使用済みのディスクドライブを暗号化することを望む場合、ディスクドライブに既に格納されているデータを、暗号化されることとなる第二のストレージ位置（例えば、同一ディスクドライブ上の別のストレージ位置、別のストレージデバイス、システムメモリ、メモリデバイスなど）に移動させ、その後、元のストレージ位置に戻すことができる。
【００５４】
プロセス３０６では、パスワードおよびパスワードヒントのハッシュ化されたバージョンを作成する。パスワードおよびパスワードヒントのハッシュ化された（または他の形でマスクされた）バージョンは、パスワードおよびパスワードヒントを保護するために作成することができる。例えば、データが、ストレージデバイスまたはハードウェア鍵から直接読み取られると、パスワードは、隠された形式で表示されるであろう。さまざまなハッシュ化アルゴリズムを使用することができる。一実施形態によると、暗号化アルゴリズムは、パスワードをマスクするために使用することができる。
【００５５】
プロセス３０８では、パスワードおよび／またはパスワードヒントのハッシュ化された（または任意のアルゴリズムを介して隠された）バージョンは、ストレージデバイスのセットのうちの１つまたは複数のストレージデバイスまたはハードウェア鍵の所定の位置に格納される。一実施形態によると、パスワードおよび／またはパスワードヒントのハッシュ化されたバージョンは、ホストのオペレーティングシステムからアクセス不能なストレージデバイスまたはハードウェア鍵のセクタに格納される。したがって、暗号化されたデータのアクセスを、最初に正しいパスワードを供給することなくオペレーティングシステムによってバイパスすることはできない。一実施形態において、パスワードおよび／またはパスワードヒントのハッシュ化されたバージョンは、同一のホストシステム内の別のストレージデバイスに格納される。例えば、着信側のデバイスに対するパスワードは、マスタデバイスに格納することができる。
【００５６】
プロセス３１０では、ストレージデバイスのセットのうちの１つまたは複数のストレージデバイスに格納されたデータを暗号化する暗号化鍵は、パスワードに基づいて決定され、その暗号化鍵は、将来のアクセスのためにパスワードに関連付けられる。一実施形態において、暗号化鍵は、パスワードから生成され、ハードウェア鍵に格納される。一実施形態において、暗号化鍵は、あらかじめ定められ、この暗号化鍵は、パスワードの操作に基づいてさらに隠す（例えば、ハッシュ化する、または暗号化する）ことができ、したがって、追加的なセキュリティのレイヤを作成することができる。一実施形態において、パスワードは、暗号化鍵を暗号化するための秘密鍵である。それゆえ、パスワードが危険にさらされる場合、その特定のアルゴリズムは、ハッカーに知られていないので、暗号化鍵は保護されたままである。
【００５７】
操作３１２では、ストレージデバイスのセットの１つまたは複数のストレージデバイス上のデータは、暗号化鍵で暗号化される。例えば、図７の例示のスクリーンショットに示すように、保護されることになるソースドライブは、ウィンドウ７０２に示す「Source Drive（ソースドライブ）：」のリストの下で選択することができる。一実施形態において、「Source Drive」からデータを移行する「Destination Drive（宛先ドライブ）」（例えば、図７の「Destination Drive」ウィンドウ７０４から）を、選択することができる。データは、ソースドライブから移行し、宛先ドライブで暗号化することができる。暗号化されたデータは、ソースドライブに戻すことができるか、または宛先ドライブに格納することができる。ソースドライブと宛先ドライブの両方は、ストレージデバイスの同一のアレイ（例えば、１つのＲＡＩＤ構成内）に属するものとすることができる。一実施形態において、ソースドライブおよび宛先ドライブは、ホストシステムに別々の論理ユニットとして提示されるストレージデバイスとすることができる。
【００５８】
一実施形態において、宛先ドライブを選択する必要がない。例えば、ソースドライブ上の暗号化されることとなるデータは、暗号化されることとなる同一ドライブの第二のストレージ位置（例えば、異なるパーティション）に移行される。同様に、暗号化されたデータは、元のストレージ位置に戻されるか、またはソースドライブ上の第二のストレージ位置に格納されるかのいずれかである。一実施形態において、ホストシステムが、ストレージデバイスのセットの１つまたは複数のストレージデバイスにデータを書き込む要求を生成すると、そのデータは、ストレージデバイスへの移行の前に、暗号化鍵で暗号化される。さらに、そのデータは、暗号化の前にストレージデバイスに書き込み、その後、自動トリガまたは手動トリガに基づいて後から暗号化することができる。例えば、所定の時間間隔で書き込まれるデータを、暗号化することができる。同様に、所定の量の書き込みデータ（例えば、５ｋＢ）を、同時に暗号化することができる。
【００５９】
図３Ｂは、一実施形態による、ストレージデバイスのセットの１つのストレージデバイスの、データ暗号化およびデータアクセスの権限を与えるプロセスを示すフローチャート３００Ｂである。
【００６０】
プロセス３２２では、ストレージデバイス、またはストレージデバイスのセットのストレージデバイスに対するアクセスの要求が、受け取られる。例えば、この要求を、セッションの開始の際に受け取ることができる。このセッションを、システムのパワーアップ、タイムアウトの完了、またはリスタートの少なくとも１つに応答して開始することができる。ハードウェア鍵がホストシステムのポートに差し込まれている間に、このセッションを、スリープモードまたは節電モードの終了後にもトリガすることができる。ストレージデバイスに対するアクセスの要求は、対応するハードウェア鍵をホストシステムのポートに差し込むことによって開始することもできる。
【００６１】
一実施形態において、ストレージデバイスの特定のパーティション、フォルダ、またはファイルがアクセスされると、この要求が、生成される。さらに、ストレージデバイスの異なるパーティションに存在する異なるオペレーティングシステムがアクセスされるときにも、要求を生成することができる。
【００６２】
プロセス３２４では、図８Ｂの例示のスクリーンショットに示すように、ユーザに、パスワードの入力を促す。パスワードは、ストレージデバイス上のデータに対するアクセスの権限を与えるのに使用する。例えば、パスワードは、ハードウェア鍵に格納された１つまたは複数の暗号化鍵を暗号化解除するのに使用される秘密鍵とすることができる。さらに、前述したように、パスワードは、暗号化鍵自体をアンマスクする（例えば、ハッシュ解除する）か、または暗号化鍵を暗号解読するための他の操作を実行するのに使用することができる。一実施形態によると、複数のパスワードを、１つのストレージデバイス上の異なるファイル、フォルダ、オペレーティングシステム、またはパーティションに対して使用することができる。
【００６３】
プロセス３２６では、ユーザが提供したパスワードのハッシュ化されたバージョンは、所定のアルゴリズムに基づいて計算される。一実施形態によると、暗号化アルゴリズムを、使用することができる。プロセス３２８では、ストレージデバイスのセットの１つまたは複数のストレージデバイスまたはハードウェア鍵上の所定の位置に格納された所定のパスワードのハッシュ化されたバージョンが、識別される。プロセス３３０では、所定のパスワードの、ハッシュ化されたバージョンまたは別の方法で隠したバージョンを、ユーザが提供したパスワードの、ハッシュ化されたバージョンまたは別の方法で隠したバージョンと比較する。プロセス３３２において、一致すると判定されると、暗号化鍵に対するアクセスが可能となる。プロセス３３４では、ホストシステムのユーザによってアクセスされることとなるストレージデバイスから要求されたデータが、暗号化解除される。
【００６４】
一実施形態において、所定のパスワードは、保護されたデータを暗号化解除するためにハードウェア鍵上の暗号化鍵にアクセスできる前に、ユーザによって供給される。例えば、ハードウェア鍵が、ストレージデバイスからデータを読み取るための要求を受け取ると、パスワードを求める要求が、ホストシステム上でユーザに対して生成される。所定のパスワードと一致するパスワードが受け取られると、ハードウェア鍵上の暗号化鍵にアクセスすることができる。一実施形態において、暗号化鍵にアクセスすることは、暗号化鍵を暗号解読するために第二の暗号化鍵にアクセスすることを備える。例えば、正しいパスワードがユーザから受け取られると、暗号化鍵自体を暗号化解除するためにそのパスワードを使用することができる。したがって、暗号化鍵は、ハードウェア鍵上で隠された形式で格納され、追加的なセキュリティを提供する。
【００６５】
一実施形態において、この方法は、要求を受け取ることに応答して、パスワードを提供するようにユーザに促すことと、所定のパスワードと一致するパスワードを受け取ることに応答して、ストレージデバイスに格納された要求データを暗号解読するために暗号化鍵にアクセスすることを含む。例えば、ホストシステムが、スリープモードを終了すると、ユーザがそのホストシステムをさらに使用する前に、正しいパスワードを供給するようにユーザに促すことができる。
【００６６】
ユーザが供給したパスワードは、システムログオンの前にアクセス可能な所定のパスワードと比較される。一実施形態において、所定のパスワードは、アクセスされることとなるストレージデバイス上の所定の位置に格納される。例えば、所定のパスワードは、ブート可能なストレージデバイスのマスタブートレコードに格納することができる。一実施形態において、あるストレージデバイスに対する所定のパスワードは、別のストレージデバイスに格納することができる。例えば、複数のストレージデバイスを有するシステムにおいて、着信側のストレージデバイスに対する所定のパスワードは、マスタストレージデバイスに格納することができる。
【００６７】
一実施形態によると、正しいパスワードは、ストレージデバイス上のデータを暗号化するのに使用される１つまたは複数の暗号化鍵に対するアクセスを可能にする。代替的には、あるパスワードが、オペレーティングシステムへのシステムブートを容易にし、その一方で、ユーザがシステムにログインすると、追加のパスワードにより、異なるパーティション、ファイル、またはフォルダに対するアクセスが可能となる。一実施形態において、正しいパスワードは、要求データを暗号解読するため暗号化鍵に関連付けられる。
【００６８】
代替的には、正しいパスワードは、暗号化鍵のマスクされたバージョン（例えば、ハッシュ化されたバージョン）に関連付けられ、正しいパスワードを、暗号化鍵のマスクされたバージョンをアンマスクするのに使用することができる。一実施形態において、正しいパスワードを使用して、暗号化鍵のマスクされたバージョンをアンマスクするための追加の鍵を識別する。例えば、暗号化鍵にアクセスすることは、暗号化鍵を暗号解読するために第二の暗号化鍵にアクセスすることを備える。
【００６９】
図３Ｃは、一実施形態による、紛失または盗まれたポータブルデバイスを識別するためのプロセスを図示するフローチャート３００Ｃである。
【００７０】
プロセス３３０では、所定のパスワードのハッシュ化されたバージョンを、ユーザが提供したパスワードのハッシュ化されたバージョン（または別の方法で隠したバージョン）と比較する。随意にチャレンジ／レスポンス法を選択することにより、データの非再現性が保証される。不一致であると識別されると、所定のパスワードと提供されたパスワードとの間で生じた不一致の回数が判定される。その回数が所定のしきい値を超えていない場合は、操作３４２において、ユーザに、再びパスワードおよび／またはパスワードヒントの入力を促す。例えば、図８Ｃの例示のスクリーンショット８００Ｃに示すように、無効なキーが入力され、ユーザは、再試行するか終了するためのオプションを有する。
【００７１】
回数が、所定のしきい値を超えていると、プロセス３４４において、システムがネットワークに接続されている場合には、ホストシステムのＩＰアドレスが、ネットワークサーバに報告される。一実施形態において、ＭＡＣアドレス、ユーザ名、ワークグループ名など、ホストシステムの一意な識別子を、ブロードキャストし、ＩＰアドレスに関連付けることもできる。電子デバイスを紛失した個人に、自己のデバイスにアクセスする試行があったかどうかを知らせるために、ホストシステムの識別子およびＩＰアドレスを、ウェブサイトで公表することができる。そのような場合には、公表されるＩＰアドレスは、それらの個人に、紛失したデバイスの所在に関する手がかりを与えることができる。
【００７２】
一実施形態において、ホストシステムが、失敗したログオン試行時にネットワークに接続されていない場合は、失敗した試行のインジケータを保存し、次回システムがネットワークに接続されているときにブロードキャストすることができる。ＩＰアドレスをウェブサイトに報告することに加え、失敗したログオン試行の場合は、ユーザが指定した電子メールアドレスに、通知を送信することができる。この電子メールは、失敗したログオン試行の回数、ログオンを試行するのに使用されたパスワード、システムの状況、現在使用可能な場合にはシステムのＩＰアドレスなどの情報を報告することができる。一実施形態において、アクセスの要求がいずれも失敗すると、電子メール通知を送信することができる。例えば、特定のファイルまたはフォルダに対してアクセスする試行の失敗が発生すると、電子メールを、ユーザが指定した電子メールアドレスに送信することができる。
【００７３】
図４Ａは、一実施形態による、図３Ｂに示すプロセスの例を説明する図であって、ストレージデバイスのセットの１つまたは複数のストレージデバイス、ハードウェア鍵、およびホストシステムの間の、ストレージデバイスのセットのデータアクセスのパスワード権限に関する対話を図示する。
【００７４】
プロセス４０２では、ユーザは、セッションの最初のアクセスを開始し、ホストシステムは、ハードウェア鍵に要求を送信する。ハードウェア鍵は、この要求を、このセッションの最初の要求として識別する。一実施形態によると、セッションは、パワーアップ、タイムアウト、リスタート、または前のセッションを終了するための他のトリガの後に、またはハードウェア鍵がホストシステムに最初に差し込まれるときに始まるように要求される場合がある。プロセス４０４では、ハードウェア鍵は、ハードウェア鍵自体の上の所定の位置から、鍵の暗号化されたバージョンを取り出す。プロセス４０６では、鍵の位置を判定する。
【００７５】
プロセス４０８では、ドライバのロードが、例えばＵＳＢプラグアンドプレイ機能を使用して、ホストシステム上で開始される。プロセス４１０では、ハードウェア鍵は、ユーザにパスワードの入力を促すために、ホストシステムに対する要求を生成する。プロセス４１２では、ユーザに、パスワードの入力を促す。ユーザがパスワードを入力した後、プロセス４１４において、システムは、パスワードが期待値と一致するか否かを判定する。プロセス４０６で取り出される暗号化鍵を、暗号化鍵を隠すための暗号化アルゴリズム（例えば、ＤＥＳ／３ＤＥＳ、ＢｌｏｗＦｉｓｈ、ＡＥＳ、または他の適切な暗号化方法）または他の方法を使用して暗号化することもできる。パスワードが一致する場合は、暗号化鍵はアンロックされ、この鍵は、その後、ＡＥＳまたは他の適切なプロトコルなどの暗号化アルゴリズムを使用してデータを暗号解読するか暗号化するのに使用される。プロセス４２０において、このプロセスは、図４Ｂのプロセスにジャンプする。
【００７６】
一実施形態において、パスワードが一致しない場合は、このプロセスは、プロセス４１０に戻るようにループし、ユーザに再度パスワードの入力を促す。パスワードの照合に失敗した試行が所定回数になると、ホストシステムは、（例えば、タイムアウトまたはシステムリブートによって）セッションを終了させることができる。一実施形態においては、パスワードを記憶するのを助けるため、またはアンロックを無効にできるようにするために、ヒントまたはヒントの質問を、ユーザに提示する。一実施形態においては、マスタ暗号化鍵は、使用可能であり、暗号化されたドライブにアクセスするためにマスタパスワードでアクセスされる。
【００７７】
図４Ｂは、一実施形態による、図３Ｂに示したプロセスの例をさらに説明する図４００Ｂであって、ストレージデバイスセットの１つまたは複数のストレージデバイス、ハードウェア鍵、およびホストシステムの間の、ストレージデバイスのセットに対するデータアクセスに関する対話を図示する。
【００７８】
プロセス４５２では、ホストシステムが、コマンド「Get Data（データ取得）」を発行する。プロセス４５４では、「Get Data」コマンドが、ハードウェア鍵によって受け取られ、識別される。プロセス４５６では、コマンド「Get Data」が、ハードウェア鍵によって解釈される。プロセス４５８では、コマンド「Get Data」が、ハードウェア鍵のストレージコントローラ（例えば、ディスクドライブコントローラ、ＲＡＩＤコントローラなど）に送信される。
【００７９】
プロセス４６０では、ストレージデバイスアレイが、コマンドを受け取り、解釈する。プロセス４６２では、コマンド「Get Data」に応答して、要求データが取り出される。プロセス４６４では、ストレージデバイスアレイの１つまたは複数のストレージデバイスが、要求されたデータを有する応答をホストに送り返す。プロセス４６６では、取り出されたデータは、適切なアルゴリズム（例えば、ＤＥＳ／３ＤＥＳ、Ｂｌｏｗｆｉｓｈ、ＡＥＳなどの暗号化アルゴリズム）を用いた暗号化解除を通じて、暗号解読され、取り出されたデータは、ストレージコントローラに送信される。取り出されたデータは、ハードウェア鍵による暗号化解除の前または後にストレージコントローラに送信することができる。使用されるアルゴリズムに応じて、暗号化鍵を、取り出されたデータの暗号解読に使用することができる。
【００８０】
いくつかの場合においては、暗号化鍵を、シミュレートされたコマンド（図示せず）を送信することによってホストコンピュータから伝送することができ、そのシミュレートされたコマンドは、ハードディスクドライブによって解釈不可能なパラメータを含むが、ハードウェア鍵によってインターセプトされ、それに従って例えば鍵の受け取り用のコマンドとして解釈される。一実施形態において、暗号化鍵は、暗号化された形式で伝送される。
【００８１】
プロセス４６８では、ストレージデバイスから取り出された要求データの暗号化解除されたバージョンが、ホストシステムに送信される。プロセス４７０では、ストレージデバイスのセットの１つまたは複数のストレージデバイスからの要求データの暗号化解除されたバージョンを、取得する。一実施形態において、自動バックアップソフトウェアは、暗号化機能（例えば、ＡＥＳ）を通じて、ストレージデバイスのセットの１つまたは複数のストレージデバイス上のデータのバックアップを作成することができる。
【００８２】
例えば、ストレージデバイスのストレージ位置において暗号化されていないデータは、暗号化されることとなる第二のストレージ位置に一時的に移行し、その後、元のストレージ位置に戻すことができる。一実施形態において、第二のストレージ位置は、同一ストレージデバイス上の異なるストレージ位置である。一実施形態において、第二のストレージ位置は、同一ストレージアレイの異なるストレージデバイス、または異なるストレージアレイである。一実施形態において、暗号化されていないデータを消去することにより、元の（例えば、暗号化されていない）データを複数のランダムな上書きで除去して、ストレージデバイス上のデータを暗号化することができる。
【００８３】
図５は、一実施形態による、処理ユニット５０２、コントローラ５０４、およびストレージコントローラ５０８を有するハードウェア鍵１１０の概略図である。
【００８４】
一実施形態において、ハードウェア鍵は、ＵＳＢアダプタであり、コントローラ５０４は、ＵＳＢコントローラである。処理ユニット５０２は、暗号化モジュール、オペレーティングシステム、および／またはストレージデバイスドライバなどのさまざまなソフトウェアインスタンスを含むことができる。ストレージコントローラ５０８は、ＩＤＥ、Ｓｅｒｉａｌ  ＡＴＡ、ｅ−ＳＡＴＡ、ＳＣＳＩコントローラなどのハードディスクコントローラとすることができる。
【００８５】
例えば、ストレージコントローラは、ハードウェア鍵１１０をストレージデバイスの外部アレイに論理的に結合することを可能にする。一実施形態において、ストレージデバイスの外部アレイは、ＲＡＩＤ構成内である。ストレージデバイスは、ＩＤＥ、ＳＡＴＡ、ｅ−ＳＡＴＡ、およびＳＣＳＩインターフェースの１つまたは複数を介して、ハードウェア鍵１１０に結合させることができる。一実施形態において、ハードウェア鍵１１０は、異なるインターフェースの組合せを有する任意の数のストレージコントローラを含み、異なるインターフェースを用いて複数のストレージデバイスに論理的に結合させることができる。
【００８６】
一実施形態において、ストレージデバイスの外部アレイは、外部電源によって電力を与えられる。ストレージデバイスの外部アレイは、超低電力デバイスとすることができ、したがって、ホストシステムに対するハードウェア鍵の接続を通じて電力を引き出すことができる。
【００８７】
暗号化モジュールは、ストレージデバイスのセットの１つまたは複数のストレージデバイス上に格納されたデータを保護し、暗号解読するための１つまたは複数の暗号化アルゴリズムを実行するコードを含む。一実施形態において、異なる暗号化アルゴリズムは、異なるストレージデバイスに使用することができ、コントローラは、関連ある暗号化アルゴリズムを、その暗号化アルゴリズムで暗号化されたストレージデバイスのセットの１つまたは複数のストレージデバイスに関連付けることができる。
【００８８】
一実施形態において、ハードウェア鍵１１０は、１つまたは複数のストレージデバイスを保護するために１つまたは複数の暗号化アルゴリズムで使用された、１つまたは複数の暗号化鍵を格納するメモリ（例えば、不揮発性、フラッシュ、または離散ロジックなど）を備える。代替的には、暗号化鍵は、ハードウェア鍵１１０の暗号化／暗号化解除のプロセス中に、代替デバイスによって、ハードウェア鍵１１０に供給される。例えば、１つまたは複数の暗号化鍵は、権限が与えられるとハードウェア鍵１１０に送信することができる。一実施形態によると、権限は、多数の形式の１つをとることができ、例えば、ホストシステムのユーザアイデンティティを識別するパスワード権限とすることができる。
【００８９】
図６は、一実施形態による、パスワードを作成またはパスワードを変更するためのインターフェースを示すスクリーンショット６００を図示する。
【００９０】
スクリーンショット６００は、パスワード保守に使用されることとなるセキュリティアクセス画面を示す。一実施形態において、セキュリティアクセス画面は、ストレージデバイスへのアクセス、オペレーティングシステムへのログオン、またはストレージデバイス上のデータへのアクセスの前のパスワード認証を無効にするチェックボックス「Disable Password Security（パスワードセキュリティを無効にする）」を含む。例えば、「Disable Password Security」ボックスが選択されると、ログオンの前またはホストシステムのセットアップの前に、パスワードフィールドおよびヒントフィールドに記入する必要がない。この場合、ストレージデバイスに格納したデータは、暗号化されないものとすることができる。あるいは、ストレージデバイスに格納したデータは、暗号化することができるが、暗号化鍵は、データアクセスの前にパスワードを供給せずに暗号化解除に使用可能である。
【００９１】
一実施形態において、新しいパスワードは、ストレージデバイスを保護するために、「New Password（新規パスワード）」フィールドおよび「Confirm New Password（新規パスワードの確認）」フィールドに所望のパスワードを入力することによって、セットアップされる。「Current Password（現在のパスワード）」フィールドは、この場合は空白のままにすることができる。一実施形態において、既存のパスワードは、「Current Password」フィールドに正しいパスワードを供給し、所望のパスワードを「New Password」フィールドおよび「Confirm New Password」フィールドに入力することを介して、変更される。
【００９２】
「Hint（ヒント）」フィールドは、ユーザだけが答えを知っている質問を入力するために使用することができる。この質問は、ユーザがパスワードを忘れたとき、例えば、間違ったパスワードが所定回数入力された後に、尋ねることができる。「Hint」フィールドは、ユーザにパスワードを思い出させるために、「the password is related to Aunt Dolly‘s birthday（パスワードはドリーおばさんの誕生日に関係する）」などのパスワードヒントを入力するためにも使用することができる。一実施形態において、ユーザは、自分がパスワードを忘れたことを知らせ、所定回数だけ間違ったパスワードを提供する前にパスワードヒントを見ることを要求することができる。
【００９３】
図７は、一実施形態による、ストレージデバイスを保護するインターフェースを示すスクリーンショット７００を図示する。
【００９４】
スクリーンショット７００は、ストレージデバイス上のデータのデータ暗号化を通じてストレージデバイスを保護する例を示す。一実施形態において、ソースドライブ（例えば、データ暗号化を介して保護されることとなるストレージ）は、サブウィンドウ７０２の下にリストされるストレージデバイスのリストから選択され、宛先ドライブは、サブウィンドウ７０４の下にリストされるストレージデバイスのリストから選択される。例えば、ソースドライブは、保護されることとなるデータを有するストレージデバイスである。ソースドライブ上のデータは、暗号化することができ、格納されることとなる宛先ドライブに移行することができる。一実施形態において、ソースドライブ上のデータは、暗号化されてソースドライブから消去されることとなる宛先ドライブに、移行することができる。その後、暗号化されたデータは、格納されることとなるソースドライブに戻すことができる。
【００９５】
一実施形態において、１つのストレージデバイス（例えば、ソースドライブ）が、プロセスに使用される。例えば、ソースドライブ上の暗号化されることとなるデータは、暗号化されることとなる別のストレージ位置に移行される。一実施形態によると、保護されていないデータは、元のストレージ位置で消去され、他のストレージ位置に格納された暗号化されたデータは、格納されることとなる元のストレージ位置に戻すことができる。
【００９６】
図８Ａは、一実施形態による、保護されたストレージデバイスにアクセスするためのログイン画面を示すインターフェースを示すスクリーンショット８００Ａを図示する。
【００９７】
スクリーンショット８００Ａは、ストレージデバイス上のデータにアクセスするための認証に関する２段階のセキュリティアクセスの例を示す。一実施形態において、ストレージデバイスに対するアクセスが許可される前に、所定のパスワードが、「Password（パスワード）」フィールドに入力されることとなる。一実施形態において、ストレージデバイスに対するアクセスが許可される前に、ビットマップウィンドウに示されるテキストが、正しいパスワードに加えて、「Bitmap Window（ビットマップウィンドウ）」フィールドに入力されることとなる。「Password」フィールドに記入されると、「Login（ログイン）」アイコンをクリックして、アクセスを確認することができ、成功が確認されると、アクセスが許可される。
【００９８】
図８Ｂは、一実施形態による、パスワードプロンプトを有するログイン画面を示すインターフェースを示すスクリーンショット８００Ｂを図示する。
【００９９】
一実施形態によると、所定のパスワードが、フィールド「Please Enter Password（パスワードを入力してください）」に入力され、システムにアクセスする（例えば、１つまたは複数のオペレーティングシステムにログオンし、かつ／あるいは１つまたは複数のストレージデバイスにアクセスする）ことになる。
【０１００】
図８Ｃは、一実施形態による、図８Ｂで入力された無効なパスワードに起因する不成功のログオンを示すスクリーンショット８００Ｃを図示する。
【０１０１】
不成功のログオンの際に、一実施形態によると、ユーザは、終了するか再度試みるためのオプションを有する。ユーザが無効なパスワードを提供できる所定の回数を設けることができる。所定の回数に達すると、システムは、終了するか、または図９の実施形態に示すように、ユーザにパスワードヒントを提供することができる。
【０１０２】
図９は、一実施形態による、パスワードヒントを表示する画面を示すインターフェースを示すスクリーンショットを図示する。
【０１０３】
スクリーンショット９００は、ユーザにパスワードヒントを示すプロンプトの例を図示する。このパスワードヒントのプロンプトは、ユーザがパスワードを忘れた場合に、ユーザが要求することができる。一実施形態においては、パスワードヒントのプロンプトは、所定の回数の間違ったパスワードの提供が発生すると、トリガされる。例えば、ユーザが、間違ったパスワードの３つの値を提供すると、システムは、パスワードのセットアップ中に指定されたパスワードヒントを供給することができる。
【０１０４】
図１０は、本明細書で述べる任意の１つまたは複数の方法論をマシンに実施させる命令のセットを実行できる、コンピュータシステム１０００の例示的な形式でのマシンの図表示を示す。代替実施形態では、このマシンは、スタンドアローンのデバイスとして動作し、または他のマシンと接続する（例えば、ネットワーク化する）ことができる。ネットワーク化された配置では、マシンは、クライアント−サーバネットワーク環境においてサーバまたはクライアントマシンの容量で動作することができ、または、ピアツーピア（または分散）ネットワーク環境においてピアマシンとして動作することができる。マシンは、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、セットトップボックス（ＳＴＢ）、携帯情報端末（ＰＤＡ）、携帯電話、ウェブアプライアンス、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、またはそのマシンによって行われるアクションを特定する命令のセット（シーケンシャルまたは他の形の）を実行することができる任意のマシンとすることができる。
【０１０５】
マシン読取可能媒体１０２２は、例示的実施形態に、単一の媒体として示されているが、用語「マシン読取可能媒体」は、命令の１つまたは複数のセットを格納する単一の媒体または複数の媒体（例えば、集中データベースまたは分散データベース、および／または関連するキャッシュおよびサーバ）を含むと解釈されなければならない。用語「マシン読取可能媒体」は、マシンによる実行、または本発明の任意の１つまたは複数の方法論をマシンに実施させるための命令のセットを格納し、エンコードし、または担持することができる任意の媒体を含むものとしても解釈されなければならない。一般に、本開示の実施形態を実装するために実行されるルーチンは、オペレーティングシステムまたは特定のアプリケーションの一部、コンポーネント、プログラム、オブジェクト、モジュール、または「コンピュータプログラム」呼ばれる命令のシーケンスとして実装することができる。コンピュータプログラムは、典型的には、さまざまな時にコンピュータ内のさまざまなメモリおよびストレージデバイス内に１つまたは複数の命令セットを含み、この１つまたは複数の命令セットは、コンピュータ内の１つまたは複数のプロセッサによって読み取られ、実行されると、そのコンピュータに、動作を実施させ、本開示のさまざまな態様を伴う要素を実行させる。
【０１０６】
さらに、実施形態を、十分に機能するコンピュータおよびコンピュータシステムの文脈で説明してきたが、当業者は、さまざまな実施形態をさまざまな形式のプログラム製品として流通させることができること、および、本開示が、実際に流通をもたらすために使用されるマシンまたはコンピュータ読取可能媒体の特定のタイプに関わりなく同等に適用されることを認識するであろう。コンピュータ読取可能媒体の例は、揮発性および不揮発性のメモリデバイス、フロッピおよび他のリムーバブルディスク、ハードディスクドライブ、光ディスク（例えば、CD ROM、DVDなど）などの記録可能型媒体、および、デジタルおよびアナログ通信リンクなどの伝送型媒体を含むが、これらに限定はされない。
【０１０７】
実施形態を、特定の例示的実施形態に関して説明してきたが、これらの実施形態に対してさまざまな修正および変更を行うことができることは、明らかである。したがって、本明細書および図面は、制限的な意味ではなく例示的な意味で考えられなければならない。前述の明細書は、特定の例示的実施形態に関する説明を提供する。これに対して、添付の特許請求の範囲に示されたより広義の趣旨および範囲から逸脱せずに、さまざまな変更を行うことができることは、明らかである。したがって、本明細書および図面は、制限的な意味ではなく例示的な意味で考えられなければならない。
【図面の簡単な説明】
【０１０８】
【図１】一実施形態にかかる、ハードウェア鍵を通じてホストシステムと通信するストレージデバイスのセットの例を示す図である。
【図２】一実施形態にかかる、ホストシステムのポートを通じてホストシステムに論理接続されたハードウェア鍵を介して、ストレージデバイスのセットの１つまたは複数のストレージデバイスと通信するホストシステムを示す例示的な図である。
【図３Ａ】一実施形態にかかる、ストレージデバイスのセットの１つまたは複数のストレージデバイスのデータ暗号化およびデータアクセスのためのパスワードをセットアップするプロセスを示すフローチャートである。
【図３Ｂ】一実施形態にかかる、ストレージデバイスのセットの１つまたは複数のストレージデバイスのデータ暗号化およびデータアクセスの権限を与えるプロセスを示すフローチャートである。
【図３Ｃ】一実施形態にかかる、紛失または盗まれたポータブルデバイスを識別するプロセスを示すフローチャートである。
【図４Ａ】図３Ｂに示されたプロセスの例を説明する図である。
【図４Ｂ】図３Ｂに示されたプロセスの例をさらに説明する図である。
【図５】一実施形態にかかる、ハードウェア鍵を示す図である。
【図６】一実施形態にかかる、第１のスクリーンショットを示す図である。
【図７】一実施形態にかかる、第２のスクリーンショットを示す図である。
【図８Ａ】一実施形態にかかる、第３のスクリーンショットを示す図である。
【図８Ｂ】一実施形態にかかる、第４のスクリーンショットを示す図である。
【図８Ｃ】一実施形態にかかる、第５のスクリーンショットを示す図である。
【図９】一実施形態にかかる、第６のスクリーンショットを示す図である。
【図１０】一実施形態にかかる、マシン読取可能媒体を示すブロック図である。
【図１】
2008219871.tif 000003
【図２】
2008219871.tif 000004
【図３Ａ】
2008219871.tif 000005
【図３Ｂ】
2008219871.tif 000006
【図３Ｃ】
2008219871.tif 000007
【図４Ａ】
2008219871.tif 000008
【図４Ｂ】
2008219871.tif 000009
【図５】
2008219871.tif 000010
【図６】
2008219871.tif 000011
【図７】
2008219871.tif 000012
【図８Ａ】
2008219871.tif 000013
【図８Ｂ】
2008219871.tif 000014
【図８Ｃ】
2008219871.tif 000015
【図９】
2008219871.tif 000016
【図１０】
2008219871.tif 000017
【外国語明細書】
2008219871000001.pdf