説明

記憶システム及び記憶デバイス

【課題】 アプリケーションに透明に暗号化を実行可能とするように暗号化対応テープ・ドライブにキーを供給する機能を提供する。
【解決手段】 暗号化対応テープ・ドライブおよびこの暗号化対応テープ・ドライブのための暗号化可能テープ・ドライブ・デバイス・ドライバを備えたテープ・システムが提供される。暗号化可能テープ・ドライブ・デバイス・ドライバは、暗号化対応テープ・ドライブをキー・マネージャに接続するプロキシとして機能する。キー・マネージャは、テープ・ドライブにキーを供給する。暗号化対応デバイス・ドライバがコマンドをドライブに送信させた場合、テープ・ドライブは、外部キー・マネージャ(EKM)等のキー・マネージャに向けられたメッセージによって応答するように構成されている。暗号化対応デバイス・ドライバは、これがEKMに向けられたメッセージであることを認識し、そのメッセージをEKMに転送する(例えばインターネット・プロトコル(IP)接続を介して)。次いで、EKMは、新しいキー(テープ始端(BOT)から書き込まれる新しいカートリッジ用)、または既存のキー(読み取る必要があるカートリッジ用)を発行することによって、キー要求に応答する。デバイス・ドライバは、全てのEKM応答を、暗号化対応テープ・ドライブおよび暗号化対応テープ・ドライブがそのキーを取得するEKMに接続する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にテープ記憶システムに関し、更に具体的には、暗号化対応テープ・ドライブとキー・マネージャとの間のプロキシとして機能するデバイス・ドライバの使用に関する。
【背景技術】
【0002】
ネットワーク化コンピュータ・システムにおいて大量の記憶領域を提供するために、データ記憶システム内で高密度の着脱可能媒体記憶ライブラリを用いることが知られている。通常、かかるデータ記憶システムは、バックアップまたは他の二次記憶の目的で用いられるが、データ記憶システムは、順次データ・アクセス等を促進する環境において一次記憶として用いることも可能である。多くの場合、データは、磁気テープまたは光ディスク等の媒体カートリッジに記憶される。既知の媒体カートリッジは大量のデータを記憶することができる。1つの記憶システムには、複数の古い記憶デバイス(すなわち、より新しいデータ記憶装置と共に動作するように特に設計されていないデバイス)が含まれる場合がある。
【0003】
暗号化対応ドライブが、アプリケーションから帯域内で(例えばファイバ・チャネルを介して)または帯域外で(例えばライブラリとのインタフェース(RS−422インタフェース等)を介して)キーを取得することが知られている。これらのキー取得モードによって、アプリケーションが管理するキーおよびライブラリが管理するキーがそれぞれ可能となる。
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、暗号化対応テープ・ドライブに伴う1つの問題が、古いアプリケーション(すなわちキーを供給するように変更されていないアプリケーション)からのデータが暗号化対応テープ・ドライブに提供された場合に関連して発生する。暗号化対応テープ・ドライバに伴う更に別の問題が、古い自動化テープ・ライブラリ(すなわち、アプリケーションに透明にドライブからキーを取得するように変更されていないテープ・ライブラリ)内に暗号化対応テープ・ドライブが配置されている場合に関連して発生する。これらの状況のいずれかまたは双方において、暗号化対応テープ・ドライブは、暗号化キーを取得することができない場合がある。また、この問題は、他の環境においても存在し得る。例えば、暗号化対応テープ・ドライブがブリッジ・ボックスもしくはラックに搭載されている場合(従って自動化でない場合)、または暗号化対応テープ・ドライブが劣悪な環境にある場合(テープ・ドライブの製造業者以外の製造業者のサイロ等)である。劣悪な環境では、暗号化対応テープ・ドライブに対してキーを渡すことを可能とするように意図されていない場合がある。
【0005】
これらの各状況において、データ記憶システム内で実行するいかなるアプリケーションにも透明に暗号化を実行可能とするように、暗号化対応テープ・ドライブにキーを供給する機能を提供することが望ましい。
【課題を解決するための手段】
【0006】
本発明に従って、暗号化対応テープ・ドライブおよびこの暗号化対応テープ・ドライブのための暗号化可能テープ・ドライブ・デバイス・ドライバを備えたテープ・システムが提供される。暗号化可能テープ・ドライブ・デバイス・ドライバは、暗号化対応テープ・ドライブをキー・マネージャに接続するプロキシとして機能して、例えばテープ・ドライブに対するキー・マネージャによるキーの供給等の暗号化動作を促進する。従って、暗号化可能テープ・ドライブ・デバイス・ドライバは、ホストが暗号化をサポートまたは実行することができるか否かには無関係に、暗号化を促進する。本発明の一態様において、暗号化対応デバイス・ドライバがコマンド(読み取りまたは書き込みコマンド)をドライブに送信させた場合、テープ・ドライブは、外部キー・マネージャ(EKM)等のキー・マネージャに向けられたメッセージによって応答するように構成されている。暗号化対応デバイス・ドライバは、これがEKMに向けられたメッセージであることを認識し、そのメッセージをEKMに転送する(例えばインターネット・プロトコル(IP)接続を介して)。次いで、EKMは、新しいキー(テープ始端(BOT)から書き込まれる新しいカートリッジ用)、または既存のキー(読み取る必要があるカートリッジ用)を発行することによって、キー要求に応答する。デバイス・ドライバは、全てのEKM応答を、暗号化対応テープ・ドライブおよび暗号化対応テープ・ドライブがそのキーを取得するEKMに接続する。
【0007】
このように、デバイス・ドライバは、暗号化対応テープ・ドライブおよび暗号化対応テープ・ドライブがそのキーを取得するEKMとの間の通信経路を提供する。いったんテープ・ドライブが全てのキーを取得すると、ドライバ・プロキシはコマンド完了メッセージをデバイス・ドライバに発行することができ、次いでデバイス・ドライバは、ホスト・アプリケーション・コマンドの処理を継続し、この情報をホスト・アプリケーションに戻す。従って、アプリケーション・データは、ドライブとアプリケーションとの間を流れはじめる。(書き込みの場合はテープ・ドライブへ、読み取りの場合はテープ・ドライバから)。デバイス・ドライバは、正常なコマンドに対して、アプリケーションとデバイス・ドライバとの間の通信経路として機能し続ける。また、デバイス・ドライバは、EKMに向けられた拡張コマンドを検出し、この通信経路を別個に提供する。このため、テープ・システムは、帯域内通信経路(すなわちデバイス・ドライバとテープ・ドライブとの間の通信経路)および帯域外通信経路(すなわちデバイス・ドライバとEKMとの間の通信経路)を含む。
【0008】
従って、一実施形態において、本発明は、ホストと、このホストに結合された記憶デバイスと、ホスト上で実行するデバイス・ドライバと、を含む記憶システムに関する。記憶デバイスは、記憶媒体と相互作用(interact)して記憶媒体から情報を記憶すると共に検索し、記憶媒体に記憶されたデータの暗号化および復号化を可能とする暗号化モジュールを含む。デバイス・ドライバは、記憶デバイスからの暗号化関連情報をチェックする。暗号化関連情報は、ホストによって発行されるコマンドに応答して発生される。暗号化関連情報が存在する場合、ホストが暗号化可能であるか否かには無関係に、デバイス・ドライバは暗号化を促進する。
【0009】
別の実施形態において、本発明は、記憶媒体と相互作用してこの記憶媒体から情報を記憶すると共に検索するための記憶デバイスに関する。この記憶デバイスは、暗号化モジュールと、この暗号化モジュールに結合されたコントローラと、を含む。暗号化モジュールは、記憶媒体に記憶されたデータの暗号化および復号化を可能とする。コントローラは、暗号化モジュールと相互作用して、記憶媒体に対する情報の記憶および記憶媒体からの情報の検索を可能とする。記憶デバイスは、デバイス・ドライバから情報を受信すると共にデバイス・ドライバに情報を送信し、デバイス・ドライバは、記憶デバイスからの暗号化関連情報をチェックする。暗号化関連情報が存在する場合、暗号化関連情報は、ホストによって発行されたコマンドに応答して記憶デバイスによって発生される。デバイス・ドライバは、ホストが暗号化可能であるか否かには無関係に、暗号化を促進する。
【0010】
別の実施形態において、本発明は、ホスト上で実行し、記憶デバイスと通信を行うためのデバイス・ドライバに関する。このデバイス・ドライバは、ホストによって記憶デバイスに対して発行されたコマンドを傍受するためのコマンド開始部分と、暗号化動作が実行を完了した後にコマンドを実行するためのコマンド実行部分と、記憶デバイスからの暗号化関連情報をチェックするための暗号化部分と、を含む。暗号化関連情報は、ホストによって発行されるコマンドに応答して記憶デバイスによって発生される。暗号化関連情報が存在する場合、ホストが暗号化可能であるか否かには無関係に、デバイス・ドライバは暗号化を促進する。
【0011】
別の実施形態において、本発明は、暗号化可能記憶デバイスとホストとの間で暗号化を促進するための方法に関する。この方法は、記憶デバイスに対してコマンドを発行するステップと、コマンドに応答して記憶デバイスよって発生した暗号化関連情報を傍受するステップと、暗号化関連情報が、コマンドが暗号化可能記憶デバイスによって実行可能となる前に暗号化動作を実行する必要があることを示すか否かを判定するステップと、暗号化動作が必要であることが暗号化関連情報によって示される場合、ホストが暗号化可能であるか否かには無関係に暗号化動作を実行するステップと、暗号化動作が実行を完了した後にコマンドを実行するステップと、を含む。
【0012】
別の実施形態において、本発明は記憶システムに関する。この記憶システムは、ホストと、このホストに結合された記憶デバイスと、記憶デバイスに結合されたモジュールと、ホスト上で実行するデバイス・ドライバと、を含む。記憶デバイスは、記憶媒体と相互作用してこの記憶媒体から情報を記憶すると共に検索する。デバイス・ドライバは、ホストによって発行されるコマンドに応答して特別ステータス情報が発生される記憶デバイスから特別ステータス情報をチェックする。特別ステータス情報が存在する場合、ホストがモジュールと通信可能であるか否かには無関係に、デバイス・ドライバは通信を促進する。
【0013】
好ましくは、キーはプッシュ方法によって記憶デバイスに供給される。更に好ましくは、キーはプル方法によって記憶デバイスに供給される。更に好ましくは、記憶デバイスはテープ・ドライブを含む。
【0014】
好ましくは、モジュールは、デバイス・ドライバを介して記憶デバイスにキーを供給するキー・マネージャを含む。更に好ましくは、記憶システムは、記憶デバイスとキー・マネージャとの間の通信経路を確立して記憶デバイスに対するキーの供給を促進するためのプロキシを更に含む。
【0015】
更に好ましくは、コマンドは、ホスト上で実行しているアプリケーションによって発行される。更に好ましくは、アプリケーションは、記憶デバイスにデータを転送すると共に記憶デバイスからデータを転送するバックアップ・プログラムを含む。
【0016】
本発明の上述および更に別の目的、機構、および利点は、以下の詳細な記述から明らかとなろう。
【0017】
新規であると考えられる本発明の特徴は、特許請求の範囲において説明する。しかしながら、本発明自体は、その使用の好適な形態、更に別の目的および利点と共に、添付図面と関連付けて読まれる以下の例示的な実施形態の詳細な説明を参照することで、最も良く理解されよう。
【発明を実施するための最良の形態】
【0018】
以下の説明において、本発明のいくつかの実施形態を示す添付図面を参照する。他の実施形態も利用可能であり、本発明の範囲から逸脱することなく構造および動作の変更を行うことが可能であることは理解されよう。
【0019】
図1を参照すると、本発明の態様が実施されるテープ記憶システム100のアーキテクチャが図示されている。テープ記憶システム100は、ホスト110、テープ・ドライブ112、およびテープ・カートリッジ114を含む。また、テープ記憶システム100は、外部キー・マネージャ(EKM)116も含む。
【0020】
ホスト110は、デバイス・ドライバ120およびプロキシ122を含む。また、ホストは、アプリケーション124も含む。テープ・ドライブは、コントローラ130および暗号化モジュール132を含む。テープ・カートリッジ114は、不揮発性カートリッジ・メモリ140および大容量磁気テープ142を含む。
【0021】
アプリケーション124は、バックアップ・プログラムを含むことができる。このプログラムは、テープ・ドライブ112へデータを転送すると共にテープ・ドライブ112からデータを転送して、順次テープ142にデータを書き込む(テープ142からデータを読み出す)。アプリケーション124は、SCSIテープ・コマンドを用いて、I/O要求をテープ・ドライブ112に伝達することができる。あるいは、アプリケーション124は、他のデータ・アクセス・コマンド・プロトコルを用いることができる。データを検索するため、アプリケーション124は、テープ142を順次またはランダムに読み出すことができる。
【0022】
カートリッジ・メモリ140は、磁気テープ142上のデータのフォーマットよびレイアウトに関する情報を維持する。また、カートリッジ・メモリ140は、磁気テープ142上に記憶されたデータを暗号化および復号化するための暗号化情報を維持することができる。
【0023】
テープ・ドライブ112は、磁気テープ142にデータを転送し磁気テープ142からデータを転送することができる読み取り/書き込みヘッドを含む。テープ・ドライブ・コントローラ130は、ホスト・システム110から入力/出力(I/O)要求を受信し、テープ上でファイルがありそうな位置を推定するテープ・ドライブ機構およびアルゴリズムを用いてテープを巻き戻して磁気テープ142上の特定の位置にテープ・ヘッドを位置決めすることによって、受信したI/O要求を実行することができる。テープ・ドライブ112は、ホスト・システム110内に封入するか、スタンド・アロンのユニットとするか、またはテープ・ライブラリ内に配することができる。テープ・ドライブ112は、直接インタフェース(SCSI、ファイバ・チャネル等)を介してホストに接続することができ、または、ネットワーク(ローカル・エリア・ネットワーク(LAN)、記憶エリア・ネットワーク(SAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット等)を介して接続することができる。
【0024】
ホスト110またはホスト・アプリケーション124が暗号化対応でないとしても、テープ・ドライブが暗号化対応である場合には、デバイス・ドライバ120によって、テープ・システム100は、テープ・カートリッジ142上のデータを暗号化し復号化することができる。従って、デバイス・ドライバ120は、暗号化可能テープ・ドライブ・デバイス・ドライバである。暗号化可能テープ・ドライブ・デバイス・ドライバは、プロキシ122プロキシを介してプロキシ機能を提供する。プロキシは、暗号化対応テープ・ドライブ112をキー・マネージャ116に接続する。マネージャ116はテープ・ドライブ112にキーを供給する。従って、デバイス・ドライバ120は、暗号化対応テープ・ドライブ112と、暗号化対応テープ・ドライブ112がキーを取得することができるEKM116との間の通信経路を提供する。デバイス・ドライバ120は、正常な(すなわち非暗号化関連の)コマンドに対して、アプリケーションとデバイス・ドライバとの間の通信経路として機能する。また、デバイス・ドライバ120は、プロキシ122の制御のもとで、テープ・ドライブ112に対する通信経路として機能することができる。また、デバイス・ドライバ120は、EKMに向けられた拡張コマンドを検出し、この通信経路を別個に提供する。このため、暗号化対応デバイス・ドライバ120によって、テープ・システム100は、帯域内の通信経路(すなわちデバイス・ドライバとテープ・ドライブとの間の通信経路)、および、帯域外の通信路(すなわちデバイス・ドライバとEKMとの間の通信経路)を有することができる。
【0025】
図2は、テープ・ドライブ112およびテープ・カートリッジ114を例示する概略ブロック図である。テープ・ドライブ112は、インタフェース220、暗号化モジュール132(これは例えば特定用途向け集積回路(ASIC)とすることができる)、読み取り/書き込みシステム230、および読み取り/書き込みヘッド240を含む。また、テープ・ドライブ112は、コントローラ130および暗号化モジュール132に結合されたファームウェア250を含む。
【0026】
図示した例において、ホスト110は、I/O要求をテープ・ドライブ112に伝達するためのSCSI(Small Computer System Interface)テープ・コマンド、または当技術分野において既知の他のいずれかのアクセス・コマンド・プロトコルを用いる等によって、データをテープ・ドライブ112に転送して、テープ・カートリッジ114に順次書き込む。
【0027】
テープ・ドライブ112は、インタフェース200を用いてホスト110と通信を行う。読み取り/書き込みシステム230は、書き換え可能テープ媒体130から情報を読み取ると共に書き換え可能テープ媒体130に情報を書き込むための読み取り/書き込みヘッド240と相互作用し、これを制御する。読み取り/書き込みシステム230は、所望の速度でヘッド240を横切るように磁気テープ媒体130を移動させることによって、磁気テープ媒体130に対する読み取り書き込みヘッド240の動きを制御し、更に、磁気テープの移動を停止させ、開始させ、移動の方向を逆にする。
【0028】
テープ・ドライブ112における制御システム(またはコントローラ)130は、インタフェース220、暗号化モジュール132、および読み取り/書き込みシステム230と通信を行う。また、カートリッジ処理システム114を動作させるためのコマンドを受信し情報を交換するため、コントローラ130は、インタフェース220を制御して、1つ以上のポート(図示せず)を介して通信を行う。暗号化モジュール132は、安全にデータを暗号化しテープ・カートリッジ114に記憶すること、および、テープ・カートリッジ114上に記憶されたデータを安全に検索し復号化することを可能とする。動作において、暗号化モジュール132は、いずれかの所望のキー長(例えば128または256ビットのデータ・キー長)を有するデータ・キーを用いて、実際のデータ暗号化および復号化(AES(Advanced Encryption Standard)暗号化アルゴリズムを用いることによって等)を実行し、更に、データ圧縮および復元ならびにデータ・バッファリング等の他の符号化機能を実行することができる。また、暗号化モジュール132は、データを暗号化および復号化する目的で、暗号化カプセル化データ・キー(EEDK:encryption encapsulated data keys)を組み立て、有効化し、分配し、記憶し、検索することによって、および、EEDKに関連付けたデータ・キーをEKM116と安全に交換する(SEDK)ことによって、データ暗号化/復号化を制御する。暗号化モジュール132は、ハードウェアまたはソフトウェアあるいはその両方のいずれかの所望の組み合わせによって実施することができる。例えば、暗号化モジュール132は、ファームウェア250およびコントローラ130によって制御されてこれらと相互作用するASICまたはFPGA回路によって、実施することができる。
【0029】
記載したように、テープ・システム100は様々な機能を実行する。それらの機能には、データ・キー(AES暗号化キー等)を用いてカートリッジ114に記憶されるデータを暗号化すること、公開鍵暗号化法技法を用いてデータ・キーを異なるキーによりラップして(wrap)1つ以上の暗号化データ・キーを形成すること、テープ・カートリッジ媒体130に対して暗号化キーおよび暗号化データ・キー(複数のキー)の書き込みおよび読み取りを行うこと、暗号化データ・キーをアンラップする(unwrap)ことによって取得されるデータ・キーを用いて記憶した暗号化データを復号化することが含まれるが、これらに限定されるわけではない。このように、テープ・システム100は分散記憶領域を提供し、これによって、異なるユーザは、各ユーザの公開鍵を用いてデータ・キーをラップして別個のEEDKを発生させることにより、単一のテープ・カートリッジ114上の暗号化データにアクセスすることができる。
【0030】
図3は、暗号化したアクセスを実行する場合のテープ・システム100の動作のフロー・チャートである。更に具体的には、テープ・システムは、コマンド開始動作310、テープ・ドライブ112とEKM116との間の暗号化キー管理動作312、およびコマンド実行動作314を実行する。コマンド開始動作310は、デバイス・ドライバ120に提供されるコマンドを発生する。暗号化キー管理動作312は、ステップ320においてテープ・カートリッジ114上において暗号化が存在する(または望まれる)か否かを判定すること、ステップ322において暗号化関連機能を実行すること、および、ステップ324において暗号化関連機能が完了しているか否かを判定することを含む。暗号化関連機能が完了している場合、コマンド実行動作314において、コマンド開始動作310で発生させたコマンドを実行する。
【0031】
更に具体的には、コマンド開始動作310の間、アプリケーション124がテープ・ドライブ112にアクセスを試みた場合にアクセスが開始する。アプリケーション124は、デバイス・ドライバ120を介してテープ・ドライブ112にアクセスする。暗号化対応デバイス・ドライバ120は、コマンド(例えば読み取りまたは書き込みコマンド)をテープ・ドライブ112に送信させる。
【0032】
暗号化動作312の間、テープ・ドライブ112は、ステップ314においてEKM116等のキー・マネージャに向けられたメッセージによって応答する。ステップ320において、暗号化対応デバイス・ドライバ120は、これがEKM116に向けられたメッセージであることを認識する。ステップ322において、デバイス・ドライバ120は、そのメッセージをEKM116に転送する(例えばインターネット・プロトコル(IP)接続を介して)。次いで、EKM116は、新しいキー(テープ始端(BOT)から書き込まれる新しいカートリッジ用)、または既存のキー(読み取る必要があるカートリッジ用)を発行することによって、キー要求に応答する。ステップ322の間、デバイス・ドライバ120は、テープ・ドライブ112とEKM116との間のインタラクションを継続し、ステップ324において、暗号化対応テープ・ドライブ112および暗号化対応テープ・ドライブがそのキーを取得するEKM116に対する全てのEKM応答について判定する。いったんテープ・ドライブが全てのキーを取得すると、プロキシ122は暗号化機能メッセージをデバイス・ドライバ120に発行し、次いでステップ314において、このデバイス・ドライバ120がコマンドを実行する。
【0033】
次に、ステップ314におけるコマンド実行動作の後に、デバイス・ドライバ120は、このコマンド完了情報をホスト・アプリケーション124に伝達する。次いで、アプリケーション・データは、ドライブとアプリケーションとの間を流れ始める(書き込みの場合はテープ・ドライブへ、読み取りの場合はテープ・ドライバから)。デバイス・ドライバ120は、正常な(すなわち非暗号化関連)コマンドに対して、アプリケーションとデバイス・ドライバとの間の通信経路として機能する。また、デバイス・ドライバ120は、EKMに向けられた拡張コマンドを検出し、この通信経路を別個に提供する。このため、暗号化対応デバイス・ドライバ120によって、テープ・システム100は、帯域内通信経路(すなわちデバイス・ドライバとテープ・ドライブとの間の通信経路)および帯域外通信経路(すなわちデバイス・ドライバとEKMとの間の通信経路)を有することができる。
【0034】
ここで図4から図8を参照すると、図4から図7は、キー・マネージャ・プル方法のためのテープ記憶システムの動作を例示するフロー・チャートを示し、図8は、キー・マネージャ・プル方法のための代表的なテープ記憶システムおよびフロー経路を例示する概略ブロック図である。フロー・チャートのステップとテープ記憶システムのフロー経路との対応関係をより良く示すために、図4から図7のフロー・チャートの円内に表した番号は、図8のブロック図の円内の同じ番号に対応する。
【0035】
この方法は、ステップ410においてアプリケーション(例えばアプリケーション124)がテープ・コマンド(CMD)を発行した場合に開始する。コマンドがアプリケーション124によって発行された場合、このコマンドは実際にはテープ・ドライブ・ドライバ120に発行される。次に、ステップ412において、ドライバ120はコマンドをテープ・ドライブに発行する。ステップ414において、テープ・ドライブがこのコマンドを受信すると、ステップ416において、テープ・ドライブはこのコマンドを調べて、コマンドが暗号化に関連するものでありEKM116と通信を行う必要があるか否か(すなわち、コマンドを実行するために暗号化情報が必要であるか否か)を判定する。
【0036】
コマンドがEKM116との暗号化関連の交換を必要としない場合、ステップ420においてテープ・ドライブ112はコマンドを実行し、ステップ422においてステータス指示(STS)をデバイス・ドライバ120に戻す。ステップ424において、デバイス・ドライバ120はステータス指示を調べる。ステータス指示が特別でない場合(すなわちコマンドが暗号化関連でなく、完了している場合)、ステップ410においてステータスをアプリケーションに転送し、次いでステップ428において、ステータス指示を調べて、コマンドが実行されたことを確実とし、次いで、所望の場合には制御をアプリケーションに戻して別のコマンドを発行する。
【0037】
コマンドがEKM116との暗号化関連の交換を必要とする場合、ステップ430において、テープ・ドライブ112は特別ステータス指示をデバイス・ドライバ120に戻す。(例えば、いくつかの実施形態では、テープ・ドライブ1112は、16進法の値EFを含むステータス指示を戻し、これはベンダーの一意の任意の暗号化指示を表す)。ステップ424において、デバイス・ドライバ120はステータス指示を調べる。ステータス指示が特別である場合(すなわちコマンドが暗号化関連である場合)、ステップ440において、デバイス・ドライバ120は、後の処理のためにコマンドを放置し、プロキシ122を呼び出す。ステップ442において、プロキシ122は、情報を転送するためにテープ・ドライブ112に問い合わせる。次いで、ステップ444において、ドライブ112は暗号化のための初期コマンドを構築し、このコマンドを、ドライバ120を介してプロキシ122に送信する。次いで、ステップ446において、プロキシ122はEKM116との接続をオープンし、コマンドをEKM116に送信する。(いくつかの実施形態においては、ドライブ112とEKM116との間の接続は、すでに存在するかまたはプロキシ122によって確立されるTC/IPソケットを介して行うことができる。)
【0038】
次いで、ステップ450において、EKM116はコマンドをパースする。次に、ステップ452において、EKMは暗号化コマンドをプロキシ122に発行する。次いで、ステップ454において、プロキシはコマンドをドライブ112に発行する。ステップ456において、ドライブはコマンドを処理し、次いでプロキシに応答する。ステップ458において、プロキシ122はドライブ応答をEKM116に転送する。ステップ460において、EKM116は応答を分析して、更に暗号化ステップが必要であるか否か(すなわち暗号化動作が完了したか否か)を判定する。更に暗号化ステップが必要である場合、EKMはステップ452に戻り、別の暗号化コマンドをプロキシ122に発行する。更に暗号化ステップが必要でない場合、ステップ470において、EKM116は最終フロー・ステータス指示を発生して、このステータス指示をプロキシに転送する。プロキシは、ステップ472において、この最終フロー・ステータス指示を検出し、ステップ474において、エラーが存在するか否かを判定する。エラーが存在する場合(暗号化動作中に問題が発生したことを示す)、ステップ410において、プロキシはこのステータス指示をホスト・アプリケーションに転送する。エラーが存在しない場合、プロキシ122はステップ440で放置されたコマンドを検索し、ステップ476においてこのコマンドをドライブ112に発行する。次いで、ドライブは、ステップ414においてコマンドを受信し、続けてこのコマンドを処理する。暗号化動作が完了したので、テープ・ドライブ112はステップ416において暗号化関連交換が必要でないことを判定し、コマンドはステップ420によって処理される。
【0039】
ここで図9から図11を参照すると、図9および図10はキー・マネージャ・プッシュ方法のためのテープ記憶システムの動作を示すフロー・チャートであり、図11はキー・マネージャ・プッシュ方法についての代表的なテープ記憶システムおよびフロー経路を示す概略ブロック図である。フロー・チャートのステップとテープ記憶システムのフロー経路との対応関係をより良く示すために、図9および図10のフロー・チャートの円内に表した番号は、図11のブロック図の円内の同じ番号に対応する。
【0040】
この方法は、ステップ610においてアプリケーション(例えばアプリケーション124)がテープ・コマンド(CMD)を発行した場合に開始する。コマンドがアプリケーション124によって発行された場合、このコマンドは実際にはテープ・ドライブ・ドライバ120に発行される。次に、ステップ612において、ドライバ120はコマンドをテープ・ドライブに発行する。ステップ614において、テープ・ドライブがこのコマンドを検索すると、ステップ616において、テープ・ドライブはこのコマンドを調べて、コマンドが暗号化に関連するものでありEKM116と通信を行う必要があるか否か(すなわち、コマンドを実行するために暗号化情報が必要であるか否か)を判定する。
【0041】
コマンドがEKM116との暗号化関連の交換を必要としない場合、ステップ620においてテープ・ドライブ112はコマンドを実行し、ステップ622においてステータス指示(STS)をデバイス・ドライバ120に戻す。ステップ624において、デバイス・ドライバ120はステータス指示を調べる。ステータス指示が特別でない場合(すなわちコマンドが暗号化関連でなく、完了している場合)、ステップ626においてステータスをアプリケーションに転送し、次いでステップ628において、ステータス指示を調べて、コマンドが実行されたことを確実とし、次いで、所望の場合には制御をアプリケーションに戻して別のコマンドを発行する。
【0042】
コマンドがEKM116との暗号化関連の交換を必要とする場合、ステップ630において、テープ・ドライブ112は特別ステータス指示をデバイス・ドライバ120に戻す。(例えば、いくつかの実施形態では、テープ・ドライブ1112は、16進法の値EFを含むステータス指示を戻し、これはベンダーの一意の任意の暗号化指示を表す)。ステップ624において、デバイス・ドライバ120はステータス指示を調べる。ステータス指示が特別である場合(すなわちコマンドが暗号化関連である場合)、ステップ640において、デバイス・ドライバ120は、後の処理のためにコマンドを放置し、プロキシ122を呼び出す。
【0043】
ステップ642において、プロキシ122は、情報を転送するためにテープ・ドライブ112に問い合わせる。次いで、ステップ644において、ドライブ112は暗号化のために必要なコマンドを全て構築し、これらのコマンドを、ドライバ120を介してプロキシ122に送信する。
【0044】
次いで、ステップ646において、プロキシ122はEKM116との接続をオープンし、コマンドをEKM116に送信する。(いくつかの実施形態においては、ドライブ112とEKM116との間の接続は、すでに存在するかまたはプロキシ122によって確立されるTC/IPソケットを介して行うことができる。)
【0045】
次いで、ステップ650において、EKM116は暗号化コマンドを処理する。次に、ステップ670において、EKMはフロー・ステータス指示をプロキシ122に発行する。プロキシは、ステップ672において、このフロー・ステータス指示を検出し、ステップ674において、エラーが存在するか否かを判定する。エラーが存在する場合(暗号化動作中に問題が発生したことを示す)、ステップ626において、プロキシはこのステータス指示をホスト・アプリケーションに転送する。エラーが存在しない場合、プロキシ122はステップ640で放置されたコマンドを検索し、ステップ676においてこのコマンドをドライブ112に発行する。次いで、ドライブは、ステップ614においてコマンドを受信し、続けてこのコマンドを処理する。暗号化動作が完了したので、テープ・ドライブ112はステップ616において暗号化関連交換が必要でないことを判定し、コマンドはステップ620によって処理される。
【0046】
本発明について、その好適な実施形態に関連付けて具体的に図示し説明したが、本発明の精神および範囲から逸脱することなく、形態および詳細において前述および他の変更を行うことができることは、当業者には理解されよう。
【0047】
本発明は、言及した利点および固有の他の利点を達成するように適切に適合される。本発明の特定の実施形態を参照することによって、本発明を図示し、記載し、定義したが、かかる参照は本発明に対する限定を意味するものではなく、かかる限定は推論されない。本発明は、当業者に想起されるように、形態および機能において、相当の変形、変更、および均等物が可能である。図示し記載した実施形態は例示のためのみのものであり、本発明の範囲を網羅するものではない。
【0048】
例えば、他の記憶デバイスが、同様のデバイス・ドライバ機構を用いることができる。また、例えば、他のテープ・ドライバ・アーキテクチャが想定される。また、例えば、デバイス・ドライバおよびプロキシを別個のモジュールとして述べたが、デバイス・ドライバおよびプロキシは単一のモジュール内に含むことが可能であることは認められよう。また、例えば、他のタイプの補助モジュールからの他のタイプの動作をデバイス・ドライバを介してプロキシとすることが可能であることは認められよう。更に、例えば、テープ・ドライブ112およびテープ・カートリッジ114の機能を、一般に仮想テープ・ライブラリと称されるソフトウェアにおいて実施することができる。仮想テープ・ライブラリ・ソフトウェアは、ホスト110と通信することができ、テープ・ドライブのテープ媒体に対する読み取りおよび書き込みの機能を含む、物理テープ・ライブラリの機能を模倣することができる。仮想テープ・ライブラリ・ソフトウェアは、ホスト110に結合された別個のコンピュータ・システム上に存在することができる。別の例として、テープ・ドライブ112およびテープ・カートリッジ114は、テープ・ライブラリに含ませることも可能である。
【0049】
また、例えば、上述の実施形態は、いくつかのタスクを実行するモジュールを含む。本発明において論じたモジュールは、スクリプト、バッチ、または他の実行可能ファイルを含むことができる。モジュールは、ディスク・ドライブ等の機械読み取り可能またはコンピュータ読み取り可能記憶媒体上に記憶することができる。本発明の実施形態に従ってモジュールを記憶するために用いられる記憶デバイスは、磁気テープ、磁気フロッピ・ディスク、ハード・ディスク、またはCD−ROMもしくはCD−R等の光ディスクとすれば良い。また、本発明の実施形態に従ってファームウェアまたはハードウェア・モジュールを記憶するために用いられる記憶デバイスは、半導体ベースのメモリを含むことができ、これは、永久的、着脱可能、またはマイクロプロセッサ/メモリ・システムに遠隔結合することができる。このため、モジュールは、コンピュータ・システム・メモリ内に記憶して、モジュールの機能を実行するためのコンピュータ・システムを構成することができる。他の新しい様々なタイプのコンピュータ読み取り可能記憶媒体を用いて、本発明において論じたモジュールを記憶することができる。更に、モジュール内で機能を別個に設けることが例示の目的のためであることは、当業者には認められよう。代替的な実施形態は、多数のモジュールの機能を単一のモジュールに結合することができ、または、モジュールの機能を交互に分解することができる。例えば、サブ・モジュールを呼び出すためのモジュールを分解して、各サブ・モジュールがその機能を実行し、別のサブ・モジュールに直接制御を渡すようにすることができる。
【0050】
従って、本発明は、特許請求の範囲の精神および範囲によってしか限定されず、全ての点において均等物を想定するものである。
【図面の簡単な説明】
【0051】
【図1】代表的なテープ記憶システムを示す概略ブロック図を示す。
【図2】テープ・ドライブおよびテープ・カートリッジを示す概略ブロック図である。
【図3】暗号化したアクセスを実行する場合のテープ・システムの動作のフロー・チャートである。
【図4】キー・マネージャ・プル方法のための暗号化アクセスを実行するテープ・システムの動作のフロー・チャートである。
【図5】キー・マネージャ・プル方法のための暗号化アクセスを実行するテープ・システムの動作のフロー・チャートである。
【図6】キー・マネージャ・プル方法のための暗号化アクセスを実行するテープ・システムの動作のフロー・チャートである。
【図7】キー・マネージャ・プル方法のための暗号化アクセスを実行するテープ・システムの動作のフロー・チャートである。
【図8】キー・マネージャ・プル方法のための代表的なテープ記憶システムおよびフロー経路を示す概略ブロック図である。
【図9】キー・マネージャ・プッシュ方法のための暗号化アクセスを実行するテープ・システムの動作のフロー・チャートである。
【図10】キー・マネージャ・プッシュ方法のための暗号化アクセスを実行するテープ・システムの動作のフロー・チャートである。
【図11】キー・マネージャ・プッシュ方法のための代表的なテープ記憶システムおよびフロー経路を示す概略ブロック図である。

【特許請求の範囲】
【請求項1】
記憶システムであって、
ホストと、
前記ホストに結合可能な記憶デバイスであって、記憶媒体と相互作用して前記記憶媒体から情報を記憶すると共に検索し、
記憶媒体に記憶されたデータの暗号化および復号化を可能とするための暗号化モジュールを含む、前記記憶デバイスと、
前記記憶デバイスからの暗号化関連情報をチェックするためのデバイス・ドライバであって、前記暗号化関連情報が前記ホストによって発行されるコマンドに応答して発生され、暗号化関連情報が存在する場合、前記ホストが暗号化可能であるか否かには無関係に暗号化を促進するように動作可能である、前記デバイス・ドライバと、
を含む、前記記憶システム。
【請求項2】
前記デバイス・ドライバを介して前記記憶デバイスにキーを供給するためのキー・マネージャを更に含む、請求項1に記載の記憶システム。
【請求項3】
前記記憶デバイスと前記キー・マネージャとの間の通信経路を確立して前記記憶デバイスに対するキーの供給を促進するためのプロキシを更に含む、請求項2に記載の記憶システム。
【請求項4】
前記コマンドが、前記ホスト上で実行しているアプリケーションによって発行され、前記アプリケーションが、前記記憶デバイスにデータを転送すると共に前記記憶デバイスからデータを転送するバックアップ・プログラムを含む、請求項2に記載の記憶システム。
【請求項5】
前記暗号化関連情報が、前記記憶デバイスによって発行されたステータス指示を含み、前記コマンドが前記記憶デバイスによって実行可能となる前に暗号化動作を実行する必要があることを示す、請求項1に記載の記憶システム。
【請求項6】
記憶媒体と相互作用して前記記憶媒体から情報を記憶すると共に検索するための記憶デバイスであって、
記憶媒体に記憶されたデータの暗号化および復号化を可能とするための暗号化モジュールと、
前記暗号化モジュールに結合可能であり、前記暗号化モジュールと相互作用して前記記憶媒体に対する情報の記憶および前記記憶媒体からの情報の検索を可能とするためのコントローラと、
を含み、前記記憶デバイスが、デバイス・ドライバから情報を受信すると共に前記デバイス・ドライバに情報を送信するように動作可能であり、前記デバイス・ドライバが、前記記憶デバイスからの暗号化関連情報をチェックするように動作可能であり、前記暗号化関連情報が、ホストによって発行されるコマンドに応答して前記記憶デバイスによって発生され、暗号化関連情報が存在する場合、前記ホストが暗号化可能であるか否かには無関係に前記デバイス・ドライバが暗号化を促進するように動作可能である、前記記憶デバイス。
【請求項7】
前記デバイス・ドライバがキー・マネージャと相互作用するように動作可能であり、前記キー・マネージャが前記デバイス・ドライバを介して前記記憶デバイスにキーを供給するように動作可能である、請求項6に記載の記憶デバイス。
【請求項8】
前記デバイス・ドライバがプロキシと相互作用するように動作可能であり、前記プロキシが、前記記憶デバイスと前記キー・マネージャとの間の通信経路を確立して前記記憶デバイスに対するキーの供給を促進するように動作可能である、請求項7に記載の記憶デバイス。
【請求項9】
前記コマンドが、前記ホスト上で実行しているアプリケーションによって発行され、前記アプリケーションが、前記記憶デバイスにデータを転送すると共に前記記憶デバイスからデータを転送するバックアップ・プログラムを含む、請求項6に記載の記憶デバイス。
【請求項10】
前記暗号化関連情報が、前記記憶デバイスによって発行されたステータス指示を含み、前記コマンドが前記記憶デバイスによって実行可能となる前に暗号化動作を実行する必要があることを示す、請求項6に記載の記憶デバイス。
【請求項11】
ホスト上で実行し、記憶デバイスと通信を行うためのデバイス・ドライバであって、
前記ホストによって前記記憶デバイスに対して発行されたコマンドを傍受するためのコマンド開始部分と、
前記記憶デバイスからの暗号化関連情報をチェックするための暗号化部分であって、前記暗号化関連情報が、前記ホストによって発行されるコマンドに応答して前記記憶デバイスによって発生され、暗号化関連情報が存在する場合、前記ホストが暗号化可能であるか否かには無関係に前記デバイス・ドライバが暗号化を促進するように動作可能である、前記暗号化部分と、
を含む、前記デバイス・ドライバ。
【請求項12】
暗号化動作が実行を完了した後に前記コマンドを実行するためのコマンド実行部分を更に含む、請求項11に記載のデバイス・ドライバ。
【請求項13】
前記デバイス・ドライバがキー・マネージャと通信を行うように動作可能であり、前記キー・マネージャが前記デバイス・ドライバを介して前記記憶デバイスにキーを供給するように動作可能である、請求項11に記載のデバイス・ドライバ。
【請求項14】
前記記憶デバイスと前記キー・マネージャとの間の通信経路を確立して前記記憶デバイスに対するキーの供給を促進するためのプロキシを更に含む、請求項13に記載のデバイス・ドライバ。
【請求項15】
前記コマンドが、前記ホスト上で実行しているアプリケーションによって発行され、前記アプリケーションが、前記記憶デバイスにデータを転送すると共に前記記憶デバイスからデータを転送するバックアップ・プログラムを含む、請求項13に記載のデバイス・ドライバ。
【請求項16】
前記暗号化関連情報が、前記記憶デバイスによって発行されたステータス指示を含み、前記コマンドが前記記憶デバイスによって実行可能となる前に暗号化動作を実行する必要があることを示す、請求項11に記載のデバイス・ドライバ。
【請求項17】
暗号化可能記憶デバイスとホストとの間で暗号化を促進するための方法であって、
前記記憶デバイスに対してコマンドを発行するステップと、
前記コマンドに応答して、前記記憶デバイスよって発生した暗号化関連情報を傍受するステップと、
前記暗号化関連情報が、前記コマンドが前記暗号化可能記憶デバイスによって実行可能となる前に暗号化動作を実行する必要があることを示すか否かを判定するステップと、
前記暗号化動作が必要であることが前記暗号化関連情報によって示される場合、前記ホストが暗号化可能であるか否かには無関係に暗号化動作を実行するステップと、
を含む、前記方法。
【請求項18】
前記暗号化動作が実行を完了した後に前記コマンドを実行するステップを更に含む、請求項17に記載の方法。
【請求項19】
前記傍受が、暗号化可能デバイス・ドライバによって実行され、
前記デバイス・ドライバがキー・マネージャと通信を行い、前記キー・マネージャが前記デバイス・ドライバを介して前記暗号化可能記憶デバイスにキーを供給する、請求項17に記載の方法。
【請求項20】
プロキシを介して前記暗号化可能記憶デバイスと前記キー・マネージャとの間で通信経路を確立して前記記憶デバイスに対するキーの供給を促進するステップを更に含む、請求項19に記載の方法。
【請求項21】
前記コマンドが、前記ホスト上で実行しているアプリケーションによって発行され、前記アプリケーションが、前記暗号化可能記憶デバイスにデータを転送すると共に前記記憶デバイスからデータを転送するバックアップ・プログラムを含む、請求項19に記載の方法。
【請求項22】
前記暗号化関連情報が、前記暗号化可能記憶デバイスによって発行されたステータス指示を含む、請求項17に記載の方法。
【請求項23】
コンピュータ上で実行された場合に請求項17から22のいずれかに記載のステップを全て実行するように適合されたプログラム・コード手段を含むコンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公表番号】特表2010−503092(P2010−503092A)
【公表日】平成22年1月28日(2010.1.28)
【国際特許分類】
【出願番号】特願2009−527108(P2009−527108)
【出願日】平成19年8月23日(2007.8.23)
【国際出願番号】PCT/EP2007/058786
【国際公開番号】WO2008/028824
【国際公開日】平成20年3月13日(2008.3.13)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】