(57)【特許請求の範囲】
【請求項１】
受領者の秘密情報を加工して得られた加工値の逆元を、アクセストークンから生成したハッシュ値に埋め込んで、前記受領者が指定された受領者指定アクセストークンを生成して、ユーザに提供する生成手段と、
前記受領者指定アクセストークンを用いてアクセスしてきた前記ユーザが、前記受領者指定アクセストークンに指定された受領者であることを検証する検証手段と、
前記逆元が埋め込まれた前記ハッシュ値をマスクするマスク手段と、
を備えたアクセストークンシステム。
【請求項２】
前記検証手段は、
前記ユーザのアクセスに応じて、チャレンジを生成して送信するチャレンジ生成手段と、
前記チャレンジに対するレスポンスを受信して、前記受領者指定アクセストークンを用いてアクセスしてきた前記ユーザが、指定された受領者であることを検証するレスポンス判定手段と、
を有する請求項１に記載のアクセストークンシステム。
【請求項３】
前記チャレンジ生成手段が送信した前記チャレンジに対するレスポンスを生成して送信するレスポンス生成手段をさらに備えた請求項２に記載のアクセストークンシステム。
【請求項４】
前記マスク手段は、前記加工値の逆元が埋め込まれた逆元部と、前記逆元部とｂｉｔ長が等しい乱数と、を用いてＸＯＲ（排他的論理和）演算を行うことによりマスクをする請求項１に記載のアクセストークンシステム。
【請求項５】
前記生成手段は、前記受領者の秘密情報に基づいて生成された総当たり困難値を用いて、前記受領者指定アクセストークンを生成する請求項１乃至４のいずれか１項に記載のアクセストークンシステム。
【請求項６】
前記受領者指定アクセストークンに有効期限を指定する有効期限指定手段と、
前記受領者指定アクセストークンが、有効期限内であるか否かを判定する有効期限判定手段と、
をさらに備えた請求項１乃至５のいずれか１項に記載のアクセストークンシステム。
【請求項７】
前記受領者指定アクセストークンに対してデジタル署名を生成して付与するデジタル署名生成手段と、
前記受領者指定アクセストークンの前記デジタル署名が有効か否かを判定するデジタル署名判定手段と、
をさらに備えた請求項１乃至６のいずれか１項に記載のアクセストークンシステム。
【請求項８】
受領者の秘密情報を加工して得られた加工値の逆元を、アクセストークンから生成したハッシュ値に埋め込んで、前記受領者が指定された受領者指定アクセストークンを生成して、ユーザに提供する生成手段と、
前記逆元が埋め込まれた前記ハッシュ値をマスクするマスク手段と、
を備えた情報処理装置。
【請求項９】
生成手段が、受領者の秘密情報を加工して得られた加工値の逆元を、アクセストークンから生成したハッシュ値に埋め込んで、前記受領者が指定された受領者指定アクセストークンを生成して、ユーザに提供する生成ステップと、
マスク手段が、前記逆元が埋め込まれた前記ハッシュ値をマスクするマスクステップと、
を含む情報処理方法。
【請求項１０】
受領者の秘密情報を加工して得られた加工値の逆元を、アクセストークンから生成したハッシュ値に埋め込んで、前記受領者が指定された受領者指定アクセストークンを生成して、ユーザに提供する生成ステップと、
前記逆元が埋め込まれた前記ハッシュ値をマスクするマスクステップと、
をコンピュータに実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセストークンシステム、情報処理装置、情報処理方法および情報処理プログラムに関する。
【背景技術】
【０００２】
上記技術分野において、特許文献１には、前提技術としてのアクセストークンシステムに関するする技術が開示されている。特許文献２には、ＲＳＡ暗号における鍵生成に関する技術が開示されている。特許文献３には、ユーザ認証鍵をハッシュ関数に与える技術が開示されている。特許文献４には、サーバにあらかじめ登録されたクライアントの本人認証情報を用いて、クライアントの認証を行う技術が開示されている。特許文献５には、ＩＣチップへの不正アクセスを防止する技術が開示されている。非特許文献１乃至非特許文献４には、前提技術としてのアクセストークンシステムが開示されている。非特許文献５には、デジタル署名としてのＨＭＡＣ（Hash-based Message Authentication Code）に関する技術が開示されている。非特許文献６には、ＪＳＯＮ（JavaScript（登録商標） Object Notation）形式のファイルをＢａｓｅ６４エンコードしたアクセストークンが開示されている。非特許文献７には、アクセストークンとしてのＵＲＬ（Uniform Resource Locator）に関する技術が開示されている。非特許文献８には、アクセストークンとしてのＣｏｏｋｉｅに関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２０１６／０１２７３３０号明細書
【特許文献２】米国特許第４４０５８２９号明細書
【特許文献３】特開平１０−２２２５６７号公報
【特許文献４】特開２００５−３０１５７７号公報
【特許文献５】特開２００９−２１２７３１号公報
【非特許文献】
【０００４】
【非特許文献１】Create a URL Signature Using PHP - Amazon CloudFront. Amazon CloudFront.  http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CreateURL_PHP.html
【非特許文献２】Creating Signed URLs with a Program    Cloud Storage Documentation    Google Cloud Platform. Google Cloud Platform.https://cloud.google.com/storage/docs/access-control/create-signed-urls-program
【非特許文献３】Shared Access Signatures (SAS) の使用  Microsoft Azure. Microsoft Azure.  https://azure.microsoft.com/ja-jp/documentation/articles/storage-dotnet-shared-access-signature-part-1/
【非特許文献４】Pre-Signed URLs-zaqar-specs 0.0.1.dev63 documentation. OpenStack Open Source Cloud Computing Software.  https://specs.openstack.org/openstack/zaqar-specs/specs/liberty/pre-signed-url.html#pre-signed-url
【非特許文献５】Bellare, Mihir, Ran Canetti, and Hugo Krawczyk. "Keying hash functions for message authentication." Annual International Cryptology Conference. Springer Berlin Heidelberg, 1996.
【非特許文献６】T. Bray, Ed. The JavaScript（登録商標） Object Notation (JSON) Data Interchange Format. RFC 7159, 3, 2014.
【非特許文献７】T. Berners-Lee. Uniform Resource Identifier (URI): Generic Syntax. RFC 3986, 1, 2005.
【非特許文献８】A. Barth. HTTP State Management Mechanism. RFC 6265, 4, 2011.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記文献に記載の技術では、アクセストークンの受領者が指定されていないため、アクセストークンの不正配布を防止することができなかった。【０００６】
本発明の目的は、上述の課題を解決する技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明に係るアクセストークンシステムは、
受領者の秘密情報を加工して得られた加工値の逆元を、アクセストークンから生成したハッシュ値に埋め込んで、前記受領者が指定された受領者指定アクセストークンを生成して、ユーザに提供する生成手段と、
前記受領者指定アクセストークンを用いてアクセスしてきた前記ユーザが、前記受領者指定アクセストークンに指定された受領者であることを検証する検証手段と、
前記逆元が埋め込まれた前記ハッシュ値をマスクするマスク手段と、
を備えた。
【０００８】
上記目的を達成するため、本発明に係る情報処理装置は、
受領者の秘密情報を加工して得られた加工値の逆元を、アクセストークンから生成したハッシュ値に埋め込んで、前記受領者が指定された受領者指定アクセストークンを生成して、ユーザに提供する生成手段と、
前記逆元が埋め込まれた前記ハッシュ値をマスクするマスク手段と、
を備えた。
【０００９】
上記目的を達成するため、本発明に係る情報処理方法は、
生成手段が、受領者の秘密情報を加工して得られた加工値の逆元を、アクセストークンから生成したハッシュ値に埋め込んで、前記受領者が指定された受領者指定アクセストークンを生成して、ユーザに提供する生成ステップと、
マスク手段が、前記逆元が埋め込まれた前記ハッシュ値をマスクするマスクステップと、
を含む。
【００１０】
上記目的を達成するため、本発明に係る情報処理プログラムは、
受領者の秘密情報を加工して得られた加工値の逆元を、アクセストークンから生成したハッシュ値に埋め込んで、前記受領者が指定された受領者指定アクセストークンを生成して、ユーザに提供する生成ステップと、
前記逆元が埋め込まれた前記ハッシュ値をマスクするマスクステップと、
をコンピュータに実行させる。
【発明の効果】
【００１１】
本発明によれば、アクセストークンの受領者を指定するので、アクセストークンの不正配布を防止できる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１実施形態に係るアクセストークンシステムの構成を示すブロック図である。
【図２】本発明の第２実施形態に係るアクセストークンシステムの構成を示すブロック図である。
【図３】本発明の第２実施形態に係るアクセストークンシステムの生成装置の構成を説明するブロック図である。
【図４】本発明の第２実施形態に係るアクセストークンシステムの検証装置の構成を説明するブロック図である。
【図５】本発明の第２実施形態に係るアクセストークンシステムのリクエスト装置の構成を説明するブロック図である。
【図６】本発明の第２実施形態に係るアクセストークンシステムの認証応答装置の構成を説明するブロック図である。
【図７】本発明の第２実施形態に係るアクセストークンシステムの生成装置の処理手順を説明するフローチャートである。
【図８】本発明の第２実施形態に係るアクセストークンシステムの検証装置の処理手順を説明するフローチャートである。
【図９】前提技術に係るアクセストークンシステムの構成を示す図である。
【図１０】前提技術に係るアクセストークンシステムの処理手順を説明するフローチャートである。
【図１１】前提技術に係るアクセストークンシステムの処理手順を説明するフローチャートである。
【図１２】本発明の第３実施形態に係るアクセストークンシステムの構成を示すブロック図である。
【図１３】本発明の第３実施形態に係るアクセストークンシステムの生成装置の構成を示すブロック図である。
【図１４】本発明の第３実施形態に係るアクセストークンシステムの検証装置の構成を示すブロック図である。
【図１５】本発明の第３実施形態に係るアクセストークンシステムの生成装置の処理手順を説明するフローチャートである。
【図１６】本発明の第３実施形態に係るアクセストークンシステムの検証装置の処理手順を説明するフローチャートである。
【図１７】本発明の第４実施形態に係るアクセストークンシステムの構成を示すブロック図である。
【図１８】本発明の第４実施形態に係るアクセストークンシステムの生成装置の構成を示すブロック図である。
【図１９】本発明の第４実施形態に係るアクセストークンシステムの検証装置の構成を示すブロック図である。
【図２０】本発明の第４実施形態に係るアクセストークンシステムの生成装置の処理手順を説明するフローチャートである。
【図２１】本発明の第４実施形態に係るアクセストークンシステムの検証装置の処理手順を説明するフローチャートである。
【図２２】本発明の第５実施形態に係るアクセストークンシステムの構成を示すブロック図である。
【図２３】本発明の第５実施形態に係るアクセストークンシステムの生成装置の構成を示すブロック図である。
【図２４】本発明の第５実施形態に係るアクセストークンシステムの検証装置の構成を示すブロック図である。
【図２５】本発明の第５実施形態に係るアクセストークンシステムの生成装置の処理手順を説明するフローチャートである。
【図２６】本発明の第５実施形態に係るアクセストークンシステムの検証装置の処理手順を説明するフローチャートである。
【発明を実施するための形態】
【００１３】
以下に、本発明を実施するための形態について、図面を参照して、例示的に詳しく説明記載する。ただし、以下の実施の形態に記載されている、構成、数値、処理の流れ、機能要素などは一例に過ぎず、その変形や変更は自由であって、本発明の技術範囲を以下の記載に限定する趣旨のものではない。
【００１４】
［第１実施形態］
本発明の第１実施形態としてのアクセストークンシステム１００について、図１を用いて説明する。アクセストークンシステム１００は、アクセストークンの不正配布を防止できるアクセストークンシステムである。
【００１５】
図１に示すように、アクセストークンシステム１００は、生成部１０１と、検証部１０２と、を備える。生成部１０１は、受領者の秘密情報を用いて、受領者が指定された受領者指定アクセストークンを生成して、ユーザに提供する。検証部１０２は、受領者指定アクセストークンを用いてアクセスするユーザが、指定された受領者であることを検証する。
【００１６】
本実施形態によれば、アクセストークンに受領者が指定された受領者指定アクセストークンを生成するので、アクセストークンの不正配布を防止できる。
【００１７】
［第２実施形態］
次に本発明の第２実施形態に係るアクセストークンシステムについて、図２乃至図１１を用いて説明する。
【００１８】
［構成の説明］
ＩａａＳ（Infrastructure as a Service）において、システム外のユーザに対し権限を委譲したい場合がある。このような場合、対象となる資源へのアクセストークンに対して有効期限を設定し、さらにアクセストークンと有効期限を連結した文字列（Ｐｏｌｉｃｙ）に対しデジタル署名を生成し、Ｐｏｌｉｃｙとデジタル署名を連結したものをシステム外のユーザへ渡すことで権限の委譲を実現するアクセストークンシステムが一般に知られている。例えば図９に示すように、アクセストークンシステム９００は、アクセストークンを生成する生成装置９０１と、アクセストークンの正当性を検証する検証装置９０２とを備える。生成装置９０１には、デジタル署名における署名鍵と時刻情報を取得する手段をあらかじめ格納しておく。検証装置９０２には、デジタル署名における検証鍵と時刻情報を取得する手段をあらかじめ格納しておく。従来のアクセストークンシステムの一例が、特許文献１、非特許文献１、非特許文献２、非特許文献３および非特許文献４に記載されている。
【００１９】
非特許文献１に記載されたアクセストークンシステムにおける生成装置は、例えば図１０に示すように動作する。生成装置は、権限を委譲する対象となる資源へのアクセストークンおよび有効とする期間の入力を受ける（ステップＳ１００１）。次に生成装置９０１は、有効とする期間の入力と時刻情報を取得する手段を用いて、有効期限を設定する（ステップＳ１００３）。さらに生成装置は、権限を委譲する対象となる資源へのアクセストークンとステップ２で生成された有効期限とを用いてＰｏｌｉｃｙを生成する（ステップＳ１００５）。そして生成装置は、あらかじめ格納された署名鍵とＰｏｌｉｃｙからデジタル署名を生成する（ステップＳ１００７）。最後に生成装置は、ＰｏｌｉｃｙとＰｏｌｉｃｙから生成されたデジタル署名を連結してアクセストークンを生成する（ステップＳ１００９）。
【００２０】
一方、非特許文献１に記載されたアクセストークンシステムにおける検証装置は、例えば図１１に示すように動作する。検証装置は、アクセストークンの入力を受ける（ステップＳ１１０１）。次に検証装置は、入力で受けたアクセストークンに含まれる有効期限とあらかじめ格納された時刻情報を取得する手段から、入力として受けたアクセストークンが有効期限内で有効であるか判定する（ステップＳ１１０３）。このとき、有効でないと判定された場合、対象となる資源へのアクセスを拒否する（ステップＳ１１０９）。さらに検証装置は、入力で受けたアクセストークンに含まれるデジタル署名とあらかじめ格納された検証鍵から、デジタル署名が有効か検証する（ステップＳ１１０５）。検証の結果、有効でないと判定された場合、対象となる資源へのアクセスを拒否する（ステップＳ１１０９）。最後に検証装置は、対象となる資源へのアクセスを許可する（ステップＳ１１０７）。
【００２１】
アクセストークンシステムの形態としては大きく２つある。１つは、生成装置に格納される署名鍵と検証装置に格納される検証鍵が異なるもので、非特許文献１および非特許文献２に記載されている。もう１つは、生成装置に格納される署名鍵と検証装置に格納される検証鍵が同一のもので、非特許文献３および非特許文献４に記載されている。
【００２２】
特許文献１、非特許文献１、非特許文献２、非特許文献３および非特許文献４に記載されたアクセストークンシステムでは、生成装置によって出力されたアクセストークンを悪意のある受領者が不特定多数に不正に配信（＝横流し）した場合、アクセストークン発行者の意図しない権限委譲が生じる懸念がある。つまり、不正アクセスが発生する恐れが存在する。この問題点は非特許文献３で指摘されている。現状、非特許文献３にも記載があるように、アクセストークンの有効期限を短く設定することで対策としているが、横流しそのものの発生を防止できてはいない。
【００２３】
上述した特許文献１、非特許文献１、非特許文献２、非特許文献３、非特許文献４に記載されたアクセストークンシステムでは、アクセストークンを不正に配布することで、アクセストークン発行者の意図しない権限委譲が発生するという課題があった。これは、アクセストークンに対し受領者が指定されていないためである。
【００２４】
また上述した特許文献１、非特許文献１、非特許文献２、非特許文献３、非特許文献４に記載されたアクセストークンシステムでは、アクセストークンの不正配布を防止するために有効期限を短くせざるを得ないという課題があった。
【００２５】
図２は、本実施形態に係るアクセストークンシステム２００の構成を示すブロック図である。図２に示されるように、アクセストークンシステム２００は、生成装置２０１と検証装置２０２とリクエスト装置２０３と認証応答装置２０４とを備え、生成装置２０１と検証装置２０２とリクエスト装置２０３とは外部ネットワーク経由で通信可能に接続されている。また、リクエスト装置２０３と認証応答装置２０４とは通信可能に接続されている。
【００２６】
図３は、本実施形態に係るアクセストークンシステム２００の生成装置２０１の構成を説明するブロック図である。生成装置２０１は、図３に示されるように、生成手段３１１とアクセストークン格納部３１２と秘密情報格納部３１３とを備える。生成部３１１は、アクセストークン格納部３１２と秘密情報格納部３１３とそれぞれ接続されている。
【００２７】
生成部３１１は、アクセストークン格納部３１２が出力した値を入力に受け、文字列（Ｐｏｌｉｃｙ）を生成する。また、生成部３１１は、秘密情報格納部３１３が出力した値を入力に受ける。生成部３１１は、入力された秘密情報を加工した値の逆元をＰｏｌｉｃｙのハッシュ値に埋め込む。ハッシュ値の計算には生成装置２０１と検証装置２０２とで共有されたハッシュ関数を用いる。
【００２８】
秘密情報を加工するとは、例えば、秘密情報b、秘密情報の加工関数φとする。このとき、φは逆関数を効率的に計算可能な関数であるとする。φの具体例としては、
【数１】
0006635323.tif 000002
となる。ｒ１はパディング用の乱数であり、
【数２】
0006635323.tif 000003
は、ｂｉｔ列の連結演算子を意味する。このように、φによってbを十分な長さ、つまり、アクセストークンにおける秘密情報が加工された値の逆元が埋め込まれたハッシュ値に相当する部分と同程度のbit長となるように加工した場合、総当たりによってbがサーバに漏えいすることを防ぐことができる。生成部３１１は、前記入力された秘密情報を加工した値に対し、さらに生成部３１１のみが逆元を計算できるように加工し、Ｐｏｌｉｃｙのハッシュ値に埋め込む。
【００２９】
例えば、特許文献２に記載されるＲＳＡ暗号における鍵生成のように、
【数３】
0006635323.tif 000004
という形で加工して逆元を計算し、Ｐｏｌｉｃｙのハッシュ値Ｈ（Ｐｏｌｉｃｙ）に対し、
【数４】
0006635323.tif 000005
として埋め込む。
【００３０】
このとき、ｐ,ｑは互いに異なる十分に大きい素数である。また、Ｎは公開されているものとする。このとき、逆元を計算できるのはｐ,ｑを知る生成部３１１のみであり、素因数分解の困難性により逆元計算の困難性が保証される。ｐ,ｑ,Ｎを選ぶのは最初のセットアップ時のみであり、アクセストークン生成の度に選び直す必要はない。
【００３１】
生成部３１１は、Ｐｏｌｉｃｙと生成部３１１のみが逆元を計算できるように加工し、Ｐｏｌｉｃｙのハッシュ値に埋め込んだ値とを連結したもの、例えば、
【数５】
0006635323.tif 000006
と、秘密情報の加工に用いた関数とその第２引数とを、受領者指定アクセストークンとして、リクエストしてきた受領者、つまり、リクエスト装置２０３の所有者であり、秘密情報格納部３１３が出力した値の所有者（＝指定された受領者）に渡す。特に、秘密情報の加工に用いた関数とその第２引数、例えば前記φとｒ１は、認証応答装置２０４に格納される。
【００３２】
ここでＰｏｌｉｃｙは、例えば、資源へのアクセストークンを非特許文献６に記載のＪＳＯＮ形式のファイルをＢａｓｅ６４エンコードしたものとなる。ハッシュ関数は、例えば、フルドメインハッシュ関数となる。
【００３３】
アクセストークン格納部３１２は、図示しない入力装置から対象となる資源へのアクセストークンの入力を受け、格納する。入力されたアクセストークンに対し、アクセストークンを生成する場合、アクセストークン格納部３１２は入力されたアクセストークンを生成部３１１に出力する。アクセストークンとは、例えば、非特許文献７に記載のＵＲＬや非特許文献８に記載のＣｏｏｋｉｅなどが挙げられる。
【００３４】
秘密情報格納部３１３は、図示しない入力装置からリクエスト装置２０３によって出力された秘密情報の入力を受け、格納する。入力された秘密情報に対し、アクセストークンを生成する場合、秘密情報格納部３１３は入力された秘密情報を生成部３１１に出力する。秘密情報とは、例えば、クレジットカード番号や免許証番号などが挙げられる。
【００３５】
図４は、本実施形態に係るアクセストークンシステム２００の検証装置２０２の構成を説明するブロック図である。検証装置２０２は、図４に示されるように、検証部４２１とチャレンジ生成部４２２とチャレンジ格納部４２３とレスポンス判定部４２４とを備える。チャレンジ生成４２３は、検証部４２１とチャレンジ格納部４２３と接続されている。チャレンジ格納部４２３は、レスポンス判定部４２４と接続されている。
【００３６】
検証部４２１は、図示されない入力装置から出力された受領者指定アクセストークンを入力に受ける。ここでの受領者指定アクセストークンは、秘密情報加工関数とその第２引数を含まない。検証部４２１は、受領者指定アクセストークンからＰｏｌｉｃｙと、秘密情報が加工された値の逆元が埋め込まれたハッシュ値とを取出す。取り出したＰｏｌｉｃｙに対し、ハッシュ値を計算し、秘密情報が加工された値の逆元が埋め込まれたハッシュ値が一致した場合、アクセスを拒否する。一致しなかった場合、検証部４２１は、入力された値をチャレンジ生成部４２２に出力する。
【００３７】
チャレンジ生成部４２２は、検証部４２１によって出力された値に対して、チャレンジを生成し、埋め込む。例えば、チャレンジをｃとしたとき、
【数６】
0006635323.tif 000007
に対し、
【数７】
0006635323.tif 000008
という処理を行う。チャレンジ生成部４２２は、受領者指定アクセストークン内の秘密情報が加工された値の逆元が埋め込まれたハッシュ値の部分に対しチャレンジを埋め込んだ値を、認証応答装置２０４に対して送信する。また、チャレンジ生成部４２２は、検証部４２１によって出力された値のＰｏｌｉｃｙ部分に対し、共有されたハッシュ関数を用いてハッシュ値を計算し、ハッシュ値に対してチャレンジｃを埋め込む。例えば、
【数８】
0006635323.tif 000009
という処理を行う。チャレンジ生成部４２２は、前記ハッシュ値に対してチャレンジｃを埋め込んだ値を、チャレンジ格納部４２３に出力する。
【００３８】
チャレンジ格納部４２３は、チャレンジ生成部４２２から出力された値を入力に受ける。入力された値を、チャレンジ格納部４２３は、格納・一定時間保持する。受領者指定アクセストークンを用いてアクセスしてきたユーザからレスポンスが返ってきたとき、そのレスポンスが正しいものか判定するために、チャレンジ格納部４２３は、格納した値をレスポンス判定部４２４に出力する。
【００３９】
レスポンス判定部４２４は、認証応答装置２０４により出力・送信された値を入力に受ける。入力された値が、チャレンジ格納部４２３に格納された値と一致するとき、レスポンス判定部４２４は認証応答装置２０４を用いて値を送信してきたユーザのアクセスを許可する。一致しないとき、アクセスを拒否する。
【００４０】
図５は、本実施形態に係るアクセストークンシステム２００のリクエスト装置２０３の構成を説明するブロック図である。リクエスト装置２０３は、図５に示されるように、秘密情報格納手段５３１と秘密情報送信手段５３２とを備える。
【００４１】
秘密情報格納部５３１は、図示されない入力装置からアクセストークンをリクエストする受領者の秘密情報を入力として受ける。入力された値を、秘密情報格納部５３１は保持する。秘密情報格納部５３１は、検証装置２０２から送信されてきたチャレンジに対しレスポンスを生成したいとき、保持する値を認証応答装置２０４に出力する。また、アクセストークンの発行をリクエストするとき、秘密情報格納部５３１は、保持している値を秘密情報送信部５３２に出力する。ここで、秘密情報とは、クレジットカード番号や免許証番号など、他者に知られることを忌避するような値とする。
【００４２】
秘密情報送信部５３２は、秘密情報格納部５３１により出力された値を入力に受ける。入力された値を、秘密情報送信部５３２は、生成装置２０１に送信する。このとき、秘密情報格納部５３１により出力された値が盗聴されないように、秘密に送信することが秘密情報送信部５３２には求められることに留意する。
【００４３】
図６は、本実施形態に係るアクセストークンシステム２００の認証応答装置２０４の構成を説明するブロック図である。認証応答装置２０４は、図６に示されるように、レスポンス生成部６４１を備える。なお、レスポンス生成部６４１は、図５に示した秘密情報格納部５３１と接続されている。
【００４４】
レスポンス生成部６４１は、秘密情報格納部５３１から出力された値を入力に受ける。入力された値と、認証応答装置２０４に格納された秘密情報加工関数とを用いて、レスポンス生成部６４１は秘密情報を加工した値を生成する。例えば、前記秘密情報bおよび前記秘密情報加工関数φ、第２引数ｒ１を用いた場合、φ（ｂ,ｒ１）が秘密情報を加工した値となる。次に、レスポンス生成部２４１は秘密情報を加工した値を用いて、チャレンジ生成部４２２によって送信された値に対し、レスポンスを生成する。例えば、前記秘密情報を加工した値φ（ｂ,ｒ１）と、前記受領者指定アクセストークン内の秘密情報が加工された値の逆元が埋め込まれたハッシュ値の部分
【数９】
0006635323.tif 000010
とを用いて、以下のような処理を行う：
【数１０】
0006635323.tif 000011
つまり、
【数１１】
0006635323.tif 000012
がレスポンスとなる。レスポンス生成部６４１は、レスポンスをレスポンス判定部４２４に送信する。
【００４５】
［動作の説明］
図７は、本実施形態に係るアクセストークンシステム２００の生成装置２０１の処理手順を説明するフローチャートである。アクセストークン格納部３１２は、図示しない入力装置から対象となる資源へのアクセストークンの入力を受ける。そして、アクセストークン格納部３１２は、入力を生成部３１１に出力する（ステップＳ７０１）。生成部３１１は、アクセストークン格納部３１２から得られた入力を用いて、Ｐｏｌｉｃｙを生成する（ステップＳ７０３）。
【００４６】
秘密情報格納部３１３は、格納している秘密情報を生成部３１１に出力する。そして、生成部３１１、秘密情報格納部３１３の出力を入力に受ける。生成部３１１は、入力された秘密情報を加工した値の逆元を、Ｐｏｌｉｃｙのハッシュ値に埋め込む（ステップＳ７０５）。生成部３１１は、Ｐｏｌｉｃｙ部分と秘密情報を加工した値の逆元をＰｏｌｉｃｙのハッシュ値に埋め込んだものとを連結した値と、秘密情報加工関数およびその第２引数に用いる値とを合わせ、受領者指定アクセストークンとして、出力する（ステップＳ７０７）。
【００４７】
図８は、本実施形態に係るアクセストークンシステム２００の検証装置２０２の処理手順を説明するフローチャートである。
【００４８】
検証部４２１は、受領者指定アクセストークンを入力に受ける。なお、ここでの受領者指定アクセストークンは、秘密情報加工関数およびその第２引数を含まないことに注意する。入力に含まれるＰｏｌｉｃｙに対しハッシュ値を求め、得られた値と、入力に含まれる秘密情報を加工した値の逆元が埋め込まれている値とを比較する（ステップＳ８０１）。一致したならば、アクセスを拒否する（ステップＳ８０９）。一致しなければ、検証部段４２１は、入力された受領者指定アクセストークンに含まれる、Ｐｏｌｉｃｙのハッシュ値に対し秘密情報を加工した値の逆元が埋め込まれている値を、チャレンジ生成部４２２に渡す。チャレンジ生成部４２２は、入力された値を用いて、チャレンジを生成する。生成したチャレンジが埋め込まれた値は、受領者指定アクセストークンを用いてアクセスを試みたユーザに、チャレンジ自体はチャレンジ格納部４２３にそれぞれ渡す（ステップＳ８０３）。レスポンス判定部４２４は、受領者指定アクセストークンを用いてアクセスを試みたユーザが生成したレスポンスと、チャレンジ格納部４２３から出力されたチャレンジとを、入力に受ける。入力された値を用いて、レスポンス判定部４２４は、レスポンスが正しいか判定する（ステップＳ８０５）。判定の結果、誤ったレスポンスであれば、アクセスを拒否する（ステップＳ８０９）。正しいレスポンスであれば、アクセスを許可する（ステップＳ８０７）。
【００４９】
［効果の説明］
本実施形態におけるアクセストークンシステム２００は、生成部３１１において、秘密情報格納部３１３から出力された、受領者の秘密情報を加工した値の逆元をＰｏｌｉｃｙのハッシュ値に埋め込んでいる。これにより、アクセストークンに対し、受領者を指定することができる。受領者の秘密情報を加工した値の逆元を計算できるのは、秘密情報格納部３１３のみであるために、受領者の指定は解除できない。この受領者が指定されたアクセストークンでアクセスを試みる際に、チャレンジ・レスポンスが実行される。
【００５０】
ここでレスポンスを生成する際に、レスポンス生成部６４１は、秘密情報格納部５３１から出力された値を用いているため、秘密情報（正確には秘密情報を加工した値）を有する受領者のみがレスポンスを生成できる。また、秘密情報加工関数は逆関数が容易に計算可能なため、秘密情報を加工した値と受領者指定アクセストークンとを不特定多数に配信した場合、秘密情報加工関数を知る者は、秘密情報を加工した値から元の秘密情報を知ることができる。これにより、悪意ある受領者によるアクセストークンの不正配信を抑止することができる。特に、秘密情報加工関数が公知な場合、誰であっても秘密情報を加工した値から元の秘密情報を得ることができ、抑止効果が高まる。
【００５１】
また、悪意ある受領者によるアクセストークンの不正配信を防止することができるということは、有効期限を短くするという不正配信対策が不要となり、有効期限を無制限にすることができる。
【００５２】
［第３実施形態］
次に本発明の第３実施形態に係るアクセストークンシステムについて、図１２乃至図１６を用いて説明する。図１２は、本実施形態に係るアクセストークンシステムの構成を示すブロック図である。本実施形態に係るアクセストークンシステムは、上記第２実施形態と比べると、生成装置が、マスク関数格納部およびマスク部を有し、検証装置が、アンマスク関数格納部およびアンマスク部を有する点で異なる。その他の構成および動作は、第２実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【００５３】
［構成の説明］
図１２に示されるように、本実施形態に係るアクセストークンシステム１２００は生成装置１２０１と検証装置１２０２とリクエスト装置２０３と認証応答装置２０４とを備え、生成装置１２０１と検証装置１２０２とリクエスト装置２０３とは外部ネットワーク経由で通信可能に接続されている。また、リクエスト装置２０３と認証応答装置２０４とは通信可能に接続されている。
【００５４】
図１３は、本実施形態に係るアクセストークンシステム１２００の生成装置１２０１の構成を示すブロック図である。生成装置１２０１は、図１３に示されるように、マスク関数格納部１３１１とマスク部１３１２とをさらに備える。生成部３１１は、マスク部１３１２とアクセストークン格納部１３１１と秘密情報格納部３１３とそれぞれ接続されている。マスク部１３１２は、マスク関数格納部１３１１と接続されている。
【００５５】
生成部３１２１、アクセストークン格納部３１２が出力した値を入力に受け、文字列（Ｐｏｌｉｃｙ）を生成する。また、生成部３１１は、秘密情報格納部３１３が出力した値を入力に受ける。生成部３１１は、入力された秘密情報を加工した値の逆元をＰｏｌｉｃｙのハッシュ値に埋め込む。ハッシュ値の計算には生成装置１２０１と検証装置１２０２とで共有されたハッシュ関数を用いる。
【００５６】
秘密情報を加工するとは、例えば、秘密情報b、秘密情報の加工関数φとする。このとき、φは逆関数を効率的に計算可能な関数であるとする。φの具体例としては、
【数１２】
0006635323.tif 000013
となる。ｒ１はパディング用の乱数であり、
【数１３】
0006635323.tif 000014
はｂｉｔ列の連結演算子を意味する。このように、φによってｂを十分な長さ、つまり、アクセストークンにおける秘密情報が加工された値の逆元が埋め込まれたハッシュ値に相当する部分と同程度のbit長となるように加工した場合、総当たりによってbがサーバに漏えいすることを防ぐことができる。生成部３１１は、前記入力された秘密情報を加工した値の逆元を、Ｐｏｌｉｃｙのハッシュ値に埋め込む。秘密情報を加工した値の逆元をＰｏｌｉｃｙのハッシュ値に埋め込むとは、例えば、Ｐｏｌｉｃｙのハッシュ値Ｈ（Ｐｏｌｉｃｙ）に対し、
【数１４】
0006635323.tif 000015
として埋め込む。このとき、ｑは十分に大きい素数で、公開されているものとする。ｑを選ぶのは最初のセットアップ時のみであり、アクセストークン生成の度に選び直す必要はない。生成部３１１は、Ｐｏｌｉｃｙのハッシュ値に対し秘密情報を加工した値の逆元が埋め込まれた値を、マスク部１３１２に渡す。
【００５７】
マスク部１３１２は、生成部３１１から出力された、Ｐｏｌｉｃｙのハッシュ値に対し秘密情報を加工した値が埋め込まれた値と、マスク関数格納部１３１１に格納されたマスク関数とを入力に受ける。マスク部１３１２は、入力に受けたＰｏｌｉｃｙのハッシュ値に対し秘密情報を加工した値の逆元が埋め込まれた値を、入力に受けたマスク関数に対して渡し、その値を得る。例えば、入力に受けたＰｏｌｉｃｙのハッシュ値に対し秘密情報を加工した値の逆元が埋め込まれた値を一度Ｂａｓｅ６４デコードした値を、マスク関数に渡し、その出力を再びＢａｓｅ６４エンコードする。このようにマスク関数から出力された値をＰｏｌｉｃｙに連結したものと、秘密情報の加工に用いた関数とその第２引数を、受領者指定アクセストークンとする。マスク部１３１２は、受領者指定アクセストークンを出力する。出力された受領者指定アクセストークンは権限の委譲先、つまり、秘密情報格納部３１３が出力した値の所有者（＝指定された受領者）に渡される。特に、秘密情報の加工に用いた関数とその第２引数、例えば前記φとｒ１は、認証応答装置２０４に格納される。
【００５８】
ここでＰｏｌｉｃｙは、例えば、資源へのアクセストークンをＪＳＯＮ形式のファイルをＢａｓｅ６４エンコードしたものとなる。ハッシュ関数は、例えば、フルドメインハッシュ関数となる。
【００５９】
マスク関数格納部１３１１は、図示しない入力装置から、生成部３１１が出力したアクセストークンのうち、Ｐｏｌｉｃｙのハッシュ値に対し秘密情報を加工した値の逆元が埋め込まれた値に相当する部分をマスクするための関数を入力に受け、格納する。マスク関数は、秘密情報を加工した値の逆元の取り外しや改ざんが行えないような関数、つまり、受領者の指定を解除・改ざんできないような関数とする。例えば、生成装置１２０１を有するアクセストークン発行者と検証装置１２０２を有するサーバとの間で共有された秘密の値ｒ２と、Ｐｏｌｉｃｙのハッシュ値に対し秘密情報を加工した値の逆元が埋め込まれた値に相当する部分とに対しべき乗とＸＯＲ（排他的論理和）処理を行う。例えば、
【数１５】
0006635323.tif 000016
を、Ｐｏｌｉｃｙのハッシュ値に対し秘密情報を加工した値の逆元が埋め込まれた値に相当する部分としたとき、マスクされた値というのは
【数１６】
0006635323.tif 000017
となる。
【００６０】
アクセストークン格納手段３１２は、図示しない入力装置から対象となる資源へのアクセストークンの入力を受け、格納する。入力されたアクセストークンに対し、アクセストークンを生成する場合、アクセストークン格納部３１２は入力されたアクセストークンを生成部３１１に出力する。アクセストークンとは、例えば、ＵＲＬやＣｏｏｋｉｅなどが挙げられる。
【００６１】
秘密情報格納部３１３は、図示しない入力装置からリクエスト装置２０３によって出力された秘密情報の入力を受け、格納する。入力された秘密情報に対し、アクセストークンを生成する場合、秘密情報格納部３１３は入力された秘密情報を生成部３１１に出力する。秘密情報とは、例えば、クレジットカード番号や免許証番号などが挙げられる。
【００６２】
図１４は、本実施形態に係るアクセストークンシステム１２００の検証装置１２０２の構成を示すブロック図である。
【００６３】
検証装置１２０２は、図１４に示されるように、アンマスク関数格納部１４２１とアンマスク部１４２２とをさらに備える。アンマスク部１４２２は、アンマスク関数格納部１４２１と検証部４２１と接続されている。
【００６４】
アンマスク関数格納部１４２１は、マスク関数格納部１３１１に格納されたマスク関数の逆関数を入力に受け、格納する。受領者指定アクセストークンに対し、アンマスクを行う際には、格納された逆関数をアンマスク部１４２２に出力する。
【００６５】
アンマスク部１４２２は、検証部４２１から出力されたマスクされた値と、アンマスク関数格納部１４２１から入力されたアンマスク関数を入力に受ける。マスクされた値をアンマスク関数に渡し、Ｐｏｌｉｃｙハッシュ値に秘密情報が加工された値の逆元が埋め込まれたものを取り出す。例えば、
【数１７】
0006635323.tif 000018
をマスクされた値に相当する部分としδとしたとき、アンマスク処理とは
【数１８】
0006635323.tif 000019
となり、取り出される値に相当する部分は、
【数１９】
0006635323.tif 000020
となる。取り出した値を検証部４２１に対して出力する。
【００６６】
検証部４２１は、図示されない入力装置から出力された受領者指定アクセストークンを入力に受ける。ここでの受領者指定アクセストークンは、秘密情報加工関数とその第２引数を含まない。検証部４２１は、受領者指定アクセストークンから、マスクされた値を取出す。検証部４２１は、取り出したマスクされた値を、アンマスク部１４２２に出力する。アンマスク部１４２２から出力された値を受けて、検証部４２１は、入力された受領者指定アクセストークンに含まれるＰｏｌｉｃｙと、アンマスク部１４２２から出力された値とを、チャレンジ生成部４２２に出力する。
【００６７】
チャレンジ生成部４２２は、検証部４２１によって出力された値に対して、チャレンジを生成し、埋め込む。例えば、チャレンジをｃとしたとき、
【数２０】
0006635323.tif 000021
に対し、
【数２１】
0006635323.tif 000022
という処理を行う。チャレンジ生成部４２１は、受領者指定アクセストークン内の秘密情報が加工された値の逆元が埋め込まれたハッシュ値の部分に対しチャレンジを埋め込んだ値を、認証応答装置２０４に対して送信する。また、チャレンジ生成部４２２は、検証部４２１によって出力された値のＰｏｌｉｃｙ部分に対し、共有されたハッシュ関数を用いてハッシュ値を計算し、ハッシュ値に対してチャレンジｃを埋め込む。例えば、
【数２２】
0006635323.tif 000023
という処理を行う。チャレンジ生成部４２１は、前記ハッシュ値に対してチャレンジｃを埋め込んだ値を、チャレンジ格納部４２３に出力する。
【００６８】
チャレンジ格納部４２３は、チャレンジ生成部４２２から出力された値を入力に受ける。入力された値を、チャレンジ格納部４２２３は、格納・一定時間保持する。受領者指定アクセストークンを用いてアクセスしてきたユーザからレスポンスが返ってきたとき、そのレスポンスが正しいものか判定するために、チャレンジ格納部４２３は、格納した値をレスポンス判定部４２４に出力する。
【００６９】
レスポンス判定部４２３は、認証応答装置２０４により出力・送信された値を入力に受ける。入力された値が、チャレンジ格納部４２３に格納された値と一致するとき、レスポンス判定部４２４は認証応答装置２０４を用いて値を送信してきたユーザのアクセスを許可する。一致しないとき、アクセスを拒否する。
【００７０】
[動作の説明]
図１５は、本実施形態に係るアクセストークンシステム１２００の生成装置１２０１の処理手順を説明するフローチャートである。
【００７１】
アクセストークン格納部３１２は、図示しない入力装置から対象となる資源へのアクセストークンの入力を受ける。そして、アクセストークン格納部３１２は、入力を生成部３１１に出力する（ステップＳ７０１）。生成部３１１は、アクセストークン格納部３１２から得られた入力を用いて、Ｐｏｌｉｃｙを生成する（ステップＳ７０３）。
【００７２】
秘密情報格納部３１３は、格納している秘密情報を生成部３１１に出力する。そして、生成部３１１は、秘密情報格納部３１３の出力を入力に受ける。生成部３１１は、入力された秘密情報を加工した値の逆元を、Ｐｏｌｉｃｙのハッシュ値に埋め込む（ステップＳ７０５）。マスク部１３１２は、生成部３１１が出力した秘密情報を加工した値の逆元をＰｏｌｉｃｙのハッシュ値に埋め込んだものと、マスク関数格納部１３１２から渡されたマスク関数とを、入力に受ける。マスク部１３１２は、入力された秘密情報を加工した値の逆元をＰｏｌｉｃｙのハッシュ値に埋め込んだものを、入力されたマスク関数に渡し、マスクされた値を計算する（ステップＳ１５０１）。マスク部１３１２は、マスクされた値を生成部３１１に出力する。生成部３１１は、Ｐｏｌｉｃｙと入力とを連結したものと、秘密情報の加工に用いた関数とその第２引数を、受領者指定アクセストークンとして、出力する（ステップＳ７０７）。
【００７３】
図１６は、本実施形態に係るアクセストークンシステム１２００の検証装置１２０２の処理手順を説明するフローチャートである。
【００７４】
検証部４２１は、受領者指定アクセストークンを入力に受ける。なお、ここでの受領者指定アクセストークンは、秘密情報加工関数およびその第２引数を含まないことに注意する（ステップＳ１６０１）。アンマスク部１４２２は、入力された受領者指定アクセストークンに含まれるマスクされた値と、アンマスク関数格納部１４２１から入力されたアンマスク関数とを、入力に受ける。そして、入力された受領者指定アクセストークンに含まれるマスクされた値を、入力されたアンマスク関数に渡し、アンマスクする。アンマスク部１４２２は、アンマスクした値を、検証部４２１に出力する（ステップＳ１６０３）。
【００７５】
検証部４２１は、ステップＳ１６０１で入力された受領者指定アクセストークンに含まれるＰｏｌｉｃｙと、ステップＳ１６０３で入力されたアンマスクした値を、チャレンジ生成部４２２に出力する。チャレンジ生成部４２２は、入力された値を用いて、チャレンジを生成する。生成したチャレンジが埋め込まれた値は、受領者指定アクセストークンを用いてアクセスを試みたユーザに、Ｐｏｌｉｃｙとチャレンジ自体はチャレンジ格納部４２３にそれぞれ渡す（ステップＳ８０３）。レスポンス判定部４２４は、受領者指定アクセストークンを用いてアクセスを試みたユーザが生成したレスポンスと、チャレンジ格納部４２３から出力されたＰｏｌｉｃｙとチャレンジ自体とを、入力に受ける。入力された値を用いて、レスポンス判定部４２４は、レスポンスが正しいか判定する（ステップＳ８０５）。判定の結果、誤ったレスポンスであれば、アクセスを拒否する（ステップＳ８０９）。正しいレスポンスであれば、アクセスを許可する（ステップＳ８０７）。
【００７６】
[効果の説明]
本実施形態におけるアクセストークンシステム１２００は、第２実施形態におけるアクセストークンシステム２００と同様に、アクセストークンの不正配布を防止できる。また、アクセストークンの有効期限を無制限にできる。
【００７７】
一方で、第２実施形態では「受領者の秘密情報が加工された値の逆元を生成部３１１のみが計算できる」という制限があった。この制限のために、ＲＳＡ暗号における鍵生成のような処理を扱う必要があり、秘密情報加工関数が限定されるという問題があった。また、例えば、ＲＳＡ暗号における鍵生成のような処理を行うと、秘密情報を加工した値の逆元をＰｏｌｉｃｙのハッシュ値に埋め込んだものが合成位数Ｎ上の値となり、サイズが大きくなってしまう問題があった。また、アクセストークンシステム２００では、悪意のあるユーザが
【数２３】
0006635323.tif 000024
という値を検証部４２１に送りつけてくる可能性がある。このような値が検証部４２１に送られた場合、チャレンジ・レスポンスが成功してしまうので、ステップＳ８０１にて、Ｐｏｌｉｃｙに対してハッシュ値を計算する必要があり、分岐が発生してしまう問題があった。
【００７８】
本実施形態におけるアクセストークンシステム１２００は、前記の問題を解決している。アクセストークンシステム１２００の場合、「受領者の秘密情報が加工された値の逆元を生成部３１１のみが計算できる」という制限はない。これは、マスク関数の性質として、「受領者の指定を解除・改ざんできないもの」を挙げているためである。つまり、「受領者の秘密情報が加工された値の逆元を生成部３１１のみが計算できる」という制限は、本質的には「受領者の指定を解除・改ざんできない」ということを実現するためであり、アクセストークンシステム２においてはマスク関数を用いてこれを実現しているということになる。さらに、例えば、秘密情報を加工した値の逆元をＰｏｌｉｃｙのハッシュ値に埋め込んだものが素数ｑ上の値となり、サイズが小さくなる。また、秘密情報を加工した値の逆元をＰｏｌｉｃｙのハッシュ値に埋め込んだものがマスクされているために、前記攻撃は成立しない。これにより、ステップＳ１６０１では分岐が発生しない。
【００７９】
［第４実施形態］
次に本発明の第４実施形態に係るアクセストークンシステムについて、図１７乃至図２１を用いて説明する。図１７は、本実施形態に係るアクセストークンシステムの構成を説明するための図である。本実施形態に係るアクセストークンシステムは、上記第２実施形態および第３実施形態と比べると、生成装置および検証装置が、時刻取得部を有する点で異なる。その他の構成および動作は、第２実施形態および第３実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【００８０】
［構成の説明］
図１７に示されるように、本実施形態に係るアクセストークンシステム１７００は生成装置１７０１と検証装置１７０２とリクエスト装置２０３と認証応答装置２０４とを備え、生成装置１７０１と検証装置１７０２とリクエスト装置２０３とは外部ネットワーク経由で通信可能に接続されている。また、リクエスト装置２０３と認証応答装置２０４とは通信可能に接続されている。
【００８１】
図１８は、本実施形態に係るアクセストークンシステム１７００の生成装置１７０１の構成を示すブロック図である。また、図１９は、本４実施形態に係るアクセストークンシステム１７００の検証装置１７０２の構成を示すブロック図である。
【００８２】
生成装置１７０１は、時刻情報取得部１８１１をさらに備える。時刻情報取得部１８１１は、生成部３１１と接続されている。検証装置１７０２は、時刻情報取得部１９２１をさらに備える。時刻情報取得部１９２１は、検証部４２１と接続されている。
【００８３】
時刻情報取得部１８１１は、時刻情報を取得し、生成部３１１に出力する。
【００８４】
生成部３１１は、アクセストークンシステム２００またはアクセストークンシステム１２００におけるものと同じ。ただし、Ｐｏｌｉｃｙを作成する際に、時刻情報取得部１８１１から入力された時刻情報を用いて、有効期限を連結するようにＰｏｌｉｃｙを作成する。つまり、生成部３１１は、有効期限指定部としても動作する。例えば、
【数２４】
0006635323.tif 000025
をＰｏｌｉｃｙとする。ＴＴＬ（Time to live）は有効期限を意味する。
【００８５】
検証部４２１は、アクセストークンシステム２００またはアクセストークンシステム１２００におけるものと同じ。ただし、受領者指定アクセストークンを入力に受ける際に、入力されたＰｏｌｉｃｙに含まれる有効期限を、時刻情報取得部１９２１から入力された時刻情報を用いて、有効か否かを判定する。つまり、検証部４２１は、有効期限判定部としても動作する。有効でない場合は、アクセスを拒否する。有効な場合は、引き続きアクセストークンシステム２００またはアクセストークンシステム１２００における検証部４２１と同様に動作する。
【００８６】
［動作の説明］
図２０は、本実施形態に係るアクセストークンシステム１７００の生成装置１７０１の処理手順を説明するフローチャートである。なお、図７と同様のステップについては、同じステップ番号を付与して説明を省略する。生成部３１１は、Ｐｏｌｉｃｙに対して有効期限を設定する（ステップＳ２００１）。
【００８７】
図２１は、本実施形態に係るアクセストークンシステム１７００の検証装置１７０２の処理手順を説明するフローチャートである。なお、図８と同様のステップについては、同じステップ番号を付与して説明を省略する。検証部４２１は、期限が有効か否かについての有効期限判定を行う（ステップＳ２１０１）。なお、ステップＳ２１０１で期限が有効ではないと判定された場合、アクセスを許否する（ステップＳ８０９）。
【００８８】
［効果の説明］
第２実施形態におけるアクセストークンシステム２または第３実施形態におけるアクセストークンシステム１２００と同様にアクセストークンの不正配布を防止できる。ただし、アクセストークンに有効期限が設定される。つまり、本実施形態の利点は、第２実施形態または第３実施形態に対し、従来のアクセストークンシステムと同様に、有効期限を設定できる、ということを意味する。
【００８９】
［第５実施形態］
次に本発明の第５実施形態に係るアクセストークンシステムについて、図２２乃至図２６を用いて説明する。図２２は、本実施形態に係るアクセストークンシステムの構成を説明するための図である。本実施形態に係るアクセストークンシステムは、上記第２実施形態乃至第４実施形態と比べると、生成装置が署名鍵格納部および署名部を有し、検証装置が署名検証鍵格納部および署名検証部を有する点で異なる。その他の構成および動作は、第２実施形態乃至第４実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【００９０】
［構成の説明］
図２２に示されるように、本実施形態に係るアクセストークンシステム１７００は生成装置１７０１と検証装置１７０２とリクエスト装置２０３と認証応答装置２０４とを備え、生成装置１７０１と検証装置１７０２とリクエスト装置２０３とは外部ネットワーク経由で通信可能に接続されている。また、リクエスト装置２０３と認証応答装置２０４とは通信可能に接続されている。
【００９１】
図２３は、本実施形態に係るアクセストークンシステム２２００の生成装置２２０１の構成を示すブロック図である。検証装置２２０１は、署名鍵格納部２３１１およびデジタル署名部２３１２をさらに備える。デジタル署名部２３１２は、署名鍵格納部２３１１と生成部３１１と接続されている。
【００９２】
署名鍵格納部２３１１は、デジタル署名方式における署名鍵を格納・保持する。ここでのデジタル署名方式とは、例えば、ＲＳＡ署名や非特許文献５に記載のＨＭＡＣが挙げられる。受領者指定アクセストークンに対して、デジタル署名を生成する場合、署名鍵を、デジタル署名部２３１２に出力する。なお、ここでの受領者指定アクセストークンとは、秘密情報の加工に用いた関数とその第２引数を含まないものとする。
【００９３】
デジタル署名部２３１２は、生成部３１１が出力した受領者指定アクセストークンと、署名鍵格納部２３１１が出力した署名鍵とを、入力に受ける。なお、ここでの受領者指定アクセストークンとは、秘密情報の加工に用いた関数とその第２引数を含まないものとする。デジタル署名部２３１２は、入力された受領者指定アクセストークンに対し、入力された署名鍵を用いて署名を生成する。
【００９４】
例えば、署名関数をＳｉｇ.としたとき、生成部３１１によって、入力された受領者指定アクセストークンをそれぞれ、
【数２５】
0006635323.tif 000026
、
【数２６】
0006635323.tif 000027
、とすると、それぞれの署名は、
【数２７】
0006635323.tif 000028
、
【数２８】
0006635323.tif 000029
、とおける。デジタル署名部２３１２は、生成した署名を生成部３１１に出力する。
【００９５】
生成部３１１は、アクセストークンシステム２００およびアクセストークンシステム１２００におけるものと同じ。ただし、最終的に受領者指定アクセストークンを出力する際に、デジタル署名部２３１２が出力した署名も付与して出力する。
【００９６】
図２４は、本第５実施形態に係るアクセストークンシステム２２００の検証装置２２０２の構成を示すブロック図である。検証装置２２０２は、署名検証鍵格納部２４２１およびデジタル署名判定部２４２２をさらに備える。デジタル署名判定部２４２２は、署名検証鍵格納部２４２１と検証部４２１と接続されている。
【００９７】
署名検証鍵格納部２４２１は、デジタル署名方式における検証鍵を格納・保持する。ここでのデジタル署名方式とは、例えば、ＲＳＡ署名やＨＭＡＣが挙げられる。署名を含む受領者指定アクセストークンに対して、署名検証を行う場合、検証鍵を、デジタル署名判定部２４２２に出力する。なお、ここでの受領者指定アクセストークンとは、秘密情報の加工に用いた関数とその第２引数を含まないものとする。
【００９８】
デジタル署名判定部２４２２は、検証部４２１から出力された署名が付与された受領者指定アクセストークンと、署名検証鍵格納部２４２１から出力された検証鍵とを、入力に受ける。なお、ここでの受領者指定アクセストークンとは、秘密情報の加工に用いた関数とその第２引数を含まないものとする。入力された受領者指定アクセストークンに付与された署名に対し、入力された検証鍵で、署名検証を行う。検証の結果、不正な署名であればアクセスを拒否する。正当な署名であれば、正当であったとする判定結果を検証部３２１に出力する。
【００９９】
［動作の説明］
図２５は、本実施形態に係るアクセストークンシステム２２００の生成装置２２０１の処理手順を説明するフローチャートである。なお、図２０と同様のステップについては、同じステップ番号を付与して説明を省略する。生成部３１１は、受領者指定アクセストークンに対して署名生成を行う（ステップＳ２５０１）。
【０１００】
図２６は、本実施形態に係るアクセストークンシステム２２００の検証装置２２０２の処理手順を説明するフローチャートである。なお、図２１と同様のステップについては、同じステップ番号を付与して説明を省略する。検証部４２１は、署名が不正か否かを判定する署名検証を行う（ステップＳ２６０１）。ステップＳ２６０１において、検証の結果、不正な署名であると判定された場合、アクセスを拒否する。（ステップＳ８０９）。有効な署名であると判定された場合は、ステップＳ８０３へと動作が進行する。
【０１０１】
［効果の説明］
本実施形態によれば、第２実施形態乃至第４実施形態と同様にアクセストークンの不正配布を防止できる。ここで、もしも不正なユーザがランダムな値かつ有効期限内を意味する値を送信してきた場合、上記第２実施形態乃至第４実施形態では、チャレンジ・レスポンスの結果が分かるまで、つまりステップＳ８０５終了まで、不正なユーザによる攻撃なのか、正当に作成された受領者指定アクセストークンなのか、判断ができない。
【０１０２】
一方、本実施形態におけるアクセストークンシステム２２００であれば、ステップＳ８０３以降の動作が実行される前に、署名検証により判断を行うことができる。これは、署名を生成できるのが署名鍵を持つユーザ、つまり署名鍵を保持する署名鍵格納部２３１１が格納された生成装置２２０１を有するユーザのみのためである。
【０１０３】
［他の実施形態］
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
【０１０４】
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるＷＷＷ(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体（non-transitory computer readable medium）は本発明の範疇に含まれる。
【０１０５】
［実施形態の他の表現］
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
受領者の秘密情報を用いて、前記受領者が指定された受領者指定アクセストークンを生成して、ユーザに提供する生成手段と、
前記受領者指定アクセストークンを用いてアクセスする前記ユーザが、指定された受領者であることを検証する検証手段と、
を備えたアクセストークンシステム。
（付記２）
前記検証手段は、
前記ユーザのアクセスに応じて、チャレンジを生成して送信するチャレンジ生成手段と、
前記チャレンジに対して生成され送信されたレスポンスを判定して、前記受領者指定アクセストークンを用いてアクセスする前記ユーザが、指定された受領者であることを検証するレスポンス判定手段と、
を有する付記１に記載のアクセストークンシステム。
（付記３）
前記アクセストークンシステムは、送信された前記チャレンジ対するレスポンスを生成して送信するレスポンス生成手段をさらに備えた付記１または２に記載のアクセストークンシステム。
（付記４）
前記生成手段は、前記秘密情報を加工して得られる値である加工値の逆元を前記アクセストークンから生成した文字列のハッシュ値に埋め込んで前記受領者指定アクセストークンを生成し、
前記逆元が埋め込まれた前記ハッシュ値をマスクするマスク手段をさらに備えた付記１乃至３のいずれか１項に記載のアクセストークンシステム。
（付記５）
前記マスク手段は、前記加工値の逆元が埋め込まれた逆元部と、前記逆元部とｂｉｔ長が等しい乱数と、を用いてＸＯＲ（排他的論理和）演算を行うことによりマスクをする付記４に記載のアクセストークンシステム。
（付記６）
前記生成手段は、前記受領者の秘密情報を総当たりが困難な値に加工した総当困難値を用いて、受領者指定アクセストークンを生成する付記１乃至５のいずれか１項に記載のアクセストークンシステム。
（付記７）
前記受領者指定アクセストークンに有効期限を指定する有効期限指定手段と、
有効期限が指定された前記受領者指定アクセストークンの有効期限が、有効期限内であるか否かを判定する有効期限判定手段と、
をさらに備えた付記１乃至６のいずれか１項に記載のアクセストークンシステム。
（付記８）
前記受領者指定アクセストークンに対してデジタル署名を生成して付与するデジタル署名生成手段と、
前記デジタル署名が有効か否かを判定するデジタル署名判定手段と、
をさらに備えた付記１乃至７のいずれか１項に記載のアクセストークンシステム。
（付記９）
受領者の秘密情報を用いて、前記受領者が指定された受領者指定アクセストークンを生成して、ユーザに提供する生成手段を備えた情報処理装置。
（付記１０）
受領者の秘密情報を用いて、前記受領者が指定された受領者指定アクセストークンを生成して、ユーザに提供する生成ステップを含む情報処理方法。
（付記１１）
受領者の秘密情報を用いて、前記受領者が指定された受領者指定アクセストークンを生成して、ユーザに提供する生成ステップをコンピュータに実行させる情報処理プログラム。
【図１】
0006635323.tif 000030
【図２】
0006635323.tif 000031
【図３】
0006635323.tif 000032
【図４】
0006635323.tif 000033
【図５】
0006635323.tif 000034
【図６】
0006635323.tif 000035
【図７】
0006635323.tif 000036
【図８】
0006635323.tif 000037
【図９】
0006635323.tif 000038
【図１０】
0006635323.tif 000039
【図１１】
0006635323.tif 000040
【図１２】
0006635323.tif 000041
【図１３】
0006635323.tif 000042
【図１４】
0006635323.tif 000043
【図１５】
0006635323.tif 000044
【図１６】
0006635323.tif 000045
【図１７】
0006635323.tif 000046
【図１８】
0006635323.tif 000047
【図１９】
0006635323.tif 000048
【図２０】
0006635323.tif 000049
【図２１】
0006635323.tif 000050
【図２２】
0006635323.tif 000051
【図２３】
0006635323.tif 000052
【図２４】
0006635323.tif 000053
【図２５】
0006635323.tif 000054
【図２６】
0006635323.tif 000055