以下、本発明の実施の一形態として開示するデータ秘匿・復元システムについて、図を用いて説明する。
図1は、開示するデータ秘匿・復元システムの原理を概説するための図である。
開示するデータ秘匿・復元システム(以下、単に「システム」と呼ぶ)1は、システム1のユーザにより入力されたデータを保存するデータ蓄積装置(サーバ)2、ユーザの入力されたデータの暗号化で使用する暗号化キーを配布する暗号化キー配布装置3、サーバ2に格納するデータの秘匿化処理と復元処理とを行うデータ秘匿・復元装置4、および、サーバ2に保存されているデータの帳票を作成する帳票作成装置5を備える。
データ秘匿・復元装置4および帳票作成装置5は、システム1の各ユーザが使用するコンピュータ(ユーザ端末)7内に備えられる。図1に示すように、ユーザA、Bが使用するユーザ端末7A、7Bのそれぞれに、データ秘匿・復元装置4A、4Bおよび帳票作成装置5A、5Bが備えられている。
データ蓄積装置(サーバ)2は、ユーザ端末7から受信したデータdまたは安全化データd’を保存し、もしくは受信したデータdまたは安全化データd’に応じて保存しているデータに対する処理を行う情報処理装置である。
データdは、データが入力された画面名とその画面で入力された値を含む入力情報とを含むデータ(入力データ)であり、入力情報に、データ秘匿・復元装置4による暗号化の処理対象となる部分が含まれるものがある。
なお、この実施例において、データdは、安全化データd’の処理結果情報の一部がデータ秘匿・復元装置4によって復号されたデータ(復号済み処理結果情報)を示すことがある。
安全化データd’は、ユーザ端末7で入力されたデータdの入力情報に対応する処理結果を含むデータ(処理結果データ)であり、処理結果情報には、データ秘匿・復元装置4による復号の対象となる秘匿化された部分(値)と、対象とならない秘匿化されていない部分(値)とを含む。
サーバ2は、ユーザ端末7のデータ秘匿・復元装置4の処理で使用する秘匿化制御情報を事前にデータ秘匿・復元装置4に配布する。
秘匿化制御情報は、入力されるデータに含まれる値のうち秘匿化の対象となる値を特定する情報であり、画面や処理毎に秘匿化するデータの位置を示す秘匿化ポリシ21、および秘匿化するデータの値を示す秘匿辞書22である。図1において秘匿化制御情報は安全化データと同じサーバに格納しているが、秘匿化制御情報の改ざんにより秘匿するデータが平文で通信されることを防ぐため、秘匿化制御情報は安全化データおよび帳票フォーマットとは異なる更新権限とする。または別サーバに格納する。
さらに、サーバ2は、帳票作成装置5で使用する帳票の出力形式を示す帳票フォーマット23を記憶し、要求に応じてユーザ端末7の帳票作成装置5に配布する。
さらに、サーバ2は、保存している安全化データdをユーザ以外の第三者に使用させるため、第三者が使用するコンピュータ(第三者端末)8とデータの送受信をすることができる。
暗号化キー配布装置3は、ユーザ端末7から受信したユーザがシステム1へのログインに用いるログイン情報(識別情報、パスワード等)を用いてユーザ認証を行い、認証したユーザのユーザ端末7へ暗号化キーkを送信する。
データ秘匿・復元装置4は、秘匿化ポリシ21に基づいて、ユーザ端末7で入力されたデータdの一部に暗号化キーkを用いて暗号化を行い、データdの一部を暗号化結果で置換した安全化データd’を生成する秘匿化処理と、サーバ2から受信した安全化データd’の一部を暗号化キーkで復号して元のデータdに復元する復元処理とを行い、システム1からのログアウト(タイムアウトを含む)時に内部で保持している暗号化キーkを削除する。
帳票作成装置5は、ユーザ端末7で帳票出力が要求されると、要求された帳票に対応する帳票フォーマット23、および帳票出力される帳票情報検索条件に該当する安全化データd’を取得して格納した帳票データとをサーバ2から受信して帳票を作成する処理手段である。
次に、図1に示すシステム1の動作概要を説明する。
ユーザ端末7Aのデータ秘匿・復元装置4Aが事前に保持する秘匿化ポリシ21は、秘匿化するデータ(値)の位置を、画面毎に入力されるデータの項目名で定義し、ここでは、入力データdの項目a、項目bの値が秘匿する値として設定されているとする。
[ユーザAの登録情報の処理例]
まず、ユーザAが登録情報をサーバ2へ保存する場合の処理例を説明する。
ユーザ端末7AがユーザAのログイン情報を暗号化キー配布装置3に送信すると、暗号化キー配布装置3は、ユーザAの認証完了後に暗号化キーkをユーザ端末7Aに暗号化送信する。
ユーザ端末7Aのデータ入出力装置(図示しない)の情報登録画面の各項目(項目a、項目b、項目c、…)に、それぞれ登録する値(秘匿a、秘匿b、平文c、…)が入力されると、入力した画面名と入力された登録情報(項目a=秘匿a、項目b=秘匿b、項目c=平文c、…)を含む平文のデータdを生成する。
データ秘匿・復元装置4Aは、秘匿化ポリシ21に基づいて、データdの登録情報の項目a、bの値の秘匿a、秘匿bをそれぞれ暗号化キーkで暗号化し、元の値を暗号化結果で置換して「項目a=暗号化結果a(図中「△×□」で示す)、項目b=暗号化結果b(図中「▽○◇」で示す)、項目c=平文c、…」という一部のデータが秘匿化された安全化データd’(登録情報)を生成して、安全化データd’をサーバ2へ送信する。サーバ2は、受信した安全化データd’(登録情報)をそのままの状態で保存する。
登録が完了してユーザAがシステム1をログアウトする時に、データ秘匿・復元装置4Aは、保持している暗号化キーkを削除する。
これにより、ユーザAが入力した秘匿したい情報がサーバ2では暗号化された状態で保存され、さらに、サーバ2に暗号化キーkが保存されないため、秘匿したい情報をより安全な状態で保存することができる。また、暗号化キーkは、ユーザAがシステム1にログインしている間のみユーザ端末7Aに保持されるため、暗号化キーkの漏洩の危険性を軽減することができる。
[ユーザAの情報検索の処理例]
次に、ユーザAがサーバ2に登録したデータを検索する場合の処理例を説明する。なお、ログイン時およびログアウト時の暗号化キーkの配布および削除については上記の処理例と同様であるので説明を省略する。
ユーザ端末7Aのデータ入出力装置の情報検索画面の検索条件を示す項目(項目a)に値(秘匿a)が入力されると、入力した画面名と入力された検索条件(項目a=秘匿a)を含む平文のデータdを作成する。
データ秘匿・復元装置4Aは、秘匿化ポリシ21に基づいて、データdの検索条件の項目aの値の秘匿aを暗号化キーkで暗号化し、元の値を暗号化結果で置換して「項目a=暗号化結果a(△×□)」という一部のデータが秘匿化された安全化データd’(検索条件)を生成してサーバ2へ送信する。
サーバ2は、受信した安全化データd’(検索条件)の「項目a=秘匿a」を検索キーとして保存している安全化データd’を検索し、検索結果として該当する登録情報を「項目a=暗号化結果a(△×□)、項目b=暗号化結果b(▽○◇)、項目c=平文c、…」を含む安全化データd’(検索結果)を作成し、ユーザ端末7Aへ送信する。
ユーザ端末7は、サーバ2から安全化データd’(検索結果)を受信すると、データ秘匿・復元装置4Aは、安全化データd’(検索結果)から暗号化された値を検出して、暗号化キーkで復号し、復号済み処理結果情報として、平文となった「項目a=秘匿a、項目b=秘匿b、項目c=平文c、…」という検索結果を含むデータdをデータ入出力装置へ渡す。
これにより、データ入出力装置は、情報検索画面に復号された検索結果を表示する。
[ユーザAの帳票出力の処理例]
次に、ユーザAがサーバ2に登録情報の帳票出力する場合の処理例を説明する。なお、暗号化キーkの配布および削除は上記2つの処理例と同様である。
ユーザ端末7Aのデータ入出力装置の帳票出力指示画面の帳票情報検索条件を示す項目(項目a)に値(秘匿a)が入力されると、入力した画面名と入力された帳票情報検索条件(項目a=秘匿a)を含む平文のデータdを作成する。
データ秘匿・復元装置4Aは、秘匿化ポリシ21に基づいて、データdの検索条件の項目aの値の秘匿aを暗号化キーkで暗号化し、元の値を暗号化結果で置換して「項目a=暗号化結果a(△×□)」という一部のデータが秘匿化された安全化データd’(帳票情報検索条件)を生成してサーバ2へ送信する。
サーバ2は、受信した安全化データd’(帳票情報検索条件)の画面名から、対応する帳票の帳票フォーマット23を特定してユーザ端末7Aへ送信する。さらに、サーバ2は、受信した安全化データd’(帳票情報検索条件)の「項目a=秘匿a」を検索キーとして保存している安全化データd’を検索し、検索結果として該当する情報を「項目a=暗号化結果a(△×□)、項目b=暗号化結果b(▽○◇)、項目c=平文c、…」を抽出し、抽出した帳票情報を含む安全化データd’(帳票情報)を作成し、ユーザ端末7Aへ送信する。
ユーザ端末7は、サーバ2から、帳票フォーマット23および安全化データd’(帳票情報)を受信し、帳票フォーマット23を帳票作成装置5へ渡す。データ秘匿・復元装置4Aは、受信した安全化データd’(帳票情報)から暗号化された値を検出し、暗号化キーkで復号し、復号済み処理結果情報として、平文となった「項目a=秘匿a、項目b=秘匿b、項目c=平文c、…」を含むデータd(帳票情報)を帳票作成装置へ渡す。
これにより、帳票作成装置5は、帳票フォーマット23と復元されたデータd(帳票情報)により帳票を作成して出力する。
[ユーザBの情報検索の処理例]
次に、ユーザBが、ユーザAが登録したサーバ2の情報を利用する場合を説明する。
ここで、ユーザBは、システム1を利用してユーザAの登録情報の全てを使用する権限(暗号化キーkが配布される権限)を持つものとする。
ユーザ端末7BがユーザBのログイン情報を暗号化キー配布装置3に送信すると、暗号化キー配布装置3は、ユーザBの認証完了後に、ユーザAと共通して登録されている暗号化キーkをユーザ端末7Bに暗号化送信する。
これにより、ユーザBは、ユーザAによる操作の場合と同様の処理により、サーバ2に保存されている安全化データd’を、復元した状態で利用することができる。
なお、ユーザBがユーザAの登録情報の全てを使用する権限を持たず、暗号化キーkが配布されない場合には、以降で説明する第三者の処理例と同様となる。
[第三者の情報検索の処理例]
次に、第三者が、サーバ2に保存されている情報を利用する場合を説明する。
システム1は、サーバ2に保存されている情報の秘匿化されていない情報のみを使用するために第三者のログインを認めているとする。また、第三者が使用する第三者端末8は、データ秘匿・復元装置4および帳票作成装置5を有していない。
第三者端末8のデータ入出力装置の情報検索画面の検索条件を示す項目(項目c)に値(平文c)が入力されると、入力した画面名と入力された検索条件(項目c=平文c)を含む平文のデータd(検索条件)が、サーバ2へ送信される。
サーバ2は、受信したデータd(検索条件)の「項目c=平文c」を検索キーとして保存している安全化データd’を検索し、検索結果として該当する登録情報を「項目a=暗号化結果a(△×□)、項目b=暗号化結果b(▽○◇)、項目c=平文c、…」を含む安全化データd’(検索結果)を作成し、第三者端末8へ送信する。
第三者端末8は、サーバ2から安全化データd’(検索結果)を受信すると、データ入出力装置は、データdの「暗号化結果a(△×□)、項目b=暗号化結果b(▽○◇)、項目c=平文c、…」という検索結果を表示する。
第三者は、サーバ2に保存された情報から検索条件を満たすデータを取得し、取得したデータに含まれる秘匿化されていない「項目c、…」の項目についての情報を表示等して利用することができる。第三者にとって「項目c、…」の情報を利用したい場合は、他の項目a、bの情報が秘匿化された状態であってもサーバ2に保存されているデータは有用である。このように、第三者に送信される安全化データd’の秘匿化された項目a、項目bは暗号化された値のままであり、第三者が復号のために暗号化キーkを得ることが困難であるので、秘匿化したい情報を安全の状態にしたままで第三者のデータ利用を図ることができる。
以下、本発明の一実施例をより詳細に説明する。
図2は、一実施例におけるデータ秘匿・復元システムを構成する各装置の機能ブロック構成例を示す図である。
データ蓄積装置(サーバ)2は、安全化データ記憶部20、秘匿化制御情報記憶部24、秘匿化制御情報配布部25、データ登録/作成部26を備える情報処理装置である。データ蓄積装置2に備える各部はデータ秘匿・復元装置4から利用可能であれば、複数の論理的または物理的な情報処理装置に分散してよい。
安全化データ記憶部20は、データdに含まれる情報(値)を部分的に秘匿化したデータである安全化データd’を記憶する手段である。
秘匿化制御情報記憶部24は、データ秘匿・復元装置4で秘匿化処理および復元処理に使用する秘匿化制御情報である秘匿化ポリシ21、秘匿辞書22を記憶する手段である。
秘匿化ポリシ21は、処理に対応する画面名または帳票名毎に、データ入出力装置6で入力された情報のうち秘匿化または復号する情報(値)を、例えば項目名、行/列の番号等により示す情報である。秘匿化する値は、氏名、住所等の個人情報のように第三者に開示させない情報である。
秘匿辞書22は、データ入出力装置6で入力された文字列、数値等の値のうち秘匿化または復号する値、表現形式等を示す情報であり、例えば、人名を示す文字列、電話番号、郵便番号、クレジットカード番号等を示す数字列の表現形式を示す情報である。
秘匿化制御情報配布部25は、秘匿化制御情報記憶部24に記憶されている秘匿化制御情報を、インターネット等のネットワークNを介してデータ秘匿・復元装置4へ予め配布する手段である。秘匿化制御情報配布部25は、秘匿化制御情報が変更された場合に、RSS(Rich Site Summary)等により更新を通知し、データ秘匿・復元装置4が、更新の通知により秘匿化制御情報をダウンロードすることによって、常に最新の情報が提供される。秘匿化制御情報をダウンロードする場合、秘匿化制御情報の改ざんを防ぐため、httpsのような暗号化通信を用いる。
データ登録/作成部26は、ユーザ端末7から受信したデータ(データd、安全化データd’)をそのままの状態で安全化データ記憶部20に格納し、もしくは、処理結果として得た安全化データ記憶部20のデータをそのままの状態でネットワークNを介して要求元のユーザ端末7へ送信する手段である。
サーバ2は、帳票作成機能として、帳票フォーマット記憶部27、帳票パラメタ作成部281、帳票フォーマット作成部282および帳票データ送信部283を備える。
帳票フォーマット記憶部27は、ユーザ端末7で出力する帳票の帳票フォーマット23を記憶する手段である。帳票フォーマット23は、帳票の表現形式を規定する情報を、ユーザ端末7が備える帳票作成装置5の処理プログラムに対応したデータ形式で記述する情報である。帳票フォーマット記憶部27には、ユーザ端末7が備える帳票作成装置5に対応して予め作成された帳票フォーマット23が記憶される。帳票フォーマット記憶部27は、図示しないが、帳票名と帳票フォーマット23とを対応づける帳票フォーマットテーブルとして構成されてもよい。
帳票パラメタ作成部281は、ユーザ端末7から送信された安全化データd’(帳票情報検索条件)をもとに、帳票データを作成する。さらに、帳票作成に必要なパラメタとして、帳票名、対応する帳票フォーマット、帳票情報検索結果を格納する帳票データのファイル名等を設定した帳票パラメタを作成し、安全化データd’(帳票情報検索条件)の送信元のユーザ端末7へ送信する手段である。
帳票フォーマット作成部282は、帳票パラメタの帳票名で帳票フォーマット記憶部27を参照して帳票フォーマット23を生成し、安全化データd’(帳票情報検索条件)の送信元のユーザ端末7へ送信する手段である。
帳票データ送信部283は、帳票データ作成部281より受け取った帳票パラメタの帳票データのファイル名より帳票情報検索の処理結果を格納した帳票データを安全化データd’(帳票情報)として送信元のユーザ端末7へ送信する手段である。
帳票データは、帳票名および処理結果を持ち、処理結果には、帳票名に対応する帳票フォーマット23で規定された帳票の出力項目とその値との並びが格納される。帳票の出力項目は安全化データ記憶部20に保存されているデータの項目と対応づけられている。
これにより、帳票情報検索の処理で得た安全化データd’の値が、秘匿化ポリシ21に基づく暗号化処理によって秘匿化されている項目のものである場合は秘匿化された値が、それ以外の項目の場合は平文の値(ユーザ端末7で入力された値)が帳票データの処理結果に格納される。したがって、帳票データは、帳票情報検索の処理結果によっては帳票名以外の部分の値は毎回異なるものとなる。
ユーザ端末7は、データ秘匿・復元装置4、帳票作成装置5、およびデータ入出力装置6を備える情報処理装置である。
データ秘匿・復元装置4は、秘匿化制御情報記憶部40、暗号化キー取得部41、暗号化キー削除部42、送信解析部43、データ秘匿部44、受信解析部45、データ復号部46、およびデータ通信部47を備える。
秘匿化制御情報記憶部40は、サーバ2から取得した秘匿化制御情報である秘匿化ポリシ21、秘匿辞書22を記憶する手段である。
暗号化キー取得部41は、暗号化キー配布装置3から暗号化キーkを取得してデータ秘匿・復元装置4内に保存する手段である。暗号化キー取得部41は、ユーザ識別値、パスワード、暗号化キーを暗号化キー配布装置3へ送信して暗号化キーkを得るので、本例では、ユーザ端末7と暗号化キー配布装置3との間のネットワークはhttpsのような暗号化された通信路を用いることを前提としている。
暗号化キー削除部42は、システム1からのログアウト時または所定の時間の経過時に、データ秘匿・復元装置4に保存されている暗号化キーkを削除する手段である。暗号化キー削除部42がログアウト等のときに暗号化キーkを削除することで、ユーザ端末7からの暗号化キーの漏洩、紛失の危険性を低減している。
送信解析部43は、データ入出力装置6で入力された情報を含むデータdを受け取り、受け取ったデータdを解析し、データdが入力された画面名に対応する秘匿化ポリシ21を特定する手段である。
データdは、データ入力が実行された画面名、およびその画面から入力されたデータの項目名と入力された値との組を0個以上持つ。画面名は、例えば、サーバ2への情報登録処理のための情報登録画面、サーバ2に保存されている情報の検索処理のための情報検索画面で、サーバ2で保存されている情報を含む帳票作成のための帳票作成指示画面等である。データdが含む入力されたデータは、項目名の他、データが入力された行または列または範囲を特定する情報等によって値と対応づけられていてもよい。
データ秘匿部44は、秘匿化制御情報に基づいてデータdの一部の値を暗号化した安全化データd’を生成する手段である。データ秘匿部44は、送信解析部43で特定された秘匿化ポリシ21に基づいて、データdから秘匿化する項目を特定し、特定した項目の値を暗号化キーkを用いて暗号化し、暗号化の実施を示す暗号化識別子および暗号化結果(暗号化した値)を結合した値(秘匿化した値)を元の値の代わりに設定して安全化データd’へ変換する。
さらに、データ秘匿部44は、データdの秘匿化する項目以外の項目の値(数値、文字列等)が秘匿辞書22に定義された表現形式に一致する場合に、一致した値を暗号化キーkで暗号化し、所定の暗号化識別子を暗号化の処理結果に結合した値(秘匿化した値)を元の値の代わりに設定する。
暗号化識別子は、その値に暗号化が実施されていることを示す情報であればよく、例えば、秘匿化する項目名に特定の表現形式の値を付加したもの、秘匿化する項目の項目名を暗号化キーkで暗号化した処理結果(暗号化した項目名)等を使用してもよい。また、暗号化識別子は、データ復号部46が安全化データから暗号化識別子を検出する所定の方法に対応した態様で秘匿化された値に付与されていればどのような態様であってもよく、本例のように、暗号化識別子が暗号化の処理結果の先頭のように所定の位置に結合される他、暗号化した処理結果を所定の専用文字列の暗号化識別子で挟んだ形式で設定されていてもよい。
データ秘匿部44が、データdの暗号化した値に暗号化識別子を付加することにより、データ復号部46は、秘匿化ポリシ21を参照することなく、安全化データd’の暗号化された値を暗号化識別子で検出し、適切に復号を行うことができる。
データ秘匿部44および後述するデータ復号部46が行う暗号化および復号の処理アルゴリズムとして、例えばAES(Advanced Encryption Standard)、Camellia等のような共通鍵暗号化方式の他、種々の暗号化方式、値をユニークなトークンに置換するトークン方式等を採用してもよい。
受信解析部45は、データ秘匿部44が実行する暗号化に対応する復号方式で、サーバ2から受信するデータdまたは安全化データd’を解析し、受信した安全化データd’をデータ復号部46に通知する手段である。
データ復号部46は、安全化データd’に含まれる秘匿化された値を復号し、平文の値のみを持つデータdに変換し、変換したデータdをデータ入出力装置6に渡す手段である。データ復号部46は、安全化データd’の処理結果に格納されている値から暗号化識別子を検出し、検出した暗号化識別子を含む値(秘匿化された値)から暗号化識別子を除外し、残りの値を暗号化キーkで復号し、復号処理結果の値(平文)をその項目の元の値として設定する。
データ通信部47は、データ秘匿・復元装置4と、サーバ2または暗号化キー配布装置3との間で種々のデータの送受信を行う手段である。
帳票作成装置5は、帳票フォーマット取得部51、帳票データ取得部52、帳票作成部53を備える処理部であり、データ入出力装置6の帳票作成指示部63からの通知により起動する。
帳票フォーマット取得部51は、帳票パラメタの帳票名を参照し、サーバ2へ帳票名を送り、サーバ2から送信された帳票フォーマット23を取得する手段である。サーバ2から、帳票フォーマット23が安全化されたデータとして送信されている場合は、データ秘匿・復元装置4で復号された帳票フォーマット23を取得する。帳票フォーマット取得部51がキャッシュ機能を備えて、該当する帳票フォーマット23を既に保存している場合には、帳票フォーマット取得部51は、サーバ2から帳票フォーマットを取得することなく、保存している帳票フォーマットを使用することができる。
帳票データ取得部52は、帳票作成指示部63で入力された帳票情報検索条件を含む安全化データd’(帳票情報検索条件)に対応してサーバ2で作成された安全化データd(帳票情報)から、帳票情報検索の処理結果である復号された帳票データ(平文)を取得する手段である。
なお、サーバ2から受信したデータが秘匿化された値を含まないデータd(帳票情報)であれば、帳票データ取得部52は、データ秘匿・復元装置4の処理を介さずに、平文のデータd(帳票情報)を帳票データとして取得する。
帳票作成部53は、帳票フォーマット23および復号された帳票データをもとに帳票を作成する手段である。帳票は、例えばPDF(Portable Document Format)形式など所定の出力可能な形式のデータである。
ユーザ端末7のデータ入出力装置6は、GUIを介してユーザのデータ入力を受け付け、ユーザが操作した画面名およびユーザが入力したデータ(値)を含むデータdを生成してデータ秘匿・復元装置4へ渡す手段である。データ入出力装置6は、ログイン/アウト処理部61、データ登録/検索部62、帳票作成指示部63を備える。
ログイン/アウト処理部61は、システム1のログインおよびログアウト処理を行う手段である。ログイン/アウト処理部61は、ログイン時に暗号化キー配布装置3へユーザが入力したログイン情報を送信し、ログアウト時に、データ秘匿・復元装置6へログアウトを通知する。
データ登録/検索部62は、サーバ2への情報登録処理、サーバ2が保存する情報に対する検索処理を行い、所定の画面からユーザが入力した登録情報または検索条件のデータ(値)を受け付け、もしくは受け付けたデータによるサーバ2の処理結果を表示する手段である。
帳票作成指示部63は、サーバ2が保存する情報による帳票出力を指示する手段である。帳票作成指示部63は、所定の画面からユーザが入力した帳票出力する情報の検索条件(帳票情報検索条件)を受け付け、帳票作成装置5へ帳票出力要求を通知する。
図2に示す構成例では、ユーザ端末7の内部にデータ秘匿・復元装置4を設けることにより、データ秘匿・復元装置4とデータ入出力装置6と間でのデータ盗聴の危険性がより低くなるようにしている。
図3は、暗号化キー配布装置3のブロック構成例を示す図である。
暗号化キー配布装置3は、認証情報記憶部30、暗号化キー記憶部31および暗号化キー配布部32を備える情報処理装置である。
認証情報記憶部30は、暗号化キー配布のためのユーザの認証情報を記憶する手段である。認証情報は、各ユーザを識別する値(ユーザ識別値)およびユーザ本人のみが入力できる値(パスワード)等を含む。
暗号化キー記憶部31は、ユーザの識別情報に対応づけて、ユーザ端末7のデータ秘匿・復元装置4が使用する一または複数の暗号化キーkを記憶する手段である。暗号化キーkは、データ秘匿・復元装置4が実行する処理アルゴリズムに対応する情報であり、例えば、一般的な暗号化処理の場合には十分な長さを持つ共通鍵である。
暗号化キー配布部32は、ユーザの認証が成功した場合に、ユーザに対応づけられた暗号化キーkを、認証したユーザのユーザ端末7へ一般通信または暗号化通信により送信する手段である。
暗号化キー配布装置3は、第三者からのアクセス制限が可能な安全な場所へ設けられ、一例として、システム1のユーザ認証を行う認証サーバ内に設けるように構成されてもよい。この場合に、暗号化キー配布装置3は、認証サーバでユーザ認証ができたユーザの認証情報を得て、対応する暗号化キーkを認証したユーザのユーザ端末7へ送信する。これにより、暗号化キーの漏洩の危険性を減らすことができる。
暗号化キー配布装置3は、図3に図示しない情報更新部を備える。情報更新部は、認証情報および暗号化キーの情報の登録、変更、削除等を行うが、一般的な情報の更新処理であるので説明を省略する。
図4は、秘匿化ポリシ21のデータ構造例を示す図である。
秘匿化ポリシ21は、データ入出力装置6で表示される画面名または帳票名毎に設定し、1つの秘匿化ポリシ21において0個以上の画面名または帳票名に対応する定義を記述することができ、画面名または帳票名毎の定義は、0個以上の値の位置、例えば秘匿化するデータ(値)を示す項目名や位置または範囲を含む。秘匿化ポリシ21は、XML、HTMLで記述してもよい。画面がHTMLで記述される場合には、秘匿化ポリシ21の画面名は、画面のURLが相当し、さらに、リクエストまたはレスポンスの識別を持つ。
図4に示す秘匿化ポリシ21の例において、先頭の記述は、画面名が「画面0001」である画面で入力されるデータdで秘匿化する項目を示し、対応する画面で「氏名」、「住所」の項目に入力される値が秘匿化の対象であることを表している。
秘匿化ポリシ21は、暗号化する値が特定できればどのような形式で定義されていてもよく、秘匿化ポリシ21と処理結果であるデータや帳票の形式との関係について特別な制約はない。秘匿化ポリシ21の定義は、例えばデータdがCSV形式である場合に、暗号化または復号する値の位置や範囲を表形式での行番号または列番号で記述するものであってもよい。
図5は、秘匿辞書22のデータ構造例を示す図である。
秘匿辞書22は、データ入出力装置6で入力されたデータdの秘匿化する値とする文字列や値の表現形式を正規表現または簡略化した正規表現で記述する。秘匿辞書22は、それぞれが0個以上の、姓名や名称とみなす所定の文字列や、郵便番号、電話番号、クレジットカード番号等とみなす所定の数字列の表現を含む。
図5に示す秘匿辞書22は、「鈴木、佐藤、…」のような名字を示す文字列、「nnnnnnn(nは0〜9)」、「nnn−nnnn」のような郵便番号とみなす数列の形式、「nnnnnnnnnnnnnnnn」、「nnnn−nnnn−nnnn−nnnn」のようなクレジットカード番号とみなす数列の形式等を定義している。
図6は、認証情報記憶部30のデータ構造例を示す図である。
認証情報を記憶する認証情報記憶部30は、図6に示すような認証情報テーブルとして構成されてもよい。図6の認証情報テーブル30は、各ユーザのユーザ識別値、パスワード、および暗号化キー識別値を格納している。
ユーザ識別値は、システム1にログイン可能なユーザを識別するユニークな値である。パスワードは、ユーザ識別値で特定するユーザのみが入力できる値である。暗号化キー識別値は、暗号化キーkを識別する値であり、複数のユーザに対して同一値が設定されていてもよい。認証情報テーブル30のパスワードおよび暗号化キー識別値は、暗号化された値で設定されていてもよい。
図6に示す認証情報テーブル30の先頭行のデータは、ユーザ識別値が「UID1」であるユーザについて、パスワードPW1および暗号化キー識別値kID1が設定されていることを表す。
図7は、暗号化キー記憶部31のデータ構造例を示す図である。
暗号化キーkを記憶する暗号化キー記憶部31は、例えば図7に示すような暗号化キーテーブルとして構成されてもよい。暗号化キーテーブル31は、暗号化キー識別値と、対応する暗号化キーkとを格納している。
暗号化キー識別値は、暗号化キーkを識別する値であり、認証情報記憶部30の認証情報に含まれる値である。暗号化キーkは、秘匿化・復元装置4が実行する暗号化および復号の処理で使用する暗号化キーそのものの値または暗号化キーを生成する元情報である。
暗号化キー識別値により、ユーザ認証値と暗号化キーkとが対応づけられ、ユーザに配布する暗号化キーkが定まる。
図8は、データdの例を示す図である。
データdは、データ入出力装置6においてユーザによって入力されたデータであって、安全化データd’の元となるデータ、または、サーバ2から受信した安全化データd’を復号したデータである。安全化データd’の元データとして、情報登録画面での入力によるデータd(登録情報)、情報検索画面での入力によるデータd(検索条件)、帳票作成指示画面での入力によるデータd(帳票情報検索条件)等があり、安全化データd’を復号したデータとして、データd(検索結果)、データd(帳票情報)等がある。
データdは、画面名および処理結果を持つ。画面名は、データ入出力装置6でユーザの入力がなされた画面を識別する情報である。画面がHTMLで記述される場合はヘッダ部分のURLが画面名となる。処理結果は、画面でユーザ操作により入力または選択されたデータであり、項目名と値との組の並び(図中、[項目名=値]で示す)を0個以上含む。項目名は、画面に設けられた値の入力を受け付ける項目を識別する情報であり、値は、対応する項目名に対して入力または選択されたデータである。
図9は、安全化データd’の例を示す図である。
安全化データd’は、データdを秘匿化して作成されるデータであり、サーバ2に保存されるデータである。
安全化データd’は、データdの一部の値が暗号化されているデータであり、データ構造は、データdと同じく画面名および処理結果を持つ。画面名は、処理前のデータdの画面名である。処理結果は、画面名に対応づけられた処理の結果として得られたデータであり、項目名と値との組の並び([項目名=値])を0個以上含む。
図9の安全化データd’は、図4の秘匿化ポリシ21および図5の秘匿辞書22に基づいて、図8に示すデータd(登録情報)を秘匿化したものである。図8に示すデータdの秘匿化する「氏名」および「住所」の2項目の値が、暗号化の結果、図9の安全化データd’(登録情報)では「暗号化識別子=暗号化処理結果」という秘匿化された値に置換されている。さらに、図8のデータdの秘匿辞書22で規定する表現形式に一致する「備考」の値が、暗号化の結果、「暗号化識別子=暗号化処理結果」という秘匿化された値に置換されている。
データdおよび安全化データd’は、例えばXMLで記述されるが、データの記述形式に制約はない。
図10は、帳票パラメタの例を示す図である。
帳票パラメタ作成部281が作成する帳票パラメタは、帳票作成に必要な、帳票名、作成識別、フォーマット名、格納場所、帳票ファイル名等のパラメタ情報を持つ。
帳票名は、帳票作成指示の画面名に対応づけられた帳票を識別する情報である。帳票名は、帳票作成指示部63から帳票パラメタ作成部281へ送信される帳票作成指示に含まれる帳票名をもとに定められる。
作成識別は、帳票作成処理を識別する値であり、サーバ2内でユニークである。
フォーマット名は、帳票に対応する帳票フォーマット23を識別する情報であり、帳票フォーマット記憶部27に対する検索キーとなる。
格納場所は、帳票パラメタ作成部281が作成する帳票データの格納場所を示す情報であり、帳票データ取得部52が帳票データ送信部283に送信要求するファイル名であり、例えばサーバ2内の帳票データのデータファイル名である。
帳票ファイル名は、ユーザ端末7で作成される帳票のファイル名である。
図11は、帳票データの例を示す図である。
帳票パラメタ作成部281が作成する帳票データは、ユーザ端末7の帳票作成指示画面で入力されたデータd(帳票情報検索条件)に対応して作成されるデータであり、帳票名および処理結果を持つ。
帳票名は、帳票パラメタの帳票名(帳票作成指示部63により送信される帳票作成指示に含まれる帳票名)をもとに定まる。
処理結果には、ユーザ端末7のデータd(帳票情報検索条件)に含まれる帳票情報検索条件による安全化データ記憶部20の検索結果であるデータが格納され、項目名と値との組([項目名=値])の並びを含む。
項目名は、帳票名で特定される帳票フォーマット23に規定されている出力項目であり、検索で得られた安全化データd’の項目と対応づけられている。値は、検索で得られた安全化データd’の出力項目に対応する項目の値がそのままの状態で格納され、その値は、データ秘匿・復元装置4で秘匿化された値またはデータ入出力装置6で入力された値(平文の値)である。
図11(A)は、帳票情報検索の結果として安全化データd’を得た場合の帳票データの例である。図11(A)の帳票データの処理結果では、出力項目の「顧客名」、「宛先」の値は、対応するデータの項目「氏名」、「住所」の秘匿化された値(暗号化識別子=暗号化処理結果の結合)となる。
処理結果に帳票情報検索結果を格納した帳票データは、安全化データd’(帳票情報)またはデータd(帳票情報)としてユーザ端末7へ送信される。ユーザ端末7では、データ秘匿・復元装置4により、受信した安全化データd’(帳票情報)の秘匿化された値が検出されて復号され、平文のデータd(帳票情報)へ変換される。
図11(B)は、復号された平文のデータdの場合の帳票データの例である。図11(B)の帳票データの処理結果では、図11(A)の帳票データでは「顧客名」、「宛先」の秘匿化されている値が復号され、データ入出力装置6で入力された値(平文)となっている。
帳票データに相当する安全化データd’(帳票情報)およびデータd(帳票情報)は、例えばXMLで記述されるが、データの記述形式に制約はない。
以下、システム1における種々の処理動作について説明する。
図12は、暗号化キー取得処理の処理フロー図である。
データ秘匿・復元装置4の暗号化キー取得部41は、データ入出力装置6のログイン/アウト処理部61から、ログイン画面でユーザが入力したログイン情報(ユーザ識別値およびパスワード)を受信すると(ステップS10)、ログイン情報を暗号化キー配布装置3へ送信する(ステップS11)。ログイン情報を受信した暗号化キー配布装置3の処理は、後述する。
暗号化キー取得部41は、暗号化キー配布装置3からユーザの認証完了により暗号化キーkを取得した場合は(ステップS12のY)、取得した暗号化キーkをデータ秘匿・復元装置4の内部に保存し(ステップS13)、暗号化キー配布装置3から認証失敗により暗号化キーkを取得しなかった場合は(ステップS12のN)、認証失敗をログイン/アウト処理部61に通知し、ログイン/アウト処理部61で、認証失敗を表示する(ステップS14)。
図13は、暗号化キー配布処理の処理フロー図である。
暗号化キー配布装置3の暗号化キー配布部32は、ユーザ端末7のデータ入出力装置6からログイン情報を受信すると(ステップS20)、ログイン情報のユーザ識別値で認証情報記憶部30を検索する(ステップS21)。得られたパスワードを所定の方法で復号し、認証情報記憶部30に一致する認証情報がある場合は(ステップS22のY)、処理をステップS23へ進め、一致する認証情報がない場合は(ステップS22のN)、処理をステップS28へ進める。
暗号化キー配布部32は、一致した認証情報から暗号化キー識別値を参照し(ステップS23)、参照した暗号化キー識別値を所定の方式で復号する(ステップS24)。そして、暗号化キー配布部32は、復号した暗号化キー識別値で暗号化キー記憶部31を検索し(ステップS25)、復号した暗号化キー識別値に対応する暗号化キーが存在する場合は(ステップS26のY)、暗号化キーをユーザ端末7へ送信する(ステップS27)。
一致する認証情報がない場合(ステップS22のN)または暗号化キー識別値に対応する暗号化キーが存在しない場合(ステップS26のN)、認証失敗をユーザ端末7へ送信する(ステップS28)。
図14は、登録情報または検索条件を含むデータの秘匿化処理の処理フロー図である。
データ秘匿・復元装置4のデータ通信部47は、データ入出力装置6から、データ登録/検索部62の情報登録画面の画面名およびその画面でユーザが入力した登録情報を含むデータd(登録情報)、もしくは情報検索画面の画面名およびその画面でユーザが入力した検索条件を含むデータd(検索条件)を取得すると(ステップS30)、送信解析部43は、データdから画面名を抽出し(ステップS31)、抽出した画面名で秘匿化制御情報記憶部40の秘匿化ポリシ21を検索する(ステップS32)。画面名に対応する秘匿化ポリシ21が存在する場合は(ステップS33のY)、処理をステップS34へ進め、一致する秘匿化ポリシ21が存在しない場合は(ステップS33のN)、ステップS39へ進める。
データ秘匿部44は、データdの処理結果に格納されている登録情報または検索条件から、秘匿化ポリシ21に定義されている項目を1つ抽出し(ステップS34)、抽出した項目の値を暗号化キーkを使用して暗号化し、暗号化結果に暗号化識別子を結合した値(秘匿化した値)をその項目の値とする(ステップS35)。さらに、データ秘匿部44は、データdの秘匿化する項目以外の項目の値で秘匿辞書22の文字列表現形式に該当する値を、暗号化キーkを使用して暗号化する(ステップS36)。
そして、データdの処理結果の最後の項目まで処理を実行していなければ(ステップS37のN)、処理をステップS35へ戻し、最後の項目まで処理を実行していれば(ステップS37のY)、ステップS38へ進める。
ステップS38で、秘匿化ポリシ21に設定された全ての項目について処理していなければ(ステップS38のN)、処理をステップS34へ戻し、全ての秘匿化する項目について処理していれば(ステップS38のY)、ステップS39へ進める。
ステップS39で、データ通信部47は、データ秘匿部44でデータdの値の一部を秘匿化した安全化データd’(登録情報)または安全化データd’(検索条件)をサーバ2へ送信する。
なお、ステップS33で、秘匿化ポリシ21が存在しないと判断した場合は、データ秘匿部44がステップS34〜S38の処理が実行されず、データ通信部47は、データ入出力装置6から受信した状態の平文のデータd(登録情報)またはデータd(検索条件)をサーバ2へ送信する。
サーバ2が、ユーザ端末7から安全化データd’(登録情報)またはデータd(登録情報)を受信すると、データ登録/作成部26は、受信したデータの登録情報をそのままの状態で安全化データ記憶部20へ保存する。その結果、安全化データ記憶部20には、一部の項目の値が暗号化された状態の安全化データd’と、項目の値が暗号化されていないデータdとが保存される。
また、サーバが、安全化データd’(検索条件)またはデータd(検索条件)を受信すると、データ登録/作成部26は、データの検索条件の項目と値との組を検索キーとして安全化データ記憶部20を検索し、検索キーに合致するデータを抽出し、安全化データd’(検索結果)またはデータd(検索結果)としてユーザ端末7へ送信する。
図15は、データ蓄積装置(サーバ)2から受信したデータの復号処理の処理フロー図である。
データ秘匿・復元装置4のデータ通信部47は、サーバ2から安全化データd’(検索結果)を受信すると(ステップS40)、受信解析部45が、受信したデータの処理結果に暗号化識別子が存在するかによって安全化データd’であるかを判定してデータ復号部46へ通知する(ステップS41)。
データ復号部46は、安全化データd’(検索結果)の処理結果の項目の値から暗号化識別子を検出した場合は(ステップS42のY)、検出した秘匿化された値から検出した暗号化識別子を除去し(ステップS43)、秘匿化された値の残りの値を、暗号化キーkを使用して復号する(ステップS44)。安全化データd’の処理結果の最後の項目まで処理を実行していなければ(ステップS45のN)、処理をステップS42へ戻し、最後の項目まで処理を実行していれば(ステップS45のY)、データ通信部47は、安全化データd’(検索結果)の処理結果を復号したデータd(検索結果)をデータ入出力装置6へ送信する(ステップS46)。
これにより、データ入出力装置6のデータ登録/検索部62は、サーバ2から受信した安全化された検索結果を、平文の状態で検索結果表示画面に表示することができる。
図16は、暗号化キー削除処理の処理フロー図である。
データ秘匿・復元装置4の暗号化キー削除部42は、ログイン/アウト処理部61のログアウト画面でユーザが入力したログアウト指示または所定時間経過の検出(タイムアウト検出)を取得すると(ステップS50)、データ秘匿・復元装置4内に暗号化キーkが存在する場合は(ステップS51のY)、暗号化キーkを削除し(ステップS52)、暗号化キーkが存在していない場合は(ステップS51のN)、そのまま処理を終了する。
図17は、データ蓄積装置(サーバ)が保存するデータの帳票出力処理の処理フロー図である。
データ秘匿・復元装置4のデータ通信部47は、データ入出力装置6から、帳票作成指示部63の帳票作成指示画面の画面名、画面名に対応づけられた帳票名、画面でユーザが入力した帳票出力するデータの検索条件を含むデータd(帳票情報検索条件)を取得すると(ステップS60)、送信解析部43は、データd(帳票情報検索条件)から帳票名を抽出し(ステップS61)、抽出した帳票名で秘匿化制御情報記憶部40の秘匿化ポリシ21を検索する(ステップS62)。
帳票名に一致する秘匿化ポリシ21が存在する場合は(ステップS63のY)、処理をステップS64へ進め、一致する秘匿化ポリシ21が存在しない場合は(ステップS63のN)、ステップS69へ進める。
データ秘匿部44は、データd(帳票情報検索結果)の処理結果(帳票情報検索条件)から秘匿化ポリシ21に規定されている項目を1つ抽出し(ステップS64)、データd(帳票情報検索結果)の処理結果の対応する項目の値を暗号化キーkを使用して暗号化し、暗号結果(暗号化した値)の前に暗号化識別子を結合した値(秘匿化した値)をその項目の値とする(ステップS65)。さらに、データ秘匿部44は、データd(帳票情報検索結果)の処理結果の秘匿化する項目以外の項目の値で秘匿辞書22の文字列表現形式に該当する値を、暗号化キーkを使用して暗号化する(ステップS66)。
データd(帳票情報検索結果)の処理結果の項目の最後まで処理を実行していなければ(ステップS67のN)、処理をステップS65へ戻し、項目の最後まで処理を実行していれば(ステップS67のY)、ステップS68へ進める。ステップS68で、秘匿化ポリシ21の全ての項目について処理をしていなければ(ステップS68のN)、処理をステップS64へ戻し、全ての秘匿化する項目について処理をしていれば(ステップS68のY)、ステップS69へ進める。
データ通信部47は、画面名、帳票名、帳票出力するデータの検索条件を含む安全化データd’(帳票情報検索条件)をサーバ2へ送信する(ステップS69)。
図18は、データ蓄積装置(サーバ)2の帳票情報検索処理の処理フロー図である。
サーバ2の帳票パラメタ作成部281は、ユーザ端末7から安全化データd’(帳票情報検索条件)を受信すると(ステップS70)、帳票パラメタ作成部281は、帳票情報検索条件で検索したデータを格納する帳票データを作成し、安全化データd’(帳票情報検索条件)の帳票情報検索条件(項目と値の組)で安全化データ記憶部20を検索して該当するデータを取得する(ステップS71)。さらに、帳票パラメタ作成部281は、帳票データの処理結果に、帳票フォーマット23の出力項目に対応づけて取得したデータ(対応する項目の秘匿化された値)を格納する(ステップS72)。ここで、帳票情報検索条件により抽出したデータが秘匿化した値を含む安全化データd’であれば、帳票データの処理結果は、出力項目と秘匿化された値との組が格納され、帳票データも安全化されていることになる。さらに、帳票パラメタ作成部281は、安全化データd’(帳票情報検索条件)の帳票名を含む帳票パラメタを作成して、ユーザ端末7へ送信する(ステップS73)。
帳票フォーマット作成部282は、ユーザ端末7から安全化データd’(帳票名)を受信すると(ステップS74)、帳票名で帳票フォーマット記憶部27を検索して、出力する帳票の帳票フォーマット23を取得し、ユーザ端末7へ送信する(ステップS75)。
帳票データ送信部283は、ユーザ端末7から安全化データd’(格納場所)を受信すると(ステップS76)、帳票情報検索条件による検索結果を格納した帳票データを安全化データd’(帳票情報)としてユーザ端末7へ送信する(ステップS77)。
なお、図18において、処理フローの各ステップを一連の流れとして図示しているが、本例では、ステップS70〜S73、S74〜S75、S76〜S77の処理は、それぞれ、ユーザ端末7とデータ蓄積装置(サーバ)2との間の別のデータ通信として実行されるものである。
図19は、データ蓄積装置(サーバ)から受信した安全化データ(帳票情報)の復号処理の処理フロー図である。
データ秘匿・復元装置4のデータ通信部47は、サーバ2から、帳票パラメタ、帳票フォーマット23、安全化データd’(帳票情報)を受信する(ステップS80)。受信解析部45が、受信したデータに暗号化識別子の検出によって受信した帳票パラメタ、帳票フォーマット23が安全化されていないと判定し、帳票パラメタをデータ入出力装置6の帳票作成指示部63へ、帳票パラメタと帳票フォーマット23を帳票作成装置5へそれぞれ送信する(ステップS81)。
データ復号部46は、安全化データd’(帳票情報)の処理結果の値から暗号化識別子を検出することによって、安全化データd’(帳票情報)の処理結果の値が秘匿化された値かを判定する(ステップS82)。
安全化データd’(帳票情報)の処理結果の値から暗号化識別子を検出した場合は(ステップS83のY)、処理をステップS84へ進め、暗号化識別子を検出しなかった場合は(ステップS83のN)、ステップS86へ進める。
データ復号部46は、検出した秘匿化された値から検出した暗号化識別子を除去し(ステップS84)、秘匿化された値の残りの値を、暗号化キーkを使用して復号する(ステップS85)。安全化データd’の処理結果の最後の項目まで処理を実行していなければ(ステップS86のN)、処理をステップS83へ戻し、最後の項目まで処理を実行していれば(ステップS86のY)、データ通信部47は、安全化データd’(検索結果)の処理結果を復号したデータd(帳票情報)を帳票作成装置5へ送信する(ステップS87)。
なお、サーバ2から受信した帳票フォーマット23が安全化されている場合は、上記のステップS83〜S86の処理と同様の処理により、帳票フォーマット23の秘匿化された値が復号され、平文となった帳票フォーマット23が帳票作成装置5へ渡される。
また、サーバ2から、安全化されていないデータd(帳票情報)を受信した場合は、上記のステップS83〜S86の処理が実行されず、受信したデータd(帳票情報)がそのまま帳票作成装置5へ渡される。
図20は、帳票作成装置の帳票作成処理の処理フロー図である。
帳票作成指示部63から起動された帳票作成装置5において、帳票フォーマット取得部51は、データ蓄積装置(サーバ)2から受信した帳票パラメタの帳票名またはフォーマット名をもとにデータd(帳票名)を作成してデータ蓄積装置(サーバ)2へ帳票フォーマットを要求し(ステップS881)、データ蓄積装置(サーバ)2から帳票フォーマットを受信するとそれを保存する(ステップS882)。
帳票データ取得部52は、帳票パラメタの格納場所をもとにデータd(格納場所)を作成してデータ蓄積装置(サーバ)2へ帳票情報を要求し(ステップS883)、帳票情報を受信するとそれを保存する(ステップS884)。帳票作成部53は、帳票パラメタの帳票ファイル名、保存された帳票フォーマットおよび帳票情報を用いて帳票を作成する(ステップS885)。
なお、図20において、処理フローの各ステップを一連の流れとして図示しているが、処理フロー中のステップS881〜S882、S883〜S884の処理は、それぞれ、ユーザ端末7とデータ蓄積装置(サーバ)2との間の別のデータ通信として実行されるものである。
ユーザ端末7の帳票作成装置5がデータ蓄積装置(サーバ)2に対する要求として作成するデータd、すなわちデータd(帳票名)、データd(格納場所)は、秘匿化ポリシ21に従ってデータ秘匿・復元装置4で安全化データd’に変換されてデータ蓄積装置(サーバ)2へ送信される。また、帳票作成装置5の要求に応じてデータ蓄積装置(サーバ)2から送信されるデータも、同様に、ユーザ端末7で受信後にデータ秘匿・復元装置4で復号されて帳票作成装置5に渡される。
本発明に係るシステム1は、別の実施例として、図2に示すブロック構成例と異なる構成例をとることができる。
次に、本発明の別の実施例について説明する。
図21は、別の実施例におけるデータ秘匿・復元システム1を構成する各装置の機能ブロック構成例を示す図である。
図21に示すブロック構成例の手段で図2に示す手段と同一番号がついたものは、同一の動作を行うものである。
別の実施例では、図21に示すように、ユーザ端末7に、帳票毎に異なる帳票作成装置5’を複数備える。帳票作成装置5’は、自装置で作成する帳票の帳票フォーマット23’を予め保持し、帳票フォーマット23’とサーバ2から受信した帳票情報検索条件に対する検索結果(帳票データ)とをもとに帳票を作成する帳票作成部54を備える。
さらに、データ入出力装置6は、帳票データ取得部64を備える。
帳票データ取得部64は、帳票作成指示部63でユーザに入力された帳票情報検索条件に基づいてサーバ2で作成された安全化データd’(帳票情報)またはデータd(帳票情報)を取得し、安全化データd’(帳票情報)等に含まれる帳票名に対応づけられた帳票作成装置5’に受信した安全化データd’(帳票情報)等を送信する手段である。
帳票作成指示部63は帳票に対応する帳票作成装置5’へ起動を通知し、通知された帳票作成装置5’の帳票作成部54は、帳票データ取得部64から復号されたデータd(帳票情報)を受信して帳票フォーマット23’をもとに帳票(帳票ファイル)を作成する。
さらに、サーバ2は、図2に示すサーバ2に備えられている帳票フォーマット記憶部27、帳票パラメタ作成部281、帳票フォーマット作成部282および帳票データ送信部283を備える必要がない。サーバ2の帳票データ作成部284が、ユーザ端末7から送信された安全化データd’(帳票情報検索条件)で安全化データ記憶部20を検索し、検索で得たデータを帳票データの処理結果に格納した安全化データd’(帳票情報)をユーザ端末7へ送信する。
図22は、別の実施例におけるデータ蓄積装置(サーバ)2の帳票情報検索処理の処理フロー図である。
サーバ2の帳票データ作成部284は、ユーザ端末7から安全化データd’(帳票情報検索条件)を受信すると(ステップS90)、安全化データd’(帳票情報検索条件)の帳票情報検索条件(項目と値の組)で安全化データ記憶部20を検索して該当するデータを取得する(ステップS91)。
さらに、帳票データ作成部284は、検索で取得したデータ(項目と値)を安全化データd’(帳票情報)の処理結果に格納し(ステップS92)、安全化データd’(帳票情報)をユーザ端末7へ送信する(ステップS93)。
図23は、別の実施例におけるデータ蓄積装置(サーバ)2から受信した安全化データ(帳票情報)の復号処理の処理フロー図である。
データ秘匿・復元装置4のデータ通信部47は、サーバ2から、安全化データd’(帳票情報)を受信すると、受信解析部45が、受信したデータに暗号化識別子の検出によって受信した安全化データd’(帳票情報)を秘匿化されていると判定し、データ復号部46へ通知する(ステップS100)。
データ復号部46は、安全化データd’(帳票情報)の処理結果の値から暗号化識別子を検出することによって、安全化データd’(帳票情報)の処理結果の値が秘匿化された値かを判定する(ステップS101)。
安全化データd’(帳票情報)の処理結果の値から暗号化識別子を検出した場合は(ステップS102のY)、処理をステップS103へ進め、暗号化識別子を検出しなかった場合は(ステップS102のN)、ステップS106へ進める。
データ復号部46は、検出した秘匿化された値から検出した暗号化識別子を除去し(ステップS103)、秘匿化された値の残りの値を、暗号化キーkを使用して復号する(ステップS104)。安全化データd’の処理結果の最後の項目まで処理を実行していなければ(ステップS105のN)、処理をステップS103へ戻し、最後の項目まで処理を実行していれば(ステップS105のY)、データ通信部47は、安全化データd’(検索結果)の処理結果を復号したデータd(帳票情報)をデータ入出力装置6の帳票データ取得部64へ送信する(ステップS106)。
帳票データ取得部64は、作成する帳票に対応する帳票作成装置5’へ起動を通知し、受信したデータd(帳票情報)を通知した帳票作成装置5’へ送信する(ステップS107)。
帳票作成装置5’の帳票作成部54は、帳票フォーマット23’と受信したデータd(帳票情報)とをもとに帳票を作成する処理を行う(ステップS108)。
なお、サーバ2から安全化されていないデータd(帳票情報)を受信している場合は、上記のステップS102〜S105の処理が実行されず、受信したデータd(帳票情報)がそのまま帳票データ取得部64へ渡される。
上記の実施例において、データ秘匿・復元装置4が共通鍵を用いた暗号化/復号アルゴリズムを実行する例を説明したが、データ秘匿・復元装置4は、データの値をユニークなトークンに置換し、トークンとデータの置換した値との対応情報をデータベース、ファイル等に格納するトークン方式の処理を実行してもよい。
トークン方式の場合は、データ秘匿・復元装置4は、配布された暗号化キーkと対応づけてトークンと置換した値の対応情報へ接続するためのトークン認証情報を生成する。
図24は、データ秘匿・復元装置4がトークン化処理を行う場合の対応情報のデータ構造例を示す図である。
対応情報は、暗号化キーkによりそれぞれ暗号化したトークンとトークンに対応する置換した値とを持つ。対応情報はファイルまたはデータベースとして保存される。
対応情報をファイル形式で保存する場合は、暗号化キーk毎にファイルを作成し、ファイル名をランダムな文字列とする。対応情報の各ファイルの利用可能者は暗号化キーkの利用者と同じユーザとする。対応情報のファイル名は、図7に示す暗号化キーテーブルに対応情報のファイル名の項目を追加し、暗号化キーkと同様に暗号化キーの識別値に対応させて管理する。対応情報をデータベースで保存する場合は、データベースの利用可能者は、暗号化キーkの利用者と同じユーザとする。
また、上記の実施例において、データ秘匿・復元装置4がユーザ端末7内に設けられる構成例で説明したが、データ秘匿・復元装置4はユーザ端末7外に分離し、プロキシ装置として設けられる構成例であってもよい。プロキシ装置として設けられるデータ秘匿・復元装置4は、1または複数のユーザ端末7と接続し、各ユーザ端末7からデータ蓄積装置(サーバ)2へ送信されるデータdの秘匿化処理、およびデータ蓄積装置(サーバ)2から各ユーザ端末7へ送信される安全化データd’の復号処理を行う。プロキシ装置とする場合、ユーザ端末7とプロキシ装置間の通信はhttpsなどを用いて暗号化する。
図25は、データ秘匿・復元システム1の各装置のハードウェア構成の一例を示す図である。
システム1を構成するデータ蓄積装置(サーバ)2、暗号化キー配布装置3、ユーザ端末7は、それぞれ、プロセッサ101、メモリ102、ストレージ103、可搬記憶媒体駆動装置104、入出力装置105および通信インタフェース106を備えるコンピュータ100で実施することができる。
プロセッサ101は、メモリ102やストレージ103と協働しつつ、ストレージ103や可搬記憶媒体に格納されたプログラムを実行する。プロセッサ101は、制御ユニット、演算ユニット、命令デコーダ等を含み、実行ユニットが、命令デコーダで解読されたプログラムの命令に従い、制御ユニットより出力される制御信号に応じ、演算ユニットを用いて算術・論理演算を実行する。プロセッサ101は、制御に用いる各種情報が格納される制御レジスタ、アクセスしたメモリ102等の内容を一時的に格納可能なキャッシュ、および仮想記憶のページテーブルのキャッシュとしての機能を果たすテーブルを備える。プロセッサ101は、CPU(Central Processing Unit)コアが複数設けられている構成であってもよい。
メモリ102は、RAM(Random Access Memory)等の記憶装置であり、プロセッサ101で実行されるプログラムがロードされるとともに、プロセッサ101の処理に用いるデータが格納されるメインメモリである。ストレージ103は、HDD(Hard Disk Drive)やフラッシュメモリ等の記憶装置であり、プログラムや各種データが格納される。可搬記憶媒体駆動装置104は、可搬記憶媒体に記憶されたデータやプログラムを読み出す装置である。可搬記憶媒体は、例えば磁気ディスク、光ディスク、光磁気ディスク又はフラッシュメモリ等である。
入出力装置105は、キーボード等やディスプレイ等であり、ユーザ操作等による動作命令を受け付け、コンピュータ100による処理結果を出力する。通信インタフェース106は、LAN(Local Area Network)カード等であり、外部とのデータ通信を行う。コンピュータ100の上記の各構成要素は、バス108で接続されている。
なお、上述の実施例において説明したシステム1を構成するデータ蓄積装置(サーバ)2、暗号化キー配布装置3およびユーザ端末7の各記憶部は、メモリ102、ストレージ103および可搬記憶媒体のいずれか1つである。
プロセッサ101が実行するプログラムや、アクセス対象となるデータは、コンピュータ100と通信可能な他の装置に格納されていてもよい。
例えば、データ蓄積装置2の記憶部に格納されるデータは、データ蓄積装置2と異なる他の装置(コンピュータ)に含まれる記憶部に格納されていてもよい。この場合に、データ蓄積装置2と他の装置とが通信可能にネットワーク接続され、データ蓄積装置2がネットワークを介して他の装置の記憶部にアクセスすることとなる。
また、システム1のデータ蓄積装置2、暗号化キー配布装置3、データ秘匿・復元装置4、帳票作成装置5およびデータ入出力装置6が有する機能を実現する各処理部は、コンピュータ100が実行可能なプログラムによって実施することができる。この場合に、上記の各処理部の処理内容を記述したプログラムが提供され、提供されたプログラムをコンピュータ100が実行することによって、各処理部による機能がコンピュータ100上で実現される。
以上説明したように、本発明によれば、次のような効果がある。
(1)サーバに格納したデータを有効に活用することができる。利用者が入力したデータを自動的に秘匿化する部分と秘匿化しない部分とに分けたデータ(安全化データ)をサーバに送信、格納する。これにより、データ入力をした利用者が第三者には知られたくない情報のみを第三者から秘匿できる一方で、第三者は、サーバに格納されているデータのうち秘匿化されていない部分の情報を利用することができる。
(2)サーバに安全化データを保存することにより、利用者が使用する個々のコンピュータにおける危険性、例えば、コンピュータ本体の紛失によるデータの漏洩、コンピュータからの暗号化キーの抜き取り等によるデータの漏洩、暗号化で用いた暗号化キーの紛失によるデータの利用不能等の危険性を低減することができる。
(3)利用者に、自分が入力したデータが部分的に秘匿化される処理の実行やサーバで安全化データとして保存されること等を意識させない操作性を提供し、利用者の操作上の負担を生じさせずにデータの安全性を高めることができる。
(4)サーバに保存する安全化データを、秘匿化した部分と秘匿化されていない部分とを含む状態のままで帳票出力することができる。