(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-10-28
(54)【発明の名称】承諾アーキテクチャ用の認証アプリ
(51)【国際特許分類】
H04L 9/32 20060101AFI20221021BHJP
G06F 21/31 20130101ALI20221021BHJP
G06F 21/60 20130101ALI20221021BHJP
G06F 21/62 20130101ALI20221021BHJP
G06Q 20/38 20120101ALI20221021BHJP
【FI】
H04L9/32 100A
G06F21/31
G06F21/60 320
G06F21/62 345
H04L9/32 200B
H04L9/32 200F
G06Q20/38 310
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022510912
(86)(22)【出願日】2019-08-21
(85)【翻訳文提出日】2022-04-12
(86)【国際出願番号】 US2019047399
(87)【国際公開番号】W WO2021034322
(87)【国際公開日】2021-02-25
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100142907
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ジア、ハニア
(72)【発明者】
【氏名】カンナー、ヘマン
(72)【発明者】
【氏名】チャタルジー、アニメシュ
(72)【発明者】
【氏名】パリク、スタヴァン
(72)【発明者】
【氏名】ケディア、リディマ
(72)【発明者】
【氏名】イアマンディ、ボグダン ブリンザレア
【テーマコード(参考)】
5L055
【Fターム(参考)】
5L055AA73
(57)【要約】
操作リクエスト(142)を取得する工程であって、前記操作リクエストは、サービスアプリケーション(140)がリモートエンティティ(130)にアクセスして操作(138)を行うことを要求する、工程を備える、承諾アーキテクチャ内の認証操作のための方法(1000)。前記方法は、前記サービスアプリケーションが認証リクエスト(152)を発行する工程であって、前記認証リクエストは、前記リモートエンティティが前記操作を行う前に、前記認証アプリケーション(150)が前記ユーザ(12)を認証するためにユーザ認証クレデンシャル(154)を取得することを要求する、工程も備える。前記方法は、前記認証アプリケーションが、取得された前記ユーザ認証クレデンシャルを前記リモートエンティティの公開鍵(132)を用いて暗号化する工程も備える。前記サービスアプリケーションは、前記ユーザ認証クレデンシャルを暗号化されていない形式にて取得することを制限される。前記方法はまた、前記認証アプリケーションが、暗号化された前記ユーザ認証クレデンシャルを前記サービスアプリケーションに提供する工程と、前記サービスアプリケーションが、前記リモートエンティティに対し、前記操作リクエストおよび暗号化された前記ユーザ認証クレデンシャルを送信する工程と、を備える。
【特許請求の範囲】
【請求項1】
方法(1000)であって、
サービスアプリケーション(140)と認証アプリケーション(150)とを実行するユーザデバイス(10)のデータ処理ハードウェア(30)にて操作リクエスト(142)を取得する工程であって、前記操作リクエスト(142)は、前記サービスアプリケーション(140)がリモートエンティティ(130)にアクセスして操作(138)を行うことを要求し、前記操作リクエスト(142)は、
前記リモートエンティティ(130)を識別するリモートエンティティ識別子(142a)と、
前記操作(138)に関連付けられている操作情報(142b)と、を含む、工程と、
前記データ処理ハードウェア(30)上にて実行中の前記サービスアプリケーション(140)が認証リクエスト(152)を発行する工程であって、前記認証リクエスト(152)は、前記リモートエンティティ(130)が前記操作(138)を行う前に、前記認証アプリケーション(150)がユーザ(12)を認証するために前記リモートエンティティ(130)に関連付けられている前記ユーザデバイス(10)の前記ユーザ(12)のユーザ認証クレデンシャル(154)を取得することを要求する、工程と、
前記サービスアプリケーション(140)が前記ユーザ認証クレデンシャル(154)を暗号化されていない形式にて取得することを制限するように、前記データ処理ハードウェア(30)上にて実行中の前記認証アプリケーション(150)が、取得された前記ユーザ認証クレデンシャル(154)を前記リモートエンティティ(130)の公開鍵(132)を用いて暗号化する、ユーザ認証クレデンシャル暗号化工程と、
前記データ処理ハードウェア(30)上にて実行中の前記認証アプリケーション(150)が、暗号化された前記ユーザ認証クレデンシャル(154)を前記サービスアプリケーション(140)に提供する工程と、
前記データ処理ハードウェア(30)上にて実行中の前記サービスアプリケーション(140)が、前記リモートエンティティ(130)に対し、前記操作リクエスト(142)および暗号化された前記ユーザ認証クレデンシャル(154)を送信する工程であって、前記操作リクエスト(142)および暗号化された前記ユーザ認証クレデンシャル(154)は、前記リモートエンティティ(130)によって受信されたとき、前記リモートエンティティ(130)に、
暗号化された前記ユーザ認証クレデンシャル(154)を、前記リモートエンティティ(130)の秘密鍵(133)を用いて、復号する工程と、
復号された前記ユーザ認証クレデンシャル(154)をバリデーションする工程と、を行わせる、送信工程と、を備える方法(1000)。
【請求項2】
前記サービスアプリケーション(140)は、決済アプリケーション(140P)を含み、
前記リモートエンティティ(130)は、前記ユーザ(12)に関連付けられている金融機関(130F)を含み、
前記サービスアプリケーション(140)が前記リモートエンティティ(130)にアクセスすることを要求する前記操作リクエスト(142)は、前記決済アプリケーション(140P)が前記金融機関(130F)から受取人への電子決済を開始することを要求する電子決済リクエスト(142P)を含む、請求項1に記載の方法(1000)。
【請求項3】
前記操作情報(142b)は、前記電子決済の明細、前記電子決済の値/金額、前記金融機関(130F)における前記ユーザ(12)に関連付けられている口座を識別する一意口座識別子の少なくとも一部、および前記受取人を識別する受取人識別子、のうちの1つ以上を含む、請求項2に記載の方法(1000)。
【請求項4】
前記リモートエンティティ(130)は、前記ユーザ(12)に関連付けられている個人情報(420)を記憶する記録データストア(410)を備え、
前記サービスアプリケーション(140)が前記リモートエンティティ(130)にアクセスすることを要求する前記操作リクエスト(142)は、前記サービスアプリケーション(140)が前記記録データストア(410)から前記個人情報(420)の少なくとも一部を取り出すことを要求する情報取出リクエスト(142R)を含む、請求項1~3のいずれか一項に記載の方法(1000)。
【請求項5】
前記個人情報(420)は、前記ユーザ(12)に関連付けられている個人記録を含む、請求項4に記載の方法(1000)。
【請求項6】
前記ユーザ認証クレデンシャル暗号化工程の後、前記データ処理ハードウェア(30)上にて実行中の前記認証アプリケーション(150)が、暗号化された前記ユーザ認証クレデンシャル(154)を、前記リモートエンティティ(30)の検証ネットワーク(220)に関連付けられている公開鍵(222)を用いて再び暗号化する工程をさらに備える、請求項1~5のいずれか一項に記載の方法(1000)。
【請求項7】
前記ユーザ認証クレデンシャル暗号化工程の後、前記データ処理ハードウェア(30)上にて実行中の前記認証アプリケーション(150)が、暗号化された前記ユーザ認証クレデンシャル(154)を、前記ユーザデバイス(10)の秘密鍵(606R)を用いて署名する工程をさらに備える、請求項1~6のいずれか一項に記載の方法(1000)。
【請求項8】
前記ユーザデバイス(10)の公開鍵(606U)は、前記リモートエンティティ(130)に登録されており、前記ユーザデバイス(10)の前記公開鍵(606U)は、前記ユーザデバイス(10)の前記秘密鍵(606R)に対応するとともに、暗号化された前記ユーザ認証クレデンシャル(154)の署名を検証するために前記リモートエンティティ(130)によって用いられる、請求項7に記載の方法(1000)。
【請求項9】
前記ユーザ認証クレデンシャル暗号化工程は、前記リモートエンティティ(130)の前記公開鍵(132)を用いて、前記操作リクエスト(142)および前記ユーザ認証クレデンシャル(154)をともに暗号化する工程をさらに含む、請求項1~8のいずれか一項に記載の方法(1000)。
【請求項10】
前記ユーザ認証クレデンシャル暗号化工程の前に、前記データ処理ハードウェア(30)上にて実行中の前記認証アプリケーション(150)が、ユーザデバイス(10)のアンロックチャレンジを前記ユーザ(12)に発行する工程をさらに備える、請求項1~9のいずれか一項に記載の方法(1000)。
【請求項11】
前記サービスアプリケーション(140)によって発行された前記認証リクエスト(152)は、前記ユーザ認証クレデンシャル(154)を取得する前に前記認証アプリケーション(150)が前記サービスアプリケーション(140)をバリデーションするために用いる認証トークン(153)を含む、請求項1~10のいずれか一項に記載の方法(1000)。
【請求項12】
前記送信工程の後、
前記データ処理ハードウェア(30)上にて実行中の前記サービスアプリケーション(140)にて、チャレンジリクエスト(144)を前記リモートエンティティ(130)から受信する工程であって、前記チャレンジリクエスト(144)は前記ユーザ(12)からの追加のユーザ認証クレデンシャル(154)を要求する、工程と、
前記データ処理ハードウェア(30)上にて実行中の前記サービスアプリケーション(140)が、前記認証アプリケーション(150)を呼び出して前記ユーザ(12)から前記追加のユーザ認証クレデンシャル(154)を取得する工程と、
前記データ処理ハードウェア(30)上にて実行中の前記認証アプリケーション(150)が、取得された前記追加のユーザ認証クレデンシャル(154)を、前記リモートエンティティ(130)の前記公開鍵(132)を用いて暗号化する工程と、
前記データ処理ハードウェア(30)上にて実行中の前記認証アプリケーション(150)が、暗号化された前記追加のユーザ認証クレデンシャル(154)を前記サービスアプリケーション(140)に提供する工程と、
前記データ処理ハードウェア(30)上にて実行中の前記サービスアプリケーション(140)が、暗号化された前記追加のユーザ認証クレデンシャル(154)を含むチャレンジレスポンス(157)を前記リモートエンティティ(130)に送信する工程であって、前記チャレンジレスポンス(157)は、前記リモートエンティティ(130)によって受信されたとき、前記リモートエンティティ(130)に
暗号化された前記追加のユーザ認証クレデンシャル(154)を、前記リモートエンティティ(130)の前記秘密鍵(133)を用いて復号する工程と、
復号された前記追加のユーザ認証クレデンシャル(154)をバリデーションする工程と、を行わせる、工程と、をさらに備える、請求項1~11のいずれか一項に記載の方法(1000)。
【請求項13】
前記リモートエンティティ(130)は、復号された前記ユーザ認証クレデンシャル(154)と復号された前記追加のユーザ認証クレデンシャル(154)との両方をバリデーションした後、前記操作リクエスト(142)に基づいて操作(138)を行うように構成されている、請求項12に記載の方法(1000)。
【請求項14】
前記リモートエンティティ(130)は、復号された前記ユーザ認証クレデンシャル(154)をバリデーションした後、電子決済を受取人に転送するように構成されている、請求項1~13のいずれか一項に記載の方法(1000)。
【請求項15】
前記データ処理ハードウェア(30)上にて実行中の前記認証アプリケーション(150)が、前記ユーザ(12)のアイデンティティを前記ユーザデバイス(10)に結合するユーザアイデンティティ結合工程をさらに備え、前記ユーザアイデンティティ結合工程は、
サービス登録リクエスト(602)を、前記データ処理ハードウェア(30)上にて実行中の前記サービスアプリケーション(140)から受信する工程であって、前記サービス登録リクエスト(602)はユーザ識別情報(604b)およびサービスアプリケーション識別情報(604a)を含み、前記ユーザ識別情報(604b)は前記サービスアプリケーション(140)に対し前記ユーザ(12)を一意に識別し、前記サービスアプリケーション識別情報(604a)は前記認証アプリケーション(150)に対し前記サービスアプリケーション(140)を一意に識別する、工程と、
デバイスバウンドキーペア(606)を生成する工程であって、前記デバイスバウンドキーペア(606)は、前記ユーザ識別情報(604b)および前記サービスアプリケーション識別情報(604a)に基づくデバイス公開鍵(606U)およびデバイス秘密鍵(606R)を備える、工程と、
前記デバイス秘密鍵(606R)を用いて前記サービスアプリケーション識別情報(604a)に署名する工程と、
前記デバイス公開鍵(606U)および署名された前記サービスアプリケーション識別情報(604a)を前記リモートエンティティ(130)に送る工程と、を備える、請求項1~14のいずれか一項に記載の方法(1000)。
【請求項16】
前記データ処理ハードウェア(30)上にて実行中の前記認証アプリケーション(150)が、前記ユーザ(12)および前記リモートエンティティ(130)に関連付けられているユーザ口座(137)を前記ユーザデバイス(10)と結合するユーザ口座結合工程をさらに備え、前記ユーザ口座結合工程は、
前記デバイス秘密鍵(606R)により前記サービスアプリケーション識別情報(604a)に署名する工程と、
署名された前記サービスアプリケーション識別情報(604a)を、前記データ処理ハードウェア(30)上にて実行中の前記サービスアプリケーション(140)に送る工程であって、署名された前記サービスアプリケーション識別情報(604a)は、前記サービスアプリケーション(140)によって受信されたとき、前記サービスアプリケーション(140)に、署名された前記サービスアプリケーション識別情報(604a)および口座識別情報(909)を前記リモートエンティティ(130)に対し送らせ、前記口座識別情報(909)は前記ユーザ口座(137)を一意に識別する、工程と、を備える、請求項15に記載の方法(1000)。
【請求項17】
前記サービスアプリケーション(140)および前記認証アプリケーション(150)が実行しているとき、
前記データ処理ハードウェア(30)が、1つまたは複数の追加のサービスアプリケーション(140)を実行させる工程であって、各追加のサービスアプリケーション(140)は、
対応操作リクエスト(142)を受信する工程であって、前記対応操作リクエスト(142)は、前記追加のサービスアプリケーション(140)が同一のリモートエンティティ(130)または異なるリモートエンティティ(130)にアクセスして対応する操作(138)を行うことを要求する、工程と、
対応認証リクエスト(152)を発行する工程であって、前記対応認証リクエスト(152)は、同一のリモートエンティティ(130)または異なるリモートエンティティ(130)が前記操作(138)を行う前に、前記認証アプリケーション(150)が前記ユーザ(12)を認証するために前記ユーザ(12)の前記ユーザ認証クレデンシャル(154)を取得することを要求する、工程と、
前記追加のサービスアプリケーション(140)が前記ユーザ認証クレデンシャル(154)を暗号化されていない形式にて取得することを制限するように、暗号化された前記ユーザ認証クレデンシャル(154)を前記認証アプリケーション(150)から受信する工程と、を行うように構成されている、工程をさらに備える、請求項1~16のいずれか一項に記載の方法(1000)。
【請求項18】
システム(100)であって、
サービスアプリケーション(140)と認証アプリケーション(150)とを実行するユーザデバイス(10)のデータ処理ハードウェア(30)と、
前記データ処理ハードウェア(30)と通信するメモリハードウェア(20)であって、前記データ処理ハードウェア(30)上における実行時、前記データ処理ハードウェア(30)に、
操作リクエスト(142)を取得する工程であって、前記操作リクエスト(142)は、前記サービスアプリケーション(140)がリモートエンティティ(130)にアクセスして操作(138)を行うことを要求し、前記操作リクエスト(142)は、
前記リモートエンティティ(130)を識別するリモートエンティティ識別子(142a)と、
前記操作(138)に関連付けられている操作情報(142b)と、を含む、工程と、
前記サービスアプリケーション(140)が認証リクエスト(152)を発行する工程であって、前記認証リクエスト(152)は、前記リモートエンティティ(130)が前記操作(138)を行う前に、前記認証アプリケーション(150)がユーザ(12)を認証するために前記リモートエンティティ(130)に関連付けられている前記ユーザデバイス(10)の前記ユーザ(12)のユーザ認証クレデンシャル(154)を取得することを要求する、工程と、
前記サービスアプリケーション(140)が前記ユーザ認証クレデンシャル(154)を暗号化されていない形式にて取得することを制限するように、前記認証アプリケーション(150)が、取得された前記ユーザ認証クレデンシャル(154)を前記リモートエンティティ(130)の公開鍵(132)を用いて暗号化する、ユーザ認証クレデンシャル暗号化工程と、
前記認証アプリケーション(150)が、暗号化された前記ユーザ認証クレデンシャル(154)を前記サービスアプリケーション(140)に提供する工程と、
前記サービスアプリケーション(140)が、前記リモートエンティティ(130)に対し、前記操作リクエスト(142)および暗号化された前記ユーザ認証クレデンシャル(154)を送信する工程であって、前記操作リクエスト(142)および暗号化された前記ユーザ認証クレデンシャル(154)は、前記リモートエンティティ(130)によって受信されたとき、前記リモートエンティティ(130)に、
暗号化された前記ユーザ認証クレデンシャル(154)を、前記リモートエンティティ(130)の秘密鍵(133)を用いて、復号する工程と、
復号された前記ユーザ認証クレデンシャル(154)をバリデーションする工程と、を行わせる、送信工程と、を備える動作を行わせる命令を記憶する、メモリハードウェア(20)と、を備えるシステム(100)。
【請求項19】
前記サービスアプリケーション(140)は、決済アプリケーション(140P)を含み、
前記リモートエンティティ(130)は、前記ユーザ(12)に関連付けられている金融機関(130F)を含み、
前記サービスアプリケーション(140)が前記リモートエンティティ(130)にアクセスすることを要求する前記操作リクエスト(142)は、前記決済アプリケーション(140P)が前記金融機関(130F)から受取人への電子決済を開始することを要求する電子決済リクエスト(142P)を含む、請求項18に記載のシステム(100)。
【請求項20】
前記操作情報(142b)は、前記電子決済の明細、前記電子決済の値/金額、前記金融機関(130F)における前記ユーザ(12)に関連付けられている口座を識別する一意口座識別子の少なくとも一部、および前記受取人を識別する受取人識別子、のうちの1つ以上を含む、請求項18に記載のシステム(100)。
【請求項21】
前記リモートエンティティ(130)は、前記ユーザ(12)に関連付けられている個人情報(420)を記憶する記録データストア(410)を備え、
前記サービスアプリケーション(140)が前記リモートエンティティ(130)にアクセスすることを要求する前記操作リクエスト(142)は、前記サービスアプリケーション(140)が前記記録データストア(410)から前記個人情報(420)の少なくとも一部を取り出すことを要求する情報取出リクエスト(142R)を含む、請求項18~20のいずれか一項に記載のシステム(100)。
【請求項22】
前記個人情報(420)は、前記ユーザ(12)に関連付けられている個人記録を含む、請求項21に記載のシステム(100)。
【請求項23】
前記ユーザ認証クレデンシャル暗号化工程の後、前記認証アプリケーション(150)が、暗号化された前記ユーザ認証クレデンシャル(154)を、前記リモートエンティティ(30)の検証ネットワーク(220)に関連付けられている公開鍵(222)を用いて再び暗号化する工程をさらに備える、請求項17~21のいずれか一項に記載のシステム(100)。
【請求項24】
前記ユーザ認証クレデンシャル暗号化工程の後、前記認証アプリケーション(150)が、暗号化された前記ユーザ認証クレデンシャル(154)を、前記ユーザデバイス(10)の秘密鍵(606R)を用いて署名する工程をさらに備える、請求項18~23のいずれか一項に記載のシステム(100)。
【請求項25】
前記ユーザデバイス(10)の公開鍵(606U)は、前記リモートエンティティ(130)に登録されており、前記ユーザデバイス(10)の前記公開鍵(606U)は、前記ユーザデバイス(10)の前記秘密鍵(606R)に対応するとともに、暗号化された前記ユーザ認証クレデンシャル(154)の署名を検証するために前記リモートエンティティ(130)によって用いられる、請求項24に記載のシステム(100)。
【請求項26】
前記ユーザ認証クレデンシャル暗号化工程は、前記リモートエンティティ(130)の前記公開鍵(132)を用いて、前記操作リクエスト(142)および前記ユーザ認証クレデンシャル(154)をともに暗号化する工程をさらに含む、請求項18~25のいずれか一項に記載のシステム(100)。
【請求項27】
前記ユーザ認証クレデンシャル暗号化工程の前に、前記認証アプリケーション(150)が、ユーザデバイス(10)のアンロックチャレンジを前記ユーザ(12)に発行する工程をさらに備える、請求項18~26のいずれか一項に記載のシステム(100)。
【請求項28】
前記サービスアプリケーション(140)によって発行された前記認証リクエスト(152)は、前記ユーザ認証クレデンシャル(154)を取得する前に前記認証アプリケーション(150)が前記サービスアプリケーション(140)をバリデーションするために用いる認証トークン(153)を含む、請求項18~27のいずれか一項に記載のシステム(100)。
【請求項29】
前記動作は、前記送信工程の後、
前記サービスアプリケーション(140)にて、チャレンジリクエスト(144)を前記リモートエンティティ(130)から受信する工程であって、前記チャレンジリクエスト(144)は前記ユーザ(12)からの追加のユーザ認証クレデンシャル(154)を要求する、工程と、
前記サービスアプリケーション(140)が、前記認証アプリケーション(150)を呼び出し、前記ユーザ(12)から前記追加のユーザ認証クレデンシャル(154)を取得する工程と、
前記認証アプリケーション(150)が、取得された前記追加のユーザ認証クレデンシャル(154)を、前記リモートエンティティ(130)の前記公開鍵(132)を用いて暗号化する工程と、
前記認証アプリケーション(150)が、暗号化された前記追加のユーザ認証クレデンシャル(154)を前記サービスアプリケーション(140)に提供する工程と、
前記サービスアプリケーション(140)が、暗号化された前記追加のユーザ認証クレデンシャル(154)を含むチャレンジレスポンス(157)を前記リモートエンティティ(130)に送信する工程であって、前記チャレンジレスポンス(157)は、前記リモートエンティティ(130)によって受信されたとき、前記リモートエンティティ(130)に
暗号化された前記追加のユーザ認証クレデンシャル(154)を、前記リモートエンティティ(130)の前記秘密鍵(133)を用いて復号する工程と、
復号された前記追加のユーザ認証クレデンシャル(154)をバリデーションする工程と、を行わせる、工程と、をさらに備える、請求項18~28のいずれか一項に記載のシステム(100)。
【請求項30】
前記リモートエンティティ(130)は、復号された前記ユーザ認証クレデンシャル(154)と復号された前記追加のユーザ認証クレデンシャル(154)との両方をバリデーションした後、前記操作リクエスト(142)に基づいて操作(138)を行うように構成されている、請求項29に記載のシステム(100)。
【請求項31】
前記リモートエンティティ(130)は、復号された前記ユーザ認証クレデンシャル(154)をバリデーションした後、電子決済を受取人に転送するように構成されている、請求項18~30のいずれか一項に記載のシステム(100)。
【請求項32】
前記認証アプリケーション(150)が、前記ユーザ(12)のアイデンティティを前記ユーザデバイス(10)に結合するユーザアイデンティティ結合工程をさらに備え、前記ユーザアイデンティティ結合工程は、
サービス登録リクエスト(602)を、前記サービスアプリケーション(140)から受信する工程であって、前記サービス登録リクエスト(602)はユーザ識別情報(604b)およびサービスアプリケーション識別情報(604a)を含み、前記ユーザ識別情報(604b)は前記サービスアプリケーション(140)に対し前記ユーザ(12)を一意に識別し、前記サービスアプリケーション識別情報(604a)は前記認証アプリケーション(150)に対し前記サービスアプリケーション(140)を一意に識別する、工程と、
デバイスバウンドキーペア(606)を生成する工程であって、前記デバイスバウンドキーペア(606)は、前記ユーザ識別情報(604b)および前記サービスアプリケーション識別情報(604a)に基づくデバイス公開鍵(606U)およびデバイス秘密鍵(606R)を備える、工程と、
前記デバイス秘密鍵(606R)を用いて前記サービスアプリケーション識別情報(604a)に署名する工程と、
前記デバイス公開鍵(606U)および署名された前記サービスアプリケーション識別情報(604a)を前記リモートエンティティ(130)に送る工程と、を備える、請求項18~31のいずれか一項に記載のシステム(100)。
【請求項33】
前記認証アプリケーション(150)が、前記ユーザ(12)および前記リモートエンティティ(130)に関連付けられているユーザ口座(137)を前記ユーザデバイス(10)と結合するユーザ口座結合工程をさらに備え、前記ユーザ口座結合工程は、
前記デバイス秘密鍵(606R)により前記サービスアプリケーション識別情報(604a)に署名する工程と、
署名された前記サービスアプリケーション識別情報(604a)を前記サービスアプリケーション(140)に送る工程であって、署名された前記サービスアプリケーション識別情報(604a)は、前記サービスアプリケーション(140)によって受信されたとき、前記サービスアプリケーション(140)に、署名された前記サービスアプリケーション識別情報(604a)および口座識別情報(909)を前記リモートエンティティ(130)に対し送らせ、前記口座識別情報(909)は前記ユーザ口座(137)を一意に識別する、工程と、を備える、請求項32に記載のシステム(100)。
【請求項34】
前記動作は、前記サービスアプリケーション(140)および前記認証アプリケーション(150)が実行しているとき、
1つまたは複数の追加のサービスアプリケーション(140)を実行させる工程であって、各追加のサービスアプリケーション(140)は、
対応操作リクエスト(142)を受信する工程であって、前記対応操作リクエスト(142)は、前記追加のサービスアプリケーション(140)が同一のリモートエンティティ(130)または異なるリモートエンティティ(130)にアクセスして対応する操作(138)を行うことを要求する、工程と、
対応認証リクエスト(152)を発行する工程であって、前記対応認証リクエスト(152)は、同一のリモートエンティティ(130)または異なるリモートエンティティ(130)が前記操作(138)を行う前に、前記認証アプリケーション(150)が前記ユーザ(12)を認証するために前記ユーザ(12)の前記ユーザ認証クレデンシャル(154)を取得することを要求する、工程と、
前記追加のサービスアプリケーション(140)が前記ユーザ認証クレデンシャル(154)を暗号化されていない形式にて取得することを制限するように、暗号化された前記ユーザ認証クレデンシャル(154)を前記認証アプリケーション(150)から受信する工程と、を行うように構成されている、工程をさらに備える、請求項19~34のいずれか一項に記載のシステム(100)。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、任意の数のアプリケーション用のセキュアな認証用のクロスアプリケーション認証アプリケーションに関する。
【背景技術】
【0002】
リアルタイム決済(RTP)は、受取人が、送信側金融機関が取引を開始して数秒内に(すなわち、「リアルタイム」に)支払いを受けることを可能にする金融取引である。これらの決済システムは、典型的には、両替および清算を扱うクレジットカードネットワークと同様に、イシュア間の金銭を行う中央当局である、RTPネットワークによって維持されることが多い。RTPは、金融機関におけるあるユーザの口座から異なるまたは同一の金融機関における別のユーザの口座へと即座に送金する決済アプリケーション(アプリ)を実行させる、ユーザデバイス(例えば、携帯電話)によって行われることが多い。これらの決済アプリは、通常、アプリケーションプログラミングインタフェース(API)を介してRTPネットワークに対するアクセスを得る。RTPは、一般に大幅に増加しており、取引の数が急上昇していることにより、競合する決済アプリケーションの数が同様に増加している。ユーザが同一のユーザデバイス上に複数の独立した決済アプリ(各決済アプリはユーザの口座の1つまたは複数にアクセスするように認可されている)を有することは普通ではない。
【発明の概要】
【0003】
本開示の1つの態様は、承諾アーキテクチャ内の認証操作の方法を提供する。方法は、サービスアプリケーションと認証アプリケーションとを実行するユーザデバイスのデータ処理ハードウェアにて操作リクエストを取得する工程であって、前記操作リクエストは、前記サービスアプリケーションがリモートエンティティにアクセスして操作を行うことを要求する、工程を備える。前記操作リクエストは、リモートエンティティを識別するリモートエンティティ識別子と、前記操作に関連付けられている操作情報と、を含む。方法は、前記データ処理ハードウェア上にて実行中の前記サービスアプリケーションが認証リクエストを発行する工程であって、前記認証リクエストは、前記リモートエンティティが前記操作を行う前に、前記認証アプリケーションが前記ユーザを認証するために前記リモートエンティティに関連付けられている前記ユーザデバイスのユーザのユーザ認証クレデンシャルを取得することを要求する、工程も含む。方法は、前記サービスアプリケーションが前記ユーザ認証クレデンシャルを暗号化されていない形式にて取得することを制限するように、前記データ処理ハードウェア上にて実行中の前記認証アプリケーションが、取得された前記ユーザ認証クレデンシャルを前記リモートエンティティの公開鍵を用いて暗号化する、ユーザ認証クレデンシャル暗号化工程も含む。方法はまた、前記データ処理ハードウェア上にて実行中の前記認証アプリケーションが、暗号化された前記ユーザ認証クレデンシャルを前記サービスアプリケーションに提供する工程と、前記データ処理ハードウェア上にて実行中の前記サービスアプリケーションが、前記リモートエンティティに対し、前記操作リクエストおよび暗号化された前記ユーザ認証クレデンシャルを送信する工程と、を含む。前記操作リクエストおよび暗号化された前記ユーザ認証クレデンシャルは、前記リモートエンティティよって受信されたとき、前記リモートエンティティに、暗号化された前記ユーザ認証クレデンシャルを、前記リモートエンティティの秘密鍵を用いて、復号する工程と、復号された前記ユーザ認証クレデンシャルをバリデーションする工程と、を行わせる。
【0004】
本開示の実装は、以下の随意の特徴のうちの1つまたは複数を含んでよい。いくつかの実装では、前記サービスアプリケーションは、決済アプリケーションを含み、前記リモートエンティティは、前記ユーザに関連付けられている金融機関を含む。前記サービスアプリケーションが前記リモートエンティティにアクセスすることを要求する前記操作リクエストは、前記決済アプリケーションが前記金融機関から受取人への電子決済を開始することを要求する電子決済リクエストを含む。いくつかの例では、前記操作情報は、前記電子決済の明細、前記電子決済の値/金額、前記金融機関における前記ユーザに関連付けられている口座を識別する一意口座識別子の少なくとも一部、および前記受取人を識別する受取人識別子、のうちの1つ以上を含む。
【0005】
随意では、前記リモートエンティティは、前記ユーザに関連付けられている個人情報を記憶する記録データストアを備え、前記サービスアプリケーションが前記リモートエンティティにアクセスすることを要求する前記操作リクエストは、前記サービスアプリケーションが前記記録データストアから前記個人情報の少なくとも一部を取り出すことを要求する情報取出リクエストを含む。前記個人情報は、前記ユーザに関連付けられている個人記録を含む。個人情報は、ユーザが秘密にしておくことを望む情報、またはサービスプロバイダが秘密にしておく義務を有する情報であり得る。いくつかの実装では、前記ユーザ認証クレデンシャル暗号化工程の後、前記データ処理ハードウェア上にて実行中の前記認証アプリケーションが、暗号化された前記ユーザクレデンシャルを、前記リモートエンティティの検証ネットワークに関連付けられている公開鍵を用いて再び暗号化する工程をさらに備える。
【0006】
いくつかの例では、方法は、前記ユーザ認証クレデンシャル暗号化工程の後、前記データ処理ハードウェア上にて実行中の前記認証アプリケーションが、暗号化された前記ユーザクレデンシャルを、前記ユーザデバイスの秘密鍵を用いて署名する工程をさらに備える。前記ユーザデバイスの公開鍵は、前記リモートエンティティに登録されていてよい。前記ユーザデバイスの前記公開鍵は、前記ユーザデバイスの前記秘密鍵に対応するとともに、暗号化された前記ユーザ認証クレデンシャルの署名を検証するために前記リモートエンティティによって用いられる。随意では、前記ユーザ認証クレデンシャル暗号化工程は、前記リモートエンティティの前記公開鍵を用いて、前記操作リクエストおよび前記ユーザ認証クレデンシャルをともに暗号化する工程をさらに含む。
【0007】
いくつかの実装では、前記ユーザ認証クレデンシャル暗号化工程の前に、前記データ処理ハードウェア上にて実行中の前記認証アプリケーションが、ユーザデバイスのアンロックチャレンジを前記ユーザに発行する工程をさらに備える。前記サービスアプリケーションによって発行された前記認証リクエストは、前記ユーザ認証クレデンシャルを取得する前に前記認証アプリケーションが前記サービスアプリケーションをバリデーションするために用いる認証トークンを含む。
【0008】
随意では、方法は、前記送信工程の後、前記データ処理ハードウェア上にて実行中の前記サービスアプリケーションにて、チャレンジリクエストを前記リモートエンティティから受信する工程をさらに備える。前記チャレンジリクエストは前記ユーザからの追加のユーザ認証クレデンシャルを要求する。方法はまた、前記データ処理ハードウェア上にて実行中の前記サービスアプリケーションが、前記認証アプリケーションを呼び出し、前記ユーザから前記追加のユーザ認証クレデンシャルを取得する工程と、前記データ処理ハードウェア上にて実行中の前記認証アプリケーションが、取得された前記追加のユーザ認証クレデンシャルを、前記リモートエンティティの前記公開鍵を用いて暗号化する工程と、を備えてよい。方法はまた、前記データ処理ハードウェア上にて実行中の前記認証アプリケーションが、暗号化された前記追加のユーザ認証クレデンシャルを前記サービスアプリケーションに提供する工程と、前記データ処理ハードウェア上にて実行中の前記サービスアプリケーションが、暗号化された前記追加のユーザ認証クレデンシャルを含むチャレンジレスポンスを前記リモートエンティティに送信する工程と、を備えてよい。前記チャレンジレスポンスは、前記リモートエンティティによって受信されたとき、前記リモートエンティティに暗号化された前記追加のユーザ認証クレデンシャルを、前記リモートエンティティの前記秘密鍵を用いて復号する工程と、復号された前記追加のユーザ認証クレデンシャルをバリデーションする工程と、を行わせる。
【0009】
いくつかの例では、前記リモートエンティティは、復号された前記ユーザ認証クレデンシャルと復号された前記追加のユーザ認証クレデンシャルとの両方をバリデーションした後、前記操作リクエストに基づいて操作を行うように構成されている。前記リモートエンティティは、復号された前記ユーザ認証クレデンシャルをバリデーションした後、電子決済を受取人に転送するように構成されてよい。
【0010】
いくつかの例では、方法は、前記データ処理ハードウェア上にて実行中の前記認証アプリケーションが、アイデンティティを前記ユーザデバイスに結合するユーザアイデンティティ結合工程をさらに備える。前記ユーザアイデンティティ結合工程は、サービス登録リクエストを、前記データ処理ハードウェア上にて実行中の前記サービスアプリケーションから受信する工程を含んでよい。前記サービス登録リクエストはユーザ識別情報およびサービスアプリケーション識別情報を含む。前記ユーザ識別情報は前記サービスアプリケーションに対し前記ユーザを一意に識別し、前記サービスアプリケーション識別情報は前記認証アプリケーションに対する前記サービスアプリケーションを一意に識別する。前記ユーザアイデンティティ結合工程は、デバイスバウンドキーペアを生成する工程も含んでよい。前記デバイスバウンドキーペアは、前記ユーザ識別情報および前記サービスアプリケーション識別情報に基づくデバイス公開鍵およびデバイス秘密鍵を備える。前記ユーザアイデンティティ結合工程は、前記デバイス秘密鍵を用いて前記サービスアプリケーション識別情報に署名する工程と、前記デバイス公開鍵および署名された前記サービスアプリケーション識別情報を前記リモートエンティティに送る工程と、を含んでよい。
【0011】
いくつかの実装では、方法は、前記データ処理ハードウェア上にて実行する前記認証アプリケーションが、前記ユーザおよび前記リモートエンティティに関連付けられているユーザ口座を前記ユーザデバイスと結合するユーザ口座結合工程をさらに備える。前記ユーザ口座結合工程は、前記デバイス秘密鍵により前記サービスアプリケーション識別情報に署名する工程と、署名された前記サービスアプリケーション識別情報を、前記データ処理ハードウェア上にて実行中の前記サービスアプリケーションに送る工程と、を含んでよい。署名された前記サービスアプリケーション識別情報は、前記サービスアプリケーションによって受信されたとき、前記サービスアプリケーションに、署名された前記サービスアプリケーション識別情報および口座識別情報を前記リモートエンティティに対し送らせる。前記口座識別情報は前記ユーザ口座を一意に識別する。
【0012】
いくつかの例では、方法は、前記サービスアプリケーションおよび前記認証アプリケーションが実行しているとき、前記データ処理ハードウェアが、1つまたは複数の追加のサービスアプリケーションを実行させる工程をさらに備える。各追加のサービスアプリケーションは、対応操作リクエストを受信する工程であって、前記対応操作リクエストは、前記追加のサービスアプリケーションが同一のリモートエンティティまたは異なるリモートエンティティにアクセスして対応する操作を行うことを要求するように構成されてよい。各追加のサービスアプリケーションは、対応認証リクエストを発行する工程であって、前記対応認証リクエストは、同一のリモートエンティティまたは異なるリモートエンティティが前記操作を行う前に、前記認証アプリケーションが前記ユーザを認証するために前記ユーザの前記ユーザ認証クレデンシャルを取得することを要求する、工程と、前記追加のサービスアプリケーションが前記ユーザ認証クレデンシャルを暗号化されていない形式にて取得することを制限するように、暗号化された前記ユーザ認証クレデンシャルを前記認証アプリケーションから受信する工程と、を行うように構成されてもよい。
【0013】
本開示の別の態様は、承諾アーキテクチャ内の認証操作のシステムを提供する。システムは、サービスアプリケーションと認証アプリケーションとを実行するユーザデバイスのデータ処理ハードウェアと、前記データ処理ハードウェアと通信するメモリハードウェアと、を備える。前記メモリハードウェアは、前記データ処理ハードウェア上における実行時、前記データ処理ハードウェアに動作を行わせる命令を記憶する。
【0014】
動作は、操作リクエストを取得する工程であって、前記操作リクエストは、前記サービスアプリケーションがリモートエンティティにアクセスして操作を行うことを要求する、工程を備える。前記操作リクエストは、前記リモートエンティティを識別するリモートエンティティ識別子と、前記操作に関連付けられている操作情報と、を含む。動作は、前記サービスアプリケーションが認証リクエストを発行する工程であって、前記認証リクエストは、前記リモートエンティティが前記操作を行う前に、前記認証アプリケーションが前記ユーザを認証するために前記リモートエンティティに関連付けられている前記ユーザデバイスのユーザのユーザ認証クレデンシャルを取得することを要求する工程も備える。動作は、前記サービスアプリケーションが前記ユーザ認証クレデンシャルを暗号化されていない形式にて取得することを制限するように、前記認証アプリケーションが、取得された前記ユーザ認証クレデンシャルを前記リモートエンティティの公開鍵を用いて暗号化する、ユーザ認証クレデンシャル暗号化工程も備える。動作は、前記認証アプリケーションが、暗号化された前記ユーザ認証クレデンシャルを前記サービスアプリケーションに提供する工程と、前記サービスアプリケーションが、前記リモートエンティティに対し、前記操作リクエストおよび暗号化された前記ユーザ認証クレデンシャルを送信する工程と、も備える。前記操作リクエストおよび暗号化された前記ユーザ認証クレデンシャルは、前記リモートエンティティによって受信されたとき、前記リモートエンティティに、暗号化された前記ユーザ認証クレデンシャルを、前記リモートエンティティの秘密鍵を用いて、復号する工程と、復号された前記ユーザ認証クレデンシャルをバリデーションする工程と、を行わせる。
【0015】
この態様は、以下の随意の特徴のうちの1つまたは複数を含んでよい。いくつかの実装では、前記サービスアプリケーションは、決済アプリケーションを含み、前記リモートエンティティは、前記ユーザに関連付けられている金融機関を含む。前記サービスアプリケーションが前記リモートエンティティにアクセスすることを要求する前記操作リクエストは、前記決済アプリケーションが前記金融機関から受取人への電子決済を開始することを要求する電子決済リクエストを含む。いくつかの例では、前記操作情報は、前記電子決済の明細、前記電子決済の値/金額、前記金融機関における前記ユーザに関連付けられている口座を識別する一意口座識別子の少なくとも一部、および前記受取人を識別する受取人識別子、のうちの1つ以上を含む。
【0016】
随意では、前記リモートエンティティは、前記ユーザに関連付けられている個人情報を記憶する記録データストアを備え、前記サービスアプリケーションが前記リモートエンティティにアクセスすることを要求する前記操作リクエストは、前記サービスアプリケーションが前記記録データストアから前記個人情報の少なくとも一部を取り出すことを要求する情報取出リクエストを含む。前記個人情報は、前記ユーザに関連付けられている個人記録を含む。いくつかの実装では、動作は、前記ユーザ認証クレデンシャル暗号化工程の後、前記認証アプリケーションが、暗号化された前記ユーザクレデンシャルを、前記リモートエンティティの検証ネットワークに関連付けられている公開鍵を用いて再び暗号化する工程をさらに備える。
【0017】
いくつかの例では、動作は、前記ユーザ認証クレデンシャル暗号化工程の後、前記認証アプリケーションが、暗号化された前記ユーザクレデンシャルを、前記ユーザデバイスの秘密鍵を用いて署名する工程をさらに備える。前記ユーザデバイスの公開鍵は、前記リモートエンティティに登録されていてよい。前記ユーザデバイスの前記公開鍵は、前記ユーザデバイスの前記秘密鍵に対応するとともに、暗号化された前記ユーザ認証クレデンシャルの署名を検証するために前記リモートエンティティによって用いられる。随意では、前記ユーザ認証クレデンシャル暗号化工程は、前記リモートエンティティの前記公開鍵を用いて、前記操作リクエストおよび前記ユーザ認証クレデンシャルをともに暗号化する工程をさらに含む。
【0018】
いくつかの実装では、動作は、前記ユーザ認証クレデンシャル暗号化工程の前に、前記認証アプリケーションが、ユーザデバイスのアンロックチャレンジを前記ユーザに発行する工程をさらに備える。前記サービスアプリケーションによって発行された前記認証リクエストは、前記ユーザ認証クレデンシャルを取得する前に前記認証アプリケーションが前記サービスアプリケーションをバリデーションするように用いる認証トークンを含む。
【0019】
随意では、動作は、前記送信工程の後、前記サービスアプリケーションにて、チャレンジリクエストを前記リモートエンティティから受信する工程をさらに備える。前記チャレンジリクエストは前記ユーザからの追加のユーザ認証クレデンシャルを要求する。動作はまた、前記サービスアプリケーションが、前記認証アプリケーションを呼び出し、前記ユーザから前記追加のユーザ認証クレデンシャルを取得する工程と、前記認証アプリケーションが、取得された前記追加のユーザ認証クレデンシャルを、前記リモートエンティティの前記公開鍵を用いて暗号化する工程と、を備えてよい。動作はまた、前記認証アプリケーションが、暗号化された前記追加のユーザ認証クレデンシャルを前記サービスアプリケーションに提供する工程と、前記サービスアプリケーションが、暗号化された前記追加のユーザ認証クレデンシャルを含むチャレンジレスポンスを前記リモートエンティティに送信する工程と、を備えてよい。前記チャレンジレスポンスは、前記リモートエンティティによって受信されたとき、前記リモートエンティティに暗号化された前記追加のユーザ認証クレデンシャルを、前記リモートエンティティの前記秘密鍵を用いて復号する工程と、復号された前記追加のユーザ認証クレデンシャルをバリデーションする工程と、を行わせる。
【0020】
いくつかの例では、前記リモートエンティティは、復号された前記ユーザ認証クレデンシャルと復号された前記追加のユーザ認証クレデンシャルとの両方をバリデーションした後、前記操作リクエストに基づいて操作を行うように構成されている。前記リモートエンティティは、復号された前記ユーザ認証クレデンシャルをバリデーションした後、電子決済を受取人に転送するように構成されてよい。
【0021】
いくつかの例では、動作は、前記認証アプリケーションが、アイデンティティを前記ユーザデバイスに結合するユーザアイデンティティ結合工程をさらに備える。前記ユーザアイデンティティ結合工程は、サービス登録リクエストを、前記サービスアプリケーションから受信する工程を含んでよい。前記サービス登録リクエストはユーザ識別情報およびサービスアプリケーション識別情報を含む。前記ユーザ識別情報は前記サービスアプリケーションに対し前記ユーザを一意に識別し、前記サービスアプリケーション識別情報は前記認証アプリケーションに対し前記サービスアプリケーションを一意に識別する。前記ユーザアイデンティティ結合工程は、デバイスバウンドキーペアを生成する工程も含んでよい。前記デバイスバウンドキーペアは、前記ユーザ識別情報および前記サービスアプリケーション識別情報に基づくデバイス公開鍵およびデバイス秘密鍵を備える。前記ユーザアイデンティティ結合工程は、前記デバイス秘密鍵を用いて前記サービスアプリケーション識別情報に署名する工程と、前記デバイス公開鍵および署名された前記サービスアプリケーション識別情報を前記リモートエンティティに送る工程と、を含んでよい。
【0022】
いくつかの実装では、動作は、前記認証アプリケーションが、前記ユーザおよび前記リモートエンティティに関連付けられているユーザ口座を前記ユーザデバイスと結合するユーザ口座結合工程をさらに備える。前記ユーザ口座結合工程は、前記デバイス秘密鍵により前記サービスアプリケーション識別情報に署名する工程と、署名された前記サービスアプリケーション識別情報を、前記サービスアプリケーションに送る工程と、を含んでよい。署名された前記サービスアプリケーション識別情報は、前記サービスアプリケーションによって受信されたとき、前記サービスアプリケーションに、署名された前記サービスアプリケーション識別情報および口座識別情報を前記リモートエンティティに対し送らせる。前記口座識別情報は前記ユーザ口座を一意に識別する。
【0023】
いくつかの例では、動作は、前記サービスアプリケーションおよび前記認証アプリケーションが実行しているとき、1つまたは複数の追加のサービスアプリケーションを実行させる工程をさらに備える。各追加のサービスアプリケーションは、対応操作リクエストを受信する工程であって、前記対応操作リクエストは、前記追加のサービスアプリケーションが同一のリモートエンティティまたは異なるリモートエンティティにアクセスして対応する操作を行うことを要求するように構成されてよい。各追加のサービスアプリケーションは、対応認証リクエストを発行する工程であって、前記対応認証リクエストは、同一のリモートエンティティまたは異なるリモートエンティティが前記操作を行う前に、前記認証アプリケーションが前記ユーザを認証するために前記ユーザの前記ユーザ認証クレデンシャルを取得することを要求する、工程と、前記追加のサービスアプリケーションが前記ユーザ認証クレデンシャルを暗号化されていない形式にて取得することを制限するように、暗号化された前記ユーザ認証クレデンシャルを前記認証アプリケーションから受信する工程と、を行うように構成されてもよい。
【0024】
本開示の1つまたは複数の実装の詳細は、添付の図面および以下の記載において説明される。他の態様、特徴、および利点は、記載および図面から、また特許請求の範囲から明らかとなる。
【図面の簡単な説明】
【0025】
【
図1】ユーザデバイスからのリモートエンティティに対するセキュアな認証を提供する、承諾アーキテクチャシステム用の一例としてのオーセンティケータの概略図。
【
図2】決済アプリケーションのセキュアな認証を提供する、
図1のオーセンティケータの概略図。
【
図4】プライベートデータストアに対するアクセスを有するリモートエンティティの概略図。
【
図5A】サービスアプリケーションを実行する、例としてのユーザデバイスの概略図。
【
図5B】サービスアプリケーションを実行する、例としてのユーザデバイスの概略図。
【
図6】
図1の認証アプリケーションおよびサービス登録リクエストの概略図。
【
図7】デバイスキーペアを生成するようにユーザに対しチャレンジを発行する、例としてのユーザデバイスの概略図。
【
図8A】口座選択を提供するサービスアプリケーションを実行する、例としてのユーザデバイスの概略図。
【
図8B】口座選択を提供するサービスアプリケーションを実行する、例としてのユーザデバイスの概略図。
【
図9】
図1の認証アプリケーションおよび口座登録リクエストの概略図。
【
図10】承諾アーキテクチャにおいて認証アプリケーションを提供する方法のための動作の例としての構成のフローチャート。
【
図11】本明細書に記載されるシステムおよび方法を実装するように用いられ得るコンピューティングデバイスの概略図。
【発明を実施するための形態】
【0026】
様々な図面における同様の参照符号は、同様の要素を示す。
サービスアプリケーション(リアルタイム決済(RTP)を行うためまたは機微情報にアクセスするためのアプリケーションなど)は、ユーザによって要求されているサービスを行う(またはそのサービスを可能にするもしくはそのサービスに参加する)リモートエンティティにユーザクレデンシャルを提供する必要があることが多い。そうしたクレデンシャル(ユーザ名、PIN番号、パスワード、指紋データなど)は、それ自身が機微情報である。悪意のある攻撃者が、悪意のあるサービスアプリケーションを通じてまたはセキュリティの欠陥/脆弱性を有する正当なサービスアプリケーションを通じてそうしたクレデンシャルにアクセスすることができる場合、その攻撃者は、認可されていない取引を行うこと、またはその特定のサービスアプリケーションだけでなく、ユーザが使用し得る他のサービスアプリケーションにも潜在的に関連する、認可されていないサービスを取得することができる場合がある。例えば、攻撃者は、個人健康記録にアクセスするユーザのデバイス上にて実行されるサービスアプリケーションにおけるセキュリティの脆弱性によりユーザのクレデンシャルを取得することができる場合、攻撃者は、それらのクレデンシャルを使用して、ユーザのデバイスにインストールされた決済アプリケーションにより、認可されていない金融取引を行うことも可能であり得る。第1のサービスアプリケーションによって実装される保護およびセキュリティ尺度は、第2のサービスアプリケーション(第1のサービスアプリケーションのデベロッパーが制御できない)がわずかにセキュアな手法により実装される場合、否定されるか、または効果が小さいことがある。
【0027】
それを考慮して、本発明は、1つまたは複数のサービスアプリケーションとともに実行する認証アプリケーションを提供する。後により詳細に説明されるように、認証アプリケーションは、サービスアプリケーションからのリクエストに応答して、ユーザのクレデンシャルを取得し、リモートエンティティ(要求するサービスアプリケーションに関連付けられている所望のサービスを行うまたは提供するための)の公開鍵を用いてそれらのクレデンシャルを暗号化し、それらの暗号化されたクレデンシャルをサービスアプリケーションに戻るように提供してよい。サービスアプリケーションは、それ自身が、ユーザからユーザクレデンシャルを取得するものではない。したがって、サービスアプリケーションがユーザのクレデンシャルにアクセスすることを防止する(サービスアプリケーションが、暗号化されたクレデンシャルを復号するのに必要なリモートエンティティの秘密鍵を有しないので)。したがって、攻撃者は、悪意のあるサービスアプリケーション、または別のサービスにおけるセキュリティの脆弱性を使用して、ユーザのクレデンシャルにアクセスすることおよびユーザのクレデンシャルを悪用することができない。
【0028】
さらに、このように同一の認証アプリケーションを使用する複数のサービスアプリケーションの性能は、様々なさらなる技術的利点を提供する。特に、そうした認証アプリケーションの使用は、セキュリティアップデートを行う、より迅速かつ容易な手法を可能にする。すなわち、認証アプリケーションをアップデートすることは、認証アプリケーションを使用するサービスアプリケーションのすべてについてアップデートされたセキュリティを提供する(各サービスアプリケーションおよびすべてのサービスアプリケーションに対するアップデートを行う必要があるのとは対照的に)。さらに、ユーザのデバイス上のメモリがより効果的に利用される。サービスアプリケーション自身が、デバイスのユーザインタフェースによりユーザのクレデンシャルを取得するためおよびそれらのクレデンシャルをセキュアにするための機能を有する必要がもはやないため、サービスアプリケーションのサイズは減少することとなる。この利点は、ますます多くのサービスアプリケーションが認証アプリを使用するにつれて増大する。
【0029】
本明細書における実装は、リモートエンティティ(例えば、金融機関)とともに用いるためにセキュアな認証をサービスアプリケーション(例えば、決済アプリケーション)に提供する認証アプリケーションを備える承諾アーキテクチャを提供するためのシステムに関する。操作リクエストをサービスアプリケーションから取得したとき、認証アプリケーションは、暗号化された認証クレデンシャルをサービスアプリケーションに提供する前に、デバイスとユーザとの両方が真正であることを検証する。サービスアプリケーションは、次いで、暗号化されたクレデンシャルをリモートエンティティに提供し、リモートエンティティはクレデンシャルを検証する。したがって、サービスアプリケーションは、暗号化されていないクレデンシャルを受信することはなく、ユーザは、いくつかのクレデンシャルを、用いられているサービスアプリケーションの数とは独立して、認証アプリケーションに一度しか提供し得ない。
【0030】
図1を参照すると、いくつかの実装では、一例としてのシステム100は、それぞれのユーザ12に関連付けられており、リモート認証システム110(本明細書において認証サーバとも呼ばれる)と、リモートサービスアプリケーションシステム120(本明細書においてサービスアプリケーションサーバとも呼ばれる)と、リモートエンティティシステム130(本明細書において単にリモートエンティティとも呼ばれる)と、とネットワーク40を通じて通信するユーザデバイス10を備える。ユーザデバイス10は、デスクトップワークステーション、ラップトップワークステーション、またはモバイルデバイス(すなわち、スマートフォン)などの、任意のコンピューティングデバイスに対応してよい。リモートシステム110,120,130は、単一のコンピュータ、複数のコンピュータ、またはスケーラブル/エラスティックコンピューティング資源(例えば、データ処理ハードウェア)および/またはストレージ資源(例えば、メモリハードウェア)を有する分散システム(例えば、クラウド環境)であってよい。
【0031】
ユーザ12に関連付けられているユーザデバイス10(例えば、携帯電話)は、関連付けられたメモリハードウェア20および関連付けられたデータ処理ハードウェア30を備えてよい。ユーザデバイス10は、メモリハードウェア20およびデータ処理ハードウェア30をテコ入れし、1つまたは複数のサービスアプリケーション140,140a-n(サービスアプリとも呼ばれる)を記憶し実行する。いくつかの例では、サービスアプリケーション140は、より詳細に以下に記載されるように、リアルタイムに支払人の口座(すなわち、ユーザ12のユーザ口座)から受取人への資金の移送を行う決済アプリケーションである。サービスアプリケーション140は、ユーザデバイス10上の、または、例えばウェブブラウザにおけるスタンドアローンプログラムとして実行されてよい。サービスアプリケーション140は、操作リクエスト142を取得し、受信し、および/または生成する。操作リクエスト142は、一般に、ユーザアクションに応答して生成される。例えば、サービスアプリケーション140が決済アプリケーションであるとき、ユーザ12は、決済アプリケーションにより資金の振替を試みることによって操作リクエスト142を開始してよい。いくつかの例では、サービスアプリケーション140は、ユーザ12からのコマンドに応答して操作リクエスト142を生成する。他の例では、サービスアプリケーション140は、ネットワーク40を通じてサービスアプリケーションサーバ120と通信し、サービスアプリケーションサーバ120は、操作リクエスト142を生成し、その操作リクエスト142をサービスアプリケーション140に送る。
【0032】
操作リクエスト142は、操作に関連付けられている追加の操作情報142bとともに、リモートエンティティ識別子142aを含む。リモートエンティティ識別子142aは、操作リクエスト142に関連付けられているリモートエンティティ130を識別する。例えば、リモートエンティティ識別子142aは、ユーザ12がサービスアプリケーション140に関連付けた金融機関の名称または他の一意識別子であってよい。操作情報142bは、操作を行うのに必要または有用な情報のホストを含んでよい(
図3)。例えば、操作リクエスト142が金融取引を伴うとき、操作情報142bは、金融決済、決済に関連付けられている任意の値または金額、リモートエンティティに関連付け有れているユーザの口座を識別する一意識別子の少なくとも一部、および/または受取人を識別する受取人識別子の記載を含んでよい。
【0033】
ユーザデバイス10はまた、認証アプリケーション150を実行する。本明細書において使用される際、認証アプリケーション150は、認証アプリ、認証アプリケーション、または認証アプリとも呼ばれ得る。認証アプリケーション150は、サービスアプリケーション140から認証リクエスト152を受信する。認証リクエスト152は、リモートエンティティ130が、操作リクエスト1402に関連付け有れている操作138を行う前にユーザ12を認証するように、認証アプリケーション150が、リモートエンティティ130に関連付けられているユーザ認証クレデンシャル154を取得することを要求する。
【0034】
ユーザ12は、1つまたは複数のリモートエンティティ130(例えば、金融機関)用のユーザクレデンシャル154を認証アプリケーション150に提供する。すなわち、ユーザ12は、リモートエンティティ130におけるユーザ12の口座137(
図2)にアクセスするのに必要なクレデンシャル154を、認証アプリケーション150に提供する。ユーザ12は、任意の数のリモートエンティティ130ごとに別々のクレデンシャル154を提供してよい。換言すると、ユーザは、任意の数のリモートエンティティ130を有する任意の数のユーザ口座を、認証アプリケーション150により「登録」してよい。ユーザクレデンシャル154は、ユーザ名およびパスワード、個人識別番号(PIN)、ワンタイムパスワード(OTP)、一意デバイスキー、またはリモートエンティティ130が認証または暗号による証明(すなわち、暗号的に検証されることが可能である請求)用に要求する任意の他のデータであってよい。いくつかの例では、ユーザ12は、リモートエンティティ130からの単一の口座を認証アプリケーション150により登録する。一方、他の例では、ユーザ12は、同時にリモートエンティティ130に関連付けられているすべての口座を登録する。
【0035】
それぞれのリモートエンティティ130についてのユーザ12からユーザクレデンシャル154を受信することに加えて、認証アプリケーション150は、それぞれのリモートエンティティ130に関連付けられている公開鍵132を取り出す。公開鍵132は、公開鍵暗号(非対称暗号とも呼ばれる)に用いられるキーペアにおける鍵のうちの一方を作成する。公開鍵暗号では、暗号アルゴリズムは秘密鍵および対応する公開鍵を生成する。秘密鍵および対応する公開鍵は、公開鍵により暗号化されたデータが、関連付けられた秘密鍵によってしか復号され得ないように、一方向性関数を生成する。この例では、リモートエンティティ130は、自身の公開鍵132をパブリックに提供し、関連付けられた秘密鍵133を隠しておく。したがって、ユーザクレデンシャル154が認証アプリケーション150によってリモートエンティティ130の公開鍵132を用いて暗号化されると、リモートエンティティ130(関連付けられた隠された秘密鍵133を有する)だけが、その暗号化されたクレデンシャル154を復号できる。このようにして、サービスアプリケーション140は、暗号化されていない形式のユーザ認証クレデンシャル154を取得するのを制限される。
【0036】
ユーザ認証クレデンシャル154を暗号化することに加えて、認証アプリケーション150は、随意で、クレデンシャル154を伴う追加の情報155を暗号化する。例えば、認証アプリケーション150は、現在のタイムスタンプおよび暗号化されたパッケージ156を形成するための一意識別などの他の情報とともに、追加の取引の詳細(例えば、取引金額、口座識別、明細など)を暗号化してよい。以下により詳細に説明されるように、この追加の情報155は、追加の認証および操作の検証を提供する役割を果たしてよい。
【0037】
認証アプリケーション150は、暗号化されたユーザパッケージ156をサービスアプリケーション140に提供する。前に説明されたように、サービスアプリケーション140には、リモートエンティティ130の秘密鍵133(すなわち、ユーザクレデンシャル154を暗号化するのに用いられる公開鍵132に関連付けられている鍵)がなく、したがって、暗号化されていないクレデンシャル154にアクセスすることができない。サービスアプリケーション140は、操作リクエスト142(ここでは暗号化されたパッケージ156を含む)をリモートエンティティ130に送信する。リモートエンティティ130は、受信された操作リクエスト142からのパッケージ156(暗号化されたクレデンシャル154を含む)を、関連付けられている秘密鍵133を用いてリクエスト復号器134により復号し、復号されたクレデンシャル154をクレデンシャルバリデータ136によりバリデーションする。
【0038】
図2を参照すると、いくつかの実装では、システム100は、ユーザ12に関連付けられている金融機関(Financial Institution)130Fを含むリモートエンティティ130と、決済アプリケーション140Pを含むサービスアプリケーション140とを備える。この場合、操作リクエスト142は、決済アプリケーション140Pが金融機関から受取人への電子決済を開始することを要求する電子決済リクエスト142Pである。例えば、ユーザデバイス10は、決済アプリケーション140Pに、資金を受取人に移送することを始めさせてよい。決済アプリケーション140Pは、典型的には、受取人のアイデンティティ、取引の金額、およびユーザ12が資金を引き出したい口座などの操作情報142bを求める。ユーザ12からの決済確認(例えば、ユーザ12が「決済を確認」ボタン210を押すこと)によって、決済アプリケーション140Pから認証アプリケーション150への認証リクエスト152を開始してよい。
【0039】
リアルタイム決済ネットワーク220(本明細書において検証ネットワークとも呼ばれる)は、いくつかの中央当局(例えば、国の政府)によって、銀行間リテール決済を行うように維持される。すなわち、RTPネットワークは、クレジットカード操作との交換および決済を扱うクレジットカードネットワークと同様に、クリアリングハウスとして作用し、イシュア間の資金を清算してよい。例えば、インドは、リアルタイム銀行間決済システムである即時決済サービスを含むインドの国内決済を維持する。同様に、メキシコは、メキシコにおける即時決済サービスを維持するようにメキシコ銀行(Banxico)を操作する。一般に、リアルタイム決済は、決済が承認される前に、RTPネットワークによって検証されおよび/または認証される必要がある。いくつかの例では、中央当局(例えば、政府)はRTPネットワークを提供せず、代わりにすべての検証および認証が個々の金融機関に任せられる。RTPネットワークおよび/または金融機関は、アプリケーションプログラミングインタフェース(API)を介してRTPネットワークにアクセスを提供することが多い。例えば、いくつかのRTPネットワークは、決済開始サービスプロバイダ(PISP)APIを提供する。
【0040】
引き続き
図2を参照すると、リアルタイム決済ネットワーク(RTPネットワーク)220は、ネットワーク40と通信してよい。決済アプリケーション140Pは、APIを介してネットワーク220に対するアクセスを有するとともに決済を開始することができる非金融機関であってよい。決済アプリケーション140Pは、いくつかの例では、スタンドアローンアプリケーションであり、他の例では、ウェブブラウザにおいて実行される。いくつかの実装では、決済アプリケーション140Pは、暗号化されたパッケージ156を認証アプリケーション150から受信した後に、パッケージ156を決済アプリケーションサーバ120P(または単に「決済サーバ120P」)に決済リクエスト142Pとともに送る。決済アプリケーションサーバ120Pは、決済アプリケーション140PからRTPネットワーク220へのリクエストを中継するコンピューティングエンティティである。決済サーバ120Pは、典型的には、RTPネットワーク220によって認証される。すなわち、決済サーバ120Pは、RTPネットワーク220に、サーバ120Pが、承認された決済アプリケーション140Pに対しサービスを提供している本物のサーバであることを示す必要がある。認証されると、決済サーバ120Pは、受信されたパッケージ156およびリクエスト142PをRTPネットワーク220に転送する。
【0041】
以下により詳細に説明されるように、RTPネットワーク220は、取引を承認する前に、1組のバリデーションを行ってよい。これらのバリデーションは、金融機関130Fが要求する任意のバリデーションに対する追加であってよい。RTPネットワーク動作をセキュアにするように、認証アプリケーション150は、RTPネットワーク公開鍵222を用いて、クレデンシャル154のいくつかまたはすべてを暗号化してよい。リモートエンティティ公開鍵132(すなわち、金融機関130Fの公開鍵)と同様に、RTPネットワーク公開鍵222は、公開鍵暗号に用いられる1組の鍵のうちの一方であってよく、一方で、RTPネットワークは、関連付けられている秘密ネットワーク秘密鍵224を保持する。いくつかの実装では、ネットワーク220は、RTPネットワーク220の信頼性を確立するように用いられる別々のマスター署名鍵を有する。この鍵によって署名されたすべてのデータは、対応するマスター公開鍵を用いて検証されてよい。例えば、認証アプリ150は、DH鍵の信頼性を検証するように、マスター署名鍵225によって署名されたネットワーク220からディフィーヘルマン(DH)鍵を受け取ってよい。マスター公開鍵は、非常に長い有効期限を有し得るように、認証アプリ150へとハードコードされてよい。ユーザクレデンシャル154のいくつかまたはすべては、リモートエンティティ鍵132およびネットワーク鍵222の一方または両方を用いて暗号化されてよい。クレデンシャル154が両方を用いて暗号化されたとき、RTPネットワーク220は、リモートエンティティ130がパッケージ156のその部分を復号し、その部分にアクセスし得るように、パッケージ156およびリクエスト142Pをリモートエンティティ130へと転送する前に、ネットワーク秘密鍵224を用いて暗号化されたパッケージ156を復号してよい。
【0042】
金融機関130Fが決済リクエスト142PをRTPネットワーク220、決済アプリケーションサーバ120Pのいずれかから、または、いくつかの例では、決済アプリケーション140Pから直接受信した後、金融機関130Pは、操作リクエスト142内に含まれる任意の操作情報142bをバリデーションする。例えば、金融機関130Fは、操作リクエスト142からの操作情報142b(例えば、取引金額、口座識別情報など)が、認証アプリケーション150によって暗号化された追加の情報155と一致することをバリデーションしてよい。いくつかの例では、金融機関140Fは、アクセスされている口座に関連付けられている電話番号に一致するリクエストを送るモバイルデバイスに関連付けられている電話番号を検証する。金融機関140Fが所望する場合(例えば、取引が疑わしい場合)、金融機関は、追加のユーザ認証クレデンシャル154をユーザ12にリクエストする1つまたは複数のチャレンジリクエスト144を発行してよい。金融機関130Fからの任意のチャレンジリクエスト144は、RTPネットワーク220を通じて決済サーバ120P、決済アプリケーション140Pに戻るように、最終的に認証アプリ150に戻るように転送されてよい。ここで、認証アプリ150は、チャレンジリクエスト14をチャレンジレスポンス157(
図2)により満足させるように、ユーザ12から取得された追加のユーザ認証クレデンシャル154を取得し、暗号化してよい。金融機関140Fは、同様に、暗号化された追加のユーザ認証クレデンシャル154をチャレンジレスポンス157から復号し、チャレンジリクエストを満足させるように、復号された追加のユーザ認証クレデンシャル154をバリデーションする。金融機関130Fが取引を受け入れると、資金は移送され、金融機関130Fは、肯定応答をRTPネットワーク220に戻るように受け渡してよい。その結果、ユーザ12に通知212として戻るように流れる。例えば、決済アプリケーション140Pは、成功の視覚的指示を表示してよく、および/または聴覚的メッセージを再生してよい。
【0043】
先の例のコンテキストでは、サービスアプリケーション140は決済アプリケーション140Pとして記載され、リモートエンティティ130は金融機関130Fとして記載されたが、認証アプリケーション150は、ユーザ12が機微情報を信頼できない第三者アプリケーションによりリモートエンティティに移送する任意の状況において適用可能である。例えば、ユーザ12は、記録(リモートエンティティが秘密を保持する義務を有する個人記録)または個人的記録データストアからのユーザに関連付けられている他の個人情報について、クリアテキスト/プレーンテキストにおけるユーザクレデンシャル154を晒すことなく、ユーザクレデンシャル154を情報取出リクエスト142Rを開始してよい。これより
図4を参照すると、いくつかの実装では、認証アプリケーション150は、ユーザクレデンシャル154を暗号化し、ユーザ12に関連付けられている個人情報420を記憶している個人記録データストア410に対するアクセスを可能にする個人データストア410は、機微情報(例えば、健康記録)のオンラインレポジトリであってよい。リモートエンティティ130は、情報取出リクエスト142Rをサービスアプリケーション140から受信した後、暗号化されたパッケージ156をリクエスト復号器にて復号し、復号されたクレデンシャル154Dを取得し、クレデンシャルをクレデンシャルバリデータ136にてバリデーションする。バリデーションが成功した後、リモートエンティティ130は、1つまたは複数のユーザ記録420を、個人情報を記憶する個人記録データストア410から取り出す。リモートエンティティは、取り出された記録をユーザデバイスを介してユーザ12に返してよい。または、認可された場合には、その記録を第三者に移送してよい。例えば、ユーザ12は、個人記録会社が、記録(例えば、社会保障番号)を取得するのに必要な任意の情報を学習するサービスアプリケーション140なしに、記録を必要としている機関に個人記録を移送することを認可してよい。
【0044】
認証アプリケーション150、サービスアプリケーション140、ネットワーク220、およびリモートエンティティ130は、いくつかの実装では、すべてのアプリケーション工程にて1組の標準バリデーションを行うことによって、セキュアな環境を提供する。例えば、認証アプリ150がサービスアプリ140からリクエストを受信するたびに、認証アプリ150は、サービスアプリ識別情報(ID)(例えば、サービスアプリ140を一意に識別する識別情報)および/またはサービスアプリ140からの認可証明書もしくはいくつかの他の形式の認可トークン153を検証してよい。サービスアプリ140は、サービスアプリサーバ120と通信するたびに、サーバの証明書を検証してよい(例えば、x509証明書署名により)。サービスアプリサーバ120は、いくつかの例では、サービスアプリユーザを認証し、標準的なバリデーションとして相互セキュアソケッツレイヤ(SSL)またはプリティグッドプライバシ(PGP)暗号化を用いて、ネットワーク220に対し認証する。
【0045】
ネットワーク220は、サービスアプリサーバ120からリクエストを受信するたびに、様々なチェックを行ってよい。例えば、ネットワーク220は、相互SSLまたはPGP暗号化を用いてサービスアプリサーバ120を認証してよい。ネットワーク220は、認証アプリ150からのデータをネットワーク秘密暗号鍵224を用いて復号してよい。ネットワーク220は、認証アプリ150からの任意の署名されたメッセージの署名を検証してもよい(例えば、ユーザデバイス10(
図6)の公開鍵により)。いくつかの実装では、ネットワーク220は、サービスアプリIDが、サービスアプリサーバによって提供されたIDに一致していることを確実にし、また、認証アプリ150によって行われた任意の認証が、例えば、認証アプリ150によって捕捉されたタイムスタンプを現在時刻と比較することによって最近であることを確実にする。ネットワーク220は、十分に古い任意の操作を無効化してよい(例えば、リプレイ攻撃を防止するため)。随意で、ネットワーク220は、承諾アーキテクチャおよび関連付けられているサービスアプリIDにアクセスすることを認可されたすべてのサービスアプリケーション140のホワイトリストを維持する。ネットワーク220は、サーバ認証に対する適切なサーバ用のホワイトリストに登録されたサービスアプリケーションに対応するサーバの公開鍵のリポジトリを維持してよい。
【0046】
いくつかの実装では、ユーザ12は、ユーザデバイス10および認証アプリケーション150を、使用前にサービスアプリケーション140により登録しまたは初期化する。この登録は、デバイス10と、ユーザ12のデジタル識別情報(サービスアプリケーション140により共有され得る)およびユーザ12の実際の識別情報(リモートエンティティ130またはネットワーク220により共有され得る)との間の強固な結合を提供する。いくつかの例では、認証アプリケーション150は、信頼されたアプリである。すなわち、認証アプリケーション150は、ネットワーク220および/またはリモートエンティティ130によって信頼されており、検証されたユーザ情報のアサーションを提供する。
【0047】
これより
図5Aを参照すると、サービスアプリケーション140の登録は、典型的には、ユーザ12からのリクエストにより(例えば、ユーザ入力52をサービスアプリケーション内において作動させることにより)開始する。サービスアプリケーション140は、電話番号、一意識別子、および/またはサービスアプリケーション140が認証のために所望する任意の他のユーザ情報などの様々なユーザ情報504を収集する(
図5B)。いくつかの例では、サービスアプリケーション140は、サービスアプリケーションサーバ120によりユーザ情報504を検証する。一方、他の例では、サービスアプリケーション140は、事前検証された情報をすでに有する。例えば、いくつかのサービスアプリケーション140は、いくつかのユーザについての事前検証された電話番号をすでに有する。いくつかの応用では、サービスアプリケーション140は、識別情報、または、例えば、中央データベースにクエリすることによって検証され得る識別する情報を収集してよい。
【0048】
これより
図6を参照すると、ユーザ情報94を収集し検証した後、サービスアプリケーション140は、アプリケーション登録情報604,604a-cを含むサービス登録リクエスト602を送ることによって、認証アプリ150を呼び出す。この情報604は、認証アプリ150が登録を検証し認証するように用いるデータを提供する。例えば、登録情報604は、サービスアプリケーションID604a、サービスアプリ140名前空間(すなわち、サービスアプリ140の他のユーザが同一のユーザIDを有する)におけるユーザ12を一意に識別するユーザ識別情報(ユーザID)604b、および承諾識別情報ノンスを含んでよい。サービスアプリケーションID604aは、サービスアプリケーション140が認可されたアプリケーションであることを検証するように用いられてよい。承諾識別情報ノンス604cは、リプレイ攻撃に対処するように用いられてよい。認証アプリケーション150は、以下に説明されるように、一意のユーザ固有の鍵を生成するようにユーザID604bを用いる。
【0049】
認証アプリ150は、サービス登録リクエスト602を受信し、また上に説明されたように、1組の標準バリデーションを行ってよい。認証アプリ150は、デバイス10のアイデンティティを一意に示すように用いられる一意デバイスキーペア606を生成する。キーペアの秘密鍵606Rは、デバイス内(メモリハードウェア20内)のセキュア要素615に記憶される。一方、対応する公開鍵606Uは、パブリックに(例えば、ネットワーク220および/またはリモートエンティティ130)提供される。セキュア要素616は、任意のユーザまたはデバイス10のアプリケーションが秘密鍵606Rに対するアクセスを得ることができないことを確実にする。認証アプリ150は、サービスアプリケーションID604a、ユーザID604b、および一意デバイス情報(例えば、シリアル番号など)を用いてデバイス鍵606を生成してよい。このようにして、認証アプリケーション150は、各サービスアプリケーション140の各ユーザについての一意デバイスキー606を生成する。
【0050】
これより
図7を参照すると、いくつかの例では、秘密鍵606Rの使用は、ユーザチャレンジ704によって保護される。例えば、ユーザデバイス10が秘密鍵606Rによりメッセージに署名する前に(すなわち、メッセージを認証するように)、ユーザデバイス10は、ユーザ12がパスワードを入力するまたはユーザを認証するのに使用可能である別の識別子を提供するように促してよい。したがって、メッセージは、ユーザおよびデバイス両方の認証の2つを固有に示すデバイス秘密鍵606Rによって署名される。
【0051】
戻って
図6を参照すると、認証アプリ150は、いくつかの実装では、サービスアプリ識別情報604a、承諾ノンス604c、および/またはデバイス秘密鍵606Rによるサービスアプリケーション140の任意の証明書を含むサービス登録レスポンス608に署名する。これらの鍵による証明は、デバイスの完全性と鍵606の長さおよび特性とをバリデーションするように、ユーザデバイス10のオペレーティングシステムによって提供されてよい。認証アプリ150は、署名されたレスポンス608(署名されたサービスアプリケーション識別情報604aを含む)を、サービスアプリサーバ120(
図1)により登録リクエストを開始するサービスアプリ140に返す。サービスアプリサーバ120は、登録リクエストを、いくつかの例ではネットワーク220により、また他の例ではリモートエンティティ130により開始する。サービスアプリサーバ120は、サービスアプリケーション140によりユーザ12を一意に識別する一意ユーザID604b(または一意ユーザID604bの一意の派生、例えばハッシュ)を、ネットワーク220(またはリモートエンティティ130)に送る。他の検証情報(例えば、電話番号、一意識別子、デバイス公開鍵606Uなど)も送られてよい。
【0052】
ネットワーク220またはリモートエンティティ130は、登録リクエストを受信した後、上に説明された1組の標準バリデーションを行ってよく、デバイス鍵606Rの特性を検証する。ネットワーク220またはリモートエンティティ130は、成功したバリデーションに応答して、ユーザ12、サービスアプリ140、およびデバイス10間の関連を含むプロフィールID610を生成し(例えば、サービスアプリケーションID604a、ユーザID604b、検証された電話番号、一意識別子などを用いて)、プロフィールID610を、プロフィールID610を記憶するサービスアプリサーバ120に送り戻し、したがって、ユーザ登録を完了させる。サービスアプリ140は、ユーザ12に成功した登録の確認を提供してよい。ユーザ登録は、ネットワーク220および/またはリモートエンティティ130が、サービスアプリ140によって定められたデジタルアイデンティティが妥当なユーザ情報604(例えば、検証された電話番号)を所持し、ユーザデバイス10を所持し、また登録に承諾されたことを確実に確立することを可能にしている。サービスアプリサーバ120は、ユーザ12をサービスアプリ140に関連付けるプロフィールIDおよびユーザ情報604を記憶している。認証アプリ150は、ユーザ12と証明として用いられ得るサービスアプリ140とに固有である生成されたデバイス鍵606を記憶している。
【0053】
サービスアプリ140によるユーザ登録の後、ユーザ12は、いくつかの実装では、リモートエンティティ130に口座を登録し、ユーザデバイス10、プロフィールID610、および関連付けられた口座の間の結合を確立する。これより
図8Aを参照すると、ユーザ12は、ユーザ入力指示802を提供する(例えば、デバイス10上にて実行するグラフィカルユーザインタフェース上に表示されたグラフィカル要素を選択する)ことによって、口座登録リクエスト902(
図9)を生成する。サービスアプリ140は、ユーザ12が選択するようにグラフィカルユーザインタフェースに表示するための妥当な機関リスト804(
図8B)を提供することによって、応答してよい。リスト804は、サービスアプリサーバ120またはネットワーク220から周期的にフェッチされてよく、名称、ロゴなどのメタデータを含んでよい。リスト804は、ユーザデバイス10のメモリハードウェア20上に、周期的なアップデートの間キャッシュされてよい。ユーザ12は、リスト804から選択するように、接触、スタイラス、発言、身振り、または任意の他の入力機構を用いて、および/または、口座登録リクエスト902を開始するための入力指示802を提供して、入力指示を提供してよい。
【0054】
これより
図9を参照すると、いくつかの実装では、サービスアプリ140は、口座登録リクエスト902を認証アプリ150に送ることによって、認証アプリ150からのデバイス所有権の検証を要求する。口座登録リクエスト902は、少なくともユーザID604bを含む。認証アプリ150は、口座結合リクエスト(すなわち、口座登録リクエスト902)が、関連付けられているユーザ登録(
図6参照)を行った同一のデバイス10から生じたことを保証する、上述の標準バリデーションを行ってよい。認証アプリ150は、例えば、サービスアプリ140の識別子および現在のタイムスタンプを含む口座登録レスポンス908に署名し(
図6に示されるように、デバイス鍵606Rにより)、デバイス所持のファクタを確立する。認証アプリ150は、いくつかの例では、知識または固有の第2のファクタを確立するように、チャレンジ702をユーザに対しさらに発行する(
図7)。署名された口座登録レスポンス908は、サービスアプリ140に返される。
【0055】
サービスアプリ140は、いくつかの実装では、例えば、サービスアプリケーションサーバ120により、署名されたレスポンス908、プロフィールID610、およびリモートエンティティ130の識別情報(ネットワーク220に送るとき)を送ることによって、ネットワーク220またはリモートエンティティ130がユーザ12の関連付けられた口座をリストに登録することを要求する。ネットワーク220またはリモートエンティティ130は、自身の標準バリデーションを行ってよく、任意のアプリケーションユーザ情報604(例えば、検証された電話番号、一意識別子など)を検証する。いくつかの例では、ネットワーク220は、利用可能な口座(すなわち、ユーザ12に属する口座)をリストに登録するようにリクエストとともに、任意の必要な識別情報データ(例えば、電話番号または一意識別子)をリモートエンティティ130に渡す。リモートエンティティ130は、口座リスト910をサービスアプリサーバ120に戻すように返してよい。これによって、口座リスト910は、識別情報データに基づいてユーザに関連付けられる。口座リスト910は、口座に関連付けられている名前、口座名、口座参照ID、および一意口座識別子の少なくとも一部(例えば、口座番号の下4桁)などの、追加のメタデータ911を含んでよい。随意では、リモートエンティティ130は、この時点で追加のチャレンジ920を発行することが可能である。例えば、リモートエンティティ130は、ワンタイムパスワード(ショートメッセージサービス(SMS)、電子メール、ハードウェアベースなどにより)、パスワードまたは個人識別番号(PIN)、固有の口座の詳細などを要求してよい。いくつかの実装では、そうしたチャレンジは、1つのファクタが一致した場合にトリガが行われるが、異なるファクタでは行われない。例えば、ユーザの外部のデータベースからの識別情報(例えば、一意識別子)が一致するが、電話番号が一致しない。これによって、「イエローパス(Yello Path)」認証(すなわち、追加の検証を必要とする認証)を開始してよい。チャレンジは、追加のセキュリティのために暗号化されてよい。例えば、チャレンジは、DH鍵交換からのセッション鍵を用いて暗号化されてよい。
【0056】
サービスアプリサーバ120は、口座リスト910を、ユーザ12に表示するためのユーザデバイス10上にて実行するサービスアプリ140に中継する。いくつかの実装では、ユーザ12は、ユーザ12に関連付けられている口座リスト910から特定の口座を選択する。ユーザ12は、いくつかの実装では、すべての利用可能な口座を選択する。サービスアプリ140は、認証アプリ150からデバイス所有者を再び検証してよく、リモートエンティティ130からのチャレンジを満足させる任意のデータを捕捉してよい。この場合、サービスアプリ140は、チャレンジデータを暗号化するように、ユーザID604bおよび署名されたリモートエンティティ暗号鍵を渡してよい。任意の標準バリデーションを再び行った後、認証アプリ150は、ユーザにチャレンジを送り(例えば、ユーザがユーザデバイスをアンロックすること、パスワードを入力することなどを要求する)、所持を確認し、リモートエンティティから任意のチャレンジデータを発行する。認証アプリ150は、任意のチャレンジ結果、現在のタイムスタンプ、およびサービスアプリIDを、リモートエンティティ130鍵により暗号化し、暗号化されたチャレンジレスポンス930に署名する。
【0057】
認証アプリ150は、署名され暗号化されたレスポンス930を、サービスアプリ140に渡し、そのレスポンス930と結合リクエスト940とをサービスアプリサーバ120に渡す。サービスアプリサーバ120は、データをプロフィールID610、リモートエンティティID、および必要な口座ID909(すなわち、選択された口座を一意に識別する識別情報)とともに、ネットワーク220またはリモートエンティティ130に渡す。サービスアプリサーバ120は、関連IDを生成し、口座結合を表すとともに、さらにこのID912をネットワーク220/リモートエンティティ130に渡す。リモートエンティティ130は、結合リクエスト940を受信し(ネットワーク220またはサービスアプリサーバ120のいずれかから)、任意のチャレンジデータを復号し検証する。リモートエンティティ130は、次いで、選択された口座と関連IDによって表されたデバイス公開鍵606Uとの間の結合960を記憶する。リモートエンティティ130は、取引中の認証(例えば、イエローパス、グリーンパス(green path)など)を手伝うように、任意の発行されたチャレンジに関する任意の詳細に注目してよい。リモートエンティティ130が、将来の取引の前にまたは将来の取引中にデバイス証明を検証することができるように、リモートエンティティは、デバイス公開鍵606Uを記憶してよい。
【0058】
したがって、口座登録中、リモートエンティティ130は、リモートエンティティ口座IDと関連ID912によって表されたデバイス公開鍵606Uとの間の結合960を記憶する。認証アプリ150は、この結合を表すキーペア606を登録している。キーペアの秘密鍵606Rによって署名された任意の特徴証明は、デバイス所持のプルーフと固有の第2のファクタを提供する。サービスアプリサーバ120は、結合に関する様々なデータを記憶する。例えば、サービスアプリサーバ120は、関連ID、リモートエンティティ口座メタデータ、プロフィールID610、ユーザID604b、およびデバイスIDを記憶してよい。このようにして、認証アプリ150は、ネットワーク220およびリモートエンティティ130が、任意のデータがユーザ登録中に登録されたデバイス上にて捕捉されたことを検証できることを同時に保証しながら、ネットワーク220およびリモートエンティティ130にデータをセキュアに渡す。
【0059】
図10は、承諾アーキテクチャ内の認証操作の方法のための動作の例としての構成のフローチャートである。方法1000は、サービスアプリケーション140と認証アプリケーション150とを実行するユーザデバイス10のデータ処理ハードウェア30にて、操作138を行うようにサービスアプリケーション140がリモートエンティティ130にアクセスすることを要求する操作リクエスト142を取得することにより、動作1002にて開始する。操作リクエスト142は、リモートエンティティ130を識別するリモートエンティティ識別子142aと操作138に関連付けられている操作情報142bとを含む。動作1004にて、方法1000は、データ処理ハードウェア30上にて実行するサービスアプリケーション140が、リモートエンティティ130が操作138を行う前に、ユーザ12を認証するために、認証アプリケーション150がリモートエンティティ130に関連付けられているユーザデバイス10のユーザ12のユーザ認証クレデンシャル154を取得することを要求する認証リクエスト152を発行することを含む。
【0060】
動作1006にて、方法1000は、データ処理ハードウェア30上にて実行する認証アプリケーション150が、取得されたユーザ認証クレデンシャル154をリモートエンティティ130の公開鍵132を用いて暗号化することを含む。サービスアプリケーション140は、暗号化されていない形式のユーザ認証クレデンシャル154を取得するのを制限される。動作1008にて、方法1000は、データ処理ハードウェア30上にて実行する認証アプリケーション150が、暗号化されたユーザ認証クレデンシャル154をサービスアプリケーション140に提供することを含む。動作1010にて、方法1000は、データ処理ハードウェア30上にて実行するサービスアプリケーション140が、リモートエンティティ130に対し、操作リクエスト142を送信することを含む。操作リクエスト142は、暗号化されたユーザ認証クレデンシャル154を含む。操作リクエスト142は、リモートエンティティ130によって受信されたとき、リモートエンティティ130に、暗号化されたユーザ認証クレデンシャル154を、リモートエンティティ130の秘密鍵133を用いて、復号することと、復号されたユーザ認証クレデンシャル154をバリデーションすることと、を行わせる。
【0061】
図11は、本明細書に記載のシステムおよび方法を実装するために用いられ得る一例のコンピューティングデバイス1100の概略図である。コンピューティングデバイス1100は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなど、様々な形態のデジタルコンピュータを表すことが意図される。ここに示したコンポーネント、それらの接続および関係、ならびにそれらの機能は、例示的な意味でしかなく、本開示において記載され特許を請求される発明の実装を限定することを意味するものではない。
【0062】
コンピューティングデバイス1100は、プロセッサ1110、メモリ1120、ストレージデバイス1130、メモリ1120および高速拡張ポート1150に接続する高速インタフェース/コントローラ1140、ならびに低速バス1170およびストレージデバイス1130に接続する低速インタフェース/コントローラ1160を備える。コンポーネント1110,1120,1130,1140,1150,および1160の各々は、様々なバスを用いて相互接続されており、共通のマザーボード上に、または他の適切な手法により、取り付けられてよい。プロセッサ1110は、高速インタフェース1140に結合されているディスプレイ1180などの外部入力/出力デバイス上にグラフィカルユーザインタフェース(GUI)用のグラフィック情報を表示するためにメモリ1120にまたはストレージデバイス1130上に記憶されている命令を含む、コンピューティングデバイス1100内における実行用の命令を処理することが可能である。他の実装では、適宜、複数のメモリおよびメモリ種類に加えて、複数のプロセッサおよび/または複数のバスが用いられてよい。また、複数のコンピューティングデバイス1100が接続され、各デバイスが必要な動作の一部分を提供してよい(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)。
【0063】
メモリ1120は、コンピューティングデバイス1100内に情報を非一時的に記憶する。メモリ1120は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットであってよい。非一時的なメモリ1120は、コンピューティングデバイス1100による使用のため、プログラム(例えば、命令のシーケンス)またはデータ(例えば、プログラム状態情報)を一時的にまたは永続的に記憶するために用いられる物理デバイスであってよい。不揮発性のメモリの例は、次に限定されないが、フラッシュメモリおよび読出専用メモリ(ROM)/プログラマブル読取専用メモリ(PROM)/消去可能プログラマブル読取専用メモリ(EPROM)/電子的に消去可能なプログラマブル読取専用メモリ(EEPROM)(例えば、ブートプログラムなどの典型的にはファームウェアに用いられる)を含む。揮発性メモリの例は、次に限定されないが、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、およびディスクまたはテープを含む。
【0064】
ストレージデバイス1130は、コンピューティングデバイス1100にマスストレージを提供することができる。いくつかの実装では、ストレージデバイス1130はコンピュータ可読媒体である。様々な異なる実装では、ストレージデバイス1130は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光学ディスクデバイス、もしくはテープデバイス、フラッシュメモリまたは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他の構成におけるデバイスを含むデバイスのアレイであってよい。追加の実装では、コンピュータプログラム製品は情報キャリアにより有形に具体化される。コンピュータプログラム製品は、実行時に上述のものなどの1または複数の方法を行う、命令を含む。情報キャリアは、メモリ1120、ストレージデバイス1130、またはプロセッサ1110上のメモリなどの、コンピュータ可読媒体または機械可読媒体である。
【0065】
高速コントローラ1140がコンピューティングデバイス1100用の帯域幅集約的な動作を管理する一方、低速コントローラ1160は、より帯域幅集約的でない動作を管理する。そうした役割の割当は単に例示に過ぎない。いくつかの実装では、高速コントローラ1140は、メモリ1120、ディスプレイ1180(例えば、グラフィックスプロセッサまたはアクセラレータを通じて)、および高速拡張ポート1150(様々な拡張カード(図示せず)を受け入れることができる)に結合されている。いくつかの実装では、低速コントローラ1160は、ストレージデバイス1130および低速拡張ポート1190に結合されている。様々な通信ポート(例えば、USB、BLUETOOTH(登録商標)、イーサネット(登録商標)、無線イーサネット)を含み得る低速拡張ポート1190は、1または複数の入力/出力デバイス(キーボード、ポインティングデバイス、スキャナなどの)またはネットワークデバイス(スイッチもしくはルータなどの)に対し、例えば、ネットワークアダプタを通じて、結合されてよい。
【0066】
コンピューティングデバイス700は、図に示すように、多くの異なる形式により実装されてよい。例えば、1つの標準的なサーバ1100aとして実装されてよく、そうしたサーバ1100aのグループにより複数回実装されてよく、ラップトップコンピュータ1100bとして、またはラックサーバシステム1100cの一部として実装されてよい。
【0067】
本明細書に記載のシステムおよび技術の様々な実装は、デジタルな電子回路および/または光回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせにより実現可能である。それらの様々な実装は、ストレージシステムと、1つ以上の入力デバイスと、1つ以上の出力デバイスとの間においてデータおよび命令を送受信するように結合されている、専用または汎用であり得る1つ以上のプログラム可能なプロセッサを備えるプログラム可能なシステム上において実行可能および/または解釈可能である、1つまたは複数のコンピュータプログラムによる実装を含むことが可能である。
【0068】
ソフトウェアアプリケーション(すなわち、ソフトウェアリソース)は、コンピューティングデバイスにタスクを行わせるコンピュータソフトウェアを指してよい。いくつかの例では、ソフトウェアアプリケーションは、「アプリケーション」、「アプリ(app)」または「プログラム」と呼ばれてよい。アプリケーションの例は、次に限定されないが、システム診断アプリケーション、システム管理アプリケーション、システム保守アプリケーション、文書処理アプリケーション、表計算アプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲームアプリケーションを含む。
【0069】
それらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られている)は、プログラム可能なプロセッサ用の機械命令を含み、高レベルの手続的および/またはオブジェクト指向のプログラミング言語により、および/またはアセンブリ/機械語により実装されることが可能である。本明細書で用いられる際、用語「機械可読媒体」および「コンピュータ可読媒体」は、機械可読信号として機械命令を受信する機械可読媒体を含め、プログラム可能なプロセッサに機械命令および/またはデータを提供するために用いられる、任意のコンピュータプログラム製品、非一時的なコンピュータ可読媒体、装置、および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラム可能論理回路(PLD))を指す。用語「機械可読信号」は、プログラム可能なプロセッサに機械命令および/またはデータを提供するために用いられる任意の信号を指す。
【0070】
本明細書に記載される処理および論理フローは、入力データに対して動作することと出力を生成することとによって機能を果たすように、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なプロセッサ(データ処理ハードウェアとも呼ばれる)によって行われることが可能である。処理および論理フローは、特定目的の論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行われることも可能である。コンピュータプログラムの実行に適切なプロセッサは、例として、汎用および専用のマイクロプロセッサと、任意の種類のデジタルコンピュータのうちの任意の1つまたは複数のプロセッサとの両方を含む。一般に、プロセッサは、読出専用メモリ、ランダムアクセスメモリ、またはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を行うためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとである。一般に、コンピュータはまた、データを記憶するための1つまたは複数のマスストレージデバイス(例えば、磁気、磁気光学ディスク、または光ディスク)を備えるか、データの受信、データの送信、またはその両方を行うように、該マスストレージに対し動作可能に結合されている。しかしながら、コンピュータがそうしたデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するために適切なコンピュータ可読媒体は、例として、半導体メモリデバイス(例えば、EPROM、EEPROMおよび、フラッシュメモリデバイス)、磁気ディスク(例えば、内部ハードディスクまたはリムーバブルディスク)、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、全ての形式の不揮発性メモリ、メディア、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補足されるか、専用論理回路に組み込まれることが可能である。
【0071】
ユーザとの対話を提供するため、本開示の1つまたは複数の態様は、ユーザに情報を表示するためのディスプレイデバイス(例えば、CRT(陰極線管)、LCD(液晶ディスプレイ)モニタ、またはタッチスクリーン)を有する、また随意では、それによってユーザがコンピュータに入力を提供可能であるキーボードおよびポインティングデバイス(例えば、マウスまたはトラックボール)を有する、コンピュータ上に実装されることが可能である。他の種類のデバイスもユーザとの対話を提供するために用いられることが可能である。例えば、ユーザに対し提供されるフィードバックは、任意の形態の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であることが可能であり、ユーザからの入力は、音響、音声、または触覚の入力を含む、任意の形態により受信されることが可能である。加えて、コンピュータは、ユーザによって用いられるデバイスとの間でドキュメントを送受信することによって(例えば、ウェブブラウザから受信されるリクエストに応じてユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって)、ユーザと対話することが可能である。
【0072】
多くの実装が記載されている。しかしながら、様々な変更が本開示の趣旨および範囲から逸脱することなくなされ得ることが理解される。したがって、他の実装は以下の特許請求の範囲の範囲内にある。
【国際調査報告】