説明

計算機システム及びセキュリティ管理方法

【課題】ファイルから抽出したテキストから平文のインデックスを作成することによって、作成されたインデックスから機密情報が漏洩する危険性が高まる。
【解決手段】計算機と、計算機に接続されるストレージ装置と、計算機とストレージ装置とを接続するネットワークと、を備える計算機システムであって、計算機は、ネットワークに接続されるインタフェースと、インタフェースに接続される第1プロセッサと、第1プロセッサに接続されるメモリと、を備え、ストレージ装置は、データを格納するディスク装置を備え、ディスク装置の記憶領域は、少なくとも第1記憶領域及び第2記憶領域を含む複数の記憶領域に分割され、第1プロセッサは、第1記憶領域に格納されているデータの一部を読み出し、第1記憶領域に格納されているデータが暗号化されていると判定された場合、第1記憶領域から読み出されたデータを暗号化して第2記憶領域に書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージシステムにおけるアーカイブ技術に関し、特に、ストレージ装置のセキュリティ及び性能を高める技術に関する。
【背景技術】
【0002】
近年、計算機の性能向上又はインターネット回線の速度向上によって、計算機上で扱われるデータ量が増加している。また、法規制又は訴訟に対応するため、ファイルをストレージ装置上で長期間保管するアーカイブシステムへの期待が高まっている。
【0003】
そこで、特許文献1には、保管しているファイルへ迅速にアクセスするため、ファイルの属性情報等に基づいてインデックスを作成することによってファイルの検索速度を向上させる技術が記載されている。
【特許文献1】特表2004−509415号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1に記載された技術によると、更新時刻又は文書の表示順を決定するランク及び、検索対象ファイルから抽出されたテキストを含むインデックスが作成される。検索対象ファイルが顧客名等の機密情報を含む場合、検索対象ファイルは暗号化され、その暗号化された検索対象ファイルがストレージ装置に格納される。しかし、この場合、検索対象ファイルから抽出されたテキストから平文のインデックスを作成することによって、作成されたインデックスから機密情報が漏洩する危険性が高まる。
【0005】
作成されたインデックスを暗号化して格納することによって、インデックスからの情報漏洩を防ぐことができる。
【課題を解決するための手段】
【0006】
本発明の代表的な一例を示せば以下の通りである。すなわち、計算機と、前記計算機に接続されるストレージ装置と、前記計算機と前記ストレージ装置とを接続するネットワークと、を備える計算機システムであって、前記計算機は、前記ネットワークに接続されるインタフェースと、前記インタフェースに接続される第1プロセッサと、前記第1プロセッサに接続されるメモリと、を備え、前記ストレージ装置は、データを格納するディスク装置と、前記ディスク装置を制御する第2プロセッサと、を備え、前記ディスク装置の記憶領域は、少なくとも第1記憶領域及び第2記憶領域を含む複数の記憶領域に分割され、前記第1プロセッサは、前記第1記憶領域に格納されているデータの一部を読み出し、前記第1記憶領域に格納されているデータが暗号化されているか否かを判定し、前記第1記憶領域に格納されているデータが暗号化されていると判定された場合、前記第1記憶領域から読み出されたデータを暗号化して前記第2記憶領域に書き込む。
【発明の効果】
【0007】
本発明の一実施形態によれば、作成されたインデックスを暗号化して格納することによって、機密情報の漏洩を防止することができる。
【発明を実施するための最良の形態】
【0008】
以下、本発明の実施の形態について図面を参照しながら説明する。
【0009】
<第1の実施の形態>
まず、本発明の第1の実施の形態の計算機システムについて説明する。
【0010】
第1の実施の形態では、検索計算機がストレージ装置に格納されているファイルのインデックス(後述)を作成する。
【0011】
図1は、本発明の第1の実施の形態の計算機システムの構成図である。
【0012】
計算機システムは、検索計算機1000、管理計算機1100、FCスイッチ1200、IPスイッチ1300、及びストレージ装置1400を備える。
【0013】
検索計算機1000は、ストレージ装置1400にデータを入出力する計算機である。検索計算機1000は、FC I/F1001、CPU1002、入力装置1003、出力装置1004、IP I/F1005、記憶装置1006、及びメモリ1007を備える。
【0014】
FC I/F1001は、FCスイッチ1200を介してストレージ装置1400との入出力データを送受信する。
【0015】
CPU1002は、メモリ1007に格納されているプログラムを実行し、検索計算機1000全体を制御するプロセッサである。
【0016】
入力装置1003は、ユーザによる情報の入力を受け付けるための装置である。入力装置1003は、キーボード及び/又はマウス等を含んでもよい。
【0017】
出力装置1004は、ユーザへの情報を表示するための装置である。出力装置1004は、液晶表示装置のようなディスプレイ装置又はプリンタ等を含んでもよい。
【0018】
IP I/F1005は、IPスイッチ1300を介して管理計算機1100との管理データを送受信する。
【0019】
記憶装置1006は、プログラム又はユーザデータ等を記憶する。記憶装置1006は、例えばハードディスクドライブ(HDD)であってもよい。
【0020】
メモリ1007は、CPU1002によって実行されるプログラムを格納する。メモリ1007は、例えばRandom Access Memory(RAM)のような半導体メモリであってもよい。記憶装置1006に格納されたプログラム等の少なくとも一部が必要に応じてメモリ1007にコピーされてもよい。
【0021】
管理計算機1100は、検索計算機1000及びストレージ装置1400を管理する計算機である。管理計算機1100は、FC I/F1101、CPU1102、入力装置1103、出力装置1104、IP I/F1105、記憶装置1106、及びメモリ1107を備える。
【0022】
FC I/F1101は、FCスイッチ1200を介してストレージ装置1400と入出力データ及び制御データを送受信する。
【0023】
CPU1102は、メモリ1107に格納されているプログラムを実行し、管理計算機1100全体を制御するプロセッサである。
【0024】
入力装置1103は、ユーザによる情報の入力を受け付けるための装置である。入力装置1103は、キーボード及び/又はマウス等を含んでもよい。
【0025】
出力装置1104は、ユーザへの情報を表示するための装置である。出力装置1104は、液晶表示装置のようなディスプレイ装置及び/又はプリンタ等を含んでもよい。
【0026】
IP I/F1105は、IPスイッチ1300を介して検索計算機1000又はストレージ装置1400と管理データを送受信する。
【0027】
記憶装置1106は、プログラム及び/又はユーザデータ等を記憶する。記憶装置1106は、例えばハードディスクドライブ(HDD)であってもよい。
【0028】
メモリ1107は、CPU1102によって実行されるプログラムを格納する。メモリ1107は、例えば、RAMのような半導体メモリであってもよい。記憶装置1106に格納されたプログラムなどの少なくとも一部が必要に応じてメモリ1107にコピーされてもよい。
【0029】
FCスイッチ1200は、検索計算機1000とストレージ装置1400との間で、の入出力データを転送するためのスイッチ装置である。FCスイッチ1200は、CPU1201、メモリ1202、FCI/F1203、及びIP I/F1204を備える。
【0030】
CPU1201は、メモリ1202に格納されているプログラムを実行し、FCスイッチ1200全体を制御するプロセッサである。
【0031】
メモリ1202は、CPU1201によって実行されるプログラム及び/又はデータを格納する。メモリ1202は、例えば、RAMのような半導体メモリであってもよい。FC I/F1203は、入出力データを送受信する。IP I/F1204は、管理データを送受信する。図3には、三つのFC I/F1203を示すが、FCスイッチ1200は、任意の数のFC I/F1203を備えることができる。
【0032】
IPスイッチ1300は、管理計算機1100から検索計算機1000等へ管理データを転送するスイッチ装置である。IPスイッチ1300は、CPU1301、メモリ1302、及びIP I/F1303を備える。
【0033】
CPU1301は、メモリ1302に格納されているプログラムを実行し、IPスイッチ1300全体を制御する。メモリ1302は、プログラム及び/又はデータを格納する。IP I/F1303は、管理データを送受信する。図3には四つのIP I/F1303を示すが、IPスイッチ1300は、任意の数のIP I/F1303を備えることができる。
【0034】
ストレージ装置1400は、検索計算機1000が送受信する入出力データを処理するノードである。ストレージ装置1400は、FC I/F1401、IP I/F1402、CPU1403、メモリ1404、ディスクコントローラ1405、ディスク装置1406及びディスク装置1407を備える。
【0035】
FC I/F1401は、FCスイッチ1200から転送された入出力データを受信する。
【0036】
IP I/F1402は、管理計算機1100からIPスイッチ1300を介して管理データを受信する。
【0037】
CPU1403は、メモリ1404に格納されているプログラムを実行し、ストレージ装置1400全体を制御するプロセッサである。メモリ1404は、CPU1403によって実行されるプログラムを格納する。
【0038】
ディスク装置1406及び1407は、ユーザデータを保存する。ディスク装置1406及び1407は、例えばハードディスクドライブ(HDD)であってもよいし、フラッシュメモリのような半導体記憶装置であってもよい。図1には一例として二つのディスク装置すなわちディスク装置1406及び1407を示すが、ストレージ装置1400は任意の数のディスク装置1406等を備えてもよい。複数のディスク装置1406等がRAID(Redundant Arrays of Inexpensive Disks)を構成してもよい。
【0039】
ユーザデータは、FCスイッチ1200に接続された計算機(例えば、図示しないクライアント計算機)によって書き込まれたデータである。ユーザデータは、例えば、クライアント計算機で稼動するアプリケーション(図示省略)によって作成された文書データ等であってもよい。
【0040】
ディスク装置1406及び1407の記憶領域は、複数のLU(論理ボリューム)に分割される。図1には、例としてLU1410〜1412を示す。各LU1410〜1412は、上位の計算機(例えばクライアント計算機又は検索計算機1000等)が一つの論理的なディスク装置として認識する記憶領域である。ディスク装置1406及び1407に含まれる任意の容量の物理的な記憶領域が各LU1410〜1412に割り当てられる。
【0041】
ディスク装置1406及び1407の記憶領域は、ユーザデータを含むファイルを格納するファイル格納エリア1408と、検索に用いられるインデックスを格納するインデックス格納エリア1409とに区切られている。図1の例では、LU1410及びLU1411がファイル格納エリア1408に属し、LU1412がインデックス格納エリア1409に属する。
【0042】
LU1410及びLU1411には、それぞれ、File(ファイル)1413及びFile1414が格納される。これらは、クライアント計算機等によって書き込まれた、ユーザデータを含むファイルである。ファイルは、LU内の記憶領域と対応付けられる。例えば、LU1410内の記憶領域に、File1413に含まれるデータが格納され、LU1411内の記憶領域に、File1414に含まれるデータが格納される。ファイルと、そのファイルに含まれるデータが格納される記憶領域との対応関係は、計算機(例えばクライアント計算機又は検索計算機1000)のオペレーティングシステム(より詳細には、ファイルシステム)によって管理される。
【0043】
LU1412には、Index(インデックス)1415が格納される。Index1415は、File1413等に基づいて作成されたインデックスを含むファイルである。
【0044】
ここで、インデックスについて説明する。
【0045】
インデックスは、File1413等を高速に検索するために使用される情報である。例えば、インデックスは、File1413等の更新日時及びランクを含む。ランクとは、検索結果を表示する際に、表示の順序を決定するために参照される情報である。さらに、インデックスは、検索されるFile1413等に含まれるデータの一部を含む。例えば、File1413等がクライアント計算機のアプリケーションによって作成された文書ファイルである場合、インデックスは、その文書ファイルに含まれるテキストデータの一部を含んでもよい。このようなインデックスは、検索計算機1000によって作成される(図9等参照)。
【0046】
上記のように、Index1415はファイルの一つとして扱われるが、以下の説明においてファイルとは、File1413のようにインデックスを用いて検索されるファイルのみを指し、インデックスを含むファイルは単にインデックス又はIndex1415と記載される。
【0047】
なお、図1には、Index1415に加えてIndex1416が図示されているが、第1の実施の形態のLU1412はIndex1415のみを格納している。Index1416については第2の実施の形態において説明する。
【0048】
図1では、File1413、1414が示されているが、各LU1410等は、任意の数のファイルを含んでもよい。
【0049】
なお、以下の説明において、図1の各構成に付されている番号を各構成の識別子として説明する。例えば、LU1410の識別子は、「1410」である。
【0050】
図2は、本発明の第1の実施の形態の検索計算機1000のメモリ1007の構成を示す。
【0051】
メモリ1007は、ファイル管理プログラム2001、検索プログラム2002、インデックス作成プログラム2003、検索計算機設定管理プログラム2004、検索計算機設定テーブル2005、及びファイル管理テーブル2006を格納する。
【0052】
ファイル管理プログラム2001は、保存されるファイルの改ざんを防止する機能、及び、ファイルの保存期間を管理する機能を提供する。
【0053】
検索プログラム2002は、インデックスに基づいてファイルを検索し、検索された結果を上位の計算機(例えば、クライアント計算機等)に送信する機能を提供する。
【0054】
インデックス作成プログラム2003は、ファイルの検索に用いるキーワード等のインデックスを作成する機能を提供する。
【0055】
検索計算機設定管理プログラム2004は、検索計算機の設定情報を管理する。
【0056】
検索計算機設定テーブル2005には、検索計算機の設定情報が記憶されている(図5参照)。
【0057】
ファイル管理テーブル2006には、LUに格納されているファイルの状態が記憶されている(図6参照)。
【0058】
検索計算機1000は、起動時にメモリ1007へファイル管理プログラム2001、検索プログラム2002、インデックス作成プログラム2003、検索計算機設定管理プログラム2004、検索計算機設定テーブル2005、及びファイル管理テーブル2006を記憶装置1006から読み出して、これらをメモリ1007に格納する。
【0059】
上位のソフトウェア又はユーザからファイル管理プログラム2001に、格納するファイルを送信するために、CIFS(Common Internet File System)又はNFS(Network File System)などのファイル共有プロトコルが用いられてもよい。あるいは、格納するファイルを送信するために、特別なAPI(Application Program Interface)が用いられてもよい。
【0060】
なお、ファイル管理プログラム2001、検索プログラム2002、及びインデックス作成プログラム2003は、異なる計算機(例えば、検索計算機1000及び管理計算機1100)のメモリに別々に格納されてもよい。その場合、それらのプログラムは、それらが格納されたメモリに接続されたCPUによって実行される。あるいは、上記のプログラムの少なくとも一部がストレージ装置1400のメモリ1404に格納されてもよい。メモリ1404に格納されたプログラムは、CPU1403によって実行される。
【0061】
図3は、本発明の第1の実施の形態の管理計算機1100のメモリ1107の構成を示す。
【0062】
メモリ1107は、暗号化判定プログラム3001及び暗号化設定テーブル3002を格納する。
【0063】
暗号化判定プログラム3001は、インデックスが格納されているLUを暗号化するか否かを判定する機能を提供する。
【0064】
暗号化設定テーブル3002には、暗号化するLUの情報が記憶されている(図7参照)。
【0065】
なお、管理計算機1100は、起動時にメモリ1107へ暗号化判定プログラム3001及び暗号化設定テーブル3002を記憶装置1106から読み出して、これらをメモリ1107に格納する。
【0066】
図4は、本発明の第1の実施の形態のストレージ装置1400のメモリ1404の構成を示す。
【0067】
メモリ1404は、データ処理プログラム4001、暗号化プログラム4002、ストレージ装置設定管理プログラム4003、及びストレージ装置設定テーブル4004を格納する。
【0068】
データ処理プログラム4001は、検索計算機1000等がストレージ装置1400へアクセスするときに実行される。
【0069】
暗号化プログラム4002は、ストレージ装置1400に存在するLUに格納されるデータを暗号化する機能を提供する。
【0070】
ストレージ装置設定管理プログラム4003は、ストレージ装置1400の設定情報を管理する機能を提供する。
【0071】
ストレージ装置設定テーブル4004には、ストレージ装置1400の設定情報が記憶されている。
【0072】
なお、ストレージ装置1400は、起動時にメモリ1404へデータ処理プログラム4001、暗号化プログラム4002、ストレージ装置設定管理プログラム4003、及びストレージ装置設定テーブル4004をディスク1406等から読み出し、これらをメモリ1404に格納する。
【0073】
図5は、本発明の第1の実施の形態の検索計算機設定テーブル2005の構成を示す。
【0074】
検索計算機設定テーブル2005は、ホスト名5001、使用LU5002、用途5003、接続先IF5004、及びインデックス作成先5005を含む。
【0075】
ホスト名5001は、検索計算機1000の識別子である。
【0076】
使用LU5002は、ホストである検索計算機1000が使用しているLUの識別子である。
【0077】
用途5003は、使用LU5002の値によって識別されるLUの用途である。用途5003としては、「ファイル」又は「インデックス」が格納される。
【0078】
「ファイル」は、いずれかの計算機(例えば、図示しないクライアント計算機)によって作成されたファイルを格納するために、LUが使用されることを示す。例えば、クライアント計算機で稼動するアプリケーションが文書ファイルを作成し、その文書ファイルをLU1410に格納する場合、使用LU5002の値「1410」に対応する用途5003に「ファイル」が格納される。
【0079】
「インデックス」は、LUが、他のLUに格納されたデータから作成されたインデックスを格納するために使用されることを示す。
【0080】
接続先IF5004は、検索計算機1000が使用しているLUへの接続先である。
【0081】
インデックス作成先5005は、ファイルから作成されるインデックスを格納するLUの識別子である。
【0082】
図5の例では、検索計算機設定テーブル2005の第1行のホスト名5001、使用LU5002、用途5003、接続先IF5004及びインデックス作成先5005として、それぞれ、「1000」、「1410」、「ファイル」、「1401」及び「1412」が格納されている。これは、検索計算機1000が使用するLU1410に、いずれかの計算機によって作成されたファイルが格納されること、検索計算機1000はFC I/F1401に接続することによってLU1410にアクセスできること、及び、LU1410内のファイルから作成されたインデックスが、LU1412に格納されること、を示す。
【0083】
図6は、本発明の第1の実施の形態のファイル管理テーブル2006の構成を示す。
【0084】
ファイル管理テーブル2006は、ファイル名6001、格納ストレージ名6002、格納LU名6003、及び暗号化6004を含む。
【0085】
ファイル名6001は、ファイルの識別子である。
【0086】
格納ストレージ名6002は、ファイルが格納されているストレージ装置1400の識別子である。
【0087】
格納LU名6003は、ファイルが格納されているLUの識別子である。
【0088】
暗号化6004は、ファイルが暗号化されているか否かを示すフラグである。具体的には、「OFF」はファイルが暗号化されていないことを示す。一方、「OFF」以外の値(例えば、128又は256等の数値)は、ファイルが暗号化されていることを示す。この場合、128又は256等の数値は、ファイルが暗号化されるときの暗号化の強度を示している。暗号化の強度とは、暗号の解読の困難さを示すものである。
【0089】
例えば、暗号化の強度の指標の一例として暗号化キーの長さがある。暗号化キーの長さは、128ビット又は256ビット等が存在し、暗号化キーの長さが128ビットよりも256ビットの方が暗号の解読が困難なため、暗号化の強度が強い。また、暗号化の強度を示す具体的な例として、前述した128又は256等があるが、その他に暗号化の強度を示す具体的な指標がある場合は、その他の指標を用いて暗号化の強度を設定してもよい。なお、暗号化6004は、ファイルをストレージ装置1400に格納する上位の計算機(例えば図示しないクライアント計算機等)によって設定される。
【0090】
LUに格納されるデータは、上位の計算機(例えば、FCスイッチ1200に接続された、図示しないクライアント計算機)によって暗号化されてもよいし、ストレージ装置1400によって暗号化されてもよい。
【0091】
前者の場合、例えば、クライアント計算機のアプリケーションがデータを暗号化し、その暗号化されたデータを含むファイルを書き込む要求をストレージ装置1400に対して送信する。この要求を受信したストレージ装置1400は、受信した要求に従って、暗号化されたデータをLUに格納する。そして、クライアント計算機がその暗号化されたデータを読み出す要求を送信すると、ストレージ装置1400は、要求に従って暗号化されたデータをLUから読み出し、クライアント計算機に送信する。この場合、ストレージ装置は、データが暗号化されているか否かを把握していなくてもよい。
【0092】
一方、後者の場合、例えばクライアント計算機がデータを書き込む要求をストレージ装置1400に対して送信すると、ストレージ装置は、要求されたデータを暗号化し、暗号化されたデータをLUに格納する。クライアント計算機がそのデータを読み出す要求を送信すると、ストレージ装置1400は、要求に従って暗号化されたデータをLUから読み出し、読み出されたデータを復号化し、復号化されたデータをクライアント計算機に送信する。この場合、クライアント計算機は、ストレージ装置1400がデータを暗号化及び復号化していることを把握していなくてもよい。
【0093】
図6に示すファイル管理テーブル2006は、上記の前者の例のように、上位の計算機によってファイルのデータが暗号化されているか否かを管理するためのものである。
【0094】
一方、上記の後者の例のように、ストレージ装置1400によってデータが暗号化されているか否かを管理するために、後述するストレージ装置設定テーブル4004が使用される(図8参照)。
【0095】
図6の例では、ファイル管理テーブル2006の第2行のファイル名6001、格納ストレージ名6002、格納LU名6003及び暗号化6004として、それぞれ、「1414」、「1400」、「1411」及び「256」が格納されている。これは、ストレージ装置1400のLU1411に格納されているFile1414が、そのFile1414を作成した上位の計算機によって暗号化されていること、及び、その暗号化に使用されたキーの長さが256ビットであることを示す。
【0096】
図7は、本発明の第1の実施の形態の暗号化設定テーブル3002の構成を示す。
【0097】
暗号化設定テーブル3002は、ストレージ名7001、LU名7002、及び暗号化強度7003を含む。
【0098】
ストレージ名7001は、暗号化されるLUを保持するストレージ装置1400の識別子である。ここで、「暗号化されるLU」とは、暗号化されたデータを格納するLUを意味する。暗号化されたデータとは、例えば暗号化されたインデックスであってもよい。
【0099】
LU名7002は、暗号化されるLUの識別子である。
【0100】
暗号化強度7003は、LUに格納されるデータ(例えばインデックス)を暗号化するときの暗号化の強度である。暗号化強度7003の値は、ファイル管理テーブル2006又はストレージ装置設定テーブル4004に設定されている暗号化の強度の値に基づいて設定される。
【0101】
図7の例では、暗号化設定テーブル3002のストレージ名7001、LU名7002及び暗号化強度7003として、それぞれ、「1400」、「1412」及び「256」が格納されている。これは、ストレージ装置1400のLU1412に、256ビットの暗号化キーによって暗号化されたインデックスが格納されることを意味する。
【0102】
図8は、本発明の第1の実施の形態のストレージ装置設定テーブル4004の構成を示す。
【0103】
ストレージ装置設定テーブル4004は、ストレージ名8001、LU名8002、及び暗号化8003を含む。
【0104】
ストレージ名8001は、ストレージ装置1400の識別子である。
【0105】
LU名8002は、LUの識別子である。
【0106】
暗号化8003は、LUが暗号化されているか否かを示すフラグである。具体的には、「OFF」はLUが暗号化されていないことを示す。一方、「OFF」以外の値(例えば、128又は256等の数値)は、LUが暗号化されていることを示す。この場合、128又は256等の数値は、はLUが暗号化されるときの強度を示している。暗号化の強度を示す具体的な例としては、前述した128又は256等があるが、その他に暗号化の強度を示す具体的な指標がある場合は、その他の指標を用いて暗号化の強度を設定してもよい。なお、暗号化8003は、計算機システムを管理する計算機(例えば、管理計算機1100等)によって設定される。
【0107】
また、LUの暗号化とは、ストレージ装置1400がLUに格納されるデータを暗号化することである。具体的には、暗号化するLUに、あるデータを格納する場合に、ストレージ装置1400の暗号化プログラム4002を実行し、データを暗号化してからLUに格納する。
【0108】
図8の例では、ストレージ装置設定テーブル4004の第2行のストレージ名8001、LU名8002及び暗号化8003として、それぞれ、「1400」、「1411」及び「128」が格納されている。これは、ストレージ装置1400のLU1410に、ストレージ装置1400が128ビットの暗号化キーによって暗号化したデータが格納されることを意味する。
【0109】
図9は、本発明の第1の実施の形態の暗号化処理のシーケンス図である。
【0110】
なお、図9の処理が開始された時点で、検索計算機設定テーブル2005、ファイル管理テーブル2006及びストレージ装置設定テーブル4004には、それぞれ、図5、図6及び図8に示す値が格納されていると仮定する。一方、その時点で、暗号化設定テーブル3002にはまだ値が格納されていない。
【0111】
まず、ストレージ装置1400のCPU1403は、ストレージ装置設定処理プログラム4003を実行することによって、ストレージ装置テーブル4004を管理計算機1100に送信する(ステップ9001)。
【0112】
検索計算機1000のCPU1002は、検索計算機設定テーブル2005及びファイル管理テーブル2006を管理計算機1100に送信する(ステップ9002)。
【0113】
CPU1403及びCPU1002は、管理計算機1100から各テーブルの送信要求を受信したときにステップ9001及びステップ9002を実行してもよい。あるいは、CPU1403及びCPU1002は、各テーブルが変更されたときにステップ9001及びステップ9002を実行してもよい。ステップ9001が実行される前にステップ9002が実行されてもよい。
【0114】
次に、管理計算機1100のCPU1102は、検索計算機1000及びストレージ装置1400から各テーブルを受信すると、LU情報からの暗号化判定処理を実行する(ステップ9003)。LU情報からの暗号化判定処理については、後述する図12で詳細に説明する。
【0115】
次に、管理計算機1100のCPU1102は、ファイル情報からの暗号化判定処理を実行する(ステップ9004)。ファイル情報からの暗号化判定処理については、後述する図13で詳細に説明する。
【0116】
次に、管理計算機1100のCPU1102は、暗号化設定テーブル3002に登録されているLUを指定してストレージ装置1400に暗号化要求を送信する(ステップ9005)。具体的には、暗号化要求は、暗号化設定テーブル3002に格納されているLU名7002の値、及び、そのLU名7002の値に対応する暗号化強度7003の値を含む。この時点で暗号化設定テーブル3002にLUが登録されていない場合、CPU1102は、暗号化要求を送信しなくてもよい。
【0117】
ストレージ装置1400のCPU1403は、管理計算機1100から暗号化要求を受信すると、指定されたLUを暗号化する(ステップ9006)。具体的には、CPU1403は、暗号化要求によって指定されたLUに対応する暗号化8003に、暗号化要求によって指定された暗号化強度7003の値を設定する。暗号化8003の値は、LUに格納されるデータを暗号化するか否か、及び、適用される暗号の強度を示す。ステップ9006が実行された時点で既に指定されたLUにデータが格納されている場合、CPU1403は、そのデータを読み出して暗号化し、再び指定されたLUに格納してもよい。この暗号化は、CPU1403が暗号化プログラム4002を実行することによって実現される。
【0118】
その後、検索計算機1000のCPU1002は、ファイル管理プログラム2001を実行することによってファイル取得要求をストレージ装置1400に送信する(ステップ9007)。ファイル取得要求とは、検索計算機1000がストレージ装置1400に格納されているファイルを取得するための要求である。
【0119】
次に、ストレージ装置1400のCPU1403は、要求されたファイルを検索計算機1000に送信する(ステップ9008)。
【0120】
次に、検索計算機1000のCPU1002は、ファイル管理プログラム2001を実行することによってストレージ装置1400からファイルを受信し、取得したファイルのインデックスを作成する(ステップ9009)。具体的には、CPU1002は、インデックス作成プログラム2003を実行することによって、取得したファイルのインデックスを作成し、作成されたインデックスを書き込む要求をストレージ装置1400に送信する。このとき、CPU1002は、検索計算機設定テーブル2005を参照し、取得したファイルが格納されているLUに対応するインデックス作成先5005の値を取得する。そして、CPU1002は、取得したインデックス作成先5005の値を書き込み先として指定したインデックスの書き込み要求を送信する。
【0121】
検索計算機1000から書き込み要求を受けたストレージ装置1400のCPU1403は、書き込みを要求されたインデックスを、書き込み要求によって書き込み先として指定されたLUに格納する(ステップ9010)。このとき、CPU1403は、ストレージ装置設定テーブル4004を参照して、インデックスを暗号化するか否かを判定する。具体的には、CPU1403は、書き込み先として指定されたLUに対応する暗号化8003に「OFF」以外の値が格納されている場合、インデックスを暗号化する。暗号化8003に暗号化キーのビット数が格納されている場合、CPU1403は、そのビット数の暗号化キーによってインデックスを暗号化する。
【0122】
ステップ9010におけるインデックスの暗号化はCPU1403が暗号化プログラム4002を実行することによって、インデックスの格納はCPU1403がデータ処理プログラム4001を実行することによって実現される。
【0123】
上記の図9に示す処理は、ストレージ装置1400のCPU1403、検索計算機1000のCPU1002及び管理計算機1100のCPU1102によって実行される。しかし、これらの処理は、任意のCPUによって実行されてもよい。
【0124】
例えば、ステップ9003〜9009の処理が一つのCPU(例えば、一つの計算機のCPU又はストレージ装置1400のCPU1403)によって実行されてもよい。その場合、これらの処理を実行するCPUに接続されるメモリには、少なくとも図2及び図3に示す全てのプログラム及びテーブルが格納される。
【0125】
あるいは、LUに格納されるデータを、ストレージ装置1400のCPU1403が暗号化する代わりに、いずれかの計算機のCPU(例えば検索計算機1000のCPU1002)が暗号化してもよい。その場合の構成及び処理については後で図10及び図11を参照して説明する。
【0126】
図9には、ステップ9001〜ステップ9006が、ステップ9007より前に実行される例を示した。しかし、ステップ9001〜ステップ9006は、ステップ9009より後に実行されてもよい。その場合、ステップ9006が実行される時点で、これから暗号化されるLUに既にインデックスが格納されている場合がある。その場合、ステップ9006が実行された後、ストレージ装置1400のCPU1403は、既にLUに格納されているインデックスを読み出し、そのインデックスを暗号化し、暗号化されたインデックスをLUに格納する必要がある。
【0127】
図9に示す本発明の第1の実施形態の暗号化処理では、ストレージ装置1400がLUを暗号化するが、検索計算機1000がLUを暗号化してもよい。
【0128】
図10は、本発明の第1の実施の形態の変形例における検索計算機1000のメモリ1007の構成を示す。
【0129】
図10に示される検索計算機1000のメモリ1007は、第1の実施の形態の検索計算機1000のメモリ1007(図2参照)に暗号化プログラム15001を付加した変形例である。暗号化プログラム15001以外のプログラム及びテーブルは、図2に記載したものと同様であるため、それらについての説明は省略する。図1の検索計算機1000のメモリ1007の代わりに、図10のメモリ1007を用いることによって検索計算機1000を構成することができる。
【0130】
暗号化プログラム15001は、LUを暗号化する。具体的には、暗号化プログラム15001は、LUに格納されるデータを暗号化する。
【0131】
なお、この変形例において、ストレージ装置1400のメモリ1404は、暗号化プログラム4002を格納しなくてもよい。
【0132】
図11は、本発明の第1の実施の形態の暗号化処理の変形例を示すシーケンス図である。
【0133】
図11のステップ16001からステップ16004は、図9のステップ9001からステップ9004に対応し、ステップ16007からステップ16009は、図9のステップ9007からステップ9009に対応するため説明を省略する。
【0134】
ステップ16005で、管理計算機1100のCPU1102は、暗号化設定テーブル3002に登録されているLUを指定して検索計算機1000に暗号化要求を送信する(ステップ16005)。このとき送信される暗号化要求は、図9のステップ9005において送信されるものと同様である。
【0135】
検索計算機1000のCPU1002は、管理計算機1100から暗号化要求を受信すると、指定されたLUを暗号化する(ステップ16006)。具体的には、CPU1002は、指定されたLUを暗号化することを示す情報を保持し、その情報に基づいて、指定されたLUに格納されるデータを暗号化する。
【0136】
例えば、検索計算機1000のメモリ1007に、ストレージ装置設定テーブル4004のコピーが格納されてもよい。その場合、暗号化要求を受信したCPU1002は、図9のステップ9006におけるCPU1403と同様、暗号化要求によって指定された値を暗号化8003に設定する。
【0137】
その後、検索計算機1000のCPU1002は、ファイル取得要求をストレージ装置1400に送信する(ステップ16007)。ファイル取得要求を受信したストレージ装置1400のCPU1403は、要求されたファイルを検索計算機1000に送信する(ステップ16008)。ステップ16007及び16008は、それぞれ、図9のステップ9007及び9008と同様である。
【0138】
次に、検索計算機1000のCPU1002は、ストレージ装置1400からファイルを受信し、取得したファイルのインデックスを作成及び送信する(ステップ16009)。具体的には、CPU1002は、インデックス作成プログラム2003を実行することによって、取得したファイルのインデックスを作成する。このとき、CPU1002は、検索計算機設定テーブル2005を参照し、取得したファイルが格納されているLUに対応するインデックス作成先5005の値を取得する。
【0139】
さらに、CPU1002は、取得したインデックス作成先5005が示すLUが暗号化されているか否かを、ストレージ装置設定テーブル4004のコピーに基づいて判定する。具体的には、CPU1002は、取得したインデックス作成先5005と同一のLU名8002に対応する暗号化8003の値が「OFF」以外の値である場合、取得したインデックス作成先5005が示すLUが暗号化されていると判定する。その場合、CPU1002は、暗号化プログラム15001を実行することによって、作成したインデックスを暗号化する。このとき、暗号化8003に格納されているビット数の暗号化キーが使用される。
【0140】
そして、ステップ16009においてCPU1002は、作成されたインデックスを書き込む要求(インデックスが暗号化されている場合、暗号化されたインデックスを書き込む要求)をストレージ装置1400に送信する。この要求は、インデックスの書き込み先として、取得したインデックス作成先5005の値が指定されている。
【0141】
検索計算機1000から書き込み要求を受けたストレージ装置1400のCPU1403は、書き込みを要求されたインデックスを、書き込み要求によって書き込み先として指定されたLUに格納する(ステップ16010)。
【0142】
このように、ストレージ装置1400がデータを暗号化する機能を持たない場合であっても、検索計算機1000のメモリ1007に暗号化プログラム15001が付加されることによって、LUの暗号化処理を実行することができる。
【0143】
図12は、本発明の第1の実施の形態のLU情報からの暗号化判定処理のフローチャートである。
【0144】
管理計算機1100のCPU1102が暗号化判定プログラム3001を実行することによって、図12に示す暗号化判定処理が実行される。
【0145】
まず、CPU1102は、検索計算機1000から受信した検索計算機設定テーブル2005を読み込む(ステップ10001)。
【0146】
次に、CPU1102は、ストレージ装置1400から受信したストレージ装置設定テーブル4004を読み込み、そのテーブルの先頭のレコードを選択する(ステップ10002)。なお、一つのレコードは、図8に示すストレージ装置設定テーブル4004の一行に相当する。以下、図12の説明において、選択されたストレージ装置設定テーブル4004のレコードのLU名8002によって識別されるLUを、選択されたLUと記載する。
【0147】
次に、CPU1102は、全てのレコードが処理済みか否か、すなわち、ストレージ装置設定テーブル4004の全レコードが既に選択され、それらのレコードに対するステップ10004から10006の処理が終了したか否かを判定する(ステップ10003)。全てのレコードが処理されている場合、CPU1102は図12に示す処理を終了する。一方、少なくとも一つのレコードがまだ処理されていない場合、処理はステップ10004に進む。
【0148】
次に、CPU1102は、検索計算機設定テーブル2005のレコードのうち、選択されたストレージ装置設定テーブル4004のレコードのLU名8002に格納されているものと同じ使用LU5002を含むレコードを参照する。そして、CPU1102は、参照したレコードのLUの用途5003が“ファイル”、かつ、選択されたレコードの暗号化8003の値が“ON”であるか否かを判定する(ステップ10004)。ただし、暗号化8003の値が“OFF”以外の値(例えば、128又は256のような暗号化の強度を示す値)である場合、暗号化8003の値が“ON”であると判定される。
【0149】
LUの用途5003が“ファイル”、かつ、暗号化8003の値が“ON”である場合、選択されたLUには、暗号化されたファイルが格納されている。この場合、選択されたLU内のファイルから生成されたインデックスを暗号化する必要がある。選択されたLU内のファイルが暗号化されていても、そのファイルのデータの一部を含むインデックスが暗号化されていなければ、そのインデックスから容易に情報が漏洩する可能性があるためである。したがって、この場合、処理はステップ10005に進む。
【0150】
一方、LUの用途5003が“ファイル”でない(すなわち“インデックス”である)場合、選択されたLU内のデータに基づいてインデックスが作成されることはない。暗号化8003の値が“ON”でない(すなわち“OFF”である)場合、選択されたLU内のファイルは暗号化されていない。すなわち、選択されたLU内のファイルは、情報漏洩を防止する必要がないものであると考えられるため、そのファイルに基づいて作成したインデックスを暗号化する必要がない。このため、LUの用途5003が“ファイル”でないか、又は、暗号化8003の値が“ON”でない場合、処理はステップ10006に進む。
【0151】
例えば、図5の検索計算機設定テーブル2005において、使用LU5002が「1411」であるレコードを参照すると、LUの用途5003が「ファイル」である。一方、図8のストレージ装置設定テーブル4004のLU名8002が「1411」であるレコードを参照すると、暗号化8003は「128」である。この場合、LUの用途5003が“ファイル”、かつ、暗号化8003の値が“ON”であるため、処理はステップ10005に進む。
【0152】
次に、CPU1102は、選択されたストレージ装置設定テーブル4004のレコードのストレージ名8001及び暗号化8003、及び、ステップ10004において参照された検索計算機設定テーブル2005のインデックス作成先5005の値を、暗号化設定テーブル3002に格納する(ステップ10005)。
【0153】
例えば、図8のストレージ装置設定テーブル4004のLU名8002が「1411」であるレコードが選択された場合、そのレコードのストレージ名8001及び暗号化8003がそれぞれ「1400」及び「128」である。この場合、暗号化設定テーブル3002のストレージ名7001及び暗号化強度7003にそれぞれ「1400」及び「128」が格納される。この場合、ステップ10004において、図5の検索計算機設定テーブル2005の使用LU5002が「1411」であるレコードが参照される。この場合、参照されたレコードのインデックス作成先5005が「1412」であるため、LU名7002に「1412」が格納される。
【0154】
なお、複数のLU(例えば、LU1410及びLU1411)が暗号化されている場合には、ステップ10005が実行される時点で既に暗号化強度7003に値が格納されていることがある。さらに、それらの複数のLUの各々に、互いに異なる強度の暗号化が適用されている場合がある。このような場合、インデックスから情報が漏洩することを確実に防止するために、複数のLUに適用されている暗号化の強度のうち、最も強いものを、インデックスが格納されるLUに適用する必要がある。
【0155】
このため、CPU1102は、既に暗号化強度7003に格納されている値と、選択されたレコードの暗号化8003の値とを比較する。その結果、既に格納されている値より選択されたレコードの暗号化8003の値がより強い暗号化の強度を示す場合のみ、CPU1102は、選択されたレコードの暗号化8003の値によって暗号化強度7003を更新する。
【0156】
次に、CPU1102は、選択されたストレージ装置設定テーブル4004のレコードの次のレコードを新たに選択し(ステップ10006)、ステップ10003に戻る。
【0157】
図13は、本発明の第1の実施の形態のファイル情報からの暗号化判定処理のフローチャートである。
【0158】
管理計算機1100のCPU1102が暗号化判定プログラム3001を実行することによって、図12に示す暗号化判定処理が実行される。
【0159】
まず、CPU1102は、検索計算機1000から受信した検索計算機設定テーブル2005を読み込む(ステップ11001)。
【0160】
次に、CPU1102は、検索計算機1000から受信したファイル管理テーブル2006を読み込み、そのテーブルの先頭のレコードを選択する(ステップ11002)。以下、図13の説明において、選択されたファイル管理テーブル2006のレコードのファイル名6001によって識別されるファイルを「選択されたファイル」、そのレコードの格納LU名6003によって識別されるLUを「選択されたLU」と記載する。
【0161】
次に、CPU1102は、全てのレコードが処理済みか否か、すなわち、ファイル管理テーブル2006の全レコードが既に選択され、それらのレコードに対するステップ11004から11006の処理が終了したか否かを判定する(ステップ11003)。全てのレコードが処理されている場合、CPU1102は図13に示す処理を終了する。一方、少なくとも一つのレコードがまだ処理されていない場合、処理はステップ11004に進む。
【0162】
次に、CPU1102は、検索計算機設定テーブル2005のレコードのうち、選択されたファイル管理テーブル2006のレコードの格納LU名6003に格納されているものと同じ使用LU5002を含むレコードを参照する。そして、CPU1102は、参照したレコードのLUの用途5003が“ファイル”、かつ、選択されたレコードの暗号化6004の値が“ON”であるか否かを判定する(ステップ11004)。ただし、暗号化6004の値が“OFF”以外の値(例えば、128又は256のような暗号化の強度を示す値)である場合、暗号化6004の値が“ON”であると判定される。
【0163】
LUの用途5003が“ファイル”、かつ、暗号化6004の値が“ON”である場合、選択されたファイルは暗号化されている。この場合、情報の漏洩を防ぐために、選択されたファイルから生成されたインデックスを暗号化する必要がある。したがって、この場合、処理はステップ11005に進む。
【0164】
一方、LUの用途5003が“ファイル”でない(すなわち“インデックス”である)場合、選択されたLU内のデータに基づいてインデックスが作成されることはない。暗号化6004の値が“ON”でない(すなわち“OFF”である)場合、選択されたファイルは暗号化されていないため、そのファイルに基づいて作成したインデックスを暗号化する必要がない。このため、LUの用途5003が“ファイル”でないか、又は、暗号化6004の値が“ON”でない場合、処理はステップ11006に進む。
【0165】
例えば、図5の検索計算機設定テーブル2005において、使用LU5002が「1411」であるレコードを参照すると、LUの用途5003が「ファイル」である。一方、図6のファイル管理テーブル2006の格納LU名6003が「1411」であるレコードを参照すると、暗号化6004が「256」である。この場合、LUの用途5003が“ファイル”、かつ、暗号化6004の値が“ON”であるため、処理はステップ11005に進む。
【0166】
次に、CPU1102は、選択されたファイル管理テーブル2006のレコードの格納ストレージ名6002及び暗号化6004、及び、ステップ11004において参照された検索計算機設定テーブル2005のインデックス作成先5005の値を、暗号化設定テーブル3002に格納する(ステップ11005)。
【0167】
例えば、図6のファイル管理テーブル2006の格納LU名が「1411」であるレコードが選択された場合、そのレコードの格納ストレージ名6002及び暗号化6004がそれぞれ「1400」及び「256」である。この場合、暗号化設定テーブル3002のストレージ名7001及び暗号化強度7003にそれぞれ「1400」及び「256」が格納される。この場合、ステップ11004において、図5の検索計算機設定テーブル2005の使用LU5002が「1411」であるレコードが参照される。この場合、参照されたレコードのインデックス作成先5005が「1412」であるため、LU名7002に「1412」が格納される。
【0168】
なお、ステップ10005が実行される時点で既に暗号化強度7003に値が格納されている場合がある。これは、既に図12の処理によって暗号化強度7003に値が格納されている場合、又は、複数のファイル(例えばFile1413及びFile1414)が暗号化されている場合に発生する。さらに、図12の処理によって格納された暗号化強度7003の値が、ファイルに適用されている暗号化強度と異なる場合がある。あるいは、複数のファイルの各々に、互いに異なる強度の暗号化が適用されている場合がある。このような場合、インデックスから情報が漏洩することを確実に防止するために、図12の処理によって格納された暗号化の強度、及び、複数のファイルに適用されている暗号化の強度のうち、最も強いものを、インデックスが格納されるLUに適用する必要がある。
【0169】
このため、CPU1102は、既に暗号化強度7003に格納されている値と、選択されたレコードの暗号化6004の値とを比較する。その結果、既に格納されている値より選択されたレコードの暗号化6004の値がより強い暗号化の強度を示す場合のみ、CPU1102は、選択されたレコードの暗号化6004の値によって暗号化強度7003を更新する。
【0170】
例えば、図12のLU情報からの暗号化判定処理が実行された直後に、暗号化設定テーブル3002のLU名7002が「1412」であるレコードを参照すると、暗号化強度7003には「128」が格納されている(ステップ10005参照)。しかし、図13のファイル情報からの暗号化判定処理がさらに実行された場合、「256」の方が「128」よりも暗号化の強度が強いため、暗号化強度7003に「256」が格納される。
【0171】
次に、CPU1102は、選択されたファイル管理テーブル2006のレコードの次のレコードを新たに選択し(ステップ11006)、ステップ11003に戻る。
【0172】
以上説明したように、本発明の第1の実施の形態によれば、ファイルを検索するためのインデックスを作成するときに、そのファイルが暗号化されているか否かが判定される。そのファイルが暗号化されている場合、作成されたインデックスも暗号化され、LUに格納される。このため、機密情報が漏洩する危険性を低くすることができる。
【0173】
一方、作成された全てのインデックスを暗号化した場合、インデックス作成及び検索時にボリューム全体の暗号化及び複合化に時間がかかるため、インデックス作成及び検索の速度が低下する。しかし、本発明の第1の実施の形態によれば、ファイルが暗号化されていない場合、作成されたファイルは暗号化されない。このように、不要な暗号化を省略することによって、暗号化の実行による処理速度の低下、及び、復号化の実行による検索処理速度の低下を抑えることができる。
【0174】
<第2の実施の形態>
本発明の第2の実施の形態では、検索計算機1000がストレージ装置1400に格納されているファイルのインデックスを作成するときにインデックス判定処理を実行する。第2の実施の形態のうち、第1の実施の形態と同様の部分については説明を省略する。
【0175】
第2の実施の形態の計算機システムの構成は、図1に示す通りである。第1の実施の形態と異なり、第2の実施の形態のLU1412には、Index1415に加えて、Index1416が格納される。Index1415及びIndex1416には、ユーザデータが格納されたファイル(例えばFile1413又はFile1414)から作成されたインデックスを格納する。第2の実施の形態において、Index1415は、暗号化されていないインデックスを格納するファイルであり、Index1416は、暗号化されたインデックスを格納するファイルである。
【0176】
図14は、本発明の第2の実施の形態のファイル管理テーブル2006の構成を示す。
【0177】
第2の実施の形態のファイル管理テーブル2006は、Index1416に対応するレコードが第4行として追加されている点を除いて、第1の実施の形態のファイル管理テーブル2006(図6参照)と同様である。
【0178】
図14の例では、ファイル管理テーブル2006の第4行のファイル名6001、格納ストレージ名6002、格納LU名6003及び暗号化6004として、それぞれ、「1416」、「1400」、「1412」及び「128」が格納されている。これは、ストレージ装置1400のLU1412に格納されているIndex1416が、そのIndex1416を作成した上位の計算機(例えば検索計算機1000)によって暗号化されていること、及び、その暗号化に使用されたキーの長さが128ビットであることを示す。
【0179】
図15は、本発明の第2の実施の形態の暗号化処理のシーケンス図である。
【0180】
ファイル取得要求の送信(ステップ13001)及びファイルの送信(ステップ13002)は、それぞれ、図9のステップ9007及びステップ9008と同様であるため、これらの説明を省略する。
【0181】
ストレージ装置1400からファイルを受信した検索計算機1000のCPU1002は、インデックス判定処理を実行し(ステップ13003)、インデックスを作成する。インデックス判定処理については、後述する図16で詳細に説明する。さらに、CPU1002は、インデックス判定処理によって作成されたインデックスを書き込む要求を、ストレージ装置1400に送信する。この書き込み要求は、作成されたインデックス、及び、そのインデックスの格納先の記憶領域(具体的には、Index1415又はIndex1416に対応する記憶領域)を示す情報を含む。
【0182】
書き込み要求を受信したストレージ装置1400は、書き込みを要求されたインデックスを、書き込み要求によって指定された格納先の記憶領域に格納する(ステップ13004)。
【0183】
図16は、本発明の第2の実施の形態のインデックス判定処理を示すフローチャートである。
【0184】
検索計算機1000のCPU1002がインデックス作成プログラム2003を実行することによって、図16に示すインデックス判定処理が実行される。
【0185】
まず、CPU1002は、検索計算機設定テーブル2005を読み込む(ステップ14001)。
【0186】
次に、CPU1002は、ファイル管理テーブル2006を読み込み、そのテーブルの先頭のレコードを選択する(ステップ14002)。以下、図16の説明において、選択されたファイル管理テーブル2006のレコードのファイル名6001によって識別されるファイルを「選択されたファイル」、そのレコードの格納LU名6003によって識別されるLUを「選択されたLU」と記載する。
【0187】
次に、CPU1002は、全てのレコードが処理済みか否か、すなわち、ファイル管理テーブル2006の全レコードが既に選択され、それらのレコードに対するステップ14004から14007の処理が終了したか否かを判定する(ステップ14003)。全てのレコードが処理されている場合、CPU1002は図16に示す処理を終了する。一方、少なくとも一つのレコードがまだ処理されていない場合、処理はステップ14004に進む。
【0188】
次に、CPU1002は、検索計算機設定テーブル2005のレコードのうち、選択されたファイル管理テーブル2006のレコードの格納LU名6003に格納されているものと同じ使用LU5002を含むレコードを参照する。そして、CPU1002は、参照したレコードのLUの用途5003が“ファイル”、かつ、選択されたレコードの暗号化6004の値が“ON”であるか否かを判定する(ステップ14004)。
【0189】
LUの用途5003が“ファイル”、かつ、暗号化6004の値が“ON”である場合、選択されたファイルは暗号化されている。この場合、情報の漏洩を防ぐために、選択されたファイルから生成されたインデックスを暗号化する必要がある。したがって、この場合、処理はステップ14005に進む。
【0190】
一方、LUの用途5003が“ファイル”でない(すなわち“インデックス”である)場合、選択されたLU内のデータに基づいてインデックスが作成されることはない。暗号化6004の値が“ON”でない(すなわち“OFF”である)場合、選択されたファイルは暗号化されていないため、そのファイルに基づいて作成したインデックスを暗号化する必要がない。このため、LUの用途5003が“ファイル”でないか、又は、暗号化6004の値が“ON”でない場合、処理はステップ14006に進む。
【0191】
例えば、図5の検索計算機設定テーブル2005において、使用LU5002が「1411」であるレコードを参照すると、LUの用途5003が「ファイル」である。一方、図14のファイル管理テーブル2006の格納LU名6003が「1411」であるレコードを参照すると、暗号化6004が「256」である。この場合、LUの用途5003が“ファイル”、かつ、暗号化6004の値が“ON”であるため、処理はステップ14005に進む。
【0192】
ステップ14005で、CPU1002は、選択されたファイルのインデックスを、暗号化されているインデックス格納ファイル(すなわち図1のIndex1416)に作成する。具体的には、CPU1002が、選択されたファイルに基づいて、そのファイルを検索するためのインデックスを作成し、作成されたインデックスを暗号化する。そして、CPU1002は、暗号化されたインデックスをIndex1416に書き込む要求をストレージ装置1400に送信する。
【0193】
ステップ14005の暗号化を実行するために、インデックス作成プログラム2003がデータを暗号化する機能を備える必要がある。あるいは、ステップ14005において、データを暗号化する機能を備える他のプログラムが呼び出されてもよい。
【0194】
ステップ14006で、CPU1002は、選択されたファイルのインデックスを、暗号化されていないインデックス格納ファイル(すなわち図1のIndex1415)に作成する。具体的には、CPU1002が、選択されたレコードのファイルに基づいて、そのファイルを検索するためのインデックスを作成する。そして、CPU1002は、作成されたインデックスをIndex1415に書き込む要求をストレージ装置1400に送信する。
【0195】
次に、CPU1002は、選択されたファイル管理テーブル2006のレコードの次のレコードを新たに選択し(ステップ14006)、ステップ14003に戻る。
【0196】
なお、図16では、LUに格納されているファイル単位でインデックス判定処理が実行されるが、LU単位でインデックス判定処理が実行されてもよい。具体的には、あるLUの情報に基づいて、そのLUに格納されている全てのファイルのインデックスをどのインデックス格納ファイルに作成するか判断される。
【0197】
この場合、図16のステップ14002で、CPU1002は、ストレージ装置設定テーブル4004を読み込む。なお、検索計算機1000は、ストレージ装置設定テーブル4004を読み込むために、ストレージ装置1400からあらかじめストレージ装置設定テーブル4004を受信しておく。
【0198】
図16のステップ14004で、CPU1002は、選択されたストレージ装置設定テーブル4004のレコードのLU名8002と同じ値が使用LU5002として格納されている検索計算機設定テーブル2005のレコードを参照する。そして、CPU1002は、参照したレコードのLUの用途5003が“ファイル”、かつ、選択されたレコードの暗号化8003の値が“ON”であるか否かを判定する。
【0199】
LUの用途5003が“ファイル”、かつ、暗号化8003の値が“ON”である場合、処理はステップ14005に進む。一方、LUの用途5003が“ファイル”でないか、又は、暗号化8003の値が“ON”でない場合、処理はステップ14006に進む。
【0200】
ステップ14005で、CPU1002は、選択されたレコードのLU名8002によって識別されるLUに格納されているファイルのインデックスを、暗号化されているインデックス格納ファイル(すなわち図1のIndex1416)に作成する。具体的には、CPU1002が、選択されているレコードのLU名8002によって識別されるLUに格納されているファイルのインデックスを作成し、作成されたインデックスを暗号化して、Index1416に格納する。
【0201】
ステップ14006で、CPU1002は、選択されたレコードのLU名8002によって識別されるLUに格納されているファイルのインデックスを、暗号化されていないインデックス格納ファイル(すなわち図1のIndex1415)に作成する。具体的には、CPU1002が、選択されているレコードのLU名8002によって識別されるLUに格納されているファイルのインデックスを作成し、作成されたインデックスをFile1415に格納する。
【0202】
以上説明したように、本発明の第2の実施の形態によって、暗号化されたファイルのインデックスが、暗号化されたインデックスファイルに作成される。このため、機密情報が漏洩する危険性を低くすることができる。また、暗号化されていないファイルのインデックスを、暗号化されていないインデックスファイルに作成するため、暗号化する必要がないインデックスの暗号化を省略することができる。このため、インデックス作成及び検索の速度の低下を抑えることができる。
【図面の簡単な説明】
【0203】
【図1】本発明の第1の実施の形態の計算機システムの構成図である。
【図2】本発明の第1の実施の形態の検索計算機のメモリの構成を示す。
【図3】本発明の第1の実施の形態の管理計算機のメモリの構成を示す。
【図4】本発明の第1の実施の形態のストレージ装置のメモリの構成を示す。
【図5】本発明の第1の実施の形態の検索計算機設定テーブルの構成を示す。
【図6】本発明の第1の実施の形態のファイル管理テーブルの構成を示す。
【図7】本発明の第1の実施の形態の暗号化設定テーブルの構成を示す。
【図8】本発明の第1の実施の形態のストレージ装置設定テーブルの構成を示す。
【図9】本発明の第1の実施の形態の暗号化処理のシーケンス図である。
【図10】本発明の第1の実施の形態の変形例における検索計算機のメモリの構成を示す。
【図11】本発明の第1の実施の形態の暗号化処理の変形例を示すシーケンス図である。
【図12】本発明の第1の実施の形態のLU情報からの暗号化判定処理のフローチャートである。
【図13】本発明の第1の実施の形態のファイル情報からの暗号化判定処理のフローチャートである。
【図14】本発明の第2の実施の形態のファイル管理テーブルの構成を示す。
【図15】本発明の第2の実施の形態の暗号化処理のシーケンス図である。
【図16】本発明の第2の実施の形態のインデックス判定処理を示すフローチャートである。
【符号の説明】
【0204】
1000 検索計算機
1100 管理計算機
1200 FCスイッチ
1300 IPスイッチ
1400 ストレージ装置

