[実施の形態1]
コンテキスト依存サービスでは、利用者が保持する装置(本実施の形態では、利用者の近くにある装置)が備えるセンサーで測定したセンサーデータ(例えば、位置データや時間データ)に基づくコンテキストを利用して、サービスへのアクセスを制限する。
本実施の形態は、コンテキスト依存サービスにおける不正利用を排除する。想定される脅威には、例えば、センサーデータの改竄による不正なコンテキストの生成、コンテキストの不正な改変、コンテキストの不正な流用や転用などがある。
また、利用者自身が不正に関与することも考えられる。利用者装置内のセンサーで計測されたセンサーデータは、利用者が改竄しやすい状況にある。また、利用者装置がマルウエアに感染している場合には、コンテキストが流出する可能性もある。
本実施の形態では、利用者装置の他に、コンテキストを発行する装置を設ける。
図1に、コンテキスト依存サービスに係るシステム構成例を示す。利用者端末101は、インターネットに接続可能であり、利用者が保持する装置である利用者端末101として、例えば携帯電話端末、タブレット端末、あるいはパーソナルコンピューターなどが用いられる。
コンテキスト発行装置103は、コンテキストを発行する装置である。コンテキスト発行装置103は、インターネットに接続可能である。コンテキスト発行装置103の信頼性が高ければ、前述の脅威は軽減される。例えば、耐タンパー性に優れ、マルウエアに感染しないように管理されていれば、コンテキスト発行装置103の信頼性は高い。
コンテキストは、時間や位置等のデータを含む。あるいは、時間や位置の条件に基づいて分類された識別子であってもよい。
コンテキスト依存サーバ105(図1では105a乃至105c)は、コンテキストに基づく認証を行う。つまり、コンテキスト依存サーバ105は、認証装置の例である。また、この例で、コンテキスト依存サーバ105は、サービスの提供も行う。但し、コンテキストに基づく認証を行う装置と、サービスを提供する装置とは、別に設けてもよい。
続いて、図2乃至4を用いて、コンテキスト依存サービスの利用態様について説明する。図2は、利用者がコンテキスト発行装置103を保持し、複数の利用者端末101の各々からコンテキスト依存サービスを利用する形態を示している。
時刻T1において、利用者は訪問先201でコンテキスト依存サービスを利用する。このとき、利用者は、携帯型の利用者端末101aをコンテキスト発行装置103とペアリングさせる。コンテキスト依存サーバ105は、コンテキストにより特定される時刻T1が訪問予定時間帯に含まれ、位置が訪問先201を指している場合に認証成功と判断する。認証に成功すると、利用者端末101aはコンテキスト依存サーバ105で管理する営業データにアクセスする。
続いて、時刻T2において、利用者は会社203でコンテキスト依存サービスを利用する。このとき、利用者は、デスクトップ型の利用者端末101bをコンテキスト発行装置103とペアリングさせる。コンテキスト依存サーバ105は、コンテキストにより特定される時刻T2が就業時間帯に含まれ、位置が会社203内を指している場合に認証成功と判断する。認証に成功すると、利用者端末101bはコンテキスト依存サーバ105で管理する社内DBにアクセスする。
更に、時刻T3において、利用者は自宅205でコンテキスト依存サービスを利用する。このとき、利用者は、ノート型の利用者端末101cをコンテキスト発行装置103とペアリングさせる。コンテキスト依存サーバ105は、コンテキストにより特定される時刻T3が自宅勤務の時間帯に含まれ、位置が自宅205を指している場合に認証成功と判断する。認証に成功すると、利用者端末101cはコンテキスト依存サーバ105で管理する掲示板にアクセスする。
図3は、利用者以外の者が保持するコンテキスト発行装置103とペアリングして利用者端末101からコンテキスト依存サービスを利用する形態を示している。
この例は、複数の施設を見学する場合を想定している。引率者が、コンテキスト発行装置103を携帯している。見学する利用者は、携帯型の利用者端末101を保持している。
時刻T4において、利用者は施設301aでコンテキスト依存サービスを利用する。利用者は、利用者端末101を引率者が保持するコンテキスト発行装置103とペアリングさせる。コンテキスト依存サーバ105は、コンテキストにより特定される時刻T4が施設301aの見学予定時間帯に含まれ、位置が施設301aを指している場合に認証成功と判断する。認証に成功すると、利用者端末101はコンテキスト依存サーバ105から施設301aについてのガイダンスをダウンロードする。
続いて、時刻T5において、利用者は施設301bでコンテキスト依存サービスを利用する。利用者は、利用者端末101を引率者が保持するコンテキスト発行装置103とペアリングさせる。コンテキスト依存サーバ105は、コンテキストにより特定される時刻T5が施設301bの見学予定時間帯に含まれ、位置が施設301bを指している場合に認証成功と判断する。認証に成功すると、利用者端末101はコンテキスト依存サーバ105から施設301bについてのガイダンスをダウンロードする。
更に、時刻T6において、利用者は施設301cでコンテキスト依存サービスを利用する。利用者は、利用者端末101を引率者が保持するコンテキスト発行装置103とペアリングさせる。コンテキスト依存サーバ105は、コンテキストにより特定される時刻T6が施設301cの見学予定時間帯に含まれ、位置が施設301cを指している場合に認証成功と判断する。認証に成功すると、利用者端末101はコンテキスト依存サーバ105から施設301cについてのガイダンスをダウンロードする。
図5は、特定場所に設置されたコンテキスト発行装置103とペアリングして任意の利用者端末101からコンテキスト依存サービスを利用する形態を示している。
この例は、展示会に不特定の参加者が訪れる場合を想定している。コンテキスト発行装置103は、展示会の会場に設置されている。展示会に参加する利用者の各々は、それぞれ携帯型の利用者端末101d乃至fを保持している。
展示会の会場で、各利用者は、時刻T7からT8までの間に、自らの利用者端末101を展示会の会場401に設置されているコンテキスト発行装置103とペアリングさせる。コンテキスト依存サーバ105は、コンテキストにより特定される時刻が展示会の開催時間帯に含まれ、位置が会場401を指している場合に認証成功と判断する。認証に成功すると、利用者端末101d乃至fはコンテキスト依存サーバ105で提供する展示物紹介のWebページを表示する。
続いて、本実施の形態に係る動作の概要について説明する。図5に、装置間のデータフローの例を示す。コンテキスト発行装置103は、コンテキスト発行装置103で生成した第1乱数を表示する(S501)。利用者は、第1乱数を目視し、利用者端末101に第1乱数を入力する。第1乱数は、コンテキスト発行装置103に送られ、コンテキスト発行装置103で第1乱数を検証することによって、利用者端末101とコンテキスト発行装置103との間のペアリングが行われる。つまり、第1乱数は、利用者端末101がコンテキスト発行装置103の近くから操作されていることを担保するために用いられる。
利用者端末101は、コンテキスト依存サーバ105へコンテキスト依存サーバ105の証明書(以下、サービス証明書という。)を要求する(S503)。コンテキスト依存サーバ105は、利用者端末101からの要求に応じて、サービス証明書を利用者端末101に返信する(S505)。サービス証明書の検証によって、コンテキスト依存サーバ105が正当であることが担保される。
利用者端末101は、コンテキスト発行装置103へコンテキストの発行を依頼する(S507)。コンテキスト発行依頼のデータには、前述の第1乱数が含まれている。
コンテキスト発行装置103は、種々の検証を行った上で、コンテキストを生成し、更に生成したコンテキストを秘匿化し、秘匿化コンテキストデータ(以下、秘匿化コンテキスト)を利用者端末101に返信する(S509)。
利用者端末101は、コンテキスト依存サーバ105にアクセスを要求する(S511)。アクセス要求のデータには、前述の秘匿化コンテキストが含まれている。
コンテキスト依存サーバ105は、秘匿化コンテキストに対して種々の検証を行う。そして、コンテキストが所定の条件を満たす場合に、認証成功と判定し、利用者端末101に対してアクセスチケットを返信する(S513)。
利用者端末101は、アクセスチケットを取得すると、そのアクセスチケットを送ることによって(S515)、コンテキスト依存サーバ105で提供するサービスを受ける(S517)。アクセスチケットを発したコンテキスト依存サーバ105以外のコンテキスト依存サーバ105で、サービスを提供するようにしてもよい。
続いて、各装置のモジュール構成について説明する。まず、コンテキスト発行装置103のモジュール構成について説明する。図6に、コンテキスト発行装置103のモジュール構成例を示す。コンテキスト発行装置103は、乱数生成部601、表示部603、受信部605、記憶部607、検証部609、コンテキスト生成部611、センサー群613、時計部615、秘匿化部617、格納部619及び送信部621を有している。
乱数生成部601は、第1乱数を生成する。表示部603は、第1乱数を表示する。受信部605は、インターネットを介してデータを受信する。
記憶部607は、種々のデータを記憶する。この例では、第1乱数、コンテキスト発行依頼のデータに含まれる連結乱数とサービス証明書を記憶している。連結乱数は、第1乱数と、利用者端末101で生成した第2乱数とを連結したデータである。
検証部609は、コンテキスト発行依頼のデータについて、種々の検証を行う。コンテキスト生成部611は、センサーデータや時刻などに基づいて、コンテキストデータを生成する。
センサー群613は、種々のセンサーを含んでいる。この例で、センサー群613は、GPSセンサー631、加速度センサー633、ジャイロセンサー635及び地磁気センサー637を含んでいる。GPSセンサー631は、位置データを計測する。加速度センサー633は、加速度を計測する。ジャイロセンサー635は、角度や角速度を計測する。地磁気センサー637は、地磁気の向きを検知する。地磁気センサー637は、更に地磁気の向きに基づき、方位を計測する。センサー群613は、他のセンサーを含むようにしてもよい。時計部615は、日付と時刻とを計測する。
秘匿化部617は、コンテキストを秘匿化する。格納部619は、コンテキスト発行装置103の署名鍵などのデータを格納している。送信部621は、インターネットを介してデータを送信する。
次に、利用者端末101のモジュール構成について説明する。図7に、利用者端末101のモジュール構成例を示す。利用者端末101は、受信部701、送信部703、受付部705、サービス証明書取得部707、記憶部709、検証部711、乱数生成部713、コンテキスト発行依頼部715、アクセスチケット取得部717及びサービス取得部719を有している。
受信部701は、インターネットを介してデータを受信する。送信部703は、インターネットを介してデータを送信する。受付部705は、第1乱数の入力を受け付ける。サービス証明書取得部707は、コンテキスト依存サーバ105からサービス証明書を取得する。
記憶部709は、種々のデータを記憶する。この例で、記憶部709は、第1乱数、サービス証明書、コンテキスト条件及び連結乱数を記憶する。
検証部711は、種々の検証を行う。乱数生成部713は、第1乱数と第2乱数とを連結させた連結乱数を生成する。コンテキスト発行依頼部715は、コンテキスト発行装置103にコンテキストの発行を依頼し、秘匿化コンテキストを取得する。アクセスチケット取得部717は、コンテキスト依存サーバ105に秘匿化コンテキストを転送し、アクセスチケットを取得する。サービス取得部719は、コンテキスト依存サーバ105にアクセスチケットを送り、コンテキスト依存サーバ105により提供されるサービスを受ける。
次に、コンテキスト依存サーバ105のモジュール構成について説明する。図8に、コンテキスト依存サーバ105のモジュール構成例を示す。コンテキスト依存サーバ105は、受信部801、送信部803、サービス証明書発行部805、格納部807、アクセスチケット発行部809、記憶部811、検証部813、登録部815、ハッシュ値DB817、サービス提供部819及び判定部821を有している。
受信部801は、インターネットを介してデータを受信する。送信部803は、インターネットを介してデータを送信する。
格納部807は、種々のデータを格納している。この例で、格納部807は、サービス証明書、コンテキスト条件、秘密鍵及びアクセスチケットを格納している。コンテキスト条件は、コンテキストの検証に用いられる。秘密鍵は、コンテキスト依存サーバ105固有の秘密鍵である。
アクセスチケット発行部809は、アクセス要求に応じて、アクセスチケットを発行する。記憶部811は、種々のデータを記憶する。この例で、記憶部811は、暗号化署名データ、暗号化被署名データ及び連結乱数を記憶する。
検証部813は、種々の検証を行う。登録部815は、秘匿化コンテキストから抽出されたハッシュ値をハッシュ値DB817に登録する。ハッシュ値DB817は、既に利用されたコンテキストを識別するためのハッシュ値を記憶する。ハッシュ値は、コンテキスト固有のデータの例である。サービス提供部819は、アクセスチケットに応じて、サービスを提供する。判定部821は、アクセスチケットの正当性を判定する。
図9、図10、図12及び図14に示したシーケンスに沿って、各装置の動作について説明する。まず、図9に示したシーケンスについて説明する。
コンテキスト発行装置103側で、乱数生成部601は、第1乱数を生成する(S901)。表示部603は、生成した第1乱数を表示する(S903)。利用者は、第1乱数を目視で確認し、利用者端末101に入力する(S905)。
利用者端末101側で、受付部705は、第1乱数入力を受け付ける(S907)。
更に、利用者端末101側で、サービス証明書取得部707は、コンテキスト依存サーバ105からコンテキスト条件とサービス証明書とを取得する(S909)。このとき、サービス証明書取得部707は、送信部703から証明書要求のデータをコンテキスト依存サーバ105に送信する(S911)。
コンテキスト依存サーバ105側で、受信部801が証明書要求のデータを受信すると、サービス証明書発行部805は、格納部807からサービス証明書とコンテキスト条件とを読み出して、送信部803を介して利用者端末101に返信する(S913)。
コンテキスト条件は、利用者端末101側の予備的な検証に用いられる。従って、利用者端末101側で予備的な検証を行わない場合には、コンテキスト条件を送信しないようにしてもよい。
利用者端末101側で、受信部701でサービス証明書とコンテキスト条件とを受信すると、サービス証明書取得部707は、サービス証明書とコンテキスト条件とを記憶部709に記憶させる。尚、コンテキスト条件を受信しない場合には、コンテキスト条件は記憶させない。
更に、利用者端末101側で、検証部711は、コンテキスト条件を検証する(S915)。この検証は、コンテキスト条件を満たさないことが自明の場合に処理を中断するための予備的な検証である。検証部711は、サービス証明書を検証する(S917)。この検証も、不正なコンテキスト依存サーバ105であることを予め検出するための予備的処理である。従って、S915とS917との検証は、省略されるようにしてもよい。
更に、利用者端末101側で、乱数生成部713は、第2乱数を生成する(S919)。更に、乱数生成部713は、記憶部709に記憶させている第1乱数と、第2乱数とを連結する(S921)。生成した連結乱数は、記憶部709に記憶される。このとき、生成した第2乱数を表示し、利用者に第2乱数を入力させるようにしてもよい。
更に、利用者端末101側で、コンテキスト発行依頼部715は、コンテキスト条件に基づいてコンテキスト発行装置103を選択する(S923)。例えば、コンテキスト条件で判定する情報を測定可能なコンテキスト発行装置103が選択される。但し、当該選択処理は省いてもよい。
更に、利用者端末101側で、コンテキスト発行依頼部715は、コンテキスト発行装置103にコンテキスト発行を依頼する(S925)。このとき、コンテキスト発行依頼部715は、送信部703からコンテキス発行依頼のデータをコンテキスト発行装置103に送信する(S927)。コンテキス発行依頼のデータには、連結乱数とサービス証明書とが含まれている。
コンテキスト発行装置103側で、受信部605は、コンテキス発行依頼のデータを受信すると、連結乱数とサービス証明書とを記憶部607に記憶させる。
図10に、シーケンスの続きを示す。コンテキスト発行装置103側で、検証部609は、第1乱数を検証する(S1001)。具体的には、検証部609は、連結乱数から第1乱数を抽出する。抽出した第1乱数が、記憶部607に記憶されている第1乱数と一致するか否かを判定する。抽出した第1乱数が、記憶部607に記憶されている第1乱数と一致すると判定した場合には、検証成功と判断し、処理を続行する。抽出した第1乱数が、記憶部607に記憶されている第1乱数と一致しないと判定した場合には検証失敗と判断し、第1乱数の検証に失敗したことを利用者端末101に通知する。そして、処理を中断する。この例で、第1乱数の検証成功は、ペアリングが成立したことを意味する。
続いて、コンテキスト発行装置103側で、検証部609は、サービス証明書を検証する(S1003)。証明書の検証方法は、従来の技術に従う。サービス証明書の検証に成功した場合には、処理を続行する。サービス証明書の検証に失敗した場合には、サービス証明書の検証に失敗したことを利用者端末101に通知する。そして、処理を中断する。
更に、コンテキスト発行装置103側のS1005乃至S1009の処理でコンテキストが生成される。コンテキスト生成部611は、センサー群613からセンサーデータを取得する(S1005)。センサー群613のうち、一部のセンサーデータを取得するようにしてもよい。コンテキスト生成部611は、更に、時計部615から現在時刻を取得する(S1007)。コンテキスト生成部611は、現在時刻に併せて当日の日付も取得するようにしてもよい。コンテキスト生成部611は、コンテキストデータを生成する(S1009)。この例で、コンテキストデータは、センサーデータや現在時刻を含む。但し、コンテキスト生成部611は、センサーデータや現在時刻に基づいて分類された状況や状態に関する識別子を生成し、当該識別子をコンテキストデータに含めるようにしてもよい。
続いて、秘匿化部617は、S1011乃至S1017の処理で、コンテキストを秘匿化する。
図11に、秘匿化部617の内部構成の例を示す。秘匿化部617は、算出部1101、被署名データ生成部1103、署名生成部1105、抽出部1107及び暗号化部1109を有している。算出部1101は、ハッシュ値の算出処理を行う。被署名データ生成部1103は、被署名データを生成する。署名生成部1105は、電子署名を生成する処理を行う。抽出部1107は、サービス証明書から公開鍵を抽出する。暗号化部1109は、データの暗号化を行う。
図10の説明に戻って、秘匿化部617は、連結乱数のハッシュ値を算出する(S1011)。具体的には、図11に示すように、算出部1101は、記憶部607から連結乱数を読み出し、連結乱数のハッシュ値を算出する。
図10の説明に戻って、秘匿化部617は、コンテキストデータとハッシュ値を連結する(S1013)。具体的には、図11に示すように、被署名データ生成部1103は、コンテキスト生成部611で生成されたコンテキストデータと、算出部1101で算出されたハッシュ値とを連結する。連結されたデータが、被署名データとなる。
図10の説明に戻って、秘匿化部617は、署名を生成する(S1015)。具体的には、図11に示すように、署名生成部1105は、格納部619からコンテキスト発行装置103の署名鍵を読み出し、被署名データ生成部1103で生成した被署名データに関する署名データを生成する。
図10の説明に戻って、秘匿化部617は、公開鍵による暗号化を行う(S1017)。具体的には、図11に示すように、抽出部1107は、記憶部607からサービス証明書を読み出し、サービス証明書から公開鍵を抽出する。公開鍵は、コンテキスト依存サーバ105の公開鍵である。そして、暗号化部1109は、公開鍵を用いて、署名データと被署名データとを暗号化する。その結果、署名データが暗号化された暗号化署名データと、被署名データが暗号化された暗号化被署名データとが生成される。但し、他の手順に従って、コンテキストを秘匿化するようにしてもよい。
図10の説明に戻って、送信部621は、秘匿化コンテキストを送信する(S1019)。この例では、送信部621は、暗号化署名データと暗号化被署名データとを含む秘匿化コンテキストを利用者端末101に送信する(S1021)。
利用者端末101側で、受信部701は、秘匿化コンテキストを受信すると、秘匿化コンテキストをコンテキスト発行依頼部715に渡す。このようにして、コンテキスト発行依頼部715は秘匿化コンテキストを取得する。
図12に、シーケンスの続きを示す。アクセスチケット取得部717は、コンテキスト依存サーバ105にアクセスを要求する(S1201)。具体的には、アクセスチケット取得部717は、記憶部709から連結乱数を読み取る。更に、アクセスチケット取得部717は、秘匿化コンテキストに含まれる暗号化署名データと暗号化被署名データと、連結乱数とを含むアクセス要求のデータを生成する。そして、送信部703から、コンテキスト依存サーバ105にアクセス要求のデータを送信する。つまり、伝送されるアクセス要求のデータには、暗号化署名データ、暗号化被署名データ及び連結乱数が含まれる(S1203)。
コンテキスト依存サーバ105側で、受信部801がアクセス要求のデータを受信すると、アクセス要求のデータは、アクセスチケット発行部809に渡される。アクセスチケット発行部809は、アクセス要求のデータに含まれる暗号化署名データ、暗号化被署名データ及び連結乱数を記憶部811に記憶させる。
続いて、検証部813は、S1205乃至S1217の処理で、アクセス要求に関する検証を行う。
図13に、検証部813の内部構成の例を示す。検証部813は、復号部1301、署名検証部1303、分離部1305、コンテキスト検証部1307、連結乱数検証部1309、再利用検出部1311及び時刻検証部1313を有している。
復号部1301は、暗号化されているデータを復号する。署名検証部1303は、電子署名を検証する処理を行う。分離部1305は、連結されているデータを分離する。コンテキスト検証部1307は、コンテキスト条件に従って、コンテキストを検証する。連結乱数検証部1309は、連結乱数を検証する。再利用検出部1311は、コンテキストの再利用を検出する。時刻検証部1313は、コンテキストに含まれる時刻を検証する。
図12の説明に戻って、検証部813は、秘密鍵による復号を行う(S1205)。具体的には、図13に示すように、復号部1301は、記憶部811から暗号化署名データと暗号化被署名データとを読み出し、更に、格納部807から秘密鍵を読み出す。そして、復号部1301は、暗号化署名データと暗号化被署名データとを、秘密鍵を用いて復号する。その結果、署名データと被署名データとが得られる。
図12の説明に戻って、検証部813は、電子署名を検証する(S1207)。具体的には、図13に示すように、署名検証部1303は、署名データの検証を行う。署名データの検証に成功した場合には、処理を続行する。署名データの検証に失敗した場合には、電子署名の検証に失敗したことを利用者端末101に通知する。そして、処理を中断する。
図12の説明に戻って、検証部813は、被署名データからコンテキストデータとハッシュ値とを分離する(S1209)。具体的には、図13に示すように、分離部1305は、被署名データにおいて連結されているコンテキストデータとハッシュ値とを分離する。
図12の説明に戻って、検証部813は、コンテキストを検証する(S1211)。具体的には、図13に示すように、コンテキスト検証部1307は、格納部807からコンテキスト条件を読み出し、コンテキストデータがコンテキスト条件を満たしているか否かを判定する。コンテキストデータがコンテキスト条件を満たしていると判定した場合には、コンテキストの検証結果を成功とし、処理を続行する。コンテキストデータがコンテキスト条件を満たしていないと判定した場合には、コンテキストの検証結果を失敗とし、コンテキストの検証に失敗したことを利用者端末101に通知する。そして、処理を中断する。
図12の説明に戻って、検証部813は、連結乱数を検証する(S1213)。具体的には、図13に示すように、連結乱数検証部1309は、記憶部811から連結乱数を読み出し、読み出した連結乱数のハッシュ値を算出する。そして、算出したハッシュ値と分離部1305で分離させたハッシュ値とを比較する。算出したハッシュ値と分離部1305で分離させたハッシュ値とが一致すると判定した場合には、連結乱数の検証結果を成功とし、処理を続行する。算出したハッシュ値と分離部1305で分離させたハッシュ値とが一致しないと判定した場合には、連結乱数の検証結果を失敗とし、連結乱数の検証に失敗したことを利用者端末101に通知する。そして、処理を中断する。
図12の説明に戻って、検証部813は、コンテキストの再利用を検出する(S1215)。具体的には、図13に示すように、再利用検出部1311は、分離部1305で分離させたハッシュ値が、ハッシュ値DB817に記憶されているハッシュ値のいずれかと一致するか否かを判定する。分離部1305で分離させたハッシュ値が、ハッシュ値DB817に記憶されているハッシュ値のいずれとも一致しないと判定した場合には、コンテキストの再利用ではないと判断する。そして、処理を続行する。分離部1305で分離させたハッシュ値が、ハッシュ値DB817に記憶されているハッシュ値のいずれかと一致すると判定した場合には、コンテキストの再利用であると判断する。そして、コンテキスト依存サーバ105は、コンテキストが再利用となることを利用者端末101に通知し、処理を中断する。
図12の説明に戻って、検証部813は、時刻を検証する(S1217)。具体的には、図13に示すように、時刻検証部1313は、コンテキストデータに含まれる時刻を特定する。そして、時刻検証部1313は、コンテキストデータ中の時刻と現在時刻の差分を算出する。差分は、コンテキストの生成時からの経過時間に相当する。そして、時刻検証部1313は、差分が閾値を越えているか否かを判定する。差分が閾値を越えていないと判定した場合には、時刻の検証結果を成功とし、処理を続行する。差分が閾値を越えていると判定した場合には、時刻の検証結果を失敗とし、時刻の検証に失敗したことを利用者端末101に通知する。そして、処理を中断する。
図14に、シーケンスの続きを示す。上述の検証に成功すると、登録部815は、ハッシュ値をハッシュ値DB817に登録する(S1401)。
更に、コンテキスト依存サーバ105側で、アクセスチケット発行部809は、アクセスチケットを利用者端末101に送信する(S1403)。具体的には、アクセスチケット発行部809は、アクセスチケットを生成し、生成したアクセスチケットを格納部807に格納する。あるいは、アクセスチケット発行部809は、予め格納部807に格納されているアクセスチケットを読み出す。そして、送信部803からアクセスチケットが利用者端末101に送信される(S1405)。
利用者端末101側で、受信部701がアクセスチケットを受信すると、アクセスチケット取得部717は受信したアクセスチケットを受け取る。
利用者端末101側で、サービス取得部719は、サービスを要求する(S1407)。このとき、サービス取得部719は、送信部703を介してサービス要求のデータを送信する(S1409)。サービス要求のデータには、アクセスチケットが含まれる。
コンテキスト依存サーバ105側で、受信部801が、サービス要求のデータを受信すると、サービス要求のデータは、サービス提供部819に渡される。サービス提供部819は、判定部821にサービス要求のデータに含まれるアクセスチケットが正当であるか否かを判定させる(S1411)。アクセスチケットが正当でないと判定した場合には、アクセスチケットが正当でないことを利用者端末101に通知する。そして、処理を中断する。
アクセスチケットが正当であると判定した場合には、サービス提供部819は、サービスを提供する(S1413)。例えば、サービス提供部819は、受信部801からサービスに係るデータを送信する(S1415)。
本実施の形態によれば、利用者端末101から要求を受けたコンテキスト発行装置103側でコンテキストを生成し、更に署名を付するので、利用者端末101における不正なコンテキストの生成やコンテキストの改変を防止できる。
また、利用者端末101の信頼性に関わらず、安全にコンテキストに基づくネットワーク認証を行うことができる。
更に、コンテキスト依存サーバ105において、連結乱数のハッシュ値に基づき利用者端末101とコンテキスト発行装置103との組み合わせが正当であることを検証するので、他の装置によるコンテキストの流用を防止することができる。
更に、乱数表示に基づくペアリングを行うので、コンテキスト発行装置103から離れた場所にある装置からの不正なコンテキスト生成要求を排除することができる。
更に、コンテキスト発行装置103においてコンテキスト依存サーバ105の公開鍵によりコンテキストを暗号化するので、他のコンテキスト依存サーバ105によるコンテキストの転用を防ぐことができる。
更に、既に利用されているコンテキストと同じハッシュ値を有するコンテキストを検出するので、同一コンテキストの繰り返し利用を禁止することができる。
更に、サービス証明書を検証するので、コンテキスト依存サーバ105の成りすましを防止できる。
更に、コンテキストに含まれる時刻を検証するので、生成から時間をあけて送られたコンテキストを無効とし、不正な時間差アクセスを排除できる。
[実施の形態2]
上述した実施の形態では、コンテキスト発行装置103からコンテキストを利用者端末101に返し、利用者端末101からコンテキスト依存サーバ105にアクセスを要求するアプライアンス型のコンテキスト発行装置103について説明した。本実施の形態では、コンテキスト発行装置103からコンテキスト依存サーバ105にアクセスを要求し、取得したアクセスチケットを利用者端末101に転送するプロキシ型のコンテキスト発行装置103について説明する。
システムの構成は、実施の形態1と同様である。
図15に、実施の形態2に係る装置間のデータフローの例を示す。コンテキスト発行装置103は、実施の形態1と同様に、コンテキスト発行装置103で生成した第1乱数を表示する(S1501)。利用者は、第1乱数を目視し、利用者端末101に入力する。第1乱数は、コンテキスト発行装置103に送られ、コンテキスト発行装置103で第1乱数を検証することによって、利用者端末101とコンテキスト発行装置103との間のペアリングが行われる。
利用者端末101は、実施の形態1と同様に、コンテキスト依存サーバ105へサービス証明書を要求する(S1503)。コンテキスト依存サーバ105は、実施の形態1と同様に、利用者端末101からの要求に応じて、サービス証明書を利用者端末101に返信する(S1505)。
利用者端末101は、実施の形態1と同様に、コンテキスト発行装置103へコンテキストの発行を依頼する(S1507)。
コンテキスト発行装置103は、種々の検証を行った上で、コンテキストを生成し、コンテキスト依存サーバ105にアクセスを要求する(S1509)。このとき、コンテキスト発行装置103は、秘匿化コンテキストを含むアクセス要求のデータをコンテキスト依存サーバ105に送信する。
コンテキスト依存サーバ105は、秘匿化コンテキストについて種々の検証を行う。コンテキストが所定の条件を満たす場合に、認証成功と判定し、コンテキスト発行装置103に対してアクセスチケットを返信する(S1511)。
コンテキスト発行装置103は、受け取ったアクセスチケットを利用者端末101に転送する(S1513)。
利用者端末101は、実施の形態1と同様に、アクセスチケットを取得すると、そのアクセスチケットを送ることによって(S1515)、コンテキスト依存サーバ105で提供するサービスを受ける(S1517)。
図16に、実施の形態2に係るコンテキスト発行装置103のモジュール構成例を示す。図6に示した実施の形態1に係るコンテキスト発行装置103のモジュール構成例との相違点について説明する。記憶部607は、更にサーバアドレスを記憶する。サーバアドレスは、コンテキスト依存サーバ105のアドレスである。また、コンテキスト発行装置103は、更に転送部1601を有する。転送部1601は、受信部605からアクセスチケットを利用者端末101へ転送する。
図17に、実施の形態2に係る利用者端末101のモジュール構成例を示す。図7に示した実施の形態1に係る利用者端末101のモジュール構成例との相違点について説明する。
コンテキスト発行依頼部715は、秘匿化コンテキストを受信しないので、受信部701との結線はない。また、アクセスチケット取得部717は、アクセスの要求を行わないので、送信部703との結線はない。
利用者端末101のモジュール構成は、実施の形態1と同様である。
図18乃至21に示したシーケンスに従って、実施の形態2に係る各装置の動作について説明する。図18に示したシーケンスについて説明する。図18に示したシーケンスは、図9に示した実施の形態1におけるシーケンスに対応する。S901乃至S923については、実施の形態1と同様である。
利用者端末101側で、コンテキスト発行依頼部715は、コンテキスト発行装置103にコンテキスト発行を依頼する(S1801)。このとき、コンテキスト発行依頼部715は、コンテキス発行依頼のデータにサーバアドレスも含める(S1803)。
図19に示したシーケンスについて説明する。図19に示したシーケンスは、図10に示した実施の形態1におけるシーケンスに対応する。S1001乃至S1017については、実施の形態1と同様である。
コンテキスト発行装置103側で、送信部621は、コンテキスト依存サーバ105にアクセスを要求する(S1901)。具体的には、送信部621は、暗号化署名データと暗号化被署名データとを含むアクセス要求のデータをコンテキスト依存サーバ105に送信する(S1903)。本実施の形態に係るアクセス要求のデータには、実施の形態1で示したハッシュ値は含まれない。
図20に示したシーケンスについて説明する。図20に示したシーケンスは、図12に示した実施の形態1におけるコンテキスト依存サーバ105のシーケンスに対応する。S1205乃至S1217の処理のうち、連結乱数の検証(S1215)は行わない。コンテキスト発行装置103から利用者端末101へコンテキストを戻さないので、利用者端末101からコンテキストが流出することはない。従って、不正な装置からの要求を検出するための連結乱数の検証(S1215)は、省略するようにしてもよい。
図21に、に示したシーケンスについて説明する。図21に示したシーケンスは、図14に示した実施の形態1におけるシーケンスに対応する。
S1401については、実施の形態1と同様である。コンテキスト依存サーバ105側で、アクセスチケット発行部809は、アクセスチケットをコンテキスト発行装置103に送信する(S2101)。伝送されるアクセスチケットは、実施の形態1と同様である(S2103)。
コンテキスト発行装置103側の受信部605で受信されたアクセスチケットは、転送部1601に渡される。転送部1601は、送信部621を介してアクセスチケットを利用者端末101に送信する(S2105)。
そして、利用者端末101の受信部701がアクセスチケットを受信する(S2107)。S1407乃至S1415については、実施の形態1と同様である。
本実施の形態によれば、コンテキスト発行装置103から直接コンテキスト依存サーバ105へ秘匿化コンテキストを送るので、コンテキストの流出を防止することができる。
上述の例では、表示された乱数を目視し、利用者が利用者端末101に入力する例を示したが、乱数に代えて不規則データに基づいて生成した幾何的コードを用いるようにしてもよい。例えば、コンテキスト発行装置103は幾何的コードを表示し、利用者端末101はカメラで幾何的コードを撮影し、不規則データを復元することによって、上述の乱数と同様に処理する。
以上本技術の一実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上述の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
図22に、コンテキスト発行装置103のハードウエア構成例を示す。コンテキスト発行装置103は、RAM2203、スピーカ2205、LCD(Liquid Crystal Display:液晶ディスプレイ)2207、タッチパネル2209、マイク2211、NAND(Not AND)メモリ2213、通信CPU(Central Processing Unit)2215、アプリCPU2217、近距離通信デバイス2219、GPS(Global Positioning System:全地球測位システム)センサー631、無線LAN(Local Area Network)デバイス2223、DSP(Digital Signal Processor)2225、ISP(Image Signal Processor)2227、カメラ2229、バス2231、サブプロセッサ2233、地磁気センサー637、ジャイロセンサー635及び加速度センサー633を有している。そのうち、RAM2203、スピーカ2205、LCD2207、タッチパネル2209、マイク2211、NANDメモリ2213、通信CPU2215、アプリCPU2217、近距離通信デバイス2219、GPSセンサー631、無線LANデバイス2223、DSP2225、ISP2227及びカメラ2229は、バス2231を介して接続されている。LCD2207は、表示装置の例である。
RAM2203は、例えばプログラムやデータを記憶する。スピーカ2205は、音声を出力する。LCD2207は、画像や画面を表示する。タッチパネル2209は、接触状態と接触位置などを検出する。マイク2211は、音声を入力する。NANDメモリ2213は、不揮発性記憶素子のフラッシュメモリである。このNANDメモリ2213は、例えばプログラムやデータを記憶する。通信CPU2215は、通信処理に係る演算処理を行う。アプリCPU2217は、アプリケーションソフトを実行する演算装置である。近距離通信デバイス2219は、近距離通信を制御するデバイスである。GPSセンサー631は、位置を測定する装置である。無線LANデバイス2223は、無線LANの通信を制御するデバイスである。DSP2225は、デジタル信号処理を行うプロセッサである。ISP2227は、画像処理を行うプロセッサである。カメラ2229は、撮影する装置である。また、アプリCPU2217は、サブプロセッサ2233と接続している。サブプロセッサ2233は、地磁気センサー637、ジャイロセンサー635、及び加速度センサー633に接続している。サブプロセッサ2233は、地磁気センサー637、ジャイロセンサー635、及び加速度センサー633を制御する。地磁気センサー637とジャイロセンサー635は、姿勢角も測定する。
この例では、アプリCPU2217は、サブプロセッサ2233を介して地磁気センサー637、ジャイロセンサー635、及び加速度センサー633の計測結果を取得するが、アプリCPU2217は、直接に地磁気センサー637、ジャイロセンサー635、及び加速度センサー633の計測結果を取得するようにしてもよい。
また、上で述べたコンテキスト依存サーバ105は、コンピュータ装置であって、図23に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係る情報処理装置は、コンテキストに基づくネットワーク認証を行う認証装置にアクセスしようとする被認証装置からの要求に応じて、コンテキストを生成する第1の生成部と、コンテキストを含む被署名データに対する署名データを生成する第2の生成部と、署名データと被署名データとを送信する送信部とを有する。
このようにすれば、被認証装置から要求を受けた情報処理装置側でコンテキストを生成し、更に署名を付するので、被認証装置における不正なコンテキストの生成やコンテキストの改変を防止できる。
上記情報処理装置は、更に、認証装置において被認証装置を検証するための情報とコンテキストとを含む被署名データを生成する第3の生成部を有するようにしてもよい。
このようにすれば、認証装置における被認証装置の検証を補助し、他の装置によるコンテキストの流用を防止することに役立つ。
また、上記送信部は、署名データと被署名データとを、認証装置へ送信するようにしてもよい。
このようにすれば、コンテキストの流出を防止することができる。
上記情報処理装置は、更に、不規則に生成されたデータを表示する表示部を有するようにしてもよい。また、上記情報処理装置は、不規則に生成されたデータを受信することにより、当該データの送信元である被認証装置を検証する第1の検証部を有するようにしてもよい。
このようにすれば、情報処理装置から離れた場所にある装置からの不正なコンテキスト生成要求を排除することができる。
上記情報処理装置は、更に、認証装置の公開鍵により、少なくとも被署名データを暗号化する暗号化部を有するようにしてもよい。
このようにすれば、他の認証装置によるコンテキストの転用を防ぐことができる。
本実施の形態に係る認証システムは、コンテキストに基づくネットワーク認証を行う認証装置にアクセスしようとする被認証装置からの要求に応じて、コンテキストを生成する第1の生成部と、コンテキストを含む被署名データに対する署名データを生成する第2の生成部と、署名データと被署名データとを送信する送信部とを有する情報処理装置と、署名データと被署名データとを受信すると、署名データに基づく検証を行う第1の検証部と、被署名データに含まれるコンテキストに対する検証を行う第2の検証部とを有する認証装置とを含む。
このようにすれば、被認証装置の信頼性に関わらず、安全にコンテキストに基づくネットワーク認証を行うことができる。
上記認証装置は、更に、 被署名データに含まれるコンテキスト固有のデータに基づいて、コンテキストの再利用を検出する検出部を有するようにしてもよい。
このようにすれば、同一コンテキストの繰り返し利用を禁止することができる。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンテキストに基づくネットワーク認証を行う認証装置にアクセスしようとする被認証装置からの要求に応じて、前記コンテキストを生成する第1の生成部と、
前記コンテキストを含む被署名データに対する署名データを生成する第2の生成部と、
前記署名データと前記被署名データとを送信する送信部と
を有する情報処理装置。
(付記2)
更に、
前記認証装置において前記被認証装置を検証するための情報と前記コンテキストとを含む前記被署名データを生成する第3の生成部
を有する付記1記載の情報処理装置。
(付記3)
前記送信部は、前記署名データと前記被署名データとを、前記認証装置へ送信する
付記1又は2記載の情報処理装置。
(付記4)
更に、
不規則に生成されたデータを表示する表示部と、
前記不規則に生成されたデータを受信することにより、当該データの送信元である前記被認証装置を検証する第1の検証部と
を有する付記1乃至3のいずれか1つ記載の情報処理装置。
(付記5)
更に、
前記認証装置の公開鍵により、少なくとも前記被署名データを暗号化する暗号化部
を有する付記1乃至4のいずれか1つ記載の情報処理装置。
(付記6)
コンテキストに基づくネットワーク認証を行う認証装置にアクセスしようとする被認証装置からの要求に応じて、前記コンテキストを生成する第1の生成部と、
前記コンテキストを含む被署名データに対する署名データを生成する第2の生成部と、
前記署名データと前記被署名データとを送信する送信部と
を有する情報処理装置と、
前記署名データと前記被署名データとを受信すると、前記署名データに基づく検証を行う第1の検証部と、
前記被署名データに含まれる前記コンテキストに対する検証を行う第2の検証部と
を有する認証装置と
を含む認証システム。
(付記7)
前記認証装置は、更に、
前記被署名データに含まれるコンテキスト固有のデータに基づいて、前記コンテキストの再利用を検出する検出部
を有する付記8記載の認証システム。
(付記8)
コンテキストに基づくネットワーク認証を行う認証装置にアクセスしようとする被認証装置からの要求に応じて、前記コンテキストを生成し、
前記コンテキストを含む被署名データに対する署名データを生成し、
前記署名データと前記被署名データとを送信する
処理をコンピュータに実行させるためのプログラム。