説明

ウェブサイトのための安全なセッション管理用プログラム、セッション管理方法、及びセッション管理システム

【課題】安全なセッション管理を実現しつつ、プログラムの実行効率と作成効率に著しい劣化を伴わないようにする。
【解決手段】 ウェブサイトのための安全なセッション管理用プログラムは、コンピュータに、ウェブクライアントからウェブページのアクセス要求を受けたときに、要求されたウェブページが非保護のウェブページの場合(St1:NO)、当該ウェブページの処理を行うステップ(St10)と、要求されたウェブページが保護すべきウェブページの場合(St1:YES)、当該ウェブページの処理(St10)を行う前にそのウェブページの処理とは独立して、secure属性を付加したオースコードクッキーに基づいてウェブページに対するセッションを認証する処理を含む前処理を行うステップ(St2〜St9)とを実行させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ウェブサイトのための安全なセッション管理用プログラム、セッション管理方法、及びセッション管理システムに関する。
【背景技術】
【0002】
近年、インターネットに代表される通信ネットワークの利用増大に伴い、ネットワーク上のウェブサイトを用いた電子商取引も盛んに行われるようになっている。このような電子商取引では、ウェブサイトを成すウェブページを生成し維持するウェブサーバと、ウェブサイトにアクセスするウェブブラウザをもつウェブクライアントとの間でネットワークを介して通信が行われる。ウェブページにアクセスする際に用いる通信プロトコルには、通常、HTTP(HyperText Transfer Protocol)が使用されるが、個人情報やクレジットカード番号等を安全にやり取りする場合には、HTTPにSSL(Secure Socket Layer)によるデータの暗号化機能を付加したHTTPS(Hypertext Transfer Protocol Security)も使用される。
【0003】
HTTPは、要求とその応答の1組で完結するステートレスなプロトコルである。このため、HTTPを用いて、ユーザがウェブクライアントからウェブサイトのネットワーク上の所在を示すURL(Uniform Resource Locator)を指定してそのウェブページにログインしてからログアウトするまでの同一ユーザによる一連のアクセス、すなわち同一ユーザによるセッションを識別し、そのセッションを追跡・維持するため、クッキー機能を利用することが多い。
【0004】
クッキーを使用する場合、ウェブブラウザの画面上でユーザ名とパスワードが入力され、ログイン実行ボタンが押されると、サーバは、入力されたユーザ名とパスワード、又はその暗号化されたデータ、或いは登録されたユーザであることが確認された場合のみに乱数により発行されるセッションIDを入れたクッキーを応答ヘッダ内に記述されるデータとして発行する。それ以降、ウェブブラウザは、アクセス毎に応答ヘッダ内にそのデータを入れて送出するので、サーバはそのクッキーのデータに基づきユーザを特定し、そのユーザに対し一貫性のあるデータ処理及びサービス提供を行うことができる。
【0005】
この場合、安全なアクセス制御のためには、パケット盗聴等によりクッキーが第三者に盗まれるといった事態を回避する必要がある。そのため、HTTPに基づいてウェブサーバによりウェブクライアントに発行されるクッキーには、name属性、path属性、domain属性等のほか、オプションとしてsecure属性を指定できるようになっている。
【0006】
secure属性が指定されていないクッキーは、通信プロトコルがHTTPの場合でも、HTTPSの場合でも、送出される。すなわち、URLが「http://」で始まる非保護のウェブページにアクセスする場合でも、「https://」で始まる保護されたウェブページにアクセスする場合でも、いずれの場合でもクッキーデータが通信路上に流れる。これに対し、secure属性が指定されたクッキーは、通信プロトコルがHTTPSの場合のみ送出され、HTTPの場合では送出されない。すなわち、URLが「https://」で始まる保護されたウェブページにアクセスする場合のみにクッキーデータが通信路上に流れ、「http://」で始まる非保護のウェブページにアクセスする場合には、クッキーデータが通信路上に流れない。
【0007】
しかしながら、クッキーを用いたアクセス制御に際し、上記secure属性による機能が正しく使用されず、例えばクッキーが暗号化されずにネットワークに流れる等の事態が生じると、第三者がクッキーデータを盗聴することによってユーザのログイン状態(セッション)を乗っ取ることが可能となり、最悪の場合、パスワード等の個人情報を不正に閲覧したり、クレジットカード番号を盗み出したりする等、不都合な事態が生じる恐れがある(例えば、非特許文献1参照)。
【0008】
このようなセッション維持のために使用されるクッキー(セッション維持クッキー)のデータ盗聴によるセッションの乗っ取りを回避する対策として、従来、ウェブサイトのための安全なセッション管理を行うシステム及び方法の一例が提案されている(例えば、特許文献1、非特許文献1、2参照)。
【0009】
例えば、非特許文献1では、セッション維持クッキーを用いているウェブサイトにおいて、セッションの乗っ取りを避けた安全なセッション管理として、次の二つの方法が記載されている。
【0010】
1)ウェブページとセッション維持クッキーの全てを保護されたウェブページ及び保護されたクッキーとする。すなわち、ウェブサイトの全てのウェブページが「https://」で始まるURLをもち、クッキーにはsecure属性が付加されるようにする。
【0011】
2)保護されたウェブページでセッションを認証するために、非保護のセッション維持クッキーとは別に、保護されたクッキー(オースコードクッキー)を用意し、セッションを認証する。すなわち、2つのクッキーを用意し、1つ目のクッキーにはsecure属性を付加せず、2つ目のクッキーにはsecure属性を付加し、両者ともにランダムに生成されるセッションIDを与え、どちらのセッションIDからでもユーザを特定できるようにする。これにより、「https://」のウェブページではsecure属性が付加された2つ目のクッキーからユーザを特定すると共に、「http://」のウェブページではsecure属性が付加されない1つ目のクッキーからユーザを特定する。そうすると、仮に1つ目のsecure属性が付加されないクッキーが盗聴されても、それが「https://」のウェブページに入るのに必要なセッションIDではないため、SSLで保護されているウェブページの情報にアクセスすることはできない。
【0012】
上記二つの方法のうち、1)の方法を用いると、非特許文献3でも指摘されているように、全てのウェブページを保護されたウェブページとして扱うため、すべての通信をSSLで行うことでオーバーヘッドが大きくなる等、ウェブサイトの実行効率に著しい劣化が発生してしまう可能性がある。
【0013】
そこで、現実的な方法としては、2)の方法を用いて、セッション維持のための非保護のクッキーと、保護されたウェブページにおける認証のための保護されたオースコードクッキーとを併用する必要がある。この例を図4に基づいて説明する。
【0014】
図4に示すウェブサイトのための安全なセッション管理を行うシステムは、ウェブサイトを管理するウェブサーバ12と、ウェブサイトにアクセスするウェブクライアント16と、両者12、16を通信可能に接続するインターネット等のTCP(Transmission Control Protocol)/IP(Internet Protocol)に基づくネットワークから成る通信チャネル(通信路)14とから構成されている。ウェブサーバ12は、ソフトウェア構成上、ウェブサーバソフトウェア18と、ウェブサーバソフトウェア18により管理されるウェブサイトを成すウェブページ22とを有している。ウェブページ22には、保護すべきウェブページ30と、非保護でも構わないウェブページ28とが含まれる。
【0015】
このような構成を有する従来のシステムにおいて、保護すべきウェブページ30は、そのデータの送受信にあたってセッションの認証を行う必要があるため、ウェブページ30内に記述されるサブプログラム31によって応答が生成される。すなわち、保護すべきウェブページ30の応答を生成するサブプログラム31全てでセッションの認証処理を行う必要があり、その結果、ウェブページ30内のセッションの認証を行うためのサブプログラム31が記述される場所の数は、保護すべきウェブページ30の数に比例することになる。
【特許文献1】特表2004-514996号公報(第2−7頁、図1)
【非特許文献1】高木浩光、“Cookie盗聴によるWebアプリケーションハイジャックの危険性とその対策”、[online]、2003年7月17日、[平成17年2月7日検索]、インターネット<URL:http://securit.gtrc.aist.go.jp/research/paper/AIST03-J00017/>
【非特許文献2】情報処理振興事業協会セキュリティセンター、“経路のセキュリティと同時にセキュアなセッション管理を−SSL/TLSでクッキーを使うときは、secure属性を付けるのを基本とする−”、[online]、2003年8月14日、独立行政法人情報処理推進機構(IPA)、[平成17年2月7日検索]、インターネット<URL:http://www.ipa.go.jp/security/ciadr/20030808cookie-secure.html>
【非特許文献3】Ja-Jakarta Project 掲示板、“セッションハイジャック”、[online]、2004年1月29日、Ja-Jakarta Project、[平成17年2月7日検索]、インターネット<URL:http://www.jajakarta.org/kvasir/bbs/technical/480?expand=true>
【発明の開示】
【発明が解決しようとする課題】
【0016】
上述したように、非保護のセッション維持クッキーのみを用いて保護されたウェブページと非保護のウェブページの両方に対するセッションを維持する方法は、非特許文献1で述べられているセキュリティホールを持ち、その対策として、上記1)のように全てのウェブページを保護されたウェブページとして扱うことは、ウェブサイトの実行効率の著しい劣化を伴う。そこで、上記2)のようにセッション維持のための非保護のクッキーと、保護されたウェブページにおける認証のための保護されたオースコードクッキーとを併用する必要がある。
【0017】
しかしながら、上記2)の方法では、非特許文献3で述べられているように、また図4で示したように、ウェブサイト内の保護すべきウェブページ全てに対してセッション認証の処理を記述する必要があり、プログラムの作成効率に著しい劣化が発生することが予想され、その対策が望まれている。
【0018】
本発明は、このような従来の事情を考慮してなされたもので、セッション維持中に保護されたウェブページと非保護のウェブページとの行き来が可能な大規模なウェブサイトでも、安全なセッション管理を実現しつつ、プログラムの実行効率と作成効率に著しい劣化を伴わないようにすることを目的とする。
【課題を解決するための手段】
【0019】
上記目的を達成するため、本発明に係るウェブサイトのための安全なセッション管理用プログラムは、保護すべきウェブページ及び非保護のウェブページを有するウェブページから成るウェブサイトで用いられ、このウェブサイトへアクセスするウェブクライアントとの間の通信による一連のアクセスから成るセッションを管理するプログラムであって、コンピュータに、前記ウェブクライアントから前記ウェブページのアクセス要求を受けたときに、要求されたウェブページが前記非保護のウェブページの場合、当該ウェブページの処理を行うステップと、要求されたウェブページが前記保護すべきウェブページの場合、当該ウェブページの処理を行う前にそのウェブページの処理とは独立して、secure属性を付加したオースコードクッキーに基づいて前記ウェブページに対するセッションを認証する処理を含む前処理を行うステップとを実行させることを特徴とする。
【0020】
本発明に係るセッション管理用プログラムにおいて、前記前処理を行うステップは、前記要求されたウェブページの通信で用いる通信プロトコルが保護された通信プロトコルか非保護の通信プロトコルかを判別するステップと、前記保護された通信プロトコルと判別された場合、前記保護すべきウェブページに対するセッションの1回目のアクセス時に前記ウェブクライアントに対して前記オースコードクッキーを発行すると共に、前記セッションの2回目以降のアクセス時に前記オースコードクッキーを参照して前記セッションを認証するステップとを有してもよい。また、前記前処理を行うステップは、前記非保護の通信プロトコルと判別された場合、前記セッションを破棄するステップを有してもよい。
【0021】
本発明に係るウェブサイトのための安全なセッション管理方法は、保護すべきウェブページ及び非保護のウェブページを有するウェブページから成るウェブサイトで用いられ、このウェブサイトへアクセスするウェブクライアントとの間の通信による一連のアクセスから成るセッションを管理する方法であって、前記ウェブクライアントから前記ウェブページのアクセス要求を受けたときに、要求されたウェブページが前記非保護のウェブページの場合、当該ウェブページの処理を行うステップと、要求されたウェブページが前記保護すべきウェブページの場合、当該ウェブページの処理を行う前にそのウェブページの処理とは独立して、secure属性を付加したオースコードクッキーに基づいて前記ウェブページに対するセッションを認証する処理を含む前処理を行うステップとを有することを特徴とする。
【0022】
本発明に係るセッション管理方法において、前記前処理を行うステップは、前記要求されたウェブページの通信で用いる通信プロトコルが保護された通信プロトコルか非保護の通信プロトコルかを判別するステップと、前記保護された通信プロトコルと判別された場合、前記保護すべきウェブページに対するセッションの1回目のアクセス時に前記ウェブクライアントに対して前記オースコードクッキーを発行すると共に、前記セッションの2回目以降のアクセス時に前記オースコードクッキーを参照して前記セッションを認証するステップとを有してもよい。また、前記前処理を行うステップは、前記非保護の通信プロトコルと判別された場合、前記セッションを破棄するステップを有してもよい。
【0023】
本発明に係るウェブサイトのための安全なセッション管理システムは、保護すべきウェブページ及び非保護のウェブページを有するウェブページから成るウェブサイトで用いられ、このウェブサイトへアクセスするウェブクライアントとの間の通信による一連のアクセスから成るセッションを管理するシステムであって、前記ウェブクライアントから前記ウェブページのアクセス要求を受けたときに、要求されたウェブページが前記非保護のウェブページの場合、当該ウェブページの処理を行う手段と、要求されたウェブページが前記保護すべきウェブページの場合、当該ウェブページの処理を行う前にそのウェブページの処理とは独立して、secure属性を付加したオースコードクッキーに基づいて前記ウェブページに対するセッションを認証する処理を含む前処理を行う前処理手段とを有することを特徴とする。
【0024】
本発明に係るウェブサイトのための安全なセッション管理システムにおいて、前記前処理手段は、前記要求されたウェブページの通信で用いる通信プロトコルが保護された通信プロトコルか非保護の通信プロトコルかを判別する手段と、前記保護された通信プロトコルと判別された場合、前記保護すべきウェブページに対するセッションの1回目のアクセス時に前記ウェブクライアントに対して前記オースコードクッキーを発行すると共に、前記セッションの2回目以降のアクセス時に前記オースコードクッキーを参照して前記セッションを認証する手段とを有してもよい。また、前記前処理手段は、前記非保護の通信プロトコルと判別された場合、前記セッションを破棄する手段を有してもよい。
【発明の効果】
【0025】
本発明によれば、セッション維持中に保護されたウェブページと非保護のウェブページとの行き来が可能な大規模なウェブサイトでも、安全なセッション管理を実現しつつ、プログラム作成量を削減し、プログラム実行効率を改善することが可能となる。とくに、プログラム作成量の削減効果は、ウェブサイト上の保護すべきウェブページの数が十分多い程、より一層発揮させることができる。また、プログラム実行効率の改善効果は、ウェブサイト上の非保護のウェブページの利用頻度が一定以上ある程、より一層発揮させることができる。
【発明を実施するための最良の形態】
【0026】
次に、本発明に係るウェブサイトのための安全なセッション管理用プログラム、セッション管理方法、及びセッション管理システムを実施するための最良の形態について図面を参照して詳細に説明する。
【0027】
図1を参照すると、本実施例のウェブサイトのための安全なセッション管理システムは、ウェブサイトのHTML(HyperText Markup Language)等のウェブページ記述言語で記述されたウェブページ22を管理するウェブサーバ12と、ウェブページ22へアクセスするためのウェブクライアント16と、両者12、16を通信可能に結ぶ通信チャネル14とを備える。通信チャネル14は、例えばインターネット等のTCP/IPに基づく通信ネットワークから成る。
【0028】
ウェブクライアント16は、通信チャネル14を介してウェブサーバ12との間でTCP/IPに基づき通信を行い、ウェブサーバ12により提供されるウェブサイトのウェブページ22を閲覧可能な機能を有するウェブブラウザ(図示しない)を実行可能なコンピュータ機であれば、いずれの構成でも適用可能である。適用されるコンピュータ機では、ハードウェア構成上、例えばCPU、メモリ等の記録装置、通信チャネル14用の通信装置(電話回線で用いるモデム装置、LANで用いる通信インターフェース等)、表示装置(CRTや液晶ディスプレイ等)等を備え、CPUがメモリに配置されるウェブブラウザ等のプログラムを実行可能となっている。
【0029】
ウェブサーバ12は、ウェブサイトのウェブページ22を管理するウェブサーバソフトウェアを実行可能なコンピュータマシンであれば、いずれの構成でも適用可能である。適用されるコンピュータ機では、ハードウェア構成上、例えばCPU、メモリ等の記録装置、通信チャネル14用の通信装置(電話回線で用いるモデム装置、LANで用いる通信インターフェース等)等を備え、CPUがメモリに配置されるウェブサーバソフトウェア等のプログラムを実行可能となっている。
【0030】
このウェブサーバ12は、CPUがプログラムを実行することで実現される機能上の構成として、図1に示すように、前処理機構100、要求判別機構101、プロトコル機構102、セッション管理機構103、要求管理機構104、クッキー管理機構105、及びオースコード生成機構106とを有している。これら各機構100〜106の機能を実現させるためのプログラムの例として、本実施例では例えばJava(登録商標、以下省略) Servlet APIに基づくプログラムが適用可能であるが、本発明はそれに限るものではない。
【0031】
ウェブページ22は、図1に示すように、保護すべきウェブページ30と、非保護でも構わないウェブページ28とから構成されている。保護されたウェブページ28の参照に際して、本実施例では、セッションが有効かどうか確認するためにsecure属性をもつクッキーである「オースコードクッキー」が用いられる。オースコードクッキーの例としては、次のものがある。
【0032】
session.authCode=200502081437-001; domain=sample.domain.com; path=/; secure
この例では、オースコードとして「200502081437-001」、domain属性として「sample.domain.com」、path属性として「/」が指定され、secure属性が付加されている。
【0033】
前処理機構100は、要求されたウェブページ22に応じて事前に構成されたプログラムを呼び出し、その結果によって実際に処理するウェブページ22を変更する。これは、ウェブページ22の生成にあたって前処理をプラグインする機構であり、本実施例では例えばJava Servlet仕様のフィルター機構が適用可能であるが、本発明はそれに限るものではない。
【0034】
要求判別機構101は、要求されたウェブページ22が保護すべきウェブページ30なのか非保護でも構わないウェブページ28なのかを判別する。これは、要求されたウェブページが保護すべきウェブページなのか非保護でも構わないウェブページなのかの判別機構であり、本実施例では、例えば要求されたウェブページのURLを取得する手段とあらかじめ用意したデータベースとの組が適用可能であるが、それらに限るものではない。
【0035】
プロトコル機構102は、要求されたウェブページ22が保護された通信プロトコル(例えば、HTTPS)によるものなのか、非保護な通信プロトコル(例えば、HTTP)によるものなのかを判別する。これは、要求されたウェブページ22が保護された通信プロトコルによるものなのか、非保護な通信プロトコルによるものなのかを判別する機構であり、本実施例では、例えばJava Servlet APIのHttpServletRequest.isSecure()が適用可能であるが、本発明はそれに限るものではない。
【0036】
非保護の通信プロトコルと保護されている通信プロトコルとの組としては、HTTPと、これをSSLでラップしたHTTPSとの組のほか、NNTP(Network News Transfer Protocol)、FTP(File Transfer Protocol)、SNMP(Simple Network Management Protocol)などのプロトコルと、それらをSSLでラップしたプロトコルとの組を例示できる。
【0037】
セッション管理機構103は、非保護のクッキーにより属性を保持できるセッションの生成・保持・破棄を行う。これは、クッキーにより実装されていて属性を保持できるセッションを生成・保持・破棄する機構であり、本実施例では、例えばJava Servlet APIのHttpSessionが適用可能であるが、本発明はそれに限るものではない。
【0038】
要求管理機構104は、ウェブクライアントからの要求に対して属性を設定・参照する。これは、ウェブクライアントからの要求に対して属性を設定・参照できる要求管理の機構であり、本実施例では、例えばJava Servlet APIのHttpServletRequestが適用可能であるが、本発明はそれに限るものではない。
【0039】
クッキー管理機構105は、ウェブクライアントに対してsecure属性を持ったクッキーを発行・参照する。これは、ウェブクライアントに対してsecure属性を持ったクッキーを発行・参照できる機構であり、本実施例では、例えばJava Servlet APIのHttpServletRequestクラス・HttpServletResponseクラス、ならびにCookieクラスが適用可能であるが、本発明はそれに限るものではない。
【0040】
オースコード生成機構106は、時刻や乱数などを用いて、系外から容易に推測できないオースコードを生成する。
【0041】
次に、図2及び図3のフローチャートを参照して、本実施例の全体動作について詳細に説明する。
【0042】
図2は、ウェブサーバ12がウェブクライアント16から要求されたウェブページ22を処理する前に呼び出されるプログラムの処理の流れを表した図である。このプログラムの処理は、前処理機構100によって挿入されるもので、ウェブクライアント16からウェブサーバ12に対してウェブページが要求されるたびに呼び出される。
【0043】
まず、ウェブサーバ12は、ウェブクライアント16から要求を受けると、要求判別機構101によって、要求されたウェブページ22を、保護すべきウェブページ30であるか、非保護で構わないウェブページ28であるかを判定する(ステップSt1)。その結果、非保護で構わないウェブページ28である場合(ステップSt1:NO)、それ以上の前処理を行わず、要求されたウェブページをそのまま処理する(ステップSt10)。
【0044】
また、保護すべきウェブページ30である場合(ステップSt1:YES)、プロトコル判別機構102によって、要求が通信チャネル14上を保護された通信プロトコルで通過したのか、非保護の通信プロトコルで通過したのかを判定する(ステップSt2)。その結果、非保護のプロトコルで通過していた場合(ステップSt2:NO)、保護すべきウェブページ30の内容を非保護のプロトコルで返信しないために、セッションを破棄して異常をウェブクライアント16に返却する(ステップSt4)。この際、保護されたプロトコルでアクセスすべき旨をクライアント16に伝える。
【0045】
また、保護された通信プロトコルで通過していた場合(ステップSt2:YES)、セッション管理機構103によって、セッションのオースコード属性を参照しオースコードが存在するかどうか判定する(ステップSt3)。セッションのオースコード属性の例としては、例えば要求管理機構104としてJava Servlet APIのHttpServletRequestを用いる場合には、ServletRequest#setAttributeメソッドの第一引数に文字列リテラル"session.authCode"を、第二引数に「オースコード」の文字列表現"200502081419-001"を与えて得られるサーブレット要求属性がある。
【0046】
上記ステップSt3の処理によりオースコードが存在せずにセッションがオースコード属性を保持していない場合(ステップSt3:NO)は、要求管理機構104によって、ウェブクライアント16からの当該要求に対して認証済み属性を設定する(ステップSt6)と共に、図3で述べる方法でセッションを認証済みの状態に昇格し(ステップSt7)、それ以上の前処理を行わない(ステップSt10)。上記ステップSt3がNOの場合は、例えばセッションの1回目のアクセス時に対応する。
【0047】
認証済み属性の例としては、要求管理機構104としてJava Servlet APIのHttpServletRequestを用いる場合には、ServletRequest#setAttribute メソッドの第一引数に文字列リテラル"session.authorized"を、第二引数に「真」の文字列表現"true"を与えて得られるサーブレット要求属性を例示できる。
【0048】
図3は、図2のステップSt7でセッションを認証済みの状態に昇格する際の処理の流れを表した図である。まず、オースコード生成機構106によって、当該セッションに対するオースコードを生成する(ステップSt11)。次に、セッション管理機構103によって、セッションのオースコード属性に、ステップSt11で生成したオースコードを設定する(ステップSt12)。最後に、クッキー管理機構105によって、ステップSt11で生成したオースコードを値とするオースコードクッキーをウェブクライアント16に発行する(ステップSt13)。
【0049】
次いで、図2に戻り、上記ステップSt3の処理によりオースコードが存在してセッションがオースコード属性を保持している場合(ステップSt3:YES)は、要求管理機構104によって、ウェブクライアント16からの当該要求に対する認証済み属性を参照し認証済みとマークされているかどうか判定する(ステップSt5)。その結果、当該要求に対し認証済みとマークされ、認証済み属性が既に設定されている場合(ステップSt5:YES)、それ以上の前処理を行わない(ステップSt10)。上記ステップSt3がYESの場合は、例えばセッションの2回目以降のアクセス時に対応する。
【0050】
次いで、上記当該要求に対し認証済みとマークされず、認証済み属性が設定されていない場合(ステップSt5:YES)、クッキー管理機構105によって、ウェブクライアント16からの当該要求に対するオースコードクッキーを参照しそのオースコードクッキーが存在するかどうか判定する(ステップSt8)。その結果、オースコードクッキーが存在しない場合(ステップSt8:NO)、上記ステップSt4に移行して上述した異常系処理を行う(ステップSt4)。
【0051】
次いで、上記ステップSt8の処理によりオースコードクッキーが存在する場合(ステップSt8:YES)、上記ステップSt3の処理で参照したセッションのオースコード属性と、上記ステップSt8の処理で参照したオースコードクッキーの値とを比較し、両オースコードが等しいかどうか判定する(ステップSt9)。その結果、両オースコードの値が異なる場合(ステップSt9:NO)、上記ステップSt4に移行して上述した異常系処理を行う(ステップSt4)。一方、両オースコードの値が等しければ(ステップSt9:YES)、それ以上の前処理を行わない(ステップSt10)。
【0052】
従って、本実施例によれば、保護すべきウェブページ30をアクセスする際には、初回を除き2回目以降はオースコードクッキーによるセッションの認証を行っており、オースコードクッキーは保護された通信プロトコルの場合にのみ発行しており、オースコードクッキーにはsecure属性を与えているため、ウェブサイトのための安全なセッション管理を実現できる。
【0053】
また、本実施例によれば、非保護でも構わないウェブページ28について非保護の通信プロトコルでの送受信を許容しているため、ウェブサイトのための安全なセッション管理の実現にあたって、全てのウェブページ22を保護された通信プロトコルで送受信する場合に比べて、ウェブサイトの実行効率劣化を低減できる。
【0054】
さらに、本実施例によれば、セッションの認証処理を個々の保護すべきウェブページ30ごとに記述するのではなく、ウェブページ全体で共通のサブプログラムを前処理機構で処理させているため、保護すべきウェブページ30の数が多くとも、ウェブサイトのための安全なセッション管理の実現にあたって、セッションを認証するための処理を記述する箇所が多くならない。
【0055】
以上説明したように、本実施例によれば、ウェブサーバ12によるウェブサイトとウェブクライアント16の間のセッション管理の内、全てのページで共通化できる部分のプログラム及びこれで用いるデータを前処理機構100、すなわちウェブページ22の生成にあたって前処理をプラグインする機構によって集中管理するよう構成したため、セッション維持のための処理を記述する箇所を削減でき、プログラムの作成効率の低下を大幅に抑止することができる。
【産業上の利用可能性】
【0056】
本発明によれば、電子商取引分野における安全なセッション管理を従来よりも容易に実現するためのプログラムといった用途に適用できる。また、電子政府による証明書の発行分野における安全なセッション管理を従来よりも容易に実現するためのプログラムといった用途にも適用可能である。
【図面の簡単な説明】
【0057】
【図1】本発明の実施例に係るウェブサイトのための安全なセッション管理システムの構成を示す図である。
【図2】要求されたウェブページを処理する前の処理を説明するフローチャートである。
【図3】図2のセッションを認証済みの状態に昇格する際の処理(ステップSt7)の詳細を説明するフローチャートである。
【図4】従来例に係るシステムの構成を示す図である。
【符号の説明】
【0058】
12 ウェブサーバ
14 通信チャネル
16 ウェブクライアント
22 ウェブページ
100 前処理機構
101 要求判別機構
102 通信プロトコル判別機構
103 セッション管理機構
104 要求管理機構
105 クッキー管理機構
106 オースコード生成機構

