クライアント−サーバ環境においてクライアントを認証するためのシステムおよび方法
【課題】 HTTPプロトコルを変更することも不必要なネットワーク・トラヒックを生じることもない認証プロセスを提供する。
【解決手段】 本発明の考えは、既存のパスワード/ユーザIDに基づく認証プロセスの代わりに、新しいデジタル署名認証プロセスを用いることである。この新しいプロセスでは、好ましくは、宛先サーバが用いる認証プロセスとは独立して、クライアント認証情報によって第1のHTTP要求ヘッダを拡張し、サーバは認証情報を要求しない。認証情報は、好ましくは、クライアントの公開鍵を含み認証機関が署名したクライアント証明書、および、好ましくは、要求内で送信されるHTTP要求ヘッダ・データに対して計算され、クライアントの秘密鍵によって暗号化されたハッシュ値を含む。証明書およびデジタル署名は、クライアント・システム自体におけるHTTP要求ヘッダの作成中に追加することができ、または、ゲートウェイ、プロキシ、もしくはトンネルとして機能するサーバにおいて、後に追加することができる。新しいデジタル署名認証プロセスに対応しない宛先サーバは、単に、HTTP要求ヘッダにおける証明書およびデジタル署名を無視し、自動的に、それ自身の認証プロセスを開始する。本発明は、既存のデジタル署名認証プロセスを簡略化し、同時に、HTTPプロトコルを変更することも不必要なネットワーク・トラヒックを生じることもなく、異なる認証プロセスの共存を可能とする。
【解決手段】 本発明の考えは、既存のパスワード/ユーザIDに基づく認証プロセスの代わりに、新しいデジタル署名認証プロセスを用いることである。この新しいプロセスでは、好ましくは、宛先サーバが用いる認証プロセスとは独立して、クライアント認証情報によって第1のHTTP要求ヘッダを拡張し、サーバは認証情報を要求しない。認証情報は、好ましくは、クライアントの公開鍵を含み認証機関が署名したクライアント証明書、および、好ましくは、要求内で送信されるHTTP要求ヘッダ・データに対して計算され、クライアントの秘密鍵によって暗号化されたハッシュ値を含む。証明書およびデジタル署名は、クライアント・システム自体におけるHTTP要求ヘッダの作成中に追加することができ、または、ゲートウェイ、プロキシ、もしくはトンネルとして機能するサーバにおいて、後に追加することができる。新しいデジタル署名認証プロセスに対応しない宛先サーバは、単に、HTTP要求ヘッダにおける証明書およびデジタル署名を無視し、自動的に、それ自身の認証プロセスを開始する。本発明は、既存のデジタル署名認証プロセスを簡略化し、同時に、HTTPプロトコルを変更することも不必要なネットワーク・トラヒックを生じることもなく、異なる認証プロセスの共存を可能とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に認証に関し、具体的には、クライアント−サーバ環境における認証に関し、更に特定すれば、インターネットにおけるクライアントの認証に関する。
【背景技術】
【0002】
認証は、ある人またはある物が、本当に申告したとおりの人または物であるか否かを判定する手順である。私有または公共のコンピュータ・ネットワークにおいて、認証は通常、ログオン・パスワードを用いて行われる。典型的に、全てのサーバは、認証データを保存するために、それ自身のデータ持続性を維持する。従って、あるサーバ上でクライアントに利用可能なパスワードは、別のサーバ上の別のクライアントによってすでに阻止されている場合がある。このため、クライアントが記憶し維持しなければならない異なる認証セットの数が増えてしまう。異なるユーザ認証システムを有するいくつかのサーバ上に分散したアプリケーション(例えば、ポータル・サーバを介してアプリケーションにアクセスし、ポータル・サーバがそれ自身のユーザ・データベースを有する)では、クライアントは2回以上ログオンしなければならない。
【0003】
シングル・サインオン(single signon)を可能とするための対策には、ポータル・サーバ上でアプリケーション・サーバのためにログオン・データを保存すること、または、Microsoft(登録商標)の.NETPassport(http://www.pasport.com)もしくはLiberty AllianceからのLiberty(http://www.projectliberty.org)のような集中ユーザ・データベースを用いること等の手法が含まれる。このためには、クライアントが個人データをサード・パーティ(third party)のサイト上に保存することを嫌がらないことが必要であり、この手法にはあらゆるデータ・セキュリティの問題が伴う。また、Passportサービスをダウンしなければならない場合、使用したいサイトが利用可能であるとしても、所望のサービスにログオンすることができない。
【0004】
また、認証のためにユーザID/パスワード・セットを用いることは、結果として余分なネットワーク・トラフィックを生じるという欠点がある。クライアントの要求があると、サーバはそれに答えてログイン・データを求めなければならない。これが与えられてから初めて、最初に要求された情報がクライアントに返信される(以下の図11も参照)。
【0005】
最後に、パスワードは、盗まれたり、誤って漏れてしまったり、または単に忘れてしまったりすることが多く起こり得る。
【0006】
このため、インターネット・ビジネスおよび他の多くのトランザクションでは、もっと厳重な認証プロセスが必要とされている。公開鍵インフラの一部として認証機関(CA:Certificate Authority)によって発行され検証されたデジタル証明書(digital certificate)を用いることは、インターネット上で認証を行うための標準的な方法になると考えられている。
【0007】
デジタル署名によって、受信側(サーバ)は、送信側(クライアント)のアイデンティティおよび発信元ならびにドキュメントの完全性を検証することができる。
【0008】
デジタル署名は、非対称暗号アルゴリズムに基づいている。送信側の秘密鍵によって、ドキュメントに署名する。受信側は、信頼できるサード・パーティ(Trusted Third Party)によって与えられる送信側の公開鍵を取得し、受信したドキュメントの完全性を確認することができる。
【発明の開示】
【発明が解決しようとする課題】
【0009】
デジタル署名手順を、すでに存在しているパスワード・ログオン・インフラに組み込むことは、例えば特定のセキュリティ・アプリケーションを有する追加のカード読み取り装置等、サーバ側およびクライアント側での大きな変更を必要とする。従って、かかる実施は、コストおよび時間において多くの労力を要し、結果として、新しいクライアント−サーバ・インフラのみがデジタル署名手順を用いることが好ましい。クライアント−サーバ環境において2つの認証手順が存在すると、宛先サーバがパスワード・ログオンまたはデジタル署名手順のどちらに対応しているのかをクライアントが最初に調べなければならないという欠点が生じる。その結果に応じて、クライアントは、サーバが対応している必要な認証プロセスを用いる。これによって、クライアントとサーバとの間で多くの不必要なネットワーク・トラフィックが生じる。なぜなら、サーバ・アプリケーション自体が最終的に認証のタイプを決定するからである。更に、現在のデジタル署名認証手順には、クライアントがその認証情報を提供可能となるまで、クライアントとサーバとの間で、クライアントとサーバとの間のいくつかの画面を交換しなければならないという欠点がある。これによって、多くの不必要なネットワーク・トラフィックが生じる。
【課題を解決するための手段】
【0010】
これを発端として、本発明の目的は、上述の従来技術の欠点を回避して、クライアント−サーバ環境においてクライアントを認証するための方法およびシステムを提供することである。
【0011】
本発明の考えは、既存のパスワード/ユーザIDに基づく認証プロセスの代わりに、新しいデジタル署名認証プロセスを用いることである。この新しいプロセスでは、好ましくは、宛先サーバが用いる認証プロセスとは独立して、クライアント認証情報によって第1のHTTP要求ヘッダを拡張し、サーバは認証情報を要求しない。認証情報は、好ましくは、クライアントの公開鍵を含み認証機関が署名したクライアント証明書、および、好ましくは、要求内で送信されるHTTP要求ヘッダ・データに対して計算され、クライアントの秘密鍵によって暗号化されたハッシュ値を含む。証明書およびデジタル署名は、クライアント・システム自体におけるHTTP要求ヘッダの作成中に追加することができ、または、ゲートウェイ、プロキシ、もしくはトンネルとして機能するサーバにおいて、後に追加することができる。
【0012】
新しいデジタル署名認証プロセスに対応しない宛先サーバは、単に、HTTP要求ヘッダにおける証明書およびデジタル署名を無視し、自動的に、それ自身の認証プロセスを開始する。本発明は、既存のデジタル署名認証プロセスを簡略化し、同時に、HTTPプロトコルを変更することも不必要なネットワーク・トラフィックを生じることもなく、異なる認証プロセスの共存を可能とする。
【0013】
本発明の上述および追加の目的、特徴、および利点は、以下の詳細な記載において明らかとなろう。
【0014】
本発明の新規の特徴は、特許請求の範囲に述べる。しかしながら、本発明自体、ならびにその好適な使用形態、更に別の目的および利点は、例示的な実施形態の以下の詳細な説明を参照し、添付図面と関連付けて読むことによって、最も適切に理解されよう。
【発明を実施するための最良の形態】
【0015】
図1および2を参照すると、本発明が好適に用いられるクライアント−サーバ環境が図示されている。しかしながら、本発明は、通常のプロトコル使用に違反することなくヘッダ拡張を可能とする通信プロトコルを用いて、各クライアント−サーバ環境上で使用可能であることに留意すべきである。従って、本発明は、その好適な実施形態と共に、現在最も知られているHTTPプロトコルに関して記載し説明する。
【0016】
HTTPプロトコル(HypertextTransfer Protocol)は、分散型システムのためのアプリケーション・レベルのプロトコルである。これは、ファイル(テキスト、グラフィック、画像、音声、映像、および他のマルチメディ・ファイル)を交換するための1組のルールである。いずれのウェブ・サーバ装置3も、HTTPデーモン(HTTP-daemon)、すなわち、いわゆるHTTPサーバ4を含む。これは、HTTP要求を待ち、それらが到着すると処理するように設計されたプログラムである。更に、各クライアント装置1は、ウェブ・ブラウザ、すなわち、いわゆるHTTPクライアント2を含む。これは、ウェブ・サーバ装置3に要求を送信する。ブラウザのユーザが、ウェブ・ファイルを開く(URLをタイプ入力する)か、またはハイパーテキスト・リンク上でクリックすることによって要求を入力すると、ブラウザはHTTP要求を構築し、それを、URLに指示されたインターネット・プロトコル・アドレスに送信する。宛先サーバ装置3におけるHTTPサーバ4は、この要求を受信し、処理した後に、要求されたファイルを戻す。別のクライアント・サーバ環境では、クライアント1は、ゲートウェイ、トンネル、またはプロキシ・サーバ5(図2を参照)を介して、サーバ3と通信を行う。
【0017】
通常、HTTPは、TCP/IP(TransmissionControl Protocol/Internet Protocol)上で実行されるが、HTTPはTCP/IPに依存しない。
【0018】
TCPは、情報パッケージ・レベルで他のインターネット・ポイントとメッセージを交換するための1組のルールを規定し、IPは、インターネット・アドレス・レベルでメッセージを送受信するための1組のルールを規定する。
【0019】
HTTP要求ヘッダは、HTTP方法(GET、HEAD、POST等)、URI(Universal Resource Identifier)、プロトコル・バージョン、および任意の補足情報から成る。
【0020】
HTTP応答は、要求の成功または失敗を示すステータス・ライン、応答における情報の記述(メタ情報)、および実際の情報要求から成る。
【0021】
図3を参照すると、従来技術のHTTP要求ヘッダの基本構造が図示されている。各HTTP要求は、少なくとも1つのヘッダを含まなければならない。HTTP−Post要求のみが、ヘッダおよびボディ・データ(body data)を含む。以下の情報は、HTTP要求ヘッダに含まれると好ましいものである。
【0022】
HTTP要求によってアクセスされるリソース(例えばファイル、サーブレット(servlet))
サーバのホストの名前(例えばwww.ibm.com)
ブラウザの名前およびバージョン(例えばNetscapeVersion 7.1)
クライアントのオペレーティング・システム(例えばWindows XP)
ブラウザが理解することができる文字セット(例えばiso−8859−1)
【0023】
各HTTPヘッダは、HTTPプロトコルによって規定されずHTTPプロトコルを用いた既存のアプリケーションと競合しない補足情報を含む場合がある。これが意味することは、HTTPプロトコルを用い、補足情報を処理するように構成されていないアプリケーションは、その実行に割り込みをかけることなく、その補足情報を単に無視するということである。
【0024】
図4を参照すると、本発明によるHTTP要求ヘッダの本発明の構造が図示されている。HTTP要求ヘッダには、本発明による以下の追加情報を含まなければならない。すなわち、公開鍵を含み、認証機関が署名したクライアント証明書と、HTTP要求ヘッダ、および利用可能な場合はHTTPボディ(Post)に対して計算されたデジタル署名と、である。
【0025】
証明書およびデジタル署名は、サーバ上の特定のツールによって処理することができる。クライアント証明書は、公開鍵を特定の個人に結び付ける信頼できるサード・パーティによって分配されたドキュメントである。信頼できるパーティは、証明書に含まれる情報が有効であり正しいことを保証する。証明書は、509によって標準化されている。それらは、信頼できるサード・パーティのデジタル署名、公開鍵を所有する個人の名前、および公開鍵自体を含まなければならない。
【0026】
図5から8を参照すると、クライアント証明書およびデジタル署名をHTTP要求ヘッダに挿入するための好適な実施形態が図示されている。
【0027】
図5を参照すると、クライアント証明書16をデジタル署名18と共にHTTP要求ヘッダ12に挿入するための本発明の第1の実施形態が図示されている。クライアント・システム1は、署名機能を有するブラウザ2を含む。ブラウザ2は、HTTP要求ヘッダ12を発生し、ローカル・ファイル・システム上に安全に(セキュアに)保存されているクライアントの秘密鍵にアクセスし、HTTP要求ヘッダ12および利用可能な場合はボディに対して発生したハッシュ値を秘密鍵によって暗号化し、この結果デジタル署名18を得る。そのデジタル署名18は、公開鍵を含むクライアント証明書16と共に、HTTP要求ヘッダ12に挿入される。拡張したHTTP要求ヘッダ14はHTTPサーバ4に送信され、これが認証プロセスを開始する。認証コンポーネント6は、HTTPサーバの一部とするか、または別個のコンポーネントとすることができ、HTTP要求ヘッダからのクライアント証明書情報16を検証する。検証は、認証機関の証明書署名をチェックすることによって、またはこれをその認証データベース9に含まれる既知の証明書と比較することによって実行可能である。クライアント証明書16に含まれる公開鍵を用いて、HTTP要求ヘッダ12に含まれるデジタル署名18を復号し、この結果、クライアント1が計算したハッシュ値が得られる。同一のハッシュ・アルゴリズムを用いて、HTTP要求ヘッダ12、および、利用可能であればボディ上で、ハッシュ値を計算する。ハッシュ値が一致すれば、検証は完了し、認証は成功であり、アプリケーション8に対するアクセスが与えられる。
【0028】
図6を参照すると、クライアント証明書16をデジタル署名18と共にHTTP要求ヘッダ12に挿入するための本発明の第2の実施形態が図示されている。ここで、ブラウザ2は、スマート・カード読み取り装置10を介してスマート・カード10と通信を行う機能を有する。ブラウザ2は、HTTP要求ヘッダを発生し、スマート・カード10との通信を確立し、そのセキュリティ・モジュール内に秘密鍵およびクライアント証明書を含むスマート・カード10は、HTTPヘッダ12および利用可能な場合はボディに対して発生したハッシュ値を秘密鍵によって暗号化し(デジタル署名)、デジタル署名18をクライアント証明書16と共にブラウザ2に戻す。そのデジタル署名18は、公開鍵を含むクライアント証明書16と共に、HTTP要求ヘッダ12に挿入される。拡張したHTTP要求ヘッダ14はHTTPサーバ4に送信され、これが、認証コンポーネントを用いることによって認証プロセスを開始する(図5の説明を参照)。
【0029】
図7を参照すると、クライアント証明書16をデジタル署名18と共にHTTP要求ヘッダ12に挿入するための本発明の第3の実施形態が図示されている。第3の実施形態では、クライアント・システムは、独自の署名コンポーネント20を含む。このコンポーネントは、ブラウザ2と同じクライアント1上で動作するプロキシ・サーバとして機能する。ブラウザ2は、このプロキシ・サーバ20を用いるように構成されている。このため、ブラウザ2は、HTTP要求ヘッダ12を定期的に署名コンポーネント20に送信し、次いでコンポーネント20が、上述の実施形態と同様に、証明書16およびデジタル署名18を挿入する。拡張したHTTP要求ヘッダはHTTPサーバ4に送信され、これが、認証コンポーネントを用いることによって認証プロセスを開始する(図5の説明を参照)。
【0030】
図8を参照すると、クライアント証明書16をデジタル署名18と共にHTTP要求ヘッダ12に挿入するための本発明の第4の実施形態が図示されている。この実施形態では、クライアント要求(1a/2a、1b/2b)は、挿入コンポーネント20を有するプロキシ・サーバ22を介してルーティングされる。挿入コンポーネント20は、秘密鍵およびそれらに関連する証明書を含む暗号化ハードウェア24と通信を行っており、このハードウェア24が、HTTP要求ヘッダ12および利用可能な場合はボディ上で発生したハッシュ値を秘密鍵によって暗号化し(デジタル署名)、デジタル署名18をクライアント証明書16と共に挿入コンポーネント20に戻し、このコンポーネント20がそれらをHTTP要求ヘッダ12に挿入する。拡張したHTTP要求ヘッダ14をHTTPサーバ4に送信し、これが、認証コンポーネントを用いることによって認証プロセスを開始する(図5の説明を参照)。
【0031】
いずれにせよ、本発明はHTTPプロトコルにおいて追加のヘッダ・データを記述するので、ヘッダ内の追加データを処理することができる既存のクライアントおよびサーバのあらゆる組み合わせが、共に機能することができる。システムの1つが追加データを扱うことができない場合、全ては現在既知であるように機能する。
【0032】
すでにインストールされている莫大な数のクライアント・ブラウザの既存のベースを維持するために、追加の署名ソフトウェアが、ローカル・クライアント装置上でプロキシ・コンポーネントとして機能することによって、HTTP拡張に対応することができる(図7を参照)。企業ネットワーク(例えばイントラネット)内では、これを中央プロキシ・サーバによって対応することも可能である(図7)。そして、ウェブ・ブラウザの将来のバージョンでは、その機能を内蔵することもあり得る(図5)。このように、徐々に新しいパラダイムへの移行が行われる可能性がある。
【0033】
デジタル署名は、署名スマート・カードまたは他のいずれかの署名ハードウェアを用いて作成することができる。また、クライアント・コンピュータ上での暗号化鍵の保存を用いた純粋なソフトウェアによる解決策も、実施可能なものであろう。
【0034】
図9は、本発明を用いたサーバ−クライアント通信環境の一例を示す。
【0035】
この例では、ポータル・サーバ3を介してアプリケーション5にアクセスすることを仮定している。最新技術では、この状況に対応するために、ポータル・サーバ3およびアプリケーション・サーバ5によってアクセス可能なサーバ上にクライアントのアイデンティティ・データを保存する(例えばMicrosoft(登録商標)の.NETPassport)か、または、アプリケーション・サーバのためのアイデンティティ・データをポータル・サーバ3上に保存する必要がある。これらの手法は双方とも、ユーザがサード・パーティ・システム上に彼/彼女のデータを保存することを必要とし、これは多くのセキュリティ上の問題の影響を受けやすい。
【0036】
図5〜8において説明したように、要求にデジタル署名を行うことによって、どのサーバもユーザ・データを保存する必要がなくなる。ポータル・サーバ3は、そのユーザ・データベース4に対して要求側のアイデンティティを調べ、要求をアプリケーション・サーバ5に渡し、このサーバ5がそのユーザ・データベース6を用いて同じことを実行可能である。クライアント1aは、ポータル・サーバ3を介してアプリケーション・サーバ5にアクセスし、クライアント1bは、直接アプリケーション・サーバ5にアクセスすることができる。アプリケーション・サーバ5は、それ自身のユーザ・データベース6を用いて、ユーザのためのプロファイル情報を検索することができる。
【0037】
この手法は、もっと高度なセキュリティを提供する。なぜなら、アプリケーション・サーバ5は、ポータル・サーバ3を通過した要求のみを処理することを望んでも良いからである。この場合、ポータル・サーバ3は、要求を転送し、更にそれに署名する。これによって、アプリケーション・サーバ5は、そのサービスに対するアクセスを与えるまたは拒否するために、双方の署名を検証することができる。クライアント1aは、アプリケーション・サーバ5に対するアクセスを得るが、クライアント1bは対応されない。なぜなら、その要求はポータル・サーバ3を介していないからである。
【0038】
図10を参照すると、本発明によるデータ認証フローが図示されている。
【0039】
クライアントのブラウザは、サーバに対する要求を準備する(10)。本発明の好適な実施形態では、HTTP要求ヘッダの署名がオンに切り換わったか否かが調べられる(20)。切り替わっていない場合、クライアントのブラウザは、非署名の要求をサーバに送信し(40)、サーバは、署名が必要であるか否かを調べる(50)。署名が必要である場合、サーバは、エラー・メッセージをクライアントに送信する。署名が必要でない場合、サーバは所望の情報に対するアクセスを与える(60)。
【0040】
署名がオンに切り換わった場合、クライアントのブラウザは、証明書およびデジタル署名をHTTP要求ヘッダに挿入し、そのHTTP要求ヘッダをサーバに送信する(30)。
【0041】
HTTP要求ヘッダに余分なフィールドを追加することによって、サーバは、証明書から要求側のアイデンティティを検索することができる(認証)(35)。クライアント証明書は、要求側の名前および公開鍵を含む。
【0042】
これは信頼できる機関によって署名されているので、サーバは、これが信頼できる機関によって発行された有効な証明書であると検証することができる。メッセージが本当に証明書の所有者によって送信されたことを、検証することができる。なぜなら、HTTP要求ヘッダ・データ上で計算され、証明書内に含まれる公開鍵を用いて検証可能なHTTP要求ヘッダ内のデジタル署名値を発生することができるのは、証明書に属する秘密鍵の所有者のみだからである。認証が成功した場合、サーバは、要求されたデータに対するアクセスを与える(60)。
【0043】
図11、12を参照すると、本発明の認証プロセスとの比較と共に、従来技術の認証プロセスを用いて、ウェブ・ブラウザ(クライアント)とウェブ・サーバ(サーバ)との間で情報を交換する典型的な状況が図示されている。
【0044】
例えば、買い物プロセスにおいて、特定のデータ転送動作によって注文を確認するまで(例えばHTTP Post)、クライアントは、オンライン・ショッピング・システムを表すサーバとの間で、データ(例えば一連のテキストもしくはhtmlページ、またはXMLのようなフォーマットしたデータのブロック)を送受信する。現在のアプリケーションにおいて、サーバは、このプロセスの間に、クライアントからユーザIDおよびパスワードを得るための要求を発行する。ユーザは、クライアント・アプリケーションによってそれらをサーバに送信する前に、手動でこれらのデータを供給しなければならない(図11を参照)。
【0045】
本発明に対応するアプリケーション(図12を参照)では、クライアントは、デジタル署名によって、サーバに送信されるHTTP要求ヘッダ・データに署名する。サーバは、署名を調べることによって、容易にクライアントを識別する。従って、ユーザIDおよびパスワードを要求し供給する必要はない。なぜなら、送信される全てのデータ・アイテムは、ユーザのアイデンティティに関連付けられているからである。サーバは、このクライアントのための保存情報を検索し、この情報を、クライアントに送信するデータを準備する際に用いることができる(「パーソナライゼーション(personalization)」、プロファイル生成ページ)。パーソナライゼーションのために用いられるデータの例は、ユーザの住所(注文されたアイテムをどこに送るか)、ユーザの購入履歴、ユーザのショッピング・カート、過去のセッションの間に訪れたウェブ・ページ等である。
【0046】
ユーザのアイデンティティを調べること(これはフロー中のいつでも実行可能である)によって、サーバは、ユーザが以前にこのサイトを訪れていないことを発見する場合がある。次いで、サーバは、好みおよび詳細なユーザ・データを指定するための要求を含むデータ(プロファイル生成ページ)を送信することができる。ユーザは、これらのデータを供給し、クライアント・アプリケーションは、これをサーバに送信し、サーバは、パーソナライゼーションに用いるこれらのデータをそのデータベースに保存する。
【0047】
各データ転送が署名されているので、クライアントが最初のページを訪れるとすぐに、クライアントのユーザIDはサーバに知られる。従って、このプロセスの初期にパーソナライゼーションを行うことができる。
【0048】
ユーザが、署名をオフに切り換えることを選択すると、サーバはこのことを認識し、署名をオフに切り換えることの指示を含むページを送信するか、または、その代わりに、従来のユーザID/パスワードの状況を用いることができる(図示せず)。
【図面の簡単な説明】
【0049】
【図1】本発明が好適に用いられる従来技術のHTTP−クライアント−サーバ環境を示す。
【図2】本発明が好適に用いられる従来技術のHTTP−クライアント−サーバ環境を示す。
【図3】典型的な従来技術のHTTPヘッダの基本構造を示す。
【図4】証明書およびデジタル署名を有するHTTPヘッダの本発明の構造を示す。
【図5】証明書をデジタル署名と共にHTTP要求ヘッダに挿入し、結果として本発明の構造のHTTP要求ヘッダを得るための好適な実施形態を示す。
【図6】証明書をデジタル署名と共にHTTP要求ヘッダに挿入し、結果として本発明の構造のHTTP要求ヘッダを得るための好適な実施形態を示す。
【図7】証明書をデジタル署名と共にHTTP要求ヘッダに挿入し、結果として本発明の構造のHTTP要求ヘッダを得るための好適な実施形態を示す。
【図8】証明書をデジタル署名と共にHTTP要求ヘッダに挿入し、結果として本発明の構造のHTTP要求ヘッダを得るための好適な実施形態を示す。
【図9】本発明を用いたサーバ−クライアント通信環境の一例を示す。
【図10】本発明の構造のHTTP要求を用いた図1によるクライアント−サーバ環境における認証データ・フローの好適な実施形態を示す。
【図11】図12と共に、オンライン買い物トランザクション・プロセスの例に基づいて、本発明の認証プロセスの従来技術の認証プロセスとの比較を示す。
【図12】図11と共に、オンライン買い物トランザクション・プロセスの例に基づいて、本発明の認証プロセスの従来技術の認証プロセスとの比較を示す。
【技術分野】
【0001】
本発明は、一般に認証に関し、具体的には、クライアント−サーバ環境における認証に関し、更に特定すれば、インターネットにおけるクライアントの認証に関する。
【背景技術】
【0002】
認証は、ある人またはある物が、本当に申告したとおりの人または物であるか否かを判定する手順である。私有または公共のコンピュータ・ネットワークにおいて、認証は通常、ログオン・パスワードを用いて行われる。典型的に、全てのサーバは、認証データを保存するために、それ自身のデータ持続性を維持する。従って、あるサーバ上でクライアントに利用可能なパスワードは、別のサーバ上の別のクライアントによってすでに阻止されている場合がある。このため、クライアントが記憶し維持しなければならない異なる認証セットの数が増えてしまう。異なるユーザ認証システムを有するいくつかのサーバ上に分散したアプリケーション(例えば、ポータル・サーバを介してアプリケーションにアクセスし、ポータル・サーバがそれ自身のユーザ・データベースを有する)では、クライアントは2回以上ログオンしなければならない。
【0003】
シングル・サインオン(single signon)を可能とするための対策には、ポータル・サーバ上でアプリケーション・サーバのためにログオン・データを保存すること、または、Microsoft(登録商標)の.NETPassport(http://www.pasport.com)もしくはLiberty AllianceからのLiberty(http://www.projectliberty.org)のような集中ユーザ・データベースを用いること等の手法が含まれる。このためには、クライアントが個人データをサード・パーティ(third party)のサイト上に保存することを嫌がらないことが必要であり、この手法にはあらゆるデータ・セキュリティの問題が伴う。また、Passportサービスをダウンしなければならない場合、使用したいサイトが利用可能であるとしても、所望のサービスにログオンすることができない。
【0004】
また、認証のためにユーザID/パスワード・セットを用いることは、結果として余分なネットワーク・トラフィックを生じるという欠点がある。クライアントの要求があると、サーバはそれに答えてログイン・データを求めなければならない。これが与えられてから初めて、最初に要求された情報がクライアントに返信される(以下の図11も参照)。
【0005】
最後に、パスワードは、盗まれたり、誤って漏れてしまったり、または単に忘れてしまったりすることが多く起こり得る。
【0006】
このため、インターネット・ビジネスおよび他の多くのトランザクションでは、もっと厳重な認証プロセスが必要とされている。公開鍵インフラの一部として認証機関(CA:Certificate Authority)によって発行され検証されたデジタル証明書(digital certificate)を用いることは、インターネット上で認証を行うための標準的な方法になると考えられている。
【0007】
デジタル署名によって、受信側(サーバ)は、送信側(クライアント)のアイデンティティおよび発信元ならびにドキュメントの完全性を検証することができる。
【0008】
デジタル署名は、非対称暗号アルゴリズムに基づいている。送信側の秘密鍵によって、ドキュメントに署名する。受信側は、信頼できるサード・パーティ(Trusted Third Party)によって与えられる送信側の公開鍵を取得し、受信したドキュメントの完全性を確認することができる。
【発明の開示】
【発明が解決しようとする課題】
【0009】
デジタル署名手順を、すでに存在しているパスワード・ログオン・インフラに組み込むことは、例えば特定のセキュリティ・アプリケーションを有する追加のカード読み取り装置等、サーバ側およびクライアント側での大きな変更を必要とする。従って、かかる実施は、コストおよび時間において多くの労力を要し、結果として、新しいクライアント−サーバ・インフラのみがデジタル署名手順を用いることが好ましい。クライアント−サーバ環境において2つの認証手順が存在すると、宛先サーバがパスワード・ログオンまたはデジタル署名手順のどちらに対応しているのかをクライアントが最初に調べなければならないという欠点が生じる。その結果に応じて、クライアントは、サーバが対応している必要な認証プロセスを用いる。これによって、クライアントとサーバとの間で多くの不必要なネットワーク・トラフィックが生じる。なぜなら、サーバ・アプリケーション自体が最終的に認証のタイプを決定するからである。更に、現在のデジタル署名認証手順には、クライアントがその認証情報を提供可能となるまで、クライアントとサーバとの間で、クライアントとサーバとの間のいくつかの画面を交換しなければならないという欠点がある。これによって、多くの不必要なネットワーク・トラフィックが生じる。
【課題を解決するための手段】
【0010】
これを発端として、本発明の目的は、上述の従来技術の欠点を回避して、クライアント−サーバ環境においてクライアントを認証するための方法およびシステムを提供することである。
【0011】
本発明の考えは、既存のパスワード/ユーザIDに基づく認証プロセスの代わりに、新しいデジタル署名認証プロセスを用いることである。この新しいプロセスでは、好ましくは、宛先サーバが用いる認証プロセスとは独立して、クライアント認証情報によって第1のHTTP要求ヘッダを拡張し、サーバは認証情報を要求しない。認証情報は、好ましくは、クライアントの公開鍵を含み認証機関が署名したクライアント証明書、および、好ましくは、要求内で送信されるHTTP要求ヘッダ・データに対して計算され、クライアントの秘密鍵によって暗号化されたハッシュ値を含む。証明書およびデジタル署名は、クライアント・システム自体におけるHTTP要求ヘッダの作成中に追加することができ、または、ゲートウェイ、プロキシ、もしくはトンネルとして機能するサーバにおいて、後に追加することができる。
【0012】
新しいデジタル署名認証プロセスに対応しない宛先サーバは、単に、HTTP要求ヘッダにおける証明書およびデジタル署名を無視し、自動的に、それ自身の認証プロセスを開始する。本発明は、既存のデジタル署名認証プロセスを簡略化し、同時に、HTTPプロトコルを変更することも不必要なネットワーク・トラフィックを生じることもなく、異なる認証プロセスの共存を可能とする。
【0013】
本発明の上述および追加の目的、特徴、および利点は、以下の詳細な記載において明らかとなろう。
【0014】
本発明の新規の特徴は、特許請求の範囲に述べる。しかしながら、本発明自体、ならびにその好適な使用形態、更に別の目的および利点は、例示的な実施形態の以下の詳細な説明を参照し、添付図面と関連付けて読むことによって、最も適切に理解されよう。
【発明を実施するための最良の形態】
【0015】
図1および2を参照すると、本発明が好適に用いられるクライアント−サーバ環境が図示されている。しかしながら、本発明は、通常のプロトコル使用に違反することなくヘッダ拡張を可能とする通信プロトコルを用いて、各クライアント−サーバ環境上で使用可能であることに留意すべきである。従って、本発明は、その好適な実施形態と共に、現在最も知られているHTTPプロトコルに関して記載し説明する。
【0016】
HTTPプロトコル(HypertextTransfer Protocol)は、分散型システムのためのアプリケーション・レベルのプロトコルである。これは、ファイル(テキスト、グラフィック、画像、音声、映像、および他のマルチメディ・ファイル)を交換するための1組のルールである。いずれのウェブ・サーバ装置3も、HTTPデーモン(HTTP-daemon)、すなわち、いわゆるHTTPサーバ4を含む。これは、HTTP要求を待ち、それらが到着すると処理するように設計されたプログラムである。更に、各クライアント装置1は、ウェブ・ブラウザ、すなわち、いわゆるHTTPクライアント2を含む。これは、ウェブ・サーバ装置3に要求を送信する。ブラウザのユーザが、ウェブ・ファイルを開く(URLをタイプ入力する)か、またはハイパーテキスト・リンク上でクリックすることによって要求を入力すると、ブラウザはHTTP要求を構築し、それを、URLに指示されたインターネット・プロトコル・アドレスに送信する。宛先サーバ装置3におけるHTTPサーバ4は、この要求を受信し、処理した後に、要求されたファイルを戻す。別のクライアント・サーバ環境では、クライアント1は、ゲートウェイ、トンネル、またはプロキシ・サーバ5(図2を参照)を介して、サーバ3と通信を行う。
【0017】
通常、HTTPは、TCP/IP(TransmissionControl Protocol/Internet Protocol)上で実行されるが、HTTPはTCP/IPに依存しない。
【0018】
TCPは、情報パッケージ・レベルで他のインターネット・ポイントとメッセージを交換するための1組のルールを規定し、IPは、インターネット・アドレス・レベルでメッセージを送受信するための1組のルールを規定する。
【0019】
HTTP要求ヘッダは、HTTP方法(GET、HEAD、POST等)、URI(Universal Resource Identifier)、プロトコル・バージョン、および任意の補足情報から成る。
【0020】
HTTP応答は、要求の成功または失敗を示すステータス・ライン、応答における情報の記述(メタ情報)、および実際の情報要求から成る。
【0021】
図3を参照すると、従来技術のHTTP要求ヘッダの基本構造が図示されている。各HTTP要求は、少なくとも1つのヘッダを含まなければならない。HTTP−Post要求のみが、ヘッダおよびボディ・データ(body data)を含む。以下の情報は、HTTP要求ヘッダに含まれると好ましいものである。
【0022】
HTTP要求によってアクセスされるリソース(例えばファイル、サーブレット(servlet))
サーバのホストの名前(例えばwww.ibm.com)
ブラウザの名前およびバージョン(例えばNetscapeVersion 7.1)
クライアントのオペレーティング・システム(例えばWindows XP)
ブラウザが理解することができる文字セット(例えばiso−8859−1)
【0023】
各HTTPヘッダは、HTTPプロトコルによって規定されずHTTPプロトコルを用いた既存のアプリケーションと競合しない補足情報を含む場合がある。これが意味することは、HTTPプロトコルを用い、補足情報を処理するように構成されていないアプリケーションは、その実行に割り込みをかけることなく、その補足情報を単に無視するということである。
【0024】
図4を参照すると、本発明によるHTTP要求ヘッダの本発明の構造が図示されている。HTTP要求ヘッダには、本発明による以下の追加情報を含まなければならない。すなわち、公開鍵を含み、認証機関が署名したクライアント証明書と、HTTP要求ヘッダ、および利用可能な場合はHTTPボディ(Post)に対して計算されたデジタル署名と、である。
【0025】
証明書およびデジタル署名は、サーバ上の特定のツールによって処理することができる。クライアント証明書は、公開鍵を特定の個人に結び付ける信頼できるサード・パーティによって分配されたドキュメントである。信頼できるパーティは、証明書に含まれる情報が有効であり正しいことを保証する。証明書は、509によって標準化されている。それらは、信頼できるサード・パーティのデジタル署名、公開鍵を所有する個人の名前、および公開鍵自体を含まなければならない。
【0026】
図5から8を参照すると、クライアント証明書およびデジタル署名をHTTP要求ヘッダに挿入するための好適な実施形態が図示されている。
【0027】
図5を参照すると、クライアント証明書16をデジタル署名18と共にHTTP要求ヘッダ12に挿入するための本発明の第1の実施形態が図示されている。クライアント・システム1は、署名機能を有するブラウザ2を含む。ブラウザ2は、HTTP要求ヘッダ12を発生し、ローカル・ファイル・システム上に安全に(セキュアに)保存されているクライアントの秘密鍵にアクセスし、HTTP要求ヘッダ12および利用可能な場合はボディに対して発生したハッシュ値を秘密鍵によって暗号化し、この結果デジタル署名18を得る。そのデジタル署名18は、公開鍵を含むクライアント証明書16と共に、HTTP要求ヘッダ12に挿入される。拡張したHTTP要求ヘッダ14はHTTPサーバ4に送信され、これが認証プロセスを開始する。認証コンポーネント6は、HTTPサーバの一部とするか、または別個のコンポーネントとすることができ、HTTP要求ヘッダからのクライアント証明書情報16を検証する。検証は、認証機関の証明書署名をチェックすることによって、またはこれをその認証データベース9に含まれる既知の証明書と比較することによって実行可能である。クライアント証明書16に含まれる公開鍵を用いて、HTTP要求ヘッダ12に含まれるデジタル署名18を復号し、この結果、クライアント1が計算したハッシュ値が得られる。同一のハッシュ・アルゴリズムを用いて、HTTP要求ヘッダ12、および、利用可能であればボディ上で、ハッシュ値を計算する。ハッシュ値が一致すれば、検証は完了し、認証は成功であり、アプリケーション8に対するアクセスが与えられる。
【0028】
図6を参照すると、クライアント証明書16をデジタル署名18と共にHTTP要求ヘッダ12に挿入するための本発明の第2の実施形態が図示されている。ここで、ブラウザ2は、スマート・カード読み取り装置10を介してスマート・カード10と通信を行う機能を有する。ブラウザ2は、HTTP要求ヘッダを発生し、スマート・カード10との通信を確立し、そのセキュリティ・モジュール内に秘密鍵およびクライアント証明書を含むスマート・カード10は、HTTPヘッダ12および利用可能な場合はボディに対して発生したハッシュ値を秘密鍵によって暗号化し(デジタル署名)、デジタル署名18をクライアント証明書16と共にブラウザ2に戻す。そのデジタル署名18は、公開鍵を含むクライアント証明書16と共に、HTTP要求ヘッダ12に挿入される。拡張したHTTP要求ヘッダ14はHTTPサーバ4に送信され、これが、認証コンポーネントを用いることによって認証プロセスを開始する(図5の説明を参照)。
【0029】
図7を参照すると、クライアント証明書16をデジタル署名18と共にHTTP要求ヘッダ12に挿入するための本発明の第3の実施形態が図示されている。第3の実施形態では、クライアント・システムは、独自の署名コンポーネント20を含む。このコンポーネントは、ブラウザ2と同じクライアント1上で動作するプロキシ・サーバとして機能する。ブラウザ2は、このプロキシ・サーバ20を用いるように構成されている。このため、ブラウザ2は、HTTP要求ヘッダ12を定期的に署名コンポーネント20に送信し、次いでコンポーネント20が、上述の実施形態と同様に、証明書16およびデジタル署名18を挿入する。拡張したHTTP要求ヘッダはHTTPサーバ4に送信され、これが、認証コンポーネントを用いることによって認証プロセスを開始する(図5の説明を参照)。
【0030】
図8を参照すると、クライアント証明書16をデジタル署名18と共にHTTP要求ヘッダ12に挿入するための本発明の第4の実施形態が図示されている。この実施形態では、クライアント要求(1a/2a、1b/2b)は、挿入コンポーネント20を有するプロキシ・サーバ22を介してルーティングされる。挿入コンポーネント20は、秘密鍵およびそれらに関連する証明書を含む暗号化ハードウェア24と通信を行っており、このハードウェア24が、HTTP要求ヘッダ12および利用可能な場合はボディ上で発生したハッシュ値を秘密鍵によって暗号化し(デジタル署名)、デジタル署名18をクライアント証明書16と共に挿入コンポーネント20に戻し、このコンポーネント20がそれらをHTTP要求ヘッダ12に挿入する。拡張したHTTP要求ヘッダ14をHTTPサーバ4に送信し、これが、認証コンポーネントを用いることによって認証プロセスを開始する(図5の説明を参照)。
【0031】
いずれにせよ、本発明はHTTPプロトコルにおいて追加のヘッダ・データを記述するので、ヘッダ内の追加データを処理することができる既存のクライアントおよびサーバのあらゆる組み合わせが、共に機能することができる。システムの1つが追加データを扱うことができない場合、全ては現在既知であるように機能する。
【0032】
すでにインストールされている莫大な数のクライアント・ブラウザの既存のベースを維持するために、追加の署名ソフトウェアが、ローカル・クライアント装置上でプロキシ・コンポーネントとして機能することによって、HTTP拡張に対応することができる(図7を参照)。企業ネットワーク(例えばイントラネット)内では、これを中央プロキシ・サーバによって対応することも可能である(図7)。そして、ウェブ・ブラウザの将来のバージョンでは、その機能を内蔵することもあり得る(図5)。このように、徐々に新しいパラダイムへの移行が行われる可能性がある。
【0033】
デジタル署名は、署名スマート・カードまたは他のいずれかの署名ハードウェアを用いて作成することができる。また、クライアント・コンピュータ上での暗号化鍵の保存を用いた純粋なソフトウェアによる解決策も、実施可能なものであろう。
【0034】
図9は、本発明を用いたサーバ−クライアント通信環境の一例を示す。
【0035】
この例では、ポータル・サーバ3を介してアプリケーション5にアクセスすることを仮定している。最新技術では、この状況に対応するために、ポータル・サーバ3およびアプリケーション・サーバ5によってアクセス可能なサーバ上にクライアントのアイデンティティ・データを保存する(例えばMicrosoft(登録商標)の.NETPassport)か、または、アプリケーション・サーバのためのアイデンティティ・データをポータル・サーバ3上に保存する必要がある。これらの手法は双方とも、ユーザがサード・パーティ・システム上に彼/彼女のデータを保存することを必要とし、これは多くのセキュリティ上の問題の影響を受けやすい。
【0036】
図5〜8において説明したように、要求にデジタル署名を行うことによって、どのサーバもユーザ・データを保存する必要がなくなる。ポータル・サーバ3は、そのユーザ・データベース4に対して要求側のアイデンティティを調べ、要求をアプリケーション・サーバ5に渡し、このサーバ5がそのユーザ・データベース6を用いて同じことを実行可能である。クライアント1aは、ポータル・サーバ3を介してアプリケーション・サーバ5にアクセスし、クライアント1bは、直接アプリケーション・サーバ5にアクセスすることができる。アプリケーション・サーバ5は、それ自身のユーザ・データベース6を用いて、ユーザのためのプロファイル情報を検索することができる。
【0037】
この手法は、もっと高度なセキュリティを提供する。なぜなら、アプリケーション・サーバ5は、ポータル・サーバ3を通過した要求のみを処理することを望んでも良いからである。この場合、ポータル・サーバ3は、要求を転送し、更にそれに署名する。これによって、アプリケーション・サーバ5は、そのサービスに対するアクセスを与えるまたは拒否するために、双方の署名を検証することができる。クライアント1aは、アプリケーション・サーバ5に対するアクセスを得るが、クライアント1bは対応されない。なぜなら、その要求はポータル・サーバ3を介していないからである。
【0038】
図10を参照すると、本発明によるデータ認証フローが図示されている。
【0039】
クライアントのブラウザは、サーバに対する要求を準備する(10)。本発明の好適な実施形態では、HTTP要求ヘッダの署名がオンに切り換わったか否かが調べられる(20)。切り替わっていない場合、クライアントのブラウザは、非署名の要求をサーバに送信し(40)、サーバは、署名が必要であるか否かを調べる(50)。署名が必要である場合、サーバは、エラー・メッセージをクライアントに送信する。署名が必要でない場合、サーバは所望の情報に対するアクセスを与える(60)。
【0040】
署名がオンに切り換わった場合、クライアントのブラウザは、証明書およびデジタル署名をHTTP要求ヘッダに挿入し、そのHTTP要求ヘッダをサーバに送信する(30)。
【0041】
HTTP要求ヘッダに余分なフィールドを追加することによって、サーバは、証明書から要求側のアイデンティティを検索することができる(認証)(35)。クライアント証明書は、要求側の名前および公開鍵を含む。
【0042】
これは信頼できる機関によって署名されているので、サーバは、これが信頼できる機関によって発行された有効な証明書であると検証することができる。メッセージが本当に証明書の所有者によって送信されたことを、検証することができる。なぜなら、HTTP要求ヘッダ・データ上で計算され、証明書内に含まれる公開鍵を用いて検証可能なHTTP要求ヘッダ内のデジタル署名値を発生することができるのは、証明書に属する秘密鍵の所有者のみだからである。認証が成功した場合、サーバは、要求されたデータに対するアクセスを与える(60)。
【0043】
図11、12を参照すると、本発明の認証プロセスとの比較と共に、従来技術の認証プロセスを用いて、ウェブ・ブラウザ(クライアント)とウェブ・サーバ(サーバ)との間で情報を交換する典型的な状況が図示されている。
【0044】
例えば、買い物プロセスにおいて、特定のデータ転送動作によって注文を確認するまで(例えばHTTP Post)、クライアントは、オンライン・ショッピング・システムを表すサーバとの間で、データ(例えば一連のテキストもしくはhtmlページ、またはXMLのようなフォーマットしたデータのブロック)を送受信する。現在のアプリケーションにおいて、サーバは、このプロセスの間に、クライアントからユーザIDおよびパスワードを得るための要求を発行する。ユーザは、クライアント・アプリケーションによってそれらをサーバに送信する前に、手動でこれらのデータを供給しなければならない(図11を参照)。
【0045】
本発明に対応するアプリケーション(図12を参照)では、クライアントは、デジタル署名によって、サーバに送信されるHTTP要求ヘッダ・データに署名する。サーバは、署名を調べることによって、容易にクライアントを識別する。従って、ユーザIDおよびパスワードを要求し供給する必要はない。なぜなら、送信される全てのデータ・アイテムは、ユーザのアイデンティティに関連付けられているからである。サーバは、このクライアントのための保存情報を検索し、この情報を、クライアントに送信するデータを準備する際に用いることができる(「パーソナライゼーション(personalization)」、プロファイル生成ページ)。パーソナライゼーションのために用いられるデータの例は、ユーザの住所(注文されたアイテムをどこに送るか)、ユーザの購入履歴、ユーザのショッピング・カート、過去のセッションの間に訪れたウェブ・ページ等である。
【0046】
ユーザのアイデンティティを調べること(これはフロー中のいつでも実行可能である)によって、サーバは、ユーザが以前にこのサイトを訪れていないことを発見する場合がある。次いで、サーバは、好みおよび詳細なユーザ・データを指定するための要求を含むデータ(プロファイル生成ページ)を送信することができる。ユーザは、これらのデータを供給し、クライアント・アプリケーションは、これをサーバに送信し、サーバは、パーソナライゼーションに用いるこれらのデータをそのデータベースに保存する。
【0047】
各データ転送が署名されているので、クライアントが最初のページを訪れるとすぐに、クライアントのユーザIDはサーバに知られる。従って、このプロセスの初期にパーソナライゼーションを行うことができる。
【0048】
ユーザが、署名をオフに切り換えることを選択すると、サーバはこのことを認識し、署名をオフに切り換えることの指示を含むページを送信するか、または、その代わりに、従来のユーザID/パスワードの状況を用いることができる(図示せず)。
【図面の簡単な説明】
【0049】
【図1】本発明が好適に用いられる従来技術のHTTP−クライアント−サーバ環境を示す。
【図2】本発明が好適に用いられる従来技術のHTTP−クライアント−サーバ環境を示す。
【図3】典型的な従来技術のHTTPヘッダの基本構造を示す。
【図4】証明書およびデジタル署名を有するHTTPヘッダの本発明の構造を示す。
【図5】証明書をデジタル署名と共にHTTP要求ヘッダに挿入し、結果として本発明の構造のHTTP要求ヘッダを得るための好適な実施形態を示す。
【図6】証明書をデジタル署名と共にHTTP要求ヘッダに挿入し、結果として本発明の構造のHTTP要求ヘッダを得るための好適な実施形態を示す。
【図7】証明書をデジタル署名と共にHTTP要求ヘッダに挿入し、結果として本発明の構造のHTTP要求ヘッダを得るための好適な実施形態を示す。
【図8】証明書をデジタル署名と共にHTTP要求ヘッダに挿入し、結果として本発明の構造のHTTP要求ヘッダを得るための好適な実施形態を示す。
【図9】本発明を用いたサーバ−クライアント通信環境の一例を示す。
【図10】本発明の構造のHTTP要求を用いた図1によるクライアント−サーバ環境における認証データ・フローの好適な実施形態を示す。
【図11】図12と共に、オンライン買い物トランザクション・プロセスの例に基づいて、本発明の認証プロセスの従来技術の認証プロセスとの比較を示す。
【図12】図11と共に、オンライン買い物トランザクション・プロセスの例に基づいて、本発明の認証プロセスの従来技術の認証プロセスとの比較を示す。
【特許請求の範囲】
【請求項1】
クライアント−サーバ環境においてクライアントを認証するための方法であって、前記クライアント−サーバ環境が用いる通信プロトコルは、前記通信プロトコルに違反することなくヘッダ要求の拡張を可能とし、前記クライアント側において、前記方法が、
ヘッダ要求を発生するステップと、
クライアント認証情報を前記ヘッダ要求に挿入し、前記サーバが用いる認証プロセスとは独立して、サーバが認証情報を要求することなく、拡張ヘッダ要求を得るステップと、
前記拡張ヘッダ要求をサーバに送信するステップと、
認証が成功すると、前記サーバから情報を受信するステップと、
を含む、方法。
【請求項2】
前記通信プロトコルがHTTPプロトコルである、請求項1に記載の方法。
【請求項3】
前記認証情報が、前記サーバとのセッションを確立するための最初のヘッダ要求に含まれている、請求項1に記載の方法。
【請求項4】
前記認証情報が、クライアントの名前およびクライアントの公開鍵を含むクライアント証明書と、クライアントの秘密鍵を用いてクライアント証明書を含む前記ヘッダ要求のハッシュ値に対して生成されたデジタル署名と、を含む、請求項1に記載の方法。
【請求項5】
前記認証情報が、クライアントのブラウザによって前記ヘッダ要求に自動的に挿入される、請求項1に記載の方法。
【請求項6】
前記クライアントのブラウザが、スマート・カード読み取り装置を介してスマート・カードから前記認証情報を受信する、請求項5に記載の方法。
【請求項7】
スマート・カード読み取り装置を介してスマート・カードから前記認証情報を受信するクライアントの署名コンポーネントによって、前記認証情報が前記ヘッダ要求に自動的に挿入される、請求項1に記載の方法。
【請求項8】
クライアント−サーバ環境においてクライアントを認証するための方法であって、前記クライアント−サーバ環境が用いる通信プロトコルは、前記通信プロトコルに違反することなくヘッダ要求の拡張を可能とし、前記クライアントと前記サーバとの間でシステムが通信を確立し、前記システムが、
前記クライアントからヘッダ要求を受信するステップと、
認証情報を前記ヘッダ要求に挿入し、前記サーバが用いる認証プロセスとは独立して、サーバが認証情報を要求することなく、拡張ヘッダ要求(20)を得るステップと、
前記拡張ヘッダ要求をサーバに送信するステップと、
認証が成功すると、前記サーバから情報を受信するステップと、
を含む、方法。
【請求項9】
前記システムは、プロキシ・サーバ、ゲートウェイ、またはトンネルのいずれかである、請求項8に記載の方法。
【請求項10】
前記通信プロトコルがHTTPプロトコルであり、前記認証情報が、署名コンポーネントから前記認証情報を受信する挿入コンポーネントによって前記HTTP要求ヘッダに自動的に挿入される、請求項8に記載の方法。
【請求項11】
前記認証情報が、クライアントの名前およびクライアントの公開鍵を含むクライアント証明書と、クライアントの秘密鍵を用いてクライアント証明書を含む前記ヘッダ要求全体に対して生成されたデジタル署名と、を含む、請求項8に記載の方法。
【請求項12】
クライアント−サーバ環境においてクライアントを認証するための方法であって、前記クライアント−サーバ環境が用いる通信プロトコルは、前記通信プロトコルに違反することなくヘッダ要求の拡張を可能とし、前記サーバ側において、前記方法が、
認証情報を含むクライアント・ヘッダ要求を受信するステップと、
サーバ認証コンポーネントによって前記ヘッダ要求に含まれる前記認証情報の妥当性を確認するステップと、
認証が成功すると、前記クライアントに情報を提供するステップと、
を含む、方法。
【請求項13】
前記認証情報が、クライアントの名前およびクライアントの公開鍵を含むクライアント証明書と、クライアントの秘密鍵を用いて前記ヘッダ要求内容全体に対して生成されたデジタル署名と、を含む、請求項12に記載の方法。
【請求項14】
前記通信プロトコルがHTTPプロトコルであり、前記サーバ認証コンポーネントが、
前記クライアント証明書に含まれる前記公開鍵にアクセスするステップと、
前記公開鍵によって前記HTTP要求ヘッダに含まれる前記デジタル署名を復号し、ハッシュ値を得るステップと、
前記クライアントが用いたものと同じハッシュ・アルゴリズムを前記HTTP要求ヘッダに適用するステップと、
双方のハッシュ値が一致すると、認証を成功と見なすステップと、
を実行する、請求項12に記載の方法。
【請求項15】
クライアント−サーバ環境においてクライアントを認証するためのサーバ・システムであって、前記クライアント−サーバ環境が用いる通信プロトコルは、前記通信プロトコルに違反することなくヘッダ要求の拡張を可能とし、前記クライアントが前記ヘッダ要求における認証情報を前記サーバ・システムに提供し、前記サーバ・システムが、
入来するクライアント・ヘッダ要求に含まれる前記認証情報を読み取り、前記クライアントから前記認証情報を要求することなく、前記認証情報の妥当性を確認する機能を有する認証コンポーネントを含む、サーバ・システム。
【請求項16】
クライアント−サーバ環境においてサーバ・システムによって認証されるクライアント・システムであって、前記クライアント−サーバ環境が用いる通信プロトコルは、前記通信プロトコルに違反することなくヘッダ要求の拡張を可能とし、前記クライアント・システムが、
ブラウザと、
前記サーバが用いる認証プロセスとは独立して、サーバが認証情報を要求することなく、クライアント認証情報を前記ヘッダ要求に挿入するためのコンポーネントと、
を含む、クライアント・システム。
【請求項17】
前記認証情報が、クライアントの名前およびクライアントの公開鍵を含むクライアント証明書と、クライアントの秘密鍵を用いて前記ヘッダ要求内容のハッシュ値に対して生成されたデジタル署名と、を含む、請求項16に記載のクライアント・システム。
【請求項18】
スマート・カード読み取り装置と、
クライアントの秘密鍵、ならびにクライアントの名前および秘密鍵を含むクライアント証明書を含むセキュリティ・モジュールを有するスマート・カードと、
を更に含み、前記スマート・カードが、前記証明書をデジタル署名と共に前記挿入コンポーネントに供給し、前記デジタル署名が、前記秘密鍵によって前記証明書情報を含む前記ヘッダ要求のハッシュ値を暗号化した結果として得られる、請求項16に記載のクライアント・システム。
【請求項19】
クライアント認証情報をサーバ・システムに供給するためのプロキシ・サーバ・システムであって、前記プロキシ・サーバ・システムが、クライアント・システムおよびサーバ・システムとの通信接続を有し、前記システム間で用いられる通信プロトコルは、前記通信プロトコルに違反することなくヘッダ要求の拡張を可能とし、前記プロキシ・サーバ・システムが、
前記サーバが用いる認証プロセスとは独立して、サーバが認証情報を要求することなく、前記クライアントから受信した前記ヘッダ要求にクライアント証明書およびデジタル署名を挿入するためのプロキシ挿入コンポーネントと、
デジタル署名を作成し、それを前記クライアント証明書と共に前記プロキシ挿入コンポーネントに供給するための署名コンポーネントと、
を含む、プロキシ・サーバ・システム。
【請求項20】
デジタル・コンピュータの内部メモリに保存されるコンピュータ・プログラムであって、前記プログラムが前記コンピュータ上で実行された場合に、請求項1から14のいずれかに記載の方法を実行するためのソフトウエア・コード部分を含む、コンピュータ・プログラム。
【請求項1】
クライアント−サーバ環境においてクライアントを認証するための方法であって、前記クライアント−サーバ環境が用いる通信プロトコルは、前記通信プロトコルに違反することなくヘッダ要求の拡張を可能とし、前記クライアント側において、前記方法が、
ヘッダ要求を発生するステップと、
クライアント認証情報を前記ヘッダ要求に挿入し、前記サーバが用いる認証プロセスとは独立して、サーバが認証情報を要求することなく、拡張ヘッダ要求を得るステップと、
前記拡張ヘッダ要求をサーバに送信するステップと、
認証が成功すると、前記サーバから情報を受信するステップと、
を含む、方法。
【請求項2】
前記通信プロトコルがHTTPプロトコルである、請求項1に記載の方法。
【請求項3】
前記認証情報が、前記サーバとのセッションを確立するための最初のヘッダ要求に含まれている、請求項1に記載の方法。
【請求項4】
前記認証情報が、クライアントの名前およびクライアントの公開鍵を含むクライアント証明書と、クライアントの秘密鍵を用いてクライアント証明書を含む前記ヘッダ要求のハッシュ値に対して生成されたデジタル署名と、を含む、請求項1に記載の方法。
【請求項5】
前記認証情報が、クライアントのブラウザによって前記ヘッダ要求に自動的に挿入される、請求項1に記載の方法。
【請求項6】
前記クライアントのブラウザが、スマート・カード読み取り装置を介してスマート・カードから前記認証情報を受信する、請求項5に記載の方法。
【請求項7】
スマート・カード読み取り装置を介してスマート・カードから前記認証情報を受信するクライアントの署名コンポーネントによって、前記認証情報が前記ヘッダ要求に自動的に挿入される、請求項1に記載の方法。
【請求項8】
クライアント−サーバ環境においてクライアントを認証するための方法であって、前記クライアント−サーバ環境が用いる通信プロトコルは、前記通信プロトコルに違反することなくヘッダ要求の拡張を可能とし、前記クライアントと前記サーバとの間でシステムが通信を確立し、前記システムが、
前記クライアントからヘッダ要求を受信するステップと、
認証情報を前記ヘッダ要求に挿入し、前記サーバが用いる認証プロセスとは独立して、サーバが認証情報を要求することなく、拡張ヘッダ要求(20)を得るステップと、
前記拡張ヘッダ要求をサーバに送信するステップと、
認証が成功すると、前記サーバから情報を受信するステップと、
を含む、方法。
【請求項9】
前記システムは、プロキシ・サーバ、ゲートウェイ、またはトンネルのいずれかである、請求項8に記載の方法。
【請求項10】
前記通信プロトコルがHTTPプロトコルであり、前記認証情報が、署名コンポーネントから前記認証情報を受信する挿入コンポーネントによって前記HTTP要求ヘッダに自動的に挿入される、請求項8に記載の方法。
【請求項11】
前記認証情報が、クライアントの名前およびクライアントの公開鍵を含むクライアント証明書と、クライアントの秘密鍵を用いてクライアント証明書を含む前記ヘッダ要求全体に対して生成されたデジタル署名と、を含む、請求項8に記載の方法。
【請求項12】
クライアント−サーバ環境においてクライアントを認証するための方法であって、前記クライアント−サーバ環境が用いる通信プロトコルは、前記通信プロトコルに違反することなくヘッダ要求の拡張を可能とし、前記サーバ側において、前記方法が、
認証情報を含むクライアント・ヘッダ要求を受信するステップと、
サーバ認証コンポーネントによって前記ヘッダ要求に含まれる前記認証情報の妥当性を確認するステップと、
認証が成功すると、前記クライアントに情報を提供するステップと、
を含む、方法。
【請求項13】
前記認証情報が、クライアントの名前およびクライアントの公開鍵を含むクライアント証明書と、クライアントの秘密鍵を用いて前記ヘッダ要求内容全体に対して生成されたデジタル署名と、を含む、請求項12に記載の方法。
【請求項14】
前記通信プロトコルがHTTPプロトコルであり、前記サーバ認証コンポーネントが、
前記クライアント証明書に含まれる前記公開鍵にアクセスするステップと、
前記公開鍵によって前記HTTP要求ヘッダに含まれる前記デジタル署名を復号し、ハッシュ値を得るステップと、
前記クライアントが用いたものと同じハッシュ・アルゴリズムを前記HTTP要求ヘッダに適用するステップと、
双方のハッシュ値が一致すると、認証を成功と見なすステップと、
を実行する、請求項12に記載の方法。
【請求項15】
クライアント−サーバ環境においてクライアントを認証するためのサーバ・システムであって、前記クライアント−サーバ環境が用いる通信プロトコルは、前記通信プロトコルに違反することなくヘッダ要求の拡張を可能とし、前記クライアントが前記ヘッダ要求における認証情報を前記サーバ・システムに提供し、前記サーバ・システムが、
入来するクライアント・ヘッダ要求に含まれる前記認証情報を読み取り、前記クライアントから前記認証情報を要求することなく、前記認証情報の妥当性を確認する機能を有する認証コンポーネントを含む、サーバ・システム。
【請求項16】
クライアント−サーバ環境においてサーバ・システムによって認証されるクライアント・システムであって、前記クライアント−サーバ環境が用いる通信プロトコルは、前記通信プロトコルに違反することなくヘッダ要求の拡張を可能とし、前記クライアント・システムが、
ブラウザと、
前記サーバが用いる認証プロセスとは独立して、サーバが認証情報を要求することなく、クライアント認証情報を前記ヘッダ要求に挿入するためのコンポーネントと、
を含む、クライアント・システム。
【請求項17】
前記認証情報が、クライアントの名前およびクライアントの公開鍵を含むクライアント証明書と、クライアントの秘密鍵を用いて前記ヘッダ要求内容のハッシュ値に対して生成されたデジタル署名と、を含む、請求項16に記載のクライアント・システム。
【請求項18】
スマート・カード読み取り装置と、
クライアントの秘密鍵、ならびにクライアントの名前および秘密鍵を含むクライアント証明書を含むセキュリティ・モジュールを有するスマート・カードと、
を更に含み、前記スマート・カードが、前記証明書をデジタル署名と共に前記挿入コンポーネントに供給し、前記デジタル署名が、前記秘密鍵によって前記証明書情報を含む前記ヘッダ要求のハッシュ値を暗号化した結果として得られる、請求項16に記載のクライアント・システム。
【請求項19】
クライアント認証情報をサーバ・システムに供給するためのプロキシ・サーバ・システムであって、前記プロキシ・サーバ・システムが、クライアント・システムおよびサーバ・システムとの通信接続を有し、前記システム間で用いられる通信プロトコルは、前記通信プロトコルに違反することなくヘッダ要求の拡張を可能とし、前記プロキシ・サーバ・システムが、
前記サーバが用いる認証プロセスとは独立して、サーバが認証情報を要求することなく、前記クライアントから受信した前記ヘッダ要求にクライアント証明書およびデジタル署名を挿入するためのプロキシ挿入コンポーネントと、
デジタル署名を作成し、それを前記クライアント証明書と共に前記プロキシ挿入コンポーネントに供給するための署名コンポーネントと、
を含む、プロキシ・サーバ・システム。
【請求項20】
デジタル・コンピュータの内部メモリに保存されるコンピュータ・プログラムであって、前記プログラムが前記コンピュータ上で実行された場合に、請求項1から14のいずれかに記載の方法を実行するためのソフトウエア・コード部分を含む、コンピュータ・プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公表番号】特表2009−514050(P2009−514050A)
【公表日】平成21年4月2日(2009.4.2)
【国際特許分類】
【出願番号】特願2006−518190(P2006−518190)
【出願日】平成16年5月19日(2004.5.19)
【国際出願番号】PCT/EP2004/050864
【国際公開番号】WO2005/006703
【国際公開日】平成17年1月20日(2005.1.20)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WINDOWS
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】
【公表日】平成21年4月2日(2009.4.2)
【国際特許分類】
【出願日】平成16年5月19日(2004.5.19)
【国際出願番号】PCT/EP2004/050864
【国際公開番号】WO2005/006703
【国際公開日】平成17年1月20日(2005.1.20)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WINDOWS
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】
[ Back to top ]