IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7549283管理方法、情報処理装置および管理プログラム
<>
  • 特許-管理方法、情報処理装置および管理プログラム 図1
  • 特許-管理方法、情報処理装置および管理プログラム 図2
  • 特許-管理方法、情報処理装置および管理プログラム 図3
  • 特許-管理方法、情報処理装置および管理プログラム 図4
  • 特許-管理方法、情報処理装置および管理プログラム 図5
  • 特許-管理方法、情報処理装置および管理プログラム 図6
  • 特許-管理方法、情報処理装置および管理プログラム 図7
  • 特許-管理方法、情報処理装置および管理プログラム 図8
  • 特許-管理方法、情報処理装置および管理プログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-03
(45)【発行日】2024-09-11
(54)【発明の名称】管理方法、情報処理装置および管理プログラム
(51)【国際特許分類】
   H04L 9/08 20060101AFI20240904BHJP
   G06F 21/60 20130101ALI20240904BHJP
【FI】
H04L9/08 D
G06F21/60 320
【請求項の数】 7
(21)【出願番号】P 2023567449
(86)(22)【出願日】2021-12-16
(86)【国際出願番号】 JP2021046594
(87)【国際公開番号】W WO2023112272
(87)【国際公開日】2023-06-22
【審査請求日】2024-03-06
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】西垣 雅樹
【審査官】上島 拓也
(56)【参考文献】
【文献】特開2003-203014(JP,A)
【文献】特開2005-209069(JP,A)
【文献】米国特許出願公開第2020/0050785(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
データベースを管理するデータベース管理プログラムを識別するリビジョン情報と、前記データベースの利用者を示す利用者情報とを取得し、
取得された前記リビジョン情報と前記利用者情報とを用いて鍵情報を生成し、
生成された前記鍵情報を用いて前記データベースを暗号化し、
前記データベースが暗号化された後、生成された前記鍵情報を破棄する、
処理をコンピュータが実行する管理方法。
【請求項2】
前記リビジョン情報と前記利用者情報とを再取得し、
再取得された前記リビジョン情報と前記利用者情報とを用いて前記鍵情報を再生成し、
再生成された前記鍵情報を用いて前記データベースを復号する、
処理を前記コンピュータが更に実行する請求項1記載の管理方法。
【請求項3】
前記リビジョン情報が埋め込まれた前記データベース管理プログラムと、暗号化された前記データベースと、前記利用者情報が記載されたファイルとを含むパッケージデータを生成し、前記パッケージデータを出力する、
処理を前記コンピュータが更に実行する請求項1記載の管理方法。
【請求項4】
前記データベース管理プログラムは、前記データベース管理プログラムに埋め込まれた前記リビジョン情報と前記ファイルに記載された前記利用者情報とから前記鍵情報を再生成し、再生成された前記鍵情報を用いて前記データベースを復号するモジュールを含む、
請求項3記載の管理方法。
【請求項5】
前記パッケージデータに含まれる前記データベース管理プログラムは、前記データベースのアクセス方法を規定した管理情報の変更を制限する、
請求項3記載の管理方法。
【請求項6】
データベースと前記データベースを管理するデータベース管理プログラムとを記憶する記憶部と、
前記データベース管理プログラムを識別するリビジョン情報と、前記データベースの利用者を示す利用者情報とを取得し、取得された前記リビジョン情報と前記利用者情報とを用いて鍵情報を生成し、生成された前記鍵情報を用いて前記データベースを暗号化し、前記データベースが暗号化された後、生成された前記鍵情報を破棄する処理部と、
を有する情報処理装置。
【請求項7】
データベースを管理するデータベース管理プログラムを識別するリビジョン情報と、前記データベースの利用者を示す利用者情報とを取得し、
取得された前記リビジョン情報と前記利用者情報とを用いて鍵情報を生成し、
生成された前記鍵情報を用いて前記データベースを暗号化し、
前記データベースが暗号化された後、生成された前記鍵情報を破棄する、
処理をコンピュータに実行させる管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は管理方法、情報処理装置および管理プログラムに関する。
【背景技術】
【0002】
データベースシステムは、データベース管理プログラムを用いて、データベースを管理しデータ処理を実行することがある。データベース管理プログラムは、DBMS(Database Management System)プログラムと呼ばれることがある。データベースシステムは、データベースに対する利用者の権限を設定し、権限の範囲内でデータベースへのアクセスを許可することがある。また、データベースシステムは、データ処理手順を規定したストアドプロシジャを登録し、要求に応じてストアドプロシジャを実行することがある。
【0003】
なお、データベースを暗号化および復号するための暗号鍵を管理するシステムが提案されている。提案のシステムは、利用者IDと、パスワードを用いて暗号鍵を暗号化した鍵暗号文と、パスワードの世代を示すリビジョン番号とを対応付けた鍵情報を記憶する。提案のシステムは、利用者がパスワードを変更する場合、古いパスワードで鍵暗号文を復号して暗号鍵を復元し、新しいパスワードで暗号鍵を再暗号化して新しい鍵情報を生成し、古い鍵情報と併存させて新しい鍵情報を保存する。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2016-192715号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
データベースシステムは、特定のデータベース管理プログラムを使用することで、データベースに含まれるデータの保護を強化することが考えられる。特定のデータベース管理プログラムは、通常のデータベース管理プログラムよりも利用者の操作を制限した制限版のデータベース管理プログラムであってもよい。
【0006】
しかし、データベースシステムは、第三者がデータベース管理プログラムを入れ替えるという攻撃を受ける可能性がある。データベース管理プログラムがデータ保護レベルの高いものから低いものに入れ替えられると、第三者によってデータベースから不正にデータが読み出される可能性がある。そこで、1つの側面では、本発明は、第三者によるデータベース管理プログラムの入れ替えを抑止することを目的とする。
【課題を解決するための手段】
【0007】
1つの態様では、以下の処理をコンピュータが実行する管理方法が提供される。データベースを管理するデータベース管理プログラムを識別するリビジョン情報と、データベースの利用者を示す利用者情報とを取得する。取得されたリビジョン情報と利用者情報とを用いて鍵情報を生成する。生成された鍵情報を用いてデータベースを暗号化する。データベースが暗号化された後、生成された鍵情報を破棄する。
【0008】
また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。また、1つの態様では、コンピュータに実行させる管理プログラムが提供される。
【発明の効果】
【0009】
1つの側面では、第三者によるデータベース管理プログラムの入れ替えが抑止される。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【0010】
図1】第1の実施の形態の情報処理装置を説明するための図である。
図2】第2の実施の形態の情報処理システムの例を示す図である。
図3】データ処理サーバのハードウェア例を示すブロック図である。
図4】データカプセルの構造例を示すブロック図である。
図5】データ処理サーバのソフトウェア例を示すブロック図である。
図6】カプセル管理テーブルの例を示す図である。
図7】暗号鍵の生成例を示す図である。
図8】データカプセル生成の手順例を示すフローチャートである。
図9】データカプセル利用の手順例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0012】
図1は、第1の実施の形態の情報処理装置を説明するための図である。
第1の実施の形態の情報処理装置10は、データベース管理プログラムを用いてデータを保持する。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10は、コンピュータ、データベース装置または管理装置と呼ばれてもよい。
【0013】
情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12が、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を含んでもよい。プロセッサは、例えば、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
【0014】
記憶部11は、データベース13およびデータベース管理プログラム14を記憶する。データベース13は、関係データベースでもよいし、ツリー型データベースやネットワーク型データベースなどの非関係データベースでもよい。データベース13は、テーブルデータなどのデータ集合を含む。データベース13は、データアクセスの制御に用いられる管理情報を含んでもよい。管理情報は、データベース13にアクセスできる利用者を示す利用者定義を含んでよく、利用者に許可されるデータ操作の種類を示す権限定義を含んでもよい。また、管理情報は、データ構造定義を含んでもよく、一連のデータ処理手順を規定したストアドプロシジャ定義を含んでもよい。
【0015】
後述するように、データベース13は暗号化される。データベース13の暗号化は、データ集合の暗号化を含んでもよく、管理情報の暗号化を含んでもよい。暗号化は、テーブルのレコード単位や管理情報の項目単位のように細粒度で行われてもよいし、テーブル全体や管理情報のファイル全体のように疎粒度で行われてもよい。
【0016】
データベース管理プログラム14は、データベース13を管理する。データベース管理プログラム14は、DBMSプログラムと呼ばれることがある。例えば、データベース管理プログラム14は、利用者から、SQL文などのクエリまたはストアドプロシジャの指定を含む要求メッセージを受信する。データベース管理プログラム14は、利用者定義および権限定義を参照して、要求メッセージの内容が利用者の権限の範囲内であることを確認する。そして、データベース管理プログラム14は、データベース13に対して、クエリまたは指定されたストアドプロシジャを実行する。
【0017】
データベース管理プログラム14は、通常のデータベース管理プログラムよりも利用者の操作を制限した制限版のデータベース管理プログラムであってもよい。例えば、データベース管理プログラム14では、利用者定義、権限定義、データ構造定義、ストアドプロシジャ定義などの管理情報を変更することが禁止されてもよい。また、データベース管理プログラム14では、データ検索、データ挿入、データ更新およびデータ削除のうち、データ更新やデータ削除などの一部のデータ操作が禁止されてもよい。
【0018】
処理部12は、データベース13を暗号化する。処理部12は、暗号化されたデータベース13とデータベース管理プログラム14とをパッケージ化し、パッケージデータを出力してもよい。例えば、処理部12は、パッケージデータを利用者に提供してもよく、他の情報処理装置に送信してもよい。データベース13を暗号化するにあたり、処理部12は、リビジョン情報15および利用者情報16を取得する。
【0019】
リビジョン情報15は、データベース管理プログラム14を識別する識別子である。リビジョン情報15は、データベース管理プログラム14の版数でもよく、データベース管理プログラム14の複製のシリアル番号でもよい。リビジョン情報15は、データベース管理プログラム14に埋め込まれていてもよい。利用者情報16は、データベース13の利用者を示す識別子である。この利用者は、例えば、保護されるべきデータをデータベース13に保存するデータ提供者である。利用者情報16は、データベース13に付随するファイルに記載されていてもよいし、データベース13に含まれていてもよい。
【0020】
処理部12は、取得されたリビジョン情報15と利用者情報16とを用いて、特定の鍵生成アルゴリズムに従って鍵情報17を生成する。例えば、処理部12は、リビジョン情報15と利用者情報16とを結合し、結合された文字列をハッシュ関数などの関数に入力して鍵情報17を生成する。鍵情報17は、共通鍵暗号方式に用いられる共通鍵を含んでもよく、公開鍵暗号方式に用いられる公開鍵および秘密鍵を含んでもよい。
【0021】
処理部12は、生成された鍵情報17を用いてデータベース13を暗号化する。データベース13が暗号化された後、処理部12は、生成された鍵情報17を破棄する。鍵情報17が保存されないため、データベース13を復号する際には、リビジョン情報15および利用者情報16から鍵情報17が再生成される。データベース管理プログラム14は、再生成される鍵情報17を用いてデータベース13へのアクセスを実行してもよい。データベース管理プログラム14は、鍵情報17を再生成するモジュールを含んでもよい。
【0022】
以上説明したように、第1の実施の形態の情報処理装置10は、リビジョン情報15と利用者情報16とから鍵情報17を生成し、鍵情報17を用いてデータベース13を暗号化し、暗号化後は鍵情報17を破棄する。これにより、データベース管理プログラム14とデータベース13の利用者とが紐付けられ、正しいリビジョン情報15と利用者情報16との組を知らない限りデータベース13の復号が困難となる。そして、異なるリビジョン情報をもつ他のデータベース管理プログラムからデータベース13にアクセスすることが困難となる。そのため、第三者がデータベース管理プログラム14を他のデータベース管理プログラムに入れ替えてデータベース13にアクセスすることが抑止される。
【0023】
前述のように、データベース管理プログラム14は、データ保護を強化した特定のデータベース管理プログラムであることがある。例えば、データベース管理プログラム14では、管理情報の変更が禁止されている。その場合、データベース管理プログラム14の入れ替えを抑止することで、第三者がデータベース13からデータを不正に読み出してデータが漏洩するというリスクが低下し、データセキュリティが向上する。
【0024】
なお、情報処理装置10が、リビジョン情報15および利用者情報16を再取得して鍵情報17を再生成し、再生成された鍵情報17を用いてデータベース13を復号してもよい。これにより、情報処理装置10は、安全にデータベース13にアクセスできる。
【0025】
また、情報処理装置10は、リビジョン情報15が埋め込まれたデータベース管理プログラム14と、暗号化されたデータベース13と、利用者情報16が記載されたファイルとを含むパッケージデータを出力してもよい。これにより、情報処理装置10は、データ保護を強化しつつデータを他の利用者に提供することができる。この場合に、データベース管理プログラム14が、鍵情報17を再生成してデータベース13を復号するモジュールを含んでいてもよい。これにより、データベース管理プログラム14の制御のもとで、他の利用者もデータベース13に対して許可された範囲の操作を行うことができる。
【0026】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
【0027】
第2の実施の形態の情報処理システムは、ネットワーク30に接続されたデータ処理サーバ31および利用者サーバ32,33を有する。ネットワーク30は、LAN(Local Area Network)を含んでもよく、インターネットを含んでもよい。なお、データ処理サーバ31は、第1の実施の形態の情報処理装置10に対応する。
【0028】
データ処理サーバ31は、利用者サーバ32,33からの要求に応じて、後述するデータカプセルを生成するサーバコンピュータである。データ処理サーバ31は、データセンタに配置されてもよく、クラウドサーバでもよい。
【0029】
データ処理サーバ31は、ある利用者サーバからデータカプセル作成要求を受信する。データカプセル作成要求では、データカプセルに格納されるデータと、データにアクセスできる利用者やアクセス方法の制限などの管理情報とが指定される。データ処理サーバ31は、データカプセル作成要求に従って、データを保護された状態で流通させるためのデータカプセルを生成して当該利用者サーバに返信する。データカプセルは、暗号化されたデータと、限定されたデータアクセスを提供するDBMSプログラムとを含む。
【0030】
利用者サーバ32,33は、データ処理サーバ31のサービスを利用する利用者のサーバコンピュータである。利用者は参加者と呼ばれてもよく、個人でも企業でもよい。利用者サーバ32,33は、データセンタに配置されてもよく、クラウドサーバでもよい。また、利用者サーバ32,33に代えて、クライアントコンピュータが使用されてもよい。
【0031】
利用者サーバ32,33はそれぞれ、データカプセル作成要求をデータ処理サーバ31に送信し、作成されたデータカプセルをデータ処理サーバ31から受信する。利用者サーバ32,33はそれぞれ、業務上の要求に従って、データカプセルを他の利用者サーバに送信する。例えば、利用者サーバ32が利用者サーバ33にデータカプセルを送信し、利用者サーバ33が利用者サーバ32にデータカプセルを送信することがある。
【0032】
利用者サーバ32,33はそれぞれ、他の利用者サーバから受信したデータカプセルに含まれるDBMSプログラムを起動することで、そのデータカプセルに保存された初期データに関するデータ処理を行う。ただし、DBMSプログラムは、データカプセルから初期データそのものが読み出されないようにデータアクセスを制限していることがある。また、DBMSプログラムは、初期データそのものに代えて、初期データを一定の処理手順で加工したデータ処理結果を出力することがある。
【0033】
また、利用者サーバ32,33はそれぞれ、受信したデータカプセルに追加データを保存して、他の利用者サーバに返信することがある。これにより、データ漏洩リスクを低減しつつ、複数の利用者が保持するデータの間でデータ処理が実現される。
【0034】
図3は、データ処理サーバのハードウェア例を示すブロック図である。
データ処理サーバ31は、バスに接続されたCPU101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。利用者サーバ32,33が、データ処理サーバ31と同様のハードウェアを有してもよい。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0035】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。データ処理サーバ31は、複数のプロセッサを有してもよい。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
【0036】
RAM102は、CPU101で実行されるプログラムおよびCPU101で演算に使用されるデータを一時的に記憶する揮発性半導体メモリである。データ処理サーバ31は、RAM以外の種類の揮発性メモリを有してもよい。
【0037】
HDD103は、OS(Operating System)、ミドルウェア、アプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。データ処理サーバ31は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の不揮発性ストレージを有してもよい。
【0038】
GPU104は、CPU101と連携して画像処理を行い、データ処理サーバ31に接続された表示装置111に画像を出力するプロセッサである。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイまたはプロジェクタである。なお、データ処理サーバ31に、プリンタなどの他の種類の出力デバイスが接続されてもよい。
【0039】
入力インタフェース105は、データ処理サーバ31に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112は、例えば、マウス、タッチパネルまたはキーボードである。データ処理サーバ31に複数の入力デバイスが接続されてもよい。
【0040】
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113は、例えば、磁気ディスク、光ディスクまたは半導体メモリである。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)およびDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、記録媒体113から読み取られたプログラムおよびデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、CPU101によって実行されることがある。
【0041】
記録媒体113は、可搬型記録媒体であってもよい。記録媒体113は、プログラムおよびデータの配布に用いられることがある。また、記録媒体113およびHDD103が、コンピュータ読み取り可能な記録媒体と呼ばれてもよい。
【0042】
通信インタフェース107は、ネットワーク30を介して利用者サーバ32,33と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0043】
次に、データ処理サーバ31によって生成されるデータカプセルについて説明する。
図4は、データカプセルの構造例を示すブロック図である。
データカプセル120は、顧客番号ファイル121、構成ファイル122、管理情報ファイル123およびデータファイル124を含む。また、データカプセル120は、DBMSプログラム131、消去プログラム132およびコンテナプログラム133を含む。なお、管理情報ファイル123およびデータファイル124は、第1の実施の形態のデータベース13に対応する。DBMSプログラム131は、第1の実施の形態のデータベース管理プログラム14に対応する。
【0044】
顧客番号ファイル121は、顧客番号が記載されるファイルである。顧客番号は、第1の実施の形態の利用者情報16に対応する。この顧客番号は、データカプセル120の作成をデータ処理サーバ31に要求した利用者、すなわち、データベースに初期データを格納した利用者の識別番号である。ただし、顧客番号が、データカプセル120の転送先の利用者の識別番号であってもよい。顧客番号ファイル121は暗号化されない。
【0045】
構成ファイル122は、データカプセル120の中での管理情報ファイル123の位置を示すファイルパスが記載されるファイルである。構成ファイル122は暗号化される。
管理情報ファイル123は、データベースへのアクセスの制御に用いられる管理情報が記載されるファイルである。管理情報ファイル123は、データファイル124のファイルパスを含む。また、管理情報ファイル123は、利用者定義125、権限定義126、データ構造定義127およびプロシジャ定義128を含む。
【0046】
利用者定義125は、データベースにアクセスできる利用者を示す。利用者は、利用者名で識別されてもよく、顧客番号で識別されてもよく、利用者サーバのサーバ名で識別されてもよく、利用者サーバの通信アドレスで識別されてもよい。権限定義126は、各利用者に対して許容するデータ操作の種類を示す。例えば、各関係テーブルに対するデータ検索、データ挿入、データ更新およびデータ削除それぞれの可否が規定される。
【0047】
データ構造定義127は、関係データベースのテーブル構造を示す。なお、データカプセル120は関係データベースを使用しているが、ツリー型データベースやネットワーク型データベースなどの非関係データベースを使用してもよい。
【0048】
プロシジャ定義128は、ストアドプロシジャを示す。ストアドプロシジャは、単一のSQL文で記述することが難しいような一連のデータ処理を記述したプログラムである。ストアドプロシジャは、SQLを拡張したプロシジャ記述言語を用いて記述される。SQL文に代えてストアドプロシジャ呼び出し命令が受信されると、そのストアドプロシジャが実行される。ストアドプロシジャを適切に利用することで、データベースに含まれるデータそのものがデータカプセル120の外部に出力されることが抑止される。
【0049】
管理情報ファイル123は暗号化される。暗号化の単位は、管理情報ファイル123全体のように疎粒度でもよいし、利用者定義125や権限定義126のように管理情報ファイル123の各項目を単位とする細粒度でもよい。
【0050】
データファイル124は、関係データベースのテーブルのレコードを含むファイルである。データファイル124は暗号化される。暗号化の単位は、データファイル124全体のように疎粒度でもよいし、テーブル単位やレコード単位のように細粒度でもよい。
【0051】
DBMSプログラム131は、通常のDBMSプログラムと比べて機能が制限された制限版のDBMSプログラムである。DBMSプログラム131は、管理情報ファイル123を変更する機能をもたないことがある。また、DBMSプログラム131は、データ検索、データ挿入、データ更新およびデータ削除のうち、データ更新やデータ削除などの一部のデータ操作を実行する機能をもたないことがある。
【0052】
DBMSプログラム131には、リビジョン番号134が埋め込まれている。リビジョン番号134は、DBMSプログラム131を識別する識別番号である。データ処理サーバ31は、新しい案件のデータカプセルを発行する毎に、新しいリビジョン番号を採番して制限版のDBMSプログラムに埋め込む。
【0053】
DBMSプログラム131は、鍵生成モジュール135およびデータアクセスモジュール136を含む。鍵生成モジュール135は、構成ファイル122および管理情報ファイル123の復号と、データファイル124の復号および再暗号化のための暗号鍵を生成する。第2の実施の形態の暗号鍵は、共通鍵暗号方式の共通鍵である。ただし、暗号鍵が、公開鍵暗号方式の公開鍵および秘密鍵であってもよい。
【0054】
鍵生成モジュール135は、DBMSプログラム131に埋め込まれたリビジョン番号134と、顧客番号ファイル121に記載された顧客番号とから、特定の鍵生成アルゴリズムに従って暗号鍵を生成する。この暗号鍵は、データ処理サーバ31がデータカプセル120を生成する際に使用した暗号鍵と同一である。データカプセル120の生成時に使用された暗号鍵は保存されず、データカプセル120の使用時に再生成される。ただし、鍵生成モジュール135は、自身で暗号鍵を生成する代わりに、リビジョン番号134と顧客番号をデータ処理サーバ31に送信して暗号鍵の再生成を依頼し、データ処理サーバ31で再生成された暗号鍵を受信してもよい。
【0055】
データアクセスモジュール136は、データファイル124に対する制限されたアクセスを利用者に提供する。データアクセスモジュール136は、利用者から要求メッセージを受信し、利用者定義125および権限定義126に基づいて、要求メッセージの内容が利用者の権限の範囲内であることを確認する。そして、データアクセスモジュール136は、データファイル124に含まれる関係テーブルに対して、要求メッセージに含まれるSQL文または要求メッセージが指定するストアドプロシジャを実行する。
【0056】
上記のデータ処理のため、データアクセスモジュール136は、鍵生成モジュール135が再生成する暗号鍵を用いて復号および再暗号化を行う。データアクセスモジュール136は、DBMSプログラム131の起動時に、構成ファイル122、管理情報ファイル123およびデータファイル124の全体を復号してもよい。また、データアクセスモジュール136は、関係テーブルのアクセス時に、管理情報ファイル123およびデータファイル124の中の使用する部分を復号してもよい。また、データアクセスモジュール136は、関係テーブルの更新時に、データファイル124を再暗号化してもよい。
【0057】
データカプセル120の生成時、データ処理サーバ31は、機能が制限されていない通常版のDBMSプログラムを用いて、構成ファイル122、管理情報ファイル123およびデータファイル124を生成して暗号化する。データ処理サーバ31は、データカプセル作成要求に従って、通常版のDBMSに管理情報やデータを入力する。データ処理サーバ31は、構成ファイル122、管理情報ファイル123およびデータファイル124が生成された後、通常版のDBMSプログラムをDBMSプログラム131に入れ替える。
【0058】
消去プログラム132は、コンテナプログラム133からの指示に応じて、データ漏洩を抑止するため、管理情報ファイル123およびデータファイル124を削除するプログラムである。消去プログラム132は、先に管理情報ファイル123を削除し、その後にデータファイル124を削除する。管理情報ファイル123およびデータファイル124の削除は、復元不能にするため、管理情報ファイル123およびデータファイル124が記憶された記憶領域に特定のビットを上書きすることで行われる。
【0059】
コンテナプログラム133は、データカプセル120を単一ファイルにカプセル化するための代表プログラムである。データカプセル120を起動しようとすると、コンテナプログラム133が最初に実行される。コンテナプログラム133は、起動時に、顧客番号とパスワードを用いた利用者認証を行う。コンテナプログラム133は、顧客番号と正解のパスワードの対応を示すアカウント情報を保持してもよい。利用者認証に成功すると、コンテナプログラム133は、DBMSプログラム131を起動する。
【0060】
また、コンテナプログラム133は、データカプセル120が不正に使用されていないことを継続的に確認する状態確認を開始する。コンテナプログラム133は、データカプセル120の不正使用の可能性のある事象を検出すると、データカプセル120を無効化することを決定し、消去プログラム132を起動する。
【0061】
状態確認として、コンテナプログラム133は、起動後にデータ処理サーバ31と定期的に通信する。ただし、コンテナプログラム133の通信相手が、データ処理サーバ31以外の特定のサーバであってもよい。通信不能が検出された場合、コンテナプログラム133は、データカプセル120の無効化を決定する。また、コンテナプログラム133は、現在時刻が有効期限を経過していないことを確認する。コンテナプログラム133は、データカプセル120の有効期限の情報を保持してもよい。現在時刻が有効期限を徒過した場合、コンテナプログラム133は、データカプセル120の無効化を決定する。
【0062】
また、コンテナプログラム133は、データカプセル120に対する利用者認証の結果を監視して不正侵入を検出する。複数回の利用者認証の結果が特定のパターンに該当する場合、コンテナプログラム133は、不正侵入の可能性があると判断してデータカプセル120の無効化を決定する。不正侵入のパターンは、例えば、時間T1以内に利用者認証の失敗回数が閾値を超え、それに続く時間T2以内に利用者認証が成功したことである。状態確認によって、許可されていない者にデータカプセル120が転送された可能性や、許可されていない者がデータカプセル120に不正侵入した可能性が検出される。
【0063】
次に、データ処理サーバ31の機能について説明する。
図5は、データ処理サーバのソフトウェア例を示すブロック図である。
データ処理サーバ31は、管理テーブル記憶部141およびプログラム記憶部142を有する。これらの記憶部は、例えば、RAM102またはHDD103を用いて実装される。また、データ処理サーバ31は、要求受信部143、案件管理部144、鍵生成部145、データ格納部146、ビルド部147および監視部148を有する。これらの処理部は、例えば、CPU101およびプログラムを用いて実装される。
【0064】
管理テーブル記憶部141は、カプセル管理テーブルを記憶する。カプセル管理テーブルは、データカプセルを作成する案件毎に、制限版のDBMSのリビジョン番号とデータベースに初期データを登録する利用者の顧客番号とを対応付ける。
【0065】
プログラム記憶部142は、通常版のDBMSプログラムを記憶する。また、プログラム記憶部142は、制限版のDBMSプログラムのソースコードと、データカプセルに組み込まれる消去プログラムおよびコンテナプログラムとを記憶する。
【0066】
要求受信部143は、利用者サーバ32,33と通信する。要求受信部143は、利用者サーバ32,33に対してWebインタフェースを提供し、利用者サーバ32,33の何れかからデータカプセル作成要求を受信する。
【0067】
要求受信部143は、データカプセル作成要求に含まれる顧客番号を案件管理部144に通知し、リビジョン番号および暗号鍵を案件管理部144から取得する。要求受信部143は、暗号鍵と、データカプセル作成要求に含まれる利用者定義、権限定義、データ構造定義、プロシジャ定義およびデータとを、データ格納部146に通知する。要求受信部143は、リビジョン番号および顧客番号をビルド部147に通知し、生成されたデータカプセルをビルド部147から取得して利用者サーバに返信する。
【0068】
案件管理部144は、管理テーブル記憶部141に記憶されたカプセル管理テーブルを参照して、新しい案件で使用される新しいリビジョン番号を採番する。案件管理部144は、リビジョン番号と顧客番号とを対応付けてカプセル管理テーブルに登録する。案件管理部144は、リビジョン番号および顧客番号を鍵生成部145に通知し、暗号鍵を鍵生成部145から取得し、暗号鍵およびリビジョン番号を要求受信部143に通知する。
【0069】
鍵生成部145は、特定の鍵生成アルゴリズムに従って、顧客番号およびリビジョン番号から暗号鍵を生成する。例えば、鍵生成部145は、顧客番号とリビジョン番号とを結合した文字列を生成し、生成された文字列をハッシュ関数などの関数に入力し、関数が出力するビット列を暗号鍵として採用する。
【0070】
データ格納部146は、プログラム記憶部142に記憶された通常版のDBMSプログラムを用いて、利用者定義、権限定義およびプロシジャ定義を管理情報に登録する。また、データ格納部146は、通常版のDBMSプログラムを用いて、データ構造定義を管理情報に登録し、データを関係テーブルに登録する。このとき、データ格納部146は、要求受信部143から取得する暗号鍵を用いて、管理情報および関係テーブルを暗号化する。これにより、構成ファイル、管理情報ファイルおよびデータファイルが生成される。
【0071】
ビルド部147は、プログラム記憶部142に記憶された制限版のDBMSプログラムのソースコードに、要求受信部143から取得するリビジョン番号を埋め込み、制限版のDBMSプログラムをビルドする。ビルドには、ソースコードのコンパイルやライブラリのリンクが含まれる。また、ビルド部147は、要求受信部143から取得する顧客番号を記載した顧客番号ファイルを生成する。
【0072】
ビルド部147は、消去プログラムおよびコンテナプログラムをプログラム記憶部142から読み出す。ビルド部147は、顧客番号ファイル、構成ファイル、管理情報ファイル、データファイル、制限版のDBMSプログラム、消去プログラムおよびコンテナプログラムをカプセル化し、データカプセルを生成する。データカプセルは、ディレクトリ階層を保持したまま記憶装置上のファイル群を単一ファイルにまとめたイメージファイルに相当する。ビルド部147は、データカプセルを要求受信部143に提供する。
【0073】
監視部148は、利用者サーバ32,33に提供されたデータカプセルと通信し、それらデータカプセルを追跡する。監視部148は、制限版のDBMSプログラムが実行されている間、コンテナプログラムから定期的にメッセージを受信し、応答メッセージを返信する。なお、監視部148がデータ処理サーバ31と異なるサーバに実装されてもよい。
【0074】
図6は、カプセル管理テーブルの例を示す図である。
カプセル管理テーブル151は、管理テーブル記憶部141に記憶される。カプセル管理テーブル151は、案件番号、リビジョン番号、顧客名、顧客番号、案件名、作成日および有効期限を対応付ける。案件番号は、新しいデータカプセルを提供する案件を識別する識別番号である。リビジョン番号は、制限版のDBMSプログラムを識別する識別番号であり、案件毎に採番される。顧客名は、データベースに初期データを登録する利用者の名称である。顧客番号は、当該利用者に事前に付与される識別番号である。
【0075】
案件名は、データカプセルの用途を示す名称である。作成日は、データ処理サーバ31がデータカプセルを生成した日付である。有効期限は、生成されたデータカプセルを使用可能な期限である。有効期限を過ぎたデータカプセルは無効化され、データベースが消去される。有効期限は、データカプセル作成要求において利用者から指定される。
【0076】
図7は、暗号鍵の生成例を示す図である。
鍵生成部145は、リビジョン番号152および顧客番号153を受け付ける。鍵生成部145は、リビジョン番号152および顧客番号153を鍵生成アルゴリズム154に入力して、暗号鍵155を生成する。例えば、鍵生成部145は、リビジョン番号152と顧客番号153とを結合して鍵生成アルゴリズム154に入力する。
【0077】
制限版のDBMSプログラムは、制限版のDBMSプログラムに埋め込まれたリビジョン番号152と顧客番号ファイルに記載された顧客番号153とを、鍵生成アルゴリズム154に入力して、暗号鍵155を再生成する。ただし、制限版のDBMSプログラムは、リビジョン番号152および顧客番号153を出力して、制限版のDBMSプログラムの外部モジュールに暗号鍵155の再生成を依頼してもよい。
【0078】
次に、データカプセルを生成するデータ処理サーバ31の処理手順と、データカプセルを利用する利用者サーバ32の処理手順とを説明する。
図8は、データカプセル生成の手順例を示すフローチャートである。
【0079】
(S10)要求受信部143は、データカプセル作成要求を受信する。
(S11)案件管理部144は、カプセル管理テーブル151を参照して新しいリビジョン番号を採番する。案件管理部144は、データカプセル作成要求に含まれる顧客番号と共にリビジョン番号をカプセル管理テーブル151に記録する。
【0080】
(S12)鍵生成部145は、リビジョン番号と顧客番号とから暗号鍵を生成する。
(S13)データ格納部146は、通常版のDBMSプログラムを用いて、データカプセル作成要求に含まれる利用者定義、権限定義およびプロシジャ定義をデータベースに登録する。データ格納部146は、暗号鍵を用いてこれら定義情報を暗号化する。
【0081】
(S14)データ格納部146は、通常版のDBMSプログラムを用いて、データ構造定義およびデータ本体をデータベースに登録する。データ格納部146は、暗号鍵を用いてこれら定義情報およびデータを暗号化する。
【0082】
(S15)データ格納部146は、上記で使用した暗号鍵を破棄する。
(S16)ビルド部147は、制限版のDBMSプログラムのソースコードにリビジョン番号を埋め込み、リビジョン番号をもつ制限版のDBMSプログラムをビルドする。
【0083】
(S17)ビルド部147は、通常版のDBMSプログラムにより生成された構成ファイル、管理情報ファイルおよびデータファイルと、制限版のDBMSプログラムとに、顧客番号ファイル、消去プログラムおよびコンテナプログラムを更に追加する。ビルド部147は、これらファイルおよびプログラムをカプセル化してデータカプセルを生成する。
【0084】
(S18)要求受信部143は、生成されたデータカプセルを送信する。
図9は、データカプセル利用の手順例を示すフローチャートである。
(S20)利用者サーバ32は、コンテナプログラム133を起動し、顧客番号およびパスワードをコンテナプログラム133に入力して利用者認証を行う。
【0085】
(S21)利用者サーバ32は、コンテナプログラム133により、データカプセル120を無効化するような事象を検出したか判断する。無効化事象には、データ処理サーバ31との定期的な通信が失敗したこと、不正侵入が疑われる利用者認証結果が発生したこと、および、有効期限を徒過したことが含まれる。無効化事象が検出された場合はステップS28に処理が進み、それ以外の場合にはステップS22に処理が進む。
【0086】
(S22)利用者サーバ32は、DBMSプログラム131を起動する。
(S23)利用者サーバ32は、DBMSプログラム131に埋め込まれたリビジョン番号を抽出し、顧客番号ファイル121から顧客番号を抽出する。
【0087】
(S24)利用者サーバ32は、DBMSプログラム131により、抽出されたリビジョン番号および顧客番号から暗号鍵を生成する。
(S25)利用者サーバ32は、DBMSプログラム131により、管理情報ファイル123を復号して、利用者サーバ32の利用者の権限を確認する。
【0088】
(S26)利用者サーバ32は、DBMSプログラム131により、データファイル124を復号して、利用者から指定されたクエリまたはストアドプロシジャを実行する。
(S27)利用者サーバ32は、DBMSプログラム131によって生成された暗号鍵を破棄する。そして、データカプセル利用が終了する。
【0089】
(S28)利用者サーバ32は、消去プログラム132を起動し、データカプセル120から管理情報ファイル123およびデータファイル124を消去する。
以上説明したように、第2の実施の形態のデータ処理サーバ31は、利用者からの要求に応じてデータカプセルを生成して提供する。データカプセルは、制限版のDBMSプログラムと暗号化されたデータベースとを含む。これにより、データベースからデータを読み出すことができる利用者が限定されると共に、ストアドプロシジャによってデータそのものをデータカプセルの外部に出力せずにデータ処理が行われる。そのため、複数の利用者は、データ漏洩リスクを低減しつつ、業務に使用するデータを受け渡すことができる。
【0090】
また、データベースを復号するための暗号鍵は保存されず、データベースを利用する毎に、制限版のDBMSプログラムに埋め込まれたリビジョン番号とデータベースの顧客番号とから生成される。これにより、制限版のDBMSプログラムとデータベースとが紐付けられ、正しいDBMSプログラムを使用せずにデータベースを復号することが困難となる。そのため、第三者がDBMSプログラムを入れ替えることでデータベースの保護を弱くするという攻撃が困難となり、データ漏洩リスクが低下する。
【0091】
また、データカプセルは、データカプセルを無効化すべき事象を検出するコンテナプログラムと、データベースを消去することでデータカプセルを無効化する消去プログラムとを含む。コンテナプログラムは、事象として、データカプセルを追跡するサーバとの通信失敗、有効期限が切れたこと、および、利用者認証の不正な突破を検出する。これにより、データカプセルが第三者に不正に転送された場合のデータ漏洩リスクが低下する。
【0092】
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【0093】
10 情報処理装置
11 記憶部
12 処理部
13 データベース
14 データベース管理プログラム
15 リビジョン情報
16 利用者情報
17 鍵情報
図1
図2
図3
図4
図5
図6
図7
図8
図9