【特許請求の範囲】
【請求項1】
保護すべきウェブページ及び非保護のウェブページを有するウェブページから成るウェブサイトで用いられ、このウェブサイトへアクセスするウェブクライアントとの間の通信による一連のアクセスから成るセッションを管理するプログラムであって、
コンピュータに、
前記ウェブクライアントから前記ウェブページのアクセス要求を受けたときに、要求されたウェブページが前記非保護のウェブページの場合、当該ウェブページの処理を行うステップと、
前記要求されたウェブページが前記保護すべきウェブページの場合、当該ウェブページの処理を行う前にそのウェブページの処理とは独立して、secure属性を付加したオースコードクッキーに基づいて前記ウェブページに対するセッションを認証する処理を含む前処理を行うステップとを実行させることを特徴とするウェブサイトのための安全なセッション管理用プログラム。
【請求項2】
前記前処理を行うステップは、
前記要求されたウェブページの通信で用いる通信プロトコルが保護された通信プロトコルか非保護の通信プロトコルかを判別するステップと、
前記保護された通信プロトコルと判別された場合、前記保護すべきウェブページに対するセッションの1回目のアクセス時に前記ウェブクライアントに対して前記オースコードクッキーを発行すると共に、前記セッションの2回目以降のアクセス時に前記オースコードクッキーを参照して前記セッションを認証するステップとを有することを特徴とする請求項1記載のウェブサイトのための安全なセッション管理用プログラム。
【請求項3】
前記前処理を行うステップは、前記非保護の通信プロトコルと判別された場合、前記セッションを破棄するステップを有することを特徴とする請求項2記載のウェブサイトのための安全なセッション管理用プログラム。
【請求項4】
保護すべきウェブページ及び非保護のウェブページを有するウェブページから成るウェブサイトで用いられ、このウェブサイトへアクセスするウェブクライアントとの間の通信による一連のアクセスから成るセッションを管理する方法であって、
前記ウェブクライアントから前記ウェブページのアクセス要求を受けたときに、要求されたウェブページが前記非保護のウェブページの場合、当該ウェブページの処理を行うステップと、
要求されたウェブページが前記保護すべきウェブページの場合、当該ウェブページの処理を行う前にそのウェブページの処理とは独立して、secure属性を付加したオースコードクッキーに基づいて前記ウェブページに対するセッションを認証する処理を含む前処理を行うステップとを有することを特徴とするウェブサイトのための安全なセッション管理方法。
【請求項5】
前記前処理を行うステップは、
前記要求されたウェブページの通信で用いる通信プロトコルが保護された通信プロトコルか非保護の通信プロトコルかを判別するステップと、
前記保護された通信プロトコルと判別された場合、前記保護すべきウェブページに対するセッションの1回目のアクセス時に前記ウェブクライアントに対して前記オースコードクッキーを発行すると共に、前記セッションの2回目以降のアクセス時に前記オースコードクッキーを参照して前記セッションを認証するステップとを有することを特徴とする請求項4記載のウェブサイトのための安全なセッション管理方法。
【請求項6】
前記前処理を行うステップは、前記非保護の通信プロトコルと判別された場合、前記セッションを破棄するステップを有することを特徴とする請求項5記載のウェブサイトのための安全なセッション管理方法。
【請求項7】
保護すべきウェブページ及び非保護のウェブページを有するウェブページから成るウェブサイトで用いられ、このウェブサイトへアクセスするウェブクライアントとの間の通信による一連のアクセスから成るセッションを管理するシステムであって、
前記ウェブクライアントから前記ウェブページのアクセス要求を受けたときに、要求されたウェブページが前記非保護のウェブページの場合、当該ウェブページの処理を行う手段と、
前記要求されたウェブページが前記保護すべきウェブページの場合、当該ウェブページの処理を行う前にそのウェブページの処理とは独立して、secure属性を付加したオースコードクッキーに基づいて前記ウェブページに対するセッションを認証する処理を含む前処理を行う前処理手段とを有することを特徴とするウェブサイトのための安全なセッション管理システム。
【請求項8】
前記前処理手段は、
前記要求されたウェブページの通信で用いる通信プロトコルが保護された通信プロトコルか非保護の通信プロトコルかを判別する手段と、
前記保護された通信プロトコルと判別された場合、前記保護すべきウェブページに対するセッションの1回目のアクセス時に前記ウェブクライアントに対して前記オースコードクッキーを発行すると共に、前記セッションの2回目以降のアクセス時に前記オースコードクッキーを参照して前記セッションを認証する手段とを有することを特徴とする請求項7記載のウェブサイトのための安全なセッション管理システム。
【請求項9】
前記前処理手段は、前記非保護の通信プロトコルと判別された場合、前記セッションを破棄する手段を有することを特徴とする請求項8記載のウェブサイトのための安全なセッション管理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate