(57)【要約】【課題】  データベースの個人情報を保護するシステムであって、特に、悪意のあるシステム開発者からも個人情報を保護することが可能で、しかも、セキュリティにかけるコストも低減できるデータベース保護システムを提供する。【解決手段】  アプリケーションサーバ装置１とクライアント端末装置２の間で送受信されるデータをインターセプトするプロキシサーバ装置３は、鍵情報と秘匿すべきデータの情報を記録した設定ファイル３ａの情報に基づいて、クライアント端末２から受信したリクエストデータ中の所定の領域を暗号化する暗号化手段と、アプリケーションサーバ装置１から受信したレスポンスデータ中の、前記暗号化手段により暗号化された領域を復号化する復号化手段を実行する。【選択図】        図１
2005309846.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションサーバ装置とクライアント端末装置の間で送受信されるデータをインターセプトするプロキシサーバ装置を用いて、前記アプリケーションサーバ装置のアプリケーションがアクセスするデータベースの情報を保護するシステムであって、
前記プロキシサーバ装置は、
鍵情報と秘匿すべきデータの情報を記録した設定ファイルにアクセス可能であるとともに、
前記設定ファイルに記録された情報に基づいて、前記クライアント端末から受信したリクエストデータ中の所定の領域を暗号化する暗号化手段と、
前記アプリケーションサーバ装置から受信した前記リクエストデータに対するレスポンスデータ中の、前記暗号化手段により暗号化された領域を復号化する復号化手段と、
を備えていることを特徴とするデータベース保護システム。
【請求項２】
アプリケーションサーバ装置のアプリケーションがアクセスするデータベースの情報を保護するためのプロキシサーバ装置であって、
鍵情報と秘匿すべきデータの情報を記録した設定ファイルにアクセス可能であるとともに、
前記設定ファイルに記録された情報に基づいて、前記クライアント端末から受信したリクエストデータ中の所定の領域を暗号化する暗号化手段と、
前記アプリケーションサーバ装置から受信した前記リクエストデータに対するレスポンスデータ中の、前記暗号化手段により暗号化された領域を復号化する復号化手段と、
を備えていることを特徴とするプロキシサーバ装置。
【請求項３】
前記暗号化手段において、前記設定ファイルに記録された情報に基づいてリクエストデータ中の所定の領域を暗号化するときに、その暗号化する領域の前後にタグ文字列を挿入するとともに、
前記復号化手段では、前記タグ文字列を文字列検索して、暗号化された領域を発見することを特徴とする請求項１記載のデータベース保護システム、又は、請求項２記載のプロキシサーバ装置。
【請求項４】
前記リクエストデータがユーザ登録処理のリクエストであるとき、
前記プロキシサーバ装置は、前記リクエストデータ中にユーザ情報に対する署名情報を記録する手段を実行するとともに、前記リクエストデータを受信した前記アプリケーションサーバ装置は、前記署名付きユーザー情報を署名情報記録ファイルに保存する手段を実行し、
次に前記プロキシサーバ装置がログイン処理のリクエストデータを受信したとき、
前記プロキシサーバ装置は、前記署名情報記録ファイルにアクセスして前記署名付きユーザ情報を取得するとともに、前記ログイン処理のリクエストデータの署名と一致するか否かを照合する手段を実行し、不一致であるときは、エラー処理を実行することを特徴とする請求項１記載のデータベース保護システム、又は、請求項２記載のプロキシサーバ装置。
【請求項５】
前記リクエストデータがログイン処理のリクエストであるとき、
前記プロキシサーバ装置は、セッションオブジェクトにユーザ情報を保存する手段を実行し、
次に前記プロキシサーバ装置が秘匿すべきデータを含むリクエストを受信したとき、
前記プロキシサーバ装置は、前記セッションオブジェクトにユーザ情報が登録されているか否かを照合する手段を実行し、未登録であるときは、エラー処理を実行することを特徴とする請求項１記載のデータベース保護システム、又は、請求項２記載のプロキシサーバ装置。
【請求項６】
請求項５記載のデータベース保護システム、又は、プロキシサーバ装置において、前記プロキシサーバ装置が秘匿すべきデータを含むリクエストを受信し、かつ、前記セッションオブジェクトにユーザ情報が登録されているとき、
前記プロキシサーバ装置は、前記セッションオブジェクトからユーザ情報を取得し、リクエストデータ中の秘匿すべきデータにユーザＩＤを付与し、
次に前記プロキシサーバ装置が前記復号化手段を実行するとき、
前記プロキシサーバ装置は、前記セッションオブジェクトからユーザ情報を取得し、暗号化されたデータに付与されているユーザＩＤと一致しているか否かを照合し、不一致であるときは、エラー処理を実行することを特徴とするデータベース保護システム、又は、プロキシサーバ装置。
【請求項７】
前記プロキシサーバ装置は、前記アプリケーションサーバ装置上の公開相手一覧ファイルにアクセス可能であるとともに、
前記復号化処理において、前記プロキシサーバ装置が前記セッションオブジェクトから取得したユーザ情報と、暗号化されたデータに付与されているユーザＩＤの照合結果が不一致であるとき、
前記プロキシサーバ装置は、前記公開相手一覧ファイルにアクセスして突き合わせし、ユーザＩＤが一致する公開相手が発見されたとき、復号化処理を行うことを特徴とする請求項６記載のデータベース保護システム、又は、プロキシサーバ装置。
【請求項８】
前記プロキシサーバ装置は、前記アプリケーションサーバ装置と異なる場所に設置してセキュリティレベルを高くする一方、前記アプリケーションサーバ装置のセキュリティレベルは、前記プロキシサーバ装置よりも低くしたことを特徴とする請求項１乃至７の何れかに記載のデータベース保護システム、又は、プロキシサーバ装置。
【請求項９】
前記プロキシサーバ装置は、鍵情報と前記設定ファイル以外にユーザデータを保存していないことを特徴とする請求項１乃至８の何れかに記載のデータベース保護システム、又は、プロキシサーバ装置。
【請求項１０】
アプリケーションサーバ装置とクライアント端末装置の間で送受信されるデータをインターセプトするプロキシサーバ装置に、前記アプリケーションサーバ装置のアプリケーションがアクセスするデータベースの情報を保護する処理を行わせるためのプログラムであって、
前記クライアント端末装置からのリクエストデータを受信するステップと、
鍵情報と秘匿すべきデータの情報を記録した設定ファイルにアクセスするステップと、  前記設定ファイルに記録された情報に基づいて、前記クライアント端末から受信したリクエストデータ中の所定の領域を暗号化する暗号化ステップと、
前記アプリケーションサーバ装置に前記リクエストデータを送信するステップと、
前記アプリケーションサーバ装置から前記リクエストデータに対するレスポンスデータを受信するステップと、
前記レスポンスデータ中の暗号化されている領域を復号化する復号化ステップと、
前記クライアント端末に前記レスポンスデータを送信するステップと、
を前記プロキシサーバ装置に行わせるためのデータベース保護プログラム。
【請求項１１】
アプリケーションサーバ装置とクライアント端末装置の間で送受信されるデータをインターセプトするプロキシサーバ装置を用いて、前記アプリケーションサーバ装置のアプリケーションがアクセスするデータベースの情報を保護する方法であって、
前記プロキシサーバ装置に、
前記クライアント端末装置からのリクエストデータを受信するステップと、
鍵情報と秘匿すべきデータの情報を記録した設定ファイルにアクセスするステップと、  前記設定ファイルに記録された情報に基づいて、前記クライアント端末から受信したリクエストデータ中の所定の領域を暗号化する暗号化ステップと、
前記アプリケーションサーバ装置に前記リクエストデータを送信するステップと、
前記アプリケーションサーバ装置から前記リクエストデータに対するレスポンスデータを受信するステップと、
前記レスポンスデータ中の前記暗号化ステップにより暗号化された領域を復号化する復号化ステップと、
前記クライアント端末に前記レスポンスデータを送信するステップと、
を行わせることを特徴とするデータベース保護方法。
【請求項１２】
前記暗号化ステップにおいて、前記設定ファイルに記録された情報に基づいてリクエストデータ中の所定の領域を暗号化するときに、その暗号化する領域の前後にタグ文字列を挿入するとともに、
前記復号化ステップでは、前記タグ文字列を文字列検索して、暗号化された領域を発見することを特徴とする請求項１０記載のデータベース保護プログラム、又は、請求項１１記載のデータベース保護方法。
【請求項１３】
前記リクエストデータがユーザ登録処理のリクエストであるとき、
前記プロキシサーバ装置に、前記リクエストデータ中にユーザ情報に対する署名情報を記録するステップを実行させ、
前記リクエストデータを受信した前記アプリケーションサーバ装置が、前記署名付きユーザ情報を署名情報記録ファイルに保存した後、次に前記プロキシサーバ装置がログイン処理のリクエストデータを受信したとき、
前記プロキシサーバ装置に、前記署名情報記録ファイルにアクセスして署名付きユーザ情報を取得させるとともに、前記ログイン処理のリクエストの署名と一致するか否かを照合するステップを実行させ、不一致であるときは、エラー処理のステップを実行させることを特徴とする請求項１０記載のデータベース保護プログラム、又は、請求項１１記載のデータベース保護方法。
【請求項１４】
前記リクエストデータがログイン処理のリクエストであるとき、
前記プロキシサーバ装置に、セッションオブジェクトにユーザ情報を保存するステップを実行させ、
次に前記プロキシサーバ装置が秘匿すべきデータを含むリクエストを受信したとき、
前記プロキシサーバ装置に、前記セッションオブジェクトにユーザ情報が登録されているか否かを照合するステップを実行させ、未登録であるときは、エラー処理のステップを実行させることを特徴とする請求項１０記載のデータベース保護プログラム、又は、請求項１１記載のデータベース保護方法。
【請求項１５】
請求項１４記載のデータベース保護プログラム、又は、データベース保護方法において、前記プロキシサーバ装置が秘匿すべきデータを含むリクエストを受信し、かつ、前記セッションオブジェクトにユーザ情報が登録されているとき、
前記プロキシサーバ装置に、前記セッションオブジェクトからユーザ情報を取得し、リクエストデータ中の秘匿すべきデータにユーザＩＤを付与するステップを実行させ、
次に前記プロキシサーバ装置が前記復号化手段を実行するとき、
前記プロキシサーバ装置に、前記セッションオブジェクトからユーザ情報を取得し、暗号化されたデータに付与されているユーザＩＤと一致しているか否かを照合するステップを実行させ、不一致であるときは、エラー処理のステップを実行させることを特徴とするデータベース保護プログラム、又は、データベース保護方法。
【請求項１６】
前記プロキシサーバ装置は、公開相手一覧ファイルにアクセス可能であるとともに、
前記復号化処理において、前記プロキシサーバ装置が前記セッションオブジェクトから取得したユーザ情報と、暗号化されたデータに付与されているユーザＩＤの照合結果が不一致であるとき、
前記プロキシサーバ装置に、前記公開相手一覧ファイルにアクセスして突き合わせし、ユーザＩＤが一致する公開相手が発見されたとき、復号化処理を行うステップを実行させることを特徴とする請求項１５記載のデータベース保護プログラム、又は、データベース保護方法。
【請求項１７】
請求項１０、１２、１３、１４、１５、１６の何れかに記載のデータベース保護プログラムを記録したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロキシサーバ装置を用いて、アプリケーションサーバ装置がアクセスするデータベースの情報を保護するシステムに関し、特に、悪意のあるシステム開発者からもデータを守ることができるように構成されたデータベース保護システムに関する。
【背景技術】
【０００２】
ネットワーク技術の進歩に伴い、例えば病院や官公庁等の個人情報を取り扱う施設においても、ネットワークを介して種々の情報を提供するシステムが採用されつつある。このようなネットワークシステムの中核となるものの一つが、図５に示すような、アプリケーションサーバ装置１００である。
【０００３】
図５のアプリケーションサーバ装置１００は、クライアント端末装置１０１からの要求に応じて、データベース１０２にアクセスするＷｅｂアプリケーション１０３が動作するように構成されており、データベース１０２に種々の情報を蓄積しておくと、クライアント端末装置１０１から、データベース１０２を閲覧することができる。なお、図５の例では、クライアント端末装置１０１は、ｈｔｔｐ（Hyper Text Transfer Protocol）の規定に従ったリクエストデータ１０４（HTTP Request）を送信し、これに対してアプリケーションサーバ装置１００は、データベース１０２の問い合わせ結果を含むレスポンスデータ１０５（HTTP Response ）を送信している。
【０００４】
このようなアプリケーションサーバ装置１００を利用したシステムでは、データベース１０２に登録した個人情報等が外部に流出すると、社会的信用の失墜、顧客の減少等、企業の損失は計り知れないものとなる。そこで、データベース１０２に不正にアクセスして個人情報等を漏洩しようとする悪意のある者から、データベース１０２に登録した情報をいかに保護するかが問題となる。
【０００５】
現在よく利用されている簡便な対策としては、ＯＳ又はデータベースの機能により、アクセス権のレベルの異なるユーザＩＤとパスワードを数種類設定し、個人情報等を含むデータは、最も強いアクセス権を有する特定のユーザＩＤの利用者でなければ、閲覧できないようにする方法がある。この場合、個人情報等へのアクセスも許可される特定のユーザＩＤは、システム管理者や一定のシステム開発者に与えられるケースが多い。
【０００６】
また、上記のようなユーザＩＤによる本人認証では、データベースに対するセキュリティは高くなるが、一旦読み出されたデータ自身にはセキュリティ機能がなく、外部に漏洩する危険性があることから、例えば、特許文献１には、データベースのファイル自体に認証データを埋め込むことにより、表示の可否の認証を行うファイルセキュリティシステムが提案されている。
【特許文献１】特開２００２−１４９６０３号公報
【０００７】
また、データ通信における秘匿性の保障等の目的から、データを暗号化して通信することも行われている。例えば、公開鍵暗号方式（ＰＫＩ：Public Key Infrastructure ）では暗号化と復号化で異なる一対の鍵を使用する。この一対の鍵は「秘密鍵」と「公開鍵」と呼ばれ、片方の鍵を使って暗号化したデータはそれと対になっているもう一方の鍵を使用しなければ復号化できない。
【０００８】
これにより、ユーザは、自己の秘密鍵を公開せずに保管しておけば暗号化の秘匿性を保障することができ、また、あるユーザの公開鍵を持っていれば、当該ユーザと暗号化データをのやり取りを行うことができる。例えば、ＸとＹが通信をするときは、Ｘが、自己の秘密鍵と相手（Ｙ）の公開鍵を用いて暗号化したデータは、Ｙが、相手（Ｘ）の公開鍵と自己の秘密鍵を用いることにより復号化することができる。
【０００９】
例えば、アプリケーションサーバ装置を含むローカルエリアネットワークとインターネットとの境界部分にファイアウォールを設け、クライアント端末装置とアプリケーションサーバ装置の間で送受信されるデータを暗号化し、データベースには復号化したデータを保存しているシステムも多く見受けられる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記のようなユーザＩＤによる本人認証は、アクセス権のない者がデータベースにアクセスすることを拒否することはできるが、アクセス権を与えられたシステム開発者が悪意のある者に転じて個人情報を漏洩するケースに対しては、効果がない。実際のところ、最近、悪意のあるシステム開発者が個人情報を流出させる事件が多発している。また、上記のようなファイルセキュリティシステムや、データの暗号化技術についても、復号化に必要な認証データや秘密鍵の情報にアクセス可能なシステム開発者が悪意のある者となった場合、同様の問題がある。
【００１１】
そのため、従来は、個人情報へのアクセス権を有する者によるデータ漏洩の問題に対しては、セキュリティポリシーを厳しくし、人の運用を徹底するしか対策がない状況であった。例えば、システム部門の部長が出社してＩＤカードを挿入しなければ、システム開発者であってもデータベースの個人情報には一切アクセスできないように設定したならば、その決められた運用を徹底する必要がある。
【００１２】
しかし、一般にアプリケーションサーバ装置においては、システム開発者はソフトウェアの改良、バックアップの採取、障害原因の解析などの目的で、頻繁にシステムに特権でアクセスする必要がある。そうすると、例えば、システム開発者が、バックアップの採取や障害原因の解析などの目的で休日出勤するときは、部長も休日出勤するようにしなければ、セキュリティポリシーは維持できない。この例からも容易に想像できるように、アプリケーションサーバ装置において、セキュリティポリシーを厳しくすることは、Ｗｅｂアプリケーションの開発やデータベースの利用上、制約が極めて多くなり、結果として、セキュリティにかけるコストを増大させるという問題があった。
【００１３】
また、ファイアウォールを設け、ネットワークの部分のみ暗号化しているシステムは、個人情報を漏洩するのは、外部から侵入してくる者に限られるという前提に立つもので、内部の者がデータを漏洩する問題には全く対処できていない。また、従来は、データベースを含むアプリケーションサーバ装置側で認証データや秘密鍵の情報等を保存していたため、バックアップを頻繁に取る必要があるという問題もあった。
【００１４】
なお、アプリケーションサーバ装置上で動作する暗号化ソフトにより、アプリケーションがデータベースに書き込みするときに特定の項目のみ暗号化を行う方式は公知である。しかし、暗号化ソフトを利用した方式も、暗号化ソフトに対するアクセス権を有する悪意のあるシステム開発者からデータベースを守れない点は同じである上、既存のアプリケーションの処理を大きく変更しなければならないという問題があった。
【００１５】
本発明は、上記した従来の問題点に鑑みてなされたものであり、悪意のあるシステム開発者からデータベースを保護することが可能で、既存のアプリケーションの変更を最小限にし、しかも、セキュリティにかけるコストも低減できるデータベース保護システム、プロキシサーバ装置、データベース保護プログラム、及び、データベース保護方法を提供することを目的としている。
【課題を解決するための手段】
【００１６】
本発明のデータベース保護システムは、アプリケーションサーバ装置とクライアント端末装置の間で送受信されるデータをインターセプトするプロキシサーバ装置を用いて、前記アプリケーションサーバ装置のアプリケーションがアクセスするデータベースの情報を保護するシステムであって、前記プロキシサーバ装置は、鍵情報と秘匿すべきデータの情報を記録した設定ファイルにアクセス可能であるとともに、前記設定ファイルに記録された情報に基づいて、前記クライアント端末から受信したリクエストデータ中の所定の領域を暗号化する暗号化手段と、前記アプリケーションサーバ装置から受信した前記リクエストデータに対するレスポンスデータ中の、前記暗号化手段により暗号化された領域を復号化する復号化手段と、を備えていることを最も主要な特徴とする。
【００１７】
また、本発明のプロキシサーバ装置は、アプリケーションサーバ装置のアプリケーションがアクセスするデータベースの情報を保護するためのプロキシサーバ装置であって、鍵情報と秘匿すべきデータの情報を記録した設定ファイルにアクセス可能であるとともに、前記設定ファイルに記録された情報に基づいて、前記クライアント端末から受信したリクエストデータ中の所定の領域を暗号化する暗号化手段と、前記アプリケーションサーバ装置から受信した前記リクエストデータに対するレスポンスデータ中の、前記暗号化手段により暗号化された領域を復号化する復号化手段と、を備えていることを最も主要な特徴とする。
【００１８】
また、本発明のデータベース保護プログラムは、アプリケーションサーバ装置とクライアント端末装置の間で送受信されるデータをインターセプトするプロキシサーバ装置に、前記アプリケーションサーバ装置のアプリケーションがアクセスするデータベースの情報を保護する処理を行わせるためのプログラムであって、前記クライアント端末装置からのリクエストデータを受信するステップと、鍵情報と秘匿すべきデータの情報を記録した設定ファイルにアクセスするステップと、前記設定ファイルに記録された情報に基づいて、前記クライアント端末から受信したリクエストデータ中の所定の領域を暗号化する暗号化ステップと、前記アプリケーションサーバ装置に前記リクエストデータを送信するステップと、前記アプリケーションサーバ装置から前記リクエストデータに対するレスポンスデータを受信するステップと、前記レスポンスデータ中の暗号化されている領域を復号化する復号化ステップと、前記クライアント端末に前記レスポンスデータを送信するステップと、を前記プロキシサーバ装置に行わせることを最も主要な特徴とする。
【００１９】
また、本発明のデータベース保護方法は、アプリケーションサーバ装置とクライアント端末装置の間で送受信されるデータをインターセプトするプロキシサーバ装置を用いて、前記アプリケーションサーバ装置のアプリケーションがアクセスするデータベースの情報を保護する方法であって、前記プロキシサーバ装置に、前記クライアント端末装置からのリクエストデータを受信するステップと、鍵情報と秘匿すべきデータの情報を記録した設定ファイルにアクセスするステップと、前記設定ファイルに記録された情報に基づいて、前記クライアント端末から受信したリクエストデータ中の所定の領域を暗号化する暗号化ステップと、前記アプリケーションサーバ装置に前記リクエストデータを送信するステップと、前記アプリケーションサーバ装置から前記リクエストデータに対するレスポンスデータを受信するステップと、前記レスポンスデータ中の前記暗号化ステップにより暗号化された領域を復号化する復号化ステップと、前記クライアント端末に前記レスポンスデータを送信するステップと、を行わせることを最も主要な特徴とする。
【発明の効果】
【００２０】
本発明によれば、暗号化及び復号化に必要な鍵情報はプロキシサーバ装置に記録され、秘匿すべきデータは、プロキシサーバ装置によって暗号化されてデータベースに記録されるため、個人情報等へのアクセス権を有するシステム開発者が悪意のある者となった場合でも、暗号化されたデータしか閲覧できず、重要なデータの漏洩を防止できるという効果が得られる。
【００２１】
また、プロキシサーバ装置は、アプリケーションやデータベースを有さないため、ソフトウェア改良、バックアップ、障害解析などの必要がなく、セキュリティポリシーを厳しくすることも容易となる。すなわち、本発明では、アプリケーションサーバ装置の方のセキュリティポリシーを必要以上に厳しくする必要がなくなり、結果として、セキュリティにかけるコストを低減することができる。
【発明を実施するための最良の形態】
【００２２】
本発明のデータベース保護システム、プロキシサーバ装置、データベース保護プログラム、データベース保護方法は、上記のとおりの構成のものであるが、本発明は、より望ましい実施の形態として、以下の構成を採用できる。
【００２３】
先ず、前記データベース保護システム、前記プロキシサーバ装置、前記データベース保護プログラム、又は、前記データベース保護方法において、前記設定ファイルに記録された情報に基づいてリクエストデータ中の所定の領域を暗号化するときに、その暗号化する領域の前後にタグ文字列を挿入するとともに、前記復号化手段では、前記タグ文字列を文字列検索して、暗号化された領域を発見するようにすれば、データベースの項目の単位に依存せず、リクエストデータ中の任意の領域を暗号化及び復号化することができるので、好適である。
【００２４】
また、前記データベース保護システム、前記プロキシサーバ装置、前記データベース保護プログラム、又は、前記データベース保護方法において、前記リクエストデータがユーザ登録処理のリクエストであるとき、前記プロキシサーバ装置は、前記リクエストデータ中にユーザ情報に対する署名情報を記録する手段又はステップを実行するとともに、前記リクエストデータを受信した前記アプリケーションサーバ装置は、前記署名付きユーザ情報を署名情報記録ファイルに保存する手段又はステップを実行し、次に前記プロキシサーバ装置がログイン処理のリクエストデータを受信したとき、前記プロキシサーバ装置は、前記署名情報記録ファイルにアクセスして前記署名付きユーザ情報を取得するとともに、前記ログイン処理のリクエストデータの署名と一致するか否かを照合する手段又はステップを実行し、不一致であるときは、エラー処理を実行するように構成すれば、正規のユーザ登録処理を経ていない不正なログインをエラーとして排除できるので、好適である。
【００２５】
また、前記データベース保護システム、前記プロキシサーバ装置、前記データベース保護プログラム、又は、前記データベース保護方法において、前記リクエストデータがログイン処理のリクエストであるとき、前記プロキシサーバ装置は、セッションオブジェクトにユーザ情報を保存する手段又はステップを実行し、次に前記プロキシサーバ装置が秘匿すべきデータを含むリクエストを受信したとき、前記プロキシサーバ装置は、前記セッションオブジェクトにユーザ情報が登録されているか否かを照合する手段又はステップを実行し、未登録であるときは、エラー処理を実行するように構成すれば、正規にセッション接続していない不正な操作を排除できるため、好適である。
【００２６】
さらに、前記プロキシサーバ装置が秘匿すべきデータを含むリクエストを受信し、かつ、前記セッションオブジェクトにユーザ情報が登録されているとき、前記プロキシサーバ装置は、前記セッションオブジェクトからユーザ情報を取得し、リクエストデータ中の秘匿すべきデータにユーザＩＤを付与し、次に前記プロキシサーバ装置が前記復号化手段又はステップを実行するとき、前記プロキシサーバ装置は、前記セッションオブジェクトからユーザ情報を取得し、暗号化されたデータに付与されているユーザＩＤと一致しているか否かを照合し、不一致であるときは、エラー処理を実行するように構成すれば、暗号化時の利用者と復号化時の利用者の整合性をチェックすることで不正な操作を排除できるので、好適である。
【００２７】
さらに、前記プロキシサーバ装置が、前記アプリケーションサーバ装置上の公開相手一覧ファイルにアクセス可能であるとともに、前記復号化処理において、前記プロキシサーバ装置が前記セッションオブジェクトから取得したユーザ情報と、暗号化されたデータに付与されているユーザＩＤの照合結果が不一致であるとき、前記プロキシサーバ装置は、前記公開相手一覧ファイルにアクセスして突き合わせし、ユーザＩＤが一致する公開相手が発見されたとき、復号化処理を行うように構成すれば、公開相手一覧ファイルに存在する特定の相手に対してのみ自己のデータを公開することも可能となる。
【００２８】
また、前記データベース保護システム、又は、前記プロキシサーバ装置において、前記プロキシサーバ装置は、前記アプリケーションサーバ装置と異なる場所に設置してセキュリティレベルを高くする一方、前記アプリケーションサーバ装置のセキュリティレベルは、前記プロキシサーバ装置よりも低くするように構成すれば、セキュリティギャップが明確となり、全体としてセキュリティにかけるコストの低減が図れるので、望ましい。
【００２９】
また、前記プロキシサーバ装置が鍵情報と前記設定ファイル以外にユーザデータを保存していないものであれば、プロキシサーバ装置のバックアップを頻繁に取る必要がなくなるので、好適である。
【００３０】
なお、前記データベース保護プログラムは、例えばＣＤ−ＲＯＭ、ＤＶＤ、磁気ディスク装置等、任意のコンピュータ読み取り可能な記憶媒体に記憶させることができる。
【実施例】
【００３１】
以下、本発明を添付図面に示す実施例に基づいて詳細に説明する。図１は、本発明のデータベース保護システム、プロキシサーバ装置、データベース保護プログラム、データベース保護方法の全体構成を示した概念図である。
【００３２】
アプリケーションサーバ装置１は、クライアント端末装置２からの要求に応じて、データベース１ａにアクセスするＷｅｂアプリケーション１ｂが起動するように構成されており、利用者は、クライアント端末装置２から、データベース１ａに登録した種々の情報を閲覧することができる。
【００３３】
３は、本発明のプロキシサーバ装置を示しており、本発明のデータベース保護プログラム３ａは、このプロキシサーバ装置３上で動作する。本発明のデータベース保護システム及びデータベース保護方法は、プロキシサーバ装置３を用いてアプリケーションサーバ装置１とクライアント端末装置２の間で送受信されるデータをインターセプトし、所定のデータの暗号化、復号化を行うものである。なお、３ｂは、暗号化、復号化を行うのに必要な鍵情報や秘匿すべきデータの項目名の情報等を記録する設定ファイルを示している。
【００３４】
図１の例では、クライアント端末装置２は、ｈｔｔｐ（Hyper Text Transfer Protocol）の規定に従ったリクエストデータ４ａ（HTTP Request）を送信している。リクエストデータ４ａがデータベースの更新処理であった場合、これをインターセプトしたプロキシサーバ装置３は、データベース保護プログラム３ａが、設定ファイル３ｂの情報に基づいて必要に応じてリクエストデータ４ａ中の所定の領域を暗号化し、その後、リクエストデータ４ｂ（HTTP Request）をアプリケーションサーバ装置１に送信する。アプリケーションサーバ装置１は、データベース１ａを更新し、データベース１ａに暗号化されたデータを格納する。
【００３５】
次に、リクエストデータ４ａが、参照処理であった場合、アプリケーションサーバ装置１は、Ｗｅｂアプリケーション１ｂが、データベース１ａから暗号化された状態のデータを読み出し、レスポンスデータ４ｃ（HTTP Response ）を送信する。これをインターセプトしたプロキシサーバ装置３は、データベース保護プログラム３ａが、設定ファイル３ｂの情報に基づいて暗号化された所定の領域を復号化し、その後、レスポンスデータ４ｄ（HTTP Response ）をクライアント端末装置２に送信する。従って、クライアント端末装置２に表示されるデータは、復号化された状態のものとなっている。
【００３６】
本発明によれば、暗号化及び復号化に必要な鍵情報はプロキシサーバ装置３の設定ファイル３ｂに記録され、個人情報等の秘匿すべきデータは、プロキシサーバ装置３によって暗号化されてデータベース１ａに記録されるため、個人情報等へのアクセス権を有するシステム開発者が悪意のある者となった場合でも、暗号化されたデータしか閲覧できず、重要なデータの漏洩を防止できるという効果が得られる。
【００３７】
また、プロキシサーバ装置３は、アプリケーションやデータベースを有さないため、セキュリティポリシーを厳しくすることも容易である。すなわち、本発明では、アプリケーションサーバ装置１のセキュリティポリシーを必要以上に厳しくする必要がなくなり、結果として、セキュリティにかけるコストを低減することができる。特に、プロキシサーバ装置３を、アプリケーションサーバ装置１とは異なる場所に設置してセキュリティレベルを高くする一方、アプリケーションサーバ装置１のセキュリティレベルは、プロキシサーバ装置３よりも低くするように構成すれば、セキュリティギャップが明確となり、全体としてセキュリティにかけるコストの低減が図れる。なお、プロキシサーバ装置３は、設定ファイル３ｂ以外にユーザデータを保存していないため、バックアップを頻繁に取る必要がないという利点もある。
【００３８】
次に、図２〜図４を参照して、本発明のデータベース保護システム、プロキシサーバ装置、データベース保護プログラム、データベース保護方法の処理を、さらに詳細に説明する。
【００３９】
プロキシサーバ装置３は、クライアント端末装置２から、リクエストデータを受信し（＃１）、Cookie情報から現在セッションを接続している相手の情報が格納されているセッションオブジェクトを取得する（＃２）。
【００４０】
プロキシサーバ装置３の設定ファイル３ａには、暗号化に必要となる鍵情報のほか、ログイン処理の要求であることを示すログインＵＲＬの情報と、秘匿すべきデータが含まれていることを示す秘匿情報ＵＲＬの情報と、ユーザー登録処理であることを示すユーザ登録ＵＲＬの情報が記録されている（＃３−２）。プロキシサーバ装置３のデータベース保護プログラム３ａは、クライアント端末装置２からリクエストデータを受信すると、上記各ＵＲＬの情報と一致するか否かを照合する（＃３）。
【００４１】
最初に、本発明の最も基本的な処理について説明する。データベース保護プログラム３ａは、リクエストデータが秘匿情報ＵＲＬと一致するときは、設定ファイル３ａから、鍵情報と秘匿すべきデータの項目名の情報を取得し、リクエストデータ中の所定の領域を暗号化する（図２の＃１７（Ａ１））。このとき、データベース保護プログラム３ａは、暗号化する領域の前後に、タグ文字列を挿入する。
【００４２】
次にプロキシサーバ装置３が、アプリケーションサーバ装置２からレスポンスデータを受信したとき、データベース保護プログラム３ａは、図３に示すように、タグ文字列を文字列検索し（＃２０（Ａ３））、タグ文字列が存在するときは、暗号化されたデータが存在するため、復号化手段を実行する（＃２５（Ａ２））。このように本発明では、暗号化する領域の前後にタグ文字列を挿入するように構成したので、データベースの項目の単位に依存せず、リクエストデータ中の任意の領域を暗号化及び復号化することができる。
【００４３】
次に、図２に戻り、本発明のデータベース保護プログラムの処理を時系列に従ってさらに詳細に説明する。
先ず、受信したリクエストデータが、ユーザ登録ＵＲＬと一致している場合、リクエストデータ中には、ユーザ登録に必要となるパスワードの情報が含まれている。設定ファイル３には、パスワードのデータが含まれる項目名の情報が記録されており、データベース保護プログラム３ａは、鍵を使用してパスワードの情報をハッシュする（＃４）。
【００４４】
本発明では、パスワードをハッシュ（＃４）した後、リクエストデータ中にユーザ名とパスワードからなるユーザ情報に対する署名情報を追加して記録する処理を実行し（＃５（Ｂ１））、この署名付きのユーザ情報を、アプリケーションサーバ装置１側で署名情報記録ファイルに保存するようにしている（＃６（Ｂ２））。これらは、後述するように、悪意のシステム開発者が正規のユーザ登録処理を経ずにログインを行うことを排除するために必要な処理である。
【００４５】
次に、受信したリクエストデータが、ログインＵＲＬと一致している場合について説明する。この場合、データベース保護プログラム３ａは、アプリケーションサーバ装置１より、上記署名付きユーザ情報を取得する（＃７（Ｂ３））。すなわち、アプリケーションサーバ装置１には、上記署名付きユーザ情報を返却する機能を付加するようにしている（＃７−２）。
【００４６】
ここで、本発明では、受信したリクエストデータの署名と、アプリケーションサーバ装置１で保存していた署名を照合し、不一致の場合には、エラー処理（＃９）を実行する。このように、図２において（Ｂ１）〜（Ｂ４）の符号を付けた、＃５（Ｂ１）、＃６（Ｂ２）、＃７（Ｂ３）、＃８（Ｂ４）の４つのステップを設けたので、本発明では、正規のユーザ登録処理を経ていない不正なログイン処理をエラーとし、悪意のあるシステム開発者からデータベースを保護することができる。
【００４７】
一方、署名が一致する場合、データベース保護プログラム３ａは、鍵を用いてリクエストデータ中のパスワードの部分をハッシュする（＃１０）。そして、パスワードが一致するか否かを照合し（＃１１）、不一致である場合には、不正な処理と考えられるため、エラー処理を実行する（＃９）。
【００４８】
また、本発明では、リクエストデータがログインＵＲＬであるとき、セッションオブジェクトにユーザ情報を保存する（＃１２（Ｃ１））。次に、リクエストデータが秘匿情報ＵＲＬと一致するとき、データベース保護プログラム３ａは、セッションオブジェクトにユーザ情報が存在するか否かを照合し（＃１３（Ｃ２））、存在しない場合には、エラー処理を実行する（＃１４）。ここでセッションオブジェクトにユーザ情報が存在しないケースは、正規のセッション接続処理を経ていない不正な処理と考えられるからである。
【００４９】
このように、図２において（Ｃ１）〜（Ｃ２）の符号を付けた、＃１２（Ｃ１）、＃１３（Ｃ２）の２つのステップを設けたので、本発明では、悪意のシステム開発者が正規のセッション接続処理を経ずに不正な処理を行っても、これをエラーとして排除することができる。なお、復号化処理の方でも、図３に示すように、セッションオブジェクトにユーザ情報が存在するか否かを照合し（＃２２（Ｃ３））、存在しない場合には、エラー処理を実行するように構成しても良い（＃２７）。
【００５０】
また、図２の＃１３（Ｃ２）において、セッションオブジェクトにユーザ情報があるときは、データベース保護プログラム３ａは、そのセッションオブジェクトからユーザ情報を取得し（＃１５（Ｄ１））、リクエストデータ中の秘匿すべきデータに所有者としてユーザＩＤを追加して記録する（＃１６（Ｄ２））。その後、データベース保護プログラム３ａは、秘匿すべきデータの領域を鍵で暗号化し（＃１７（Ａ１））、リクエストデータをアプリケーションサーバ装置１に向けて送信する（＃１８）。
【００５１】
次に、図３においてプロキシサーバ装置３は、アプリケーションサーバ装置１からレスポンスデータを受信すると（＃１９）、前述したようにタグ文字列を検索し（＃２０）、タグ文字列があるか否かを判断する（＃２１）。タグ文字列がないときは、復号化の必要のないデータであるため、クライアント端末装置２に送信する処理にジャンプする（＃２６）。一方、タグ文字列が存在するときは、復号化手段の実行に先立ち、セッションオブジェクトにユーザ情報があるか否かをチェックする（＃２２（Ｃ３））。これは、前述したように、正規のセッション接続処理を経ているか否かのチェックである。
【００５２】
ここで、データベース保護プログラム３ａは、セッションオブジェクトにユーザ情報が登録されているとき、セッションオブジェクトからユーザ情報を取得し（＃２３（Ｄ３））、これが、図２の＃１６（Ｄ２）で暗号化したデータに付与したユーザＩＤと一致しているか否かを照合し（＃２４（Ｄ４））、不一致であるときは、エラー処理を実行する（＃２７）。
【００５３】
このように、図２〜図３において（Ｄ１）〜（Ｄ４）の符号を付けた、＃１５（Ｄ１）、＃１６（Ｄ２）、＃２３（Ｄ３）、＃２４（Ｄ４）の４つのステップを設けたので、本発明では、暗号化時の利用者と復号化時の利用者の整合性をチェックすることで、悪意のあるシステム開発者の不正な操作を排除することができる。
【００５４】
なお、本発明では、図３の＃２９の部分を、図４のように拡張すれば、アプリケーションサーバ装置１上の公開相手一覧ファイルに存在する特定の相手に対してのみ自己のデータを公開することも可能となる。すなわち、セッションオブジェクトから取得したユーザ情報と、暗号化されたデータに付与されているユーザＩＤの照合し、その結果が不一致であったとき（＃２９−２）、データベース保護プログラム３ａは、アプリケーションサーバ装置１から秘匿情報の所有者に関する署名付きユーザ情報を取得し（＃３０）、署名確認を行い（＃３１）、不一致であるときは、エラー処理を実行する（＃３５）。一方、署名が一致するときは、公開相手一覧ファイルにアクセスして突き合わせし（＃３２（Ｅ１））、ユーザＩＤが一致する公開相手が発見されたときは（＃３３（Ｅ２））、復号化処理を実行する（＃３４（Ｅ３））。
【００５５】
このように、図４において（Ｅ１）〜（Ｅ３）の符号を付けた、＃３２（Ｅ１）、＃３３（Ｅ２）、＃３４（Ｅ３）の３つのステップを設けたので、本発明では、事前に公開相手一覧ファイルに登録しておいた特定の相手に対してのみ自己のデータを公開することが可能となる。
【００５６】
以上説明したように、本発明によれば、暗号化及び復号化に必要な鍵情報はプロキシサーバ装置に記録され、秘匿すべきデータは、プロキシサーバ装置によって暗号化されてデータベースに記録されるため、個人情報等へのアクセス権を有するシステム開発者が悪意のある者となった場合でも、暗号化されたデータしか閲覧できず、重要なデータの漏洩を防止することができる。また、既存のアプリケーションの変更は最小限にすることができる。
【００５７】
また、プロキシサーバ装置は、アプリケーションやデータベースを有さないため、ソフトウェア改良、バックアップ、障害解析などの必要がなく、セキュリティポリシーを厳しくすることも容易となる。すなわち、本発明では、アプリケーションサーバ装置の方のセキュリティポリシーを必要以上に厳しくする必要がなくなり、結果として、セキュリティにかけるコストを低減することができる。
【００５８】
なお、本実施例では、１つのアプリケーションサーバ装置のデータをインターセプトする場合の例を開示したが、本発明のデータベース保護システム、プロキシサーバ装置、データベース保護プログラム、データベース保護方法は、１つのプロキシサーバ装置が、複数のアプリケーションサーバ装置のデータをインターセプトするように構成して、それぞれ同様の暗号化処理を行うようにしても良い。このように、複数のアプリケーションサーバ装置の暗号化処理を１つのプロキシサーバ装置に集約させれば、セキュリティコスト低減の効果はさらに大きなものとなる。
【産業上の利用可能性】
【００５９】
本発明のデータベース保護システム、プロキシサーバ装置、データベース保護プログラム、データベース保護方法は、例えばシステム開発業者により生産、販売され、産業上、利用されるものである。
【図面の簡単な説明】
【００６０】
【図１】本発明の全体構成を示す概念図である。
【図２】本発明の暗号化処理のフローチャート図である。
【図３】本発明の復号化処理のフローチャート図である。
【図４】公開相手一覧を利用する場合の本発明のフローチャート図である。
【図５】従来のアプリケーションサーバ装置の構成を説明する図である。
【符号の説明】
【００６１】
１    アプリケーションサーバ装置
１ａ  データベース
１ｂ  アプリケーション
２    クライアント端末装置
３    プロキシサーバ装置
３ａ  設定ファイル
【図１】
2005309846.tif 000003
【図２】
2005309846.tif 000004
【図３】
2005309846.tif 000005
【図４】
2005309846.tif 000006
【図５】
2005309846.tif 000007