(57)【要約】【課題】Ｗｅｂアプリケーションの不正アクセスを防止する。【解決手段】Ｗｅｂサーバにおいて、セッション開始時に暗号キーを生成し、以降、Ｗｅｂサーバは暗号コードが一致した場合のみプログラム実行を行う。Ｗｅｂクライアントは、セッション開始時に取得したセッション情報と、現在時刻を暗号キーにより暗号化した暗号コードを付加して、Ｗｅｂサーバにプログラム実行を要求する。【選択図】        図１
2004355471.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に、Ｗｅｂサーバ、Ｗｅｂクライアントとデータベースサーバが配置されており、
Ｗｅｂサーバには、コンテンツとして、プログラム、ＨＴＭＬドキュメント、イメージデータがＷｅｂアプリケーションを構成されている、
Ｗｅｂサーバは、
ｈｔｔｐおよびｈｔｔｐｓプロトコルによりＷｅｂブラウザと通信する手段、
Ｗｅｂクライアントからの要求によりコンテンツを配信する手段、
Ｗｅｂクライアントからの要求に応じてＷｅｂアプリケーションプログラムを動作させＨＴＭＬページを動的に生成する手段、
Ｗｅｂクライアントからの要求に応じてデータベースサーバに接続し、データベース操作を行う手段、
セッションＩＤ、ユーザーＩＤ、パスワード、セッションデータディレクトリ、暗号キーからなるセッション情報を生成、管理する手段、
暗号キーを用いて暗号コードを生成する手段、
ｃｏｏｋｉｅを送付する手段、
を備え、
データベースサーバには、
少なくともＷｅｂアプリケーションで使用されるユーザーＩＤとパスワードの組が管理され、
Ｗｅｂクライアントには、
ｈｔｔｐおよびｈｔｔｐｓプロトコルによりＷｅｂサーバと通信する手段、
ユーザーの操作に応じてＷｅｂページを取得する手段、
Ｗｅｂサーバから取得したＷｅｂページを表示する手段、
ユーザーの操作に応じてＷｅｂサーバにプログラム実行要求を送付する手段、
Ｗｅｂサーバから送付されたＣｏｏｋｉｅを保存する手段、
暗号コードを生成する手段、
を備えるＷｅｂアプリケーションシステムにおいて、
Ｗｅｂサーバにおいて、セッション開始時にセッション情報を作成し、ＷｅｂクライアントにセッションＩＤと暗号キーを通知し、
以降、Ｗｅｂクライアントからプログラム実行要求があった場合には、
プログラム実行要求中に含まれるセッションＩＤおよび暗号コードの照合を行い、
照合に合格した場合のみプログラム実行を行い、
クライアントは、プログラム実行要求を行う際にサーバから通知されたセッションＩＤおよび暗号キーを用いて特定の情報を暗号化した暗号コードを付加することを特徴とする不正アクセス防止方法。
【請求項２】
上記請求項１において、さらに、
Ｗｅｂクライアントに現在時刻を取得する手段を設け、
暗号コード作成手段は、現在時刻と暗号キーから暗号コードを生成するように構成され、
また、プログラム実行要求にはさらに現在時刻が含まれるように構成され、
Ｗｅｂサーバの暗号コード生成手段はクライアントから受信したクライアントの現在時刻と暗号キーから暗号コードを生成するように構成されていることを特徴とする不正アクセス防止方法。
【請求項３】
上記請求項２において、
Ｗｅｂサーバにも現在時刻取得手段を設け、
プログラム実行要求には現在時刻が含まれないように構成され、
Ｗｅｂサーバの暗号コード生成手段はＷｅｂサーバの現在時刻と暗号キーから暗号コードを生成するように構成されていることを特徴とする不正アクセス防止方法。
【請求項４】
上記請求項１において、
さらに、セッション開始時にｈｔｔｐｓプロトコルを使用することにより、暗号キーの漏洩を防止することを特徴とする不正アクセス防止方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は不正アクセス防止方法に関し、特に、ＷｅｂサーバおよびＷｅｂブラウザを使用したＷｅｂアプリケーションのセキュリティに関するものである。
【０００２】
【従来の技術】
従来、Ｗｅｂアプリケーションで使用されるＵＲＬさえ知っていれば、ＵＲＬを盗聴することにより、悪意のあるユーザーが不正に使用することが可能であった。
【０００３】
【特許文献１】
特開２０００−０９９４６６号公報
【特許文献２】
特開２００１−２４３１９３号公報
【０００４】
【発明が解決しようとする課題】
本発明では、Ｗｅｂアプリケーションを悪意のあるユーザーによる不正アクセスから守ることのできる不正アクセス防止方法を提供することを目的としている。
【０００５】
【課題を解決するための手段】
本発明は、上記課題を解決するために以下（１）〜（４）の構成を備え、Ｗｅｂサーバ、Ｗｅｂクライアント双方で暗号処理の元となる暗号キーを保持しクライアントからＷｅｂサーバにプログラムの処理を要求する際に、この暗号キーにより特定の情報を暗号化して付加しておき、サーバ側では暗号解析が成功した場合のみ要求された処理を実行するようにしている。
【０００６】
（１）ネットワーク上に、Ｗｅｂサーバ、Ｗｅｂクライアントとデータベースサーバが配置されており、Ｗｅｂサーバには、コンテンツとして、プログラム、ＨＴＭＬドキュメント、イメージデータがＷｅｂアプリケーションを構成されている、Ｗｅｂサーバは、ｈｔｔｐおよびｈｔｔｐｓプロトコルによりＷｅｂブラウザと通信する手段、Ｗｅｂクライアントからの要求によりコンテンツを配信する手段、Ｗｅｂクライアントからの要求に応じてＷｅｂアプリケーションプログラムを動作させＨＴＭＬページを動的に生成する手段、Ｗｅｂクライアントからの要求に応じてデータベースサーバに接続し、データベース操作を行う手段、セッションＩＤ、ユーザーＩＤ、パスワード、セッションデータディレクトリ、暗号キーからなるセッション情報を生成、管理する手段、暗号キーを用いて暗号コードを生成する手段、ｃｏｏｋｉｅを送付する手段、備え、データベースサーバには、少なくともＷｅｂアプリケーションで使用されるユーザーＩＤとパスワードの組が管理され、Ｗｅｂクライアントには、ｈｔｔｐおよびｈｔｔｐｓプロトコルによりＷｅｂサーバと通信する手段、ユーザーの操作に応じてＷｅｂページを取得する手段、Ｗｅｂサーバから取得したＷｅｂページを表示する手段、ユーザーの操作に応じてＷｅｂサーバにプログラム実行要求を送付する手段、Ｗｅｂサーバから送付されたＣｏｏｋｉｅを保存する手段、暗号コードを生成する手段、を備えるＷｅｂアプリケーションシステムにおいて、Ｗｅｂサーバにおいて、セッション開始時にセッション情報を作成し、ＷｅｂクライアントにセッションＩＤと暗号キーを通知し、以降、Ｗｅｂクライアントからプログラム実行要求があった場合には、プログラム実行要求中に含まれるセッションＩＤおよび暗号コードの照合を行い、照合に合格した場合のみプログラム実行を行い、クライアントは、プログラム実行要求を行う際にサーバから通知されたセッションＩＤおよび暗号キーを用いて特定の情報を暗号化した暗号コードを付加することを特徴とする不正アクセス防止方法。
【０００７】
（２）上記（１）において、さらに、Ｗｅｂクライアントに現在時刻を取得する手段を設け、暗号コード作成手段は、現在時刻と暗号キーから暗号コードを生成するように構成され、また、プログラム実行要求にはさらに現在時刻が含まれるように構成され、Ｗｅｂサーバの暗号コード生成手段はクライアントから受信したクライアントの現在時刻と暗号キーから暗号コードを生成するように構成されていることを特徴とする不正アクセス防止方法。
【０００８】
（３）上記（２）において、Ｗｅｂサーバにも現在時刻取得手段を設け、プログラム実行要求には現在時刻が含まれないように構成され、Ｗｅｂサーバの暗号コード生成手段はＷｅｂサーバの現在時刻と暗号キーから暗号コードを生成するように構成されていることを特徴とする不正アクセス防止方法。
【０００９】
（４）上記（１）において、さらに、セッション開始時にｈｔｔｐｓプロトコルを使用することにより、暗号キーの漏洩を防止することを特徴とする不正アクセス防止方法。
【００１０】
【発明の実施の形態】
【００１１】
【実施例】
以下に図面を用いながら本発明の１実施例を説明する。
【００１２】
図１は本発明に簡単なシステム構成図である。本発明は、通常のＷｅｂアプリケーションと同様、複数のコンピュータ（Ｗｅｂサーバ１、ＤＢサーバ２、Ｗｅｂクライアント３，４）がイーサネット（Ｒ）５に接続されている。ここで、Ｗｅｂサーバ１はネットワークを介してＨｔｔｐ・ＨｔｔｐｓプロトコルによりＷｅｂクライアント３，４と通信を行えるように構成されている。また、クライアントからプログラム実行の要求があればＣＧＩなどの手段によりプログラムが実行できるようになっている。また、ネットワークを介してＤＢサーバ２との通信が行えるように構成されており、Ｗｅｂクライアント３，４によりＤＢ上のデータ表示処理要求に応じてＤＢサーバ２からデータを取得可能なように構成されている。
【００１３】
ＤＢサーバ２にはデータベースサーバであり、本発明で使用されるデータベースが格納されているものとする。
【００１４】
Ｗｅｂクライアント３，４はＷｅｂブラウザが動作するように構成されており、Ｗｅｂサーバ１と通信が可能になっている。また、Ｗｅｂブラウザでは、Ｊａｖａ（Ｒ）Ｓｃｒｉｐｔなどのクライアントサイドでのプログラム実行が可能なように構成されている。
【００１５】
図２はＷｅｂクライアント３，４からプログラム実行要求があったときにＷｅｂサーバ１から起動されるプログラムが行う処理を説明するフローチャートである。
【００１６】
１００１は、ＨＴＴＰヘッダやＣＧＩパラメータなどをＷｅｂサーバプログラムから取得する処理である。Ｗｅｂサーバプログラムから取得した情報は適宜メモリに保存され、以降の処理で参照されるのに備えておく。
【００１７】
また、一定時間アクセスがないセッション情報（後述する）を削除する。
【００１８】
１００２は、ＣＧＩプログラムへの要求の種別を判断し、次に行う処理を決定する分岐処理である。本発明のＣＧＩプログラムはパラメータとして要求種別を備えており、要求種別ごとに異なる処理を実施する。ここで、要求種別が、ログイン要求であった場合には、処理を１００３に、その他の要求の場合には１００７に、未定義の要求や、要求種別パラメータが指定されていない場合には１００９に処理を進める。
【００１９】
１００３は、要求種別がログイン要求であった場合に行われる認証処理である。要求種別がログイン要求である場合には、プログラムのパラメータとしてさらに、ユーザーＩＤ、パスワードが付加される。パラメータで与えられたユーザーＩＤ、パスワードを使用してＷｅｂアプリケーションの認証処理を行う。本実施例ではＤＢサーバ２でＷｅｂアプリケーションのユーザーＩＤ、パスワードが管理されているものとする。
【００２０】
与えられたユーザーＩＤ、パスワードによるＤＢサーバ２での認証処理が成功した場合には、処理を１００４に進め、必要なパラメータが与えられなかった場合や、認証に失敗した場合は、１００９に処理を進める。
【００２１】
１００４は、セッション情報を作成する処理である。セッション情報は、セッションＩＤ、ユーザー名、セッションデータディレクトリ、暗号キー、最終アクセス時刻から構成される。
【００２２】
セッションＩＤは、セッション情報作成時に作成されるシステム上で一意のＩＤである。セッションデータディレクトリは、セッション中に使用されるデータの一時保管場所である。このディレクトリはセッション情報作成時に作成され、セッション情報が削除されると同時に削除される。
【００２３】
暗号キーは、暗号化処理を行うときに暗号キーとして使用されるデータであり、ランダムに生成される。また、暗号の強度となるキーの長さは設定により変更可能である。最終アクセス時刻は、このセッションＩＤによりＣＧＩプログラムが呼び出された最終時刻である。本実施例では、セッション情報は、Ｗｅｂサーバ１上のファイルに管理されているものとする。また、セッション情報は、ログアウト要求があったとき、および、最終時刻から一定時間アクセスがなかった場合に削除される。
【００２４】
１００５は、１００４で作成したデータをＷｅｂクライアントに通知するためのＨＴＭＬページを作成する処理である。このＨＴＭＬページはブラウザのｃｏｏｋｉｅにセッションＩＤを保存する。また、非表示データとして暗号キーをＷｅｂページに記述する。
【００２５】
本発明におけるＨＴＭＬページは、フレーム構成になっておりルートウインドウ内部に複数のフレームを表示し、各フレーム内にそれぞれＨＴＭＬページが表示されるように構成されている。また、各ＨＴＭＬページは、入力領域や、ボタン、ハイパーリンクなどの部品が配置されており、それぞれの部品を操作することにより、ＣＧＩ要求をサーバに送ったり、Ｗｅｂブラウザ内での入力処理、表示変更処理などを行えるようになっている。また、各ＣＧＩはルートウインドウの表示は書き換えずに、各フレームのＨＴＭＬページを書き換えるように動作することになっている。したがって、暗号キーがＷｅｂサーバ２とＷｅｂブラウザの間でやり取りされるのは、ログイン要求時の１度だけである。そのため、暗号キーを盗聴される危険がある機会は１度きりである。
【００２６】
１００７は、ログイン要求以外の要求種別の要求があった場合に行われる処理である。この場合、ＣＧＩパラメータには要求種別のほかに、必ず、セッション番号、現在時刻、現在時刻をログイン時に生成された暗号キーで暗号化した暗号コードが付加される。また、要求種別に定義された個別のパラメータも付加される。
【００２７】
ここで、送付された、暗号コードの確認処理を行う。確認処理は、セッション情報に保存した暗号ＩＤと、パラメータとして送付された現在時刻から、Ｗｅｂクライアント３，４と同様の計算方法により暗号コードを計算し、Ｗｅｂクライアント３，４から送付された暗号コードと比較し、これらが一致した場合は、認証に合格したものとする。
【００２８】
１００８は、要求種別に応じた処理を行うステップである。要求処理に応じてＤＢサーバー２から必要なデータを取得して、取得したデータをもとにＷｅｂページを作成する処理である。
【００２９】
１００９はエラー情報をユーザーに通知するためのエラー画面を作成する処理である。エラーの種類に応じて通知メッセージを編集して書き出す。またこのとき、必要に応じてログアウト処理を行う。
【００３０】
１００６は、ＣＧＩ処理において作成されたＷｅｂページをＷｅｂクライアント３，４に送信する処理であり、ＣＧＩはＷｅｂサーバ１に送信依頼を行うのみであり、実際にはＷｅｂサーバ１により処理される。
【００３１】
図３は、本発明におけるＷｅｂアプリケーションでＷｅｂクライアント３，４で行われる処理を説明するフローチャートである。
【００３２】
２００１はログイン処理をＷｅｂサーバ１に要求する処理である。Ｗｅｂブラウザの画面上にユーザーＩＤ，パスワードを入力するための入力領域、およびフォーム送信ボタンが配置されており、フォーム送信ボタンを押下することにより、入力されたデータをパラメータとしたログイン要求をＷｅｂサーバ１に送信する。
【００３３】
２００２は、２００１のログイン要求に応じて、ＣＧＩで作成されたＨＴＭＬページを解釈し、セッションＩＤをＷｅｂブラウザのｃｏｏｋｉｅに保存する処理である。
【００３４】
このＨＴＭＬページはＪａｖａ（Ｒ）ＳｃｒｉｔｐｔなどのＷｅｂブラウザ上で動作可能なプログラム言語で記述されたプログラムを含んでおり、このページがＷｅｂブラウザにロードされると同時に、このプログラムが実行される。このプログラムは、本発明におけるＷｅｂアプリケーションの初期画面を表示する処理を行うものであり、以降、このプログラムの動作を説明する。
【００３５】
２００３では、現在の時刻を取得し、ＣＧＩによりＨＴＭＬページに埋め込まれた暗号キーを使用して現在の時刻を暗号化して暗号コードを生成する処理である。
【００３６】
２００４では、初期化要求のＣＧＩリクエストを行うためのパラメータ作成を行う。初期化要求には、パラメータとしてセッションＩＤ、現在時刻、暗号コードが付加される。
【００３７】
２００５では、２００４で作成した初期化要求ＣＧＩをＷｅｂサーバ１に送信する処理を行う。
【００３８】
２００６では、２００５のＣＧＩにより作成されたＷｅｂアプリケーションの初期画面を構成するＨＴＭＬページをＷｅｂブラウザに表示する処理を行う。
【００３９】
初期画面には、ユーザーが操作可能な部品が配置されており、ユーザーが操作することにより、Ｗｅｂサーバ１に対してさまざまな処理要求を行うＣＧＩ要求を送信するように構成されている。
【００４０】
【実施例２】
実施例１では、Ｗｅｂアプリケーションで使用されるデータベースをＷｅｂサーバ１と異なるコンピュータＤＢサーバ２で管理するとしているが、Ｗｅｂサーバ１でデータベースプログラムが動作するように構成しても構わない。
【００４１】
【実施例３】
実施例１では、セッション情報をＷｅｂサーバ１上のファイルに管理されるものとしたが、ＤＢサーバ２のデータベース上に管理されていても構わない。
【００４２】
【実施例４】
実施例１では、Ｗｅｂサーバ１からＷｅｂアプリケーションプログラムを実行する際にＣＧＩを用いるように構成する例を示したが、Ｗｅｂアプリケーションの起動は、ＩＳＡＰ、サーバーサイドスクリプト、Ｊａｖａ（Ｒ）サーブレットなど、Ｗｅｂサーバ１からプログラムを起動できる構成であれば構わない。
【００４３】
【実施例５】
実施例１では、Ｗｅｂクライアント３，４の構成画面がマルチ・フレームである場合を説明したが、フレーム構成となっていれば、１フレームだけでも構わない。
【００４４】
【実施例６】
実施例１では、Ｗｅｂクライアント３，４から毎回現在時刻を送付するようになっているが、Ｗｅｂサーバ１とＷｅｂクライアント３，４でコンピュータに正しい時刻が設定されている場合は、この必要はない。図２の１００７で確認用の暗号コードを計算する際に、Ｗｅｂサーバ１の現在時刻を使用すればよい。このとき、Ｗｅｂサーバ１とＷｅｂクライアント３，４双方のタイムゾーンが異なる場合は、問題となるが、この問題を回避するためには、世界標準時を使用するようにすれば問題は回避できる。
【００４５】
【実施例７】
実施例６では、Ｗｅｂサーバ１とＷｅｂクライアント３，４に正しい時刻が設定されている必要があるが、双方のコンピュータ時刻が多少の狂いを生じる可能性がある。このことを考慮して、使用する時刻データの桁数の切捨て処理などを行うことにより多少の誤差を許容してもよい。
【００４６】
【実施例８】
実施例１では、ログイン処理を行うときにＨＴＴＰプロトコルを使用するように構成されているが、ログイン処理にＨＴＴＰＳプロトコルを使用しても構わない。ＨＴＴＰＳを使用することにより、暗号キーを盗聴される危険性をさらに低下することができる。
【００４７】
【発明の効果】
以上説明したように、本発明により、悪意のあるユーザーからの不正アクセスを防止できる。
【図面の簡単な説明】
【図１】本発明におけるシステム構成図
【図２】本発明におけるＷｅｂサーバ１のフローチャート
【図３】本発明におけるＷｅｂクライアント３，４のフローチャート
【符号の説明】
１  Ｗｅｂサーバ
２  ＤＢサーバ
３，４  Ｗｅｂクライアント
【図１】
2004355471.tif 000003
【図２】
2004355471.tif 000004
【図３】
2004355471.tif 000005