(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
図1は、本発明の一実施形態に係る情報処理装置を含む情報処理システムの構成を示す機能ブロック図である。ここでは、情報処理装置の例として、サーバ100を示す。
【0013】
図1を参照すると、本発明の一実施形態に係る情報処理システムは、情報処理装置であるサーバ100とクライアント200とを備える。本実施形態においては、サーバ100とクライアント200とは、ネットワークを介して通信を行なう。サーバ100は、生成部110と、照合部120と、画面テーブル130と、隠しキー140とを有する。サーバ100は、例えば1台以上のネットワークに接続可能なサーバであり、クライアント200とネットワーク接続されている。また、サーバ100は、例えばWebサーバである。クライアント200は、利用者が操作する端末装置である。クライアント200は、パーソナルコンピュータ、PDA、携帯電話、スマートフォンなどのCPU(中央演算装置)を有する機器にプログラムがインストールされるなどして実現される。
【0014】
生成部110は、サーバ100からクライアント200に対して送信する画面データの生成に用いるコンポーネントであって、Cookie生成手段111、計算手段112および画面送信手段113を有する。また、照合部120は、クライアントから送信された電文内のデータと、サーバ100内に保持するデータとの照合を行い、クライアントからの要求としての電文の正当性を判断する。照合部120は、要求電文受信手段121、Cookie照合手段122、画面照合手段123および秘密値照合手段124を有する。
【0015】
まず、生成部110の構成について説明する。
【0016】
Cookie生成手段111は、クライアント200へ送信するCookieを生成する。Cookieは、例えばJava(登録商標)により生成されてもよく、その際、サーブレットやJSPを用いてもよい。また、CGI(Common Gateway Interface)や、PHP: Hypertext Preprocessor、その他既知のCookieの生成方法を用いて生成されてもよい。Cookieを生成する際には、画面ごとに異なるCookieが生成されるよう制御がなされる。このためには、ランダム関数により、毎回異なった値をCookieの値として生成するようにしてもよい。
【0017】
生成されたCookieは、当該Cookieに対応する画面と対応付けて画面テーブル130に保持される。ここに「Cookieに対応する画面」とは、クライアント200から画面の要求を含む電文が受信されると、Cookieが生成され、生成されたCookieが画面の記述に含まれる画面をいう。例えば、当該Cookieが「sdj4085443qzsdlkjglh」といった値であり、Cookieに対応する画面が、インターネットバンクングにおける振込画面であるような場合には、画面情報として「/furikomi」といった値を対応付けて保持しておく。画面情報は、画面ごとにユニークな値であり、システムを簡略化する場合には、複数の画面において同一の値としてもよい。例えば、画面テーブル130は、以下の表1のようなものである。
【表1】
【0018】
表1においては、画面ごとに対応付けられたCookieが保持されており、「/furikomi」画面に対応づけて「sdj4085443qzsdlkjglh」というCookieが保持され、「/shoukai」画面に対応づけて「kkgi4893ndfskdalajdk」というCookieが保持されている。画面テーブル130は、Cookieが生成されるごとに更新される。
【0019】
なお、画面テーブル130において、Cookieと、遷移元の画面とを対応付けて保持してもよいし、Cookieと、Cookieが生成された際の画面から遷移可能な画面とを対応づけて保持してもよい。後者の場合、1つのCookieに対して、遷移可能な1つ以上の画面が対応付けられることとなる。また、クライアントごとに表1が生成されていてもよく、クライアント200とサーバ100との間に複数のセッションが存在すれば、個々のセッションごとに表1が生成されてもよい。これにより、クライアント、セッションが異なると異なるCookieの値が画面に対応づけられる。
【0020】
計算手段112は、Cookie生成手段111により生成されたCookieを用いて、秘密値を算出する。秘密値とは、クライアント200に送信する画面データに、隠しパラメータとしてセットして送信する値である。クライアント200の画面においては、秘密値は表示されない。例えば、秘密値はHTML(Hypertext Markup Language)のFORMの記述におけるhiddenパラメータとしてセットされる。
【0021】
計算手段112においては、Cookieとともに隠しキー140を用いて、秘密値が算出される。隠しキー140は、所定の数列や文字列であって、サーバ100の内部記憶として保持されている値であり、クライアント200側からは確認できない値である。隠しキー140は、固定値でも、所定の規則に従って変動する値でもよい。秘密値の算出に用いる関数は、公知のものであっても、独自に設けられた公知でない関数であってもよい。公知のものとしては、例えばハッシュ関数が用いられる。用いられるハッシュ関数は例えばMD5やSHA−1、SHA−256などであり、その他のハッシュ関数を用いてもよい。
【0022】
画面送信手段113は、Cookie生成手段111により生成されたCookie及び、計算手段112において算出された秘密値を、他の画面データとともにクライアント200へと送信する。秘密値は、クライアント200において表示されない形式で画面データにセットされる。クライアントへと送信する画面データは、例えばHTTPオブジェクトであり、HTTPヘッダの一部として、Set−Cookieヘッダを含め、Set−CookieにCookieをセットしてもよい。また、秘密値は、上述したように、例えばHTMLのhiddenフィールドに対してセットしてもよい。
【0023】
秘密値は、Cookieと異なり、サーバ100には保持されなくともよい。計算手段112により秘密値を算出した後、画面データにセットするまで、秘密値はサーバ100のキャッシュ等の一時記憶領域に一時的に記憶され、その後、画面送信手段113により、秘密値は明示的にサーバ100の一時記憶領域から削除されてもよい。サーバ100に秘密値が保持されないことにより、秘密値がサーバ100から漏えいする恐れがなく、後述の秘密値の照合において、セキュリティに優れたアクセス管理を行うことができる。
【0024】
具体的には、例えば、送信する画面データにおいて、HTTPヘッダの一部であるSet−Cookieヘッダにより、「sdj4085443qzsdlkjglh」といったCookieをセットし、Cookie及び隠しキーを用いて生成された「jfi3954kd」といった秘密値をhiddenフィールドにセットして送信する。
【0025】
次に、照合部120の構成について説明する。
【0026】
画面送信手段113がCookie及び秘密値を含む画面データを送信した送信先のクライアント200から、他の画面の表示の要求を受信した場合、すなわち当該画面から他の画面への遷移の要求を受信した場合、照合部120において、かかる画面表示要求の正当性をチェックする。
【0027】
クライアント200から送信された画面表示要求を、要求電文受信手段121において受信する。クライアント200から送信され、サーバ100において受信する画面表示要求には、画面送信手段113により送信されたCookie及び秘密値、現在の画面すなわち遷移元画面を示す情報、及び表示を所望する画面すなわち遷移先画面を示す情報が含まれる。例えば、遷移元画面は、REFERER値として、参照される。すなわち、サーバ100においてREFERER値として遷移元画面のURLが参照される。
【0028】
Cookie照合手段122は、受信したCookieが、画面テーブル130に保持された、遷移元画面に対応するCookieと一致するかを照合する。例えば、現在の画面が「/furikomi」である場合、「/furikomi」に対応して保持されたcookieである「sdj4085443qzsdlkjglh」と、受信したCookieとが一致するかを照合する。
【0029】
受信したCookieが画面テーブル130に保持されるCookieと一致しない場合、あるいはそもそも画面表示要求がCookieを含まないような場合には、不正なアクセスと判断して、アクセスを拒否する。
【0030】
画面照合手段123は、当該画面から、遷移先画面へと移動可能であるかをチェックする。すなわち、遷移元画面からは本来は直接移動できないページへの遷移が、画面表示要求において要求されていないかをチェックする。ある遷移元画面から、移動可能な遷移先画面の情報は、サーバ100の内部記憶として保持されている。遷移元画面を示す情報としては、例えば、遷移元画面において生成したリファラを用いてもよい。
【0031】
当該遷移元画面から、遷移先画面へと移動可能でない場合には、不正なアクセスと判断して、アクセスを拒否する。
【0032】
なお、上記と異なり、変形例として、クライアント200から、遷移元画面を示す情報を受信しなくともよい。この場合、Cookie照合手段122において、単に画面テーブル130において、受信したCookieと一致するCookieがあるかを検索し、一致するCookieが存在する場合に、当該一致するCookieと対応付けられた画面を確認し、当該対応する画面から遷移先画面への移動が可能かをチェックしてもよい。
【0033】
秘密値照合手段124は、クライアント200より受信した画面表示要求に含まれる秘密値が、クライアント200より受信したCookieを用いて再度計算手段112において行った計算と同じ計算を行って算出した値と照合して一致するかを確認する。あるいは、秘密値が、クライアント200より受信したCookieを用いて再度計算手段112において行った計算と同じ計算を行って算出した値と所定の関係を満たしているかを確認する。
【0034】
受信した秘密値と、再計算して算出された秘密値とが一致しない場合、あるいはそもそも画面表示要求に秘密値が含まれていない場合には、不正なアクセスと判断して、アクセスを拒否することができる。
【0035】
上述したとおり、Cookie照合手段122において、Cookieが一致しなかった場合、画面照合手段123において遷移先画面へと移動できないと判断された場合、及び秘密値照合手段124において秘密値が再計算した値と一致しなかった場合には、照合部120は、画面表示要求を不当なものと判断して、いずれも不正アクセスとしてアクセスを拒否することができる。
【0036】
本発明の一実施形態に係る情報処理装置によれば、Cookieを、セッション管理、すなわち各画面遷移の管理に利用することができる。また、仮にCookieが第三者に漏えいしても、Cookieのみでは秘密値を算出できず、秘密値を当該第三者が推測できず、かつサーバ内における秘密値に関する処理も知りえないため、漏えいしたCookieを利用する不正アクセスを防止することができる。
【0037】
また、本発明の一実施形態に係る情報処理装置によれば、Cookieと対応した画面を保持する画面テーブル130を有し、画面テーブル130を照合して遷移可能な画面を確認することにより、正当な画面遷移から外れた不正なアクセスを排除することができる。
【0038】
なお、より簡略化された情報処理装置においては、画面テーブル130を含まず、Cookieを画面と対応付けず、単にCookieを保持するテーブルを含んでもよい。この場合、Cookieが画面と対応付けられていないから、上述した画面テーブル130を有する場合のような、正当な画面遷移から外れた不正なアクセスを排除することはできない。しかし、テーブルにおいて管理するCookieは、画面ごとでないし、画面と対応付けてデータを保持する必要もないから、より情報処理装置においてCookieの保持に割くデータ量が減少し、画面テーブルを参照する場合と比べると、Cookie照合手段においてテーブルを参照する速度も相対的に早くなる。また、秘密値によりセキュリティを高める効果は、この簡略化された情報処理装置においても、依然として存する。
【0039】
図2を参照して、本発明の一実施形態に係る情報処理装置における画面遷移の一例を説明する。
【0040】
図2は、本発明の一実施形態に係る情報処理装置における画面遷移の例示図である。
【0041】
図2を参照すると、まず、初期画面として画面Aが表示される。画面Aにおいては、Cookie A’及び秘密値A”が画面データとしてセットされている。画面テーブル130においては、画面Aと対応づけてCookie A’が保持される。
【0042】
クライアント200から、画面Bの表示要求を受信した場合(s10)、サーバ100は、受信データ中のCookieと、Cookie A’とを照合し、また、遷移元画面が画面Aであるかを確認し、画面Bに遷移可能か確認する。また、受信した秘密値A”と、受信したCookieを用いて再計算した秘密値とが一致するかを確認する。これらの照合・確認により、正当なアクセスであると判断されると、画面Bが表示される。
【0043】
画面Bにおいては、Cookie B’及び秘密値B”が画面データとしてセットされている。画面テーブル130においては、画面Bと対応づけてCookie B’が保持される。
【0044】
クライアント200から、画面Cの表示要求を受信した場合(s20)、サーバ100は、受信データ中のCookieと、Cookie B’とを照合し、また、遷移元画面が画面Bであるかを確認し、画面Cに遷移可能か確認する。また、受信した秘密値B”と、受信したCookieを用いて再計算した秘密値とが一致するかを確認する。これらの照合・確認により、正当なアクセスであると判断されると、画面Cが表示される。以降、画面Cにおいても同様の動作が行われる。
【0045】
クライアント200から、画面Dの表示要求を受信した場合(s30)、サーバ100は、受信データ中のCookieと、Cookie A’とを照合し、また、遷移元画面が画面Aであるかを確認し、画面Dに遷移可能か確認する。また、受信した秘密値Aと、受信したCookieを用いて再計算した秘密値とが一致するかを確認する。これらの照合・確認により、正当なアクセスであると判断されると、画面Dが表示される。
【0046】
画面Dにおいては、Cookie D’及び秘密値D”が画面データとしてセットされている。画面テーブル130においては、画面Dと対応づけてCookie D’が保持される。以下、画面Dから他の画面への遷移の場合においても、同様の動作が行われる。
【0047】
図2において、例えば画面Aから画面Cへと遷移しようとしても、画面Cの表示に際しては、Cookie B’及び秘密値B”が必要であり、画面Bを経由しなければ、Cookie B’及び秘密値B”をクライアント200において取得できないから、アクセスが拒否される。これにより、正当な画面遷移を経ない不正アクセスを排除することができる。
【0048】
次に、本発明の一実施形態に係る情報処理方法、すなわち本発明の一実施形態に係る情報処理装置を用いた情報処理の流れを説明する。
【0049】
まず、本発明の一実施形態に係る情報処理装置において、クライアントへと画面データを送信する流れ、すなわち生成部110における一連の動作の流れを説明する。なお、すでに説明した各構成における詳細な動作については、説明を省略する。
【0050】
図3は、本発明の一実施形態に係る情報処理装置において、クライアントへと画面データを送信する流れを説明するためのフローチャートである。
【0051】
図3を参照すると、まず、Cookie生成手段111においてCookieが生成される(S110)。Cookieの生成方法については、上述して説明したとおりである。
【0052】
次に、生成されたCookieが画面テーブル130に書き込まれる(S120)。Cookieは、遷移元の画面または遷移先の画面と対応づけて保持される。
【0053】
生成されたCookieを画面データにセットする(S130)。なお、Cookieの画面データへのセットは、後述するステップS140やステップS150と順序が相前後してもよい。
【0054】
生成されたCookie及び隠しキー140を用いて、計算手段112において、所定の関数による計算を行い、秘密値を算出する(S140)。算出後、秘密値はサーバ100の一時記憶領域に保持されるのが好ましい。
【0055】
算出された秘密値を画面データにセットする(S150)。秘密値は、クライアント200の画面に表示されない形式で画面データにセットされる。画面データにセットされた後、秘密値はサーバ100の一時記憶領域から削除されるのが好ましい。
【0056】
画面送信手段113により、画面データをクライアント200へと送信し(S160)、生成部110の動作を終了する。
【0057】
なお、上述したように、画面テーブル130は必須でなく、Cookieを画面と対応付けず、単に生成したCookieをテーブルに書き込んで保持してもよい。
【0058】
次に、本発明の一実施形態に係る情報処理装置において、クライアントから画面表示要求を受信し、その正当性を判断する流れ、すなわち照合部120における一連の動作の流れを説明する。なお、すでに説明した各構成における詳細な動作については、説明を省略する。
【0059】
図4は、本発明の一実施形態に係る情報処理装置において、クライアントから画面表示要求を受信し、その正当性を判断する流れを説明するためのフローチャートである。
【0060】
図4を参照すると、まずクライアント200からの画面表示要求をサーバ100が受信する(S210)。画面表示要求には、Cookie及び秘密値が含まれる。Cookie及び秘密値が含まれない場合、後続のステップにおいて不正なアクセスと判断されアクセスが拒否される。
【0061】
次に、受信したCookieが、画面テーブル130に保持されたCookieと一致するかをCookie照合手段122により照合し、Cookieの正当性を判断する(S220)。受信したCookieが、画面テーブル130に保持されたCookieと一致しないか、Cookieを受信しなかった場合には、不正なアクセスと判断し、アクセスを拒否する(S270)。受信したCookieが、画面テーブル130に保持されたCookieと一致した場合には、ステップS230へと進む。
【0062】
現在の画面、すなわち遷移元画面から、遷移先画面へと移動可能であるかを画面照合手段123において判断する(S230)。遷移元画面又は遷移先画面を画面テーブル130で対応するCookieを参照して確認するか、または遷移元画面をリファラなどにより確認し、遷移元画面から当該遷移先画面へと遷移可能かを判断する。遷移先画面へと遷移できないと判断した場合は、不正なアクセスとしてアクセスを拒否する(S270)。遷移可能と判断した場合は、ステップS240へと進む。
【0063】
なお、上述したように、画面テーブル130を設けず、その結果、Cookieを画面と対応付けず、単に生成したCookieをテーブルに書き込んで保持している場合にはステップS230は省略され、ステップS240へと進む。
【0064】
受信したCookieと、隠しキー140とを用いて、計算手段112において行ったのと同様の計算方法を用いて、秘密値照合手段124において秘密値を再計算する(S240)。
【0065】
秘密値照合手段124において、受信した秘密値と、再計算により算出された秘密値とが一致するかを照合する(S250)。受信した秘密値と、再計算により算出された秘密値とが一致しない場合、あるいは画面表示要求に秘密値が含まれず、秘密値を受信していない場合には、不正なアクセスと判断してアクセスを拒否する(S270)。秘密値が一致する場合には、正当なアクセスと判断して、当該遷移先画面を表示する。遷移先画面の表示にあたっては、
図3を参照して説明した生成部110の動作を新しい画面において繰り返してもよい。
【0066】
以上のように、本発明の一実施形態に係る情報処理方法によれば、Cookieを、セッション管理、すなわち各画面遷移の管理に利用することができる。また、仮にCookieが第三者に漏えいしても、Cookieのみでは秘密値を算出できず、秘密値を当該第三者が推測できず、かつ秘密値に関するサーバ100側における処理も知りえないため、漏えいしたCookieを利用したような不正アクセスを防止することができる。
【0067】
また、本発明の一実施形態に係る情報処理方法によれば、Cookieと対応した画面を保持する画面テーブル130を有し、画面テーブル130を照合して遷移可能な画面を確認することにより、正当な画面遷移から外れた不正なアクセスを排除することができる。