(57)【要約】本発明は、ウェブサイトとウェブクライアントとの間の安全なセッション管理および認証のためのシステムおよび方法を具備する。この方法は、保護された通信プロトコルおよび無保護の通信プロトコルの双方を含み、保護された通信プロトコルおよび無保護の通信プロトコルの切り替えのための手段、セッションクッキー、ならびにオースコードクッキーを含む。セッションクッキーはセッション管理のために用いられ、オースコードクッキーは認証のために用いられる。セッションクッキーは、ウェブクライアントが無保護のウェブページにアクセスする場合に無保護の通信プロトコルを用いて送信されるが、オースコードクッキーは、ウェブクライアントが保護されたウェブページにアクセスする場合に保護された通信プロトコルを用いて送信される。保護された通信プロトコルおよび無保護の通信プロトコルの双方と共に、セッション管理アーキテクチャおよび２つの別個のクッキーの使用によって、無許可のユーザが機密のウェブクライアントまたはウェブサイト情報にアクセスすることを防ぐ。【選択図】図１
2004514996.tif 000002
【特許請求の範囲】
【請求項１】
ウェブサイトとウェブクライアントとの間の安全なセッション管理および認証の方法であって、前記ウェブサイトは保護されたウェブページおよび無保護のウェブページを有し、前記方法は、
ａ）前記ウェブクライアントが前記無保護のウェブページに対するアクセスを要求した場合に無保護の通信プロトコルおよびセッションクッキーを利用するステップと、
ｂ）前記ウェブクライアントが前記保護されたウェブページに対するアクセスを要求した場合に保護された通信プロトコルおよびオースコードクッキーを利用するステップと、
を具備する、方法。
【請求項２】
前記方法は、更に、
ｃ）前記ウェブクライアントが前記無保護のウェブページに対するアクセスを要求した場合に前記ウェブクライアントから前記セッションクッキーを要求し、前記要求したセッションクッキーを検証するステップと、
ｄ）前記ウェブクライアントが前記保護されたウェブページに対するアクセスを要求した場合に前記ウェブクライアントから前記オースコードクッキーを要求し、前記要求したオースコードクッキーを検証するステップと、
を具備する、請求項１の方法。
【請求項３】
前記方法は、更に、前記ウェブクライアントが前記保護されたウェブページおよび前記無保護のウェブページに対するアクセスの要求を交互に行った場合、前記保護された通信プロトコルおよび前記無保護の通信プロトコルを交互に用いるステップを具備する、請求項２の方法。
【請求項４】
前記保護された通信プロトコルおよび前記無保護の通信プロトコルを交互に用いることは、前記無保護のウェブページおよび前記保護されたウェブページの状況を常に記録しているテーブルによって容易になる、請求項３の方法。
【請求項５】
前記ウェブクライアントが前記無保護のウェブページまたは前記保護されたウェブページのどちらに対するアクセスを要求したかに応じて、前記ウェブサイトは、前記テーブルを用いて、前記保護された通信プロトコルまたは前記無保護の通信プロトコルのいずれかを用いるように前記ウェブクライアントに指示する、請求項４の方法。
【請求項６】
前記方法は、更に、前記ウェブクライアントがゲストクライアントまたは登録クライアントになることを可能とするステップを具備する、請求項３の方法。
【請求項７】
前記方法は、更に、前記セッションクッキーに含まれるデータ、前記オースコードクッキーに含まれるデータ、および前記ウェブクライアントに関するデータを含む格納された情報を生成するステップを具備する、請求項６の方法。
【請求項８】
前記無保護の通信プロトコルはＨＴＴＰである、請求項３の方法。
【請求項９】
前記保護された通信プロトコルはＨＴＴＰＳである、請求項３の方法。
【請求項１０】
前記セッションクッキーはポインタおよび暗号化部分を含み、前記ポインタは前記格納された情報を示し、前記暗号化部分はランダムな部分および日付部分を有する、請求項７の方法。
【請求項１１】
前記セッションクッキーは一時的なクッキーまたは永久的なクッキーのいずれかである、請求項１０の方法。
【請求項１２】
前記オースコードクッキーは暗号化部分を含み、前記暗号化部分はランダムな部分および日付部分を有する、請求項７の方法。
【請求項１３】
前記オースコードクッキーは一時的なものである、請求項１２の方法。
【請求項１４】
前記ウェブクライアントから前記要求したセッションクッキーを検証するステップは、前記格納された情報を用いて第２のセッションクッキーを発生し、前記第２のセッションクッキーを前記ウェブクライアントから要求した前記セッションクッキーと比較することを含む、請求項１０の方法。
【請求項１５】
前記ウェブクライアントから前記要求したオースコードクッキーを検証するステップは、前記格納された情報を用いて第２のオースコードクッキーを発生し、前記第２のオースコードクッキーを前記ウェブクライアントから要求した前記オースコードクッキーと比較することを含む、請求項１２の方法。
【請求項１６】
ウェブサイトとウェブクライアントとの間の安全なセッション管理および認証のためのシステムであって、前記システムは、ウェブサーバと、ウェブクライアントと、通信チャネルとを具備し、前記ウェブサーバは前記通信チャネルを介して前記ウェブクライアントに結合され、前記ウェブサーバはウェブサイトを有し、前記ウェブサイトは、
ａ）保護されたウェブページおよび無保護のウェブページと、
ｂ）前記ウェブクライアントが前記無保護のウェブページにアクセスすることを可能とする無保護の通信プロトコルおよびセッションクッキーと、
ｃ）前記ウェブクライアントが前記保護されたウェブページにアクセスすることを可能とする保護された通信プロトコルおよびオースコードクッキーと、
を具備する、システム。
【請求項１７】
前記ウェブサイトは、更に、
ｄ）前記ウェブクライアントから前記セッションクッキーが要求された場合に前記セッションクッキーを検証するための検証手段と、
ｄ）前記ウェブクライアントから前記オースコードクッキーが要求された場合に前記オースコードクッキーを検証するための検証手段と、
を含む、請求項１６のシステム。
【請求項１８】
前記ウェブサーバは、更に、前記保護された通信プロトコルおよび前記無保護の通信プロトコルを交互に用いるためのセキュリティ交替手段を具備する、請求項１７のシステム。
【請求項１９】
前記ウェブサーバは、更に、前記無保護のウェブページおよび前記保護されたウェブページの状況を常に記録しておくためのテーブルを具備する、請求項１８のシステム。
【請求項２０】
前記ウェブサイトは、前記ウェブクライアントがゲストクライアントまたは登録クライアントとして前記ウェブサイトにアクセスすることを可能とするためのアクセス手段を含む、請求項１７のシステム。
【請求項２１】
前記ウェブシステムは、前記ウェブクライアントに関する格納された情報、前記セッションクッキーに含まれるデータ、および前記オースコードクッキーに含まれるデータを含むための記憶手段を有する、請求項２０のシステム。
【請求項２２】
前記無保護の通信プロトコルはＨＴＴＰである、請求項１８のシステム。
【請求項２３】
前記保護された通信プロトコルはＨＴＴＰＳである、請求項１８のシステム。
【請求項２４】
前記セッションクッキーはポインタおよび暗号化部分を含み、前記ポインタは前記格納された情報を示し、前記暗号化部分はランダムな部分および日付部分を有する、請求項２１のシステム。
【請求項２５】
前記セッションクッキーは一時的なクッキーまたは永久的なクッキーのいずれかである、請求項２４のシステム。
【請求項２６】
前記オースコードクッキーは暗号化部分を含み、前記暗号化部分はランダムな部分および日付部分を有する、請求項２１のシステム。
【請求項２７】
前記オースコードクッキーは一時的なものである、請求項２６のシステム。
【請求項２８】
コンピュータ読み取り可能媒体上で具現化されるコンピュータプログラムであって、前記コンピュータプログラムは、ウェブサイトとウェブクライアントとの間の安全なセッション管理および認証のために提供され、前記ウェブサイトは保護されたウェブページおよび無保護のウェブページを有し、前記コンピュータプログラムは、
ａ）前記ウェブクライアントが前記無保護のウェブページに対するアクセスを要求した場合に無保護の通信プロトコルおよびセッションクッキーを用い、
ｂ）前記ウェブクライアントが前記保護されたウェブページに対するアクセスを要求した場合に保護された通信プロトコルおよびオースコードクッキーを用いる、
ように適合されている、コンピュータプログラム。
【請求項２９】
前記コンピュータプログラムは、更に、
ｃ）前記ウェブクライアントが前記無保護のウェブページに対するアクセスを要求した場合に前記ウェブクライアントから前記セッションクッキーを要求し、前記要求したセッションクッキーを検証し、
ｄ）前記ウェブクライアントが前記保護されたウェブページに対するアクセスを要求した場合に前記ウェブクライアントから前記オースコードクッキーを要求し、前記要求したオースコードクッキーを検証する、
ように適合されている、請求項２８のコンピュータプログラム。
【請求項３０】
前記コンピュータプログラムは、更に、前記ウェブクライアントが前記保護されたウェブページおよび前記無保護のウェブページに対するアクセスの要求を交互に行った場合、前記保護された通信プロトコルおよび前記無保護の通信プロトコルを交互に用いるように適合されている、請求項２９のコンピュータプログラム。
【請求項３１】
前記保護された通信プロトコルおよび前記無保護の通信プロトコルを交互に用いることは、前記無保護のウェブページおよび前記保護されたウェブページの状況を常に記録しておくテーブルによって容易になる、請求項３０のコンピュータプログラム。
【請求項３２】
前記ウェブクライアントが前記無保護のウェブページまたは前記保護されたウェブページのどちらに対するアクセスを要求したかに応じて、前記コンピュータプログラムは、前記テーブルを用いて、前記保護された通信プロトコルまたは前記無保護の通信プロトコルのいずれかを用いるように前記ウェブクライアントに指示する、請求項３１のコンピュータプログラム。
【請求項３３】
前記コンピュータプログラムは、更に、前記ウェブクライアントがゲストクライアントまたは登録クライアントになることを可能とするように適合されている、請求項３０のコンピュータプログラム。
【請求項３４】
前記コンピュータプログラムは、更に、前記セッションクッキーに含まれるデータ、前記オースコードクッキーに含まれるデータ、および前記ウェブクライアントに関するデータを含む格納された情報を生成するように適合されている、請求項３３のコンピュータプログラム。
【請求項３５】
前記無保護の通信プロトコルはＨＴＴＰである、請求項３０のコンピュータプログラム。
【請求項３６】
前記保護された通信プロトコルはＨＴＴＰＳである、請求項３０のコンピュータプログラム。
【請求項３７】
前記セッションクッキーはポインタおよび暗号化部分を含み、前記ポインタは前記格納された情報を示し、前記暗号化部分はランダムな部分および日付部分を有する、請求項３４のコンピュータプログラム。
【請求項３８】
前記セッションクッキーは一時的なクッキーまたは永久的なクッキーのいずれかである、請求項３４のコンピュータプログラム。
【請求項３９】
前記オースコードクッキーは暗号化部分を含み、前記暗号化部分はランダムな部分および日付部分を有する、請求項３４のコンピュータプログラム。
【請求項４０】
前記オースコードクッキーは一時的なものである、請求項３９のコンピュータプログラム。
【請求項４１】
前記ウェブクライアントから前記要求したセッションクッキーを検証するステップは、前記格納された情報を用いて第２のセッションクッキーを発生し、前記第２のセッションクッキーを前記ウェブクライアントから要求した前記セッションクッキーと比較することを含む、請求項３７のコンピュータプログラム。
【請求項４２】
前記ウェブクライアントから前記要求したオースコードクッキーを検証するステップは、前記格納された情報を用いて第２のオースコードクッキーを発生し、前記第２のオースコードクッキーを前記ウェブクライアントから要求した前記オースコードクッキーと比較することを含む、請求項３９のコンピュータプログラム。
【請求項４３】
請求項１、２、３、６、および７のステップの全てを実行するように適合されたコンピュータコード手段を具備する、コンピュータプログラム。
【請求項４４】
コンピュータ読み取り可能媒体上に具現化された、請求項４３に記載のコンピュータプログラム。
【請求項４５】
セッションクッキーにおいてＮＡＭＥ属性を生成するためのコンピュータプログラムであって、前記コンピュータプログラムは、
ａ）ｕｓｅｒ＿ｉｄを発生するステップと、
ｂ）ｓｅｓｓｉｏｎ＿ｓｔｒｉｎｇを発生するステップと、
ｃ）ｓｅｓｓｉｏｎ＿ｔｉｍｅｓｔａｍｐを発生するステップと、
ｄ）前記ｓｅｓｓｉｏｎ＿ｔｉｍｅｓｔａｍｐを前記ｓｅｓｓｉｏｎ＿ｓｔｒｉｎｇの最後に追加して中間値を生成するステップと、
ｅ）前記中間値に一方向ハッシュ関数を適用して最終値を生成するステップと、
ｆ）前記最終値を前記ＮＡＭＥ属性に格納するステップと、
を具備する、コンピュータプログラム。
【請求項４６】
前記セッションクッキーにおいて、ＰＡＴＨ属性、ＥＸＰＩＲＥＳ属性、ＤＯＭＡＩＮ属性、およびＳＥＣＵＲＥ属性を生成するステップは、
ａ）前記ＰＡＴＨ属性にスラッシュ
【数１】
2004514996.tif 000012
は、以降Ｏ ｇｒａｖｅ／Ｏ ａｃｕｔｅと記載する。
を格納するステップと、
ｂ）前記ＥＸＰＩＲＥＳ属性にヌルストリング
【数２】
2004514996.tif 000013
は、以降Ｏ ｇｒａｖｅ Ｏ ａｃｕｔｅと記載する。
を格納するステップと、
ｃ）前記ＤＯＭＡＩＮ属性にヌルストリングＯ ｇｒａｖｅ Ｏ ａｃｕｔｅを格納するステップと、
ｄ）前記ＳＥＣＵＲＥ属性にヌルストリングＯ ｇｒａｖｅ Ｏ ａｃｕｔｅを格納するステップと、
を具備する、請求項４５のコンピュータプログラム。
【請求項４７】
オースコードクッキーにおいてＮＡＭＥ属性を生成するためのコンピュータプログラムであって、前記コンピュータプログラムは、
ａ）ａｕｔｈｃｏｄｅを発生するステップと、
ｂ）ａｕｔｈｃｏｄｅ＿ｔｉｍｅｓｔａｍｐを発生するステップと、
ｃ）前記ａｕｔｈｃｏｄｅ＿ｔｉｍｅｓｔａｍｐを前記ａｕｔｈｃｏｄｅの最後に追加して中間値を生成するステップと、
ｄ）前記中間値に一方向ハッシュ関数を適用して最終値を生成するステップと、
ｅ）前記最終値を前記ＮＡＭＥ属性に格納するステップと、
を具備する、コンピュータプログラム。
【請求項４８】
前記オースコードクッキーにおいて、ＰＡＴＨ属性、ＥＸＰＩＲＥＳ属性、ＤＯＭＡＩＮ属性、およびＳＥＣＵＲＥ属性を生成するステップは、
ａ）前記ＰＡＴＨ属性にスラッシュＯ ｇｒａｖｅ／Ｏ ａｃｕｔｅを格納するステップと、
ｂ）前記ＥＸＰＩＲＥＳ属性にヌルストリングＯ ｇｒａｖｅ Ｏ ａｃｕｔｅを格納するステップと、
ｃ）前記ＤＯＭＡＩＮ属性にヌルストリングＯ ｇｒａｖｅ Ｏ ａｃｕｔｅを格納するステップと、
ｄ）前記ＳＥＣＵＲＥ属性にストリング
【数３】
2004514996.tif 000014
を格納するステップと、
を具備する、請求項４７のコンピュータプログラム。
【請求項４９】
コンピュータプログラムプロダクトであって、
コンピュータ読み取り可能信号記録媒体と、
請求項１ないし１５のいずれかの方法を達成するための前記媒体における手段と、
を具備する、コンピュータプログラムプロダクト。
【請求項５０】
前記媒体は記録可能データ記憶媒体である、請求項４９のプロダクト。
【請求項５１】
前記媒体は変調された搬送信号である、請求項４９のプロダクト。
【請求項５２】
前記信号はネットワーク上の送信である、請求項５１のプロダクト。
【請求項５３】
前記ネットワークはインターネットである、請求項５２のプロダクト。
【発明の詳細な説明】
【発明の属する技術分野】
【０００１】
本発明は、ウェブサイトとウェブクライアントとの間の通信に関し、具体的には、ウェブサイトとウェブクライアントとの間のセッションのための、保護された通信プロトコルおよび無保護の通信プロトコルを用いたセッション管理および認証手段に関する。
【従来の技術】
【０００２】
多くの企業は、費用を減らし、自社のサービスまたは製品を幅広い消費者層に宣伝するための方法として、インターネットを導入している。これらの企業（すなわちウェブ商人）は、オンラインショッピングのウェブサイトを設置して、情報またはソフトウエア等の非耐久財、および／または耐久消費財等を販売している。これは、オンラインで簡単に買い物ができるため、ますますインターネットを用いるようになっている多くの消費者（すなわちウェブクライアント）にとって利益となる。実際、ウェブ商人とウェブクライアントとの間のオンライントランザクションは、ますます多くなっている。
【０００３】
電子商取引は便利であるが、ウェブクライアントのウェブブラウザと電子商取引ウェブサイトとの間の通信がＨＴＴＰ（ハイパーテキスト転送プロトコル）に基づいているので、問題が無いわけではない。ＨＴＴＰは、ステートレスである。これは、ＨＴＴＰプロトコルが、ある訪問から次の訪問までウェブクライアントに関する情報を維持しないということを意味する。結果として、電子商取引ウェブサイトは、後日再び訪れるウェブクライアントを覚えておくための処置を取らなければならない。別の問題は、ＨＴＴＰが安全でないことであり、これは厄介である。なぜなら、ウェブクライアントが製品の支払いをして受け取るためにクレジットカード番号または口座番号等の機密情報を提供しなければならないからである。無許可のユーザが、この機密情報を盗むために、ＨＴＴＰ通信を注視している可能性がある。そして、無許可のユーザは、ウェブクライアントのアイデンティティのもとで商品を注文し、その商品を異なる住所に送るよう要求したり、住所およびクレジットカード情報等の機密性の高いウェブクライアントのデータにアクセスしたりする恐れがある。
【０００４】
これらの問題を解決するため、電子商取引ウェブサイトは、ウェブクライアントとの対話を続けつつ、認証およびセッション管理を可能としなければならない。更に、ウェブクライアントと電子商取引ウェブサイトとの間で機密情報を送信する場合、保護された通信プロトコルを用いなければならない。セッション管理によって、ウェブサイトは、異なるログインセッション間でウェブクライアントを覚えておくことができ、一方、認証は、あるウェブサイトに最初にログオンした同じウェブクライアントから要求が来たことをウェブサイトに保証するセキュリティ対策である。保護された通信プロトコルは、電子商取引ウェブサイトとウェブクライアントとの間で送信されるデータを暗号化する。認証およびセッション管理を達成するため、ＨＴＴＰベーシック認証、名前−値ペア認証、またはセッションクッキーを利用することができる。
【０００５】
ＨＴＴＰベーシック認証では、ウェブクライアントは必ずセッション管理の前にログオンする必要がある。このため、ウェブクライアントが最初にウェブサイトにアクセスした時に、ログインウインドウがパッと開かれる。このログインウインドウは、ウェブサイト管理者によってカスタマイズすることが容易でない。このように、ウェブサーバがウェブクライアントにログオンを強制するので、保護されたウェブページへのゲストクライアントのアクセスはサポートされない。この結果、ほとんどの電子商取引ウェブサイトは、ＨＴＴＰベーシック認証を用いていない。
【０００６】
名前−値ペア認証は、あらゆるＵＲＬ（ユニフォームリソースロケーター）内または電子商取引ウェブサイト上のあらゆるウェブページのデータ内にセキュリティ情報を埋め込むことを伴っている。
【０００７】
この結果、ウェブサイト開発者は、あるウェブページから別のものへ認証データを移すことによって各ウェブページごとに認証を処理する必要がある。この認証データは、ウェブクライアントが保護されたウェブページから無保護のウェブページにジャンプする場合、簡単に喪失する恐れがある。また、名前−値ペアでは、保護されたウェブページにアクセスする場合にウェブサーバがウェブクライアントに登録またはログオンすることを強制するので、保護されたウェブページへのゲストクライアントのアクセスはサポートされない。また、認証データは、ウェブページＵＲＬの最後に追加されると、安全でない。なぜなら、これは、ウェブサーバのログであらわになったり、またはウェブクライアントのウェブブラウザ上に表示されたりする場合があるからである。更に、ウェブページデータに含まれる認証データは、ウェブブラウザのキャッシュファイルを閲覧することで見られる恐れがあるので、安全でない。
【０００８】
クッキーは、ウェブサイトとウェブクライアントとの間のセッション管理および認証のための最も普及した方法である。クッキーは、ウェブクライアントのコンピュータ上に格納され、検索される。永久クッキーは、コンピュータのハードドライブ上に格納され、一方、一時クッキーは、揮発性メモリに格納され、いったんウェブセッションが終了すると消去される。Ｎｅｔｓｃａｐｅ　Ｎａｖｉｇａｔｏｒ（登録商標）のウェブブラウザは、永久クッキーを、テキストファイルに（すなわちｃｏｏｋｉｅ．ｔｘｔ）、各クッキーにファイルの１行を用いて格納し、一方、Ｍｉｃｒｏｓｏｆｔ　Ｉｎｔｅｒｎｅｔ　Ｅｘｐｌｏｒｅｒ（登録商標）のウェブブラウザは、各永久クッキーごとに別個のテキストファイルを用いる。クッキーは、ウェブクライアントが最後にどのウェブページにアクセスしたか等、ウェブクライアントに関する有益な情報をウェブサーバに提供するように設計されている。また、クッキーを用いて、あるウェブサイトにおける何らかの所定のレベルのウェブクライアントアクセスおよびカスタマイゼーションを提供することができる。また、クッキーは、クッキーが有効であるＵＲＬ集合の記述を含む。将来、ウェブクライアントによって、あるクッキーに含まれるＵＲＬ集合と一致するＨＴＴＰ要求が行われると、これは、ウェブクライアントからウェブサーバへのクッキーの現在値の返信を含むはずである。
【０００９】
初めてウェブクライアントがウェブサーバから情報を要求し、これがクッキーを利用する時、ウェブサーバは、要求された情報をクッキーと共に送る。クッキーは、ウェブサーバからウェブクライアントへ、ＨＴＴＰ応答の一部としてＳｅｔ−Ｃｏｏｋｉｅヘッダを含むことで送信される。Ｓｅｔ−Ｃｏｏｋｉｅヘッダは、ＣＧＩスクリプトによって生成され、以下の属性を含む。すなわち、ＮＡＭＥ、ＤＡＴＥ、ＰＡＴＨ、ＤＯＭＡＩＮ、およびＳＥＣＵＲＥである。ＮＡＭＥ属性は、ウェブクライアントに関するデータを含み、ウェブサイトによって用いられる。１つのクッキー内に多くのＮＡＭＥ属性がある可能性があり、単一のウェブサーバ応答で多くのＳｅｔ−Ｃｏｏｋｉｅヘッダを発行することができる。ＤＡＴＥ属性は、クッキーの期限が切れる時を示す日付を規定する。ＰＡＴＨ属性は、クッキーが有効であるドメインにおけるＵＲＬサブセットを規定する。ＤＯＭＡＩＮ属性は、ウェブサイトのインターネットドメイン名である。ＳＥＣＵＲＥ属性は、クッキーを送信する条件を示す。例えば、クッキーのＳＥＣＵＲＥ属性に保護されていると示されていれば、これは、ウェブサーバとウェブクライアントとの間の通信チャネルが保護されている場合にのみ送信される。
【００１０】
クッキーに基づくセッション管理は、無許可のユーザがクッキーに含まれる機密データを盗むのを防止するための保護された通信プロトコルを取り入れなければならない。そのようなプロトコルの１つは、ＨＴＴＰＳ（ＨＴＴＰ　ｏｖｅｒ　ＳＳＬ）である。頭字語ＳＳＬは、Ｓｅｃｕｒｅ　Ｓｏｃｋｅｔ　Ｌａｙｅｒ（セキュアソケットレイヤ）プロトコルを表し、これは、ＨＴＴＰを用いつつ安全に情報を送信するための業界標準である。ＨＴＴＰＳは、ウェブサーバの認証（ウェブサーバのアイデンティティをウェブクライアントに対して検証する）、データ暗号化、およびウェブクライアントの認証（ウェブクライアントのアイデンティティをウェブサーバに対して検証する）のための機能を含む。ＨＴＴＰＳを使用可能な各ウェブサーバには、一意のキーおよびデータ暗号化を利用するコーダおよびデコーダの双方がインストールされている。単語および数字を一連の英数字に変換するデータ暗号化は、ウェブ商人に使用を許可されたウェブサーバに付属しているデコーダによってのみ解読することができる。セキュリティのレベルは、４０または１２８ビットのキーのどちらを用いるかによって異なる。コード（またはキー）を解読する難しさは、キーに含まれるビット数と共に増大する。クッキーに基づくセッション管理および認証方式は、従来技術において説明されている。
【００１１】
米国特許第５，８７５，２９６号は、ウェブサイトを介した分散ファイルシステムへの安全なアクセスを提供する方法を開示する。この方法は、分散ファイルシステムのファイルにアクセスするために、ユーザ識別子を含む単一のクッキーを利用する。このクッキーによって、ユーザは、分散ファイルシステム上の情報にアクセスするたびにユーザＩＤおよびパスワードを再入力する必要を回避することができる。また、この方法は、分散ファイルシステムに特化したものであり、保護された通信プロトコルを用いていない。
【００１２】
米国特許第６，０４７，２６８号は、オンラインで買い物をするウェブクライアントを認証するためのシステムおよび方法を開示する。認証は、単一のクッキーによって提供される。このクッキーは、ウェブクライアントの口座番号を識別する静的部分と、ウェブクライアントによる最後のトランザクションを識別する暗号化された動的部分とを含む。このクッキーは、新たなトランザクションが各々行われた後に、新たな動的部分によって更新されるが、この特許は、クッキー内の機密情報を用いること、および、ウェブクライアントのコンピュータシステム上に永久クッキーを格納することを開示する。更に、この特許で開示された電子商取引方法は、ゲストクライアントがオンラインショッピングを行うことができるのに十分なほど柔軟ではない。ウェブクライアントは全て、オンラインで買い物をするために登録しなければならない。米国特許第６，０４７，２６８号は、ＨＴＴＰＳの使用を開示するが、ＨＴＴＰＳを排他的に用いるか否か、またはＨＴＴＰＳとＨＴＴＰとの間で通信プロトコルを切り替えるのか否かについては、述べていない。
【００１３】
米国特許第６，０７６，０６９号は、電子クーポンを引き換えるシステムおよび方法を開示する。ウェブクライアントが、ウェブ商人からの販売促進の物品を宣伝するウェブサイトを訪れた場合、ウェブクライアントのコンピュータシステム上に、クッキーの形態でクーポンを格納する。ウェブクライアントが後にそのウェブ商人のウェブサイトを訪れると、ウェブサイトは、クッキーに格納された電子クーポンを認識し、ウェブクライアントに割引を提供する。この特許は、保護された通信プロトコルの使用について教示していない。更に、この特許は、ウェブクライアントの口座番号等のクッキー内の機密情報の使用、および、永久クッキーの使用（すなわち、クッキーをウェブクライアントのコンピュータシステム上に永久に格納する）を開示する。これらの特徴は双方とも、セキュリティ上の問題を引き起こす。
【００１４】
ＨＴＴＰＳだけを独占的に用いると、ウェブページにアクセスするたびに符号化および復号化を行うので、性能の低下を引き起こす。これは非効率的である。なぜなら、ウェブクライアントから偶発的に多くの訪問を受ける製品カタログのウェブページ等、多くのウェブページは、プロテクトを必要としないからである。更に、ウェブサイトのホームページＵＲＬにＨＴＴＰＳを用いることは、ウェブクライアントにとって不都合となる恐れがある。なぜなら、ウェブクライアントは、ウェブサイトのＵＲＬにおいて「ｈｔｔｐ」の代わりに「ｈｔｔｐｓ」を用いることに慣れていないからである。更に、ＨＴＴＰとＨＴＴＰＳとの間の切り替えが厄介である場合がある。なぜなら、現在、ウェブクライアントがＨＴＴＰＳを用いてウェブサイトにログオンすると、ウェブクライアントを認証するためにクッキーを発行するが、もしウェブクライアントが後にＨＴＴＰを用いてそのウェブサイトで無保護のウェブページをブラウズすると、同じクッキーがクリアなテキストでウェブクライアントに送信されるからである。この時、無許可のユーザがクッキーを盗む恐れがある。従って、こういった状況で単一のクッキーを用いると、ウェブサイトのセキュリティが脅かされる。
【発明が解決しようとする課題】
【００１５】
従って、クッキーを用いて、無許可のユーザからウェブサイトおよびウェブクライアントの双方を守る、改良された安全なセッション管理および認証方法が必要とされている。本発明は、これらの必要性に対処する。
【発明を解決するための手段】
【００１６】
本発明は、ウェブサイトとウェブクライアントとの間の安全なセッション管理および認証のための方法を提供する。ウェブサイトは、保護されたウェブページおよび無保護のウェブページを有する。この方法は、ウェブクライアントが無保護のウェブページに対するアクセスを要求した場合に無保護の通信プロトコルおよびセッションクッキーを利用するステップと、ウェブクライアントが保護されたウェブページに対するアクセスを要求した場合に保護された通信プロトコルおよびオースコードクッキーを利用するステップと、を有する。
【００１７】
好ましくは、この方法は、更に、ウェブクライアントが無保護のウェブページに対するアクセスを要求した場合にウェブクライアントからセッションクッキーを要求し、要求したセッションクッキーを検証するステップと、ウェブクライアントが保護されたウェブページに対するアクセスを要求した場合にウェブクライアントからオースコードクッキーを要求し、要求したオースコードクッキーを検証するステップと、を含む。
【００１８】
好ましくは、この方法は、更に、ウェブクライアントが保護されたウェブページおよび無保護のウェブページに対するアクセスの要求を交互に行った場合、保護された通信プロトコルおよび無保護の通信プロトコルを交互に用いるステップを含む。
【００１９】
別の態様では、本発明は、ウェブサイトとウェブクライアントとの間の安全なセッション管理および認証のためのシステムである。このシステムは、ウェブサーバ、ウェブクライアント、および通信チャネルを含む。ウェブサーバは、通信チャネルを介してウェブクライアントに結合されている。ウェブサーバはウェブサイトを含み、このウェブサイトは、保護されたウェブページおよび無保護のウェブページと、ウェブクライアントが無保護のウェブページにアクセスすることを可能とする無保護の通信プロトコルおよびセッションクッキーと、ウェブクライアントが保護されたウェブページにアクセスすることを可能とする保護された通信プロトコルおよびオースコードクッキーと、を有する。
【００２０】
好ましくは、ウェブサイトは、更に、ウェブクライアントから要求されたセッションクッキーを検証するための検証手段と、ウェブクライアントから要求されたオースコードクッキーを検証するための検証手段と、を含む。
【００２１】
好ましくは、ウェブサーバは、更に、保護された通信プロトコルおよび無保護の通信プロトコルを交互に用いるためのセキュリティ交替手段を含む。
【００２２】
記憶装置に格納可能な、またはコンピュータシステムにおいて用いる変調された搬送信号上もしくはコンピュータシステムにおいて用いるインターネット等のネットワーク上等で信号として送信可能なコンピュータプログラムにおいて、本発明を具現化することができることは、当業者に理解されよう。
【００２３】
本発明をより良く理解するため、および、本発明をどのように実施可能であるかをよりいっそう明確に示すため、一例として添付図面を参照する。
【発明の実施の形態】
【００２４】
図１に、本発明による保護されたセッション管理システムを、全体的に１０として示す。システム１０は、ウェブサーバ１２、通信チャネル１４、およびウェブクライアント１６を備える。ウェブサーバ１２は、ウェブサイト２０を生成し維持するためのウェブサーバソフトウエアパッケージ１８を含む。ウェブサイト２０は、ウェブページ２２、データベース２４、およびクッキー発生器２６を含む。ウェブページ２２は、タイプＩウェブページ２８およびタイプＩＩウェブページ３０を備える。タイプＩＩウェブページ３０は、更に、タイプＩＩａウェブページ３２およびタイプＩＩｂウェブページ３４に細分される。データベース２４は、ウェブサイト２０の適正な動作のために必要なテーブルを備えるが、本発明の対象となるテーブルは、ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６およびＵＲＬ＿ＲＥＧＩＳＴＲＹテーブル３８である。クッキー発生器２６は、セッションクッキー４０およびオースコードクッキー４２を生成することができる。ウェブクライアント１６は、ゲストクライアント４４または登録クライアント４６のいずれかとして考えられ、ウェブサイト２０とのセッションを維持する。これより後、本明細書および特許請求の範囲において、「ウェブクライアント」という言葉は、ゲストクライアント４４または登録クライアント４６のいずれかを指す。複数のウェブクライアント１６が同時にウェブサイト２０にアクセスすることもあり得るが、簡略化のため、図１には１つのみのウェブクライアント１６を示す。当業者には理解されようが、ウェブクライアント１６は、更に、ウェブクライアント１６がウェブサイト２０のコンテンツにアクセスしこれを見ることを可能とするためのウェブブラウザ（図示せず）を備える。
【００２５】
通信チャネル１４は、ウェブクライアント１６をウェブサーバ１２に結合し、好ましくは、インターネット等の、ＴＣＰ／ＩＰ（伝送通信プロトコル／インターネットプロトコル）に基づくネットワークである。ＴＣＰ／ＩＰは、協働するコンピュータがネットワークを介してリソースまたはデータを共有することを可能とするプロトコルファミリである。当業者には認められようが、ウェブクライアント１６は、複数の手段のいずれかを用いて通信チャネル１４に接続することができる。例えば、ウェブクライアント１６は、電話、ケーブル、または無線モデムを通じて、インターネットアクセスプロバイダを介して通信チャネル１４に接続することができる。あるいは、ケーブルＴＶネットワークまたは別のアクセス媒体を介して接続を行うことも可能である。また、通信チャネル１４は、インターネットに直接接続されたイントラネット、ローカルエリアネットワーク、またはワイドエリアネットワークである場合もある。
【００２６】
ウェブサーバ１２は、標準的なアプリケーションプロトコルであるＨＴＴＰ（ハイパーテキスト転送プロトコル）を用いて、ウェブクライアント１６が、ウェブサイト２０上に位置するウェブページ２２、ファイル、または他のデータにアクセスすることを可能とする。ウェブページ２２は、業界標準のウェブページ記述言語であるＨＴＭＬ（ハイパーテキストマークアップ言語）フォーマットである。ＨＴＭＬは、基本的な文書フォーマッティングを提供し、これによって、ウェブサーバ１２は、他のウェブサイトおよび／またはファイルへのリンクを規定することができる。あるいは、ウェブページ２２に、ＡＳＰ（アクティブサーバページ）またはＪＳＰ（Ｊａｖａ（Ｒ）サーバページ）等の他のフォーマットも用いることができる。また、ウェブサーバ１２は、ウェブサイト２０の生成および維持に役立つウェブサーバソフトウエアパッケージ１８を含む。かかるウェブサーバソフトウエアパッケージ１８の１つは、ＩＢＭ社が販売するＷＣＳ　Ｖｅｒｓｉｏｎ５．１（登録商標）である。
【００２７】
ウェブサイト２０は、タイプＩウェブページ２８およびタイプＩＩウェブページ３０を含む。タイプＩウェブページ２８は、全てのウェブクライアント１６について同一であり、静的ウェブページおよびいくつかの動的に発生したウェブページを含む。一方、タイプＩＩウェブページ３０は、所与のウェブクライアント１６に固有のものであり、ショッピングカートウェブページおよび課金情報ウェブページを含む。ショッピンカートウェブページは、ウェブクライアント１６がもうすぐ行う買い物についての詳細を含み、課金情報ウエブページは、住所情報等のウェブクライアントの情報を含む。タイプＩＩウェブページ３０は、更に、タイプＩＩａウェブページ３２およびタイプＩＩｂウェブページ３４に細分することができる。タイプＩＩａウェブページ３２は、保護されたウェブページであり、無許可のユーザから守る必要がある機密情報を含み、一方、タイプＩＩｂウェブページ３４は、無許可のユーザから守るほど重要ではない情報を含むので、無保護のウェブページである。タイプＩＩａウェブページ３２とタイプＩＩｂウェブページ３４との間の境界は、明確でなく、ウェブサイト２０の管理者が規定するセキュリティ方針に依存する。例示の目的のため、タイプＩＩａウェブページ３２の一例は、クレジットカード入力ウェブページであり、タイプＩＩｂウェブページ３４の一例は、製品説明ウェブページである。
【００２８】
本発明の好適な実施形態では、データベース２４は、リレーショナルデータベースであり、ウェブサイト２０の管理および動作に必要な複数のテーブルを含む。当業者には理解されるように、データベース２４は、ウェブサイト２０上に常駐している必要はなく、実際、複数のシステム上の複数のファイルから成る場合がある。更に、オブジェクト指向データベース、ネットワークデータベース、階層データベース、またはフラットファイル集合等の、多くのタイプのデータベース構造を利用可能であることを、当業者は理解するだろう。
【００２９】
本発明では、データベース２４は、認証およびセッション管理の目的のために、ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６およびＵＲＬ＿ＲＥＧＩＳＴＲＹテーブル３８を含む。ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６は、ウェブクライアント１６のためのセッション情報を管理するために用いられ、一方、ＵＲＬ＿ＲＥＧＩＳＴＲＹテーブル３８は、ウェブクライアント１６がウェブサイト２０上の特定のウェブページ２２に対するアクセスを要求した場合に、保護された通信プロトコルまたは無保護の通信プロトコルのどちらが必要であるかを判定するために用いられる。
【００３０】
ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６内の各レコードは、個別のウェブクライアント１６に関する情報を含む。この情報は、ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６に含まれる複数のフィールドに格納される（参照：図２）。本発明の好適な実施形態では、これらのフィールドは、ＵＳＥＲ＿ＩＤ５０、ＳＥＳＳＩＯＮ＿ＩＤ５２、ＳＥＳＳＩＯＮ＿ＴＩＭＥＳＴＡＭＰ５４、ＡＵＴＨＣＯＤＥ５６、ＡＵＴＨＣＯＤＥ＿ＴＩＭＥＳＴＡＭＰ５８、ＵＳＥＲ＿ＴＹＰＥ６０、ＬＯＧＩＮ＿ＩＤ６２、およびＰＡＳＳＷＯＲＤ６４である。個々のウェブクライアント１６について、ＵＳＥＲ＿ＩＤ５０は、ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６においてウェブクライアント１６を識別するための一意のキー値を含む。ＳＥＳＳＩＯＮ＿ＩＤ５２は、ウェブクライアント１６とウェブサイト２０との間の現在のウェブセッションを識別するためのストリングを含む。ＳＥＳＳＩＯＮ＿ＴＩＭＥＳＴＡＭＰ５４は、セッションクッキー４０が生成または変更された時を示すタイムスタンプを含む。ＡＵＴＨＣＯＤＥ５６は、ウェブクライアント１６のためのオースコード（すなわち認証コード）を含む。ＡＵＴＨＣＯＤＥ＿ＴＩＭＥＳＴＡＭＰ５８は、オースコードクッキー４２が生成または変更された時を示すタイムスタンプを含む。ＵＳＥＲ＿ＴＹＰＥ６０は、クライアント１６がゲストクライアント４４または登録クライアント４６のどちらであるかを示す。ウェブクライアント１６がウェブサイト２０に登録している場合、ＬＯＧＩＮ＿ＩＤ６２はログインＩＤを含み、ＰＡＳＳＷＯＲＤ６４はパスワードを含む。あるいは、ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６に他のフィールドを追加して、ウェブクライアント１６に関する更に別の情報を提供したり、よりいっそうの機能性を提供したり、またはウェブサイト２０にこれ以上の高レベルのセキュリティを提供したりすることも可能である。
【００３１】
ＵＲＬ＿ＲＥＧＩＳＴＲＹテーブル３８内の各レコードは、ウェブサイト２０上の異なるウェブページ２２に関する情報を含む。ここで図３を参照すると、ＵＲＬ＿ＲＥＧＩＳＴＲＹテーブル３８に含まれると好ましいフィールドは、ＵＲＬ＿ＡＤＤＲＥＳＳ７０およびＨＴＴＰＳ＿ＦＬＡＧ７２である。ウェブサイト２０上の個々のウェブページ２２について、ＵＲＬ＿ＡＤＤＲＥＳＳ７０は、ウェブページ２２のＵＲＬアドレスを含み、ＨＴＴＰＳ＿ＦＬＡＧ７２は、ウェブページ２２が保護された通信プロトコルを必要とする場合は１の値、またはウェブページ２２が保護された通信プロトコルを必要としない場合は０の値を含む。あるいは、ＵＲＬ＿ＲＥＧＩＳＴＲＹテーブル３８に他のフィールドを追加して、ウェブページ２２に関する更に別の情報を提供したり、またはウェブサイト２０のセキュリティレベルを高めたりすることも可能である。
【００３２】
ウェブサーバ１２によって、ウェブクライアント１６は、ウェブサイト２０にアクセスしながら、ゲストクライアント４４または登録クライアント４６のいずれかとなることができるが、ウェブクライアント１６は、ウェブサイト２０にアクセスするたびにデフォルトでゲストクライアント４４となる。単にウェブサイト２０をブラウズしたいか、または一度買い物をしてその後は二度とウェブサイト２０にアクセスしないウェブクライアント１６のために、ウェブサイト２０は、匿名のゲストクライアントステータスを認める。ゲストクライアント４４は、ウェブサイト２０のためのログインＩＤもパスワードも必要としないが、ゲストクライアント４４は、ウェブサイト２０をブラウズし、保護されたウェブページおよび無保護のウェブページの双方にアクセスし、製品を注文することができる。ゲストクライアント４４は、ウェブサイト２０で買い物をするたびに、配達先住所およびクレジットカード番号等のクライアントに固有の情報をたびたび再入力しなければならない。更に、ゲストクライアント４４は、ウェブサイト２０を再び訪れることも、以前の買い物（すなわち注文履歴）に関して問い合わせることもできない。
【００３３】
登録クライアント４６は、ウェブサイト２０に登録し、登録クライアントとしてログインしているウェブクライアント１６である。登録クライアントは、カスタマイズしたオンラインショッピング経験についてカスタマイズした明細を設定することができる。ゲストクライアント４４は、登録フォーム（これは、ウェブサイト２０の管理者によってカスタマイズすることができる）に記入することによって登録をすることができる。登録フォームは、ウェブクライアントの名前、住所、電子メールアドレス、好ましい支払方法、ログインＩＤおよびパスワード、ならびに他の情報を要求する場合がある。この情報は、後に検索または変更を行うため、データベース２４内の、ウェブクライアント情報を含むテーブルに格納される。また、登録クライアント４６に固有のクレジットカード情報も、データベース２４に格納する。この情報を格納することによって、登録クライアント４６は、買い物のたびにクレジットカード番号を再入力する必要がなくなる。
【００３４】
ウェブサーバ１２は、ウェブサーバ１２とウェブクライアント１６との間で送信されるセッションクッキー４０およびオースコードクッキー４２を生成するクッキー発生器２６を有する。セッションクッキー４０を送信する場合、通信プロトコルはＨＴＴＰまたはＨＴＴＰＳのいずれかとすることができるが、オースコードクッキー４２を送信する場合、通信プロトコルはＨＴＴＰＳでなければならない。好適な実施形態では、ウェブサイト２０は、保護された通信プロトコルとして、４０または１２８ビットのキーのいずれかによってＨＴＴＰＳを利用する。ウェブサイト２０の管理者は、どちらのキーサイズを用いるかを決定する。好ましくは、１２８ビットのキーを用いるものとする。キーサイズを４０または１２８ビットに制限することは発明者の意図ではなく、発明の時点で用いられている一般的な技術に基づいた提案である。ＨＴＴＰＳは、Ｎｅｔｓｃａｐｅ　Ｎａｖｉｇａｔｏｒ（登録商標）、Ｓｅｃｕｒｅ　Ｍｏｓａｉｃ（登録商標）、およびＭｉｃｒｏｓｏｆｔ　Ｉｎｔｅｒｎｅｔ　Ｅｘｐｌｏｒｅｒ（登録商標）等、多くのウェブブラウザ上で実現される。また、ＨＴＴＰＳは、Ｎｅｔｓｃａｐｅ、Ｍｉｃｒｏｓｏｆｔ、およびＩＢＭ　Ｑｕａｒｔｅｒｄｅｃｋによって製造されるウェブサーバ上で実現される。
【００３５】
セッションクッキー４０はセッション管理を担い、一方、オースコードクッキー４２は認証を担う。好適な実施形態では、セッションクッキー４０およびオースコードクッキー４２は一時的なクッキーであり、ウェブクライアント１６がウェブブラウザを閉じた場合に消去される。あるいは、セッションクッキー４０を、ウェブクライアント１６のコンピュータシステム上に永久に格納するように規定することも可能であるが、オースコードクッキー４２は、セキュリティ上の理由のため、必ず一時的なものとする。
【００３６】
先に説明したように、クッキーは以下の属性を備える。すなわち、ＮＡＭＥ、ＤＡＴＥ、ＰＡＴＨ、ＤＯＭＡＩＮ、およびＳＥＣＵＲＥである。セッションクッキー４０のＮＡＭＥ属性で用いられるデータは、好ましくは、ＵＳＥＲ＿ＩＤ５０、ＳＥＳＳＩＯＮ＿ＩＤ５２、およびＳＥＳＳＩＯＮ＿ＴＩＭＥＳＴＡＭＰ５４に含まれるデータから成る。所望の場合は、他の任意選択的な情報（図示せず）をセッションクッキー４０のＮＡＭＥ属性に含ませることも可能である。ＵＳＥＲ＿ＩＤ５０からのデータは、ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６に格納されたウェブクライアント１６のためのデータにアクセスするのに用いられる一意のキーである。ＳＥＳＳＩＯＮ＿ＩＤ５２は、暗号乱数発生器によってランダムに発生されるストリングである。暗号乱数発生器は、発生する数の値を誰も予測することができないという極めて重要な特性を有する。本発明の好適な実施形態では、暗号乱数発生器は、あらゆる市販のＣコンパイラにおいて利用可能なＣ標準ライブラリにおけるｒａｎｄ（）関数である。ｒａｎｄ（）関数は数を発生するだけであるが、ランダムに発生した数を２６で除算し、この除算動作の余りをアルファベットの文字にマッピングし、これによって、余り０が文字Ａにマッピングされ、余り１が文字Ｂにマッピングされ、余り２が文字Ｃにマッピングされる等とすることで、ランダムに発生した数をアルファベットの文字にマッピングすることによって、ランダムなストリングも発生することができる。例示の目的のためであるが、１０文字を有するストリングが望ましい場合、２６で除算してその余りを文字にマッピングするというこの数発生プロセスを１０回繰り返す。ＳＥＳＳＩＯＮ＿ＴＩＭＥＳＴＡＭＰ５４からのデータは、セッションクッキー４０を生成または変更した時を示すタイムスタンプであり、これは、ウェブクライアント１６がゲストクライアント４４としてログオンし、登録して登録クライアント４６になるか、または登録クライアント４６としてログオンする場合に発生する。ＳＥＳＳＩＯＮ＿ＴＩＭＥＳＴＡＭＰ５４からのデータをセッションクッキー４０に含めて、時間によって変化する情報を提供し、これによって、セッションクッキー４０を更に固有のものとし、このため複製しにくくすることで、ウェブサイト２０のセキュリティを高める。
【００３７】
セッションクッキー４０のＮＡＭＥ属性に含まれるデータを発生するには、ＳＥＳＳＩＯＮ＿ＴＩＭＥＳＴＡＭＰ５４からのデータをＳＥＳＳＩＯＮ＿ＩＤ５２の最後に追加し、一方向ＭＤ５ハッシュ関数を適用し、ＭＤ５ハッシュ関数の結果をＵＳＥＲ＿ＩＤ５０からのデータの最後に追加する。ＭＤ５一方向ハッシュ関数は、様々な長さの入力ストリングを取り、それを１２８ビットの二進シーケンスに変換する。ＭＤ５一方向ハッシュ関数は、ハッシュプロセスを逆転させてハッシュされた入力ストリングを得ることが難しいように設計されている。好適な実施形態では、ＲＳＡ　Ｌａｂｏｒａｔｏｒｉｅｓが開発したＢＳＡＦＥ（登録商標）ツールキットからのＭＤ５一方向ハッシュ関数を用いる。セッションクッキー４０のＰＡＴＨ属性は、「／」として規定される。これは、ウェブクライアント１６がウェブサイト２０上のいずれかのＵＲＬパスへのアクセスを要求した場合に、ウェブクライアント１６のウェブブラウザがウェブサーバ１２にセッションクッキー４０を送り返さなければならないことを意味する。セッションクッキー４０は一時的なものであるので、ＥＸＰＩＲＥＳ属性は規定されない。ウェブクライアント１６のウェブブラウザはウェブサーバ１２のドメイン名を用いるので、ＤＯＭＡＩＮ属性は規定されない。ウェブクライアント１６のウェブブラウザとウェブサイト１２との間でセッションクッキー４０を送信する場合に保護された通信プロトコルは必要でないので、ＳＥＣＵＲＥ属性は規定されないままである。ウェブクライアント１６が登録クライアント４６である場合は、次回ウェブクライアント１６がウェブサイト２０にアクセスする時、ＳＥＳＳＩＯＮ＿ＩＤ５２に含まれるデータを用いてセッションクッキー４０を発生するが、ウェブクライアント１６が単にゲストクライアント４４であるならば、セッションクッキー４０を発生する場合、ＳＥＳＳＩＯＮ＿ＩＤ５２に格納された新たなデータを用いる。
【００３８】
オースコードクッキー４２のＮＡＭＥ属性に用いられるデータは、好ましくは、ＡＵＴＨＣＯＤＥ５６およびＡＵＴＨＣＯＤＥ＿ＴＩＭＥＳＴＡＭＰ５８に格納されたデータから成る。所望の場合は、他の任意選択的な情報（図示せず）をオースコードクッキー４２のＮＡＭＥ属性に含ませることも可能である。ＡＵＴＨＣＯＤＥ５６におけるデータは、好ましくは、セッションクッキー４０についてＳＥＳＳＩＯＮ＿ＩＤ５２に含まれるデータを発生するために用いられる同じ暗号乱数発生器によって発生した、ランダムに発生したストリングまたは整数である。あるいは、異なる暗号乱数発生器を用いることも可能である。ＡＵＴＨＣＯＤＥ＿ＴＩＭＥＳＴＡＭＰ５８に含まれるデータは、オースコードクッキー４２を生成または変更した時を示すタイムスタンプである。これは、ウェブクライアント１６が最初にゲストクライアントとして保護されたウェブページ３２にアクセスし、登録クライアント４６になったか、または登録クライアント４６としてウェブサイト２０にログオンする場合に発生する。ＡＵＴＨＣＯＤＥ＿ＴＩＭＥＳＴＡＭＰ５８に含まれるデータは、セッションクッキー４０について上述した同じセキュリティ上の目的で、オースコードクッキー４２に含まれる。
【００３９】
オースコード４２のＮＡＭＥ属性におけるデータを発生するには、ＡＵＴＨＣＯＤＥ＿ＴＩＭＥＳＴＡＭＰ５８に格納されたデータをＡＵＴＨＣＯＤＥ５６の最後に追加し、一方向ＭＤ５ハッシュ関数を適用する。オースコードクッキー４２が一時的なものであるため、ＥＸＰＩＲＥＳ属性は規定されない。ウェブクライアント１６のウェブブラウザがウェブサーバ１２のドメイン名を用いるので、ＤＯＭＡＩＮ属性は規定されない。ウェブクライアント１６のウェブブラウザとウェブサーバ１２との間でオースコードクッキー４２を送信する場合に保護された通信プロトコルが必要であるので、ＳＥＣＵＲＥ属性は規定される。オースコードクッキー４２のＰＡＴＨ属性は、「／」として規定され、これは、ウェブクライアント１６がウェブサイト２０上のいずれかのＵＲＬパスに対するアクセスを要求する場合はいつでも、ウェブクライアント１６のウェブブラウザがオースコードクッキー４２をウェブサーバ１２に送信しなければならないことを意味する。しかしながら、ＳＥＣＵＲＥ属性が設定されるので、オースコードクッキー４２は、ウェブクライアント１６のウェブブラウザが用いる通信プロトコルが保護されている場合にのみ送信される。
【００４０】
ウェブクライアント１６は、ウェブサイト２０にアクセスする場合、ゲストクライアント４４または登録クライアント４６のいずれかであり得る。デフォルトで、ウェブクライアント１６がウェブサイト２０にアクセスするたびに、ウェブクライアント１６はゲストクライアント４４として見なされる。そして、ウェブクライアント１６は、ゲストクライアント４４のままであるか、または登録して登録クライアント４６になるか、またはウェブクライアント１６が以前にウェブサイト２０に登録していた場合には登録クライアント４６としてログオンすることができる。あらゆる場合において、ウェブクライアント１６は、ウェブブラウザを用いてウェブサイト２０上のウェブページ２２を見る。ウェブブラウザは、Ｎｅｔｓｃａｐｅ　Ｎａｖｉｇａｔｏｒ（登録商標）、Ｍｉｃｒｏｓｏｆｔ　Ｉｎｔｅｒｎｅｔ　Ｅｘｐｌｏｒｅｒ（登録商標）、または他のいずれかの適切なウェブブラウザとすることができる。ウェブクライアント１６は、ネットワークアドレスを規定する特別な構文であるウェブサイト２０のＵＲＬを要求することで、ウェブサイト２０に接続する。ウェブクライアント１６がＵＲＬを要求すると、ウェブクライアント１６のウェブブラウザは、要求されたＵＲＬを、ウェブクライアント１６のコンピュータシステム上に格納された全てのクッキーと比較し、ウェブサイト２０に対する要求には、全ての合致するクッキーの名前／値の対を含む行が含まれる。ウェブクライアント１６がウェブブラウザにおいてクッキーの使用をディゼーブルしていると、ウェブクライアント１６はウェブサイト２０にアクセスすることができない。この場合、ウェブサーバ１２は、ウェブクライアント１６に、ウェブブラウザ上でクッキー使用をイネーブルしなければならないことを知らせる。
【００４１】
本発明の方法は、いくつかのコンポーネントプロセスおよび基本的な定義に基づいている。第１に、ウェブサイト２０は、ウェブクライアント１６が保護されたウェブページ３２へのアクセスを要求した場合、ＨＴＴＰＳの使用を強制する。第２に、ウェブサイト２０上のログインおよび登録ウェブページは、保護されたウェブページ３２として規定される。ここで、コンポーネントプロセスを、擬似コードフォーマットで示し、検討する。
【００４２】
ウェブクライアント１６とウェブサイト２０との間で保護された通信プロトコルまたは無保護の通信プロトコルのどちらが必要であるかをウェブサイト２０が判定するプロセスのための擬似コードを、プロセスＡとして以下に示す。
【００４３】
【表１】
2004514996.tif 000003
【００４４】
プロセスＡは、ウェブクライアント１６がウェブサイト２０上のウェブページ２２に対するアクセスを要求すると開始する。次いで、ウェブサーバ１２は、ウェブページ２２のＵＲＬを判定し、これを、ＵＲＬ＿ＲＥＧＩＳＴＲＹテーブル３８のキーとして用いて、ウェブページ２２に対応したＨＴＴＰＳ＿ＦＬＡＧ７２に含まれる値を取得する。ＨＴＴＰＳ＿ＦＬＡＧ７２に含まれる値がゼロである場合、ＨＴＴＰＳは必要でなく、ウェブクライアント１６がＨＴＴＰまたはＨＴＴＰＳのどちらを用いているかに関わらず、ウェブクライアント１６の要求を処理する。または、ＨＴＴＰＳ＿ＦＬＡＧ７２が１の値を含む場合、ウェブサーバ１２は、ウェブクライアント１６のウェブブラウザに、ウェブページ２２に対応する保護されたウェブサイトＵＲＬに行くように指示する。これを行うには、ウェブサーバ１２がウェブクライアント１６のウェブブラウザに送信するＨＴＴＰヘッダ内に、保護されたウェブサイトＵＲＬを提供する。ウェブクライアント１６のウェブブラウザは、送信されたＵＲＬ内に「ｈｔｔｐｓ」が含まれているので、ＨＴＴＰＳを用いることを知る。次いで、ウェブクライアント１６のウェブブラウザは、ＨＴＴＰＳを用いてウェブページ２２へのアクセスを要求し、その後、要求が処理される。好適な実施形態では、ウェブクライアント１６がＨＴＴＰを用いている間に保護されたウェブページ３２へのアクセスが要求されると、通信プロトコルをＨＴＴＰからＨＴＴＰＳに切り替えなければならないが、ウェブクライアント１６がＨＴＴＰＳを用いていて無保護のウェブページ３４へのアクセスを要求している場合、通信プロトコルはそのままにされる。あるいは、ウェブサイト２０の管理者は、ウェブサーバソフトウエア１８を用いてこの機構を変更して、ＨＴＴＰＳが用いられていてウェブクライアント１６が無保護のウェブページ３４にアクセスを要求した場合に通信プロトコルをＨＴＴＰに切り替えるようにすることができる。
【００４５】
ウェブクライアント１６が初めてウェブサイト２０にアクセスするか、またはウェブサイト２０を再び訪れ、セッションクッキー４０を有しておらず、登録クライアント４６ではない場合に、ゲストクライアントアカウントまたはセッションクッキーを生成するために用いられる別のプロセス。このプロセスのための擬似コードをプロセスＢとして示す。
【００４６】
【表２】
2004514996.tif 000004
【００４７】
プロセスＢは、ウェブサーバ１２が、新たなレコードを追加することでＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６においてゲストクライアントエントリを生成する場合に開始する。ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６における新たなレコードの生成は、新たなキー値を発生し、これをＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６に新たに生成したレコードのＵＳＥＲ＿ＩＤ５０に格納することを含む。次に、新たに形成したゲストクライアントエントリのため、ＵＳＥＲ＿ＴＹＰＥ６０に、「ゲスト」または別の適切な識別子を格納する。次いで、ＳＥＳＳＩＯＮ＿ＩＤ５２のため、先に説明した暗号乱数発生器によって、好ましくはストリングであるデータをランダムに発生し、ＳＥＳＳＩＯＮ＿ＩＤ５２に格納する。次に、ＳＥＳＳＩＯＮ＿ＴＩＭＥＳＴＡＭＰ５４についてのデータを計算し、ＳＥＳＳＩＯＮ＿ＴＩＭＥＳＴＡＭＰ５４に格納する。次いで、好ましくは一方向のＭＤ５ハッシュ関数を適用して、ＳＥＳＳＩＯＮ＿ＩＤ５２およびＳＥＳＳＩＯＮ＿ＴＩＭＥＳＴＡＭＰ５４に含まれるデータを連結する（ＳＥＳＳＩＯＮ＿ＴＩＭＥＳＴＡＭＰ５４に含まれるデータを、ＳＥＳＳＩＯＮ＿ＩＤ５２に含まれるデータの最後に追加する）。あるいは、異なるハッシュ関数を用いることも可能である。当技術分野において、多くのハッシュ関数が周知であり、基本的な参考文献は、Ｄｏｎａｌｄ　Ｅ．Ｋｎｕｔｈによる「Ｔｈｅ　Ａｒｔ　ｏｆ　Ｃｏｍｐｕｔｅｒ　Ｐｒｏｇｒａｍｍｉｎｇ，Ｖｏｌｕｍｅ　３：　Ｓｅａｒｃｈｉｎｇ　ａｎｄ　Ｓｏｒｔｉｎｇ」である。この中で、Ｋｎｕｔｈ教授は、ハッシュ関数を生成する数学的処理に関して独創的な考察を行っている。ＭＤ５ハッシュ関数の結果を、ＵＳＥＲ＿ＩＤ５０に含まれるデータと連結し、セッションクッキー４０のＮＡＭＥ属性に格納する。次いで、ウェブサーバ１２は、セッションクッキー４０の他の属性を指定し、セッションクッキー４０をウェブクライアント１６のウェブブラウザに送信する。
【００４８】
オースコードクッキー４２の生成のため、別のコンポーネントプロセスを用いる。これは、通常、ゲストクライアント４４が保護されたウェブページ３２にアクセスを要求し、ＨＴＴＰＳ通信プロトコルを用いているがオースコードクッキー４２を有しない場合に起こる。このプロセスのための擬似コードをプロセスＣとして示す。
【００４９】
【表３】
2004514996.tif 000005
【００５０】
プロセスＣは、ＵＳＥＲ＿ＩＤ５０に格納されたデータに対応するセッションクッキー４０のＮＡＭＥ属性からのデータを抽出することで開始する。次いで、このデータを、ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６へのキーとして用いて、ゲストクライアント４４のためのＡＵＴＨＣＯＤＥ５６に認証コードが含まれているか否かを判定する。認証コードがＡＵＴＨＣＯＤＥ５６に含まれている場合、ウェブクライアント１６は無許可ユーザである場合があるので、ウェブサーバ１２は要求を拒否し、エラーウェブページを発生し、このエラーウェブページをゲストクライアント４４のウェブブラウザに送信する。あるいは、ＡＵＴＨＣＯＤＥ５６が空である場合には、先に説明した暗号乱数発生器によって、好ましくはストリングまたは整数であるＡＵＴＨＣＯＤＥ５６のためのデータをランダムに発生する。次いで、このデータをＡＵＴＨＣＯＤＥ５６に格納する。次に、現在のタイムストランプを、ＡＵＴＨＣＯＤＥ＿ＴＩＭＥＳＴＡＭＰ５８に格納する。次いで、好ましくはＭＤ５一方向ハッシュ関数を適用して、ＡＵＴＨＣＯＤＥ５６およびＡＵＴＨＣＯＤＥ＿ＴＩＭＥＳＴＡＭＰ５８に含まれるデータを連結する（ＡＵＴＨＣＯＤＥ＿ＴＩＭＥＳＴＡＭＰ５８に含まれるデータを、ＡＵＴＨＣＯＤＥ５６に含まれるデータの最後に追加する）。あるいは、上述のように、異なるハッシュ関数を用いることも可能である。次いで、ＭＤ５ハッシュ関数の結果を、オースコードクッキー４２のＮＡＭＥ属性に格納する。オースコードクッキー４２の属性の残りを指定し、次いで、ウェブサーバ１２は、オースコードクッキー４２をゲストクライアント４４のウェブブラウザに送信する。
【００５１】
別のコンポーネントプロセスは、ゲストクライアント４４がウェブサイト２０をブラウズしている間に登録クライアント４６になることを決めた場合を扱う。擬似コードを、プロセスＤとして以下に示す。
【００５２】
【表４】
2004514996.tif 000006
【００５３】
プロセスＤは、ゲストクライアント４４を登録ウェブページに誘導することで開始し、このページで彼らは機密情報を提供すると共にログインＩＤおよびパスワードを選択する。次いで、ＵＳＥＲ＿ＩＤ５０に格納されたデータに対応するセッションクッキー４０のＮＡＭＥ属性からのデータを抽出して、これを用いて、ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６の正しいゲストクライアントエントリにアクセスする。次いで、ＵＳＥＲ＿ＴＹＰＥ６０の値を、ゲストクライアント４４のための「登録」または別の適切な識別子に変更する。ここから、ゲストクライアント４４は登録クライアント４６と見なされる。ＳＥＳＳＩＯＮ＿ＴＩＭＥＳＴＡＭＰ８４のタイムスタンプを更新する。次いで、ＳＥＳＳＩＯＮ＿ＴＩＭＥＳＴＡＭＰ５４に含まれる新たなデータを用いて、セッションクッキー４０を変更する。次に、オースコードクッキー４２が存在しない場合にはこれを生成し、その他の場合にはこれを変更する。次いで、ＡＵＴＨＣＯＤＥ＿ＴＩＭＥＳＴＡＭＰ５８に格納されたタイムスタンプを更新し、この更新したタイムスタンプを用いてオースコードクッキー４２のＮＡＭＥ属性を変更することで、オースコードクッキー４２を変更する。次いで、セッションクッキー４０およびオースコードクッキー４２を、登録クライアント４６のウェブブラウザに送信する。次いで、登録ウェブページにおいて入力されたデータから、登録クライアント４６が入力したログインＩＤ、パスワード、および他の重要な情報を取得する。ログインＩＤを、ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６のＬＯＧＩＮ＿ＩＤ６２に格納し、パスワードを、ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６のＰＡＳＳＷＯＲＤ６４に格納する。他に取得した情報は、データベース２４の他の場所に格納する。
【００５４】
別のコンポーネントプロセスは、ウェブサイト２０にすでに登録したゲストクライアント４４がログオンして登録クライアント４６として認識される状況を扱う。擬似コードを、プロセスＥとして示す。
【００５５】
【表５】
2004514996.tif 000007
【００５６】
プロセスＥは、ゲストクライアント４４がウェブサイト２０上のログインウェブページに誘導された場合に開始し、このページで彼らはログインＩＤおよびパスワードを入力する。ログインＩＤおよびパスワードが有効でない場合、ウェブサーバ１２は、ゲストクライアント４４に、無効なＩＤおよび／またはパスワードが入力されたこと、ならびに、ゲストクライアント４４はこの情報を再入力しなければならないことを知らせる。当業者には認められようが、ログインプロセスは、ある回数の無効なログインの試みが行われた後に終了させることができる。正しいログインＩＤおよびパスワードが入力されると、このログインＩＤおよびパスワードを用いて、ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６において正しいゲストクライアントエントリを見つける。次に、ＳＥＳＳＩＯＮ＿ＴＩＭＥＳＴＡＭＰ５４のタイムスタンプを更新し、次いで、この新たなタイムスタンプ値に基づいてセッションクッキー４０を更新する。次に、ＡＵＴＨＣＯＤＥ＿ＴＩＭＥＳＴＡＭＰ５８のタイムスタンプを更新し、次いで、この新たなタイムスタンプ値に基づいてオースコードクッキー４２を更新する。次に、セッションクッキー４０およびオースコードクッキー４２を、ゲストクライアント４４のウェブブラウザに送信する。最後のステップは、ウェブサイト２０に最初にアクセスした時にゲストクライアント４４のために設置したゲストクライアントアカウントを削除する任意選択的なステップである。あるいは、ウェブサイト２０の管理者は、ウェブサーバソフトウエアパッケージ１８が提供する他のユーティリティを用いて、新鮮でなくなった（すなわち、２日間等、所定の時間量だけ用いられていない）ゲストクライアントアカウントを除去することも可能である。
【００５７】
別のコンポーネントプロセスは、ウェブクライアント１６がウェブサイト２０上の無保護のウェブページ３４に対するアクセスを要求した場合にセッションクッキー４０を検証するために用いられる。このプロセスによって、セッションクッキー４０が改ざんされていないことが保証される。擬似コードを、プロセスＦとして以下に示す。
【００５８】
【表６】
2004514996.tif 000008
【００５９】
プロセスＦは、ＵＳＥＲ＿ＩＤ５０に格納されたデータに対応するセッションクッキー４０のＮＡＭＥ属性からのデータを抽出することで開始する。次いで、このデータを用いて、ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６においてウェブクライアント１６のためのエントリを見つけて、ＳＥＳＳＩＯＮ＿ＩＤ５２およびＳＥＳＳＩＯＮ＿ＴＩＭＥＳＴＡＭＰ５４の格納値を得る。これらの格納値を用いて、セッションクッキー４０を再発生する。次いで、再発生したセッションクッキー４０を、ウェブクライアント１６が提供するセッションクッキー４０と比較する。比較結果が等しい場合、ウェブクライアント１６の要求を処理する。しかしながら、比較の結果が等しくない場合、ウェブクライアント１６は無許可のユーザである場合があるので、ウェブサーバ１２は、無保護のウェブページ３４にアクセスするウェブクライアント１６の要求を拒否し、ウェブクライアント１６のウェブブラウザにエラーウェブページを送信する。
【００６０】
別のコンポーネントプロセスは、ウェブクライアント１６がウェブサイト２０上の保護されたウェブページ３２に対するアクセスする要求をした場合にオースコードクッキー４２を検証するために用いられる。このプロセスは、オースコードクッキー４２が改ざんされていないことを保証する。このプロセスでは、ウェブクライアント１６は、ＨＴＴＰＳ通信プロトコルを用いており、セッションクッキー４０およびオースコードクッキー４２の双方を有する。擬似コードを、プロセスＧとして以下に示す。
【００６１】
【表７】
2004514996.tif 000009
【００６２】
プロセスＧは、ＵＳＥＲ＿ＩＤ５０に格納されたデータに対応するセッションクッキー４０のＮＡＭＥ属性からのデータを抽出することで開始する。次いで、このデータを用いて、ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６においてウェブクライアント１６のためのエントリを見つけ、ＡＵＴＨＣＯＤＥ５６およびＡＵＴＨＣＯＤＥ＿ＴＩＭＥＳＴＡＭＰ５８に含まれた格納値を得る。これらの格納値を用いて、オースコードクッキー４２を再発生する。次いで、再発生したオースコードクッキー４２を、ウェブクライアント１６が提供するオースコードクッキー４２と比較する。比較の結果が等しければ、ウェブサーバ１２はウェブクライアント１６の要求を処理する。比較の結果が等しくなければ、ウェブクライアント１６は無許可のユーザである場合があるので、ウェブサーバ１２は保護されたウェブページ３２にアクセスするウェブクライアント１６の要求を拒否し、ウェブクライアント１６のウェブブラウザにエラーウェブページを送信する。
【００６３】
別のコンポーネントプロセスは、登録クライアント４６がウェブサイト２０からログアウトする場合を扱うために用いられる。擬似コードを、プロセスＨとして以下に示す。
【００６４】
【表８】
2004514996.tif 000010
【００６５】
プロセスＨは、登録クライアント４６がウェブサイト２０からログアウトすることを選択した場合に開始する。次に、ウェブサーバ２１は、全ての属性がＮＵＬＬ値を含むように、セッションクッキー４０およびオースコードクッキー４２を更新する。次いで、ウェブサーバ１２は、更新したセッションクッキー４０および更新したオースコードクッキー４２を、登録クライアント４６のウェブブラウザに送信する。あるいは、登録クライアント４６は、ログアウトせず、単に別のウェブサイトを訪問する場合もある。この場合、セッションクッキー４０およびオースコードクッキー４２は双方とも、登録クライアント４６が用いるウェブブラウザのメモリに残る。登録クライアント４６がウェブサイト２０を再び訪問すると、登録クライアント４６のウェブブラウザは、セッションクッキー４０をウェブサーバ１２に送り返す。あるいは、登録クライアント４６は、ウェブサイト２０をログアウトすることなく彼らのウェブブラウザアプリケーションを単に終了する場合もある。この場合、セッションクッキー４０およびオースコードクッキー４２は、好ましくは一時的なクッキーであるので、破棄される。
【００６６】
別のコンポーネントプロセスは、登録クライアント４６が保護されたウェブページ３２に対するアクセスを要求するがオースコードクッキー４２を有しない状況を扱う。擬似コードを、プロセスＩとして以下に示す。
【００６７】
【表９】
2004514996.tif 000011
【００６８】
プロセスＩは、すでにウェブサイト２０に登録したウェブクライアント１６（すなわち以前に登録したウェブクライアント１６）が、保護されたウェブページ３２にアクセスしようとするが、まだウェブサイト２０にログオンしておらず、彼らが登録クライアント４６であることが示される場合に開始する。次に、以前に登録したウェブクライアント１６をチェックして、彼らがオースコードクッキー４２を有するか否かを調べる。以前に登録したウェブクライアント１６はオースコードクッキー４２を有しないので、以前に登録したウェブクライアント１６は、ログインウェブページにおいて彼らのログインＩＤおよびパスワードを入力することでウェブサイト２０にログオンするよう強制される。次に、ログインＩＤおよびパスワードを検証する。検証ができないと、ウェブサーバ１２は保護されたウェブページ３２に対する以前に登録したウェブクライアント１６のアクセスの要求を拒否し、以前に登録したウェブクライアント１６のウェブブラウザにエラーウェブページを送信する。しかしながら、ログインＩＤおよびパスワードが有効であれば、オースコードクッキー４２を生成し、以前に登録したウェブクライアント１６のウェブブラウザに送信する。そして、以前に登録したウェブクライアント１６は、登録クライアント４６として認識される。次いで、保護されたウェブページ３２に対する登録クライアント４６のアクセスの要求を処理する。
【００６９】
実際、本発明において概説するセッション管理および認証方式に従って、ウェブサイト２０には３つの一般的な使用状況がある。概して、ウェブクライアント１６がウェブサイト２０にアクセスし、ウェブサイト２０とのセッション全体を通じてゲストクライアント４４である（図４および５を参照のこと）、または、ウェブクライアント１６がウェブサイト２０にアクセスし、登録クライアント４６になる（図６、図７、および図８を参照のこと）、または、ウェブクライアント１６がウェブサイト２０にアクセスし、すでに登録されていて、登録クライアント４６としてログオンする（図９および１０を参照のこと）。図４、５、６、７、８、９、および１０は、ウェブクライアント１６が最初に複数の無保護のウェブページ３４にアクセスし、その後で複数の保護されたウェブページ３２にアクセスすることを図示するが、その逆もまた起こり得ること、すなわち、ウェブクライアント１６が最初に複数の保護されたウェブページ３２にアクセスし、その後で複数の無保護のウェブページ３４にアクセスすることもあり得ることに留意されたい。あるいは、ウェブクライアント１６は、無保護のウェブページ３４および保護されたウェブページ３２に対する要求を交互に行う場合もある。実際、多くの使用例があり得るが、簡略化のため、図６ないし８には少数のみを示す。
【００７０】
ここで図４および５を参照すると、この状況は、ウェブクライアント１６がウェブサイト２０にアクセスするステップ８０において開始する。デフォルトで、ウェブクライアント１６は、ゲストクライアント４４と規定される。次に、ステップ８２で、ゲストクライアント４４のために、ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６におけるゲストクライアントアカウントおよびセッションクッキー４０を生成する。次いで、ゲストクライアント４４は先へ進み、ステップ８４において、無保護のウェブページ３４へのアクセスを要求する。次いで、ステップ８６で、セッションクッキー４０を検証する。セッションクッキー４０が有効でない場合、制御はステップ８８に移り、ここで、ウェブサーバ１２は、ゲストクライアント４４の無保護のウェブページ３４に対するアクセスの要求を拒否し、ゲストクライアント４４のウェブブラウザにエラーウェブページを送信する。一方、セッションクッキー４０が有効である場合には、制御はステップ９０に移り、ここで、ゲストクライアント４４は無保護のウエウページ３４にアクセスする。そして、ゲストクライアント４４は、多数の無保護のウェブページ３４にアクセスすることができるが、セッションクッキー４０の検証は各アクセス要求ごとに行われる。いずれ、ステップ９４で、ゲストクライアントは、保護されたウェブページ３２に対するアクセスを要求する。次いで、ステップ９５で、ウェブサーバ１２は、ゲストクライアント４４がＨＴＴＰＳを用いているか否かを調べる。ＨＴＴＰＳが用いられていない場合、ステップ９６で、ウェブサーバ１２は、ゲストクライアント４４のウェブブラウザに、ＨＴＴＰＳの使用を知らせる。ステップ９８でＨＴＴＰＳ接続が検証されない場合、ステップ１００で、ウェブサーバ１２は、保護されたウェブページ３２を見るゲストクライアント４４の要求を拒否し、ゲストクライアント４４のウェブブラウザにエラーウェブページを送信する。あるいは、ゲストクライアント４４がＨＴＴＰＳを用いている場合、ステップ１０２で、ウェブサーバ１２は、ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６のＡＵＴＨＣＯＤＥ５６に認証コードがあるか否かを調べることで、ゲストクライアント４４がオースコードクッキー４２を必要とするか否かを調べる。ゲストクライアント４４がすでに認証コードを有する場合、制御はステップ１０４に移り、ここでウェブサーバ１２は保護されたウェブページ３２に対するゲストクライアント４４のアクセスの要求を拒否する。なぜなら、ゲストクライアント４４はこの時点で無許可のユーザである恐れがあるからである。そして、ゲストクライアント４４のウェブブラウザにエラーウェブページを送信する。しかしながら、ゲストクライアント４４が認証コードを有しない場合、制御はステップ１０６に移り、ここでオースコードクッキー４２を生成し、ゲストクライアント４４に送信する。そして、ゲストクライアント４４は、保護されたウェブページ３２にアクセスすることができる。次に、ステップ１０８において、ゲストクライアント４４は、ウェブサイト２０上の別の保護されたウェブページ３２に対するアクセスを要求する。この時、ステップ１１０で、ゲストクライアント４４のオースコードクッキー４２を調べて、これが有効であるか否かを見る。オースコードクッキー４２が有効でない場合、プロセスはステップ１１２に移り、ここで、ウェブサーバ１２は保護されたウェブページ３２に対するアクセスの要求を拒否し、ゲストクライアント４４のウェブブラウザにエラーウェブページを送信する。一方、オースコードクッキー４２が有効である場合、ステップ１１４で、ゲストクライアント４４は保護されたウェブページ３２にアクセスすることができる。そして、ゲストクライアント４４は、多数の他の保護されたウェブページ３２にアクセスすることができるが、オースコードクッキー４２の検証は各アクセス要求ごとに行われる。次に、ステップ１１８において、ゲストクライアント４４は何か買い物をし、ステップ１２０で、購入した品物の支払いをし、配達情報を提供する。次いでステップ１２２で、ゲストクライアント４４は、彼らのウェブブラウザを単に閉じるか、または異なるウェブサイトにアクセスするかによって、ウェブサイト２０を去る。いったんゲストクライアント４４のウェブブラウザが閉じると、セッションクッキー４０およびオースコードクッキー４２は一時的なクッキーであるので消去される。
【００７１】
ここで図６、７、および８を参照すると、この状況は、ウェブクライアント１６がウェブサイト２０にアクセスするステップ１３０で開始する。デフォルトで、ウェブクライアント１６は、ゲストクライアント４４として規定される。次に、ステップ１３２では、ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６においてゲストクライアントアカウントを生成し、セッションクッキー４０も生成する。次いで、セッションクッキー４０を、ゲストクライアント４４のウェブブラウザに送信する。次いで、ステップ１３４において、ゲストクライアント４４は、登録クライアント４６になることを決める。次いで、ステップ１３６において、ウェブサーバ１２は、ゲストクライアント４４によってＨＴＴＰＳが用いられているか否かを調べる。用いられていない場合、プロセスはステップ１３８に移り、ここで、ウェブサーバ１２は、ゲストクライアント４４のウェブブラウザに、ＨＴＴＰＳの使用を知らせる。ステップ１４０で、ＨＴＴＰＳ接続の使用を調べる。ＨＴＴＰＳが用いられていない場合、プロセスはステップ１４２に移り、ここで、ウェブサーバ１２は、ゲストクライアント４４の登録ユーザになる要求を拒否し、ゲストクライアント４４のウェブブラウザにエラーウェブページを送信する。一方、ゲストクライアント４４によってＨＴＴＰＳが用いられている場合、制御はステップ１４４に移り、ここで、ゲストクライアント４４のためにオースコードクッキー４２を生成する。次に、ステップ１４６において、ゲストクライアント４４は、ウェブサイト２０上の登録ウェブページに誘導され、ここでゲストクライアント４４はクライアント情報を提供する。ステップ１４８では、登録クライアントアカウントを生成し、ゲストクライアント４４は登録クライアント４６になる。次いで、ステップ１５０に示すように、登録クライアント４６は無保護のウェブページ３４にアクセスすることができる。この時、ステップ１５２において、ウェブサーバ１２は登録クライアント４６のセッションクッキー４０を検証する。セッションクッキー４０が有効でない場合、制御はステップ１５４に移り、ここで、ウェブサーバ１２は、無保護のウェブページ３４に対する登録クライアント４６のアクセスの要求を拒否し、登録クライアント４６のウェブブラウザにエラーウェブページを送信する。一方、セッションクッキー４０が有効である場合、ステップ１５６で登録クライアント４６は無保護のウェブページ３４にアクセスすることができる。次いで、登録クライアント４６は次に進んで、他の無保護のウェブページ３４にアクセスすることができるが、セッションクッキー４０の検証は各アクセス要求ごとに行われる。ステップ１６０では、登録クライアント４６は保護されたウェブページ３２に対するアクセスを要求し、この後、ステップ１６２で、ウェブサーバ１２は、登録クライアント４６がＨＴＴＰＳを用いているか否かを調べる。ＨＴＴＰＳが用いられていない場合、ステップ１６４において、ウェブサーバ１２は、登録クライアント４６のウェブブラウザに、ＨＴＴＰＳに切り替えることを知らせる。次いで、ステップ１６６で、ＨＴＴＰＳの使用を調べる。登録クライアント４６がＨＴＴＰＳを用いていない場合、プロセスはステップ１６８に移り、ここで、ウェブサーバ１２は、保護されたウェブページ３２に対する登録クライアント４６のアクセスの要求を拒否し、登録クライアント４６のウェブブラウザにエラーウェブページを送信する。一方、ＨＴＴＰＳが用いられている場合、制御はステップ１７０に移り、ウェブサーバ１２は、オースコードクッキー４２を検証する。オースコードクッキー４２有効でない場合、制御はステップ１７２に移り、ここで、ウェブサーバ１２は、保護されたウェブページ３２に対する登録クライアント４６のアクセスの要求を拒否し、登録クライアント４６のウェブブラウザにエラーウェブページを送信する。一方、オースコードクッキー４２が有効である場合、ステップ１７４において、登録クライアント４６は保護されたウェブページ３２にアクセスすることができる。次いで、登録クライアント４６は、次に進んで、多数の保護されたウェブページ３２にアクセスすることができるが、オースコードクッキー４２の検証は各アクセス要求ごとに行われる。ステップ１７８に見られるように、登録クライアント４６は買い物を行うこともできる。次いで、ステップ１８０で登録クライアント４６が買い物をすると、登録クライアント４６はその買い物の支払いをし、ウェブサーバ１２は行われた買い物に関するデータをデータベース２４に格納する。次に、ステップ１８２において、登録クライアント４６は、ウェブサイト２０からログアウトするか、別のウェブサイトにアクセスするか、または単に彼らのウェブブラウザアプリケーションを終了する。登録クライアント４６が行った選択に関わらず、いったん登録クライアント４６が彼らのウェブブラウザアプリケーションを終了すると、セッションクッキー４０およびオースコードクッキー４２は好ましくは一時的なクッキーとして規定されているので、破棄される。
【００７２】
ここで図９および１０を参照すると、この状況は、すでにウェブサイト２０に登録しているウェブクライアント１６がウェブサイト２０にアクセスするステップ１９０で開始する。ウェブクライアント１６は、デフォルトで、ゲストクライアント４４として規定される。次いで、ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６においてゲストクライアントアカウントを生成し、セッションクッキー４０を生成し、ゲストクライアント４４に送信する。次いで、ステップ１９２において、ゲストクライアント４４はログオンすることを決め、この時、ステップ１９４で、ウェブサーバ１２は、ゲストクライアント４４がＨＴＴＰＳを用いているか否かを判定しなければならない。用いていない場合、ステップ１９６で、ウェブサーバ１２は、ゲストクライアント４４のウェブブラウザに、ＨＴＴＰＳの使用を知らせる。ステップ１９８で、ＨＴＴＰＳの使用を調べる。ＨＴＴＰＳが用いられていない場合、プロセスはステップ２００に移り、ここで、ウェブサーバ１２は、ゲストクライアント４４のログオンの要求を拒否し、ゲストクライアント４４のウェブブラウザにエラーウェブページを送信する。一方、ゲストクライアント４４がＨＴＴＰＳを用いている場合、プロセスはステップ２０２に移り、ここで、オースコードクッキー４２を生成または更新し、ゲストクライアント４４のウェブブラウザに送信する。次に、ステップ２０４において、ゲストクライアント４４はログオンし、登録クライアント４６になる。次いで、ステップ２０６で、登録クライアント４６は、ウェブサイト２０上の無保護のウェブページ３４にアクセスすることができる。この時、ステップ２０８で、ウェブサーバ１２はセッションクッキー４０を検証する。検証がうまくいかないと、プロセスはステップ２１０に移り、ウェブサーバ１２は、無保護のウェブページ３４に対する登録クライアント４６のアクセスの要求を拒否し、登録クライアント４６のウェブブラウザにエラーウェブページを送信する。一方、セッションクッキー４０が有効である場合、プロセスはステップ２１２に移り、ここで、登録クライアント４６は、無保護のウェブページ３４にアクセスする。次いで、登録クライアント４６は次に進んで、多数の無保護のウェブページ３４にアクセスすることができるが、セッションクッキー４０の検証は各アクセス要求ごとに行われる。次に、ステップ２１６は、登録クライアント４６は、保護されたウェブページ３２に対するアクセスを要求する。次いで、ステップ２１８において、ウェブサーバ２１は、登録クライアント４６によってＨＴＴＰＳが用いられているか否かを調べる。ＨＴＴＰＳが用いられていない場合、ステップ２２０で、ウェブサーバ１２は、登録クライアント４６のウェブブラウザにＨＴＴＰＳの使用を知らせる。ステップ２２２で、ＨＴＴＰＳの使用を調べる。ＨＴＴＰＳが用いられていない場合、プロセスはステップ２２４に移り、ここで、ウェブサーバ１２は、保護されたウェブページ３２に対する登録クライアント４６のアクセスの要求を拒否し、登録クライアント４６のウェブブラウザにエラーウェブページを送信する。一方、登録クライアント４６がＨＴＴＰＳを用いている場合、プロセスはステップ２２６に進み、ここでオースコードクッキー４２を検証する。検証がうまくいかないと、プロセスはステップ２２８に進み、ウェブサーバ１２は、保護されたウェブページ３２に対する登録クライアント４６のアクセスの要求を拒否し、登録クライアント４６のウェブブラウザにエラーウェブページを送信する。一方、検証がうまくいくと、ステップ２３０で、登録クライアント４６は、保護されたウェブページ３２にアクセスすることができる。ステップ２３４に示すように、登録クライアント４６は、買い物をすること、および／または彼らの注文履歴をチェックすることができる。何か買い物をした場合、ステップ２３６で、登録クライアント４６は、これらの買い物の支払いをし、ウェブサーバ１２は、これらの買い物に関するデータをデータベース２４に格納する。次いで、ステップ２３８で、登録クライアント４６は、ログアウトするか、異なるウェブサイトにアクセスするか、または単に彼らのウェブブラウザアプリケーションを終了することで、ウェブサイト２０を去ることができる。登録クライアント４６が行った選択に関わらず、いったん登録クライアント４６が彼らのウェブブラウザアプリケーションを終了すると、セッションクッキー４０およびオースコードクッキー４２は、好ましくは一時的なクッキーとして規定されているので、破棄される。
【００７３】
本発明において実現されるシステムおよび方法は、無許可のユーザがウェブサイト２０またはウェブクライアント１６に関する機密情報にアクセスすることを防ぐように設計されている。例えば、ウェブクライアント１６がオースコードクッキー４２を有しないゲストクライアント４４である場合、すなわちゲストクライアント４４が保護されたウェブページ３２にアクセスしたことがない場合、ゲストクライアント４４に関する秘密情報は存在しない。この場合、無許可のユーザは、有害な行為を行うことはできない。別の状況は、ウェブクライアント１６がオースコードクッキー４２を有するゲストクライアント４４である（すなわち、ウェブクライアント１６がすでに保護されたウェブページ３２にアクセスしたことがある）という場合であろう。この場合、無許可のユーザの試みはうまくいかないはずである。なぜなら、無許可のユーザはセッションクッキー４０を使用可能なだけであり、オースコードクッキー４２を有しておらず、ウェブサーバ１２はすでに、（ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブル３６のＡＵＴＨＣＯＤＥ５６を調べることで）ゲストクライアント４４がオースコードクッキー４２を有することを知っているからである。別の代替的な状況は、ウェブクライアント１６が登録クライアント４６であり、無許可のユーザがセッションクッキー４０を用いて保護されたウェブページ３２をブラウズしようとする場合であろう。無許可のユーザはオースコードクッキー４２を有しないので、ウェブサーバ１２は無許可のユーザをログインウェブページに再び誘導するが、この時点で、無許可のユーザは登録クライアント４６のログインＩＤもパスワードも持っていないので、ログオンすることができない。
【００７４】
要約すると、本発明は、ウェブクライアントがウェブサイトで無保護のウェブページまたは保護されたウェブページにそれぞれアクセスする場合に、無保護の（ＨＴＴＰ）または保護された（ＨＴＴＰＳ）通信プロトコルのいずれかを使用可能とする。これによって、ウェブクライアントとウェブサイトとの間の安全かつ効率的なセッションを提供する。更に、２つの別個のクッキー、すなわちセッションクッキー（セッション管理用）およびオースコードクッキー（認証用）を用いる。また、セッションクッキーは、これがウェブクライアントに関する機密情報を含まないように設計されている。最後に、ウェブサイトは、ゲストクライアントまたは登録クライアントのいずれかのアクセスを可能とし、これによってウェブサイトの柔軟性が増し、ユーザにとって魅力が大きくなる。
【００７５】
本発明を電子商取引ウェブサイトの文脈で説明したが、本発明の使用を電子商取引の使用のみに制限することは発明者の意図するところではないことを注記しておく。例えば、本発明を用いて、オンライン投票、クレジットカード番号の発行、オンライン株取引等、電子商取引でない機能のためのデータ交換を保証することができる。
【００７６】
また、本発明は、ウェブサーバ１２にセッション名前−値ペアを発生するよう指示して、このセッション名前−値ペアをウェブサイト２０上の全てのウェブページ２２に渡すことによって、ウェブサイトとウェブクライアントとの間の認証およびセッション管理のために名前−値ペアを利用するように容易に適合させることができる。また、ウェブサーバ１２は、オースコード名前−値ペアを発生し、これをウェブサイト２０上の全ての保護されたウェブページ３２に渡す。
【００７７】
ここで説明したことは、本発明の好適な実施形態として理解されよう。それにもかかわらず、本発明においては、上述の本発明の精神および上記の特許請求の範囲によって完全に理解されるいずれの変更および代替的な実施形態も可能である。
【図面の簡単な説明】
【図１】
本発明の構成要素の概略図である。
【図２】
ＵＳＥＲ＿ＳＥＳＳＩＯＮテーブルに含まれるフィールドのデータ構成図である。
【図３】
ＵＲＬ＿ＲＥＧＩＳＴＲＹテーブルに含まれるフィールドのデータ構成図である。
【図４】
図５と共に、本発明の第１の使用状況のフローチャートを構成する。
【図５】
図４と共に、本発明の第１の使用状況のフローチャートを構成する。
【図６】
図７および８と共に、本発明の第２の使用状況のフローチャートを構成する。
【図７】
図６および７と共に、本発明の第２の使用状況のフローチャートを構成する。
【図８】
図６および７と共に、本発明の第２の使用状況のフローチャートを構成する。
【図９】
図１０と共に、本発明の第３の使用状況のフローチャートを構成する。
【図１０】
図９と共に、本発明の第３の使用状況のフローチャートを構成する。
【図１】
2004514996.tif 000015
【図２】
2004514996.tif 000016
【図３】
2004514996.tif 000017
【図４】
2004514996.tif 000018
【図５】
2004514996.tif 000019
【図６】
2004514996.tif 000020
【図７】
2004514996.tif 000021
【図８】
2004514996.tif 000022
【図９】
2004514996.tif 000023
【図１０】
2004514996.tif 000024
【国際公開パンフレット】
2004514996.tif 000025
2004514996.tif 000026
2004514996.tif 000027
2004514996.tif 000028
2004514996.tif 000029
2004514996.tif 000030
2004514996.tif 000031
2004514996.tif 000032
2004514996.tif 000033
2004514996.tif 000034
2004514996.tif 000035
2004514996.tif 000036
2004514996.tif 000037
2004514996.tif 000038
2004514996.tif 000039
2004514996.tif 000040
2004514996.tif 000041
2004514996.tif 000042
2004514996.tif 000043
2004514996.tif 000044
2004514996.tif 000045
2004514996.tif 000046
2004514996.tif 000047
2004514996.tif 000048
2004514996.tif 000049
2004514996.tif 000050
2004514996.tif 000051
2004514996.tif 000052
2004514996.tif 000053
2004514996.tif 000054
2004514996.tif 000055
2004514996.tif 000056
2004514996.tif 000057
2004514996.tif 000058
2004514996.tif 000059
2004514996.tif 000060
2004514996.tif 000061
2004514996.tif 000062
2004514996.tif 000063
2004514996.tif 000064
2004514996.tif 000065
2004514996.tif 000066
2004514996.tif 000067
2004514996.tif 000068
2004514996.tif 000069
2004514996.tif 000070
2004514996.tif 000071
2004514996.tif 000072
2004514996.tif 000073
2004514996.tif 000074
2004514996.tif 000075
2004514996.tif 000076
2004514996.tif 000077
2004514996.tif 000078
2004514996.tif 000079
2004514996.tif 000080
【国際公開パンフレット（コレクトバージョン）】
2004514996.tif 000081
2004514996.tif 000082
【国際調査報告】
2004514996.tif 000083
2004514996.tif 000084
2004514996.tif 000085
2004514996.tif 000086
2004514996.tif 000087