(58)【調査した分野】(Int.Cl.,DB名)
Webブラウザに表示されるWebページを更新するための更新リクエストを、少なくとも1秒に1回の割合で出力する更新リクエスト出力手段と、前記更新リクエストに、通知されたセッションIDを付加して出力するセッションID付加手段を備えたWebクライアントと、
前記Webクライアントからのセッション接続リクエストおよび有効性が確認された前記更新リクエストの受信に応じてセッションIDを採番するセッションID採番手段と、採番した前記セッションIDの有効時間を、前記更新リクエスト出力手段による前記更新リクエストの出力周期および前記Webクライアントに対する信号のTAT(ターンアラウンドタイム)にもとづく所定秒数の時間に設定して、採番した前記セッションIDと対応付けてTCPセッションテーブルに登録する有効時間設定手段と、受信した前記更新リクエストに含まれる前記セッションIDを前記TCPセッションテーブルに登録されている前記セッションIDと照合したとき、設定されている前記有効時間内に前記セッションIDを受信している場合に、受信した前記更新リクエストを有効と判断し、更新Webページとともに、採番した前記セッションIDを前記Webクライアントに送信する更新応答送信手段を備えたWebサーバと、
を有し、
前記セッションID付加手段は、前記セッション接続リクエストの応答または直前に受信した更新Webページに含まれていた前記セッションIDを、前記更新リクエスト出力手段が出力する新たな更新リクエストに付加して前記Webサーバに送信し、
前記Webクライアントの前記更新リクエスト出力手段は、スクリプト言語で作成したWebページ自動更新プログラムを含み、前記Webクライアントと前記Webサーバのそれぞれは、前記セッションIDを、予め決められた暗号方式で前記Webクライアントと前記Webサーバとの間で受け渡す暗号手段をさらに含むことを特徴とするセッション管理システム。
前記Webサーバの前記更新応答送信手段は、前記有効時間内に前記更新リクエストとともに受信した前記セッションIDおよび前記有効時間を超過しても前記更新リクエストを受信していない前記セッションIDを前記管理テーブルから削除し、受信した前記更新リクエストに付加された前記セッションIDが前記管理テーブルに記憶されていない場合には、前記更新リクエストを破棄することを特徴とする請求項1または2に記載のセッション管理システム。
前記Webサーバの上位アプリケーションは、監視情報の収集および通知処理を実行する監視手段であり、前記Webクライアントは、前記監視手段が収集して通知する前記監視情報を前記Webブラウザ上に表示する監視情報表示手段を含むことを特徴とする請求項1乃至3のいずれかの請求項に記載のセッション管理システム。
前記Webサーバが、有効時間内に前記更新リクエストとともに受信した前記セッションIDおよび有効時間を超過しても前記更新リクエストを受信していない前記セッションIDを前記管理テーブルから削除し、受信した前記更新リクエストに付加された前記セッションIDが前記管理テーブルに記憶されていない場合には、前記更新リクエストを破棄することを特徴とする請求項5または6に記載のセッション管理方法。
【背景技術】
【0002】
HTTPによるWebサーバとWebクライアント間の通信において、常時接続を安全に行うための一般的な方式として、SSL(Secure Sockets Layer)/TLS(Transport Layer Security)が利用されている。SSL/TLSとは、WebサーバとWebクライアント間の通信を暗号化する機能とユーザ認証機能を持ったプロトコルである。例えば、IETF(Internet Engineering Task Force)のTLSワーキンググループにより、TLS1.0(RFC:Request For Comments 2246)、TLS1.1(RFC4346)やTLS1.2(RFC5246)が制定されている。
【0003】
WebクライアントがIE(Internet Explorer)等のSSL/TLS対応WebブラウザでSSL/TLSが利用されているページにアクセスすると、そのページのWebサーバからリプライとともにサーバ証明書を受け取る。サーバ証明書は、事前にCA(Certification Authority:認証局)の認証済となっている。Webクライアントは、CA公開鍵で証明書の真贋を検証し、検証が正しければ、証明書からサーバ公開鍵を取り出す。そして、Webクライアントは乱数を生成し、それにより共通鍵を生成する。Webクライアントは生成した乱数をサーバ公開鍵で暗号化してWebサーバに送信する。Webサーバは受信した暗号化されている乱数を秘密鍵で復号し、Webクライアントが生成したものと同じ共通鍵を生成する。以降はWebクライアントとWebサーバ間で共通鍵を用いて、通信内容を暗号化して通信を行う。
【0004】
また、同一Webクライアントからのセッションを識別するために、WebサーバがセッションIDを生成してセッション管理を行う方式がある。
【0005】
例えば、特許文献1はHTTPメッセージのメッセージヘッダを利用してセッションID管理を行い、セッションの継続性を詳細に制御する技術を開示している。
【0006】
特許文献1によれば、WebクライアントはHTTPリクエストメッセージのヘッダにセッション開始要求メッセージを付加してWebサーバへ送信する。セッション開始要求メッセージを含むリクエストを受信したWebサーバは、セッションを識別するためのセッションIDを生成して記憶領域に記録する。そして、Webサーバは、HTTPレスポンスメッセージのヘッダにセッションIDを含むCookie作成要求メッセージを付加し、Webクライアントへ送信する。
【0007】
レスポンスを受信したWebクライアントは、Cookie作成要求メッセージにしたがってセッションIDを含むCookieを作成して記憶領域に記録する。そして、Webクライアントは、その後Webサーバに対して何らかの要求を行うときは、セッションIDをメッセージヘッダに付加してWebサーバに送信する。
【0008】
Webサーバでは、受信したHTTPリクエストメッセージにセッションIDが含まれていた場合、記憶しているセッションIDとメッセージに含まれているセッションIDとを照合して、継続中のセッションであることを判定する。
【0009】
さらに、このようなセッションIDを用いつつ「なりすまし」を防ぐ技術として、特許文献2が開示するセッション管理装置がある。
【0010】
特許文献2は、正規のユーザによる正常なアクセスの妨害となるのを防止しつつ、セッションハイジャックの危険性を低減するセッション管理装置を開示している。
【0011】
特許文献2によれば、ネットワークを介してWebクライアントと接続されたWebサーバは、WebクライアントとWebサーバとの間で受け渡されるセッションIDを、Webクライアントからのアクセスの度に採番する。そして、Webクライアントからの一連のアクセスをWebサーバ側で管理する管理IDをセッションIDに付与し、同一の管理IDが付与された互いに異なる複数のセッションIDを同時刻に有効にするように管理する。このとき、Webサーバは、Webクライアントからのアクセスの度にセッションIDを採番するが、新しいセッションIDを発行した際に直ちに使用済みのセッションIDを無効にはしない。Webサーバは、使用済みのセッションIDを任意のタイミングで無効にする。つまり、使用されたセッションIDは無効化されるが、一定期間はすでに使用されたセッションIDであっても有効であるという制御をWebサーバは行う。また、セッションIDを無効化する条件としては、例えば、セッションIDを使用したアクセス回数に基づくとか、セッションIDの使用後の有効時間に基づくことが提案されている。
【発明を実施するための形態】
【0021】
本発明を実施するための形態について図面を参照して説明する。
【0022】
図1は、本発明の第1の実施形態のセッション管理システムの構成を示すブロック図である。
【0023】
尚、実施の形態は例示であり、開示の装置及びシステムは、以下の実施の形態の構成には限定されない。
【0024】
第1の実施形態のセッション管理システム100は、Webクライアント10とWebサーバ20とを図示しないネットワークを介して接続する構成になっている。
【0025】
Webクライアント10は、更新リクエスト出力手段101とセッションID付加手段102を備える。
【0026】
更新リクエスト出力手段101は、Webブラウザに表示されるWebページを更新するための更新リクエストを、少なくとも1秒に1回の割合で出力する。
【0027】
セッションID付加手段102は、更新リクエストに、通知されたセッションIDを付加して出力する。
【0028】
Webサーバ20は、セッションID採番手段201、有効時間設定手段202および更新応答送信手段203を備える。
【0029】
セッションID採番手段201は、Webクライアントからのセッション接続リクエストおよび有効性が確認された更新リクエストの受信に応じてセッションIDを採番する。
【0030】
有効時間設定手段202は、採番したセッションIDの有効時間を設定して、採番したセッションIDと対応付けて管理テーブル(不図示)に登録する。この有効時間は、更新リクエスト出力手段による更新リクエストの出力周期およびWebクライアントに対する信号のTAT(ターンアラウンドタイム)にもとづく所定秒数の時間に設定される。
【0031】
更新応答送信手段203は、受信した更新リクエストに含まれるセッションIDを管理テーブルに登録されている前記セッションIDと照合する。そして、設定されている有効時間内にセッションIDを受信している場合に、受信した前記更新リクエストを有効と判断し、更新Webページとともに、採番したセッションIDをWebクライアントに送信する。
【0032】
また、セッションID付加手段102は、セッション接続リクエストの応答または直前に受信した更新Webページに含まれていたセッションIDを、更新リクエスト出力手段101が出力する新たな更新リクエストに付加してWebサーバに送信する。
【0033】
図2は、本発明の第1の実施形態のセッション管理システムの動作を説明するシーケンス図である。第1の実施形態では、セッション管理システムが動作することによって、セッション管理方法が実施される。
【0034】
Webクライアントは、Webサーバとの間のセッションを接続するためにセッション接続リクエストをWebサーバに送信する(S101)。
【0035】
Webサーバは、セッション接続リクエストの受信に応じて、新規のセッションをWebクライアントとの間に設定し、このセッションに対応するセッションID(セッションIDa)を採番する(S102)。このとき、Webサーバは、採番したセッションIDaの有効時間を設定する。この有効時間は、後述する更新リクエストの出力周期およびWebクライアントに対する信号のTAT(ターンアラウンドタイム)にもとづく所定秒数の時間に設定される。そして、Webサーバは、この有効時間を、採番したセッションIDと対応付けて管理テーブルに記憶する。
【0036】
Webサーバは、採番したセッションIDaを付加したレスポンスをWebクライアントに送信する(S103)。
【0037】
Webサーバからの応答を受信したWebクライアントは、WebブラウザをリクエストしたURL(Uniform Resource Locator)のWebページに更新する(S104)。
【0038】
一方、Webクライアントは、Webブラウザに表示されるWebページを更新するための更新リクエストを、少なくとも1秒に1回の割合で出力する。最初の更新リクエストが出力さると、セッション接続リクエストの応答に含まれていたセッションIDaをその更新リクエストに付加してWebサーバに送信する(S105)。
【0039】
Webサーバは、Webクライアントから受信した更新リクエストに含まれるセッションIDaが、採番時に設定した有効時間内の場合にその更新リクエストを有効と判断する(S106)。そして、新たなセッションID(セッションIDb)を採番する(S107)。Webサーバは、採番したセッションIDbにも前述したように有効時間を設定する。
【0040】
Webサーバは、新たに採番したセッションIDbを付加した更新WebページのレスポンスをWebクライアントに送信する(S108)。
【0041】
Webサーバからの更新Webページの応答を受信したWebクライアントは、Webブラウザに表示されているWebページを更新する(S109)。
【0042】
Webクライアントでは、少なくとも1秒に1回の割合で新たな更新リクエストが出力され、直前に受信した更新Webページに含まれていたセッションIDをその新たな更新リクエストに付加してWebサーバに送信する(S110)。
【0043】
以降は、ステップS106乃至S110と同様の動作が繰り返される。つまり、Webサーバは、Webクライアントから受信した更新リクエストに含まれるセッションIDが有効時間内である限り、新たなセッションIDを採番して更新Webページに付加してWebクライアントに送信する。そして、Webクライアントは、少なくとも1秒に1回の割合で出力される新たな更新リクエストに、直前に受信した更新Webページに含まれていたセッションIDを付加してWebサーバに送信する。
【0044】
本実施形態では、Webページの更新に際し、クリック等のユーザによる更新アクションに替えて、更新リクエスト出力手段が周期的に更新リクエストを出力する構成を備える。しかも、更新リクエスト出力手段は、通常のユーザ操作では対応できない、少なくとも1秒に1回の割合で更新リクエストを出力する。
【0045】
また、本実施形態では、Webサーバにおいては、更新リクエストを受信する度に新たなセッションIDを採番してWebクライアントに通知する。しかも、採番したセッションIDには、更新リクエストの出力周期およびWebクライアントに対する信号のTATにもとづく所定秒数の、非常に短い有効時間が設定される。
【0046】
つまり、本実施形態では、非常に短い有効時間のそれぞれ異なったセッションIDがWebサーバとWebクライアントとの間で頻繁に送受信される構成になっている。そのため、たとえセッションIDを盗聴されたとしても、それが不正利用されるときにはそのセッションIDは無効化されており、セッションハイジャックされることはない。
【0047】
このように本実施形態は、常時接続を必要とする通信環境や組み込みシステムのようなセキュリティプロトコルの適用が限定される状況において、「なりすまし」を排除した安全なセッション管理システムおよび方法を提供することができる。
【0049】
図3は、本発明の第2の実施形態のセッション管理システムの構成を示すブロック図である。
【0050】
第2の実施形態のセッション管理システム200は、Webクライアント11とWebサーバ21とをインターネットを介して接続する構成になっている。
【0051】
Webサーバ21は、上位アプリケーションである監視情報の収集および通知処理を実行する監視手段(不図示)から監視情報の通知を受け、それをページデータとして編集して送信する。一方、Webクライアント11は、Webサーバ21からページデータとして監視情報を受信し、Webブラウザ上に表示する。
【0052】
このように、本実施形態のセッション管理システム200は、Webクライアント11がインターネットを介してWebサーバ21に接続され、上位アプリケーションが収集する監視情報を常時監視するシステムに適用される。このような常時監視システムとして、例えば、通信網に配備される伝送装置の動作状態を遠隔の保守センターで監視する形態がある。
【0053】
Webクライアント11は、更新リクエスト出力部111、セッションID付与部112、リクエスト送信部113、レスポンス受信部114およびWebページ更新表示部115を含む。
【0054】
第1の実施形態における更新リクエスト出力手段101は更新リクエスト出力部111に相当し、セッションID付加手段102はレスポンス受信部114、セッションID付与部112およびリクエスト送信部113に相当する。
【0055】
更新リクエスト出力部111は、Webブラウザに表示されるWebページを更新する更新リクエストを、少なくとも1秒に1回の割合で出力する。更新リクエスト出力部111は、Webブラウザでの利用に適したスクリプト言語(簡易プログラミング言語、例えば、JavaScript(登録商標))で作成され、一定時間間隔で更新リクエストを出力する。
【0056】
セッションID付与部112は、レスポンス受信部114を介してWebサーバ21から通知されたセッションIDを、更新リクエスト出力部111が出力する更新リクエストのURLに付加して出力する。
【0057】
リクエスト送信部113は、セッションID付与部112が出力する、URLにセッションIDが付加されたHTMLのリクエストを送信する。
【0058】
レスポンス受信部114は、Webサーバ21から受信したレスポンスに含まれるセッションIDをセッションID付与部112に転送し、ページデータをWebページ更新表示部115に転送する。
【0059】
Webページ更新表示部115は、Webサーバ21から送られてきたページデータをWebブラウザ上に表示する。つまり、本実施形態において、Webページ更新表示部115は、例えば伝送装置の動作状況を遠隔で監視するための監視情報表示手段として機能する。
【0060】
Webサーバ21は、リクエスト受信部211、セッションID判定・生成部212、TCPセッションテーブル213、レスポンス送信部214および更新ページデータ編集部215を含む。
【0061】
第1の実施形態におけるセッションID採番手段201は、リクエスト受信部211およびセッションID判定・生成部212の一部に相当する。また、有効時間設定手段202は、セッションID判定・生成部212の一部およびTCPセッションテーブル213に相当し、更新応答送信手段203は、セッションID判定・生成部212の一部およびレスポンス送信部214に相当する。
【0062】
リクエスト受信部211は、Webクライアント11からのリクエストを受信する。このリクエストには、Webクライアント11とWebサーバ21との間のTCPセッションを接続するリクエストおよびWebページを更新するリクエストが含まれる。
【0063】
セッションID判定・生成部212は、認証されたWebクライアント11とのセッション接続に際して、接続したセッションに対応するセッションIDを採番する。また、その後、そのセッションを使用して送られてくる更新リクエストに付加されているセッションIDの正当性を判定する。この正当性を判定するために、セッションID判定・生成部212は、後述するTCPセッションテーブル213を参照する。さらに、正当性が確認された更新リクエストに応答する際に付加する新たなセッションIDを採番する。セッションID判定・生成部212は、セッションIDをランダムな値で採番する。これは、あるセッションIDが盗聴されたときに、後続して採番される他のセッションIDが盗聴されたセッションIDから推定されることを防ぐためである。
【0064】
セッションID判定・生成部212は、採番したセッションIDをTCPセッションテーブル213に登録して管理する。その際に、セッションID判定・生成部212は、セッションIDに有効時間を設定する。
【0065】
この有効時間は、Webクライアント11における更新リクエストの出力周期およびWebクライアント11に対する信号のTATにもとづく所定秒数の時間に設定される。
【0066】
例えば、保守センターに設置される各Webクライアント11と各伝送装置のWebサーバ21との間の内部処理遅延も含めた信号遅延を事前に測定しておき、Webサーバ21毎にWebクライアント遅延管理テーブルに登録しておけばよい。また、Webクライアント11における更新リクエストの出力周期はシステムとして統一されていることを前提とするが、異なる場合でも、その遅延管理テーブルに個々のWebクライアント11における出力周期情報を登録しておけばよい。したがって、セッションIDの有効時間は、上記のような遅延管理テーブルの接続要求を受けたWebクライアント11に対応するデータにもとづいて決めることができる。
【0067】
TCPセッションテーブル213は、TCPセッション毎に、セッションID、有効/無効フラグ、残り有効時間を管理するためのテーブルである。Webクライアント11のログイン時にセッションが追加され、ログアウト時にはそのセッションが削除される。残り有効時間は、図示しないセッションID有効時間タイマーが、セッションIDが無効になるまでの有効時間の残り時間をカウントダウンして示す値である。セッションID有効時間タイマーは、有効時間が超過した場合、有効/無効フラグを無効に設定する。詳細については、
図4を参照して後述する。
【0068】
レスポンス送信部214は、セッションID判定・生成部212により正当性が確認された更新リクエストに応答するための処理を行う。つまり、セッションID判定・生成部212が新たに採番してTCPセッションテーブル213に登録したセッションIDを、更新ページデータ編集部215から得られるページデータに付加してWebクライアント11に送信する。
【0069】
更新ページデータ編集部215は、リクエスト受信部211が受信した更新リクエストに応じて、上位アプリケーションから通知されている監視データをページデータに編集して出力する。
【0070】
次に、
図4を参照してTCPセッションテーブル213とセッションID管理について説明する。
【0071】
図4は、TCPセッションテーブルの登録例を示す図である。
【0072】
図4において、「TCPセッションテーブル(状態1)」は、ある時点でのTCPセッションテーブルの内容を示し、「TCPセッションテーブル(状態2)」は、それから1秒経過した時点でのTCPセッションテーブルの内容を示している。
【0073】
TCPセッションテーブルは、1つのTCPセッションに対して1つのセッションIDのレコードを持ち、TCPセッション(送信元ポート番号)、セッションID、セッションIDの有効/無効、セッションIDの残り有効時間の項目を含む。
【0074】
WebサーバにログインするとセッションIDのレコードが追加され、ログアウトまたはTCPセッションが終了するとそのレコードが削除される。前述したようにセッションIDには有効時間が設定されており、有効時間を過ぎても新たなセッションIDに更新されない場合はセッションタイムアウトとなる。セッションタイムアウトになるとそのセッションは無効にされる。また、有効時間の値は、例えば、Webクライアント11における更新リクエストの出力周期を1秒に1回とした場合、TATや若干の保護時間を考慮して3秒に設定するものとする。
【0075】
図4の「TCPセッションテーブル(状態1)」では、TCPセッション「1060」について、セッションIDは「456def」で「有効」であり、残り有効時間は新規セッションの例として初期設定値の「3.000秒」となっている。また、TCPセッション「1070」について、セッションIDは「a1b2c3」で「有効」であり、残り有効時間は「1.000秒」となっている。
【0076】
「TCPセッションテーブル(状態2)」は、上記の「状態1」から1秒経過した状態で、TCPセッション「1060」に対応するWebクライアント11からは更新リクエストを受けている。そのため、TCPセッション「1060」では、新たなセッションIDの「123abc」に更新され、残り有効時間は設定値の「3.000秒」となっている。
【0077】
一方、TCPセッション「1070」の場合は、セッションIDが更新されないまま1秒が経過して、残り有効時間が「0.000秒」となったために「無効」にされている。例えば、Webクライアント11とWebサーバ21との間の回線が何らかの理由で切れたような、ネットワーク障害が想定される。
【0078】
以上のように、Webクライアント11とWebサーバ21との間で正常にページ更新の動作が行われている限り、TCPセッションテーブル213において、セッションIDは3秒以内の非常に短時間で更新が繰り返される。このことは、採番されたセッションIDは、TCPセッションテーブル213に登録されたとしても、短時間でその存在が消えることを意味する。
【0079】
また、有効時間内にセッションIDが更新されない場合、そのセッションは「無効」として扱われる。「無効」になったセッションのレコードは所定時間の後にTCPセッションテーブル213から削除される。例えば、定期的に無効セッションのログが収集され、その後に削除するように構成してもよい。また、「無効」になった時点でそのセッションのレコードをTCPセッションテーブル213から削除するように構成してもよい。
【0080】
したがって、セッションID判定・生成部212は、TCPセッションテーブル213を参照することにより、受信したリクエストに付加されているセッションIDの正当性を判定することができる。つまり、セッションID判定・生成部212は、TCPセッションテーブル213に登録されていないセッションIDや「無効」に設定されたセッションに対応するセッションIDを有するリクエストを不正と判定できる。不正と判定したリクエストには応答せずに、それらを排除することができる。
【0081】
次に、第2の実施形態のセッション管理システムの動作を
図5および
図6を参照して説明する。第2の実施形態のセッション管理システムの一連の動作は、
図5および
図6に示される。
【0082】
最初に、Webクライアント11は、Webサーバ21との間のセッションを確立するためにTCPセッション接続リクエストを送信し(S201)、ログイン情報を送信する(S202)。
【0083】
Webサーバ21において、リクエスト受信部211でのログイン認証が成功すると(S203)、新規セッションレコードがTCPセッションテーブル213に追加される。そして、セッションID判定・生成部212は、そのセッションに対応して生成したセッションID「456def」と、有効時間の初期値と、セッションIDの状態が有効という情報をTCPセッションテーブル213に登録する(S204)。
【0084】
Webサーバ21のレスポンス送信部214は、ログイン成功を伝えるレスポンスに、生成したセッションID「456def」を付加してWebクライアント11に送信する(S205)。
【0085】
Webクライアント11のレスポンス受信部114はセッションID「456def」が付加されたログイン成功の情報を受信する。レスポンス受信部114は、付加されていたセッションID「456def」をセッションID付与部112に送る。また、レスポンス受信部114は、ログイン成功の情報を受けてWebページ更新表示部115を介してWebブラウザのページを更新する(S206)。
【0086】
セッションID付与部112は、更新リクエスト出力部111が出力する更新リクエストのURLにセッションID「456def」を付加して出力する。そして、リクエスト送信部113は、セッションID付与部112が出力する、URLにセッションID「456def」が付加されたHTMLのリクエストをWebサーバ21に送信する(S207)。
【0087】
Webサーバ21では、リクエスト受信部211が更新リクエストを受信し、URLに付加されたセッションID「456def」をセッションID判定・生成部212に送る。
【0088】
セッションID判定・生成部212は、TCPセッションテーブル213を参照して、セッションID「456def」が、受信したセッションに対応して記憶されているセッションIDと一致するか否かを照合する(S208)。さらに、セッションIDが一致すると、そのセッションIDが有効か無効かを判定する(S209)。
【0089】
ステップS208とステップS209の判定で、セッションIDが不一致または無効の場合、受信したリクエストは廃棄され、レスポンスは返送されない(S210)。
【0090】
なお、セッションIDの有効時間がタイムアウトして「無効」になった時点でそのセッションのレコードをTCPセッションテーブル213から削除するように構成した場合には、ステップS209の処理を省略してもよい。なお、この場合は、受信したセッションのレコードがTCPセッションテーブル213に存在するか否かがステップS208の前に判定される。そして、当該レコードが存在しない場合には、ステップS210の処理が行われる。
【0091】
一方、ステップS208とステップS209の判定で、セッションIDが一致かつ有効の場合、セッションID判定・生成部212は、新たなセッションID「123abc」を採番する(S211、以降は
図6を参照)。
【0092】
また、新たなセッションIDの採番に伴い、当該セッションに対応するTCPセッションテーブル213の内容を更新する。つまり、セッションIDフィールドを新しいセッションID「123abc」に、有効/無効フィールドを有効に、残り有効時間フィールドを初期設定値(3秒)に、それぞれ更新する。
【0093】
Webサーバ21のレスポンス送信部214は、更新ページデータ編集部215から受信した更新ページデータを含むレスポンスに新しいセッションID「123abc」を付加し、Webクライアント11に送信する(S212)。
【0094】
Webクライアント11は、更新リクエストに対する新しいセッションID「123abc」が付加されたレスポンスをレスポンス受信部114で受信する。レスポンス受信部114は、付加されていたセッションID「123abc」をセッションID付与部112に送る。また、レスポンス受信部114は、Webページ更新表示部115を介してWebブラウザのページを受信した更新ページデータにより更新する(S213)。
【0095】
セッションID付与部112は、更新リクエスト出力部111が次の周期で出力した更新リクエストのURLに、セッションID「123abc」を付加して出力する。そして、リクエスト送信部113は、セッションID付与部112が出力する、URLにセッションID「123abc」が付加されたHTMLのリクエストをWebサーバ21に送信する(S214)。
【0096】
以上のようにして、Webクライアント11とWebサーバ21との間のセッションが確立されている限り、ステップS208乃至S214の動作が繰り返される。
【0097】
Webクライアント11からのセッション終了リクエスト送信によるセッション終了は次のように行われる。
【0098】
Webクライアント11がログアウト、またはTCPセッション終了をWebサーバ2に送信する(S215)。それを受信したWebサーバ21のリクエスト受信部211は、TCPセッションテーブル213から該当のセッションレコードを削除してセッション終了とする(S216)。
【0099】
次に、攻撃者による「なりすまし」があった場合の処理について
図7を参照して説明する。
【0100】
図7は、セッションIDが盗聴され、それが不正利用された場合のセッション管理システムの動作を説明するシーケンス図である。このシーケンスは、
図5のステップS205から
図6のステップS214の間に、攻撃者によるセッションIDの盗聴と、そのセッションIDを不正利用した「なりすまし」があった場合を想定した動作である。
【0101】
Webクライアント11とWebサーバ21が通信中、Webサーバ21はセッションID「456def」を付加したレスポンスをWebクライアント11に送信する(S205)。ここで攻撃者は、Webクライアント11が受信したセッションID「456def」を盗聴する(S301)。
【0102】
Webクライアント11はセッションID「456def」が付加されたレスポンスを受信すると、レスポンスにもとづいてWebブラウザのページを更新する(S206)。そして、Webクライアント11は、URLにセッションID「456def」を付加した更新リクエストをWebサーバ21に送信する(S207)。
【0103】
Webサーバ21では、URLにセッションID「456def」が付加された更新リクエストを受信し、セッションID「456def」の照合と有効性判定を行う(S208、S209)。
【0104】
セッションIDの照合と有効性判定の結果、継続中のセッションであることを確認すると、Webサーバ21では、セッションIDをランダムな値に更新する(セッションID「123abc」採番)(S211)。
【0105】
Webサーバ21は、更新ページデータを含むレスポンスに新しいセッションID「123abc」を付加し、Webクライアント11に送信する(S212)。
【0106】
このような段階で、攻撃者が、ステップS301で盗聴したセッションID「456def」を不正利用して「なりすまし」のリクエストをWebサーバ21に送信する(S302)。
【0107】
Webサーバ21は、リクエストに付加されたセッションID「456def」の照合を行うが(S303)、秒単位の短時間でセッションIDは更新されているので、このセッションID「456def」は一致しない。
【0108】
したがって、Webサーバ21は、この不一致となったセッションIDが付加されたリクエストを廃棄する(S304)。そして、攻撃者にレスポンスが返されることはない。
【0109】
攻撃者の「なりすまし」は失敗し、Webクライアント11とのセッションは継続され、Webクライアント11はURLに新しいセッションID「123abc」を付加し、Webサーバ21に更新リクエストを送信する(S214)。
【0110】
以上に説明したように、本実施形態では、Webページの更新に際し、クリック等のユーザによる更新アクションに替えて、周期的に自動更新する構成を備える。このWebページを自動更新する構成は、Webブラウザでの利用に適したスクリプト言語で作成され、通常のユーザ操作では対応できない、少なくとも1秒に1回の割合で更新リクエストを出力することができる。
【0111】
また、本実施形態では、Webサーバにおいては、更新リクエストを受信する度に新たなセッションIDをランダムな値で採番してWebクライアントに通知する。しかも、採番したセッションIDには、更新リクエストの出力周期およびWebクライアントに対する信号のTATにもとづく所定秒数の、非常に短い有効時間が設定される。
【0112】
つまり、本実施形態では、非常に短い有効時間のそれぞれ異なったセッションIDがWebサーバとWebクライアントとの間で頻繁に送受信される構成になっている。そのため、たとえセッションIDを盗聴されたとしても、それが不正利用されるときにはそのセッションIDは無効化されており、セッションハイジャックされることはない。
【0113】
このように本実施形態は、常時接続を必要とする通信環境や組み込みシステムのようなセキュリティプロトコルの適用が限定される状況において、簡素な仕組みでセキュリティ性の高いセッションID管理を行なうことができる。そのため、攻撃者による「なりすまし」を排除した安全なセッション管理システムおよび方法を提供することができる。
【0114】
次に、本発明の第2の実施形態の変形例のセッション管理システムを説明する。
【0115】
図8は、本発明の第2の実施形態の変形例のセッション管理システムの構成を示すブロック図である。
【0116】
第2の実施形態の変形例のセッション管理システム300は、Webクライアント12とWebサーバ22とをインターネットを介して接続する構成になっている。そして、Webクライアント12とWebサーバ22との間で送受信されるセッションIDを暗号化および復号化する構成を備える。
【0117】
Webクライアント12は、更新リクエスト出力部121、セッションID付与部122、リクエスト送信部123、レスポンス受信部124、Webページ更新表示部125、暗号化部126および復号化部127を含む。
【0118】
暗号化部126は、Webサーバ22に送信する更新リクエストに付加するセッションIDを暗号化する。また、復号化部127は、Webサーバ22から受信したレスポンスに付加された暗号化されたセッションIDを復号化する。
【0119】
なお、更新リクエスト出力部121、セッションID付与部122、リクエスト送信部123、レスポンス受信部124およびWebページ更新表示部125は、第2の実施形態のそれぞれに対応する構成と同じである。そのため、それらの説明は省略する。
【0120】
Webサーバ22は、リクエスト受信部221、セッションID判定・生成部222、TCPセッションテーブル223、レスポンス送信部224、更新ページデータ編集部225、復号化部226および暗号化部227を含む。
【0121】
復号化部226は、Webクライアント12から受信した更新リクエストに付加された暗号化されたセッションIDを復号化する。また、暗号化部227は、Webクライアント12に送信するレスポンスに付加するセッションIDを暗号化する。
【0122】
なお、リクエスト受信部221、セッションID判定・生成部222、TCPセッションテーブル223、レスポンス送信部224および更新ページデータ編集部225は、第2の実施形態のそれぞれに対応する構成と同じである。そのため、それらの説明は省略する。
【0123】
つまり、第2の実施形態の変形例は、Webクライアント12が送信するリクエストに付加されるセッションIDや、Webサーバ22が送信するレスポンスに付加されるセッションIDを暗号化してインターネットに送信する。そして、Webクライアント12およびWebサーバ22は、それぞれ受信したレスポンスやリクエストに付加された暗号化されたセッションIDを復号化して内部処理する。
【0124】
また、第2の実施形態の変形例のセッション管理システム300も、第2の実施形態のセッション管理システム200と同様に、上位アプリケーションが収集する監視情報を常時監視するシステムに適用される。例えば、通信網に配備される伝送装置の動作状態を遠隔の保守センターで監視する形態であり、Webクライアント12とWebサーバ22は同一の運用管理または委託関係の管理になっている。そのため、暗号化と復号化は予め決められた秘密の暗号キーを用いた暗号方式を任意に適用することができる。
【0125】
第2の実施形態の変形例は、セッションIDの暗号化・復号化を行うことにより、セッションIDが盗聴される可能性を極力少なくすることができる。また、たとえセッションIDを盗聴されたとしても、第2の実施形態で説明したように、攻撃者からの「なりすまし」を防ぐことができる。
【0126】
このように第2の実施形態の変形例も、常時接続を必要とする通信環境や組み込みシステムのようなセキュリティプロトコルの適用が限定される状況において、簡素な仕組みでセキュリティ性の高いセッションID管理を行なうことができる。