特開2016-208510(P2016-208510A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧
<>
  • 特開2016208510-ユーザ・コンピュータの認証 図000041
  • 特開2016208510-ユーザ・コンピュータの認証 図000042
  • 特開2016208510-ユーザ・コンピュータの認証 図000043
  • 特開2016208510-ユーザ・コンピュータの認証 図000044
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2016-208510(P2016-208510A)
(43)【公開日】2016年12月8日
(54)【発明の名称】ユーザ・コンピュータの認証
(51)【国際特許分類】
   H04L 9/32 20060101AFI20161111BHJP
   G06F 21/33 20130101ALI20161111BHJP
   G06F 21/44 20130101ALI20161111BHJP
   G06F 21/64 20130101ALI20161111BHJP
   H04L 9/08 20060101ALI20161111BHJP
   H04M 1/00 20060101ALI20161111BHJP
   H04M 11/00 20060101ALI20161111BHJP
【FI】
   H04L9/00 675Z
   G06F21/33
   G06F21/44
   G06F21/64
   H04L9/00 601F
   H04M1/00 R
   H04M11/00 302
【審査請求】未請求
【請求項の数】15
【出願形態】OL
【全頁数】32
(21)【出願番号】特願2016-82268(P2016-82268)
(22)【出願日】2016年4月15日
(31)【優先権主張番号】14/692441
(32)【優先日】2015年4月21日
(33)【優先権主張国】US
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ビューラー、ピーター
(72)【発明者】
【氏名】カメニッシュ、ジャン、レオンハート
(72)【発明者】
【氏名】オルティーズ−ジェペス、ディエゴ、エー
(72)【発明者】
【氏名】プライス、フランツ−シュテファン
【テーマコード(参考)】
5J104
5K127
5K201
【Fターム(参考)】
5J104AA07
5J104KA02
5J104KA20
5J104NA02
5J104PA02
5K127AA21
5K127BA03
5K127BA16
5K127GE02
5K127GE04
5K127GE05
5K127GE08
5K127HA11
5K127JA05
5K127JA14
5K127JA42
5K127JA48
5K127KA01
5K127KA02
5K127KA08
5K127KA19
5K201AA08
5K201AA09
5K201AA10
5K201BC23
5K201CB10
5K201CB13
5K201CC01
5K201CC04
5K201DC02
5K201EA07
5K201EC06
5K201ED04
5K201ED05
(57)【要約】
【課題】ユーザ・コンピュータを認証する。
【解決手段】モバイル・ネットワークに対して接続可能なユーザ・コンピュータを認証するための手法において、コンピュータが、属性証明書を取り出し、属性証明書は、ユーザ属性の集合と、モバイル・ネットワークに対するユーザ・コンピュータを識別するためのデバイス識別子と、を証明する。コンピュータは、位置証明書を要求し、位置証明書は、デバイス識別子と、モバイル・ネットワークによって決定されたユーザ・コンピュータの現在位置を示す位置データと、を証明する。加えて、コンピュータは、認証トークンを作成し、認証トークンは、属性証明書と、位置証明書と、位置データと、属性証明書におけるデバイス識別子が位置証明書におけるデバイス識別子に等しいことを証明する証明と、を備える。さらに、コンピュータは、認証のために認証トークンを送る。
【選択図】図2
【特許請求の範囲】
【請求項1】
モバイル・ネットワークに対して接続可能なユーザ・コンピュータを認証するためのコンピュータ実装方法であって、
1つまたは複数のコンピューティング・デバイスによって、属性証明書を取り出すステップであって、前記属性証明書は、ユーザ属性の集合と、前記モバイル・ネットワークに対する前記ユーザ・コンピュータを識別するためのデバイス識別子と、を証明する、前記ステップと、
1つまたは複数のコンピューティング・デバイスによって、位置証明書を要求するステップであって、前記位置証明書は、デバイス識別子と、前記モバイル・ネットワークによって決定された前記ユーザ・コンピュータの現在位置を示す位置データと、を証明する、前記ステップと、
1つまたは複数のコンピューティング・デバイスによって、認証トークンを作成するステップであって、前記認証トークンは、前記属性証明書と、前記位置証明書と、前記位置データと、前記属性証明書における前記デバイス識別子が前記位置証明書における前記デバイス識別子に等しいことを証明する証明と、を備える、前記ステップと、
1つまたは複数のコンピューティング・デバイスによって、前記ユーザ・コンピュータの認証のために前記認証トークンを送るステップと、
を含むコンピュータ実装方法。
【請求項2】
前記位置証明書は、前記位置証明書の発行時刻を示すタイムスタンプをさらに備え、前記タイムスタンプは、前記認証トークンに含まれる、請求項1に記載の方法。
【請求項3】
1つまたは複数のコンピューティング・デバイスによって、前記属性証明書の無作為ブラインド化によって、ブラインド化された属性証明書を作成するステップをさらに含み、前記認証トークンは、前記ブラインド化された属性証明書を含み、前記証明は、前記ブラインド化された属性証明書において前記属性証明書の前記ユーザ・コンピュータによる所有を証明するように適合される、請求項1に記載の方法。
【請求項4】
1つまたは複数のコンピューティング・デバイスによって、前記位置証明書の無作為ブラインド化によってブラインド化された位置証明書を作成するステップをさらに含み、前記認証トークンは、前記ブラインド化された位置証明書を含み、前記証明は、前記ブラインド化された位置証明書において前記位置証明書の前記ユーザ・コンピュータによる所有を証明するように適合される、請求項1に記載の方法。
【請求項5】
1つまたは複数のコンピューティング・デバイスによって、前記ユーザ・コンピュータの認証のための条件を定義するポリシ・データを受け取るステップをさらに含み、前記証明は、前記属性証明書におけるユーザ属性の前記集合によって前記条件が満たされることを証明するように適合される、請求項1に記載の方法。
【請求項6】
1つまたは複数のコンピューティング・デバイスによって、前記認証のためのコンテキスト情報を定義するコンテキスト・メッセージを受け取るステップをさらに含み、前記証明は、前記コンテキスト・メッセージに依存する、請求項1に記載の方法。
【請求項7】
前記位置証明書は、モバイル・ネットワーク・オペレータの暗号化鍵のもとで前記デバイス識別子および前記位置データを保証する、請求項1に記載の方法。
【請求項8】
1つまたは複数のコンピューティング・デバイスによって、ユーザ・パスワードを要求するステップと、
1つまたは複数のコンピューティング・デバイスによって、ユーザによるパスワード入力を受け取るステップと、
1つまたは複数のコンピューティング・デバイスによって、入力パスワードを検証するためのパスワード検証プロセスを行うステップであって、前記パスワード検証プロセスは、前記入力パスワードが検証された場合のみに前記認証トークンが生成されるようにする、前記ステップと
をさらに含む、請求項1に記載の方法。
【請求項9】
1つまたは複数のコンピューティング・デバイスによって、前記位置証明書の発行時刻を示すタイムスタンプを証明するステップであって、前記認証トークンが前記タイムスタンプを含む、前記ステップと、
1つまたは複数のコンピューティング・デバイスによって、前記位置証明書が証明する前記タイムスタンプを検証するステップと、
1つまたは複数のコンピューティング・デバイスによって、前記タイムスタンプにより示される前記発行時刻が現在時刻より前の所定の時間間隔内であるかどうかを決定するステップと
をさらに含む、請求項1に記載の方法。
【請求項10】
1つまたは複数のコンピューティング・デバイスによって、前記属性証明書における第1の公開鍵・秘密鍵ペアの秘密鍵のもとで前記デバイス識別子およびユーザ属性の前記集合を保証するステップと、
1つまたは複数のコンピューティング・デバイスによって、前記位置証明書における第2の公開鍵・秘密鍵ペアの秘密鍵のもとで前記位置データ、タイムスタンプ、および前記デバイス識別子を保証するステップと、
1つまたは複数コンピューティング・デバイスによって、前記第1の公開鍵・秘密鍵ペアの公開鍵に基づいて前記属性証明書の妥当性を検証するステップと、
1つまたは複数のコンピューティング・デバイスによって、前記第2の公開鍵・秘密鍵ペアの公開鍵に基づいて前記位置証明書の妥当性を検証するステップと
をさらに含む、請求項1に記載の方法。
【請求項11】
1つまたは複数のコンピューティング・デバイスによって、前記証明から、前記条件がユーザ属性の前記集合によって満たされることを検証するステップをさらに含む、請求項5に記載の方法。
【請求項12】
モバイル・ネットワークに対して接続可能なユーザ・コンピュータを、前記ユーザ・コンピュータの近傍の検証サーバによって認証するためのコンピュータ・プログラムであって、
プロセッサに、
属性証明書を取り出すステップであって、前記属性証明書は、ユーザ属性の集合と、前記モバイル・ネットワークに対する前記ユーザ・コンピュータを識別するためのデバイス識別子と、を証明する、前記ステップと、
位置証明書を要求するステップであって、前記位置証明書は、デバイス識別子と、前記モバイル・ネットワークによって決定された前記ユーザ・コンピュータの現在位置を示す位置データと、を証明する、前記ステップと、
認証トークンを作成するステップであって、前記認証トークンは、前記属性証明書と、前記位置証明書と、前記位置データと、前記属性証明書における前記デバイス識別子が前記位置証明書における前記デバイス識別子に等しいことを証明する証明と、を備える、前記ステップと、
前記ユーザ・コンピュータの認証のために前記認証トークンを前記検証サーバに送るステップと、
を実行させるためのコンピュータ・プログラム。
【請求項13】
前記位置証明書は、前記位置証明書の発行時刻を示すタイムスタンプをさらに備え、前記タイムスタンプは、前記認証トークンに含まれる、請求項12に記載のコンピュータ・プログラム。
【請求項14】
前記プロセッサに、
前記属性証明書の無作為ブラインド化によって、ブラインド化された属性証明書を作成するステップをさらに実行させ、前記認証トークンは、前記ブラインド化された属性証明書を含み、前記証明は、前記ブラインド化された属性証明書において前記属性証明書の前記ユーザ・コンピュータによる所有を証明するように適合される、請求項12に記載のコンピュータ・プログラム。
【請求項15】
前記位置証明書は、モバイル・ネットワーク・オペレータの暗号化鍵のもとで前記デバイス識別子および前記位置データを保証する、請求項12に記載のコンピュータ・プログラム。
【請求項16】
前記プロセッサに、
ユーザ・パスワードを要求するステップと、
ユーザによるパスワード入力を受け取るステップと、
入力パスワードを検証するためのパスワード検証プロセスを行うステップであって、前記パスワード検証プロセスは、前記入力パスワードが検証された場合のみに前記認証トークンが生成されるようにする、ステップと
をさらに実行させる、請求項12に記載のコンピュータ・プログラム。
【請求項17】
前記プロセッサに、
前記ユーザ・コンピュータの認証のための条件を定義するポリシ・データを受け取るステップであって、前記証明は、前記属性証明書におけるユーザ属性の前記集合によって前記条件が満たされることを証明するように適合される、前記ステップと、
前記証明から、前記条件がユーザ属性の前記集合によって満たされることを検証するステップと
をさらに実行させる、請求項12に記載のコンピュータ・プログラム。
【請求項18】
モバイル・ネットワークに対して接続可能なユーザ・コンピュータを、前記ユーザ・コンピュータの近傍の検証サーバによって認証するためのコンピュータ・システムであって、
1つまたは複数のコンピュータ・プロセッサと、
1つまたは複数のコンピュータ可読記憶媒体と、
前記1つまたは複数のプロセッサのうちの少なくとも1つによって実行するための前記1つまたは複数のコンピュータ可読記憶媒体に記憶されたプログラム命令と
を備え、前記プログラム命令は、
属性証明書を取り出すためのプログラム命令であって、前記属性証明書は、ユーザ属性の集合と、前記モバイル・ネットワークに対する前記ユーザ・コンピュータを識別するためのデバイス識別子と、を証明する、前記プログラム命令と、
位置証明書を要求するためのプログラム命令であって、前記位置証明書は、デバイス識別子と、前記モバイル・ネットワークによって決定された前記ユーザ・コンピュータの現在位置を示す位置データと、を証明する、前記プログラム命令と、
認証トークンを作成するためのプログラム命令であって、前記認証トークンは、前記属性証明書と、前記位置証明書と、前記位置データと、前記属性証明書における前記デバイス識別子が前記位置証明書における前記デバイス識別子に等しいことを証明する証明と、を備える、前記プログラム命令と、
前記ユーザ・コンピュータの認証のために前記認証トークンを送るためのプログラム命令と
を含む、コンピュータ・システム。
【請求項19】
前記位置証明書は、前記位置証明書の発行時刻を示すタイムスタンプをさらに備え、前記タイムスタンプは、前記認証トークンに含まれる、請求項18に記載のコンピュータ・システム。
【請求項20】
前記ユーザ・コンピュータの認証のための条件を定義するポリシ・データを受け取るためのプログラム命令であって、前記証明は、前記属性証明書におけるユーザ属性の前記集合によって前記条件が満たされることを証明するように適合される、前記プログラム命令と、
前記証明から、前記条件がユーザ属性の前記集合によって満たされることを検証するためのプログラム命令と
をさらに含む、請求項18に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、ユーザ・コンピュータの認証に関し、より詳細には、ユーザ・コンピュータの近傍(Vicinity)の検証サーバによる、モバイル・ネットワークに接続可能なユーザ・コンピュータの認証に関する。
【背景技術】
【0002】
ユーザ・コンピュータが同じ近傍の検証サーバに認証を受けるために使用できる場合には多くのシナリオがある。たとえば、携帯電話、タブレット、携帯情報端末(PDA)などのユーザ・コンピュータは、情報を記憶することができ、この情報を、検証サーバに提示して、製品、サービス、または他のリソースに対するアクセスを得るために使用することが可能である。検証サーバは、ユーザ、ユーザ・コンピュータ、および発生中のトランザクションに関係したデータを検証または認証できる、銀行、クレジット・サービス、会社サーバなどの信頼されるソース、または他の同様の信頼されるコンピューティング・リソースもしくはデバイスである。ユーザ・コンピュータまたは携帯電話は、たとえば、店頭デバイスにおいて商品またはサービスを購入するために使用されるクレジット・カード詳細またはモバイル支払いデータなどの情報を含むことができる。別の例では、ユーザ・コンピュータは、ユーザ・コンピュータに記憶されたユーザIDまたはユーザ承認データに基づいて建物または他の施設へのアクセスを提供するユーザIDを含むことができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、場合によっては、ユーザ・コンピュータまたはスマートフォンはマルウェアに感染することがある。マルウェアは、記憶された情報を収集し、状況によっては別のユーザ・コンピュータを認証するために使用する可能性がある。携帯電話に記憶された認証情報は、たとえば、マルウェアによって悪意のある者へ送られ、別の場所でユーザの名前で商品またはサービスを得るために使用されるおそれがある。
【課題を解決するための手段】
【0004】
本発明の実施形態は、モバイル・ネットワークに接続可能なユーザ・コンピュータを認証するための方法、コンピュータ・プログラム製品、およびシステムを開示する。本方法は、コンピューティング・デバイスが、属性証明書を取り出すことを含み、属性証明書は、ユーザ属性の集合と、モバイル・ネットワークに対するユーザ・コンピュータを識別するためのデバイス識別子と、を証明する。本方法は、コンピューティング・デバイスが、位置証明書を要求することを含み、位置証明書は、デバイス識別子と、モバイル・ネットワークによって決定されたユーザ・コンピュータの現在位置を示す位置データと、を証明する。さらに、本方法は、コンピューティング・デバイスが、認証トークンを作成することを含み、認証トークンは、属性証明書と、位置証明書と、位置データと、属性証明書におけるデバイス識別子が位置証明書におけるデバイス識別子に等しいことを証明する証明と、を備える。加えて、本方法は、コンピューティング・デバイスが、ユーザ・コンピュータの認証のために認証トークンを送ることを含む。認証トークンは、属性証明書と、位置証明書と、位置データと、属性証明書におけるデバイス識別子が位置証明書におけるデバイス識別子に等しいことを証明する証明と、を備える。
【0005】
上記実施形態は、高水準のユーザ・プライバシを備えつつシンプルな認証方法を提供する。この認証方法によれば、ユーザ・コンピュータが正しい位置、すなわちユーザ・コンピュータが検証サーバの近傍にありながら、位置証明書が属性証明書と同じ識別子であることを証明(proof)が示すので、デバイス識別子がユーザ・コンピュータによって明らかにされる必要がない。
【0006】
本発明の別の実施形態は、モバイル・ネットワークに接続可能なユーザ・コンピュータを認証するためのコンピュータ・プログラムを提供する。このプログラム命令は、属性証明書を取り出すためのプログラム命令を含み、属性証明書は、ユーザ属性の集合と、モバイル・ネットワークに対するユーザ・コンピュータを識別するためのデバイス識別子と、を証明する。位置証明書を要求するためのプログラム命令が続き、位置証明書は、デバイス識別子と、モバイル・ネットワークによって決定されたユーザ・コンピュータの現在位置を示す位置データと、を証明する。さらに、プログラム命令は、認証トークンを作成するための命令を含み、認証トークンは、属性証明書と、位置証明書と、位置データと、属性証明書におけるデバイス識別子が位置証明書におけるデバイス識別子に等しいことを証明する証明と、を備える。加えて、プログラム命令は、ユーザ・コンピュータの認証のために認証トークンを検証サーバに送るための命令を含む。
【0007】
実施形態において、位置証明書は、位置証明書の発行時刻を示すタイムスタンプをさらに証明することができる。このタイムスタンプは、認証トークンに含まれることが可能である。検証サーバは、位置証明書がタイムスタンプを証明することを検証し、タイムスタンプにより示される発行時刻が現在時刻より前の所定の時間間隔内であるかどうかを決定することができる。そして、認証トークンは、発行の後の所定の時間間隔内でのみ使用されることが可能である。
【0008】
属性証明書および位置証明書は、符号化された形態で認証トークンに含まれてよい。いくつかの実施形態は、ユーザ・コンピュータにおいて、属性証明書の無作為ブラインド化(randomized blinding)によって、ブラインド化された属性証明書を作成することを含む。ブラインド化された属性証明書は、認証トークンに含まれることが可能であり、証明は、ブラインド化された属性証明書において属性証明書のユーザ・コンピュータによる所有を証明するように適合されることが可能である。ユーザ・コンピュータは、同様に、認証トークンに含まれるブラインド化された位置証明書を生成し、ブラインド化された位置証明書において位置証明書のユーザ・コンピュータによる所有を証明するように適合される証明を有することが可能である。このような証明書の無作為ブラインド化の使用は、同じユーザ・コンピュータによる異なるトランザクションが証明書の使用を通してリンクされることを防止することによって、プライバシを強化することができる。
なお、ブラインド化とは、例えば、証明書のブラインド署名を行うことをいう。すなわち、証明書発行機関が発行する証明書をブラインド化した状態で(証明書の中身を署名者であるユーザ・コンピュータに見せない状態で)、ユーザ・コンピュータが署名することをいう。このため、署名者であるユーザ・コンピュータに証明書の中身を知られることなく証明書がユーザ所有であることを証明することができる。これは、ユーザによる証明書の中身の改ざんを防ぎつつ証明書の正当性を高めることができる。
【0009】
種々の実施形態において、検証サーバは、ポリシ・データをユーザ・コンピュータに送る。ポリシ・データは、ユーザ・コンピュータの認証のための条件を定義する。属性証明書におけるユーザ属性の集合によって認証条件が満たされることを証明するよう適合されるように証明を認証トークン内に作成するユーザ・コンピュータによって、ポリシ・データが受け取られる。そして、検証サーバは、証明から、認証条件がユーザ属性の集合によって満たされることを検証することができる。これにより、ユーザ・コンピュータは認証のために特に必要とされる属性集合に関する情報のみを明らかにすればよいので、プライバシをさらに強化することができる。
【0010】
実施形態において、検証サーバは、認証のためのコンテキスト情報を定義するコンテキスト・メッセージを、ユーザ・コンピュータに送ることができる。ユーザ・コンピュータによって生成される証明は、コンテキスト・メッセージに依存することができる。そして、検証サーバは、証明がコンテキスト・メッセージに依存することを検証することができる。これにより、コンテキスト情報によって識別される特定の認証プロセスのみに認証トークンを使用することが可能であるので、セキュリティが増大する。
【0011】
添付の図面を参照して、例示かつ非限定的な例として本発明の実施形態を以下により詳細に説明する。
【図面の簡単な説明】
【0012】
図1】本発明の実施形態による、分散データ処理環境を示す機能ブロック図である。
図2】本発明の実施形態による、ユーザ・コンピュータを認証するために、図1の分散データ処理環境においてユーザ・コンピュータの近傍の検証サーバに認証を要求するユーザ・コンピュータによって行われる、認証手順の動作ステップを示すフローチャートである。
図3】本発明の実施形態による、検証サーバによってユーザ・コンピュータを認証するための、図1の分散データ処理環境における認証手順の実施形態の動作ステップを示すフロー図である。
図4】本発明の実施形態による、図1の分散データ処理環境におけるサーバなどのシステムの例である、コンピュータ・システムの構成要素のブロック図である。
【発明を実施するための形態】
【0013】
本発明の実施形態において、支払いシステムなどを提供するサービス・プロバイダは、支払い承認プロセスの一部として、モバイル・ネットワーク・オペレータからユーザのモバイル・デバイスの位置を取得し、この位置を商業位置(merchant location)と比較する。2つの位置が一致しない場合、セキュリティの問題が識別され、これが、サービス・プロバイダによるユーザへのサービスの拒否につながることがある。ユーザ・デバイス承認のための既知のシステムおよび方法は、ユーザ・プライバシを犠牲にする、または動作のために複雑な手順を必要とする、あるいはその両方の傾向がある。
【0014】
本発明の実施形態は、ユーザのデータおよびユーザ・コンピュータ・データの諸態様を、検証サーバと共有されるデータから分離しまたは安全にしながら、ユーザのモバイル・コンピューティング・デバイスまたはスマートフォンを検証サーバによってサービス・プロバイダに対して認証する、認証プロセスまたは手順のための方法を提供する。認証手順は、数多くのシナリオで公開鍵・秘密鍵ペアなどの暗号技法を用いて行うことができる。認証手順は、店舗またはカフェなどにおける支払いなどのトランザクションの一部として、または、たとえばクラブに入るために会員カードを使用して、建物もしくは他の施設へのアクセスを得るために、または、サービス・プロバイダによってアクセスが制限されるある種のアイテムもしくは他のリソースを得るために行われることがある。認証手順は、ユーザ・コンピュータが検証サーバの近傍に存在することを必要とする。本発明の実施形態は、暗号方法を用いてモバイル・デバイスおよび証明を要求する認証のために、モバイル・ネットワークが提供するリアルタイムのモバイル・デバイス位置を使用し、認証を要求するデバイスに対するモバイル・デバイス識別子が、リアルタイム・モバイル・デバイス位置データで提供されたデバイス識別子と同じモバイル・デバイス識別子であることを検証する。さらに、本発明の実施形態は、認証を要求するモバイル・デバイスが、認証を提供する検証サーバの近傍にあることを検証する。本発明の実施形態の実装は様々な形態をとることができ、図を参照して例示的な実装の詳細を説明する。
【0015】
図1は、本発明の一実施形態による、全体として100で示される分散データ処理環境を示す機能ブロック図である。図1は、一実装形態の例示を与えるにすぎず、異なる実施形態が実装され得る環境に対する限定を何ら示唆するものではない。図示される環境に多くの変更が、特許請求の範囲に記載される本発明の範囲から逸脱することなく当業者によって行われる可能性がある。
【0016】
分散データ処理環境100は、ユーザ・コンピュータ2、検証サーバ4、属性プロバイダ5、およびモバイル・ネットワーク・オペレータ(MNO)サーバ6を含み、それらはすべてネットワーク1を介して相互接続される。ユーザ・コンピュータ2は、モバイル・コンピューティング・デバイスであってよく、セルラ通信ネットワークなどのモバイル・ネットワークに接続可能である。検証サーバ4は、本明細書では「サービス・プロバイダ」と呼ばれるエンティティによって運営される。サービス・プロバイダは、店、健康施設、建物、クラブ、あるいは、ユーザ・コンピュータ2上のデバイス・ユーザによって使用または入手され得るサービス・プロバイダによって制御または運営される商品、サービス、アクセスもしくは他のリソースを提供する他のエンティティであり得る。ユーザ・コンピュータ2は、検証サーバ4の近傍のデバイス・ユーザによって、検証サーバ4に認証を受けるように使用され、それにより、サービス・プロバイダによって制御されるある種のリソースを入手するまたはそれにアクセスすることができる。検証サーバ4の位置は、検証サーバ4に対して予め決定されてよく、あるいは、たとえば、複数の位置で使用され得る携帯型支払い端末を備える検証サーバとして、モバイル・ネットワークを介して動的にそれ自体で決定されてもよい
【0017】
ネットワーク1は、たとえば、モバイル・ネットワークなどの通信ネットワーク、ローカル・エリア・ネットワーク(LAN)、仮想ローカル・エリア・ネットワーク(VLAN)、インターネットなどの広域ネットワーク(WAN)、またはこれらの組合せとすることができ、有線、無線、仮想、または光ファイバ接続を含むことができる。ネットワーク1は、音声、データ、およびビデオ情報を含むマルチメディア信号を含むデータ、音声、またはビデオ信号、あるいはその全部または一部を受信および送信することができる、1つまたは複数の有線または無線あるいはその両方のネットワークを含むことができる。一般に、ネットワーク1は、分散データ処理環境100内のユーザ・コンピュータ2、検証サーバ4、属性プロバイダ5、およびMNOサーバ6、ならびに他のコンピューティング・デバイス(図示せず)の間の通信をサポートする接続およびプロトコルの任意の組合せとすることができる。例示的な実施形態では、ネットワーク1はセルラ通信ネットワークを含む。他の実施形態では、ネットワーク1は、ネットワーク1の構成要素を介してユーザ・コンピュータ2と通信するためにモバイル・コンピュータ・デバイスの位置が識別され得る、Wi−Fiベースのモバイル・ネットワークまたは任意の他のネットワークを含む。認証プロセスのためのユーザ・コンピュータ2と検証サーバ4との間の通信は、一般に、一時的物理接続または無線リンクによって提供される通信チャネルを介して行うことができる。ネットワーク1は、近距離無線通信(NFC)用のローカル通信プロトコル、Wi−Fiまたは他の無線LAN(ローカル・エリア・ネットワーク)プロトコルを含むことができ、一般に、任意の好都合な通信メカニズムまたはネットワークを介して提供され得る。
【0018】
ユーザ・コンピュータ2は、モバイル・コンピューティング・デバイスである。ユーザ・コンピュータ2は、たとえば、携帯電話、スマートフォン、タブレット、パームトップ、ラップトップ、ノートブック、PDA(携帯情報端末)、スマート・ウォッチなどのウェラブル・コンピューティング・デバイス、パーソナル音楽プレーヤ、専用コンピュータ・デバイス、または、分散データ処理環境100内の種々の構成要素およびデバイスと通信することができる任意のモバイル・プログラマブル電子デバイスとすることができ、モバイル・ネットワーク、たとえば、ネットワーク1に接続可能である。ユーザ・コンピュータ2は、検証サーバ4、属性プロバイダ5、およびMNOサーバ6との間でデータを送信および受信することができる。いくつかの実施形態では、ユーザ・コンピュータ2は、スマート・フォレットなどのモバイル・デバイス支払いアプリケーションを含む。ユーザ・コンピュータ2は、図4を参照して示され説明されるメモリ406などのメモリ、図4に示される永続ストレージ408などの永続ストレージ、またはユーザ・コンピュータ2の別の安全なストレージ・モジュールに記憶された、属性プロバイダ5から受け取られた属性証明書Cattを含む。属性証明書Cattは、少なくともデバイス識別子sidおよびユーザ属性の集合attを証明する。属性証明書は、様々な方法でユーザ・コンピュータ2によって入手することができ、たとえば、ユーザ・コンピュータ2のユーザによって事前に記憶された属性証明書を取り出すことによって、または、モバイル・ネットワーク、プライベート・ネットワーク、もしくはインターネットなどのネットワーク1を介するユーザ・コンピュータ2と属性プロバイダ5との間の通信によって入手することができる。種々の実施形態において、デバイス識別sidは、メモリ、永続ストレージ、またはユーザ・コンピュータ2における別の安全な位置またはモジュールに記憶される。
【0019】
ユーザ・コンピュータ2は、検証サーバ4、認証プロバイダ5、およびMNOサーバ6の命令またはデータあるいはその両方の通信を可能にする、デバイス・ユーザとユーザ・コンピュータ2との間のユーザ・インターフェースを提供するユーザ・インターフェース(UI)10を含む。UI10は、グラフィカル・ユーザ・インターフェース(GUI)またはウェブ・ユーザ・インターフェース(WUI)であってよく、アプリケーション・インターフェース、表示テキスト、ドキュメント、ウェブ・ブラウザ・ウィンドウ、ユーザ・オプション、および動作のための命令にアクセスすることができ、プログラムがユーザに提示する(グラフィック、テキスト、および音などの)情報、およびネットワーク1を介して分散データ処理環境100内で他のコンピューティング・デバイスと対話するためにデバイス・ユーザが採用する制御シーケンスを含む。種々の実施形態において、UI10は、分散データ処理環境100内でユーザとユーザ・コンピューティング・デバイスとの間のインターフェースを提供するモバイル・アプリケーション・ソフトウェアである。モバイル・アプリケーション・ソフトウェアまたは「app」は、スマートフォン、タブレット・コンピュータ、および他のモバイル・デバイス上で実行されるように設計されたコンピュータ・プログラムである。実施形態において、UI10は、ユーザ・コンピュータ2のデバイス・ユーザが、パスワード入力などの支払いまたは認証プロセスのためのデータまたは情報をユーザ・コンピュータ2に伝達することを可能にする。一般に、ユーザ・コンピュータ2は、マシン可読プログラム命令を実行することができ、またネットワーク1などのネットワークを介して分散データ処理環境100内の他のコンピューティング・デバイス(図示せず)と通信することができる、任意のモバイル・プログラマブル電子デバイスまたはプログラマブル電子デバイスの組合せを表す。
【0020】
検証サーバ4は、スタンドアロン・コンピューティング・デバイス、管理サーバ、ウェブ・サーバ、モバイル・コンピューティング・デバイス、あるいはデータを受信、送信、および処理することができる任意の他の電子デバイスまたはコンピューティング・システムとすることができる。検証サーバ4は、モバイル・ネットワークであり得るネットワーク1を介して、分散データ処理環境100内のユーザ・コンピュータ2、属性プロバイダ5、MNOサーバ6、および他のコンピューティング・デバイス(図示せず)と通信することができる。検証サーバ4としては、たとえば、レジまたは他の支払い端末などの店頭デバイス、ATM(現金自動預け払い機)、パーキング・メータ、自動販売機、券売機、たとえば建物または他の施設への立ち入りを制御するためのアクセス・ポイント・デバイス、あるいはユーザが認証目的でユーザ・コンピュータ2を提示する任意の他のデバイスがある。種々の実施形態において、検証サーバ4は、ユーザが認証目的でユーザ・コンピュータ2を提示する単一の「ユーザ対面」デバイスである。検証サーバ4は、そのようなデバイス単体で実装されてよく、あるいは1つまたは複数の他のデバイス、たとえば、検証サーバ機能性のいくつかの態様を実装するためにユーザ対面デバイスが通信できる別のコンピュータと組み合わせて実装されてもよい。他の実施形態では、検証サーバ4は、クラウド・コンピューティング環境などにおいてサーバ・システムとして複数のコンピュータを利用するサーバ・コンピューティング・システムとすることができる。別の実施形態では、検証サーバ4は、ラップトップ・コンピュータ、タブレット・コンピュータ、ネットブック・コンピュータ、パーソナル・コンピュータ(PC)、デスクトップ・コンピュータ、携帯情報端末(PDA)、スマートフォン、または、ネットワーク1を介して分散データ処理環境100内のユーザ・コンピュータ2、属性プロバイダ5、MNOサーバ6、および他のコンピューティング・デバイス(図示せず)と通信することができる任意のプログラマブル電子デバイスとすることができる。各サーバまたは各デバイスあるいはその両方の動作および記憶は、サーバまたはデバイスあるいはその両方がネットワーク1にアクセスする限り、1つまたは複数のデバイス上で行われてよい。別の実施形態では、検証サーバ4は、分散データ処理環境100内でアクセスされたときにシームレスなリソースの単一プールとして機能するクラスタ化されたコンピュータおよび構成要素(たとえば、データベース・サーバ・コンピュータ、アプリケーション・サーバ・コンピュータなど)を利用するコンピューティング・システムを表す。検証サーバ4は、認証プログラム8およびデータベース9を含む。
【0021】
属性プロバイダ5は、暗号証明書(cryptographic credential)を提供する。属性プロバイダ5は、証明書発行機関である。属性プロバイダは、証明書によって証明される属性を保証するために、サービス・プロバイダによって信頼される。属性証明書Cattは、ユーザ属性の集合、およびモバイル・ネットワークに対するユーザ・コンピュータ2を識別するためのデバイス識別子を証明する。属性証明書は、少なくとも、ユーザ属性の集合att、およびモバイル・ネットワークに対するユーザ・コンピュータ2を識別するためのデバイス識別子sidを証明する。属性プロバイダ5は、属性証明書Cattを作成することによって、ユーザ属性の集合attを証明することができる。属性証明書Cattは、複数のユーザ属性を備えることができる。所与のユーザ属性は、認証プロセスに必要とされ得る情報の任意のアイテムを表すデータを備えることができる。典型的な例として、支払いアカウントの詳細などの支払いデータ(たとえば、クレジット・カード、デビット・カード、またはアカウント・カードの詳細)およびビットコインまたは他の電子マネーなどの支払いトークン、ユーザ・コンピュータ2の属性を定義するデバイス・データ、ならびに、誕生日、国籍、および職名などの個人ユーザ情報が挙げられる。証明書により証明される属性を証明書発行機関に明らかにせずに、証明書が発行されることを可能にする、暗号プロトコルが知られている。証明書は、属性プロバイダ5の暗号化鍵(cryptographic key)を使用して属性を保証することができる。次いで、サービス・プロバイダが、適正な鍵を使用して証明書が作成されたことを検証することができる。たとえば、属性プロバイダ5は、公開鍵・秘密鍵ペアの秘密鍵を使用して証明書を作成することができ、そのペアの公開鍵は検証のために使用され得る。
【0022】
属性プロバイダ5は、属性証明書をユーザ・コンピュータ2に送り、ユーザ・コンピュータ2は、たとえば認証手順における取り出しおよび使用のために、ユーザ・コンピュータ2のメモリまたは永続ストレージに属性証明書を記憶する。属性プロバイダ5の具体的性質、および属性プロバイダによって属性が確認される方法は、よく知られているので本明細書では説明する必要はない。
【0023】
MNOサーバ6は、セルラ通信ネットワークまたはプロバイダなどのモバイル・ネットワーク・オペレータによってモバイル・ネットワークの一部として使用されるコンピューティング・デバイスである。MNOサーバ6は、スタンドアロン・コンピューティング・デバイス、管理サーバ、ウェブ・サーバ、モバイル・コンピューティング・デバイス、あるいはデータを受信、送信、および処理することができる任意の他の電子デバイスまたはコンピューティング・システムとすることができる。MNOサーバ6は、ネットワーク1の一部であり得るセルラ通信ネットワークを介して、分散データ処理環境100内のユーザ・コンピュータ2、検証サーバ4、属性プロバイダ5、および他のコンピューティング・デバイス(図示せず)と通信することができる。MNOサーバ6は、そのようなデバイス単体で実装されてよく、あるいは1つまたは複数の他のデバイス、たとえば、MNOサーバ機能性のいくつかの態様を実装するためにユーザ対面デバイスが通信できる別のコンピュータと組み合わせて実装されてもよい。他の実施形態では、MNOサーバ6は、クラウド・コンピューティング環境などにおいてサーバ・システムとして複数のコンピュータを利用するサーバ・コンピューティング・システムを表すことができる。別の実施形態では、MNOサーバ6は、ラップトップ・コンピュータ、タブレット・コンピュータ、ネットブック・コンピュータ、パーソナル・コンピュータ(PC)、デスクトップ・コンピュータ、携帯情報端末(PDA)、スマートフォン、または、分散データ処理環境100内のユーザ・コンピュータ2、属性プロバイダ5、検証サーバ4、および他のコンピューティング・デバイス(図示せず)と通信することができる任意のプログラマブル電子デバイスとすることができる。別の実施形態では、MNOサーバ6は、分散データ処理環境100内でネットワーク1にアクセスしたときにシームレスなリソースの単一プールとして機能するクラスタ化されたコンピュータおよび構成要素(たとえば、データベース・サーバ・コンピュータ、アプリケーション・サーバ・コンピュータなど)を利用するコンピューティング・システムを表す。種々の実施形態において、ユーザ・コンピュータ2、検証サーバ4、属性プロバイダ5、およびMNOサーバ6のそれぞれに配置されるプログラムおよびデータベースのそれぞれは、各々が、ネットワーク1を介して本発明の実装および動作のための情報およびストレージへのアクセスを有するならば、分散データ処理環境100内の様々な他のコンピューティング・デバイス上に存在することが可能である。
【0024】
認証プログラム8は、検証サーバ4上に存在する。認証プログラム8は、図3で後述するように認証プロセスのステップを実装するための機能を提供する。認証プログラム8は、ハードウェア、ソフトウェア、またはこれらの組合せに実装されてよい。認証プログラム8は、たとえば、プログラム命令を具現化したコンピュータ可読記憶媒体から構成されてよく、プログラム命令は、検証サーバが認証プロセスのステップを実行するように検証サーバによって実行可能である。認証プログラム8は、証明書システムの基礎をなす暗号プロトコルに従って、暗号検証プロセスを行う。このプロセスでは、認証プログラム8は、ユーザ・コンピュータ2から認証トークンTと共に提示された証明Πから、属性証明書Cattにおけるデバイス識別子sidが、モバイル・ネットワークによってユーザ・コンピュータに提供された位置証明書Clocにおけるデバイス識別子sidに等しいことを検証する。認証プログラム8はまた、位置証明書Clocが認証トークンにおける位置データlocを証明することを検証する。検証プロセスのこの部分では、位置証明書を生成するために使用される暗号化鍵に基づいて、たとえば、証明書を作成するための秘密鍵が使用された公開鍵・秘密鍵ペアの公開鍵を使用して、位置データlocが位置証明書Clocによって有効に保証されることをチェックし得る。認証プログラム8はさらに、位置データClocによって示されるユーザ・コンピュータ2の現在位置が検証サーバ4の近傍であるかどうかを決定する。ここで、位置データClocによって識別された現在のユーザ・コンピュータ2の位置は、検証サーバ4の既知の位置と比較することができる。この比較により、検証サーバ4の既知の位置が、ユーザ・コンピュータ2の現在位置と近傍か否か判定される。近傍とは、例えば、検証サーバ4の位置を中心として、その中心からの所定範囲をいう。
【0025】
データベース9は、検証サーバ4上に存在する。データベース9は、認証プロセスでユーザ・コンピュータ2および認証プログラム8によって使用されるデータを記憶する。データベース9は、ユーザ・コンピュータ2、属性プロバイダ5、MNOサーバ6、および認証プログラム8との間で、デバイス識別子sidなどのデータを送信および受信することができる。データベース9は、MNOサーバ6内のメモリ(たとえば、図4のメモリ406)または永続ストレージ(たとえば、図4の永続ストレージ408)に存在してもよい。実施形態において、データベース9は、別のコンピューティング・デバイス、サーバ、およびクラウド上などのコンピューティング・リソースの接続されたグループに存在する。本発明の様々な実施形態において、データベース9に記憶された情報およびデータは、単一のデータベースに記憶されてもよく、あるいは、ネットワーク1を介してアクセス可能な分散データ処理環境100内の他の場所に配置された1つまたは複数のデータベース上に記憶されてもよい。後述される実施形態において、データベース9に記憶されるデータは、たとえば公開鍵・秘密鍵ペアの公開鍵である暗号化鍵、ポリシ・データ、デバイス識別子sid、属性証明書Catt、ユーザ・コンピュータ2からの認証トークンT、および、MNOサーバ6またはユーザ・コンピュータ2あるいはその両方から提供される位置証明書Clocを含むことができる。ユーザ・コンピュータ2から受け取られるポリシ・データは、ユーザ・コンピュータの認証のための条件を定義する。ポリシ・データは、認証プロセスの成功または進行のために、ユーザ・コンピュータ2によって提示される証明書における属性によって満たされなければならない、1つまたは複数の条件を定義する。データベース9は、公開鍵・秘密鍵ペアの公開鍵を、検証サーバ4上の認証プログラム8に提供する。
【0026】
図2は、本発明の実施形態による、ユーザ・コンピュータ2を認証するために、図1の分散データ処理環境100においてユーザ・コンピュータ2の近傍の検証サーバ4に認証を要求するユーザ・コンピュータ2によって行われる、認証手順の動作ステップを示すフローチャート200である。
【0027】
ステップ20で、ユーザ・コンピュータ2は属性証明書を取り出す。属性証明書Cattは、ユーザ属性の集合と、モバイル・ネットワークに対するユーザ・コンピュータを識別するためのデータベース識別子と、を証明する。ユーザ・コンピュータ2によってたとえばユーザ・コンピュータ2のメモリまたは永続ストレージに記憶された属性証明書は、認証手順において使用するために取り出される。認証手順は、属性証明書の取り出しにより、認証のためにデバイス・ユーザによって検証サーバ4に提示される検証サーバ4の近傍のユーザ・コンピュータ2として開始する。いくつかの実施形態では、認証手順の開始は、UI10を介したデバイス・ユーザによるユーザ・パスワードpのユーザ・コンピュータ2への入力を必要とすることがある。ステップ21で、ユーザ・コンピュータ2は、認証の要求を検証サーバ4に送る。ステップ22で、ユーザ・コンピュータ2は、応答として、検証サーバ4からポリシ・データおよびコンテキスト情報を受け取る。ポリシ・データは、認証のための少なくとも1つの条件を定義する。認証条件は、1つまたは複数の部分条件を含むことができる。そのような部分条件は、たとえば、特定のユーザ属性またはユーザ属性の集合が実証されなければならないこと、あるいは、所与の属性が、許可された属性の集合の要素である、または定義された範囲に含まれるなど、特定の要件を満たさなければならないことを示すことができる。
【0028】
ステップ23で、ユーザ・コンピュータ2は、ユーザ・パスワードを要求する。UI10において、ユーザ・コンピュータ2は、ユーザ・パスワードを要求するプロンプトをデバイス・ユーザへ表示する。デバイス・ユーザは、ユーザ・パスワードpを入力することによって、認証プロセスのためにユーザ・コンピュータ2をロック解除することができる。パスワードとしては、PIN(個人識別番号)または他の英数字文字列、指紋スキャンもしくは音声サンプルなどのバイオメトリック・データ、あるいは他の利用可能な個人識別子が挙げられる。デバイス・ユーザは、UI10を介してパスワードpなどのパスワードをユーザ・コンピュータ2に入力する。判断ステップ24で、ユーザ・コンピュータ2は、ユーザ・パスワードが正しいかどうかを決定する。判断ステップ24で入力パスワードを受信すると、ユーザ・コンピュータ2は、パスワード検証プロセスを行って、入力パスワードが正しいユーザ・パスワードpであることを検証する。パスワード検証は、ユーザ・コンピュータ2、たとえば、ユーザ・コンピュータ2のメモリ、または永続ストレージに事前に記憶されたパスワードpに対して、入力パスワードを照合することを含むことができる。判断ステップ24で、デバイス・ユーザによるUI10でのパスワード入力がユーザ・コンピュータ2に記憶されたパスワードと一致しないと、ユーザ・コンピュータ2が決定した場合(いいえの分岐、判断ステップ24)、パスワードが正しくなく、認証手順は終了する。しかしながら、デバイス・ユーザによってUI10を介して入力されたパスワードがユーザ・コンピュータ2に記憶されたパスワードと一致すると、ユーザ・コンピュータ2が決定した場合(はいの分岐、判断ステップ24)、パスワードは正しく、認証手順はステップ25に進む。
【0029】
ステップ25で、ユーザ・コンピュータ2は、MNOサーバ6に位置証明書を要求する。ユーザ・コンピュータ2は、モバイル・ネットワークたとえばネットワーク1と通信して、MNOサーバ6に位置証明書を要求する。MNOサーバ6は、モバイル・ネットワーク内でユーザ・コンピュータ2を識別するデバイス識別子sidに基づいて、モバイル・ネットワーク・インフラストラクチャを介してユーザ・コンピュータ2の現在位置を決定する。MNOサーバ6は、デバイス識別子sidと、ユーザ・コンピュータ2の検出された位置を示す位置データlocとを証明する位置証明書Clocを生成する。認証手順の動作において、ユーザ・コンピュータ2は、暗号証明書すなわち位置証明書Clocを動的に取得することができる。位置証明書Clocは、図1に概略的に示されたように、モバイル・ネットワークとの通信を介して取得される。位置証明書は、少なくとも、デバイス識別子sidと、たとえばMNOサーバ6を使用してモバイル・ネットワークによって決定されたユーザ・コンピュータ2の現在位置を示す位置データlocとを証明する。位置データlocは、任意の好適な態様で、たとえば、地理座標、地図領域、郵便番号、住所などに関して、位置を示すことができる。後述される実施形態において、位置証明書は、MNOサーバ6によって提供されるなど、モバイル・ネットワーク・オペレータから直接的に取得される。たとえば、位置証明書Clocは、モバイル・ネットワークを介するユーザ・コンピュータ2とMNOサーバ6との間の直接通信によって取得することができる。位置証明書Clocは、暗号化鍵のもとで、デバイス識別子sidおよび位置データlocの正当性を保証することができる。後述される実施形態において、この暗号化鍵は、モバイル・ネットワーク・オペレータの公開鍵・秘密鍵ペアの秘密鍵である。位置証明書Clocは、既知の資格情報発行プロトコルを用いて生成されてよく、MNOサーバ6の暗号化鍵を使用して作成されてよい。ステップ26で、ユーザ・コンピュータ2は、MNOサーバ6から位置証明書Cloc(loc,sid)を受け取る。
【0030】
ステップ27で、ユーザ・コンピュータ2は、ブラインド化された属性証明書を作成する。ブラインド化された属性証明書は、ブラインド化された位置証明書を含む。ブラインド化された属性証明書およびブラインド化された属性位置証明書はそれぞれ、属性証明書および位置証明書の無作為ブラインド化の既知の方法によって作成される。ブラインド化された属性証明書の使用の詳細は、図3でより詳細に説明する。
【0031】
ステップ28で、ユーザ・コンピュータ2は証明Πを決定する。ユーザ・コンピュータ2は、属性証明書Cattにおけるデバイス識別子sidが位置証明書Clocにおけるデバイス識別子sidに等しいことを証明するために、証明書システムの基礎をなす暗号プロトコルに従って既知の様式で証明Πを計算する。この例では、証明Πはまた、ステップ22で受け取られたポリシ・データによって定義された認証条件が、属性証明書Cattにおけるユーザ属性の集合attによって満たされること、たとえば、証明書が必要な要件を含むこと、または1つまたは複数の属性が指定要件を満たすこと、あるいはその両方を、証明するように適合される。証明Πはまた、さらに図3で後述されるように、検証サーバに対して他の事実が実証されるように証明することもある。
【0032】
ステップ29で、ユーザ・コンピュータ2は、認証トークンT(Catt、loc、loc、および証明Π)を作成する。認証トークンTは、属性証明書Catt、位置証明書Cloc、および証明Πを含む。属性証明書Cattは、デバイス識別sidおよびユーザ支払いアカウント詳細など、1つまたは複数のユーザ属性を備えることができる。位置証明書Clocは、MNOサーバ6によって提供されるデバイス識別sidおよび現在デバイス位置を含む。証明Πは、提供された両方の証明書のデバイス識別が同じであることを検証する。証明書CattおよびClocは、後で説明されるように、符号化された形態で認証トークンに組み込まれ得る。位置データlocは、MNOサーバ6から位置証明書Clocと一緒にユーザ・コンピュータに供給され得る。考えられる他の実施形態として、ユーザ・コンピュータは、位置証明書を生成するために使用される暗号化鍵に基づいて、たとえば、証明書を作成するためにペアのうち秘密鍵が使用された公開鍵・秘密鍵ペアの公開鍵を使用して、位置証明書から位置データlocを取得してもよい。
【0033】
ステップ30で、ユーザ・コンピュータ2は、ユーザ・コンピュータの認証のために、認証トークンTを検証サーバ4に送る。検証サーバ4に送られた認証トークンTは、証明書システムの基礎をなす暗号プロトコルに従って暗号検証プロセスを行うために、認証プログラム8に使用される。このプロセスでは、認証プログラム8は、証明Πから、属性証明書Cattにおけるデバイス識別子sidが位置証明書Clocにおけるデバイス識別子sidに等しいことを検証する。認証プログラム8は、位置証明書Clocが認証トークンTにおける位置データlocを証明することを検証し、証明書を作成するためにペアのうち秘密鍵が使用された公開鍵・秘密鍵ペアの公開鍵を使用して、位置データlocが位置証明書Clocによって有効に証明されることをチェックし得る。
【0034】
ユーザ・コンピュータ2から認証トークンTを受け取ると、MNOサーバ6上の認証プログラム8はさらに、位置データlocによって示されるユーザ・コンピュータ2の現在位置が検証サーバ4の近傍であるかどうかを決定する。現在のユーザ・コンピュータの位置は、ここで検証サーバ4の既知の位置と比較することができる。認証プログラム8は、ユーザ・コンピュータ2が検証サーバ6の閾値距離内にあることをチェックし得る。認証プログラム8はさらに、属性証明書Cattによって証明されたユーザ属性の集合attがユーザ・コンピュータの認証のための条件を満たすかどうかを決定する。この実施形態では、証明Πが、ステップ21で送られたポリシ・データによって定義された認証条件が属性証明書Cattにおけるユーザ属性の集合attによって満たされると証明することを、認証ロジックがチェックする。検証プロセスのこの部分では、属性証明書を生成するために使用される暗号化鍵に基づいて、たとえば、証明書を生成するために属性プロバイダ5が使用した秘密鍵とペアの公開鍵を使用して、属性証明書Cattが、要求される属性を満たす有効証明書であることが要件となる。実施形態において、サーバ上の認証プログラム8による認証のために認証トークンTを検証サーバ6に送ると、ユーザ・コンピュータ2は、検証サーバ4との提示および認証手順のためのステップを完了し、ユーザ・コンピュータ2は処理を終える。
【0035】
図3は、本発明の実施形態による、検証サーバ4によってユーザ・コンピュータ2を認証するための、分散データ処理環境100における認証手順の動作ステップを示すフロー図300である。図3は、本発明の例示的な実施形態の暗号実装を示す。この実施形態では、Camenisch−Lysyanskaya署名に基づく匿名証明書システムの暗号化手法を採用する。まず、説明する実施形態の理解を助けるために、Camenisch−Lysyanskaya署名の特性の簡単な説明をする。
【0036】
以下は、既知の離散対数ベースのゼロ知識証明(Zero-KnowledgeProofs)の説明である:一般的なパラメータ・モデルにおいて、本発明者らは、離散対数に関する命題(statement)を証明するためのいくつかの既知の結果、すなわち:(1)素数または合成数を法とする離散対数の知識の証明、(2)2つの(場合によって異なる)素数または合成数モジュラスを法とする表現の同等性の知識の証明、(3)あるコミットメントが他の2つのコミットされた値に対して開かれていることの証明、(4)コミットされた値が所与の整数区間内にあることの証明、および(5)上記の証明のうちの任意の2つの論理和または論理積の証明などを使用する。これらのプロトコルは、合成数を法としてリベスト、シャミル、エイドルマン(RSA)による仮定のもとでセキュアであり、素数を法として離散対数仮定のもとでセキュアである。
【0037】
上記の証明を参照するとき、示される方法は、種々の離散対数の知識の証明および離散対数に関する命題の妥当性の証明のためにCamenischおよびStadlerによって導入された表記に従う。たとえば、
【数1】

は、「y=gαhβおよび
【数2】

が成立するような整数α、β、およびδの知識のゼロ知識証明」を表し、ただし、u≦α≦vであり、y,g,h,
【数3】

は、群
【数4】

および
【数5】

の要素である。
【0038】
規約として、ギリシャ文字が、証明される知識の量を表し、他のすべての値は検証者に知られている。この方法は、知識のそのような証明を、あるメッセージm上の署名に変えるための既知のFiat−Shamirヒューリスティックの適用を示し、これは、たとえば、SPK{(α):y=gα}(m)として表される。この表記でプロトコルが与えられると、証明を実装する実際のプロトコルを得ることが簡単であり、以下の実施形態に適切なプロトコルは当業者には容易に明らかとなろう。
【0039】
実施形態において、示される方法は、メッセージを負の整数および正の整数にすることができるCamenisch−Lysyanskaya署名の既知の方法の明快な変形形態を含む。lm、le、ln、lrおよびLをシステム・パラメータとする。lrはセキュリティ・パラメータであり、他の意味は以下で明らかとなる。
【0040】
下記に(a)〜(d)で示される方法は、整数の集合
【数6】

を表す。したがって、この集合の要素は、長さlmに署名を運搬する追加ビットを加えた2進列、すなわち、合計でlm+1ビットとして符号化することができる。キー生成:入力lnに対し、n=pq、p=2p’+1、q=2q’+1となるようなlnビットRSAモジュラスnを選択する。ここで、p、q、p’、およびq’は素数である。ランダムに均一にR0、…、RL−1、S、Z∈QRnを選択する。公開鍵(n,R0,…,RL−1,S,Z)および秘密鍵pを出力する。
(a)メッセージ空間が、集合
【数7】

である。
(b)署名アルゴリズム:入力m0、…、mL−1に対し、長さle>lm+2の乱数素数e、および長さlv=ln+lm+lrの乱数vを選択する。
(c)
【数8】

を計算する。
(d)署名は(e,A,v)からなる。
【0041】
検証アルゴリズム:タプル(e,A,v)がメッセージ(m0,…,mL−1)上の署名であることを検証し、以下の命題が成立することをチェックする:
【数9】
【0042】
以下は、本発明の実施形態における署名の知識を証明している。示される方法は、どのように検証サーバ4などの検証者が署名に関する他の情報を何ら明らかにすることなくCL署名の所有を証明できるのかを説明する。示される方法は、上述のように離散対数ベースのゼロ知識証明プロトコルを使用する。Aが公開値ならば、本発明者らは、R0、…、RL−1、S、およびAに関してZの知識表現を提供することにより、そうすることができた。しかしながら、Aを公開することは、すべてのトランザクションをリンク可能にすることになる。幸いなことに、Aをランダム化することができる:所定の署名(A,e,v)、つまりタプル(A’:=AS−r mod n,e,v’:=v+er)は、rの任意の値についても有効な署名である。ここで、a∈
【数10】

であり、かつrが
【数11】

からランダムに均一に選択されるならば、値A’が、
【数12】

に対して統計的に均一に近く分散される。したがって、ユーザは、それを明らかにするたびに新たなA’を計算し、次いで、検証者と共に、以下のプロトコル:
【数13】

を実行することができる。
【0043】
ここで、この証明プロトコルから命題
【数14】

に関して技術的結果がある。これらは実質的に無償で実装され得るが、それらは、秘密が実際により小さい区間にあることを必要とし、すなわち、署名者は、
【数15】

からeを選択する必要があり、ただし、
【数16】

であり、
【数17】

および
【数18】

は、セキュリティ・パラメータである(1番目は、統計的ゼロ知識を制御し、2番目は、PKプロトコルにおけるチャレンジ・メッセージのサイズである)。同様に、本発明者らは、
【数19】

のように、署名方式へのメッセージ入力のサイズが制限されることを必要とする。証明は、メッセージの絶対値が、
【数20】

より小さいことを証明できるだけであるので、本発明者らは、整合性のためにメッセージ空間に負のメッセージも含める。最後に、
【数21】

(mod n)において「±」が出現することに留意されたい。上記は、RSA群における知識の証明の専門的事項である。空間RSAモジュラスnに対するZ*nの群構造およびその部分群QRnのため、証明者が複数の小さい既知の位数(order)を含めること、および1/2の確率の否定の命題を証明することを可能にし得る小さい位数の部分群が存在する。しかしながら、この専門的事項は、(定義により奇素数の)eが否定を維持し、この場合は強いRSA仮定を低減することを可能にするので、当面は適用において問題ではない。
【0044】
既知のPedersenコミットメント方式において、方法は、公開パラメータとして素数位数qの群Gおよび生成元(g0,…,gm)を示した。値
【数22】

にコミットするために、ランダムなr∈Zqを選び、
【数23】

を設定する。DamgardおよびFujisakiによって示されたように、群GがRSA群であり、コミットするものがモジュラスの因数分解に通じていない場合、Pedersenコミットメント方式は、任意のサイズの整数にコミットするために使用され得る。
【0045】
上記の暗号原理に基づく認証方法の実施形態を、図3を参照して説明する。
【0046】
(n,R0,…,RL−1,S,Z)を属性プロバイダ5の公開鍵とし、
【数24】

をMNOの公開鍵とする。xをユーザの秘密鍵とする。この鍵xは、ユーザ・コンピュータ2、たとえば、メモリ、永続ストレージ、または加入者識別モジュール(SIM)もしくはSIMカードなどのセキュアなハードウェア・モジュールに記憶され得る。別の実施形態では、鍵xは、ネットワーク1であり得るモバイル・ネットワークを介してユーザ・コンピュータにアクセス可能な検証サーバ4などの認証サーバによって記憶されてもよく、あるいは、鍵共有プロトコルを使用して既知のやり方で達成できるように、ユーザ・コンピュータとそのような認証サーバとの間で共有されてもよい。ユーザ・コンピュータ2に対するデバイス識別子は、前述のようにデバイス識別子sidである。
【0047】
セットアップ動作において、ユーザは、属性プロバイダ5から属性証明書Cattを取得する。ここでは簡単にするために、属性証明書は、単一の属性aをユーザに表明するものとして説明される。属性証明書は、発行プロトコルを実行することによって、属性プロバイダ5から既知のやり方で取得される。発行プロトコルの終わりに、ユーザ・コンピュータ2は、
【数25】

mod(n)、
【数26】

、および
【数27】

が成立するような署名(A,v,e)、およびメッセージx、sid、およびaの形態で証明書Cattを、メモリまたは永続ストレージに記憶する。したがって、属性証明書は、属性プロバイダ5の第1の公開鍵・秘密鍵ペアの秘密鍵のもとで属性aおよびデバイス識別子sidの正当性を保証する。
【0048】
発行の際に、値xおよびデバイス識別子sidを属性プロバイダ5から隠すことができ、したがって、デバイス・ユーザのセキュリティおよびプライバシがさらに向上する。セキュリティ向上は、当業者に既知のやり方で証明書方式の暗号機能性を活用することによって達成され得る。
【0049】
ユーザ・コンピュータ2は、ユーザによって、位置lに存在する検証サーバ4に移動されまたは提示され、サービス・プロバイダPによって提供されるサービスへのアクセスを得る。簡単にするため、この例では、サービス・プロバイダPは、単純に、属性aがユーザに属することを裏付ける証明書の所有を証明するように、ユーザに要求する。デバイス・ユーザとサービス・プロバイダPとの間に発生する特定のトランザクションは、特定のコンテキスト情報(たとえば、商品/サービスの識別子コード、コスト、検証サーバ識別子、日付など)によって定義される。
【0050】
ユーザ・コンピュータ2が属性証明書を取り出すと(ステップ301)、図3のステップ301で示されるように認証プロセスが開始され、ユーザ・コンピュータ2が検証サーバ4に提示される。取り出された属性証明書は、たとえば、メモリ406などのユーザ・コンピュータ2のメモリ、または永続ストレージ408などの永続ストレージに記憶されてよい。ステップ310で、検証サーバ4は、トランザクションのためのコンテキスト情報を定義するコンテキスト・メッセージcxtと一緒にポリシ・データをユーザ・コンピュータ2に送る。ステップ320で、ユーザ・コンピュータ2は、ポリシ・データおよびコンテキスト・メッセージを受け取る。
【0051】
ステップ330で、ユーザ・コンピュータ2は、ユーザ・パスワードpのユーザによる入力を要求する。ステップ340で入力パスワードを受信すると、ユーザ・コンピュータ2は、パスワード検証プロセスを行って、入力パスワードが正しいユーザ・パスワードpであることを検証する。検証は、ユーザ・コンピュータ2、たとえばメモリもしくは永続ストレージ、またはたとえばSIMカードに事前に記憶されたパスワードpに対して、入力パスワードを照合することを含むことができる。別の実施形態では、パスワード検証プロセスは、モバイル・ネットワークたとえばネットワーク1を介するユーザ・コンピュータ2と検証サーバ4などの認証サーバとの間の通信を必要とすることがある。たとえば、そのような検証プロセスは、次の暗号手順のためにユーザの秘密鍵にアクセスすることを必要とすることがある。判断ステップ340でパスワード検証が(たとえば、ユーザによる閾値数のパスワード試行の後に)失敗した場合、認証プロセスは終了する(いいえ分岐、判断ステップ340)。
【0052】
入力パスワードが検証されると(はい分岐、判断ステップ340)、ステップ350で、ユーザ・コンピュータは、モバイル・ネットワークであり得るネットワーク1によって通信して、MNOサーバ6に位置証明書Clocを要求する。ステップ360で、MNOサーバ6は、ユーザ・コンピュータ2の現在位置をl’として決定する。ステップ370で、MNOサーバ6は、位置証明書Cloc(l’,t’,sid)を発行する。MNOサーバ6によって生成された位置証明書は、デバイス識別子sidと、位置データl’と、位置証明書Clocの発行時刻を示すタイムスタンプt’とを証明する。ステップ380でユーザ・コンピュータ2によって受け取られる位置証明書Clocは、値sid、l’、およびt’における署名
【数28】

の形態であり、
【数29】

mod
【数30】


【数31】

、および
【数32】

が成立するようにされている。したがって、位置証明書Clocは、モバイル・ネットワーク・オペレータまたはMNOサーバ6の第2の公開鍵・秘密鍵ペアの秘密鍵のもとで、デバイス識別子sid、位置データl’、およびタイムスタンプt’を保証する。
【0053】
ステップ390で、ユーザ・コンピュータ2は、ブラインド化された属性証明書およびブラインド化された位置証明書をそれぞれ属性証明書および位置証明書の無作為ブラインド化によって作成する。特に、ユーザ・コンピュータ2は、ランダムなrおよび
【数33】

を選び、
【数34】

mod n、
【数35】

mod n、および
【数36】

を計算する。さらに、ステップ401で、ユーザ・コンピュータ2は、証明Πを計算し、認証トークンTを生成する。資格証明を決定または検証するために証明Πを計算することは、以下のように行われる。
【0054】
【数37】
【0055】
証明Πは、(1)属性証明書におけるデバイス識別子が、位置証明書におけるデバイス識別子に等しいこと、(2)それぞれブラインド化された証明書における属性証明書および位置証明書のユーザ・コンピュータによる所有、(3)属性証明書が、必要とされる属性aを含むこと、ならびに(4)位置証明書が、位置l’およびタイムスタンプt’を証明すること、を証明するように適合される。証明Πはまた、上記例においてcxtに結合されるので、コンテキスト・メッセージに依存する。次いで、認証トークンTが、
【数38】

として生成される。したがって、認証トークンTは、ブラインド化された属性および位置証明書Cloc、実証されるべき属性a、タイムスタンプおよび現在ユーザ位置、ならびに証明Πを備える。
【0056】
ステップ410で、ユーザ・コンピュータ2は認証トークンTを検証サーバ4に送る。ステップ420で、検証サーバ4は認証トークンTを受け取る。ステップ430で、検証サーバ4は、検証プロセス(証明Πの検証、位置および時間のチェック)を行う。先にステップ401で説明したような認証トークンTの検証プロセスは、上記ステップ401に関連して項目化された事実を証明Πが検証または証明すること、および証明Πが正しいコンテキスト・メッセージcxtに結合されることを証明する暗号検証プロセスである。この認証手順において、検証サーバ4は、上述の第1および第2の鍵ペアの公開鍵を使用して、ユーザ・コンピュータ2によって所有される属性証明書Cattおよび位置証明書の妥当性をそれぞれ検証することができる。検証サーバ4は、ユーザ・コンピュータ2の位置l’が、認証プログラム8の示す閾値距離内か否か、すなわち検証サーバ4の位置lに十分に近いか否かをチェックする。検証サーバ4はまた、タイムスタンプt’によって示される発行時刻が、現在時刻tより前の所定の時間間隔内であることをチェックする。
【0057】
判断ステップ440で、検証サーバ4は、検証が成功したかどうかを決定する。検証が成功していない場合(いいえ分岐、判断ステップ440)、検証サーバ4はユーザ・コンピュータ2の認証を拒否し(ステップ460)、認証手順が終了する。検証が成功した場合(はい分岐、判断ステップ440)、検証サーバ4はユーザ・コンピュータ2を認証し(ステップ450)、認証手順が終了する。
【0058】
先に説明した利点に加えて、この実施形態でのタイムスタンプの使用により、認証トークンTは位置証明書の発行後の短い時間内のみに使用できることが証明される。さらに、コンテキスト・メッセージの使用は、現在のトランザクションに対する使用を制限する。ブラインド化された証明書の使用により、認証トークンTに提供された証明書を使用してユーザについての異なるトランザクションをリンクできないことが証明される。認証トークンTは、入力ユーザ・パスワードが検証された場合のみに生成される。したがって、図3に示されるような認証手順は、ユーザの追加的セキュリティおよびプライバシを提供する。
【0059】
上記実施形態は、2以上の属性または複数のユーザ属性を持つ属性証明書に容易に拡張することができる。同様に、より複雑なアクセス制御ポリシが可能である。そのようなポリシおよびそれらを遂行する方法は、当技術分野でよく知られているので、ここでは簡単にするために詳細を省略する。いくつかの実施形態では、ポリシ・データに定義された認証条件に応じて、属性自体は検証サーバ4などの検証者に明らかにされる必要がなく、属性証明書Cattによって証明された属性集合が、必要とされる認証条件を満たす1つまたは複数の属性を含むということを証明することで十分であり得る。
【0060】
もちろん、他の実施形態が、Camenisch−Lysyanskaya署名方式以外の匿名の証明書方式を用いてもよく、一般に、本発明の実施形態は、任意の好適な暗号証明書システムに基づいてよい。他の証明書システムの例として、自己ブラインド化可能証明書、およびマイクロソフト社のU−Proveシステム(R)が挙げられる。
【0061】
いくつかの実施形態では、位置証明書を取得するための手順は、MNOサーバ6以外のサーバとの通信を含むことがある。たとえば、ユーザ・コンピュータ2は、認証サーバと通信して、デバイス識別子とモバイル・ネットワークから得られた位置データとを証明する資格情報を取得することができる。そのような証明書は、認証サーバに証明された情報を開示することなく発行され得る。位置証明書は、ユーザ・パスワードがこの認証手順で検証された場合のみに発行され得る。検証サーバ4の位置は、サーバに対して予め決定されてもよく、あるいは、たとえば複数の位置で使用され得る携帯型支払い端末を含む検証サーバに対し、モバイル・ネットワークを介して動的に決定されてもよい。
【0062】
代替的実施形態では、ポリシ・データの通信を必要としないことがある。認証ポリシは、ユーザ・コンピュータ2で予め定義されてもよく、あるいはユーザ・コンピュータが、単純に認証プロセスにおいてすべてのユーザ属性を実証してもよい。他の実施形態では、ステップは、図2および図3に示されたステップと異なる順序で実行され得る。いくつかのステップは、適宜に同時に行われてもよい。
【0063】
上記実施形態は、モバイル・ネットワークによってセキュアに認証されたユーザ・コンピュータの位置が、検証サーバの近傍にあるか確かめることを可能にする。図2および図3で説明されたような認証手順は、別の位置にあるデバイスによるユーザの属性証明書Cattの悪質な使用を防ぐ。たとえばユーザ・コンピュータ上のマルウェアが属性証明書をキャプチャして送信するのを防ぐ。したがって、ユーザ・コンピュータ2に長期間記憶された証明書も、そのようなマルウェアに対して保護される。位置検証は、デバイス識別子sidを検証サーバ4に明らかにすることなく達成される。モバイル・ネットワーク・オペレータは、検証者とのユーザ・トランザクションの詳細を学習しない。上記のプロセスにおけるポリシ・データの使用により、ユーザは、認証に必要な証明された属性に関する特定の情報のみを検証者に明らかにすることができるようになる。したがって、上記実施形態は、高レベルのユーザ・プライバシを保持する。
【0064】
ユーザ属性の集合attが、アカウント発行体によってユーザに発行された支払いカードの詳細などの支払いアカウント・データを含む、実施形態では、モバイル・ネットワークによって決定されたユーザ・コンピュータの位置は、アカウント発行体に明らかにされない。ここでの好ましい実施形態では、支払いアカウント・データは、アカウント発行体の公開鍵・秘密鍵ペアの秘密鍵のもとで暗号化され得る。図3のプロセスのステップ430において、検証サーバはさらに、アカウント発行体公開鍵・秘密鍵ペアの公開鍵に基づいて、支払いアカウント・データの妥当性を検証することができる。支払いは、検証者に明らかにされているユーザIDを含む支払いアカウント・データ無しにアカウント発行体から取得された検証者および支払いによって認証されることが可能であり、したがって、ユーザ・プライバシがさらに向上する。加えて、アカウント発行体は、モバイル・ネットワークによって決定されるようなユーザ・コンピュータの位置を学習しない。
【0065】
本発明の様々な実施形態の説明は、例示のために示されているが、網羅することも開示される実施形態に限定することも意図していない。多くの変更および変形が、説明された実施形態の趣旨および範囲から逸脱することなく当業者に明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の適用、もしくは市場で見られる技術に対する技術的改善を説明するために、または当業者が本明細書に開示された実施形態を理解するのを可能にするために選択されている。
【0066】
図4は、本発明の実施形態による、図1の分散データ処理環境100内のユーザ・コンピュータ2、検証サーバ4、属性プロバイダ5、またはMNOサーバ6、あるいはその全部または一部の構成要素のブロック図400である。図4は、一実装形態の単に例示を示しており、異なる実施形態が実装され得る環境に対するいかなる限定も示唆しない。示された環境に対する多くの変更が可能である。
【0067】
ユーザ・コンピュータ2、検証サーバ4、属性プロバイダ5、またはMNOサーバ6、あるいはその全部または一部は、プロセッサ404、キャッシュ414、メモリ406、永続ストレージ408、通信ユニット410、入力/出力(I/O)インターフェース412、および通信ファブリック402を含む。通信ファブリック402は、キャッシュ414、メモリ406、永続ストレージ408、通信ユニット410、および入力/出力(I/O)インターフェース412の間の通信を提供する。通信ファブリック402は、システム内のプロセッサ(マイクロプロセッサ、通信およびネットワーク・プロセッサなど)、システム・メモリ、周辺デバイス、および任意の他のハードウェア構成要素の間のデータまたは制御情報あるいはその両方を通すように設計された任意のアーキテクチャによって実装することができる。たとえば、通信ファブリック402は1つまたは複数のバスと共に実装することができる。
【0068】
メモリ406および永続ストレージ408は、コンピュータ可読記憶媒体である。この実施形態では、メモリ406はランダム・アクセス・メモリ(RAM)を含む。一般に、メモリ406は、任意の適切な揮発性または不揮発性コンピュータ可読記憶媒体を含むことができる。キャッシュ414は、メモリ406からの最近アクセスされたデータおよび近い最近にアクセスされたデータを保持することによってプロセッサ404の性能を向上する、高速メモリである。いくつかの実施形態では、メモリ406または永続ストレージ408は、デバイス識別子sidがユーザ・コンピュータ2に記憶され結合される、SIMまたはSIMカードなどのセキュアなハードウェア・モジュールであってよい。
【0069】
本発明の実施形態を実施するために使用されるプログラム命令およびデータは、キャッシュ414を介してそれぞれのプロセッサ404の1つまたは複数によって実行またはアクセスあるいはその両方をするために、永続ストレージ408に記憶される。この実施形態では、永続ストレージ408は磁気ハード・ディスク・ドライブを含む。磁気ハード・ディスク・ドライブに代えてまたは加えて、永続ストレージ408は、ソリッドステート・ハード・ドライブ、半導体ストレージ・デバイス、読出し専用メモリ(ROM)、消去可能プログラマブルROM(EPROM)、フラッシュ・メモリ、あるいはプログラム命令またはデジタル情報を記憶することができる任意の他のコンピュータ可読記憶媒体を含み得る。
【0070】
永続ストレージ408によって使用される媒体は取外し可能であってもよい。たとえば、永続ストレージ408として取外し可能なハードドライブが使用されてよい。他の例として、やはり永続ストレージ408の一部となる別のコンピュータ可読記憶媒体への転送のためにドライブに挿入される、光および磁気ディスク、サム・ドライブ、およびスマート・カードがある。
【0071】
種々の実施形態において、通信ユニット410は、検証サーバ4、属性プロバイダ5、およびMNOサーバ6のリソースを含む他のデータ処理システムまたはデバイスとの通信を提供する。種々の実施形態において、通信ユニット410は、1つまたは複数のネットワーク・インターフェース・カードを含む。通信ユニット410は、物理通信リンクと無線通信リンクのいずれかまたは両方の使用によって通信を提供することができる。本発明の実施形態を実施するために使用されるプログラム命令およびデータは、通信ユニット410を介して永続ストレージ408にダウンロードすることができる。
【0072】
I/Oインターフェース412は、ユーザ・コンピュータ2に接続され得る他のデバイスとの間のデータの入力および出力を可能にする。たとえば、I/Oインターフェース412は、キーボード、キーパッド、タッチ・スクリーン、マイクロフォン、デジタル・カメラ、または何らかの他の適切な入力デバイス、あるいはその全部または一部のような外部デバイス416に対する接続を提供することができる。外部デバイス416はまた、携帯型コンピュータ可読記憶媒体、たとえば、サム・ドライブ、携帯型光または磁気ディスク、およびメモリ・カードなどを含むことができる。本発明の実施形態を実施するために使用されるソフトウェアおよびデータ、たとえば、認証プログラム8およびデータベース9は、そのような携帯型コンピュータ可読記憶媒体に記憶することができ、I/Oインターフェース412を介して永続ストレージ408にロードすることができる。I/Oインターフェース412は、ディスプレイ418にも接続される。
【0073】
ディスプレイ418は、ユーザへデータを表示する機構を提供し、たとえば、コンピュータ・モニタであってよい。
【0074】
本明細書に説明されたプログラムは、本発明の特定の実施形態にプログラムが実装されるアプリケーションに基づいて識別される。しかしながら、本明細書の任意の特定のプログラムの名称は、便宜上使用されているだけであり、したがって、本発明は、そのような名称によって識別または示唆あるいはその両方をされる特定のアプリケーションのみで使用するように限定されるべきでないことは理解されたい。
【0075】
本発明は、システム、方法、またはコンピュータ・プログラム、あるいはその全部または一部であり得る。コンピュータ・プログラムは、本発明の態様をプロセッサに実施させるためのものであってコンピュータ可読記憶媒体(または媒体)に記憶される。
【0076】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶することができる任意の有形のデバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せを含むことができるが、上記に限定されない。コンピュータ可読記憶媒体のより具体的例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラマブルROM(EPROMまたはフラッシュ・メモリ)、スタティックRAM(SRAM)、ポータブル・コンパクト・ディスクROM(CD−ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、命令が記録されたパンチカードまたは溝内の隆起した構造のような機械的に符号化されたデバイス、およびこれらの任意の適切な組合せを含む。コンピュータ可読記憶媒体は、本明細書で使用される場合、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝達媒体を伝播する電磁波(たとえば、光ファイバ・ケーブルを通過する光パルス)、または配線を通って伝達される電気信号など、一時的な信号とそれ自体で解釈されるべきではない。
【0077】
本明細書に説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、それぞれのコンピューティング/処理デバイスへ、または、ネットワーク、たとえば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその全部または一部を介して、外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその全部または一部を含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のためにコンピュータ可読プログラム命令を転送する。
【0078】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Smalltalk(R)、C++のようなオブジェクト指向プログラミング言語、および「C」プログラミング言語のような従来の手続き型プログラミング言語、または類似のプログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行されてよく、スタンドアロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で実行されてよく、部分的にユーザのコンピュータ上で部分的にリモート・コンピュータ上で実行されてよく、あるいは完全にリモート・コンピュータまたはサーバ上で実行されてよい。後のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてよく、あるいは(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部のコンピュータに接続が行われてもよい。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することによって、コンピュータ可読プログラム命令を実行することができる。
【0079】
本発明の態様は、本明細書では、本発明の実施形態によるフローチャート図、または方法、装置(システム)およびコンピュータ・プログラムのブロック図、あるいはその両方を参照して説明されている。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることは理解されよう。
【0080】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実装するための手段を作成するように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令を記憶したコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作の態様を実装する命令を含む製造品を備えるように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその全部または一部に特定の様式で機能するように指示するものであってもよい。
【0081】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実装するように、コンピュータ実装プロセスを生成するべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0082】
図面のフローチャートおよびブロック図は、本発明の種々の実施形態による、システム、方法、コンピュータ・プログラムの可能な実装形態のアーキテクチャ、機能性、および動作を示す。これに関連して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、または命令の部分を表すことができる。いくつかの代替的実装形態では、ブロックに示された機能は、図面に示された順序と異なって実行されることがある。たとえば、連続して示された2つのブロックが、実際は、実質的に同時に実行されてもよく、あるいは、関与する機能性に応じて、ブロックが時には逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定された機能もしくは動作を実行する、または専用ハードウェアおよびコンピュータ命令の組合せを実施する専用ハードウェアベースのシステムによって実装され得ることに留意されたい。
【0083】
本発明の種々の実施形態の説明は、例示のために提示されているが、網羅することも開示される実施形態に限定することも意図していない。多くの変更および変形が、本発明の範囲および趣旨から逸脱することなく当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の適用、もしくは市場で見られる技術に対する技術的改善を最もよく説明するために、または当業者が本明細書に開示された実施形態を理解するのを可能にするために選択されている。
【符号の説明】
【0084】
1 ネットワーク
2 ユーザ・コンピュータ
4 検証サーバ
5 属性プロバイダ
6 MNOサーバ
8 認証プログラム
9 データベース
10 UI
100 分散データ処理環境
402 通信ファブリック
404 プロセッサ
406 メモリ
408 永続ストレージ
410 通信ユニット
412 I/Oインターフェース
414 キャッシュ
416 外部デバイス
418 ディスプレイ
図1
図2
図3
図4
【手続補正書】
【提出日】2016年4月19日
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
モバイル・ネットワークに対して接続可能なユーザ・コンピュータを認証するためのコンピュータ実装方法であって、
性証明書を取り出すステップであって、前記属性証明書は、ユーザ属性の集合と、前記モバイル・ネットワークに対する前記ユーザ・コンピュータを識別するためのデバイス識別子と、を証明する、前記ステップと、
置証明書を要求するステップであって、前記位置証明書は、デバイス識別子と、前記モバイル・ネットワークによって決定された前記ユーザ・コンピュータの現在位置を示す位置データと、を証明する、前記ステップと、
証トークンを作成するステップであって、前記認証トークンは、前記属性証明書と、前記位置証明書と、前記位置データと、前記属性証明書における前記デバイス識別子が前記位置証明書における前記デバイス識別子に等しいことを証明する証明と、を備える、前記ステップと、
記ユーザ・コンピュータの認証のために前記認証トークンを送るステップと、
を含むコンピュータ実装方法。
【請求項2】
前記位置証明書は、前記位置証明書の発行時刻を示すタイムスタンプをさらに備え、前記タイムスタンプは、前記認証トークンに含まれる、請求項1に記載の方法。
【請求項3】
記属性証明書の無作為ブラインド化によって、ブラインド化された属性証明書を作成するステップをさらに含み、前記認証トークンは、前記ブラインド化された属性証明書を含み、前記証明は、前記ブラインド化された属性証明書において前記属性証明書の前記ユーザ・コンピュータによる所有を証明するように適合される、請求項1に記載の方法。
【請求項4】
記位置証明書の無作為ブラインド化によってブラインド化された位置証明書を作成するステップをさらに含み、前記認証トークンは、前記ブラインド化された位置証明書を含み、前記証明は、前記ブラインド化された位置証明書において前記位置証明書の前記ユーザ・コンピュータによる所有を証明するように適合される、請求項1に記載の方法。
【請求項5】
記ユーザ・コンピュータの認証のための条件を定義するポリシ・データを受け取るステップをさらに含み、前記証明は、前記属性証明書におけるユーザ属性の前記集合によって前記条件が満たされることを証明するように適合される、請求項1に記載の方法。
【請求項6】
記認証のためのコンテキスト情報を定義するコンテキスト・メッセージを受け取るステップをさらに含み、前記証明は、前記コンテキスト・メッセージに依存する、請求項1に記載の方法。
【請求項7】
前記位置証明書は、モバイル・ネットワーク・オペレータの暗号化鍵のもとで前記デバイス識別子および前記位置データを保証する、請求項1に記載の方法。
【請求項8】
ーザ・パスワードを要求するステップと、
ーザによるパスワード入力を受け取るステップと、
力パスワードを検証するためのパスワード検証プロセスを行うステップであって、前記パスワード検証プロセスは、前記入力パスワードが検証された場合のみに前記認証トークンが生成されるようにする、前記ステップと
をさらに含む、請求項1に記載の方法。
【請求項9】
記位置証明書の発行時刻を示すタイムスタンプを証明するステップであって、前記認証トークンが前記タイムスタンプを含む、前記ステップと、
記位置証明書が証明する前記タイムスタンプを検証するステップと、
記タイムスタンプにより示される前記発行時刻が現在時刻より前の所定の時間間隔内であるかどうかを決定するステップと
をさらに含む、請求項1に記載の方法。
【請求項10】
記属性証明書における第1の公開鍵・秘密鍵ペアの秘密鍵のもとで前記デバイス識別子およびユーザ属性の前記集合を保証するステップと、
記位置証明書における第2の公開鍵・秘密鍵ペアの秘密鍵のもとで前記位置データ、タイムスタンプ、および前記デバイス識別子を保証するステップと、
記第1の公開鍵・秘密鍵ペアの公開鍵に基づいて前記属性証明書の妥当性を検証するステップと、
記第2の公開鍵・秘密鍵ペアの公開鍵に基づいて前記位置証明書の妥当性を検証するステップと
をさらに含む、請求項1に記載の方法。
【請求項11】
記証明から、前記条件がユーザ属性の前記集合によって満たされることを検証するステップをさらに含む、請求項5に記載の方法。
【請求項12】
モバイル・ネットワークに対して接続可能なユーザ・コンピュータを、前記ユーザ・コンピュータの近傍の検証者サーバによって認証するためのコンピュータ・プログラムであって、
プロセッサに、
属性証明書を取り出すステップであって、前記属性証明書は、ユーザ属性の集合と、前記モバイル・ネットワークに対する前記ユーザ・コンピュータを識別するためのデバイス識別子と、を証明する、前記ステップと、
位置証明書を要求するステップであって、前記位置証明書は、デバイス識別子と、前記モバイル・ネットワークによって決定された前記ユーザ・コンピュータの現在位置を示す位置データと、を証明する、前記ステップと、
認証トークンを作成するステップであって、前記認証トークンは、前記属性証明書と、前記位置証明書と、前記位置データと、前記属性証明書における前記デバイス識別子が前記位置証明書における前記デバイス識別子に等しいことを証明する証明と、を備える、前記ステップと、
前記ユーザ・コンピュータの認証のために前記認証トークンを前記検証者サーバに送るステップと、
を実行させるためのコンピュータ・プログラム。
【請求項13】
請求項2乃至11の何れか一項に記載の方法の各ステップをプロセッサに実行させるためのコンピュータ・プログラム。
【請求項14】
モバイル・ネットワークに対して接続可能なユーザ・コンピュータを、前記ユーザ・コンピュータの近傍の検証者サーバによって認証するためのコンピュータ・システムであって、
1つまたは複数のコンピュータ・プロセッサと、
1つまたは複数のコンピュータ可読記憶媒体と、
前記1つまたは複数のプロセッサのうちの少なくとも1つによって実行するための前記1つまたは複数のコンピュータ可読記憶媒体に記憶されたプログラム命令と
を備え、前記プログラム命令は、
属性証明書を取り出すためのプログラム命令であって、前記属性証明書は、ユーザ属性の集合と、前記モバイル・ネットワークに対する前記ユーザ・コンピュータを識別するためのデバイス識別子と、を証明する、前記プログラム命令と、
位置証明書を要求するためのプログラム命令であって、前記位置証明書は、デバイス識別子と、前記モバイル・ネットワークによって決定された前記ユーザ・コンピュータの現在位置を示す位置データと、を証明する、前記プログラム命令と、
認証トークンを作成するためのプログラム命令であって、前記認証トークンは、前記属性証明書と、前記位置証明書と、前記位置データと、前記属性証明書における前記デバイス識別子が前記位置証明書における前記デバイス識別子に等しいことを証明する証明と、を備える、前記プログラム命令と、
前記ユーザ・コンピュータの認証のために前記認証トークンを送るためのプログラム命令と
を含む、コンピュータ・システム。
【請求項15】
請求項2乃至11の何れか一項に記載の方法の各ステップに対応するプログラム命令を、プロセッサによる実行のためにコンピュータ可読記憶媒体上に格納するコンピュータ・システム。