以下、図面を参照しながら本発明の幾つかの実施形態について詳細に説明する。
図1は、本発明の第一の実施形態に係るユーザ認証システムの構成例を示す図である。
ここでは、わかりやすくイメージするために、ホームサイトとは別にログインを試みるサーバの一例として、コミュニティサイト(以下、「コムサイト」と記述する)を運用するサーバを想定する。もちろん、コミュニティサイトに限らず、あらゆる用途のサーバが、ログインを試みるサーバとして適用されても良い。
クライアント1と、コムサイトサーバ2と、2つのホームサイトサーバ3A、3Bとが、それぞれ通信ネットワーク4を介して接続されている。通信ネットワーク4は、インターネットやLAN(Local Area Network)等である。本実施形態では、説明の便宜上、通信ネットワーク4に接続されるホームサイトサーバの数を2つとしているが、この数を1つとしてもよいし、3つ以上としてもよい。
クライアント1は、通信ネットワーク4に接続されたサーバ(コムサイトサーバ2やホームサイトサーバ3等)にアクセスする計算機(例えば、パーソナルコンピュータ)である。クライアント1は、例えば、Webページを閲覧するためのアプリケーションであるWebブラウザ11を備える。クライアント1のユーザは、Webブラウザ11を利用することで、通信ネットワーク4を介してコムサイトサーバ2やホームサイトサーバ3が提供するWebサイト22,32にアクセスし、そのWebサイト22,32に含まれるWebページを閲覧することができる。具体的には、例えば、Webブラウザ11は、クライアント1のユーザからの指示に従って、閲覧の対象となるWebページのURL(Uniform Resource Locator)を指定した、Webサイト22,32へのアクセス要求を、コムサイトサーバ2やホームサイトサーバ3へ送信する。アクセス要求を受信したコムサイトサーバ2やホームサイトサーバ3は、そのアクセス要求において指定されたURLによって特定されるWebページを、Webブラウザ11へ送信する。コムサイトサーバ2やホームサイトサーバ3からWebページを受信したWebブラウザ11は、クライアント1が備えるディスプレイ(図示しない)に、その受信したWebページを表示する。
ホームサイトサーバ3は、所定のWebページ群であるWebサイト32(アクセスするために、例えば、個人がある程度特定され得る個人情報(例えば、氏名や住所等であり、以下、「第一種個人情報」という)が登録されるWebサイトであり、例えば、社内システムを運用するWebサイト等)を、通信ネットワーク4を介して、クライアント1のユーザに提供する計算機(サーバマシン)である。ホームサイトサーバ3は、特定のユーザ(例えば、Webサイト32が社内システムを運用するWebサイトである場合は、その会社の従業員)に、そのWebサイト32へのアクセスを許可する。従って、例えば、ホームサイトサーバ3は、そのWebサイト32へのアクセスを許可するユーザを、予めサーバ3に登録しておく。そして、ホームサイトサーバ3は、クライアント1のWebブラウザ11からWebサイト32へのアクセス要求を受信したとき、所望のWebページをクライアント1に送信する前に、そのアクセス要求を出したクライアント1のユーザの認証を行う。このユーザ認証では、アクセス要求を出したクライアント1のユーザが、ホームサイトサーバ3に登録されている、Webサイト32へのアクセスを許可される正当なユーザ(以下、「ホームサイト登録ユーザ」)であるか否かが判定される。アクセス要求を出したクライアント1のユーザが正当なユーザ(ホームサイト登録ユーザ)であると判定された場合に、ホームサイトサーバ3は、そのアクセス要求において指定されたURLによって特定されるWebページを、クライアント1のWebブラウザ11に送信する。
本実施形態では、上述したような、ホームサイトサーバ3のWebサイト32(或いは、コムサイト応答部35)へのアクセス要求を出したユーザについて、正当なユーザ(ホームサイト登録ユーザ)であるか否かを判定するユーザ認証を、「ホームサイト認証」と呼ぶこととする。ホームサイト認証は、通常の通信ネットワーク4を介したユーザ認証である。これに対し、コムサイトサーバ2のWebサイト22へのアクセス要求を出したユーザについて、正当なユーザ(コムサイトサーバ2のWebサイト22にアクセスできるユーザ)であるか否かを判定するユーザ認証を、「コムサイト認証」と呼ぶこととする。ホームサイト認証は、上述したように、アクセス要求を受信したホームサイトサーバ3によって行われる(即ち、サーバ3単独で行われる)。一方、コムサイト認証は、アクセス要求を受信したコムサイトサーバ2と、アクセス要求を出したユーザのホームサイトサーバ3(アクセス要求を出したユーザをホームサイト登録ユーザとして登録しているホームサイトサーバ3)とが連携することによって行われる。まず、図2を参照して、コムサイト認証の大まかな流れを説明する。
図2は、本実施形態に係るコムサイト認証の概要を示す図である。
コムサイト認証には、例えば、チャレンジアンドレスポンス方式のようなユーザ認証方式(即ち、2つの装置の各々において、両者のみが知り得る情報を利用して同一のコード列に対して所定の演算を施して、それらの結果が一致するか否かによりユーザが正当か否かを判定するユーザ認証方式)が採用される。通常、チャレンジアンドレスポンス方式では、上記2つの装置とは、認証を行う側の装置と認証の相手側の装置である。そして、認証を行う側がチャレンジの生成と受信したレスポンスの判定とを行い、認証の相手側がチャレンジに対するレスポンスの生成を行う。本実施形態におけるコムサイト認証では、認証を行う側である、アクセス要求を受信したコムサイトサーバ2が、上記所定の演算の対象となる任意のランダムなコード列である認証用コード列(以下、便宜上、「チャレンジ」と呼ぶ)の生成(同図(4))と、受信した応答用のコード列(上記ランダムなコード列に対して所定の演算を施して得られたコード列であり、以下、便宜上、「レスポンス」と呼ぶ)の判定(同図(16))とを行うが、認証の相手側であるクライアント1ではなく、認証の相手側であるクライアント1のユーザのホームサイトサーバ3が、レスポンスの生成(同図(13))を行う。コムサイト認証の大まかな流れは、次の通りである。尚、(9)〜(11)の処理は、ホームサイト認証の処理である。(7)の判定の結果に応じて、(8)〜(12)の処理が行われずに、(7)の処理の後に(13)の処理が行われることもある。
(1)クライアント1のユーザが、コムサイトサーバ2のWebサイト22へアクセス要求を出す。
(2)Webサーバ部21が、クライアント1のユーザを相手とするコムサイト認証を行う必要があるかどうかを判定する。
(3)Webサーバ部21が、コムサイト認証部23にコムサイト認証の依頼をする。
(4)コムサイト認証部23が、チャレンジを生成する。
(5)コムサイト認証部23が、ホームサイトサーバ3へのアクセス指示の応答((4)で生成したチャレンジがパラメータとして含まれる)をクライアント1へ送信する。
(6)クライアント1が、コムサイト応答部35へアクセス要求((4)で生成したチャレンジがパラメータとして含まれる)を出す。
(7)コムサイト応答部35が、クライアント1のユーザを相手とするホームサイト認証を行う必要があるかどうかを判定する。
(8)コムサイト応答部35が、ホームサイト認証部33にホームサイト認証の依頼をする。
(9)ホームサイト認証部33が、クライアント1に認証情報(例えば、パスワード)を要求する。
(10)クライアント1が、ユーザが入力した認証情報をホームサイト認証部33へ送信する。
(11)ホームサイト認証部33が、受信した認証情報が正当か否かを判定する。
(12)ホームサイト認証部33が、ホームサイト認証の結果((11)の判定の結果)をコムサイト応答部35へ通知する。
(13)コムサイト応答部35が、チャレンジ((6)で受信したもの)に基づいてレスポンスを生成する。
(14)コムサイト応答部35が、コムサイトサーバ2へのアクセス指示の応答((13)で生成したレスポンスがパラメータとして含まれる)をクライアント1へ送信する。
(15)クライアント1が、コムサイト認証部23へアクセス要求((13)で生成したレスポンスがパラメータとして含まれる)を出す。
(16)コムサイト認証部23が、受信したレスポンスが正当か否かを判定する。
図1に戻る。図2で説明したように、ホームサイトサーバ3は、コムサイト認証における一部の処理(コムサイトサーバ2のWebサイト22へのアクセス要求を出したユーザが正当か否かの判定(図2(11))やレスポンスの生成(図2(13))等)を行う。後述するように、コムサイトサーバ2は、ホームサイト登録ユーザに、自己(コムサイトサーバ2)のWebサイト22へのアクセスを許可する。従って、コムサイトサーバ2のWebサイト22へのアクセス要求を出したユーザ(以下、「コムサイトアクセスユーザ」)が正当か否かは、そのユーザがホームサイト登録ユーザであるか否かにより決定される。そのため、図2で説明したように、ホームサイトサーバ3は、コムサイトアクセスユーザを相手としてホームサイト認証を行うことで、そのユーザが正当か否かを判定する。ホームサイトサーバ3は、コムサイトアクセスユーザを相手としたホームサイト認証に成功した場合(コムサイトアクセスユーザが、自己のホームサイト登録ユーザである場合)に、そのユーザを正当なユーザと判定する。尚、ホームサイトサーバ3が複数ある場合に、コムサイトアクセスユーザのホームサイトサーバ3以外のホームサイトサーバ3(例えば、コムサイトアクセスユーザのホームサイトサーバ3をホームサイトサーバAとすれば、それ以外のホームサイトサーバ3であるホームサイトサーバB)がこの認証を行えば、本来は正当であるユーザも不当と判定されてしまう。そのため、この認証は、コムサイトアクセスユーザのホームサイトサーバ3(上記の例の場合は、ホームサイトサーバA)において行われる必要がある。ホームサイトサーバ3は、コムサイトアクセスユーザが正当であると判定された場合に、コムサイトサーバ2から受け取ったチャレンジに基づいてレスポンスを生成する。そして、ホームサイトサーバ3は、生成したレスポンスをコムサイトサーバ2へ渡す。コムサイトサーバ2とホームサイトサーバ3間におけるチャレンジとレスポンスの受け渡しは、図2で示したとおり、コムサイトアクセスユーザが利用するクライアント1を介して行われる。
ホームサイトサーバ3は、例えば、Webサーバ部31と、ホームサイト認証部33と、コムサイト応答部35とを備える。
Webサーバ部31は、クライアント1から受信したWebサイト32へのアクセス要求に対して、クライアント1へ所定の応答を返す機能ブロックである。Webサーバ部31には、ホームサイトサーバ3がクライアント1のユーザに提供するWebサイト32(Webページ群)が備えられる。例えば、Webサーバ部31は、クライアント1のWebブラウザ11からWebサイト32へのアクセス要求を受信したとき、既にそのクライアント1のユーザを相手としたホームサイト認証が行われておりそのユーザがホームサイト登録ユーザであると判定されているのか、それとも未だそのクライアント1のユーザを相手としたホームサイト認証が行われていないのかを判定する。この判定は、例えば、Webサイト32へのアクセス要求とともに受信するクッキー(Cookie)の情報を参照することにより行われる。既にそのクライアント1のユーザがホームサイト登録ユーザであると判定されている場合は、Webサーバ部31は、そのアクセス要求において指定されたURLによって特定されるWebページを、Webサイト32から選択する。そして、Webサーバ部31は、アクセス要求を行ったクライアント1のWebブラウザ11へ、選択したWebページを送信する。一方、未だそのクライアント1のユーザを相手としたホームサイト認証が行われていない場合は、Webサーバ部31は、ホームサイト認証部33に、そのクライアント1のユーザを相手としたホームサイト認証を行わせる。
ホームサイト認証部33は、ホームサイト認証を行う機能ブロックである。即ち、ホームサイト認証部33は、Webサイト32或いはコムサイト応答部35にアクセス要求を出したクライアント1のユーザが、ホームサイトサーバ3に予め登録されている、Webサイト32へのアクセスを許可される正当なユーザ(ホームサイト登録ユーザ)であるか否かを判定する。ホームサイト認証部33が備える記憶部(図示しない)には、ホームサイト登録ユーザテーブル34が記憶される。ホームサイト登録ユーザテーブル34には、ホームサイト登録ユーザごとに、それぞれの個人情報が記録される。ホームサイト登録ユーザテーブル34の詳細については、後述する。
ホームサイト認証には、例えば、パスワードが利用される。ホームサイト認証にパスワードが利用される場合は、ホームサイトサーバ3には、ホームサイト登録ユーザとともに、その各々のユーザIDとパスワードが登録される(ユーザIDとパスワードは、ホームサイト登録ユーザテーブル34に登録される)。この場合のホームサイト認証の流れは、例えば、次のようになる。即ち、まず、ホームサイト認証部33は、アクセス要求を出したクライアント1のWebブラウザ11に、ユーザIDとパスワードの入力を行わせるためのWebページ(ログイン用のWebページ)を送信する(図2(9))。Webブラウザ11は、受信したログイン用のWebページを表示してクライアント1のユーザからユーザIDとパスワードの入力を受け付ける。そして、Webブラウザ11は、その受け付けたユーザIDとパスワードを、ホームサイト認証部33に送信する(図2(10))。ホームサイト認証部33は、Webブラウザ11から受信したユーザIDとパスワードが、ホームサイト登録ユーザテーブル34に登録されているホームサイト登録ユーザのユーザIDとパスワードに一致するかどうかを判定する(図2(11))。それらが一致した場合に、ホームサイト認証部33は、アクセス要求を出したクライアント1のユーザを、ホームサイト登録ユーザと判定する。
コムサイト応答部35は、コムサイト認証における一部の処理(コムサイトアクセスユーザが正当か否かの判定(この判定はホームサイト認証部33に行わせる)とレスポンスの生成)を行う機能ブロックである。コムサイト応答部35は、コムサイトサーバ2から受け取ったチャレンジに対するレスポンスを生成するレスポンス生成部36を備える。また、コムサイト応答部35が備える記憶部(図示しない)には、プリシェアド情報37が記憶される。プリシェアド情報37とは、コムサイトサーバ2とホームサイトサーバ3とを関連付ける、両者のみが知り得る情報であり、レスポンスの生成に利用される情報である。例えば、関連付けられたコムサイトサーバ2とホームサイトサーバ3は、それぞれが保持するプリシェアド情報を、同一の情報とすることができる。本実施形態では、関連付けられたコムサイトサーバ2とホームサイトサーバ3は、互いに同一のプリシェアド情報を共有するものとするが、それらが保持するプリシェアド情報は、必ずしも同一である必要はない。例えば、関連付けられたコムサイトサーバ2とホームサイトサーバ3とが、相手が行うレスポンス生成のための演算処理を知っており或いは推測して、同じ計算結果になるように計算できる場合等は、それぞれが保持するプリシェアド情報が異なることもある。プリシェアド情報37としては、例えば、レスポンスの生成に利用されるキーや、レスポンスを生成するためのアルゴリズムを示す情報(どのような演算方法でレスポンスを生成すればよいかを特定する情報)等を採用することができる。
コムサイト応答部35が行う処理(以下、「応答処理」)は、例えば、コムサイト応答部35がコンピュータプログラムによって実現される場合は、そのプログラムをアクセス先とするアクセス要求(アクセス先を示す情報にそのプログラム名が含まれるアクセス要求)を受信することにより、その実行が開始される。このアクセス要求を出すユーザは、通常、コムサイトサーバ2のWebサイト22へアクセス要求を出したユーザ(即ち、コムサイトアクセスユーザ)である。尚、コムサイトアクセスユーザ以外のユーザからアクセス要求を受信した場合は、コムサイト応答部35は、必ずしも応答処理を実行する必要はない。アクセス要求とともにチャレンジが渡されなければ、コムサイト応答部35は、レスポンスの生成を行えないからである。
応答処理の流れは、例えば、次のようになる。即ち、コムサイト応答部35は、まず、既にそのコムサイトアクセスユーザを相手としたホームサイト認証が行われておりそのユーザがホームサイト登録ユーザであると判定されているのか、それとも未だそのコムサイトアクセスユーザを相手としたホームサイト認証が行われていないのかを判定する(図2(7))。この判定は、Webサーバ部31が行う判定と同様に、例えば、コムサイト応答部35へのアクセス要求とともに受信するクッキーの情報を参照することにより行われる。未だそのコムサイトアクセスユーザを相手としたホームサイト認証が行われていない場合は、コムサイト応答部31は、ホームサイト認証部33に、そのコムサイトアクセスユーザを相手としたホームサイト認証を行わせる(図2(8))。このホームサイト認証に成功した場合、或いは、既にそのコムサイトアクセスユーザがホームサイト登録ユーザであると判定されている場合は、コムサイト応答部31は、レスポンス生成部36に、レスポンスの生成を行わせる。レスポンス生成部36は、プリシェアド情報37を利用して、アクセス要求とともに受け取ったチャレンジに対するレスポンスを生成する(図2(13))。
その後、コムサイト応答部35は、このコムサイト認証のその後の処理(レスポンスの判定(図2(16)))を行うサーバ(即ち、コムサイトサーバ2)へのアクセスを指示する応答(以下、「アクセス指示応答」)を、ホームサイトアクセスユーザが利用するクライアント1のWebブラウザ11へ送信する(図2(14))。このアクセス指示応答には、例えば、アクセス先を示す情報や、コムサイトサーバ2から受信したチャレンジや、レスポンス生成部36が生成したレスポンスや、このコムサイト認証の相手とされているコムサイトアクセスユーザに関する個人情報(個人がほとんど特定されない程度の個人情報(例えば、ユーザIDや性別等であり、以下、「第二種個人情報」という))等が含まれる。このアクセス指示応答に含まれる情報のうち、レスポンス生成部36が生成したレスポンス以外の情報については、アクセス指示応答に含めるか否かは任意である。例えば、クライアント1が、その後のアクセス先となるコムサイトサーバ2を示す情報(ドメイン名やプログラム名等)を保持している場合は、上記アクセス先を示す情報は、このアクセス指示応答に必ずしも含まれなくともよい。また、コムサイトサーバ2が、レスポンスを送信してきたクライアント1のユーザの確認を行うためにクライアント1に発行したチャレンジを利用する場合は、コムサイトサーバ2から受信したチャレンジが、このアクセス指示応答に含められる。
このアクセス指示応答に含められる、コムサイトアクセスユーザに関する第二種個人情報は、例えば、コムサイトサーバ2とホームサイトサーバ3間で予め行われた取り決め(例えば、ホームサイトサーバ3がどの程度の情報をコムサイトサーバ2へ開示するか等を定めた取り決め)に基づいて定められる。尚、アクセス指示応答に含められるユーザIDは、ホームサイト認証に用いられるユーザIDとは別個のユーザID(例えば、後述するコムサイト用ID)とされる。ホームサイトサーバ3がホームサイト登録ユーザを識別するためのユーザIDと、コムサイトサーバ2がその正当なユーザを識別するためのユーザIDとを同一にすることは、好ましくないからである。また、ホームサイト認証に用いられるユーザIDに加えてパスワードも、通常、アクセス指示応答には含まれない。ホームサイト認証に用いられるユーザIDやパスワードが、ホームサイト認証を行うサーバ以外のサーバであるコムサイトサーバ2に通知されるのは、セキュリティ上、好ましくないからである。
アクセス先を示す情報としては、例えば、通信ネットワーク4上におけるコムサイトサーバ2の場所(ドメイン名)やアクセスした際に実行されるプログラム名が埋め込まれたURLとすることができる。アクセス先を示す情報をURLとする場合は、例えば、アクセス指示応答を、URLによって示されるアクセス先に自動的に転送されるリダイレクトの応答とすることができる。また、アクセス先を示す情報をURLとする場合は、コムサイト応答部35は、アクセス指示応答に含められる全ての情報をそのURLに埋め込んで、クライアント1に渡すことができる。尚、コムサイト応答部35は、アクセス指示応答に含められるアクセス先を示す情報以外の情報を、URLには埋め込まずにPostデータとして、クライアント1に渡すこともできる。
アクセス指示応答を受信したクライアント1のWebブラウザ11は、その応答に含まれるアクセス先を示す情報によって特定されるアクセス先へアクセスする(図2(15))。クライアント1がその後のアクセス先となるコムサイトサーバ2を示す情報を保持しており、上記アクセス指示応答にアクセス先を示す情報が含まれていない場合は、クライアント1は、自己が保持するアクセス先を示す情報によって特定されるアクセス先(即ち、コムサイトサーバ2)へアクセスすることができる。この際、アクセス指示応答に含まれている全ての情報が、アクセス先に渡される。以上により、ホームサイトサーバ3のコムサイト応答部35において生成されたレスポンスが、コムサイトサーバ2のレスポンス判定部25に渡される。
コムサイトサーバ2は、所定のWebページ群であるWebサイト(例えば、個人がある程度特定され得る個人情報(即ち、第一種個人情報)の登録なしでアクセスできることが望まれるWebサイトであり、例えば、コミュニティサイト等)22を、通信ネットワーク4を介して、クライアント1のユーザに提供する計算機(サーバマシン)である。コムサイトサーバ2は、ホームサイトサーバ3のWebサイト32にアクセスすることができるユーザ(即ち、ホームサイト登録ユーザ)に、自己(コムサイトサーバ2)のWebサイト22へのアクセスを許可する。尚、ホームサイトサーバ3が複数ある場合は、全てのホームサイトサーバ3(本実施形態では、ホームサイトサーバAとホームサイトサーバB)のそれぞれのホームサイト登録ユーザが、コムサイトサーバ2のWebサイト22へのアクセスを許可される。以下、コムサイトサーバ2がそのWebサイト22へのアクセスを許可するユーザを、「コムサイト正当ユーザ」と呼ぶ。例えば、本実施形態の場合は、コムサイト正当ユーザは、ホームサイトサーバAのホームサイト登録ユーザと、ホームサイトBのホームサイト登録ユーザとの集合となる。
コムサイトサーバ2は、例えば、Webサーバ部21と、コムサイト認証部23とを備える。
Webサーバ部21は、クライアント1から受信したWebサイト22へのアクセス要求に対して、クライアント1へ所定の応答を返す機能ブロックである。Webサーバ部21は、ホームサイトサーバ3におけるWebサーバ部31と実質的に同じである。即ち、Webサーバ部21は、クライアント1のWebブラウザ11からWebサイト22へのアクセス要求を受信したとき、既にそのクライアント1のユーザ(コムサイトアクセスユーザ)を相手としたコムサイト認証が行われておりそのユーザがコムサイト正当ユーザであると判定されているのか、それとも未だそのコムサイトアクセスユーザを相手としたコムサイト認証が行われていないのかを判定する(図2(2))。この判定は、Webサーバ部31が行う判定と同様に、例えば、Webサイト32へのアクセス要求とともに受信するクッキーの情報を参照することにより行われる。既にそのコムサイトアクセスユーザがコムサイト正当ユーザであると判定されている場合は、Webサーバ部21は、そのアクセス要求において指定されたURLによって特定されるWebページを、Webサイト22から選択する。そして、Webサーバ部21は、アクセス要求を行ったクライアント1のWebブラウザ11へ、選択したWebページを送信する。一方、未だそのコムサイトアクセスユーザを相手としたコムサイト認証が行われていないと判定された場合は、Webサーバ部21は、コムサイト認証部23に、そのコムサイトアクセスユーザを相手としたコムサイト認証を行わせる(図2(3))。
コムサイト認証部23は、コムサイト認証における一部の処理(チャレンジの生成(図2(4))と、ホームサイトサーバ3から受け取ったレスポンスが正当か否かの判定(図2(16)))を行う機能ブロックである。コムサイト認証部23は、コムサイト認証に利用するチャレンジを生成するチャレンジ生成部24と、ホームサイトサーバ3から受け取ったレスポンスが正当か否かを判定するレスポンス判定部25とを備える。また、コムサイト認証部23が備える記憶部(図示しない)には、プリシェアド情報テーブル27が記憶される。プリシェアド情報テーブル27には、ホームサイトサーバ3ごとに、それぞれのサーバ3と共有されるプリシェアド情報が記録される。プリシェアド情報テーブル27の詳細については、後述する。
コムサイト認証の流れは、例えば、次のようになる。まず、チャレンジ生成部24は、コムサイト認証に利用する任意のチャレンジを生成し、その生成したチャレンジをコムサイト認証部23が備える記憶部に記憶する(図2(4))。そして、チャレンジ生成部24は、このコムサイト認証のその後の処理(レスポンスの生成等)を行うサーバ(即ち、コムサイトアクセスユーザのホームサイトサーバ3)へのアクセスを指示する応答(アクセス指示応答)を、ホームサイトアクセスユーザが利用するクライアント1のWebブラウザ11へ送信する(図2(5))。このアクセス指示応答には、例えば、アクセス先を示す情報や、チャレンジ生成部24が生成したチャレンジや、レスポンスの返信先を示す情報が含まれる。このアクセス指示応答に含まれる情報のうち、チャレンジ生成部24が生成したチャレンジ以外の情報については、アクセス指示応答に含めるか否かは任意である。例えば、クライアント1が、その後のアクセス先となるホームサイトサーバ3やレスポンスの返信先であるサーバ(即ち、クライアント1がアクセス要求を出したコムサイトサーバ2)を示す情報(ドメイン名やプログラム名等)を保持している場合は、上記アクセス先を示す情報やレスポンスの返信先を示す情報は、このアクセス指示応答に必ずしも含まれなくともよい。このアクセス指示応答により、その応答に含まれる情報がクライアント1を介してアクセス先のサーバ3に渡される仕組みは、上述した、コムサイト応答部35が送信するアクセス指示応答の場合と、実質的に同じである(アクセス指示応答に含まれる情報とアクセス先を示す情報の内容とが異なる)。この応答を受信したクライアント1のWebブラウザ11は、その応答に含まれるアクセス先を示す情報によって特定されるアクセス先へアクセスする(図2(6))。クライアント1がその後のアクセス先となるホームサイトサーバ3を示す情報を保持しており、上記アクセス指示応答にアクセス先を示す情報が含まれていない場合は、クライアント1は、自己が保持するアクセス先を示す情報によって特定されるアクセス先(即ち、クライアント1のユーザのホームサイトサーバ3)へアクセスすることができる。以上により、コムサイトサーバ2のチャレンジ生成部24において生成されたチャレンジが、ホームサイトサイトサーバ3のコムサイト応答部35に渡される。
その後、ホームサイトサーバ3のコムサイト応答部35において応答処理が行われることにより、ホームサイトサーバ3のコムサイト応答部35において生成されたレスポンスが、コムサイトサーバ2のレスポンス判定部25に渡される。
レスポンス判定部25が行う判定処理は、例えば、レスポンス判定部25がコンピュータプログラムによって実現される場合は、そのプログラムをアクセス先とするアクセス要求を受信することにより、その実行が開始される。この判定処理において、レスポンス判定部25は、ホームサイトサーバ3から渡されたレスポンスが正当か否かを判定する(図2(16))。具体的には、レスポンス判定部25は、プリシェアド情報テーブル27を参照して、コムサイトアクセスユーザのホームサイトサーバ3に対応するプリシェアド情報を選択する。そして、レスポンス判定部25は、その選択したプリシェアド情報を利用して、ホームサイトアクセスサーバ3に渡したチャレンジ(コムサイト認証部23が備える記憶部に記憶されているチャレンジ、或いは、レスポンスとともにホームサイトサーバ3から渡されたチャレンジ)に基づいてレスポンスを生成する。そして、レスポンス判定部25は、自ら生成したレスポンスと、ホームサイトサーバ3から渡されたレスポンスとを比較する。それらが一致した場合に、レスポンス判定部25は、コムサイトアクセスユーザを、コムサイト正当ユーザと判定する。
図3は、ホームサイト登録ユーザテーブル34の一例を示す図である。
ホームサイト登録ユーザテーブル34は、ホームサイト登録ユーザごとに、そのユーザに関する個人情報を管理するテーブルである。本実施形態では、上述したように、二種類の個人情報がある。一つは、その情報単独でも個人がある程度特定され得る個人情報(第一種個人情報)である。第一種個人情報には、氏名や住所等が含まれる。第一の個人情報は、ユーザにとって、特に第三者に知られたくない情報である。もう一つは、その情報単独では個人が特定されない程度の個人情報(第二種個人情報)である。第二種個人情報には、例えば、ユーザIDやパスワードや性別や所属部署等が含まれる。ホームサイト登録ユーザテーブル34には、第一種個人情報と第二種個人情報のどちらが登録されてもよい。ホームサイト登録ユーザテーブル34には、ホームサイト登録ユーザごとに、例えば、ユーザID341と、パスワード342と、コムサイト用ID347とが記録される。ユーザID341は、そのホームサイト登録ユーザを、そのホームサイトサーバ3のWebサイト32内において一意に特定するための識別子である。パスワード342は、ホームサイト認証部33が行うユーザ認証において、その認証の成否を決定する(即ち、アクセス要求を出したクライアント1のユーザが、ホームサイト登録ユーザであるかどうかを決定する)ために用いられる任意のコード列である。コムサイト用ID347は、ユーザID341とは異なる、そのホームサイト登録ユーザを一意に特定するための識別子である。コムサイト用ID347は、例えば、ランダムな数値やそれ自体意味をなさないコード列とされる。コムサイト用IDがコムサイトサーバ2へ通知された場合は、例えば、コムサイトサーバ2は、通知されたコムサイト用IDを、コムサイト正当ユーザを識別するためのIDとして利用することができる。ホームサイト登録ユーザテーブル34には、ユーザID341とパスワード342の他に、ホームサイト登録ユーザごとに、例えば、氏名343や性別344や住所345や所属部署346等の様々な個人情報が記録される。
図4は、プリシェアド情報テーブル26の一例を示す図である。
プリシェアド情報テーブル26は、このコムサイトサーバ2がコムサイト認証において連携することができる全てのホームサイトサーバ3について、それぞれと共有されるプリシェアド情報を管理するテーブルである。プリシェアド情報テーブル27には、ホームサイトサーバ3ごとに、そのホームサイトサーバ名271と、そのホームサイトサーバ3と共有されるプリシェアド情報272とが記録される。尚、本実施形態では、ホームサイトサーバ3ごとにそれぞれ異なるプリシェアド情報がコムサイトサーバ2と共有されているが、これに代えて、全てのホームサイトサーバ3とコムサイトサーバ2との間で同一のプリシェアド情報が共有されてもよい。但し、この場合は、コムサイトサーバ2は、コムサイトアクセスユーザが、どのホームサイトサーバ3のホームサイト登録ユーザであるかを特定することはできず、ホームサイトサーバ3のうちのいずれかのホームサイト登録ユーザであることを把握できるにとどまる。
以上が、本実施形態に係るユーザ認証システムの構成の説明である。以下、図5及び図6を参照して、コムサイト認証が行われる際の処理の流れを説明する。
図5は、本実施形態に係るコムサイト認証が行われる際の処理のフローチャートである。図6は、図5の処理において指定されるURLの一例を示す図である。本処理の説明では、各サーバ2,3A,3Bのドメイン名として、コムサイトサーバ2には“comsite.net”が、ホームサイトサーバAには“homesite1.net”が、ホームサイトサーバBには“homesite2.net”が、それぞれ割り当てられているものとする。
まず、クライアント1のWebブラウザ11は、ユーザからの指示に従って、コムサイトサーバ2のWebサイト22に含まれる閲覧対象のWebページのURL(URL1)を指定したアクセス要求を、コムサイトサーバ2へ送信する(S1)。例えば、URL1としては、図6に示したもの(URL1の(例1))が指定される。
アクセス要求を受信したコムサイトサーバ2のWebサーバ部21は、アクセス要求とともに受信したクッキーの情報を参照して、アクセス要求を出したクライアント1のユーザの認証(コムサイト認証)を行う必要があるか否かを判定する(S2)。具体的には、Webサーバ部21は、アクセス要求とともに受信したクッキーの情報に、コムサイト正当ユーザであることを証明する情報(例えば、クライアント1のユーザがコムサイト認証を成功させた際に、クライアント1がコムサイトサーバ2から受け取った任意のコード列(例えば、セッションID))が含まれているか否かを判定する。クッキーの情報にコムサイト正当ユーザであることを証明する情報が含まれている場合は、コムサイト認証を行う必要がないと判定される。一方、クッキーの情報にコムサイト正当ユーザであることを証明する情報が含まれていない場合は、コムサイト認証を行う必要があると判定される。
コムサイト認証を行う必要がないと判定された場合は(S2:NO)、本処理は、S13に移行する。
一方、コムサイト認証を行う必要があると判定された場合は(S2:YES)、アクセス要求を出したクライアント1のユーザを相手とするコムサイト認証が行われる。以下、本処理の説明において、コムサイト認証の相手となるクライアント1のユーザを「対象ユーザ」と呼ぶ。尚、本例では、対象ユーザのホームサイトサーバ3を、ホームサイトサーバAとする。
コムサイト認証の処理が開始されると、まず、コムサイト認証部23のチャレンジ生成部24が、任意のチャレンジを生成する。そして、チャレンジ生成部24は、その生成したチャレンジを、コムサイト認証部23が備える記憶部に記憶する(S3)。尚、チャレンジ生成部24は、そのチャレンジを生成した時刻を、その生成したチャレンジと対応付けて記憶してもよい。
次に、コムサイト認証部23は、対象ユーザのホームサイトサーバ3であるホームサイトサーバAへのアクセスを指示するアクセス指示応答を、クライアント1のWebブラウザ11へ送信する(S4)。このアクセス指示応答に含まれるアクセス先を示す情報をURLとした場合、そのURLは、例えば、図6のURL2のようになる。図6のURL2には、アクセス指示応答に含まれる全ての情報が埋め込まれている。即ち、このURL2には、アクセス先のサーバ3のドメイン名及び実行されるプログラム名(2a)と、レスポンスの返信先を示す情報(2b)と、チャレンジ(2c)とが含まれている。アクセス先のサーバ3のドメイン名は、ホームサイトサーバAのドメイン名“homesite1.net”である。また、実行されるプログラム名は、“answer”である。従って、このアクセス指示応答を受信したクライアント1は、ホームサイトサーバAにアクセスすることになる。そして、アクセスされたホームサイトサーバAでは、“answer”と呼ばれる応答プログラムが実行されることになる。尚、“answer”と呼ばれるプログラムは、コムサイト応答部35を実現するプログラムに相当する。
尚、ホームサイトサーバ3が複数ある場合、コムサイト認証部23には、どのホームサイトサーバ3が対象ユーザのホームサイトサーバ3となるかがわからない。そのため、コムサイト認証部23は、アクセス先を示す情報に含めるドメイン名やプログラム名(URL2の(2a))を決定することができない。そこで、コムサイト認証部23は、例えば、対象ユーザから受信した情報に基づいて、アクセス先を示す情報に含めるドメイン名やプログラム名を決定することができる。具体的には、S1において、対象ユーザが、その対象ユーザのホームサイトサーバ3のドメイン名やコムサイト応答部35を実現するプログラムのプログラム名が埋め込まれたURLを指定して、アクセス要求を出す。このURLは、例えば、図6におけるURL1の(例2)のようになる。URL1の(例2)には、対象ユーザのホームサイトサーバ3であるホームサイトサーバAのドメイン名“homesite1.net”と、ホームサイトサーバAにおいてコムサイト応答部35を実現するプログラムのプログラム名“answer”とが含まれている(URL1の(例2)の(1))。尚、コムサイトサーバ2が、何らかの識別子や約束事によりそのドメイン名とプログラム名とを知ることができる場合は、URL1の(例2)の(1)の情報に代えて、対象ユーザのホームサイトサーバ3を示す情報が埋め込まれてもよい。
コムサイトサーバ2は、このURL1の(例2)の形式でアクセス要求を受けるために、例えば、対象ユーザにそのホームサイトサーバ3を指定させるWebページを、対象ユーザが利用するクライアント1へ送信することができる。そして、対象ユーザによって入力された情報(ホームサイトサーバ3を示す情報、或いはホームサイトサーバ3のドメイン名やプログラム名)が、URL1の(例2)のようにURLに組み込まれて、コムサイトサーバ2へ通知される。また、上記のようなWebページを送信しなくとも、対象ユーザ自身が、URLをURL1の(例2)の(1)のように編集して、アクセス要求を出してもよい。更に、URL1の(例2)の(1)のようなURLをブックマークしておけば、対象ユーザは、URLを編集することなく、また、上記のWebページ上でホームサイトサーバ3を指定することなく、URL1の(例2)の形式でアクセス要求を出すことができる。
コムサイト認証部23は、このドメイン名とプログラム名(URL1の(例2)の(1))を、アクセス先を示す情報に含めるドメイン名とプログラム名(URL2の(2a))と決定することができる。また、コムサイト認証部23は、URL1の(例2)から知り得た、対象ユーザのホームサイトサーバ3(本例では、ホームサイトサーバA)を、S3にて記憶されたチャレンジと対応付けて記憶する。こうすることで、レスポンス判定部25は、後述するS11の処理において、プリシェアド情報テーブル27に含まれるプリシェアド情報のうち、どのホームサイトサーバ3のプリシェアド情報を利用してレスポンスを生成すればよいを決定できるようになる(レスポンスの生成には、対象ユーザのホームサイトサーバ3に対応するプリシェアド情報が利用される)。
図5の処理の説明に戻り、コムサイトサーバ2のコムサイト認証部23からアクセス指示応答を受信したクライアント1のWebブラウザ11は、その応答に含まれるアクセス先を示す情報(URL2)によって特定されるアクセス先(即ち、ホームサイトサーバA)へアクセスする(S5)。
アクセスされたホームサイトサーバ3では、アクセス先を示す情報(URL2)に含まれているプログラム名“answer”によって特定されるプログラム(コムサイト応答部35を実現するプログラム)の実行が開始される。
コムサイト応答部35は、S5のアクセスの際に受信したクッキーの情報を参照して、対象ユーザを相手とするホームサイト認証を行う必要があるか否かを判定する(S6)。
ホームサイト認証を行う必要がないと判定された場合は(S6:NO)、本処理は、S8に移行する。
一方、ホームサイト認証を行う必要があると判定された場合は(S6:YES)、対象ユーザを相手とするホームサイト認証が行われる。即ち、ホームサイト認証部33は、対象ユーザが入力したユーザIDとパスワードが、ホームサイト登録ユーザテーブル34に登録されているものと一致するか否かを判定することにより、対象ユーザがホームサイト登録ユーザであるか否かを判定する(S7)。
対象ユーザがホームサイト登録ユーザではないと判定された場合は(S7:NO)、本処理は終了する。
一方、対象ユーザがホームサイト登録ユーザであると判定された場合は(S7:YES)、レスポンス生成部35は、プリシェアド情報37を利用して、受信したチャレンジ(URL2の(2c))に対するレスポンスを生成する(S8)。
その後、コムサイト応答部35は、対象ユーザがアクセス要求を出したコムサイトサーバ2へのアクセスを指示するアクセス指示応答を、クライアント1のWebブラウザ11へ送信する(S9)。このアクセス指示応答に含まれるアクセス先を示す情報をURLとした場合、そのURLは、例えば、図6のURL3のようになる。図6のURL3には、URL2と同様に、アクセス指示応答に含まれる全ての情報が埋め込まれている。即ち、このURL3には、アクセス先のコムサイトサーバ2のドメイン名及び実行されるプログラム名(3a)と、コムサイト用ID(3b)と、コムサイトサーバ2から受信したチャレンジ(3c)と、チャレンジに対するレスポンス(3d)と、性別(3e)とが含まれている。尚、このアクセス指示応答には、第二種個人情報としてコムサイト用ID(3b)と性別(3e)が含まれているが、これら以外の第二種個人情報、例えば、ユーザID、が含まれても良いし、必ずしも含まれなくても良い。また、第一種情報が含まれても良い。コムサイト応答部35は、URL2に含まれる、レスポンスの返信先を示す情報(2b)を、アクセス先のコムサイトサーバ2のドメイン名及びプログラム名(3a)と決定することができる。即ち、アクセス先のコムサイト2のドメイン名は“comsite.net”とされ、プログラム名は“confirm”とされる。従って、このアクセス指示応答を受信したクライアント1は、コムサイトサーバ2にアクセスすることになる。そして、アクセスされたコムサイトサーバでは、“confirm”と呼ばれる応答プログラムが実行されることになる。尚、“confirm”と呼ばれるプログラムは、レスポンス判定部25を実現するプログラムに相当する。
ホームサイトサーバAのコムサイト応答部35からアクセス指示応答を受信したクライアント1のWebブラウザ11は、その応答に含まれるアクセス先を示す情報(URL3)によって特定されるアクセス先(即ち、コムサイトサーバ)へアクセスする(S10)。
アクセスされたコムサイトサーバ2では、アクセス先を示す情報(URL3)に含まれているプログラム名“confirm”によって特定されるプログラム(レスポンス判定部25を実現するプログラム)の実行が開始される。
レスポンス判定部25は、S4及びS5にてホームサイトサーバ3に渡したチャレンジに対するレスポンスを生成する(S11)。具体的には、例えば、クライアント1に発行したチャレンジをキーとして、コムサイトサーバ2からチャレンジを受信したクライアント1のユーザとコムサイトサーバ2へレスポンスを送信してきたクライアント1のユーザとが対応するか否かが判定される。即ち、レスポンス判定部25は、レスポンスとともにホームサイトサーバ3から渡されたチャレンジ(URL3の(3c))に一致するものが、コムサイト認証部23が備える記憶部に記憶されていることを確認する(一致するものがない場合は、不正なアクセスとされ、レスポンス判定部25は、処理を終了する)。次に、レスポンス判定部25は、プリシェアド情報テーブル27を参照して、対象ユーザのホームサイトサーバ3(本例では、ホームサイトサーバA)に対応するプリシェアド情報を選択する。尚、ホームサイトサーバ3が複数あって個々にプリシェアド情報が異なる場合は、コムサイトサーバ2は、プリシェアド情報を選択する上で、対象ユーザのホームサイトサーバ3を知る必要がある。そこで、上述したように、コムサイトサーバ2には、S3にて記憶したチャレンジに対応付けて、そのチャレンジを送信した対象ユーザのホームサイトサーバ3を示す情報が記憶される。コムサイトサーバ2は、その記憶されている情報に基づいて、ホームサイトサーバ3に渡したチャレンジに対応するホームサイトサーバ3を対象ユーザのホームサイトサーバ3と決めることができる。レスポンス判定部25は、その選択したプリシェアド情報を利用して、ホームサイトサーバ3に渡したチャレンジ(S3にて記憶されたチャレンジ、或いは、レスポンスとともにホームサイトサーバ3から渡されたチャレンジ(URL3の(3c)))に対するレスポンスを生成する。
尚、コムサイトサーバ2は、レスポンスの生成を行う前に、S10のアクセス要求を受けた時刻と、S3にて記憶されたチャレンジを生成した時刻との時刻の差を計算して、その時刻の差が所定値以上となった場合には、S11以降の処理を行わない(即ち、対象ユーザからのアクセスを許可しない)ようにすることもできる。
次に、レスポンス判定部25は、S11にて生成したレスポンスと、ホームサイトサーバ3から渡されたレスポンス(URL3の(3d))とが一致するかどうかを判定する(S12)。
両レスポンスが一致しなかった場合は(S12:NO)、本処理は終了する。
一方、両レスポンスが一致した場合は(S12:YES)、Webサーバ部21は、S1のアクセス要求において指定されたURLによって特定されるWebページを、Webサイト22から選択する。そして、Webサーバ部21は、対象ユーザが利用するクライアント1のWebブラウザ11へ、選択したWebページを送信する(S13)。
尚、コムサイトサーバ2は、ホームサイトサーバ3から渡された対象ユーザに関する第二種個人情報(URL3の(3b)や(3e))を、コムサイトサーバ2が備える記憶部に記憶してもよい。例えば、本例の場合は、コムサイトサーバ2は、URL3に含まれるユーザID(3b)である“51”と、性別(3e)である“female”とを記憶することができる。
以上が、コムサイト認証が行われる際の処理の流れの説明である。上述した処理が行われることにより、クライアント1のユーザ(対象ユーザ)は、その対象ユーザに関する、個人がある程度特定され得る個人情報(第一種個人情報)をコムサイトサーバ2に登録することなく、コムサイトサーバ2へアクセスできるようになる。対象ユーザがコムサイトサーバ2にアクセスするために、対象ユーザ自らが自己の個人情報をコムサイトサーバ2へ登録する必要がなくなる。一方で、コムサイトサーバ2へのアクセスが許可されるためには、対象ユーザが、ホームサイトサーバ3(コムサイトサーバ2と連携してコムサイト認証を行うことができるサーバ)の正当なユーザであることが前提となる。従って、コムサイトサーバ2と連携可能なホームサイトサーバ3をどのように定めるかによって、コムサイトサーバ2は、そのサーバ2にアクセス可能なユーザをある程度把握できるようになる。例えば、コムサイトサーバ2と連携可能なホームサイトサーバ3を、所定の会社の社内システムを運用するサーバ(その会社の従業員にアクセスを許可するサーバ)とすれば、コムサイトサーバ2は、そのサーバ2にアクセス可能なユーザはその所定の会社の従業員であると把握できるようになる。このように、コムサイトサーバ2は、そのサーバ2に通知された個人情報からは対象ユーザが誰であるかを特定できないが、コムサイトサーバ2の正当なユーザがホームサイトサーバ3の正当なユーザであることを根拠として、対象ユーザがどんな人物であるかをある程度把握できるようになる。
コムサイトサーバ2は、あるユーザについて、ホームサイトサーバ3のURLと、ホームサイトサーバ3から返される情報のみを知識として持つことを説明した。特に本発明の非常に特徴的なこととして、ログイン情報を共有する相手であるホームサイトサーバ3におけるログイン時にユーザを一意に識別できる情報(一般にはユーザID)を持たない、持つ必要がない、という点が挙げられる。つまり、ホームサイトサーバ3から与えられる情報以外に、コムサイトサーバ2のユーザがホームサイトサーバ3上の誰なのかを特定できる情報がないのであり、これはコムサイトサーバ2のサーバ管理者でさえ知り得ないのである。
尚、ホームサイトサーバ3からコムサイトサーバ2へ通知される個人情報は、第二種個人情報(通常、ホームサイト認証に用いられるユーザIDやパスワードを除いた第二種個人情報)である。そのため、情報を提供する側であるホームサイトサーバ3は、コムサイトサーバ2と連携するにあたって、セキュリティ上のリスクを負わなくともよくなる。
また、本実施形態において、ユーザが正当であることを示す情報としてホームサイトサーバ3からコムサイトサーバ2へ渡されるレスポンスは、それ自体では意味をなさないコード列である。つまり、ユーザが正当であることを示す情報は、例えば、「OK」或いは「NG」等のような単純な情報ではないため、その情報が改ざんされて不正アクセスを許可してしまうといったおそれはほとんどなくなる。
また、ホームサイトサーバ3は、コムサイトアクセスユーザがそのコムサイトサーバ2の正当なユーザであるか否か(ホームサイトサーバ3から見れば、レスポンスを含んだ応答を返す相手であるか否か)を、ホームサイト認証を行うことにより判定する。ここで、ホームサイト認証とは、上述したように、認証の相手となるユーザが、ホームサイトサーバ3の正当なユーザ(ホームサイトサーバ3のWebサイト32へのアクセス可能なユーザ)であるか否かを判定するユーザ認証である。即ち、このホームサイト認証を行うモジュール(ホームサイト認証部33に相当するモジュール)は、ホームサイトサーバ3がユーザ認証を行うサーバであれば、コムサイトサーバ2と連携するしないにかかわらず、通常、ホームサイトサーバ3に備えられるモジュールである。従って、ユーザ認証を行っているホームサイトサーバ3は、コムサイトサーバ2と連携する上で、既存のホームサイト認証を行うモジュールを利用でき、応答を返すためのモジュール(コムサイト応答部35に相当するモジュール)を追加するだけでコムサイトサーバ2と連携できるようになる。また、コムサイトサーバ2と連携する際には、既存のホームサイト認証を行うモジュールをそのまま利用できるので、そのホームサイト認証を行うモジュールに対して特別な拡張を要することもない。従って、ホームサイトサーバ3をコムサイトサーバ2と連携できるようしたからといって、ホームサイトサーバ3上の既存のユーザ認証システムは、何らの影響も受けることなく、既存のユーザ認証システムに不具合が生じることはほとんどない。
更に、コムサイトサーバ2とホームサイトサーバ3との間での情報(チャレンジやレスポンス等)の受け渡しは、クライアント1を介して行われる。即ち、コムサイトサーバ2とホームサイトサーバ3とが、直接情報の受け渡しを行う必要がない。そのため、コムサイトサーバ2とホームサイトサーバ3とは、それ程密な関係とはなっておらず、共有のプリシェアド情報がそれぞれに登録されることによって関係づけられる。従って、例えば、コムサイトサーバ2と連携可能なホームサイトサーバ3を新たに追加する際には、プリシェアド情報テーブル27にその新たなホームサイトサーバ3との間で共有するプリシェアド情報を追加するだけでよく、簡単にホームサイトサーバ3の追加を行うことができる。また、コムサイトサーバ2とホームサイトサーバ3が配置される通信ネットワーク上の位置が制限されることもなく、例えば、それらが同一のドメイン内に限られることはない。
以下、本実施形態の変形例について説明する。
第一の変形例では、図5におけるS8及びS11の処理を次のように行う。
即ち、S8では、レスポンス生成部35は、プリシェアド情報37を利用して、受信したチャレンジ(URL2の(2c))とユーザを識別するための情報(例えば、コムサイト用ID)とを含めた情報に対して所定の演算を施して、レスポンスを生成する。具体的には、例えば、受信したチャレンジ(本例では“abcdef123456”)とユーザを識別するための情報(本例におけるコムサイト用IDとすれば“51”)とを結合させて一つのコード列(例えば、“51abcdef123456”)とし、そのコード列に対してプリシェアド情報37を利用した所定の演算を施してレスポンスを生成する。そして、ホームサイトサーバ3は、このレスポンスの生成に用いた、ユーザを識別するための情報(コムサイト用ID)を、S9及びS10にて説明したのと同様の方法で、レスポンスとともにコムサイトサーバ2へ通知する(上記の例では、URL3の(3b)として通知される)。
S11では、レスポンス判定部25は、プリシェアド情報テーブル27から選択したプリシェアド情報を利用して、ホームサイトサーバ3に渡したチャレンジとホームサイトサーバ3から渡されたユーザを識別するための情報(URL3の(3b))とを含めた情報に対して所定の演算を施して、レスポンスを生成する。このレスポンスの生成方法は、上記(本変形例におけるS8)と同様である。その後、このレスポンス判定部25が生成したレスポンスと、ホームサイトサーバ3から渡されたレスポンスとが一致するかどうかが判定される(S12)。S12以降の処理は、図5で説明したものと同様である。
本変形例では、もし、ホームサイトサーバ3のレスポンス生成部35がレスポンスの生成に用いたユーザを識別するための情報と、コムサイトサーバ2のレスポンス判定部25がレスポンスの生成に用いたユーザを識別するための情報とが異なっていれば、レスポンス生成部35とレスポンス判定部25のそれぞれが生成するレスポンスは、異なることになる。つまり、本変形例のS12の判定においては、正当なプリシェアド情報でレスポンスが生成されているかどうかだけでなく、ホームサイトサーバ3から渡されたユーザを識別するための情報が正しいか否かをも判定していることになる。従って、例えば、コムサイトサーバ2に渡されたユーザを識別するための情報が、通信ネットワーク4上で或いはクライアント1で異なる情報に改ざんされた場合は、S12の判定において両レスポンスが一致することはなく、コムサイトサーバ2は、そのアクセスを拒否することができるようになる。このように、レスポンスの伝達をサーバ2,3間で直接行わずにクライアント1経由で行うことにより、クライアント1等での情報改ざん(例えば、ユーザの識別情報が別ユーザの識別情報にすりかえること等)のリスクが発生するが、本変形例によれば、両サーバ2,3では、ホームサイトサーバ3からコムサイトサーバ2へ渡された情報(例えば、ユーザ識別情報)を含めてレスポンスが生成されるので、その改ざんの検出が可能となる。更に、コムサイトサーバ2では、ホームサイトサーバ3から通知された情報が改ざんされていないことを検出できるので、ホームサイトサーバ3におけるユーザのユーザ名やメールアドレス等を確実に継承できるようになる。
次に、第二の変形例について説明する。
第二の変形例では、コムサイトサーバ2が、コムサイトサーバ2からチャレンジを受信したクライアント1のユーザ(最初にコムサイトサーバ2へアクセス要求を出したクライアント1のユーザ)とレスポンスを送信してきたクライアント1のユーザとが対応するか否かの判定を、クライアント1から受信したチャレンジ受信情報をキーとして行う。チャレンジ受信情報とは、クライアント1がコムサイトサーバ2からチャレンジを受信したことを示す情報(例えば、任意のコード列)であり、コムサイトサーバ2が、チャレンジを送信したクライアント1に発行するものである。このチャレンジ受信情報としては、例えば、暫定的に発行されたセッションのセッションID(以下、「暫定セッションID」)が利用される。具体的には、次のような処理が行われる。尚、以下の説明では、チャレンジ受信情報として暫定セッションIDを採用している。
即ち、コムサイトサーバ2は、例えば、S4にてアクセス指示応答を送信する際に、対象ユーザが利用するクライアント1に対して、暫定セッションIDを発行する。コムサイトサーバ2は、このクライアント1に発行する暫定セッションIDを、現在コムサイトサーバ2とクライアント1間で確立しているセッションのセッションIDとすることができる。クライアント1に発行された暫定セッションIDは、例えば、クライアント1のクッキーに書き込まれる。
また、コムサイトサーバ2は、クライアント1に発行した暫定セッションIDを、S4においてアクセス指示応答に含めてクライアント1に送信したチャレンジと対応付けて記憶する。例えば、コムサイトサーバ2が、図7に示すようなテーブル(暫定セッションID管理テーブル)を保持することで、暫定セッションIDとチャレンジとの対応付けを記憶することができる。
そして、S11において、まず、レスポンス判定部25は、S10におけるアクセス要求とともに受信したクッキーの情報に、本変形例のS4にて発行された暫定セッションIDが含まれていることを確認する。即ち、レスポンス判定部25は、受信したクッキーの情報に含まれる暫定セッションIDが、図7の暫定セッションID管理テーブルに登録されていることを確認する。登録されていなければ、レスポンス判定部25は、そのアクセスが不正であるとして処理を終了する。次に、レスポンス判定部25は、暫定セッションID管理テーブルを参照して、受信したクッキーの情報に含まれる暫定セッションIDに対応するチャレンジを選択する。そして、図5で説明した場合と同様に、レスポンス判定部25は、プリシェアド情報テーブル27を参照して、対象ユーザのホームサイトサーバ3(上記選択したチャレンジに対応付けて記憶されているホームサイトサーバ3であり、本例では、ホームサイトサーバA)に対応するプリシェアド情報を選択する。レスポンス判定部25は、その選択したプリシェアド情報を利用して、ホームサイトアクセスサーバ3に渡したチャレンジ(即ち、暫定セッションID管理テーブルを参照して選択されたチャレンジ)に対するレスポンスを生成する。S12以降の処理は、図5で説明したものと同様である。
このように、本変形例では、コムサイトサーバ2は、チャレンジ受信情報をキーとして、コムサイトサーバ2からチャレンジを受信したクライアント1のユーザとコムサイトサーバ2へレスポンスを送信してきたクライアント1のユーザとが対応するか否かを判定する。つまり、本変形例では、両ユーザが対応するか否かを判定する際にチャレンジをキーとしないので、ホームサイトサーバ3が、コムサイトサーバ2から受信したチャレンジをレスポンスとともにコムサイトサーバ2へ渡す必要がなくなる。従って、本変形例によれば、チャレンジとレスポンスとの両方が、通信ネットワーク4上で或いはクライアント1で第三者に盗まれることがなくなる。よって、チャレンジとレスポンスとの両方が盗まれて、その盗んだ第三者がなりすましてコムサイトサーバ2へのアクセスを許可されるというようなことをなくすことができる。
以上が、第一の実施形態についての説明である。本実施形態に係るコムサイト認証の処理には、上述した2つの変形例(第一の変形例及び第二の変形例)を組み合わせて適用することができる。
図8は、第二の実施形態に係るユーザ認証システムの構成例を示す図である。
本実施形態におけるクライアント1、コムサイトサーバ2及びホームサイトサーバ3の構成は、第一の実施形態におけるものと実質的に同様である。また、コムサイト認証の処理の流れも第一の実施形態におけるものと実質的に同様である(第一の変形例及び/又は第二の変形例が適用されてもよい)。
本実施形態では、通信ネットワーク4が、所定の範囲に閉じられたネットワーク(例えば、社内LAN41)とインターネット42とから構成される。社内LAN41には、外部のネットワーク(即ち、インターネット42)からの侵入を防ぐためのシステム(例えば、ファイアーウォール)を備えたコンピュータ(以下、「ファイアーウォールサーバ5」)が備えられる。社内LAN41とインターネット42とは、ファイアーウォールサーバ5を介して接続される。ファイアーウォールサーバ5は、社内LAN41上の装置からインターネット42上の装置へのアクセスを許可するが、インターネット42上の装置から社内LAN41上の装置へのアクセスを禁止する。
本実施形態では、ホームサイトサーバ3が、社内LAN41に接続され、コムサイトサーバ2が、インターネット42に接続される。即ち、ホームサイトサーバ3としては、例えば、その社内LAN41を利用できるユーザ(例えば、その社内LANを保有する会社の従業員)にアクセスを許可するサーバ3が想定される。
このような構成とすることにより、コムサイト認証におけるセキュリティを強化することができる。即ち、ホームサイトサーバ3の正当なユーザ(会社の従業員)が利用する、社内LAN41に接続されたクライアントAは、社内LAN41を介してホームサイトサーバ3へアクセスでき、また、ファイアーウォールサーバ5を経由してコムサイトサーバ2へもアクセスできる。従って、クライアントAのユーザは、ホームサイトサーバ3の正当なユーザであれば、コムサイト認証を成功させて、コムサイトサーバ2へアクセスできる。これに対し、社内LAN41を利用できない不正なユーザが利用する、インターネット42に接続されたクライアントBは、コムサイトサーバ2にアクセスしようと試みても、ファイアーウォールサーバ5によってブロックされて社内LAN41上にあるホームサイトサーバ3にアクセスできないために、コムサイトサーバ2にアクセスできないことになる。従って、例えば、社内LAN41を利用できない不正なユーザがホームサイト認証に利用するユーザIDとパスワードを不正に取得して、コムサイトサーバ2にアクセスしようと試みても、ファイアーウォールによってそのアクセスが妨げられることになる。
尚、第一の実施形態でも述べたように、コムサイトサーバ2とホームサイトサーバ3との間での情報の受け渡しは、クライアント1を介して行われ、コムサイトサーバ2とホームサイトサーバ3とが、直接情報の受け渡しを行う必要がない。従って、コムサイトサーバ2がホームサイトサーバ3へアクセスする必要がないので、そのアクセスを許可するためのファイアーウォールの設定を行う必要はない。
図9は、第三の実施形態に係るユーザ認証システムの構成例を示す図である。
第二の実施形態と同様に、本実施形態におけるクライアント1、コムサイトサーバ2及びホームサイトサーバ3の構成は、第一の実施形態におけるものと実質的に同様である。また、コムサイト認証の処理の流れも第一の実施形態におけるものと実質的に同様である(第一の変形例及び/又は第二の変形例が適用されてもよい)。
本実施形態では、複数(ここでは3つ)のコムサイトサーバ2と、複数(ここでは2つ)のホームサイトサーバ3とが通信ネットワーク4に接続される。そして、例えば、コムサイトサーバa、コムサイトサーバb及びコムサイトサーバcの各々が、ホームサイトサーバA及びホームサイトサーバBと連携している場合を想定する。
このように複数のコムサイトサーバ2と複数のホームサイトサーバ3とが互いに重複して連携し合っている場合、連携している相手ごとに別個のプリシェアド情報を利用して、コムサイト認証を行うことができる。例えば、コムサイトサーバaは、ホームサイトサーバAと共有するプリシェアド情報Aaと、ホームサイトサーバBと共有するプリシェアド情報Baとを保持する。そして、コムサイトサーバaがホームサイトサーバAとの間でコムサイト認証を行う場合は、プリシェアド情報Aaを利用することができる。また、コムサイトサーバaがホームサイトサーバBとの間でコムサイト認証を行う場合は、プリシェアド情報Baを利用することができる。この点は、第一の実施形態においても説明したとおりである(第一の実施形態では、複数のホームサイトサーバ3ごとのプリシェアド情報が、プリシェアド情報テーブル27として保持されている)。
具体的には、コムサイトサーバ2は、次のように処理する。即ち、まず、コムサイトサーバ2(ここでは、コムサイトサーバaとする)は、クライアント1からのアクセス要求に加えて、そのアクセス要求を出したクライアント1のユーザのホームサイトサーバ3(ここでは、ホームサイトサーバAとする)を示す情報を受信する。コムサイトサーバaは、任意のチャレンジを生成して、生成したチャレンジとクライアント1から受信したホームサイトサーバAを示す情報とを対応付けて記憶する(クライアント1へチャレンジ受信情報(暫定セッションID)を発行する場合は、そのチャレンジ受信情報もチャレンジ及びホームサイトサーバAを示す情報と対応付けて記憶する)。その後、コムサイトサーバaは、生成したチャレンジを含んだアクセス指示応答をクライアント1へ送信する。
ホームサイトサーバAが生成したレスポンスをクライアント1から受信したときは、コムサイトサーバaは、上述したように、チャレンジ或いはチャレンジ受信情報をキーとして、コムサイトサーバaからチャレンジを受信したクライアント1のユーザとコムサイトサーバaへレスポンスを送信してきたクライアント1のユーザとが対応するかどうか確認する。対応している場合であってクライアント1からレスポンスとともにチャレンジを受信した場合は、コムサイトサーバaは、その受信したチャレンジと同一のものに対応付けて記憶されているホームサイトサーバ3(即ち、ホームサイトA)を示す情報を取得する。一方、対応している場合であってクライアント1からレスポンスとともにチャレンジ受信情報を受信した場合は、コムサイトサーバaは、その受信したチャレンジ受信情報と同一のものに対応付けて記憶されているホームサイトサーバ3(即ち、ホームサイトA)を示す情報を取得する。次に、コムサイトサーバaは、コムサイトサーバaが保持する複数のプリシェアド情報(即ち、プリシェアド情報Aa,Ba)のうち、上記取得したホームサイトサーバ3を示す情報によって特定されるホームサイトサーバAに対応するプリシェアド情報(即ち、プリシェアド情報Aa)を選択する。次に、コムサイトサーバaは、上記選択したプリシェアド情報Aaを利用して、クライアント1から受信したチャレンジ或いはチャレンジ受信情報と同一のものに対応付けて記憶されているチャレンジに対するレスポンスを生成する。そして、コムサイトサーバaは、生成したレスポンスとクライアント1から受信したレスポンスとが一致するか否かを判定し、一致したときに、クライアント1に対してコムサイトサーバaへのアクセスを許可する。
一方、ホームサイトサーバAは、コムサイトサーバaと共有するプリシェアド情報Aaと、コムサイトサーバbと共有するプリシェアド情報Abと、コムサイトサーバcと共有するプリシェアド情報Acとを保持する。そして、コムサイト認証を行う相手(コムサイトサーバ2)ごとに、それぞれと共有するプリシェアド情報(Aa,Ab,Acのいずれか)を利用して、コムサイト認証を行うことができる。
具体的には、ホームサイトサーバ3は、次のように処理する。即ち、まず、ホームサイトサーバ3(ここでは、ホームサイトサーバAとする)は、クライアント1からチャレンジを受信するが、この際、クライアント1がアクセス要求を出したコムサイトサーバ2(ここでは、コムサイトサーバaとする)を示す情報も併せて受信する(即ち、アクセス指示応答に、チャレンジとコムサイトサーバ2を示す情報とが含まれることになる)。ホームサイトサーバAは、チャレンジ及びコムサイトサーバaを示す情報を送信してきたクライアント1を利用するユーザの認証をホームサイト認証部33に行わせる。ホームサイト認証部33におけるユーザの認証が成功した場合に、ホームサイトサーバAは、ホームサイトサーバAが保持する複数のプリシェアド情報(即ち、プリシェアド情報Aa,Ab,Ac)のうち、クライアント1から受信したコムサイトサーバ2を示す情報によって特定されるコムサイトサーバaに対応するプリシェアド情報(即ち、プリシェアド情報Aa)を選択する。次に、ホームサイトサーバAは、上記選択したプリシェアド情報Aaを利用して、クライアント1から受信したチャレンジに対するレスポンスを生成する。そして、ホームサイトサーバAは、生成したレスポンスを含んだアクセス指示応答をクライアント1へ送信する。
このように、連携している相手ごとに別個のプリシェアド情報を利用することにより、それぞれの連携を独立したものとして管理することができる。例えば、コムサイトサーバaがホームサイトサーバAとの連携を解除しようとする場合は、コムサイトサーバa側でプリシェアド情報Aaを破棄する等して、そのプリシェアド情報Aaを利用しないようにすれば足りる。そして、この変更が、他のホームサイトサーバ3(ホームサイトサーバB)との連携関係に影響を与えることはない。反対に、ホームサイトサーバA側から見ても、同様のことが言える。即ち、例えば、ホームサイトサーバAがコムサイトサーバaとの連携を解除しようとする場合は、ホームサイトサーバA側でプリシェアド情報Aaを破棄する等して、そのプリシェアド情報Aaを利用しないようにすれば足りる。そして、この変更が、他のコムサイトサーバ2(コムサイトサーバb及びコムサイトサーバc)との連携関係に影響を与えることはない。
尚、本実施形態で示したような、連携している相手ごとに別個のプリシェアド情報を利用する方法は、一例にすぎない。例えば、コムサイトサーバ2が、複数のホームサイトサーバ3との連携をまとめて管理したい場合は、その複数のホームサイトサーバ3の各々と共有するプリシェアド情報を、同一の情報とすることができる。また、反対に、ホームサイトサーバ3が、複数のコムサイトサーバ2との連携をまとめて管理したい場合は、その複数のコムサイトサーバ2の各々と共有するプリシェアド情報を、同一の情報とすることができる。
上述した本発明の幾つかの実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。