(57)【特許請求の範囲】
【請求項１】
モバイル・ネットワークに対して接続可能なユーザ・コンピュータを認証するためのコンピュータ実装方法であって、
前記ユーザ・コンピュータが、
属性証明書を取り出すステップであって、前記属性証明書は、前記ユーザ・コンピュータのユーザのユーザ属性の集合と、前記モバイル・ネットワークに対する前記ユーザ・コンピュータを識別するためのデバイス識別子と、を証明する、前記ステップと、
位置証明書を要求するステップであって、前記位置証明書は、デバイス識別子と、前記モバイル・ネットワークによって決定された前記ユーザ・コンピュータの現在位置を示す位置データと、を証明する、前記ステップと、
認証トークンを作成するステップであって、前記認証トークンは、前記属性証明書と、前記位置証明書と、前記位置データと、前記属性証明書における前記デバイス識別子が前記位置証明書における前記デバイス識別子に等しいことを証明する証明と、を備える、前記ステップと、
前記ユーザ・コンピュータの認証のために前記認証トークンを送るステップと、
を含むコンピュータ実装方法。
【請求項２】
前記位置証明書は、前記位置証明書の発行時刻を示すタイムスタンプをさらに備え、前記タイムスタンプは、前記認証トークンに含まれる、請求項１に記載の方法。
【請求項３】
前記属性証明書の中身を前記ユーザ・コンピュータに見せない状態で前記ユーザ・コンピュータが署名するブラインド署名によって、ブラインド化された属性証明書を作成するステップをさらに含み、前記認証トークンは、前記ブラインド化された属性証明書を含み、前記証明は、前記ブラインド化された属性証明書において前記属性証明書の前記ユーザ・コンピュータによる所有も証明する、請求項１に記載の方法。
【請求項４】
前記位置証明書の中身を前記ユーザ・コンピュータに見せない状態で前記ユーザ・コンピュータが署名するブラインド署名によって、ブラインド化された位置証明書を作成するステップをさらに含み、前記認証トークンは、前記ブラインド化された位置証明書を含み、前記証明は、前記ブラインド化された位置証明書において前記位置証明書の前記ユーザ・コンピュータによる所有も証明する、請求項１に記載の方法。
【請求項５】
前記ユーザ・コンピュータの認証のための条件を定義するポリシ・データを受け取るステップをさらに含み、前記証明は、前記属性証明書におけるユーザ属性の前記集合によって前記条件が満たされることも証明する、請求項１に記載の方法。
【請求項６】
前記位置証明書は、モバイル・ネットワーク・オペレータの暗号化鍵のもとで前記デバイス識別子および前記位置データを保証する、請求項１に記載の方法。
【請求項７】
ユーザ・パスワードを要求するステップと、
ユーザによるパスワード入力を受け取るステップと、
入力パスワードを検証するためのパスワード検証プロセスを行うステップであって、前記パスワード検証プロセスは、前記入力パスワードが検証された場合のみに前記認証トークンが生成されるようにする、前記ステップと
をさらに含む、請求項１に記載の方法。
【請求項８】
前記位置証明書の発行時刻を示すタイムスタンプを証明するステップであって、前記認証トークンが前記タイムスタンプを含む、前記ステップと、
前記位置証明書が証明する前記タイムスタンプを検証するステップと、
前記タイムスタンプにより示される前記発行時刻が現在時刻より前の所定の時間間隔内であるかどうかを決定するステップと
をさらに含む、請求項１に記載の方法。
【請求項９】
前記属性証明書における第１の公開鍵・秘密鍵ペアの秘密鍵のもとで前記デバイス識別子およびユーザ属性の前記集合を保証するステップと、
前記位置証明書における第２の公開鍵・秘密鍵ペアの秘密鍵のもとで前記位置データ、タイムスタンプ、および前記デバイス識別子を保証するステップと、
前記第１の公開鍵・秘密鍵ペアの公開鍵に基づいて前記属性証明書の妥当性を検証するステップと、
前記第２の公開鍵・秘密鍵ペアの公開鍵に基づいて前記位置証明書の妥当性を検証するステップと
をさらに含む、請求項１に記載の方法。
【請求項１０】
前記証明から、前記条件がユーザ属性の前記集合によって満たされることを検証するステップをさらに含む、請求項５に記載の方法。
【請求項１１】
モバイル・ネットワークに対して接続可能なユーザ・コンピュータを、前記ユーザ・コンピュータの近傍の検証者サーバによって認証するためのコンピュータ・プログラムであって、
プロセッサに、
属性証明書を取り出すステップであって、前記属性証明書は、前記ユーザ・コンピュータのユーザのユーザ属性の集合と、前記モバイル・ネットワークに対する前記ユーザ・コンピュータを識別するためのデバイス識別子と、を証明する、前記ステップと、
位置証明書を要求するステップであって、前記位置証明書は、デバイス識別子と、前記モバイル・ネットワークによって決定された前記ユーザ・コンピュータの現在位置を示す位置データと、を証明する、前記ステップと、
認証トークンを作成するステップであって、前記認証トークンは、前記属性証明書と、前記位置証明書と、前記位置データと、前記属性証明書における前記デバイス識別子が前記位置証明書における前記デバイス識別子に等しいことを証明する証明と、を備える、前記ステップと、
前記ユーザ・コンピュータの認証のために前記認証トークンを前記検証者サーバに送るステップと、
を実行させるためのコンピュータ・プログラム。
【請求項１２】
モバイル・ネットワークに対して接続可能なユーザ・コンピュータを、前記ユーザ・コンピュータの近傍の検証者サーバによって認証するためのコンピュータ・システムであって、
１つまたは複数のコンピュータ・プロセッサと、
１つまたは複数のコンピュータ可読記憶媒体と、
前記１つまたは複数のプロセッサのうちの少なくとも１つによって実行するための前記１つまたは複数のコンピュータ可読記憶媒体に記憶されたプログラム命令と
を備え、前記プログラム命令は、
属性証明書を取り出すためのプログラム命令であって、前記属性証明書は、前記ユーザ・コンピュータのユーザのユーザ属性の集合と、前記モバイル・ネットワークに対する前記ユーザ・コンピュータを識別するためのデバイス識別子と、を証明する、前記プログラム命令と、
位置証明書を要求するためのプログラム命令であって、前記位置証明書は、デバイス識別子と、前記モバイル・ネットワークによって決定された前記ユーザ・コンピュータの現在位置を示す位置データと、を証明する、前記プログラム命令と、
認証トークンを作成するためのプログラム命令であって、前記認証トークンは、前記属性証明書と、前記位置証明書と、前記位置データと、前記属性証明書における前記デバイス識別子が前記位置証明書における前記デバイス識別子に等しいことを証明する証明と、を備える、前記プログラム命令と、
前記ユーザ・コンピュータの認証のために前記認証トークンを送るためのプログラム命令と
を含む、コンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ユーザ・コンピュータの認証に関し、より詳細には、ユーザ・コンピュータの近傍（Vicinity）の検証サーバによる、モバイル・ネットワークに接続可能なユーザ・コンピュータの認証に関する。
【背景技術】
【０００２】
ユーザ・コンピュータが同じ近傍の検証サーバに認証を受けるために使用できる場合には多くのシナリオがある。たとえば、携帯電話、タブレット、携帯情報端末（ＰＤＡ）などのユーザ・コンピュータは、情報を記憶することができ、この情報を、検証サーバに提示して、製品、サービス、または他のリソースに対するアクセスを得るために使用することが可能である。検証サーバは、ユーザ、ユーザ・コンピュータ、および発生中のトランザクションに関係したデータを検証または認証できる、銀行、クレジット・サービス、会社サーバなどの信頼されるソース、または他の同様の信頼されるコンピューティング・リソースもしくはデバイスである。ユーザ・コンピュータまたは携帯電話は、たとえば、店頭デバイスにおいて商品またはサービスを購入するために使用されるクレジット・カード詳細またはモバイル支払いデータなどの情報を含むことができる。別の例では、ユーザ・コンピュータは、ユーザ・コンピュータに記憶されたユーザＩＤまたはユーザ承認データに基づいて建物または他の施設へのアクセスを提供するユーザＩＤを含むことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、場合によっては、ユーザ・コンピュータまたはスマートフォンはマルウェアに感染することがある。マルウェアは、記憶された情報を収集し、状況によっては別のユーザ・コンピュータを認証するために使用する可能性がある。携帯電話に記憶された認証情報は、たとえば、マルウェアによって悪意のある者へ送られ、別の場所でユーザの名前で商品またはサービスを得るために使用されるおそれがある。
【課題を解決するための手段】
【０００４】
本発明の実施形態は、モバイル・ネットワークに接続可能なユーザ・コンピュータを認証するための方法、コンピュータ・プログラム製品、およびシステムを開示する。本方法は、コンピューティング・デバイスが、属性証明書を取り出すことを含み、属性証明書は、ユーザ属性の集合と、モバイル・ネットワークに対するユーザ・コンピュータを識別するためのデバイス識別子と、を証明する。本方法は、コンピューティング・デバイスが、位置証明書を要求することを含み、位置証明書は、デバイス識別子と、モバイル・ネットワークによって決定されたユーザ・コンピュータの現在位置を示す位置データと、を証明する。さらに、本方法は、コンピューティング・デバイスが、認証トークンを作成することを含み、認証トークンは、属性証明書と、位置証明書と、位置データと、属性証明書におけるデバイス識別子が位置証明書におけるデバイス識別子に等しいことを証明する証明と、を備える。加えて、本方法は、コンピューティング・デバイスが、ユーザ・コンピュータの認証のために認証トークンを送ることを含む。認証トークンは、属性証明書と、位置証明書と、位置データと、属性証明書におけるデバイス識別子が位置証明書におけるデバイス識別子に等しいことを証明する証明と、を備える。
【０００５】
上記実施形態は、高水準のユーザ・プライバシを備えつつシンプルな認証方法を提供する。この認証方法によれば、ユーザ・コンピュータが正しい位置、すなわちユーザ・コンピュータが検証サーバの近傍にありながら、位置証明書が属性証明書と同じ識別子であることを証明（proof）が示すので、デバイス識別子がユーザ・コンピュータによって明らかにされる必要がない。
【０００６】
本発明の別の実施形態は、モバイル・ネットワークに接続可能なユーザ・コンピュータを認証するためのコンピュータ・プログラムを提供する。このプログラム命令は、属性証明書を取り出すためのプログラム命令を含み、属性証明書は、ユーザ属性の集合と、モバイル・ネットワークに対するユーザ・コンピュータを識別するためのデバイス識別子と、を証明する。位置証明書を要求するためのプログラム命令が続き、位置証明書は、デバイス識別子と、モバイル・ネットワークによって決定されたユーザ・コンピュータの現在位置を示す位置データと、を証明する。さらに、プログラム命令は、認証トークンを作成するための命令を含み、認証トークンは、属性証明書と、位置証明書と、位置データと、属性証明書におけるデバイス識別子が位置証明書におけるデバイス識別子に等しいことを証明する証明と、を備える。加えて、プログラム命令は、ユーザ・コンピュータの認証のために認証トークンを検証サーバに送るための命令を含む。
【０００７】
実施形態において、位置証明書は、位置証明書の発行時刻を示すタイムスタンプをさらに証明することができる。このタイムスタンプは、認証トークンに含まれることが可能である。検証サーバは、位置証明書がタイムスタンプを証明することを検証し、タイムスタンプにより示される発行時刻が現在時刻より前の所定の時間間隔内であるかどうかを決定することができる。そして、認証トークンは、発行の後の所定の時間間隔内でのみ使用されることが可能である。
【０００８】
属性証明書および位置証明書は、符号化された形態で認証トークンに含まれてよい。いくつかの実施形態は、ユーザ・コンピュータにおいて、属性証明書の無作為ブラインド化（ｒａｎｄｏｍｉｚｅｄ  ｂｌｉｎｄｉｎｇ）によって、ブラインド化された属性証明書を作成することを含む。ブラインド化された属性証明書は、認証トークンに含まれることが可能であり、証明は、ブラインド化された属性証明書において属性証明書のユーザ・コンピュータによる所有を証明するように適合されることが可能である。ユーザ・コンピュータは、同様に、認証トークンに含まれるブラインド化された位置証明書を生成し、ブラインド化された位置証明書において位置証明書のユーザ・コンピュータによる所有を証明するように適合される証明を有することが可能である。このような証明書の無作為ブラインド化の使用は、同じユーザ・コンピュータによる異なるトランザクションが証明書の使用を通してリンクされることを防止することによって、プライバシを強化することができる。
なお、ブラインド化とは、例えば、証明書のブラインド署名を行うことをいう。すなわち、証明書発行機関が発行する証明書をブラインド化した状態で（証明書の中身を署名者であるユーザ・コンピュータに見せない状態で）、ユーザ・コンピュータが署名することをいう。このため、署名者であるユーザ・コンピュータに証明書の中身を知られることなく証明書がユーザ所有であることを証明することができる。これは、ユーザによる証明書の中身の改ざんを防ぎつつ証明書の正当性を高めることができる。
【０００９】
種々の実施形態において、検証サーバは、ポリシ・データをユーザ・コンピュータに送る。ポリシ・データは、ユーザ・コンピュータの認証のための条件を定義する。属性証明書におけるユーザ属性の集合によって認証条件が満たされることを証明するよう適合されるように証明を認証トークン内に作成するユーザ・コンピュータによって、ポリシ・データが受け取られる。そして、検証サーバは、証明から、認証条件がユーザ属性の集合によって満たされることを検証することができる。これにより、ユーザ・コンピュータは認証のために特に必要とされる属性集合に関する情報のみを明らかにすればよいので、プライバシをさらに強化することができる。
【００１０】
実施形態において、検証サーバは、認証のためのコンテキスト情報を定義するコンテキスト・メッセージを、ユーザ・コンピュータに送ることができる。ユーザ・コンピュータによって生成される証明は、コンテキスト・メッセージに依存することができる。そして、検証サーバは、証明がコンテキスト・メッセージに依存することを検証することができる。これにより、コンテキスト情報によって識別される特定の認証プロセスのみに認証トークンを使用することが可能であるので、セキュリティが増大する。
【００１１】
添付の図面を参照して、例示かつ非限定的な例として本発明の実施形態を以下により詳細に説明する。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態による、分散データ処理環境を示す機能ブロック図である。
【図２】本発明の実施形態による、ユーザ・コンピュータを認証するために、図１の分散データ処理環境においてユーザ・コンピュータの近傍の検証サーバに認証を要求するユーザ・コンピュータによって行われる、認証手順の動作ステップを示すフローチャートである。
【図３】本発明の実施形態による、検証サーバによってユーザ・コンピュータを認証するための、図１の分散データ処理環境における認証手順の実施形態の動作ステップを示すフロー図である。
【図４】本発明の実施形態による、図１の分散データ処理環境におけるサーバなどのシステムの例である、コンピュータ・システムの構成要素のブロック図である。
【発明を実施するための形態】
【００１３】
本発明の実施形態において、支払いシステムなどを提供するサービス・プロバイダは、支払い承認プロセスの一部として、モバイル・ネットワーク・オペレータからユーザのモバイル・デバイスの位置を取得し、この位置を商業位置（merchant location）と比較する。２つの位置が一致しない場合、セキュリティの問題が識別され、これが、サービス・プロバイダによるユーザへのサービスの拒否につながることがある。ユーザ・デバイス承認のための既知のシステムおよび方法は、ユーザ・プライバシを犠牲にする、または動作のために複雑な手順を必要とする、あるいはその両方の傾向がある。
【００１４】
本発明の実施形態は、ユーザのデータおよびユーザ・コンピュータ・データの諸態様を、検証サーバと共有されるデータから分離しまたは安全にしながら、ユーザのモバイル・コンピューティング・デバイスまたはスマートフォンを検証サーバによってサービス・プロバイダに対して認証する、認証プロセスまたは手順のための方法を提供する。認証手順は、数多くのシナリオで公開鍵・秘密鍵ペアなどの暗号技法を用いて行うことができる。認証手順は、店舗またはカフェなどにおける支払いなどのトランザクションの一部として、または、たとえばクラブに入るために会員カードを使用して、建物もしくは他の施設へのアクセスを得るために、または、サービス・プロバイダによってアクセスが制限されるある種のアイテムもしくは他のリソースを得るために行われることがある。認証手順は、ユーザ・コンピュータが検証サーバの近傍に存在することを必要とする。本発明の実施形態は、暗号方法を用いてモバイル・デバイスおよび証明を要求する認証のために、モバイル・ネットワークが提供するリアルタイムのモバイル・デバイス位置を使用し、認証を要求するデバイスに対するモバイル・デバイス識別子が、リアルタイム・モバイル・デバイス位置データで提供されたデバイス識別子と同じモバイル・デバイス識別子であることを検証する。さらに、本発明の実施形態は、認証を要求するモバイル・デバイスが、認証を提供する検証サーバの近傍にあることを検証する。本発明の実施形態の実装は様々な形態をとることができ、図を参照して例示的な実装の詳細を説明する。
【００１５】
図１は、本発明の一実施形態による、全体として１００で示される分散データ処理環境を示す機能ブロック図である。図１は、一実装形態の例示を与えるにすぎず、異なる実施形態が実装され得る環境に対する限定を何ら示唆するものではない。図示される環境に多くの変更が、特許請求の範囲に記載される本発明の範囲から逸脱することなく当業者によって行われる可能性がある。
【００１６】
分散データ処理環境１００は、ユーザ・コンピュータ２、検証サーバ４、属性プロバイダ５、およびモバイル・ネットワーク・オペレータ（ＭＮＯ）サーバ６を含み、それらはすべてネットワーク１を介して相互接続される。ユーザ・コンピュータ２は、モバイル・コンピューティング・デバイスであってよく、セルラ通信ネットワークなどのモバイル・ネットワークに接続可能である。検証サーバ４は、本明細書では「サービス・プロバイダ」と呼ばれるエンティティによって運営される。サービス・プロバイダは、店、健康施設、建物、クラブ、あるいは、ユーザ・コンピュータ２上のデバイス・ユーザによって使用または入手され得るサービス・プロバイダによって制御または運営される商品、サービス、アクセスもしくは他のリソースを提供する他のエンティティであり得る。ユーザ・コンピュータ２は、検証サーバ４の近傍のデバイス・ユーザによって、検証サーバ４に認証を受けるように使用され、それにより、サービス・プロバイダによって制御されるある種のリソースを入手するまたはそれにアクセスすることができる。検証サーバ４の位置は、検証サーバ４に対して予め決定されてよく、あるいは、たとえば、複数の位置で使用され得る携帯型支払い端末を備える検証サーバとして、モバイル・ネットワークを介して動的にそれ自体で決定されてもよい
【００１７】
ネットワーク１は、たとえば、モバイル・ネットワークなどの通信ネットワーク、ローカル・エリア・ネットワーク（ＬＡＮ）、仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）、インターネットなどの広域ネットワーク（ＷＡＮ）、またはこれらの組合せとすることができ、有線、無線、仮想、または光ファイバ接続を含むことができる。ネットワーク１は、音声、データ、およびビデオ情報を含むマルチメディア信号を含むデータ、音声、またはビデオ信号、あるいはその全部または一部を受信および送信することができる、１つまたは複数の有線または無線あるいはその両方のネットワークを含むことができる。一般に、ネットワーク１は、分散データ処理環境１００内のユーザ・コンピュータ２、検証サーバ４、属性プロバイダ５、およびＭＮＯサーバ６、ならびに他のコンピューティング・デバイス（図示せず）の間の通信をサポートする接続およびプロトコルの任意の組合せとすることができる。例示的な実施形態では、ネットワーク１はセルラ通信ネットワークを含む。他の実施形態では、ネットワーク１は、ネットワーク１の構成要素を介してユーザ・コンピュータ２と通信するためにモバイル・コンピュータ・デバイスの位置が識別され得る、Ｗｉ−Ｆｉベースのモバイル・ネットワークまたは任意の他のネットワークを含む。認証プロセスのためのユーザ・コンピュータ２と検証サーバ４との間の通信は、一般に、一時的物理接続または無線リンクによって提供される通信チャネルを介して行うことができる。ネットワーク１は、近距離無線通信（ＮＦＣ）用のローカル通信プロトコル、Ｗｉ−Ｆｉまたは他の無線ＬＡＮ（ローカル・エリア・ネットワーク）プロトコルを含むことができ、一般に、任意の好都合な通信メカニズムまたはネットワークを介して提供され得る。
【００１８】
ユーザ・コンピュータ２は、モバイル・コンピューティング・デバイスである。ユーザ・コンピュータ２は、たとえば、携帯電話、スマートフォン、タブレット、パームトップ、ラップトップ、ノートブック、ＰＤＡ（携帯情報端末）、スマート・ウォッチなどのウェラブル・コンピューティング・デバイス、パーソナル音楽プレーヤ、専用コンピュータ・デバイス、または、分散データ処理環境１００内の種々の構成要素およびデバイスと通信することができる任意のモバイル・プログラマブル電子デバイスとすることができ、モバイル・ネットワーク、たとえば、ネットワーク１に接続可能である。ユーザ・コンピュータ２は、検証サーバ４、属性プロバイダ５、およびＭＮＯサーバ６との間でデータを送信および受信することができる。いくつかの実施形態では、ユーザ・コンピュータ２は、スマート・フォレットなどのモバイル・デバイス支払いアプリケーションを含む。ユーザ・コンピュータ２は、図４を参照して示され説明されるメモリ４０６などのメモリ、図４に示される永続ストレージ４０８などの永続ストレージ、またはユーザ・コンピュータ２の別の安全なストレージ・モジュールに記憶された、属性プロバイダ５から受け取られた属性証明書Ｃａｔｔを含む。属性証明書Ｃａｔｔは、少なくともデバイス識別子ｓｉｄおよびユーザ属性の集合ａｔｔを証明する。属性証明書は、様々な方法でユーザ・コンピュータ２によって入手することができ、たとえば、ユーザ・コンピュータ２のユーザによって事前に記憶された属性証明書を取り出すことによって、または、モバイル・ネットワーク、プライベート・ネットワーク、もしくはインターネットなどのネットワーク１を介するユーザ・コンピュータ２と属性プロバイダ５との間の通信によって入手することができる。種々の実施形態において、デバイス識別ｓｉｄは、メモリ、永続ストレージ、またはユーザ・コンピュータ２における別の安全な位置またはモジュールに記憶される。
【００１９】
ユーザ・コンピュータ２は、検証サーバ４、認証プロバイダ５、およびＭＮＯサーバ６の命令またはデータあるいはその両方の通信を可能にする、デバイス・ユーザとユーザ・コンピュータ２との間のユーザ・インターフェースを提供するユーザ・インターフェース（ＵＩ）１０を含む。ＵＩ１０は、グラフィカル・ユーザ・インターフェース（ＧＵＩ）またはウェブ・ユーザ・インターフェース（ＷＵＩ）であってよく、アプリケーション・インターフェース、表示テキスト、ドキュメント、ウェブ・ブラウザ・ウィンドウ、ユーザ・オプション、および動作のための命令にアクセスすることができ、プログラムがユーザに提示する（グラフィック、テキスト、および音などの）情報、およびネットワーク１を介して分散データ処理環境１００内で他のコンピューティング・デバイスと対話するためにデバイス・ユーザが採用する制御シーケンスを含む。種々の実施形態において、ＵＩ１０は、分散データ処理環境１００内でユーザとユーザ・コンピューティング・デバイスとの間のインターフェースを提供するモバイル・アプリケーション・ソフトウェアである。モバイル・アプリケーション・ソフトウェアまたは「ａｐｐ」は、スマートフォン、タブレット・コンピュータ、および他のモバイル・デバイス上で実行されるように設計されたコンピュータ・プログラムである。実施形態において、ＵＩ１０は、ユーザ・コンピュータ２のデバイス・ユーザが、パスワード入力などの支払いまたは認証プロセスのためのデータまたは情報をユーザ・コンピュータ２に伝達することを可能にする。一般に、ユーザ・コンピュータ２は、マシン可読プログラム命令を実行することができ、またネットワーク１などのネットワークを介して分散データ処理環境１００内の他のコンピューティング・デバイス（図示せず）と通信することができる、任意のモバイル・プログラマブル電子デバイスまたはプログラマブル電子デバイスの組合せを表す。
【００２０】
検証サーバ４は、スタンドアロン・コンピューティング・デバイス、管理サーバ、ウェブ・サーバ、モバイル・コンピューティング・デバイス、あるいはデータを受信、送信、および処理することができる任意の他の電子デバイスまたはコンピューティング・システムとすることができる。検証サーバ４は、モバイル・ネットワークであり得るネットワーク１を介して、分散データ処理環境１００内のユーザ・コンピュータ２、属性プロバイダ５、ＭＮＯサーバ６、および他のコンピューティング・デバイス（図示せず）と通信することができる。検証サーバ４としては、たとえば、レジまたは他の支払い端末などの店頭デバイス、ＡＴＭ（現金自動預け払い機）、パーキング・メータ、自動販売機、券売機、たとえば建物または他の施設への立ち入りを制御するためのアクセス・ポイント・デバイス、あるいはユーザが認証目的でユーザ・コンピュータ２を提示する任意の他のデバイスがある。種々の実施形態において、検証サーバ４は、ユーザが認証目的でユーザ・コンピュータ２を提示する単一の「ユーザ対面」デバイスである。検証サーバ４は、そのようなデバイス単体で実装されてよく、あるいは１つまたは複数の他のデバイス、たとえば、検証サーバ機能性のいくつかの態様を実装するためにユーザ対面デバイスが通信できる別のコンピュータと組み合わせて実装されてもよい。他の実施形態では、検証サーバ４は、クラウド・コンピューティング環境などにおいてサーバ・システムとして複数のコンピュータを利用するサーバ・コンピューティング・システムとすることができる。別の実施形態では、検証サーバ４は、ラップトップ・コンピュータ、タブレット・コンピュータ、ネットブック・コンピュータ、パーソナル・コンピュータ（ＰＣ）、デスクトップ・コンピュータ、携帯情報端末（ＰＤＡ）、スマートフォン、または、ネットワーク１を介して分散データ処理環境１００内のユーザ・コンピュータ２、属性プロバイダ５、ＭＮＯサーバ６、および他のコンピューティング・デバイス（図示せず）と通信することができる任意のプログラマブル電子デバイスとすることができる。各サーバまたは各デバイスあるいはその両方の動作および記憶は、サーバまたはデバイスあるいはその両方がネットワーク１にアクセスする限り、１つまたは複数のデバイス上で行われてよい。別の実施形態では、検証サーバ４は、分散データ処理環境１００内でアクセスされたときにシームレスなリソースの単一プールとして機能するクラスタ化されたコンピュータおよび構成要素（たとえば、データベース・サーバ・コンピュータ、アプリケーション・サーバ・コンピュータなど）を利用するコンピューティング・システムを表す。検証サーバ４は、認証プログラム８およびデータベース９を含む。
【００２１】
属性プロバイダ５は、暗号証明書（ｃｒｙｐｔｏｇｒａｐｈｉｃ  ｃｒｅｄｅｎｔｉａｌ）を提供する。属性プロバイダ５は、証明書発行機関である。属性プロバイダは、証明書によって証明される属性を保証するために、サービス・プロバイダによって信頼される。属性証明書Ｃａｔｔは、ユーザ属性の集合、およびモバイル・ネットワークに対するユーザ・コンピュータ２を識別するためのデバイス識別子を証明する。属性証明書は、少なくとも、ユーザ属性の集合ａｔｔ、およびモバイル・ネットワークに対するユーザ・コンピュータ２を識別するためのデバイス識別子ｓｉｄを証明する。属性プロバイダ５は、属性証明書Ｃａｔｔを作成することによって、ユーザ属性の集合ａｔｔを証明することができる。属性証明書Ｃａｔｔは、複数のユーザ属性を備えることができる。所与のユーザ属性は、認証プロセスに必要とされ得る情報の任意のアイテムを表すデータを備えることができる。典型的な例として、支払いアカウントの詳細などの支払いデータ（たとえば、クレジット・カード、デビット・カード、またはアカウント・カードの詳細）およびビットコインまたは他の電子マネーなどの支払いトークン、ユーザ・コンピュータ２の属性を定義するデバイス・データ、ならびに、誕生日、国籍、および職名などの個人ユーザ情報が挙げられる。証明書により証明される属性を証明書発行機関に明らかにせずに、証明書が発行されることを可能にする、暗号プロトコルが知られている。証明書は、属性プロバイダ５の暗号化鍵（ｃｒｙｐｔｏｇｒａｐｈｉｃ  ｋｅｙ）を使用して属性を保証することができる。次いで、サービス・プロバイダが、適正な鍵を使用して証明書が作成されたことを検証することができる。たとえば、属性プロバイダ５は、公開鍵・秘密鍵ペアの秘密鍵を使用して証明書を作成することができ、そのペアの公開鍵は検証のために使用され得る。
【００２２】
属性プロバイダ５は、属性証明書をユーザ・コンピュータ２に送り、ユーザ・コンピュータ２は、たとえば認証手順における取り出しおよび使用のために、ユーザ・コンピュータ２のメモリまたは永続ストレージに属性証明書を記憶する。属性プロバイダ５の具体的性質、および属性プロバイダによって属性が確認される方法は、よく知られているので本明細書では説明する必要はない。
【００２３】
ＭＮＯサーバ６は、セルラ通信ネットワークまたはプロバイダなどのモバイル・ネットワーク・オペレータによってモバイル・ネットワークの一部として使用されるコンピューティング・デバイスである。ＭＮＯサーバ６は、スタンドアロン・コンピューティング・デバイス、管理サーバ、ウェブ・サーバ、モバイル・コンピューティング・デバイス、あるいはデータを受信、送信、および処理することができる任意の他の電子デバイスまたはコンピューティング・システムとすることができる。ＭＮＯサーバ６は、ネットワーク１の一部であり得るセルラ通信ネットワークを介して、分散データ処理環境１００内のユーザ・コンピュータ２、検証サーバ４、属性プロバイダ５、および他のコンピューティング・デバイス（図示せず）と通信することができる。ＭＮＯサーバ６は、そのようなデバイス単体で実装されてよく、あるいは１つまたは複数の他のデバイス、たとえば、ＭＮＯサーバ機能性のいくつかの態様を実装するためにユーザ対面デバイスが通信できる別のコンピュータと組み合わせて実装されてもよい。他の実施形態では、ＭＮＯサーバ６は、クラウド・コンピューティング環境などにおいてサーバ・システムとして複数のコンピュータを利用するサーバ・コンピューティング・システムを表すことができる。別の実施形態では、ＭＮＯサーバ６は、ラップトップ・コンピュータ、タブレット・コンピュータ、ネットブック・コンピュータ、パーソナル・コンピュータ（ＰＣ）、デスクトップ・コンピュータ、携帯情報端末（ＰＤＡ）、スマートフォン、または、分散データ処理環境１００内のユーザ・コンピュータ２、属性プロバイダ５、検証サーバ４、および他のコンピューティング・デバイス（図示せず）と通信することができる任意のプログラマブル電子デバイスとすることができる。別の実施形態では、ＭＮＯサーバ６は、分散データ処理環境１００内でネットワーク１にアクセスしたときにシームレスなリソースの単一プールとして機能するクラスタ化されたコンピュータおよび構成要素（たとえば、データベース・サーバ・コンピュータ、アプリケーション・サーバ・コンピュータなど）を利用するコンピューティング・システムを表す。種々の実施形態において、ユーザ・コンピュータ２、検証サーバ４、属性プロバイダ５、およびＭＮＯサーバ６のそれぞれに配置されるプログラムおよびデータベースのそれぞれは、各々が、ネットワーク１を介して本発明の実装および動作のための情報およびストレージへのアクセスを有するならば、分散データ処理環境１００内の様々な他のコンピューティング・デバイス上に存在することが可能である。
【００２４】
認証プログラム８は、検証サーバ４上に存在する。認証プログラム８は、図３で後述するように認証プロセスのステップを実装するための機能を提供する。認証プログラム８は、ハードウェア、ソフトウェア、またはこれらの組合せに実装されてよい。認証プログラム８は、たとえば、プログラム命令を具現化したコンピュータ可読記憶媒体から構成されてよく、プログラム命令は、検証サーバが認証プロセスのステップを実行するように検証サーバによって実行可能である。認証プログラム８は、証明書システムの基礎をなす暗号プロトコルに従って、暗号検証プロセスを行う。このプロセスでは、認証プログラム８は、ユーザ・コンピュータ２から認証トークンＴと共に提示された証明Πから、属性証明書Ｃａｔｔにおけるデバイス識別子ｓｉｄが、モバイル・ネットワークによってユーザ・コンピュータに提供された位置証明書Ｃｌｏｃにおけるデバイス識別子ｓｉｄに等しいことを検証する。認証プログラム８はまた、位置証明書Ｃｌｏｃが認証トークンにおける位置データｌｏｃを証明することを検証する。検証プロセスのこの部分では、位置証明書を生成するために使用される暗号化鍵に基づいて、たとえば、証明書を作成するための秘密鍵が使用された公開鍵・秘密鍵ペアの公開鍵を使用して、位置データｌｏｃが位置証明書Ｃｌｏｃによって有効に保証されることをチェックし得る。認証プログラム８はさらに、位置データＣｌｏｃによって示されるユーザ・コンピュータ２の現在位置が検証サーバ４の近傍であるかどうかを決定する。ここで、位置データＣｌｏｃによって識別された現在のユーザ・コンピュータ２の位置は、検証サーバ４の既知の位置と比較することができる。この比較により、検証サーバ４の既知の位置が、ユーザ・コンピュータ２の現在位置と近傍か否か判定される。近傍とは、例えば、検証サーバ４の位置を中心として、その中心からの所定範囲をいう。
【００２５】
データベース９は、検証サーバ４上に存在する。データベース９は、認証プロセスでユーザ・コンピュータ２および認証プログラム８によって使用されるデータを記憶する。データベース９は、ユーザ・コンピュータ２、属性プロバイダ５、ＭＮＯサーバ６、および認証プログラム８との間で、デバイス識別子ｓｉｄなどのデータを送信および受信することができる。データベース９は、ＭＮＯサーバ６内のメモリ（たとえば、図４のメモリ４０６）または永続ストレージ（たとえば、図４の永続ストレージ４０８）に存在してもよい。実施形態において、データベース９は、別のコンピューティング・デバイス、サーバ、およびクラウド上などのコンピューティング・リソースの接続されたグループに存在する。本発明の様々な実施形態において、データベース９に記憶された情報およびデータは、単一のデータベースに記憶されてもよく、あるいは、ネットワーク１を介してアクセス可能な分散データ処理環境１００内の他の場所に配置された１つまたは複数のデータベース上に記憶されてもよい。後述される実施形態において、データベース９に記憶されるデータは、たとえば公開鍵・秘密鍵ペアの公開鍵である暗号化鍵、ポリシ・データ、デバイス識別子ｓｉｄ、属性証明書Ｃａｔｔ、ユーザ・コンピュータ２からの認証トークンＴ、および、ＭＮＯサーバ６またはユーザ・コンピュータ２あるいはその両方から提供される位置証明書Ｃｌｏｃを含むことができる。ユーザ・コンピュータ２から受け取られるポリシ・データは、ユーザ・コンピュータの認証のための条件を定義する。ポリシ・データは、認証プロセスの成功または進行のために、ユーザ・コンピュータ２によって提示される証明書における属性によって満たされなければならない、１つまたは複数の条件を定義する。データベース９は、公開鍵・秘密鍵ペアの公開鍵を、検証サーバ４上の認証プログラム８に提供する。
【００２６】
図２は、本発明の実施形態による、ユーザ・コンピュータ２を認証するために、図１の分散データ処理環境１００においてユーザ・コンピュータ２の近傍の検証サーバ４に認証を要求するユーザ・コンピュータ２によって行われる、認証手順の動作ステップを示すフローチャート２００である。
【００２７】
ステップ２０で、ユーザ・コンピュータ２は属性証明書を取り出す。属性証明書Ｃａｔｔは、ユーザ属性の集合と、モバイル・ネットワークに対するユーザ・コンピュータを識別するためのデータベース識別子と、を証明する。ユーザ・コンピュータ２によってたとえばユーザ・コンピュータ２のメモリまたは永続ストレージに記憶された属性証明書は、認証手順において使用するために取り出される。認証手順は、属性証明書の取り出しにより、認証のためにデバイス・ユーザによって検証サーバ４に提示される検証サーバ４の近傍のユーザ・コンピュータ２として開始する。いくつかの実施形態では、認証手順の開始は、ＵＩ１０を介したデバイス・ユーザによるユーザ・パスワードｐのユーザ・コンピュータ２への入力を必要とすることがある。ステップ２１で、ユーザ・コンピュータ２は、認証の要求を検証サーバ４に送る。ステップ２２で、ユーザ・コンピュータ２は、応答として、検証サーバ４からポリシ・データおよびコンテキスト情報を受け取る。ポリシ・データは、認証のための少なくとも１つの条件を定義する。認証条件は、１つまたは複数の部分条件を含むことができる。そのような部分条件は、たとえば、特定のユーザ属性またはユーザ属性の集合が実証されなければならないこと、あるいは、所与の属性が、許可された属性の集合の要素である、または定義された範囲に含まれるなど、特定の要件を満たさなければならないことを示すことができる。
【００２８】
ステップ２３で、ユーザ・コンピュータ２は、ユーザ・パスワードを要求する。ＵＩ１０において、ユーザ・コンピュータ２は、ユーザ・パスワードを要求するプロンプトをデバイス・ユーザへ表示する。デバイス・ユーザは、ユーザ・パスワードｐを入力することによって、認証プロセスのためにユーザ・コンピュータ２をロック解除することができる。パスワードとしては、ＰＩＮ（個人識別番号）または他の英数字文字列、指紋スキャンもしくは音声サンプルなどのバイオメトリック・データ、あるいは他の利用可能な個人識別子が挙げられる。デバイス・ユーザは、ＵＩ１０を介してパスワードｐなどのパスワードをユーザ・コンピュータ２に入力する。判断ステップ２４で、ユーザ・コンピュータ２は、ユーザ・パスワードが正しいかどうかを決定する。判断ステップ２４で入力パスワードを受信すると、ユーザ・コンピュータ２は、パスワード検証プロセスを行って、入力パスワードが正しいユーザ・パスワードｐであることを検証する。パスワード検証は、ユーザ・コンピュータ２、たとえば、ユーザ・コンピュータ２のメモリ、または永続ストレージに事前に記憶されたパスワードｐに対して、入力パスワードを照合することを含むことができる。判断ステップ２４で、デバイス・ユーザによるＵＩ１０でのパスワード入力がユーザ・コンピュータ２に記憶されたパスワードと一致しないと、ユーザ・コンピュータ２が決定した場合（いいえの分岐、判断ステップ２４）、パスワードが正しくなく、認証手順は終了する。しかしながら、デバイス・ユーザによってＵＩ１０を介して入力されたパスワードがユーザ・コンピュータ２に記憶されたパスワードと一致すると、ユーザ・コンピュータ２が決定した場合（はいの分岐、判断ステップ２４）、パスワードは正しく、認証手順はステップ２５に進む。
【００２９】
ステップ２５で、ユーザ・コンピュータ２は、ＭＮＯサーバ６に位置証明書を要求する。ユーザ・コンピュータ２は、モバイル・ネットワークたとえばネットワーク１と通信して、ＭＮＯサーバ６に位置証明書を要求する。ＭＮＯサーバ６は、モバイル・ネットワーク内でユーザ・コンピュータ２を識別するデバイス識別子ｓｉｄに基づいて、モバイル・ネットワーク・インフラストラクチャを介してユーザ・コンピュータ２の現在位置を決定する。ＭＮＯサーバ６は、デバイス識別子ｓｉｄと、ユーザ・コンピュータ２の検出された位置を示す位置データｌｏｃとを証明する位置証明書Ｃｌｏｃを生成する。認証手順の動作において、ユーザ・コンピュータ２は、暗号証明書すなわち位置証明書Ｃｌｏｃを動的に取得することができる。位置証明書Ｃｌｏｃは、図１に概略的に示されたように、モバイル・ネットワークとの通信を介して取得される。位置証明書は、少なくとも、デバイス識別子ｓｉｄと、たとえばＭＮＯサーバ６を使用してモバイル・ネットワークによって決定されたユーザ・コンピュータ２の現在位置を示す位置データｌｏｃとを証明する。位置データｌｏｃは、任意の好適な態様で、たとえば、地理座標、地図領域、郵便番号、住所などに関して、位置を示すことができる。後述される実施形態において、位置証明書は、ＭＮＯサーバ６によって提供されるなど、モバイル・ネットワーク・オペレータから直接的に取得される。たとえば、位置証明書Ｃｌｏｃは、モバイル・ネットワークを介するユーザ・コンピュータ２とＭＮＯサーバ６との間の直接通信によって取得することができる。位置証明書Ｃｌｏｃは、暗号化鍵のもとで、デバイス識別子ｓｉｄおよび位置データｌｏｃの正当性を保証することができる。後述される実施形態において、この暗号化鍵は、モバイル・ネットワーク・オペレータの公開鍵・秘密鍵ペアの秘密鍵である。位置証明書Ｃｌｏｃは、既知の資格情報発行プロトコルを用いて生成されてよく、ＭＮＯサーバ６の暗号化鍵を使用して作成されてよい。ステップ２６で、ユーザ・コンピュータ２は、ＭＮＯサーバ６から位置証明書Ｃｌｏｃ（ｌｏｃ，ｓｉｄ）を受け取る。
【００３０】
ステップ２７で、ユーザ・コンピュータ２は、ブラインド化された属性証明書を作成する。ブラインド化された属性証明書は、ブラインド化された位置証明書を含む。ブラインド化された属性証明書およびブラインド化された属性位置証明書はそれぞれ、属性証明書および位置証明書の無作為ブラインド化の既知の方法によって作成される。ブラインド化された属性証明書の使用の詳細は、図３でより詳細に説明する。
【００３１】
ステップ２８で、ユーザ・コンピュータ２は証明Πを決定する。ユーザ・コンピュータ２は、属性証明書Ｃａｔｔにおけるデバイス識別子ｓｉｄが位置証明書Ｃｌｏｃにおけるデバイス識別子ｓｉｄに等しいことを証明するために、証明書システムの基礎をなす暗号プロトコルに従って既知の様式で証明Πを計算する。この例では、証明Πはまた、ステップ２２で受け取られたポリシ・データによって定義された認証条件が、属性証明書Ｃａｔｔにおけるユーザ属性の集合ａｔｔによって満たされること、たとえば、証明書が必要な要件を含むこと、または１つまたは複数の属性が指定要件を満たすこと、あるいはその両方を、証明するように適合される。証明Πはまた、さらに図３で後述されるように、検証サーバに対して他の事実が実証されるように証明することもある。
【００３２】
ステップ２９で、ユーザ・コンピュータ２は、認証トークンＴ（Ｃａｔｔ、Ｃｌｏｃ、ｌｏｃ、および証明Π）を作成する。認証トークンＴは、属性証明書Ｃａｔｔ、位置証明書Ｃｌｏｃ、および証明Πを含む。属性証明書Ｃａｔｔは、デバイス識別ｓｉｄおよびユーザ支払いアカウント詳細など、１つまたは複数のユーザ属性を備えることができる。位置証明書Ｃｌｏｃは、ＭＮＯサーバ６によって提供されるデバイス識別ｓｉｄおよび現在デバイス位置を含む。証明Πは、提供された両方の証明書のデバイス識別が同じであることを検証する。証明書ＣａｔｔおよびＣｌｏｃは、後で説明されるように、符号化された形態で認証トークンに組み込まれ得る。位置データｌｏｃは、ＭＮＯサーバ６から位置証明書Ｃｌｏｃと一緒にユーザ・コンピュータに供給され得る。考えられる他の実施形態として、ユーザ・コンピュータは、位置証明書を生成するために使用される暗号化鍵に基づいて、たとえば、証明書を作成するためにペアのうち秘密鍵が使用された公開鍵・秘密鍵ペアの公開鍵を使用して、位置証明書から位置データｌｏｃを取得してもよい。
【００３３】
ステップ３０で、ユーザ・コンピュータ２は、ユーザ・コンピュータの認証のために、認証トークンＴを検証サーバ４に送る。検証サーバ４に送られた認証トークンＴは、証明書システムの基礎をなす暗号プロトコルに従って暗号検証プロセスを行うために、認証プログラム８に使用される。このプロセスでは、認証プログラム８は、証明Πから、属性証明書Ｃａｔｔにおけるデバイス識別子ｓｉｄが位置証明書Ｃｌｏｃにおけるデバイス識別子ｓｉｄに等しいことを検証する。認証プログラム８は、位置証明書Ｃｌｏｃが認証トークンＴにおける位置データｌｏｃを証明することを検証し、証明書を作成するためにペアのうち秘密鍵が使用された公開鍵・秘密鍵ペアの公開鍵を使用して、位置データｌｏｃが位置証明書Ｃｌｏｃによって有効に証明されることをチェックし得る。
【００３４】
ユーザ・コンピュータ２から認証トークンＴを受け取ると、ＭＮＯサーバ６上の認証プログラム８はさらに、位置データｌｏｃによって示されるユーザ・コンピュータ２の現在位置が検証サーバ４の近傍であるかどうかを決定する。現在のユーザ・コンピュータの位置は、ここで検証サーバ４の既知の位置と比較することができる。認証プログラム８は、ユーザ・コンピュータ２が検証サーバ６の閾値距離内にあることをチェックし得る。認証プログラム８はさらに、属性証明書Ｃａｔｔによって証明されたユーザ属性の集合ａｔｔがユーザ・コンピュータの認証のための条件を満たすかどうかを決定する。この実施形態では、証明Πが、ステップ２１で送られたポリシ・データによって定義された認証条件が属性証明書Ｃａｔｔにおけるユーザ属性の集合ａｔｔによって満たされると証明することを、認証ロジックがチェックする。検証プロセスのこの部分では、属性証明書を生成するために使用される暗号化鍵に基づいて、たとえば、証明書を生成するために属性プロバイダ５が使用した秘密鍵とペアの公開鍵を使用して、属性証明書Ｃａｔｔが、要求される属性を満たす有効証明書であることが要件となる。実施形態において、サーバ上の認証プログラム８による認証のために認証トークンＴを検証サーバ６に送ると、ユーザ・コンピュータ２は、検証サーバ４との提示および認証手順のためのステップを完了し、ユーザ・コンピュータ２は処理を終える。
【００３５】
図３は、本発明の実施形態による、検証サーバ４によってユーザ・コンピュータ２を認証するための、分散データ処理環境１００における認証手順の動作ステップを示すフロー図３００である。図３は、本発明の例示的な実施形態の暗号実装を示す。この実施形態では、Ｃａｍｅｎｉｓｃｈ−Ｌｙｓｙａｎｓｋａｙａ署名に基づく匿名証明書システムの暗号化手法を採用する。まず、説明する実施形態の理解を助けるために、Ｃａｍｅｎｉｓｃｈ−Ｌｙｓｙａｎｓｋａｙａ署名の特性の簡単な説明をする。
【００３６】
以下は、既知の離散対数ベースのゼロ知識証明（Zero-KnowledgeProofs）の説明である：一般的なパラメータ・モデルにおいて、本発明者らは、離散対数に関する命題（ｓｔａｔｅｍｅｎｔ）を証明するためのいくつかの既知の結果、すなわち：（１）素数または合成数を法とする離散対数の知識の証明、（２）２つの（場合によって異なる）素数または合成数モジュラスを法とする表現の同等性の知識の証明、（３）あるコミットメントが他の２つのコミットされた値に対して開かれていることの証明、（４）コミットされた値が所与の整数区間内にあることの証明、および（５）上記の証明のうちの任意の２つの論理和または論理積の証明などを使用する。これらのプロトコルは、合成数を法としてリベスト、シャミル、エイドルマン（ＲＳＡ）による仮定のもとでセキュアであり、素数を法として離散対数仮定のもとでセキュアである。
【００３７】
上記の証明を参照するとき、示される方法は、種々の離散対数の知識の証明および離散対数に関する命題の妥当性の証明のためにＣａｍｅｎｉｓｃｈおよびＳｔａｄｌｅｒによって導入された表記に従う。たとえば、
【数１】
0006691420.tif 000002
は、「ｙ＝ｇαｈβおよび
【数２】
0006691420.tif 000003
が成立するような整数α、β、およびδの知識のゼロ知識証明」を表し、ただし、ｕ≦α≦ｖであり、ｙ，ｇ，ｈ，
【数３】
0006691420.tif 000004
は、群
【数４】
0006691420.tif 000005
および
【数５】
0006691420.tif 000006
の要素である。
【００３８】
規約として、ギリシャ文字が、証明される知識の量を表し、他のすべての値は検証者に知られている。この方法は、知識のそのような証明を、あるメッセージｍ上の署名に変えるための既知のＦｉａｔ−Ｓｈａｍｉｒヒューリスティックの適用を示し、これは、たとえば、ＳＰＫ｛（α）：ｙ＝ｇα｝（ｍ）として表される。この表記でプロトコルが与えられると、証明を実装する実際のプロトコルを得ることが簡単であり、以下の実施形態に適切なプロトコルは当業者には容易に明らかとなろう。
【００３９】
実施形態において、示される方法は、メッセージを負の整数および正の整数にすることができるＣａｍｅｎｉｓｃｈ−Ｌｙｓｙａｎｓｋａｙａ署名の既知の方法の明快な変形形態を含む。ｌｍ、ｌｅ、ｌｎ、ｌｒおよびＬをシステム・パラメータとする。ｌｒはセキュリティ・パラメータであり、他の意味は以下で明らかとなる。
【００４０】
下記に（ａ）〜（ｄ）で示される方法は、整数の集合
【数６】
0006691420.tif 000007
を表す。したがって、この集合の要素は、長さｌｍに署名を運搬する追加ビットを加えた２進列、すなわち、合計でｌｍ＋１ビットとして符号化することができる。キー生成：入力ｌｎに対し、ｎ＝ｐｑ、ｐ＝２ｐ’＋１、ｑ＝２ｑ’＋１となるようなｌｎビットＲＳＡモジュラスｎを選択する。ここで、ｐ、ｑ、ｐ’、およびｑ’は素数である。ランダムに均一にＲ０、…、ＲＬ−１、Ｓ、Ｚ∈ＱＲｎを選択する。公開鍵（ｎ，Ｒ０，…，ＲＬ−１，Ｓ，Ｚ）および秘密鍵ｐを出力する。
（ａ）メッセージ空間が、集合
【数７】
0006691420.tif 000008
である。
（ｂ）署名アルゴリズム：入力ｍ０、…、ｍＬ−１に対し、長さｌｅ＞ｌｍ＋２の乱数素数ｅ、および長さｌｖ＝ｌｎ＋ｌｍ＋ｌｒの乱数ｖを選択する。
（ｃ）
【数８】
0006691420.tif 000009
を計算する。
（ｄ）署名は（ｅ，Ａ，ｖ）からなる。
【００４１】
検証アルゴリズム：タプル（ｅ，Ａ，ｖ）がメッセージ（ｍ０，…，ｍＬ−１）上の署名であることを検証し、以下の命題が成立することをチェックする：
【数９】
0006691420.tif 000010
【００４２】
以下は、本発明の実施形態における署名の知識を証明している。示される方法は、どのように検証サーバ４などの検証者が署名に関する他の情報を何ら明らかにすることなくＣＬ署名の所有を証明できるのかを説明する。示される方法は、上述のように離散対数ベースのゼロ知識証明プロトコルを使用する。Ａが公開値ならば、本発明者らは、Ｒ０、…、ＲＬ−１、Ｓ、およびＡに関してＺの知識表現を提供することにより、そうすることができた。しかしながら、Ａを公開することは、すべてのトランザクションをリンク可能にすることになる。幸いなことに、Ａをランダム化することができる：所定の署名（Ａ，ｅ，ｖ）、つまりタプル（Ａ’：＝ＡＳ−ｒ  ｍｏｄ  ｎ，ｅ，ｖ’：＝ｖ＋ｅｒ）は、ｒの任意の値についても有効な署名である。ここで、ａ∈
【数１０】
0006691420.tif 000011
であり、かつｒが
【数１１】
0006691420.tif 000012
からランダムに均一に選択されるならば、値Ａ’が、
【数１２】
0006691420.tif 000013
に対して統計的に均一に近く分散される。したがって、ユーザは、それを明らかにするたびに新たなＡ’を計算し、次いで、検証者と共に、以下のプロトコル：
【数１３】
0006691420.tif 000014
を実行することができる。
【００４３】
ここで、この証明プロトコルから命題
【数１４】
0006691420.tif 000015
に関して技術的結果がある。これらは実質的に無償で実装され得るが、それらは、秘密が実際により小さい区間にあることを必要とし、すなわち、署名者は、
【数１５】
0006691420.tif 000016
からｅを選択する必要があり、ただし、
【数１６】
0006691420.tif 000017
であり、
【数１７】
0006691420.tif 000018
および
【数１８】
0006691420.tif 000019
は、セキュリティ・パラメータである（１番目は、統計的ゼロ知識を制御し、２番目は、ＰＫプロトコルにおけるチャレンジ・メッセージのサイズである）。同様に、本発明者らは、
【数１９】
0006691420.tif 000020
のように、署名方式へのメッセージ入力のサイズが制限されることを必要とする。証明は、メッセージの絶対値が、
【数２０】
0006691420.tif 000021
より小さいことを証明できるだけであるので、本発明者らは、整合性のためにメッセージ空間に負のメッセージも含める。最後に、
【数２１】
0006691420.tif 000022
（ｍｏｄ  ｎ）において「±」が出現することに留意されたい。上記は、ＲＳＡ群における知識の証明の専門的事項である。空間ＲＳＡモジュラスｎに対するＺ＊ｎの群構造およびその部分群ＱＲｎのため、証明者が複数の小さい既知の位数（ｏｒｄｅｒ）を含めること、および１／２の確率の否定の命題を証明することを可能にし得る小さい位数の部分群が存在する。しかしながら、この専門的事項は、（定義により奇素数の）ｅが否定を維持し、この場合は強いＲＳＡ仮定を低減することを可能にするので、当面は適用において問題ではない。
【００４４】
既知のＰｅｄｅｒｓｅｎコミットメント方式において、方法は、公開パラメータとして素数位数ｑの群Ｇおよび生成元（ｇ０，…，ｇｍ）を示した。値
【数２２】
0006691420.tif 000023
にコミットするために、ランダムなｒ∈Ｚｑを選び、
【数２３】
0006691420.tif 000024
を設定する。ＤａｍｇａｒｄおよびＦｕｊｉｓａｋｉによって示されたように、群ＧがＲＳＡ群であり、コミットするものがモジュラスの因数分解に通じていない場合、Ｐｅｄｅｒｓｅｎコミットメント方式は、任意のサイズの整数にコミットするために使用され得る。
【００４５】
上記の暗号原理に基づく認証方法の実施形態を、図３を参照して説明する。
【００４６】
（ｎ，Ｒ０，…，ＲＬ−１，Ｓ，Ｚ）を属性プロバイダ５の公開鍵とし、
【数２４】
0006691420.tif 000025
をＭＮＯの公開鍵とする。ｘをユーザの秘密鍵とする。この鍵ｘは、ユーザ・コンピュータ２、たとえば、メモリ、永続ストレージ、または加入者識別モジュール（ＳＩＭ）もしくはＳＩＭカードなどのセキュアなハードウェア・モジュールに記憶され得る。別の実施形態では、鍵ｘは、ネットワーク１であり得るモバイル・ネットワークを介してユーザ・コンピュータにアクセス可能な検証サーバ４などの認証サーバによって記憶されてもよく、あるいは、鍵共有プロトコルを使用して既知のやり方で達成できるように、ユーザ・コンピュータとそのような認証サーバとの間で共有されてもよい。ユーザ・コンピュータ２に対するデバイス識別子は、前述のようにデバイス識別子ｓｉｄである。
【００４７】
セットアップ動作において、ユーザは、属性プロバイダ５から属性証明書Ｃａｔｔを取得する。ここでは簡単にするために、属性証明書は、単一の属性ａをユーザに表明するものとして説明される。属性証明書は、発行プロトコルを実行することによって、属性プロバイダ５から既知のやり方で取得される。発行プロトコルの終わりに、ユーザ・コンピュータ２は、
【数２５】
0006691420.tif 000026
ｍｏｄ（ｎ）、
【数２６】
0006691420.tif 000027
、および
【数２７】
0006691420.tif 000028
が成立するような署名（Ａ，ｖ，ｅ）、およびメッセージｘ、ｓｉｄ、およびａの形態で証明書Ｃａｔｔを、メモリまたは永続ストレージに記憶する。したがって、属性証明書は、属性プロバイダ５の第１の公開鍵・秘密鍵ペアの秘密鍵のもとで属性ａおよびデバイス識別子ｓｉｄの正当性を保証する。
【００４８】
発行の際に、値ｘおよびデバイス識別子ｓｉｄを属性プロバイダ５から隠すことができ、したがって、デバイス・ユーザのセキュリティおよびプライバシがさらに向上する。セキュリティ向上は、当業者に既知のやり方で証明書方式の暗号機能性を活用することによって達成され得る。
【００４９】
ユーザ・コンピュータ２は、ユーザによって、位置ｌに存在する検証サーバ４に移動されまたは提示され、サービス・プロバイダＰによって提供されるサービスへのアクセスを得る。簡単にするため、この例では、サービス・プロバイダＰは、単純に、属性ａがユーザに属することを裏付ける証明書の所有を証明するように、ユーザに要求する。デバイス・ユーザとサービス・プロバイダＰとの間に発生する特定のトランザクションは、特定のコンテキスト情報（たとえば、商品／サービスの識別子コード、コスト、検証サーバ識別子、日付など）によって定義される。
【００５０】
ユーザ・コンピュータ２が属性証明書を取り出すと（ステップ３０１）、図３のステップ３０１で示されるように認証プロセスが開始され、ユーザ・コンピュータ２が検証サーバ４に提示される。取り出された属性証明書は、たとえば、メモリ４０６などのユーザ・コンピュータ２のメモリ、または永続ストレージ４０８などの永続ストレージに記憶されてよい。ステップ３１０で、検証サーバ４は、トランザクションのためのコンテキスト情報を定義するコンテキスト・メッセージｃｘｔと一緒にポリシ・データをユーザ・コンピュータ２に送る。ステップ３２０で、ユーザ・コンピュータ２は、ポリシ・データおよびコンテキスト・メッセージを受け取る。
【００５１】
ステップ３３０で、ユーザ・コンピュータ２は、ユーザ・パスワードｐのユーザによる入力を要求する。ステップ３４０で入力パスワードを受信すると、ユーザ・コンピュータ２は、パスワード検証プロセスを行って、入力パスワードが正しいユーザ・パスワードｐであることを検証する。検証は、ユーザ・コンピュータ２、たとえばメモリもしくは永続ストレージ、またはたとえばＳＩＭカードに事前に記憶されたパスワードｐに対して、入力パスワードを照合することを含むことができる。別の実施形態では、パスワード検証プロセスは、モバイル・ネットワークたとえばネットワーク１を介するユーザ・コンピュータ２と検証サーバ４などの認証サーバとの間の通信を必要とすることがある。たとえば、そのような検証プロセスは、次の暗号手順のためにユーザの秘密鍵にアクセスすることを必要とすることがある。判断ステップ３４０でパスワード検証が（たとえば、ユーザによる閾値数のパスワード試行の後に）失敗した場合、認証プロセスは終了する（いいえ分岐、判断ステップ３４０）。
【００５２】
入力パスワードが検証されると（はい分岐、判断ステップ３４０）、ステップ３５０で、ユーザ・コンピュータは、モバイル・ネットワークであり得るネットワーク１によって通信して、ＭＮＯサーバ６に位置証明書Ｃｌｏｃを要求する。ステップ３６０で、ＭＮＯサーバ６は、ユーザ・コンピュータ２の現在位置をｌ’として決定する。ステップ３７０で、ＭＮＯサーバ６は、位置証明書Ｃｌｏｃ（ｌ’，ｔ’，ｓｉｄ）を発行する。ＭＮＯサーバ６によって生成された位置証明書は、デバイス識別子ｓｉｄと、位置データｌ’と、位置証明書Ｃｌｏｃの発行時刻を示すタイムスタンプｔ’とを証明する。ステップ３８０でユーザ・コンピュータ２によって受け取られる位置証明書Ｃｌｏｃは、値ｓｉｄ、ｌ’、およびｔ’における署名
【数２８】
0006691420.tif 000029
の形態であり、
【数２９】
0006691420.tif 000030
ｍｏｄ
【数３０】
0006691420.tif 000031
、
【数３１】
0006691420.tif 000032
、および
【数３２】
0006691420.tif 000033
が成立するようにされている。したがって、位置証明書Ｃｌｏｃは、モバイル・ネットワーク・オペレータまたはＭＮＯサーバ６の第２の公開鍵・秘密鍵ペアの秘密鍵のもとで、デバイス識別子ｓｉｄ、位置データｌ’、およびタイムスタンプｔ’を保証する。
【００５３】
ステップ３９０で、ユーザ・コンピュータ２は、ブラインド化された属性証明書およびブラインド化された位置証明書をそれぞれ属性証明書および位置証明書の無作為ブラインド化によって作成する。特に、ユーザ・コンピュータ２は、ランダムなｒおよび
【数３３】
0006691420.tif 000034
を選び、
【数３４】
0006691420.tif 000035
ｍｏｄ  ｎ、
【数３５】
0006691420.tif 000036
ｍｏｄ  ｎ、および
【数３６】
0006691420.tif 000037
を計算する。さらに、ステップ４０１で、ユーザ・コンピュータ２は、証明Πを計算し、認証トークンＴを生成する。資格証明を決定または検証するために証明Πを計算することは、以下のように行われる。
【００５４】
【数３７】
0006691420.tif 000038
【００５５】
証明Πは、（１）属性証明書におけるデバイス識別子が、位置証明書におけるデバイス識別子に等しいこと、（２）それぞれブラインド化された証明書における属性証明書および位置証明書のユーザ・コンピュータによる所有、（３）属性証明書が、必要とされる属性ａを含むこと、ならびに（４）位置証明書が、位置ｌ’およびタイムスタンプｔ’を証明すること、を証明するように適合される。証明Πはまた、上記例においてｃｘｔに結合されるので、コンテキスト・メッセージに依存する。次いで、認証トークンＴが、
【数３８】
0006691420.tif 000039
として生成される。したがって、認証トークンＴは、ブラインド化された属性および位置証明書Ｃｌｏｃ、実証されるべき属性ａ、タイムスタンプおよび現在ユーザ位置、ならびに証明Πを備える。
【００５６】
ステップ４１０で、ユーザ・コンピュータ２は認証トークンＴを検証サーバ４に送る。ステップ４２０で、検証サーバ４は認証トークンＴを受け取る。ステップ４３０で、検証サーバ４は、検証プロセス（証明Πの検証、位置および時間のチェック）を行う。先にステップ４０１で説明したような認証トークンＴの検証プロセスは、上記ステップ４０１に関連して項目化された事実を証明Πが検証または証明すること、および証明Πが正しいコンテキスト・メッセージｃｘｔに結合されることを証明する暗号検証プロセスである。この認証手順において、検証サーバ４は、上述の第１および第２の鍵ペアの公開鍵を使用して、ユーザ・コンピュータ２によって所有される属性証明書Ｃａｔｔおよび位置証明書の妥当性をそれぞれ検証することができる。検証サーバ４は、ユーザ・コンピュータ２の位置ｌ’が、認証プログラム８の示す閾値距離内か否か、すなわち検証サーバ４の位置ｌに十分に近いか否かをチェックする。検証サーバ４はまた、タイムスタンプｔ’によって示される発行時刻が、現在時刻ｔより前の所定の時間間隔内であることをチェックする。
【００５７】
判断ステップ４４０で、検証サーバ４は、検証が成功したかどうかを決定する。検証が成功していない場合（いいえ分岐、判断ステップ４４０）、検証サーバ４はユーザ・コンピュータ２の認証を拒否し（ステップ４６０）、認証手順が終了する。検証が成功した場合（はい分岐、判断ステップ４４０）、検証サーバ４はユーザ・コンピュータ２を認証し（ステップ４５０）、認証手順が終了する。
【００５８】
先に説明した利点に加えて、この実施形態でのタイムスタンプの使用により、認証トークンＴは位置証明書の発行後の短い時間内のみに使用できることが証明される。さらに、コンテキスト・メッセージの使用は、現在のトランザクションに対する使用を制限する。ブラインド化された証明書の使用により、認証トークンＴに提供された証明書を使用してユーザについての異なるトランザクションをリンクできないことが証明される。認証トークンＴは、入力ユーザ・パスワードが検証された場合のみに生成される。したがって、図３に示されるような認証手順は、ユーザの追加的セキュリティおよびプライバシを提供する。
【００５９】
上記実施形態は、２以上の属性または複数のユーザ属性を持つ属性証明書に容易に拡張することができる。同様に、より複雑なアクセス制御ポリシが可能である。そのようなポリシおよびそれらを遂行する方法は、当技術分野でよく知られているので、ここでは簡単にするために詳細を省略する。いくつかの実施形態では、ポリシ・データに定義された認証条件に応じて、属性自体は検証サーバ４などの検証者に明らかにされる必要がなく、属性証明書Ｃａｔｔによって証明された属性集合が、必要とされる認証条件を満たす１つまたは複数の属性を含むということを証明することで十分であり得る。
【００６０】
もちろん、他の実施形態が、Ｃａｍｅｎｉｓｃｈ−Ｌｙｓｙａｎｓｋａｙａ署名方式以外の匿名の証明書方式を用いてもよく、一般に、本発明の実施形態は、任意の好適な暗号証明書システムに基づいてよい。他の証明書システムの例として、自己ブラインド化可能証明書、およびマイクロソフト社のＵ−Ｐｒｏｖｅシステム（Ｒ）が挙げられる。
【００６１】
いくつかの実施形態では、位置証明書を取得するための手順は、ＭＮＯサーバ６以外のサーバとの通信を含むことがある。たとえば、ユーザ・コンピュータ２は、認証サーバと通信して、デバイス識別子とモバイル・ネットワークから得られた位置データとを証明する資格情報を取得することができる。そのような証明書は、認証サーバに証明された情報を開示することなく発行され得る。位置証明書は、ユーザ・パスワードがこの認証手順で検証された場合のみに発行され得る。検証サーバ４の位置は、サーバに対して予め決定されてもよく、あるいは、たとえば複数の位置で使用され得る携帯型支払い端末を含む検証サーバに対し、モバイル・ネットワークを介して動的に決定されてもよい。
【００６２】
代替的実施形態では、ポリシ・データの通信を必要としないことがある。認証ポリシは、ユーザ・コンピュータ２で予め定義されてもよく、あるいはユーザ・コンピュータが、単純に認証プロセスにおいてすべてのユーザ属性を実証してもよい。他の実施形態では、ステップは、図２および図３に示されたステップと異なる順序で実行され得る。いくつかのステップは、適宜に同時に行われてもよい。
【００６３】
上記実施形態は、モバイル・ネットワークによってセキュアに認証されたユーザ・コンピュータの位置が、検証サーバの近傍にあるか確かめることを可能にする。図２および図３で説明されたような認証手順は、別の位置にあるデバイスによるユーザの属性証明書Ｃａｔｔの悪質な使用を防ぐ。たとえばユーザ・コンピュータ上のマルウェアが属性証明書をキャプチャして送信するのを防ぐ。したがって、ユーザ・コンピュータ２に長期間記憶された証明書も、そのようなマルウェアに対して保護される。位置検証は、デバイス識別子ｓｉｄを検証サーバ４に明らかにすることなく達成される。モバイル・ネットワーク・オペレータは、検証者とのユーザ・トランザクションの詳細を学習しない。上記のプロセスにおけるポリシ・データの使用により、ユーザは、認証に必要な証明された属性に関する特定の情報のみを検証者に明らかにすることができるようになる。したがって、上記実施形態は、高レベルのユーザ・プライバシを保持する。
【００６４】
ユーザ属性の集合ａｔｔが、アカウント発行体によってユーザに発行された支払いカードの詳細などの支払いアカウント・データを含む、実施形態では、モバイル・ネットワークによって決定されたユーザ・コンピュータの位置は、アカウント発行体に明らかにされない。ここでの好ましい実施形態では、支払いアカウント・データは、アカウント発行体の公開鍵・秘密鍵ペアの秘密鍵のもとで暗号化され得る。図３のプロセスのステップ４３０において、検証サーバはさらに、アカウント発行体公開鍵・秘密鍵ペアの公開鍵に基づいて、支払いアカウント・データの妥当性を検証することができる。支払いは、検証者に明らかにされているユーザＩＤを含む支払いアカウント・データ無しにアカウント発行体から取得された検証者および支払いによって認証されることが可能であり、したがって、ユーザ・プライバシがさらに向上する。加えて、アカウント発行体は、モバイル・ネットワークによって決定されるようなユーザ・コンピュータの位置を学習しない。
【００６５】
本発明の様々な実施形態の説明は、例示のために示されているが、網羅することも開示される実施形態に限定することも意図していない。多くの変更および変形が、説明された実施形態の趣旨および範囲から逸脱することなく当業者に明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の適用、もしくは市場で見られる技術に対する技術的改善を説明するために、または当業者が本明細書に開示された実施形態を理解するのを可能にするために選択されている。
【００６６】
図４は、本発明の実施形態による、図１の分散データ処理環境１００内のユーザ・コンピュータ２、検証サーバ４、属性プロバイダ５、またはＭＮＯサーバ６、あるいはその全部または一部の構成要素のブロック図４００である。図４は、一実装形態の単に例示を示しており、異なる実施形態が実装され得る環境に対するいかなる限定も示唆しない。示された環境に対する多くの変更が可能である。
【００６７】
ユーザ・コンピュータ２、検証サーバ４、属性プロバイダ５、またはＭＮＯサーバ６、あるいはその全部または一部は、プロセッサ４０４、キャッシュ４１４、メモリ４０６、永続ストレージ４０８、通信ユニット４１０、入力／出力（Ｉ／Ｏ）インターフェース４１２、および通信ファブリック４０２を含む。通信ファブリック４０２は、キャッシュ４１４、メモリ４０６、永続ストレージ４０８、通信ユニット４１０、および入力／出力（Ｉ／Ｏ）インターフェース４１２の間の通信を提供する。通信ファブリック４０２は、システム内のプロセッサ（マイクロプロセッサ、通信およびネットワーク・プロセッサなど）、システム・メモリ、周辺デバイス、および任意の他のハードウェア構成要素の間のデータまたは制御情報あるいはその両方を通すように設計された任意のアーキテクチャによって実装することができる。たとえば、通信ファブリック４０２は１つまたは複数のバスと共に実装することができる。
【００６８】
メモリ４０６および永続ストレージ４０８は、コンピュータ可読記憶媒体である。この実施形態では、メモリ４０６はランダム・アクセス・メモリ（ＲＡＭ）を含む。一般に、メモリ４０６は、任意の適切な揮発性または不揮発性コンピュータ可読記憶媒体を含むことができる。キャッシュ４１４は、メモリ４０６からの最近アクセスされたデータおよび近い最近にアクセスされたデータを保持することによってプロセッサ４０４の性能を向上する、高速メモリである。いくつかの実施形態では、メモリ４０６または永続ストレージ４０８は、デバイス識別子ｓｉｄがユーザ・コンピュータ２に記憶され結合される、ＳＩＭまたはＳＩＭカードなどのセキュアなハードウェア・モジュールであってよい。
【００６９】
本発明の実施形態を実施するために使用されるプログラム命令およびデータは、キャッシュ４１４を介してそれぞれのプロセッサ４０４の１つまたは複数によって実行またはアクセスあるいはその両方をするために、永続ストレージ４０８に記憶される。この実施形態では、永続ストレージ４０８は磁気ハード・ディスク・ドライブを含む。磁気ハード・ディスク・ドライブに代えてまたは加えて、永続ストレージ４０８は、ソリッドステート・ハード・ドライブ、半導体ストレージ・デバイス、読出し専用メモリ（ＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、フラッシュ・メモリ、あるいはプログラム命令またはデジタル情報を記憶することができる任意の他のコンピュータ可読記憶媒体を含み得る。
【００７０】
永続ストレージ４０８によって使用される媒体は取外し可能であってもよい。たとえば、永続ストレージ４０８として取外し可能なハードドライブが使用されてよい。他の例として、やはり永続ストレージ４０８の一部となる別のコンピュータ可読記憶媒体への転送のためにドライブに挿入される、光および磁気ディスク、サム・ドライブ、およびスマート・カードがある。
【００７１】
種々の実施形態において、通信ユニット４１０は、検証サーバ４、属性プロバイダ５、およびＭＮＯサーバ６のリソースを含む他のデータ処理システムまたはデバイスとの通信を提供する。種々の実施形態において、通信ユニット４１０は、１つまたは複数のネットワーク・インターフェース・カードを含む。通信ユニット４１０は、物理通信リンクと無線通信リンクのいずれかまたは両方の使用によって通信を提供することができる。本発明の実施形態を実施するために使用されるプログラム命令およびデータは、通信ユニット４１０を介して永続ストレージ４０８にダウンロードすることができる。
【００７２】
Ｉ／Ｏインターフェース４１２は、ユーザ・コンピュータ２に接続され得る他のデバイスとの間のデータの入力および出力を可能にする。たとえば、Ｉ／Ｏインターフェース４１２は、キーボード、キーパッド、タッチ・スクリーン、マイクロフォン、デジタル・カメラ、または何らかの他の適切な入力デバイス、あるいはその全部または一部のような外部デバイス４１６に対する接続を提供することができる。外部デバイス４１６はまた、携帯型コンピュータ可読記憶媒体、たとえば、サム・ドライブ、携帯型光または磁気ディスク、およびメモリ・カードなどを含むことができる。本発明の実施形態を実施するために使用されるソフトウェアおよびデータ、たとえば、認証プログラム８およびデータベース９は、そのような携帯型コンピュータ可読記憶媒体に記憶することができ、Ｉ／Ｏインターフェース４１２を介して永続ストレージ４０８にロードすることができる。Ｉ／Ｏインターフェース４１２は、ディスプレイ４１８にも接続される。
【００７３】
ディスプレイ４１８は、ユーザへデータを表示する機構を提供し、たとえば、コンピュータ・モニタであってよい。
【００７４】
本明細書に説明されたプログラムは、本発明の特定の実施形態にプログラムが実装されるアプリケーションに基づいて識別される。しかしながら、本明細書の任意の特定のプログラムの名称は、便宜上使用されているだけであり、したがって、本発明は、そのような名称によって識別または示唆あるいはその両方をされる特定のアプリケーションのみで使用するように限定されるべきでないことは理解されたい。
【００７５】
本発明は、システム、方法、またはコンピュータ・プログラム、あるいはその全部または一部であり得る。コンピュータ・プログラムは、本発明の態様をプロセッサに実施させるためのものであってコンピュータ可読記憶媒体（または媒体）に記憶される。
【００７６】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶することができる任意の有形のデバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せを含むことができるが、上記に限定されない。コンピュータ可読記憶媒体のより具体的例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティックＲＡＭ（ＳＲＡＭ）、ポータブル・コンパクト・ディスクＲＯＭ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピ・ディスク、命令が記録されたパンチカードまたは溝内の隆起した構造のような機械的に符号化されたデバイス、およびこれらの任意の適切な組合せを含む。コンピュータ可読記憶媒体は、本明細書で使用される場合、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝達媒体を伝播する電磁波（たとえば、光ファイバ・ケーブルを通過する光パルス）、または配線を通って伝達される電気信号など、一時的な信号とそれ自体で解釈されるべきではない。
【００７７】
本明細書に説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、それぞれのコンピューティング／処理デバイスへ、または、ネットワーク、たとえば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその全部または一部を介して、外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその全部または一部を含み得る。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体への記憶のためにコンピュータ可読プログラム命令を転送する。
【００７８】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋のようなオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語のような従来の手続き型プログラミング言語、または類似のプログラミング言語を含む１つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行されてよく、スタンドアロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で実行されてよく、部分的にユーザのコンピュータ上で部分的にリモート・コンピュータ上で実行されてよく、あるいは完全にリモート・コンピュータまたはサーバ上で実行されてよい。後のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてよく、あるいは（たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部のコンピュータに接続が行われてもよい。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル論理アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することによって、コンピュータ可読プログラム命令を実行することができる。
【００７９】
本発明の態様は、本明細書では、本発明の実施形態によるフローチャート図、または方法、装置（システム）およびコンピュータ・プログラムのブロック図、あるいはその両方を参照して説明されている。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることは理解されよう。
【００８０】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで指定された機能／動作を実装するための手段を作成するように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令を記憶したコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで指定された機能／動作の態様を実装する命令を含む製造品を備えるように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその全部または一部に特定の様式で機能するように指示するものであってもよい。
【００８１】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで指定された機能／動作を実装するように、コンピュータ実装プロセスを生成するべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【００８２】
図面のフローチャートおよびブロック図は、本発明の種々の実施形態による、システム、方法、コンピュータ・プログラムの可能な実装形態のアーキテクチャ、機能性、および動作を示す。これに関連して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実装するための１つまたは複数の実行可能命令を含むモジュール、セグメント、または命令の部分を表すことができる。いくつかの代替的実装形態では、ブロックに示された機能は、図面に示された順序と異なって実行されることがある。たとえば、連続して示された２つのブロックが、実際は、実質的に同時に実行されてもよく、あるいは、関与する機能性に応じて、ブロックが時には逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定された機能もしくは動作を実行する、または専用ハードウェアおよびコンピュータ命令の組合せを実施する専用ハードウェアベースのシステムによって実装され得ることに留意されたい。
【００８３】
本発明の種々の実施形態の説明は、例示のために提示されているが、網羅することも開示される実施形態に限定することも意図していない。多くの変更および変形が、本発明の範囲および趣旨から逸脱することなく当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の適用、もしくは市場で見られる技術に対する技術的改善を最もよく説明するために、または当業者が本明細書に開示された実施形態を理解するのを可能にするために選択されている。
【符号の説明】
【００８４】
１  ネットワーク
２  ユーザ・コンピュータ
４  検証サーバ
５  属性プロバイダ
６  ＭＮＯサーバ
８  認証プログラム
９  データベース
１０  ＵＩ
１００  分散データ処理環境
４０２  通信ファブリック
４０４  プロセッサ
４０６  メモリ
４０８  永続ストレージ
４１０  通信ユニット
４１２  I／Oインターフェース
４１４  キャッシュ
４１６  外部デバイス
４１８  ディスプレイ
【図１】
0006691420.tif 000040
【図２】
0006691420.tif 000041
【図３】
0006691420.tif 000042
【図４】
0006691420.tif 000043