【特許請求の範囲】
【請求項1】
計算機と、前記計算機に接続されるストレージ装置と、前記計算機と前記ストレージ装置とを接続するネットワークと、を備える計算機システムであって、
前記計算機は、前記ネットワークに接続されるインタフェースと、前記インタフェースに接続される第1プロセッサと、前記第1プロセッサに接続されるメモリと、を備え、
前記ストレージ装置は、データを格納するディスク装置と、前記ディスク装置を制御する第2プロセッサと、を備え、
前記ディスク装置の記憶領域は、少なくとも第1記憶領域及び第2記憶領域を含む複数の記憶領域に分割され、
前記第1プロセッサは、
前記第1記憶領域に格納されているデータの一部を読み出し、
前記第1記憶領域に格納されているデータが暗号化されているか否かを判定し、
前記第1記憶領域に格納されているデータが暗号化されていると判定された場合、前記第1記憶領域から読み出されたデータを暗号化して前記第2記憶領域に書き込むことを特徴とする計算機システム。
【請求項2】
前記複数の記憶領域は、さらに第3記憶領域を含み、
前記第1プロセッサは、さらに、
前記第3記憶領域に格納されているデータの一部を読み出し、
前記第1記憶領域に格納されているデータが暗号化されていると判定された場合、前記第3記憶領域から読み出されたデータを暗号化して前記第2記憶領域に書き込むことを特徴とする請求項1に記載の計算機システム。
【請求項3】
前記第1プロセッサは、さらに、
前記第1記憶領域に格納されているデータ、及び、前記第3記憶領域に格納されているデータがいずれも暗号化されている場合、前記第1記憶領域に格納されているデータに適用されている暗号化の強度と、前記第3記憶領域に格納されているデータに適用されている暗号化の強度とを比較し、
前記第1記憶領域に格納されているデータに適用されている暗号化の強度が、前記第3記憶領域に格納されているデータに適用されている暗号化の強度より強い場合、前記第1記憶領域に格納されているデータに適用されているものと同等の強度の暗号化を適用することによって、前記第3記憶領域から読み出されたデータを暗号化することを特徴とする請求項2に記載の計算機システム。
【請求項4】
前記第1プロセッサは、
前記第1記憶領域に格納されているデータを暗号化するために使用された暗号化キーの長さが、前記第3記憶領域に格納されているデータを暗号化するために使用された暗号化キーの長さより長い場合、前記第1記憶領域に格納されているデータに適用されている暗号化の強度が、前記第3記憶領域に格納されているデータに適用されている暗号化の強度より強いと判定し、
前記第1記憶領域に格納されているデータに適用されている暗号化の強度が、前記第3記憶領域に格納されているデータに適用されている暗号化の強度より強いと判定された場合、前記第1記憶領域に格納されているデータを暗号化するために使用された暗号化キーと同じ長さの暗号化キーを用いて、前記第3記憶領域から読み出されたデータを暗号化することを特徴とする請求項3に記載の計算機システム。
【請求項5】
前記第1記憶領域、前記第2記憶領域及び前記第3記憶領域の各々は、前記ストレージ装置によって管理される論理ボリュームであることを特徴とする請求項2に記載の計算機システム。
【請求項6】
前記第2記憶領域は、前記ストレージ装置によって管理される論理ボリュームであり、
前記第1記憶領域は、前記ネットワークに接続された計算機によって書き込まれた第1ファイルのデータが格納された記憶領域であり、
前記第3記憶領域は、前記ネットワークに接続された計算機によって書き込まれた第2ファイルのデータが格納された記憶領域であることを特徴とする請求項2に記載の計算機システム。
【請求項7】
前記メモリは、前記各記憶領域に格納されているデータが暗号化されているか否かを示す情報、及び、前記各記憶領域に格納されているデータが暗号化されている場合、適用されている暗号化の強度を示す情報を格納し、
前記第1プロセッサは、前記メモリに格納された前記情報に基づいて、前記各記憶領域に格納されているデータが暗号化されているか否か、及び、適用されている暗号化の強度を判定することを特徴とする請求項3に記載の計算機システム。
【請求項8】
前記複数の記憶領域は、さらに第3記憶領域及び第4記憶領域を含み、
前記第1プロセッサは、さらに、
前記第3記憶領域に格納されているデータの一部を読み出し、
前記第1記憶領域に格納されているデータが暗号化されていないと判定された場合、前記第3記憶領域から読み出されたデータを暗号化せずに前記第4記憶領域に書き込むことを特徴とする請求項1に記載の計算機システム。
【請求項9】
前記複数の記憶領域は、さらに第5記憶領域を含み、
前記第1プロセッサは、さらに、
前記第1記憶領域に格納されているデータ、及び、前記第5記憶領域に格納されているデータがいずれも暗号化されている場合、前記第1記憶領域に格納されているデータに適用されている暗号化の強度と、前記第5記憶領域に格納されているデータに適用されている暗号化の強度とを比較し、
前記第1記憶領域に格納されているデータに適用されている暗号化の強度が、前記第5記憶領域に格納されているデータに適用されている暗号化の強度より強い場合、前記第1記憶領域に格納されているデータに適用されているものと同等の強度の暗号化を適用することによって、前記第5記憶領域から読み出されたデータを暗号化して前記第2記憶領域に書き込むことを特徴とする請求項8に記載の計算機システム。
【請求項10】
前記第2記憶領域は、前記ネットワークに接続された計算機によって書き込まれた第3ファイルのデータが格納された記憶領域であり、
前記第4記憶領域は、前記ネットワークに接続された計算機によって書き込まれた第4ファイルのデータが格納された記憶領域であることを特徴とする請求項8に記載の計算機システム。
【請求項11】
計算機と、前記計算機に接続されるストレージ装置と、前記計算機と前記ストレージ装置とを接続するネットワークと、を備える計算機システムを制御するセキュリティ管理方法であって、
前記計算機は、前記ネットワークに接続されるインタフェースと、前記インタフェースに接続される第1プロセッサと、前記第1プロセッサに接続されるメモリと、を備え、
前記ストレージ装置は、データを格納するディスク装置と、前記ディスク装置を制御する第2プロセッサと、を備え、
前記ディスク装置の記憶領域は、少なくとも第1記憶領域及び第2記憶領域を含む複数の記憶領域に分割され、
前記セキュリティ管理方法は、
前記第1記憶領域に格納されているデータの一部を読み出すステップと、
前記第1記憶領域に格納されているデータが暗号化されているか否かを判定するステップと、
前記第1記憶領域に格納されているデータが暗号化されていると判定された場合、前記第1記憶領域から読み出されたデータを暗号化して前記第2記憶領域に書き込むステップと、を含むことを特徴とするセキュリティ管理方法。
【請求項12】
前記複数の記憶領域は、さらに第3記憶領域を含み、
前記セキュリティ管理方法は、さらに、
前記第3記憶領域に格納されているデータの一部を読み出すステップと、
前記第1記憶領域に格納されているデータが暗号化されていると判定された場合、前記第3記憶領域から読み出されたデータを暗号化して前記第2記憶領域に書き込むステップと、を含むことを特徴とする請求項11に記載のセキュリティ管理方法。
【請求項13】
前記セキュリティ管理方法は、さらに、
前記第1記憶領域に格納されているデータ、及び、前記第3記憶領域に格納されているデータがいずれも暗号化されている場合、前記第1記憶領域に格納されているデータに適用されている暗号化の強度と、前記第3記憶領域に格納されているデータに適用されている暗号化の強度とを比較するステップと、
前記第1記憶領域に格納されているデータに適用されている暗号化の強度が、前記第3記憶領域に格納されているデータに適用されている暗号化の強度より強い場合、前記第1記憶領域に格納されているデータに適用されているものと同等の強度の暗号化を適用することによって、前記第3記憶領域から読み出されたデータを暗号化するステップと、を含むことを特徴とする請求項12に記載のセキュリティ管理方法。
【請求項14】
前記暗号化の強度を比較するステップでは、
前記第1記憶領域に格納されているデータを暗号化するために使用された暗号化キーの長さが、前記第3記憶領域に格納されているデータを暗号化するために使用された暗号化キーの長さより長い場合、前記第1記憶領域に格納されているデータに適用されている暗号化の強度が、前記第3記憶領域に格納されているデータに適用されている暗号化の強度より強いと判定し、
前記第3記憶領域から読み出されたデータを暗号化するステップでは、
前記第1記憶領域に格納されているデータに適用されている暗号化の強度が、前記第3記憶領域に格納されているデータに適用されている暗号化の強度より強いと判定された場合、前記第1記憶領域に格納されているデータを暗号化するために使用された暗号化キーと同じ長さの暗号化キーを用いて暗号化することを特徴とする請求項13に記載のセキュリティ管理方法。
【請求項15】
前記第1記憶領域、前記第2記憶領域及び前記第3記憶領域の各々は、前記ストレージ装置によって管理される論理ボリュームであることを特徴とする請求項12に記載のセキュリティ管理方法。
【請求項16】
前記第2記憶領域は、前記ストレージ装置によって管理される論理ボリュームであり、
前記第1記憶領域は、前記ネットワークに接続された計算機によって書き込まれた第1ファイルのデータが格納された記憶領域であり、
前記第3記憶領域は、前記ネットワークに接続された計算機によって書き込まれた第2ファイルのデータが格納された記憶領域であることを特徴とする請求項12に記載のセキュリティ管理方法。
【請求項17】
前記メモリは、前記各記憶領域に格納されているデータが暗号化されているか否かを示す情報、及び、前記各記憶領域に格納されているデータが暗号化されている場合、適用されている暗号化の強度を示す情報を格納し、
前記セキュリティ管理方法は、前記メモリに格納された前記情報に基づいて、前記各記憶領域に格納されているデータが暗号化されているか否か、及び、適用されている暗号化の強度を判定するステップを含むことを特徴とする請求項13に記載のセキュリティ管理方法。
【請求項18】
前記複数の記憶領域は、さらに第3記憶領域及び第4記憶領域を含み、
前記セキュリティ管理方法は、さらに、
前記第3記憶領域に格納されているデータの一部を読み出すステップと、
前記第1記憶領域に格納されているデータが暗号化されていないと判定された場合、前記第3記憶領域から読み出されたデータを暗号化せずに前記第4記憶領域に書き込むステップと、を含むことを特徴とする請求項11に記載のセキュリティ管理方法。
【請求項19】
前記複数の記憶領域は、さらに第5記憶領域を含み、
前記セキュリティ管理方法は、さらに、
前記第1記憶領域に格納されているデータ、及び、前記第5記憶領域に格納されているデータがいずれも暗号化されている場合、前記第1記憶領域に格納されているデータに適用されている暗号化の強度と、前記第5記憶領域に格納されているデータに適用されている暗号化の強度とを比較するステップと、
前記第1記憶領域に格納されているデータに適用されている暗号化の強度が、前記第5記憶領域に格納されているデータに適用されている暗号化の強度より強い場合、前記第1記憶領域に格納されているデータに適用されているものと同等の強度の暗号化を適用することによって、前記第5記憶領域から読み出されたデータを暗号化して前記第2記憶領域に書き込むステップと、を含むことを特徴とする請求項18に記載のセキュリティ管理方法。
【請求項20】
前記第2記憶領域は、前記ネットワークに接続された計算機によって書き込まれた第3ファイルのデータが格納された記憶領域であり、
前記第4記憶領域は、前記ネットワークに接続された計算機によって書き込まれた第4ファイルのデータが格納された記憶領域であることを特徴とする請求項18に記載のセキュリティ管理方法。

【図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

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2009−64055(P2009−64055A)
【公開日】平成21年3月26日(2009.3.26)
【国際特許分類】
【出願番号】特願2007−228702(P2007−228702)
【出願日】平成19年9月4日(2007.9.4)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】