(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-06-26
(54)【発明の名称】モバイルオペレーティングシステムにおけるアプリケーションベースの販売時点情報管理システム
(51)【国際特許分類】
G06F 21/31 20130101AFI20230619BHJP
G06F 21/60 20130101ALI20230619BHJP
G06F 21/44 20130101ALI20230619BHJP
G06Q 20/20 20120101ALI20230619BHJP
【FI】
G06F21/31
G06F21/60 320
G06F21/44
G06Q20/20
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022570334
(86)(22)【出願日】2021-05-17
(85)【翻訳文提出日】2023-01-12
(86)【国際出願番号】 US2021032688
(87)【国際公開番号】W WO2021236484
(87)【国際公開日】2021-11-25
(32)【優先日】2020-05-18
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】519111877
【氏名又は名称】キャピタル・ワン・サービシーズ・リミテッド・ライアビリティ・カンパニー
【氏名又は名称原語表記】Capital One Services, LLC
(74)【代理人】
【識別番号】100145403
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100135703
【氏名又は名称】岡部 英隆
(74)【代理人】
【識別番号】100210701
【氏名又は名称】萩原 義則
(72)【発明者】
【氏名】ルール,ジェフリー
(72)【発明者】
【氏名】ルナーティ,ステファン
【テーマコード(参考)】
5L055
【Fターム(参考)】
5L055AA42
(57)【要約】
モバイルオペレーティングシステムのアプリケーションベースの販売時点情報管理システム。第1のアプリケーションは、第2のアプリケーションに向けられた第1のURLを生成し得、第1のURLのパラメータは、第1のアプリケーションの識別子を含む。モバイルオペレーティングシステム(OS)は、第1のURLにアクセスして第2のアプリケーションを開き得る。第2のアプリケーションは、サーバから仮想アカウント番号(VAN)を受信し得る。第2のアプリケーションは、ポートでサーバを開始し、第1のアプリケーションに向けられた第2のURLを生成し得、第2のURLのパラメータは、ポートを含む。OSは、第2のURLにアクセスして、第1のアプリケーションを開き得る。第1のアプリケーションは、指定されたポートを使用してサーバとの接続を確立し、その接続を介して第2のアプリケーションからVANを受信し得る。第1のアプリケーションは、第1のアプリケーションの支払いフォームのフォームフィールドにVANを自動入力し得る。
【特許請求の範囲】
【請求項1】
モバイルデバイスであって、
プロセッサと、
命令を格納するメモリと、を備え、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
前記プロセッサで実行されている第1のアプリケーションが、第2のアプリケーションに向けられた第1のURLを生成することであって、前記第1のURLのパラメータは、前記第1のアプリケーションの識別子を含む、ことと、
前記プロセッサで実行されているモバイルオペレーティングシステム(OS)が、前記第1のURLにアクセスして、前記第2のアプリケーションを開くことと、
前記第2のアプリケーションが、サーバからアカウントに関連付けられた仮想アカウント番号(VAN)を受信することと、
前記第2のアプリケーションが、ポートでローカル伝送制御プロトコル/インターネットプロトコル(TCP/IP)サーバを開始することと、
前記第2のアプリケーションが、前記第1のアプリケーションに向けられた第2のURLを生成することであって、前記第2のURLのパラメータは、前記ポートを含む、ことと、
前記OSが、前記第2のURLにアクセスして、前記第1のアプリケーションを開くことと、
前記第1のアプリケーションが、前記第2のURLの前記パラメータで指定された前記ポートを使用して前記TCP/IPサーバとの接続を確立することと、
前記第1のアプリケーションが、前記ローカルTCP/IPサーバとの接続を介して前記第2のアプリケーションから前記VANを受信することと、
前記第1のアプリケーションが、前記第1のアプリケーションの支払いフォームのフォームフィールドに前記VANを自動入力することと、
を実行させる、モバイルデバイス。
【請求項2】
前記メモリは、命令を格納しており、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、前記第2のアプリケーションが前記VANを受信する前に、
前記第2のアプリケーションが、前記アカウントに割り当てられた非接触カードから暗号化されたデータを受信することと、
前記第2のアプリケーションが、前記暗号化されたデータを前記サーバに送信することと、
前記第2のアプリケーションが、前記サーバが前記暗号化されたデータを復号したことを指定する指示を前記サーバから受信することであって、前記第2のアプリケーションは、前記サーバから前記受信した指示に少なくとも部分的に基づいて前記VANを受信する、ことと、
を実行させる、請求項1に記載のモバイルデバイス。
【請求項3】
前記メモリは、命令を格納しており、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
前記ローカルTCP/IPサーバが、前記第1のアプリケーションから前記接続を確立するための要求を受信することであって、前記要求は、前記第1のアプリケーションの証明書を含む、ことと、
前記第2のアプリケーションが、前記第1のアプリケーションの前記証明書を検証することと、
前記第2のアプリケーションが、前記要求内の前記第1のアプリケーションの前記識別子の識別および前記第1のアプリケーションの前記証明書の前記検証に基づいて前記接続を確立することを決定することであって、前記ローカルTCP/IPサーバは、前記モバイルデバイスで実行されているアプリケーションのみにアクセス可能である、ことと、
を実行させる、請求項1に記載のモバイルデバイス。
【請求項4】
前記メモリは、命令を格納しており、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、前記第2のアプリケーションが前記VANを受信する前に、
前記第2のアプリケーションが、前記アカウントが時間閾値内に前記第2のアプリケーションを使用してアクセスされていないと決定することと、
前記第2のアプリケーションが、前記アカウントの認証資格情報を提供することを指定する指示を出力することと、
前記第2のアプリケーションが、前記アカウントの認証資格情報を受信することと、
前記第2のアプリケーションが、前記受信した前記アカウントの認証資格情報を検証することと、
を実行させる、請求項1に記載のモバイルデバイス。
【請求項5】
前記メモリは、命令を格納しており、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
前記第1のアプリケーションが、前記OSのアプリケーションプログラミングインターフェース(API)を使用して、前記第1のURLの少なくとも一部を検証することと、
前記第2のアプリケーションが、前記OSの前記APIを使用して、前記第2のURLの少なくとも一部を検証することと、
を実行させる、請求項1に記載のモバイルデバイス。
【請求項6】
前記メモリは、命令を格納しており、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
前記第2のアプリケーションが、前記サーバから、前記アカウントに関連付けられた名前、前記VANの有効期限、および前記VANのカード検証値(CVV)を含む複数の属性を受信することと、
前記第1のアプリケーションが、前記ローカルTCP/IPサーバとの前記接続を介して、前記第2のアプリケーションから前記複数の属性を受信することと、
前記第1のアプリケーションが、各属性を前記第1のアプリケーションの支払いフォームのそれぞれのフィールドに自動入力することと、
前記第1のアプリケーションが、前記VANおよび前記受信した属性を使用して購入の支払いを処理することと、
を実行させる、請求項1に記載のモバイルデバイス。
【請求項7】
前記第1および第2のURLは、ユニバーサルリンクURLを含み、前記OSは、前記第1および第2のアプリケーションが異なる開発者に登録されていることに基づいて、前記ローカルTCP/IPサーバを使用することなく、前記第1および第2のアプリケーション間の通信を制限し、前記メモリは、命令を格納しており、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
前記第2のアプリケーションが、前記OSのアプリケーションプログラミングインターフェースを使用して、前記OSのバックグラウンドで実行するバックグラウンドタスクとして前記第2のアプリケーションを登録することと、
前記OSが、前記OSのバックグラウンドでバックグラウンドタスクの一部として前記ローカルTCP/IPサーバを実行することと、
を実行させる、請求項1に記載のモバイルデバイス。
【請求項8】
コンピュータ可読プログラムコードを含む非一時的なコンピュータ可読記憶媒体であって、前記コンピュータ可読プログラムコードは、モバイルデバイスのプロセッサによって実行されると、前記プロセッサに、
前記プロセッサで実行されている第1のアプリケーションが、第2のアプリケーションに向けられた第1のURLを生成することであって、前記第1のURLのパラメータは、前記第1のアプリケーションの識別子を含む、ことと、
前記プロセッサで実行されているモバイルオペレーティングシステム(OS)が、前記第1のURLにアクセスして、前記第2のアプリケーションを開くことと、
前記第2のアプリケーションが、サーバからアカウントに関連付けられた仮想アカウント番号(VAN)を受信することと、
前記第2のアプリケーションが、ポートでローカル伝送制御プロトコル/インターネットプロトコル(TCP/IP)サーバを開始することと、
前記第2のアプリケーションが、前記第1のアプリケーションに向けられた第2のURLを生成することであって、前記第2のURLのパラメータは、前記ポートを含む、ことと、
前記OSが、前記第2のURLにアクセスして、前記第1のアプリケーションを開くことと、
前記第1のアプリケーションが、前記第2のURLの前記パラメータで指定された前記ポートを使用して前記TCP/IPサーバとの接続を確立することと、
前記第1のアプリケーションが、前記ローカルTCP/IPサーバとの前記接続を介して、前記第2のアプリケーションから前記VANを受信することと、
前記第1のアプリケーションが、前記第1のアプリケーションの支払いフォームのフォームフィールドに前記VANを自動入力することと、
を実行させる、コンピュータ可読記憶媒体。
【請求項9】
前記コンピュータ可読記憶媒体は、コンピュータ可読プログラムコードを含み、前記コンピュータ可読プログラムコードは、前記プロセッサによって実行されると、前記プロセッサに、
前記第2のアプリケーションが、前記アカウントに割り当てられた非接触カードから暗号化されたデータを受信することと、
前記第2のアプリケーションが、前記暗号化されたデータを前記サーバに送信することと、
前記第2のアプリケーションが、前記サーバが前記暗号化されたデータを復号したことを指定する指示を前記サーバから受信することであって、前記第2のアプリケーションは、前記サーバから前記受信した指示に少なくとも部分的に基づいて前記VANを受信する、ことと、
を実行させる、請求項8に記載のコンピュータ可読記憶媒体。
【請求項10】
前記コンピュータ可読記憶媒体は、コンピュータ可読プログラムコードを含み、前記コンピュータ可読プログラムコードは、前記プロセッサによって実行されると、前記プロセッサに、
前記第2のアプリケーションの前記ローカルTCP/IPサーバが、前記第1のアプリケーションから前記接続を確立するための要求を受信することであって、前記要求は、前記第1のアプリケーションの証明書を含む、ことと、
前記第2のアプリケーションが、前記第1のアプリケーションの前記証明書を検証することと、
前記第2のアプリケーションが、前記要求内の前記第1のアプリケーションの前記識別子の識別および前記第1のアプリケーションの前記証明書の前記検証に基づいて前記接続を確立することを決定することであって、前記ローカルTCP/IPサーバは、前記モバイルデバイスで実行されているアプリケーションのみにアクセス可能である、ことと、
を実行させる、請求項8に記載のコンピュータ可読記憶媒体。
【請求項11】
前記コンピュータ可読記憶媒体は、コンピュータ可読プログラムコードを含み、前記コンピュータ可読プログラムコードは、前記プロセッサによって実行されると、前記プロセッサに、
前記第1のアプリケーションが、前記OSのアプリケーションプログラミングインターフェース(API)を使用して、前記第1のURLの少なくとも一部を検証することと、
前記第2のアプリケーションが、前記OSの前記APIを使用して、前記第2のURLの少なくとも一部を検証することと、
を実行させる、請求項8に記載のコンピュータ可読記憶媒体。
【請求項12】
前記コンピュータ可読記憶媒体は、コンピュータ可読プログラムコードを含み、前記コンピュータ可読プログラムコードは、前記プロセッサによって実行されると、前記プロセッサに、
前記第1のアプリケーションが、前記アカウントの属性の更新された値を受信することと、
前記第1のアプリケーションが、前記ローカルTCP/IPサーバとの前記接続を介して、前記アカウントの前記属性の前記更新された値を前記第2のアプリケーションに送信することと、
前記第2のアプリケーションが、前記属性の前記更新された値を前記アカウントに格納することを指定する指示を出力することと、
を実行させる、請求項8に記載のコンピュータ可読記憶媒体。
【請求項13】
前記コンピュータ可読記憶媒体は、コンピュータ可読プログラムコードを含み、前記コンピュータ可読プログラムコードは、前記プロセッサによって実行されると、前記プロセッサに、
前記第2のアプリケーションが、前記サーバから、前記アカウントに関連付けられた名前、前記VANの有効期限、および前記VANのカード検証値(CVV)を含む複数の属性を受信することと、
前記第1のアプリケーションが、前記ローカルTCP/IPサーバとの前記接続を介して、前記第2のアプリケーションから前記複数の属性を受信することと、
前記第1のアプリケーションが、各属性を前記第1のアプリケーションの支払いフォームのそれぞれのフィールドに自動入力することと、
前記第1のアプリケーションが、前記VANおよび前記受信した属性を使用して購入の支払いを処理することと、
を実行させる、請求項8に記載のコンピュータ可読記憶媒体。
【請求項14】
モバイルデバイスのプロセッサで実行されている第1のアプリケーションが、第2のアプリケーションに向けられた第1のURLを生成することであって、前記第1のURLのパラメータは、前記第1のアプリケーションの識別子を含む、ことと、
前記プロセッサで実行されているモバイルオペレーティングシステム(OS)が、前記第1のURLにアクセスして、前記第2のアプリケーションを開くことと、
前記第2のアプリケーションが、サーバから、アカウントに関連付けられた仮想アカウント番号(VAN)を受信することと、
前記第2のアプリケーションが、ポートでローカル伝送制御プロトコル/インターネットプロトコル(TCP/IP)サーバを開始することと、
前記第2のアプリケーションが、前記第1のアプリケーションに向けられた第2のURLを生成することであって、前記第2のURLのパラメータは、前記ポートを含む、ことと、
前記OSが、前記第2のURLにアクセスして、前記第1のアプリケーションを開くことと、
前記第1のアプリケーションが、前記第2のURLの前記パラメータで指定された前記ポートを使用して前記TCP/IPサーバとの接続を確立することと、
前記第1のアプリケーションが、前記ローカルTCP/IPサーバとの前記接続を介して、前記第2のアプリケーションから前記VANを受信することと、
前記第1のアプリケーションが、前記第1のアプリケーションの支払いフォームのフォームフィールドに前記VANを自動入力することと、
を含む方法。
【請求項15】
前記方法は、前記第2のアプリケーションが前記VANを受信する前に、
前記第2のアプリケーションが、前記アカウントに割り当てられた非接触カードから暗号化されたデータを受信することと、
前記第2のアプリケーションが、前記暗号化されたデータを前記サーバに送信することと、
前記第2のアプリケーションが、前記サーバが前記暗号化されたデータを復号したことを指定する指示を前記サーバから受信することであって、前記第2のアプリケーションは、前記サーバから前記受信した指示に少なくとも部分的に基づいて前記VANを受信する、ことと、
をさらに含む、請求項14に記載の方法。
【請求項16】
前記方法は、
前記第2のアプリケーションの前記ローカルTCP/IPサーバが、前記第1のアプリケーションから前記接続を確立するための要求を受信することであって、前記要求は、前記第1のアプリケーションの証明書を含む、ことと、
前記第2のアプリケーションが、前記第1のアプリケーションの前記証明書を検証することと、
前記第2のアプリケーションが、前記要求内の前記第1のアプリケーションの前記識別子の識別および前記第1のアプリケーションの前記証明書の前記検証に基づいて前記接続を確立することを決定することであって、前記ローカルTCP/IPサーバは、前記モバイルデバイスで実行されているアプリケーションにのみアクセス可能である、ことと、
をさらに含む、請求項14に記載の方法。
【請求項17】
前記方法は、
前記第2のアプリケーションが、時間閾値内に前記第2のアプリケーションを使用して前記アカウントがアクセスされていないと決定することと、
前記第2のアプリケーションが、前記アカウントの認証資格情報を提供することを指定する指示を出力することと、
前記第2のアプリケーションが、前記アカウントの認証資格情報を受信することと、
前記第2のアプリケーションが、前記受信した前記アカウントの認証資格情報を検証することと、
をさらに含む、請求項14に記載の方法。
【請求項18】
前記方法は、
前記第1のアプリケーションが、前記OSのアプリケーションプログラミングインターフェース(API)を使用して、前記第1のURLの少なくとも一部を検証することと、
前記第2のアプリケーションが、前記OSの前記APIを使用して、前記第2のURLの少なくとも一部を検証することと、
をさらに含む、請求項14に記載の方法。
【請求項19】
前記方法は、
前記第2のアプリケーションが、前記サーバから、前記アカウントに関連付けられた名前、前記VANの有効期限、および前記VANのカード検証値(CVV)を含む複数の属性を受信することと、
前記第1のアプリケーションが、前記ローカルTCP/IPサーバとの前記接続を介して、前記第2のアプリケーションから前記複数の属性を受信することと、
前記第1のアプリケーションが、各属性を前記第1のアプリケーションの前記支払いフォームのそれぞれのフィールドに自動入力することと、
前記第1のアプリケーションが、前記VANおよび前記受信した属性を使用して購入の支払いを処理することと、
をさらに含む、請求項14に記載の方法。
【請求項20】
前記第1および第2のURLは、ユニバーサルリンクURLを含み、前記OSは、前記第1および第2のアプリケーションが異なる開発者に登録されていることに基づいて、前記ローカルTCP/IPサーバを使用することなく、前記第1および第2のアプリケーション間の通信を制限し、前記方法は、
前記第2のアプリケーションが、前記OSのアプリケーションプログラミングインターフェースを使用して、前記OSのバックグラウンドで実行するバックグラウンドタスクとして前記第2のアプリケーションを登録することと、
前記OSが、前記OSの前記バックグラウンドで前記バックグラウンドタスクの一部として、前記ローカルTCP/IPサーバを実行することと、
をさらに含む、請求項14に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年5月18日に出願された「モバイルオペレーティングシステムにおけるアプリケーションベースの販売時点情報管理システム」という名称の米国特許出願第16/876,473号に対する優先権を主張する。前述の特許出願の内容は、参照によりその全体が本明細書に援用される。
【0002】
技術分野
本明細書の実施形態は、一般に、コンピューティングプラットフォームに関し、より具体的には、モバイルオペレーティングシステムにおけるアプリケーションベースの販売時点情報管理システムの提供に関する。
【背景技術】
【0003】
いくつかのモバイルオペレーティングシステムでは、同じデバイスで実行されている2つ以上のアプリケーション間の通信が制限されている。例えば、いくつかのモバイルオペレーティングシステムは、第1のアプリケーションが第2のアプリケーションと直接通信することを防止し得る。同様に、いくつかのモバイルオペレーティングシステムは、そのようなアプリケーション間のデータ交換を制限し得る。これを行うと、アプリケーション間の正当で安全な通信が不必要に制限され得る。
【発明の概要】
【0004】
本明細書で開示される実施形態は、モバイルオペレーティングシステムにおけるアプリケーション間の通信のためのシステム、方法、製品、およびコンピュータ可読媒体を提供する。一例では、第1のアプリケーションは、第2のアプリケーションに向けられた第1のURLを生成し得、第1のURLのパラメータは、第1のアプリケーションの識別子を備える。モバイルオペレーティングシステム(OS)は、第1のURLにアクセスして第2のアプリケーションを開き得る。第2のアプリケーションは、サーバから仮想アカウント番号(VAN)を受信し得る。第2のアプリケーションは、ポート上でサーバを開始し、ポートを含む第2のURLのパラメータである、第1のアプリケーションに向けられた第2のURLを生成し得る。OSは、第2のURLにアクセスして、第1のアプリケーションを開き得る。第1のアプリケーションは、指定されたポートを使用してサーバとの接続を確立し、その接続を介して第2のアプリケーションからVANを受信し得る。第1のアプリケーションは、第1のアプリケーションの支払いフォームのフォームフィールドにVANを自動入力し得る。
【図面の簡単な説明】
【0005】
【
図1A】モバイルオペレーティングシステムにおけるアプリケーションベースの販売時点情報管理システムのためのシステムの実施形態を示している。
【
図1B】モバイルオペレーティングシステムにおけるアプリケーションベースの販売時点情報管理システムのためのシステムの実施形態を示している。
【
図1C】モバイルオペレーティングシステムにおけるアプリケーションベースの販売時点情報管理システムのためのシステムの実施形態を示している。
【
図1D】モバイルオペレーティングシステムにおけるアプリケーションベースの販売時点情報管理システムのためのシステムの実施形態を示している。
【
図1E】モバイルオペレーティングシステムにおけるアプリケーションベースの販売時点情報管理システムのためのシステムの実施形態を示している。
【
図1F】モバイルオペレーティングシステムにおけるアプリケーションベースの販売時点情報管理システムのためのシステムの実施形態を示している。
【
図2A】モバイルオペレーティングシステムにおけるアプリケーションベースの販売時点情報管理システムのためのシステムの実施形態を示している。
【
図2B】モバイルオペレーティングシステムにおけるアプリケーションベースの販売時点情報管理システムのためのシステムの実施形態を示している。
【
図2C】モバイルオペレーティングシステムにおけるアプリケーションベースの販売時点情報管理システムのためのシステムの実施形態を示している。
【
図2D】モバイルオペレーティングシステムにおけるアプリケーションベースの販売時点情報管理システムのためのシステムの実施形態を示している。
【
図3A】モバイルオペレーティングシステムにおけるアプリケーションベースの販売時点情報管理システムの実施形態を示している。
【
図3B】モバイルオペレーティングシステムにおけるアプリケーションベースの販売時点情報管理システムの実施形態を示している。
【
図3C】モバイルオペレーティングシステムにおけるアプリケーションベースの販売時点情報管理システムの実施形態を示している。
【
図4】第1の論理フローの一実施形態を示している。
【
図5】第2の論理フローの一実施形態を示している。
【
図7】コンピューティングシステムの一実施形態を示している。
【発明を実施するための形態】
【0006】
本明細書で開示される実施形態は、異なる開発者に登録されたアプリケーション間の通信を制限するモバイルオペレーティングシステム(OS)内の他のアプリケーションによってアクセス可能なアプリケーションベースの販売時点情報管理システムのための技術を提供する。一般に、デバイスで実行される第1のアプリケーションは、デバイスの第2のアプリケーションによって提供され得るデータから恩恵を受け得る。例えば、第1のアプリケーションは、OSに業者に登録された業者アプリケーションであり、第2のアプリケーションは、OSに金融機関に登録された金融機関が提供するアプリケーションであり得る。そのような例では、業者アプリケーションのユーザは、金融機関アプリケーションからのデータ、例えば、支払い情報、伝記情報などを業者アプリケーションで使用することを要求し得る。要求に応答して、業者アプリケーションは、金融機関アプリケーションに向けられた第1のユニフォームリソースロケータ(URL)を生成し得る。第1のURLのパラメータは、業者アプリケーションの識別子を含み得る。
【0007】
次いで、業者アプリケーションは、モバイルOSに、第1のURLを開くか、そうでなければアクセスするように指示し得る。これにより、モバイルOSがデバイスの金融機関アプリケーションを開く。次に、金融機関アプリケーションは、モバイルデバイスで実行されているアプリケーションのみがアクセスできるOS内のローカルサーバを開始し得る。ローカルサーバは、ポートで開始され、伝送制御プロトコル/インターネットプロトコル(TCP/IP)サーバまたはその他のタイプのサーバ(例えば、ハイパーテキスト転送プロトコル(HTTP)サーバ)であり得る。いくつかの実施形態では、金融機関アプリケーションは、サーバを開始する前に、金融機関のアカウントの認証資格情報を受信し得る。例えば、ユーザが閾値時間内、例えば、30日以内にログイン資格情報を提供しなかった場合、金融機関アプリケーションは、ユーザにログイン資格情報を提供するよう要求し得る。さらにおよび/または代わりに、サーバを開始する前に、金融機関アプリケーションは、アカウントに関連付けられた非接触カードから暗号化されたデータを受信し、暗号化されたデータを認証サーバに送信し得る。認証サーバは、暗号化されたデータの復号を試み得る。サーバが暗号化されたデータを復号する場合、サーバは、暗号化されたデータが検証されたという指示を金融機関アプリケーションに送信し得る。さらに、サーバが暗号化されたデータを復号すると、サーバは、アカウントの仮想アカウント番号(VAN)を生成し得る。サーバは、生成されたVAN、VANの有効期限、およびVANのカード検証値(CVV)を金融機関アプリケーションに提供し得る。さらに、サーバは、名、姓、電話番号、電子メールアドレス、請求先住所、および/または配送先住所などの他のデータを金融機関アプリケーションに提供し得る。
【0008】
金融機関アプリケーションは、業者アプリケーションに向けられた第2のURLを生成し得る。第2のURLは、第1のURLのパラメータとして指定された業者アプリケーションの識別子に少なくとも部分的に基づき得る。第2のURLは、ローカルサーバのポートをパラメータとしてさらに指定し得る。金融機関アプリケーションは、ローカルサーバおよび/または金融機関アプリケーションをバックグラウンドタスクとしてOSにさらに登録し、OSのフォアグラウンドで他のアプリケーション(例えば、業者アプリケーション)が実行されている間、ローカルサーバおよび/または金融機関アプリケーションは、OSのバックグラウンドで実行し続けるようにし得る。金融機関アプリケーションは、モバイルOSに、第2のURLを開くか、他の方法でアクセスするように指示し得る。これにより、OSは、OSのフォアグラウンドで業者アプリケーションを開く。
【0009】
開かれると、業者アプリケーションは、第2のURLで指定されたローカルサーバのポートを識別し、ローカルインターフェースの指定されたポート(例えば、ローカルループバックIPアドレス)でローカルサーバとの接続を確立し得る。いくつかの実施形態では、業者アプリケーションは、接続確立の一部としてサーバによって検証され得る証明書を提供し得る。それに加えて、および/または代わりに、業者アプリケーションは、接続確立の一部としてサーバによって検証され得るトークンを提供し得る。接続が確立されると、金融機関アプリケーションは、接続を介して業者のアプリケーションとデータを交換し得、その逆も可能である。例えば、金融機関アプリケーションは、VAN、有効期限、およびCVVおよび/または他の情報(例えば、アドレス情報など)を、接続を使用して業者アプリケーションに提供し得る。そのような例では、業者アプリケーションは、受信したデータをフォームに自動入力し得、それにより、ユーザは、受信したデータを使用して購入または他の操作を完了できる。より一般的には、接続を介して任意の数およびタイプのデータを交換し得る。
【0010】
有利なことに、モバイルOSは、外部エンティティによるローカルサーバへのアクセスを制限し得る。そうすることで、デバイスとデータのセキュリティが向上する。さらに、金融機関アプリケーションからの支払いデータをセキュアに受信することで、支払いデータのセキュリティを高める。例えば、ユーザは、データのセキュリティを危殆化する可能性があるVAN、有効期限、および/またはCVVを手動で入力する必要はない。さらに、いくつかの実施形態では、金融機関は、本明細書で開示される操作を実行するために必要な機能を含むフレームワーク(例えば、ソフトウェア開発キット(SDK))を提供し得る。そうすることで、本明細書で開示される操作を実行するために必要となる完全なSDKおよび/またはフレームワークを必要とせずに、必要な機能のみをサードパーティアプリケーション(例えば、業者アプリケーション)に統合することができる。例えば、データ交換に使用できる1つまたは複数のAPIを業者アプリケーションに提供することにより、SDKは、業者アプリケーションに必要な機能を提供するために、業者アプリケーションに金融機関アプリケーションの完全なコードベースを含めることに比べて、業者アプリケーションを縮小したサイズにすることを可能にする。
【0011】
本明細書で使用される表記法および命名法を一般的に参照して、以下の詳細な説明の1つまたは複数の部分は、コンピュータまたはコンピュータのネットワーク上で実行されるプログラム手順に関して提示され得る。これらの手順の説明および表現は、当業者によって、彼らの仕事の実体を当業者に最も効果的に伝えるために使用される。手順は、本明細書にあり、一般に、望ましい結果につながる自己矛盾のない一連の演算であると考えられている。これらの演算は、物理量の物理的な操作を必要とする演算である。通常、必ずしもそうとは限らないが、これらの量は、格納、転送、結合、比較、およびその他の方法で操作できる電気信号、磁気信号、または光信号の形をとる。主に一般的な使用法の理由から、これらの信号をビット、値、要素、記号、文字、用語、数値などと呼ぶと便利な場合がある。しかしながら、これらおよび類似の用語はすべて、適切な物理量に関連付けられており、これらの量に適用される便利なラベルにすぎないことに留意すべきである。
【0012】
さらに、これらの操作は、加算や比較などの用語で呼ばれることが多く、これらは一般に、人間のオペレータによって実行される知的な演算に関連付けられている。しかしながら、1つまたは複数の実施形態の一部を形成する本明細書に記載の演算のいずれにおいても、人間のオペレータのそのような能力は必要ではないか、またはほとんどの場合望ましいものではない。むしろ、これらの演算は、機械演算である。様々な実施形態の演算を実行するための有用な機械は、本明細書の教示に従って書かれた、その中に格納されたコンピュータプログラムによって選択的に起動または構成されるデジタルコンピュータを含み、および/または必要な目的のために特別に構築された装置またはデジタルコンピュータを含む。様々な実施形態はまた、これらの操作を実行するための装置またはシステムに関する。これらの装置は、必要な目的のために特別に構築され得る。これらの様々な機械に必要な構造は、与えられた説明から明らかになる。
【0013】
ここで、図面を参照する。同様の参照番号は、全体を通して同様の要素を参照するために使用される。以下の説明では、説明の目的で、それらを完全に理解するために、多くの具体的な詳細が示されている。しかしながら、これらの具体的な詳細なしで新規の実施形態を実施できることは明らかであり得る。他の例では、よく知られている構造およびデバイスは、それらの説明を容易にするためにブロック図の形で示されている。意図は、請求項の範囲内のすべての修正、均等物、および代替案をカバーすることである。
【0014】
図1Aは、開示された実施形態と一致する例示的なシステム100の概略図を示している。示されるように、システム100は、1つまたは複数のモバイルコンピューティングデバイス110を含む。モバイルデバイス110は、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス、ラップトップ、ポータブルゲームデバイスなど、モバイルオペレーティングシステムを実行する任意のタイプのネットワーク対応コンピューティングデバイスを代表するものである。モバイルデバイス110は、プロセッサ101およびメモリ111を含み得る。プロセッサ101は、AMD(登録商標)Athlon(登録商標)、Duron(登録商標)およびOpteron(登録商標)プロセッサ、ARM(登録商標)アプリケーション、組み込みおよびセキュアプロセッサ、IBM(登録商標)およびMotorola(登録商標)DragonBall(登録商標)およびPowerPC(登録商標)プロセッサ、IBMおよびSony(登録商標)Cellプロセッサ、Intel(登録商標)Celeron(登録商標)、Core(登録商標)、Core(2)Duo(登録商標)、Itanium(登録商標)、Pentium(登録商標)、Xeon(登録商標)、およびXScale(登録商標)プロセッサ、および同様のプロセッサを含むがこれらに限定されない任意のコンピュータプロセッサであり得る。プロセッサ101として、デュアルマイクロプロセッサ、マルチコアプロセッサ、および他のマルチプロセッサアーキテクチャを採用することもし得る。メモリ111は、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレートDRAM(DDRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、プログラマブルROM(PROM)、消去可能なプログラマブルROM(EPROM)、電気的に消去可能なプログラマブルROM(EEPROM)、フラッシュメモリ(例えば、1つまたは複数のフラッシュアレイ)、強誘電性ポリマメモリなどのポリマメモリ、オボニックメモリ、相変化または強誘電性メモリ、シリコン酸化窒化酸化シリコン(SONOS)メモリ、磁気カードまたは光カード、独立したディスクの冗長アレイ(RAID)ドライブなどのデバイスのアレイ、ソリッドステートメモリデバイス(例えば、USBメモリ、ソリッドステートドライブ(SSD)、および情報を格納するのに適したその他のタイプのストレージメディア)など、1つまたは複数の高速メモリユニットの形で、様々なタイプのコンピュータ可読記憶媒体を含み得る。
【0015】
示されるように、モバイルデバイス110のメモリ111は、モバイルオペレーティングシステム(OS)112のインスタンスを含む。例示的なモバイルオペレーティングシステム112は、Android(登録商標)およびiOS(登録商標)モバイルオペレーティングシステムを含む。示されるように、OS112は、アカウントアプリケーション113および1つまたは複数の他のアプリケーション114を含む。アカウントアプリケーション113により、ユーザは、支払いカードのアクティブ化、アカウント残高の表示、アイテムの購入、支払いの処理など、様々なアカウント関連の操作を実行できるようになる。いくつかの実施形態では、ユーザは、アカウントアプリケーション113の特定の機能にアクセスするために、認証資格情報を使用して認証し得る。例えば、認証資格情報は、ユーザ名(またはログイン)とパスワード、生体認証資格情報(例えば、指紋、Face IDなど)などを含み得る。他のアプリケーション114は、ウェブブラウザ、業者アプリケーション、ショッピングアプリケーション、配達サービスアプリケーション、ライドシェアリングアプリケーション、メッセージングアプリケーション、ワードプロセッシングアプリケーション、ソーシャルメディアアプリケーションなど、任意のタイプのコンピューティングアプリケーションを代表するものである。例えば、他のアプリケーション114の第1のものは、商品、サービス、または任意の他のタイプのアイテムを購入するために業者によって提供される業者アプリケーションであり得る。他の例として、他のアプリケーション114の第2のものは、ユーザが輸送サービスを手配し、支払うことを可能にするライドシェアリングアプリケーションであり得る。さらに他の例として、他のアプリケーション114の第3のものは、ユーザが配達のために食品を購入できるようにする配達サービスアプリケーションであり得る。
【0016】
OS112によって課される制限により、異なる開発者(またはエンティティ)に登録された(または割り当てられた)アプリケーションは、通信および/またはデータ交換ができ得ない。例えば、そのような制限が設けられている場合、アカウントアプリケーション113(金融機関に開発者として登録)は、他のアプリケーション114(金融機関以外のエンティティに登録されている)と通信および/またはデータ交換できない。同様に、他のアプリケーション114(第1のエンティティに登録されている)のうちの第1のものは、他のアプリケーション114(第1のエンティティとは異なる第2のエンティティに登録されている)のうちの他のものと通信できない。アプリケーションの登録は、OS112のプロバイダに関連付けられたアプリケーションストアにアプリケーションが提出されたときに発生し得る。しかしながら、有利には、本明細書に開示される実施形態は、異なる開発者に登録されたアプリケーション(例えば、アカウントアプリケーション113と他のアプリケーション114のいずれか、および/または他のアプリケーション114のいずれか2つ)との間の通信および/またはデータ交換を安全に可能にする技術を提供する。
【0017】
図1Bは、アプリケーション114-1がアカウントアプリケーション113と通信する要求を受信した実施形態を示している。例えば、アプリケーション114-1は、業者に登録されたアプリケーションであり得る。そのような例では、ユーザは、アプリケーション114-1を介して購入する1つまたは複数のアイテムを選択し得る。チェックアウトプロセス中に、アプリケーション114-1は、アカウントアプリケーション113を使用して支払いおよび/または個人情報を提供するオプションをユーザに与え得る。次に、ユーザは、オプションを受け入れ得、それによってアプリケーション114-1にアカウントアプリケーション113と通信してデータを受信するように指示し得る。要求に応答して、アプリケーション114-1は、URL125を生成し得る。URL125は、アカウントアプリケーション113に向けられ得る。URL125は、アプリケーション114-1がURL125を生成したことを示すパラメータをさらに含み得る。URL125は、ユニバーサルリンク、または任意のタイプのURLであり得る。パラメータは、一意の識別子、トークン、またはURLストリングなど、アプリケーション114-1を一意に識別するのに適した任意の識別子であり得る。例えば、URL125は、「capitalone://?appid=merchantapp」であり、ここで、「capitalone://」部分は、デバイス110のアカウントアプリケーション113のインスタンスに向けられ、「appid=merchantapp」は、URL125を生成するアプリケーション114-1の識別子である。
【0018】
いくつかの実施形態では、アプリケーション114-1は、OS112のアプリケーションプログラミングインターフェース(API)を使用して、URL125が有効であるかどうかを決定する(例えば、URL125によってターゲットにされたアプリケーションがデバイス110にインストールされているかどうかを示す)。例えば、OS112は、APIへの入力として提供されるURLが有効であるかどうかを示す「canOpenURL」APIを提供し得る。一般に、アプリケーション開発者は、アプリケーションをアプリケーションストアに提出するときに、OS112のプロバイダに1つまたは複数のURLを登録し得る。そうすることで、OSが提供するAPIによる検証が容易になり得る。そのような例では、アプリケーション114-1は、URL125(および/またはアカウントアプリケーション113に向けられたURL125の一部)をAPIに提供し得、これは、アカウントアプリケーション113がデバイスにインストールされており、URL125を使用して開くことができるかどうかを示す。そうすることで、正しいアプリケーションがインストールされていることを確認し、アカウントアプリケーション113になりすましたアプリケーションを提供するサードパーティによる試みを阻止することで、セキュリティが強化される。後者の場合、サードパーティのアプリケーションは、APIへの入力として提供されるURLに登録されないため、マスカレードの試みは阻止され得る。そのような例では、APIが無効な応答を返した場合、URL125にアクセスすると、OS112は、アカウントアプリケーション113を登録するエンティティに関連付けられたウェブサイト(例えば、金融機関のウェブサイトおよび/またはアカウントアプリケーション113をダウンロードし得るアプリケーションストア)に向けられたウェブブラウザを起動し得る。
【0019】
次に、アプリケーション114-1および/またはOS112は、URL125にアクセスする、開く、または他の方法でたどり得、それによってアカウントアプリケーション113をOS112のフォアグラウンドで開き得る。
図1Cは、アカウントアプリケーション113がURL125へのアクセスに応答して開かれる実施形態を示している。これに応答して、アカウントアプリケーション113は、オプションとして、アカウントの認証資格情報を受信し得る。いくつかの実施形態では、アカウントアプリケーション113は、ユーザが最後に提供した認証資格情報が閾値(例えば、30日、60日など)を超えたかどうかを決定する。例えば、ユーザが75日間ログイン/パスワードを提供しておらず、閾値が30日である場合、アカウントアプリケーション113は、ユーザがログイン/パスワード、生体認証資格情報などを提供することを要求し得る。加えておよび/または代わりに(また、
図2A~
図2Dを参照してより詳細に説明するように)、アカウントアプリケーション113は、オプションで、非接触カードによって生成された暗号化されたデータの検証を事前に開始し得る。
【0020】
次に、アカウントアプリケーション113は、モバイルデバイス110で実行するためにローカルサーバ115を開始し得る。ローカルサーバ115は、TCP/IPサーバ、HTTPサーバ、ハイパーテキスト転送プロトコルセキュア(HTTPS)サーバ、ストリーミングサーバなど、任意のタイプのサーバであり得る。しかしながら、ローカルアプリケーション(例えば、モバイルデバイス110で実行されるアプリケーション)だけがローカルサーバ115にアクセスし得る。OS112は、外部ソースから(例えば、ネットワークを介して)ローカルサーバ115にアクセスする試みを制限し得る。アカウントアプリケーション113は、特定のポート番号でローカルサーバ115を開始し得る。アカウントアプリケーション113は、ポート番号をランダムに生成する、所定のポート番号を使用するなど、実行可能な任意の選択方式に従ってポートを選択し得る。
【0021】
図1Dは、アカウントアプリケーション113がURL126を生成する実施形態を示している。URL126は、アプリケーション114-1に向けられ得、ローカルサーバ115のポート番号を含み得る。例えば、URL126は「merchantapp://?port=2080」であり、ここで、「merchantapp://」部分は、アプリケーション114-1に向けられ、「port=2080」部分は、ローカルサーバ115がポート2080で開いていることを示す。アカウントアプリケーション113は、URL125で指定されたアプリケーション114-1の識別子に基づいて、アプリケーション114-1に向けられたURL126の部分を決定する。いくつかの実施形態では、URL125と同様に、アカウントアプリケーション113は、URL126にアクセスする前に、URL126が有効であるかどうかを決定するために、OS112にAPI呼び出しを行う。より一般的には、URL126は、選択されたポートでローカルサーバ115への接続を確立するのに十分な任意のパラメータを備え得る。いくつかの実施形態では、アカウントアプリケーション113は、例えば、暗号鍵または公開鍵を使用して、ポート番号またはURL126の任意の追加パラメータを暗号化し得る。そのような実施形態では、アプリケーション114-1は、例えば、対応する復号鍵、例えば、秘密鍵を使用して、ポート番号および/または追加のパラメータを復号し得る。さらに、アプリケーション間で交換される任意のURLパラメータは、セキュリティを強化するために暗号化され得る。
【0022】
さらに、アカウントアプリケーション113は、ローカルサーバ115および/またはアカウントアプリケーション113をバックグラウンドタスクとしてOS112に登録し得る。そうすることで、ローカルサーバ115および/またはアカウントアプリケーション113が、OS112のバックグラウンドで実行し続けることができる一方で、他のアプリケーションは、OS112のフォアグラウンドで実行される。ローカルサーバ115は開始されているが、いくつかの実施形態では、アカウントアプリケーション113は、URL126を生成した後にローカルサーバ115を開始し得る。
【0023】
図1Eは、アカウントアプリケーション113および/またはOS112がアプリケーション114-1を開くためにURL126を開いた一方で、ローカルサーバ115および/またはアカウントアプリケーション113がOS112のバックグラウンドで実行し続けている実施形態を示している。URL126の受信に応答して、アプリケーション114-1は、URL126のパラメータとして指定されたローカルサーバ115のポート番号を識別し得る。述べたように、URL126が暗号化されたデータを含む場合、アプリケーション114-1は、URL126の暗号化されたポート番号(または任意の他の関連パラメータ)を復号し得る。次いで、アプリケーション114-1は、指定されたポート、例えば、ローカルループバックIPアドレス(例えば、IPv4の場合127.0.0.1、IPv6の場合::1など)、「localhost」ホスト名、またはその他の事前定義されたローカルIPアドレスでローカルサーバ115との接続を確立するように要求し得る。接続は、ローカルサーバ115によってサポートされるプロトコルを使用して確立され得る(例えば、TCP/IP接続確立など)。いくつかの実施形態では、アプリケーション114-1は、ローカルサーバ115-1への接続要求の一部として、トークンおよび/またはデジタル証明書(または署名)を提供する。ローカルサーバ115は、トークンが有効および/または予想されるかどうかを決定し得る(例えば、トークンは、URL125のパラメータとして受信されたトークンと一致し得るアプリケーション114-1を識別する)。同様に、ローカルサーバ115は、アプリケーション114-1に関連付けられた公開鍵を使用して証明書を検証し得る。トークンおよび/または証明書が有効である場合、ローカルサーバ115は、アプリケーション114-1との接続を確立し得る。そうでない場合、ローカルサーバ115は、接続要求を拒否し得る。
【0024】
図1Eは、アプリケーション114-1とローカルサーバ115との間の接続が確立されている(ローカルサーバ115がOS112のバックグラウンドタスクとして実行し続ける)実施形態を示している。示されるように、アカウントアプリケーション113は、データ117を含み得る。データ117は、デバイス110にローカルに格納された任意のタイプのデータであり得る。データ117は、アカウントアプリケーション113によって受信されるリモートで格納されたデータを含み得る。例えば、データ117は、支払いカード番号、有効期限、CVV、アドレス、名、姓、電子メールアドレス、電話番号、またはアカウントアプリケーション113を有するアカウントの他の任意の属性を含み得る。有利には、ローカルサーバ115は、ローカルサーバ115がOS112のバックグラウンドで実行され、アプリケーション114-1がOS112のフォアグラウンドで実行されている間に、データ117をアプリケーション114-1に提供し得る。いくつかの実施形態では、ローカルサーバ115は、データ117を暗号化し得る。そのような実施形態では、アプリケーション114-1は、受信時にデータ117を復号し得る。
【0025】
図1Fは、アプリケーション114-1がローカルサーバ115からデータ117を受信した実施形態を示している。述べたように、いくつかの実施形態では、アプリケーション114-1は、暗号化されている場合、データ117を復号し得る。アプリケーション114-1は、データ117を識別し、データ117がユーザおよび/または関連するアカウントの1つまたは複数の属性を含むと決定し得る。次に、アプリケーション114-1は、データ117を1つまたは複数のフォームフィールドに自動入力し、ユーザがローカルサーバ115から安全に受信したデータを使用してチェックアウトを完了できるようにし得る。述べたように、そうすることで、データ117を同じデバイス110のアプリケーション間で安全に転送できる。さらに、最小限の要件セット(例えば、API、最小限のSDKなど)のみを必要とすることにより、アプリケーション114-1は、ローカルサーバ115から任意の量のデータを受信できる。そうでなければ、アプリケーション114-1のサイズは、開示された機能をサポートするためにはるかに大きくなる。さらに、本明細書で開示される実施形態は、アプリケーションが異なる開発者に登録されていても、アプリケーション114-1および113がデータを交換することを可能にする。
【0026】
図2Aは、開示された実施形態と一致する例示的なシステム200の概略図を示している。示されるように、システム200は、1つまたは複数の非接触カード201、モバイルコンピューティングデバイス110のうちの1つまたは複数、および認証サーバ220を含む。非接触カード201は、クレジットカード、デビットカード、ATMカード、ギフトカードなどの任意のタイプの支払いカードを代表するものである。非接触カード201は、NFC、EMV規格、または無線通信における他の短距離プロトコルを介してコンピューティングデバイス110と通信するように構成された、無線周波数識別(RFID)チップなどの1つまたは複数の通信インターフェース209を備え得る。例示的な通信プロトコルとしてNFCが使用されるが、本開示は、EMV規格、ブルートゥース(登録商標)、および/またはWi-Fiなどの他のタイプの通信にも同様に適用可能である。認証サーバ220は、サーバ、ワークステーション、計算クラスタ、クラウドコンピューティングプラットフォーム、仮想化コンピューティングシステムなどの任意のタイプのコンピューティングデバイスを代表するものである。
【0027】
示されるように、非接触カードのメモリ202は、アプレット203、カウンタ204、秘密鍵205、多様化された鍵206、および一意の顧客識別子(ID)207を含む。アプレット203は、本明細書で説明する動作を実行するように構成された実行可能コードである。カウンタ204、秘密鍵205、多様化された鍵206、および顧客ID207は、以下でより詳細に説明するように、システム200においてセキュリティを提供するために使用される。
【0028】
述べたように、非接触カード201は、ローカルサーバ115およびモバイルデバイス110のセキュリティを強化するために使用され得る。例えば、デバイス110のユーザは、アカウントアプリケーション113からのデータをアプリケーション114-1で使用することを望み得る。したがって、
図2Aは、アカウントアプリケーション114-1が生成し、アカウントアプリケーション113に向けられたURL125にアクセスした実施形態を示している。次いで、OS112は、アカウントアプリケーション113を開き得、それは、ユーザのアカウントの認証資格情報を受信し得る。次に、アカウントアプリケーション113は、非接触カード201をデバイス110にタップするようにユーザに指示し得る。一般に、非接触カード201がデバイス110の通信インターフェース218(例えば、カードリーダ/ライタ)の通信範囲内にもたらされると、非接触カード201のアプレット203は、非接触カード201をアクティブ化するために必要な認証プロセスの一部として暗号化されたデータを生成し得る。非接触カード201とモバイルデバイス110との間のNFCデータ転送を可能にするために、アカウントアプリケーション113は、非接触カード201がモバイルデバイス110の通信インターフェース218に十分に近いときに、非接触カード201と通信し得る。通信インターフェース218は、非接触カード201の通信インターフェース209から読み取る、および/またはそれと通信するように構成され得る(例えば、NFC、ブルートゥース(登録商標)、RFIDなどを介して)。したがって、例示的な通信インターフェース218は、NFC通信モジュール、ブルートゥース(登録商標)通信モジュール、および/またはRFID通信モジュールを含む。
【0029】
述べたように、システム100は、本明細書では鍵多様化技術と呼ばれ得るデータを保護するために鍵多様化を実施するように構成される。一般に、サーバ220(または他のコンピューティングデバイス)および非接触カード201は、同じ秘密鍵205(マスター鍵またはマスター対称鍵とも呼ばれる)がプロビジョニングされ得る。より具体的には、各非接触カード201は、サーバ220内に対応するペアを有する(またはサーバ220によって管理される)一意の秘密鍵205でプログラムされる。例えば、非接触カード201が製造されるとき、一意の秘密鍵205が非接触カード201のメモリ202に格納され得る。同様に、一意の秘密鍵205は、サーバ220のアカウントデータ224内の非接触カード201に関連付けられた顧客のレコード(またはプロファイル)に格納され得る(および/またはハードウェアセキュリティモジュール(HSM)225などの他の安全な場所に格納される)。秘密鍵205は、非接触カード201およびサーバ220以外のすべてのパーティから秘密に保たれ得、それによってシステム100のセキュリティを強化し得る。いくつかの実施形態では、非接触カード201のアプレット203は、秘密鍵205およびデータを暗号化アルゴリズムへの入力として使用して、データ(例えば、顧客ID207)を暗号化および/または復号し得る。例えば、顧客ID207を秘密鍵205で暗号化すると、暗号化された顧客IDが得られ得る。同様に、認証サーバ220は、対応する秘密鍵205を使用して、非接触カード201に関連付けられたデータを暗号化および/または復号し得る。
【0030】
いくつかの実施形態では、非接触カード201およびサーバ220のカウンタ204および/または秘密鍵205をカウンタ204と共に使用して、鍵多様化を使用してセキュリティを強化し得る。カウンタ204は、所与の非接触カード201とサーバ220との間で同期される値を備える。カウンタ値204は、非接触カード201とサーバ220(および/または非接触カード201とモバイルデバイス110)の間でデータが交換されるたびに変化する数を備え得る。データを(例えば、サーバ220および/またはモバイルデバイス110に)送信する準備をするとき、非接触カード201のアプレット203は、カウンタ値204をインクリメントし得る。次いで、非接触カード201は、秘密鍵205およびカウンタ値204を暗号化アルゴリズムへの入力として提供し得、これは、多様化された鍵206を出力として生成し得る。暗号化アルゴリズムは、暗号化アルゴリズム、ハッシュベースのメッセージ認証コード(HMAC)アルゴリズム、暗号ベースのメッセージ認証コード(CMAC)アルゴリズムなどを含み得る。暗号化アルゴリズムの非限定的な例は、3DESまたはAES128などの対称暗号化アルゴリズム、HMAC-SHA-256などの対称HMACアルゴリズム、AES-CMACなどの対称CMACアルゴリズムを含み得る。鍵多様化技術の例は、2018年11月29日に出願された米国特許出願第16/205,119号に詳細に記載されている。前述の特許出願は、参照によりその全体が本明細書に援用される。
【0031】
鍵多様化の例を続けると、非接触カード201は、多様化された鍵206およびデータを暗号化アルゴリズムへの入力として使用して、データ(例えば、顧客ID207および/または任意の他のデータ)を暗号化し得る。例えば、顧客ID207を多様化された鍵206で暗号化すると、暗号化された顧客ID208が得られ得る。生成されると、アプレット203は、暗号化された顧客ID208を、例えば、NFCを介してモバイルデバイス110に送信し得る。次に、アカウントアプリケーション113は、ネットワーク230を介して、暗号化された顧客ID208を認証サーバ220に送信し得る。
【0032】
次に、認証アプリケーション223は、暗号化されたデータの認証を試み得る。例えば、認証アプリケーション223は、サーバ220によって格納された秘密鍵205のコピーを使用して、暗号化された顧客ID208を復号しようと試み得る。他の例では、認証アプリケーション223は、秘密鍵205およびカウンタ値204を暗号化アルゴリズムへの入力として提供し得、これは、多様化された鍵206を出力として生成し得る。結果として生じる多様化された鍵206は、非接触カード201の多様化された鍵206に対応し得、暗号化された顧客ID208を復号するために使用し得る。したがって、認証アプリケーション223は、暗号化されたデータを正常に復号し得、それによって暗号化された顧客ID208を検証し得る。例えば、述べたように、顧客ID207を使用して、暗号化された顧客ID208を生成し得る。このような例では、認証アプリケーション223は、認証サーバ220の秘密鍵205を使用して、暗号化された顧客ID208を復号し得る。復号の結果、アカウントデータ224内のアカウントに関連付けられた顧客ID207が得られる場合、認証アプリケーション223は、暗号化された顧客ID208を検証する。さらに、認証アプリケーション223は、VANジェネレータ226に、顧客ID207に対応するアカウントの仮想アカウント番号、有効期限、およびCVVを生成するように指示し得る。次に、VANジェネレータ226は、生成されたVAN、有効期限、およびCVVの指示を、アカウントデータ224内のアカウントに関連付けられたレコードに格納し得る。仮想アカウント番号は、乱数発生器または他のランダム化機能を使用して生成され得る一時的な(例えば、1回限りの使用の)番号である。いくつかの実施形態では、VANは、暗号化された顧客ID208を生成するためにデバイス110にタップされた非接触カード201にリンクされ得る。他の実施形態では、ユーザがアカウントアプリケーション113で有効なアカウント資格情報を使用して自分のアカウントを認証した場合、VANは、認証されたアカウントに関連付けられた他の非接触カード201にリンクされ得る(例えば、認証されたアカウント所有者が2枚以上のカードを持っており、第1のカード201をデバイス110にタップして、第2のカードにリンクされたVANを生成する)。201にリンクされ、第1のカード201をデバイス110にタップして、第2のカード201にリンクされるVANを生成する)。実際のアカウント番号(例えば、非接触カード201に印刷されたアカウント番号)ではなくVANを使用することにより、実際のアカウント番号の安全性が保たれるという利点がある。
【0033】
認証アプリケーション223が、暗号化された顧客ID208を復号して期待される結果(例えば、非接触カード201に関連付けられたアカウントの顧客ID207)を得ることができない場合、認証アプリケーション223は、暗号化された顧客ID208を検証せず、VANジェネレータ226は、VANを生成しない。検証に失敗したため、認証アプリケーション223は、アカウントアプリケーション113にエラーを返し得、これは、ローカルサーバ115の開始を控え得る。
【0034】
使用される復号技術に関係なく、認証アプリケーション223は、暗号化された顧客ID208を正常に復号し得、それによって暗号化された顧客ID207を検証し得る(例えば、結果の顧客ID208をアカウントデータ224に格納された顧客IDと比較することによって、および/または、鍵205および/または206を使用した復号が成功したという指示に基づいて)。鍵205、206は、メモリ222に格納されているように示されているが、鍵205、206は、セキュアエレメントおよび/またはHSM225など、他の場所に格納され得る。そのような実施形態では、セキュアエレメントおよび/またはHSM225は、鍵205および/または206と暗号化関数を使用して、暗号化された顧客ID207を復号し得る。同様に、セキュアエレメントおよび/またはHSM225は、上述のように秘密鍵205およびカウンタ値204に基づいて多様化された鍵206を生成し得る。同じシステム上でホストされるように示されているが、認証アプリケーション223およびVANジェネレータ226は、異なるシステム上でホストされ得る。いくつかの実施形態では、オーケストレーション層(OL)は、認証アプリケーション223による暗号化されたデータの検証、および/またはVANジェネレータ226によるVANの生成を手配し得る。
【0035】
図2Bは、認証アプリケーション223が暗号化された顧客ID208を検証する実施形態を示している。示されるように、認証アプリケーション223は、検証210の指示をアカウントアプリケーション113に返し得る。同様に、VANジェネレータ226は、VAN227(有効期限およびCVVを含む)をアカウントアプリケーション113に送信し得る。いくつかの実施形態では、VAN227は、検証210と共に送信される。他の実施形態では、VAN227は、検証210とは別に送信される。検証210および/またはVAN227の受信に基づいて、アカウントアプリケーション113は、ローカルサーバ115を開始することを決定し得る。いくつかの実施形態では、VAN227は、ローカルサーバ115が開始された後に生成および/または送信される。さらに、アカウントアプリケーション113は、アカウントデータ224内のアカウントに関連付けられた、名、姓、電話番号、電子メールアドレス、請求先住所、および/または配送先住所など、サーバ220から他のデータを受信し得る。
【0036】
図2Cは、アカウントアプリケーション113がデバイス110でローカルサーバ115を開始した実施形態を示している。示されるように、ローカルサーバ115は、VAN227を含む。次に、アカウントアプリケーション113は、ローカルサーバ115のポート番号を含むURLを生成し得、このURLは、要求側アプリケーション114-1に向けられる。次いで、URLは、要求側アプリケーション114-1を開き、アプリケーション114-1がOS112のバックグラウンドで実行されているローカルサーバ115との接続を確立することを可能にする。
【0037】
図2Dは、他のアプリケーション114-1がローカルサーバ115との接続を確立した実施形態を示している。示されるように、ローカルサーバ115は、VAN227(有効期限およびCVVを含む)を他のアプリケーション114-1に提供し得る。次いで、他のアプリケーション114-1は、支払いフォームなど、他のアプリケーション114-1で提示されるフォームにVAN227を自動入力し得る。上述のように、ローカルサーバ115は、VAN227に関連付けられた請求先住所、アカウントデータ224内のアカウントの請求先住所、アカウントデータ224からの配送先住所、アカウント所有者の名前など、他のアカウント関連の詳細をさらに提供し得る。そうすることで、他のアプリケーション114-1は、関連データを1つまたは複数のフォームフィールドに自動入力して、チェックアウトプロセス(または他のアプリケーション114-1の他のプロセスまたはワークフロー)の少なくとも一部を自動化できる。より一般的には、ローカルサーバ115を含むアカウントアプリケーション113は、モバイルオペレーティングシステム112内の他のアプリケーションにアクセス可能なアプリケーションベースの販売時点情報管理システムを提供するが、これらのアプリケーションは、OS112内の異なるエンティティに登録され得る。
【0038】
図3Aは、モバイルオペレーティングシステム内のアプリケーション間の通信を可能にする例示的な実施形態を示す概略
図300である。示されるように、
図3Aは、例示的なアプリケーション114を実行するモバイルデバイス110を含む。例えば、アプリケーション114は、ユーザが注文を出し、支払情報または注文を提供することを可能にするアプリケーションであり得る。示されるように、アプリケーション114のグラフィカルユーザインターフェース(GUI)は、フィールド301~305を有する支払いフォームを含み、フィールド301は、名前フィールド、フィールド302は、アカウント番号フィールド、フィールド303は、有効期限フィールド、フィールド304は、CVVフィールド、フィールド305は、アドレスフィールドである。示されるように、アプリケーション114は、アカウントアプリケーション113などの銀行アプリケーションからの仮想アカウント番号を使用してチェックアウトを完了するために、通知309を選択することを指定する通知309を出力し得る。
【0039】
図3Bは、ユーザが通知309を選択した実施形態を示す概略
図310である。そうすることで、アプリケーション114は、アカウントアプリケーション113へのURL125を生成し得、URL125は、アプリケーション114の識別子をパラメータとして含む。開かれると、URL125により、アカウントアプリケーション113がOS112のフォアグラウンドで開かれる。
図3Bに示されるように、アカウントアプリケーション113は、ユーザに、認証資格情報(図示せず)を提供し、非接触カード201をモバイルデバイス110にタップして認証を進めることを指定する通知306を出力するように指示し得る。非接触カード201がモバイルデバイス110にタップされると、アカウントアプリケーション113は、通信インターフェース218を介して非接触カード201に指示を送信し、前述のように暗号化されたデータ(例えば、暗号化された顧客ID208)を生成し、暗号化されたデータをアカウントアプリケーション113に送信する。アカウントアプリケーション113は、受信すると、暗号化されたデータをサーバ220に送信し得、そこで認証アプリケーション223は、上述のように鍵多様化を使用して暗号化されたデータを検証する。次に、認証アプリケーション223は、検証の指示をアカウントアプリケーション113に送信し得る。さらに、暗号化されたデータが検証された場合、認証アプリケーション223は、VANジェネレータ226に、VAN、VANの有効期限、およびVANのアカウント番号を生成するように指示し得る。次に、VANジェネレータ226は、VAN、有効期限、およびCVVをアカウントアプリケーション113に送信し得る。さらに、サーバ220は、アカウント所有者名、請求先住所、配送先住所、電話番号、電子メールアドレスなどの追加データをアカウントアプリケーション113に送信し得る。
【0040】
アカウントアプリケーション113が、サーバ220が暗号化されたデータを検証したことを指定する指示を受信すると、アカウントアプリケーション113は、デバイス110でローカルサーバ115を開始し得る。次に、アカウントアプリケーション113は、要求側アプリケーション114に向けられたURL126を生成し得、URL126のパラメータは、ローカルサーバ115のポート番号を含む。次に、アプリケーション114は、上述のようにローカルサーバ115に接続し、例えば、名前、アドレス、VAN、有効期限、およびCVVなどの関連データを要求し得る。
【0041】
図3Cは、アプリケーション114がローカルサーバ115から要求されたデータを受信した実施形態を示す概略
図320である。アプリケーション114は、アプリケーション114がデータを要求および/または受信し、受信したデータを解析できるようにするSDKまたはAPIを含み得る。示されるように、アプリケーション114は、ユーザの名前を名前フィールド301に自動入力し、仮想アカウント番号をアカウント番号フィールド302に自動入力し、有効期限を有効期限フィールド303に自動入力し、CVVをCVVフィールド304に自動入力し、アドレスをアドレスフィールド305に自動入力し得る。その後、ユーザはボタン311を使用して購入を完了し得る。そうすることで、購入を完了し得る。さらに、フィールド301~305に入力されたデータは、アプリケーション114に関連付けられたユーザプロファイルに格納され得る。
【0042】
開示された実施形態の操作は、以下の図を参照してさらに説明され得る。いくつかの図は、論理フローを含み得る。本明細書に提示されるそのような図は、特定の論理フローを含み得るが、論理フローは、本明細書に記載されるような一般的な機能をどのように実施できるかの例を提供するに過ぎないことが理解され得る。さらに、所与の論理フローは、特に明記しない限り、必ずしも提示された順序で実行される必要はない。さらに、所与の論理フローは、ハードウェア要素、プロセッサによって実行されるソフトウェア要素、またはそれらの任意の組み合わせによって実施され得る。この文脈において、実施形態は、限定されない。
【0043】
図4は、論理フロー400の一実施形態を示している。論理フロー400は、本明細書に記載の1つまたは複数の実施形態によって実行される動作のいくつかまたはすべてを表し得る。例えば、論理フロー400は、モバイルオペレーティングシステムにおいてアプリケーションベースの販売時点情報管理システムを提供するための動作のいくつかまたはすべてを含み得る。実施形態は、この文脈に限定されない。
【0044】
示されるように、論理フロー400は、デバイス110がモバイルOS112のフォアグラウンドで第1のアプリケーションを出力するブロック405で開始する。例えば、第1のアプリケーションは、業者によって提供されるアプリケーションであり得るアプリケーション114-1であり得る。ブロック410で、第1のアプリケーションは、第2のアプリケーションからデータを受信することを指定する指示を受信し得る。第2のアプリケーションは、アカウントアプリケーション113であり得る。例えば、業者アプリケーションを使用して食料品を注文しようとしている間、ユーザは、アカウントアプリケーション113からの仮想アカウント番号を使用して食料品の代金を支払うことを指定し得る。ブロック415で、第1のアプリケーションは、第2のアプリケーションに向けられた第1のURLを生成する。第1のURLは、パラメータとして第1のアプリケーションの一意の識別子を含み得る。
【0045】
ブロック420で、OS112は、第1のURLにアクセスすることを許可し、それによって、OS112のフォアグラウンドで第2のアプリケーション(例えば、アカウントアプリケーション113)を開く。ブロック425で、第2のアプリケーションは、非接触カード201からアカウントの認証資格情報および/または暗号化されたデータを受信し得る。例えば、ユーザは、生体認証資格情報を提供し、非接触カード201をデバイス110にタップし得、これにより、カード201は、暗号化されたデータを生成および送信し得る。次いで、第2のアプリケーションは、暗号化されたデータを認証サーバ220に送信し得る。暗号化されたデータが検証されると、サーバ220は、アカウントのVAN、有効期限、およびCVVを生成し得る。ブロック430で、第2のアプリケーションは、VAN、有効期限、CVV、および暗号化されたデータの検証をサーバ220から受信する。ブロック435で、第2のアプリケーションは、指定されたポートでモバイルデバイス110にローカルサーバ115を作成する。
【0046】
ブロック440で、第2のアプリケーションは、第2のURLを生成する。第2のURLは、第1のアプリケーションに向けられ得る。第2のURLのパラメータは、ローカルサーバ115のポート番号を備え得る。ブロック445で、第2のアプリケーションは、ローカルサーバ115および/または第2のアプリケーションをバックグラウンドタスクとしてOS112に登録し、それによって、ローカルサーバ115および/または第2のアプリケーションがOS112のバックグラウンドでしばらくの間実行できるようにする。いくつかの実施形態では、第2のアプリケーションは、第2のURLのパラメータを暗号化する。ブロック450で、第2のURLにアクセスして、OS112のフォアグラウンドで第1のアプリケーションを開く一方、ローカルサーバ115および/または第2のアプリケーションは、OS112のバックグラウンドで実行し続ける。第1のアプリケーションは、第2のURLのパラメータを復号し得る(暗号化されている場合)。
【0047】
ブロック455で、第1のアプリケーションは、ローカルサーバ115との接続を確立する。ブロック460で、第1のアプリケーションは、VAN、有効期限、およびCVVを備えるデータを要求し、ローカルサーバ115から受信する。暗号化されている場合、第1のアプリケーションは、受信したVAN、有効期限、およびCVVを復号し得る。ブロック465で、第1のアプリケーションは、受信したデータを処理する。例えば、アプリケーション114は、VAN、有効期限、CVV、住所情報、名、および姓を支払いフォームに自動記入し得る。次に、ユーザは、業者アプリケーション114で自動入力された支払い情報を使用して食料品の購入を完了し得る。
【0048】
図5は、論理フロー500の一実施形態を示している。論理フロー500は、本明細書に記載の1つまたは複数の実施形態によって実行される動作のいくつかまたはすべてを表し得る。例えば、論理フロー500は、モバイルオペレーティングシステムにおいてアプリケーションベースの販売時点情報管理システムを提供するための動作のいくつかまたはすべてを含み得る。実施形態は、この文脈に限定されない。
【0049】
示されるように、論理フロー500は、ブロック505で開始し、ユーザは、非接触カード201をモバイルデバイス110の通信範囲内に持ち込み(例えば、タップジェスチャを使用する)、非接触カード201に暗号化されたデータ(例えば、暗号化された顧客ID208)を生成させて送信させる。ブロック510で、非接触カード201のアプレット203は、非接触カードのメモリ202に格納されたカウンタ値204およびマスター鍵205を暗号化アルゴリズムを使用して暗号化することにより、多様化された鍵206を生成する。いくつかの実施形態では、アプレット203は、暗号化の前にカウンタ204をインクリメントし得る。ブロック515で、非接触カード201は、多様化された鍵206および暗号化アルゴリズムを使用してデータを暗号化し(例えば、顧客識別子207)、暗号化されたデータ(例えば、暗号化された顧客ID208)を生成する。
【0050】
ブロック520で、非接触カード201は、例えば、NFCを使用して、暗号化されたデータをモバイルデバイス110のアカウントアプリケーション113に送信し得る。ブロック525で、モバイルデバイス110のアカウントアプリケーション113は、非接触カード201から受信したデータをサーバ220の認証アプリケーション223に送信し得る。ブロック530で、サーバ220の認証アプリケーション223は、秘密鍵205およびカウンタ値204を暗号化アルゴリズムへの入力として使用して、多様化された鍵206を生成し得る。一実施形態では、認証アプリケーション223は、サーバ220のカウンタ値204をインクリメントして、非接触カード201のメモリ内のカウンタ値204と同期させる。
【0051】
ブロック535で、認証アプリケーション223は、多様化された鍵206を使用して、モバイルデバイス110を介して非接触カード201から受信した暗号化された顧客ID208を復号する。そうすることで、少なくとも顧客ID207が得られ得る。顧客ID207を得ることによって、認証アプリケーション223は、ブロック540で非接触カード201から受信したデータを検証し得る。例えば、認証アプリケーション223は、顧客ID207をアカウントデータ224内の関連するアカウントの顧客識別子と比較し、一致に基づいてデータを検証し得る。ブロック545で、VANジェネレータ226は、ブロック540での暗号化されたデータの検証に基づいて、VAN、有効期限、およびCVVを生成する。
【0052】
ブロック550で、サーバ220は、VAN、有効期限、CVV、および暗号化されたデータが検証されたことを指定するアカウントアプリケーション113への指示を送信し得る。いくつかの実施形態では、検証の指示は、送信されない。そのような実施形態では、VAN、有効期限、およびCVV(および/または任意の他のアカウント関連データ)の送信は、暗号化されたデータが検証されたことを示すものとして機能する。ブロック555で、アカウントアプリケーション113は、ローカルサーバ115を開始し得る。そうすることにより、ローカルサーバ115は、例えば、VANおよび関連データを提供して他のアプリケーションでの購入を完了することにより、モバイルデバイス110で実行する他のアプリケーションに対する販売時点情報管理アプリケーションとして機能できる。
【0053】
図6Aは、クレジットカード、デビットカード、および/またはギフトカードなどの支払いカードを備え得る非接触カード201を示している。示されるように、非接触カード201は、カード201の前面または背面に表示されるサービスプロバイダ602によって発行され得る。いくつかの例では、非接触カード201は、支払いカードとは関係がなく、識別カードを備え得るが、これに限定されない。いくつかの例では、支払いカードは、デュアルインターフェース非接触支払いカードを備え得る。非接触カード201は、プラスチック、金属、および他の材料で構成される単一層または1つまたは複数の積層層を含み得る基板610を備え得る。例示的な基板材料は、ポリ塩化ビニル、ポリ塩化ビニルアセテート、アクリロニトリルブタジエンスチレン、ポリカーボネート、ポリエステル、陽極酸化チタン、パラジウム、金、カーボン、紙、および生分解性材料を含む。いくつかの例では、非接触カード201は、ISO/IEC7810規格のID-1フォーマットに準拠する物理的特性を有し得、そうでなければ、非接触カードは、ISO/IEC14443規格に準拠し得る。しかしながら、本開示に係る非接触カード201は、異なる特性を有し得、本開示は、支払いカードに非接触カードを実施する必要がないことを理解されたい。
【0054】
非接触カード201は、カードの前面および/または背面に表示される識別情報615、および接触パッド620も含み得る。接触パッド620は、モバイルデバイス110、ユーザデバイス、スマートフォン、ラップトップ、デスクトップ、またはタブレットコンピュータなどの他の通信デバイスとの接触を確立するように構成され得る。非接触カード201は、処理回路、アンテナおよび
図6Aに示されていない他のコンポーネントも含み得る。これらのコンポーネントは、接触パッド620の背後または基板610上の他の場所に配置され得る。非接触カード201はまた、カードの背面に位置し得る磁気ストリップまたはテープを含み得る(
図6Aには示されていない)。
【0055】
図6Bに示されるように、非接触カード201の接触パッド620は、マイクロプロセッサ630およびメモリ202を含む、情報を格納および処理するための処理回路625を含み得る。処理回路625は、本明細書に記載の機能を実行するために必要に応じて、プロセッサ、メモリ、エラーおよびパリティ/CRCチェッカ、データエンコーダ、衝突防止アルゴリズム、コントローラ、コマンドデコーダ、セキュリティプリミティブ、および改ざん防止ハードウェアを含む追加のコンポーネントを含み得ることが理解される。
【0056】
メモリ202は、リードオンリーメモリ、ライトワンスリードマルチプルメモリ、またはリード/ライトメモリ、例えば、RAM、ROM、およびEEPROMであり得、非接触カード201は、これらのメモリの1つまたは複数を含み得る。リードオンリーメモリは、工場出荷時に読み取り専用または1回限りのプログラムが可能であり得る。1回限りのプログラムにより、一度書き込んで何度も読み取ることができる。ライトワンス/リードマルチプルメモリは、メモリチップが工場から出荷された後のある時点でプログラムされ得る。メモリは、一度プログラムされると、書き換えられないかもしれないが、何度も読み取られ得る。リード/ライトメモリは、工場出荷後に何度もプログラムおよび再プログラムされ得る。リード/ライトメモリは、工場出荷後に何度も読み取られ得る。
【0057】
メモリ202は、1つまたは複数のアプレット203、カウンタ値204、秘密鍵205、多様化された鍵206、および1つまたは複数の顧客ID207を格納するように構成され得る。1つまたは複数のアプレット203は、Java(登録商標)カードアプレットなど、1つまたは複数の非接触カード上で実行するように構成された1つまたは複数のソフトウェアアプリケーションを備え得る。しかしながら、アプレット203は、Javaカードアプレットに限定されず、代わりに、非接触カードまたは限られたメモリを有する他のデバイス上で動作可能な任意のソフトウェアアプリケーションであり得ることが理解される。顧客ID207は、非接触カード201のユーザに割り当てられた一意の英数字識別子を備え得、識別子は、非接触カードのユーザを他の非接触カードユーザと区別し得る。いくつかの例では、顧客ID207は、顧客とその顧客に割り当てられたアカウントの両方を識別し、さらに顧客のアカウントに関連付けられた非接触カードを識別し得る。いくつかの実施形態では、アプレット203は、顧客ID207を暗号化するために鍵205および/または206を用いて暗号化アルゴリズムへの入力として顧客ID207を使用し得る。同様に、アプレット203は、暗号化された顧客ID207をパラメータとして含むURLを構築し得る。
【0058】
前述の例示的な実施形態のプロセッサおよびメモリ要素は、接触パッドを参照して説明されているが、本開示は、それに限定されない。これらの要素は、パッド620の外部に、またはそれから完全に分離して、または接触パッド620内に位置するプロセッサ630およびメモリ202要素に加えて、さらなる要素として実施され得ることが理解される。
【0059】
いくつかの例では、非接触カード201は、1つまたは複数のアンテナ655を備え得る。1つまたは複数のアンテナ655は、非接触カード201内および接触パッド620の処理回路625の周りに配置され得る。例えば、1つまたは複数のアンテナ655は、処理回路625と一体化され得、1つまたは複数のアンテナ655は、外部ブースターコイルと共に使用され得る。他の例として、1つまたは複数のアンテナ655は、接触パッド620および処理回路625の外部にあり得る。
【0060】
一実施形態では、非接触カード201のコイルは、空芯変圧器の二次側として機能し得る。端末は、電力または振幅変調を切断することによって非接触カード201と通信し得る。非接触カード201は、1つまたは複数のコンデンサを介して機能的に維持され得る非接触カードの電源接続におけるギャップを使用して、端末から送信されるデータを推測し得る。非接触カード201は、非接触カードのコイルまたは負荷変調の負荷を切り替えることにより、通信を返し得る。負荷変調は、干渉によって端末のコイルで検出され得る。より一般的には、アンテナ655、処理回路625、および/またはメモリ202を使用して、非接触カード201は、NFC、ブルートゥース(登録商標)、および/またはWi-Fi通信を介して通信するための通信インターフェースを提供する。
【0061】
上で説明したように、非接触カード201は、Javaカードなどのメモリが限られているスマートカードまたは他のデバイス上で動作可能なソフトウェアプラットフォーム上に構築され得、1つまたは複数のアプリケーションまたはアプレットは、安全に実行され得る。アプレットは、非接触カードに追加され、様々なモバイルアプリケーションベースの使用事例で多要素認証(MFA)用のワンタイムパスワード(OTP)を提供し得る。アプレットは、モバイルNFCリーダ(例えば、デバイス110の通信インターフェース218)などのリーダからの近距離無線データ交換要求などの1つまたは複数の要求に応答し、NDEFテキストタグとして符号化された暗号的に安全なOTP(例えば、暗号化された顧客ID)を備えるNDEFメッセージを生成するように構成され得る。
【0062】
図7は、前述のような様々な実施形態を実施するのに適し得るコンピューティングシステム702を備える例示的なコンピューティングアーキテクチャ700の実施形態を示している。様々な実施形態では、コンピューティングアーキテクチャ700は、電子デバイスを備えるか、またはその一部として実施され得る。いくつかの実施形態では、コンピューティングアーキテクチャ700は、例えば、システム100および/または200の1つまたは複数のコンポーネントを実施するシステムを代表し得る。いくつかの実施形態では、コンピューティングシステム702は、例えば、非接触カード201、モバイルデバイス110、および認証サーバ220の代表であり得る。実施形態は、この文脈に限定されない。より一般的には、コンピューティングアーキテクチャ700は、
図1~
図6Bを参照して本明細書で説明されるすべての論理、アプリケーション、システム、方法、装置、および機能を実施するように構成される。
【0063】
このアプリケーションで使用される用語「システム」および「コンポーネント」および「モジュール」は、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連エンティティを指すことを意図しており、その例は、例示的なコンピューティングアーキテクチャ700によって提供される。例えば、コンポーネントは、コンピュータプロセッサ上で実行されるプロセス、コンピュータプロセッサ、ハードディスクドライブ、(光学および/または磁気記憶媒体の)複数のストレージドライブ、オブジェクト、実行可能なもの、実行スレッド、プログラム、および/またはコンピュータであり得るが、これらに限定されない。例として、サーバ上で実行されているアプリケーションとサーバの両方は、コンポーネントであり得る。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッド内に常駐し得、コンポーネントは、1台のコンピュータにローカライズされ、および/または2台以上のコンピュータ間で分散され得る。さらに、コンポーネントは、様々なタイプの通信媒体によって互いに通信可能に結合され、動作を調整し得る。調整には、情報の一方向または双方向の交換が含まれ得る。例えば、コンポーネントは、通信媒体を介して通信される信号の形で情報を通信し得る。情報は、様々な信号線に割り当てられた信号として実施され得る。このような割り当てでは、各メッセージは、信号である。しかしながら、さらなる実施形態は、代替としてデータメッセージを使用し得る。このようなデータメッセージは、様々な接続を介して送信され得る。接続例は、パラレルインターフェース、シリアルインターフェース、およびバスインターフェースを含む。
【0064】
コンピューティングシステム702は、1つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インターフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入力/出力(I/O)コンポーネント、電源などの様々な一般的なコンピューティング要素を含む。しかしながら、実施形態は、コンピューティングシステム702による実施に限定されない。
【0065】
図7に示されるように、コンピューティングシステム702は、プロセッサ704、システムメモリ706、およびシステムバス708を備える。プロセッサ704は、AMD(登録商標)Athlon(登録商標)、Duron(登録商標)およびOpteron(登録商標)プロセッサ、ARM(登録商標)アプリケーション、組み込みおよびセキュアプロセッサ、IBM(登録商標)およびMotorola(登録商標)DragonBall(登録商標)およびPowerPC(登録商標)プロセッサ、IBMおよびSony(登録商標)Cellプロセッサ、Intel(登録商標)Celeron(登録商標)、Core(登録商標)、Core(2)Duo(登録商標)、Itanium(登録商標)、Pentium(登録商標)、Xeon(登録商標)、およびXScale(登録商標)プロセッサおよび類似のプロセッサを含むがこれらに限定されない、様々な市販のコンピュータプロセッサのいずれかであり得る。デュアルマイクロプロセッサ、マルチコアプロセッサ、およびその他のマルチプロセッサアーキテクチャも、プロセッサ704として使用され得る。
【0066】
システムバス708は、システムメモリ706からプロセッサ704を含むがこれらに限定されないシステムコンポーネントにインターフェースを提供する。システムバス708は、様々な市販のバスアーキテクチャのいずれかを使用して、メモリバス(メモリコントローラの有無にかかわらず)、周辺バス、およびローカルバスにさらに相互接続し得るいくつかのタイプのバス構造のいずれかであり得る。インターフェースアダプタは、スロットアーキテクチャを介してシステムバス708に接続し得る。スロットアーキテクチャの例は、アクセラレーテッドグラフィックスポート(AGP)、カードバス、(拡張)業界標準アーキテクチャ((E)ISA)、マイクロチャネルアーキテクチャ(MCA)、NuBus、ペリフェラルコンポーネントインターコネクト(拡張)(PCI(X))、PCI Express、Personal Computer Memory Card International Association(PCMCIA)などを含むがこれらに限定されない。
【0067】
システムメモリ706は、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレートDRAM(DDRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、プログラマブルROM(PROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ(例えば、1つまたは複数のフラッシュアレイ)、強誘電性ポリマメモリ、オボニックメモリ、相変化または強誘電性メモリなどのポリマメモリ、シリコン酸化物窒化物酸化物シリコン(SONOS)メモリ、磁気または光カード、独立ディスクの冗長アレイ(RAID)ドライブなどのデバイスのアレイ、ソリッドステートメモリデバイス(例えば、USBメモリ、ソリッドステートドライブ(SSD))、および情報の格納に適したその他のタイプの記憶媒体などの1つまたは複数の高速メモリユニットの形式の様々なタイプのコンピュータ可読記憶媒体を含み得る。
図7に示される図示の実施形態では、システムメモリ706は、不揮発性メモリ710および/または揮発性メモリ712を含み得る。不揮発性メモリ710には、基本入出力システム(BIOS)が格納され得る。
【0068】
コンピューティングシステム702は、内部(または外部)ハードディスクドライブ(HDD)714、リムーバブル磁気ディスク718からの読み取りまたはリムーバブル磁気ディスク718への書き込みを行う磁気フロッピディスクドライブ(FDD)716、およびリムーバブル光ディスク722(例えば、CD-ROMまたはDVD)からの読み取りまたはリムーバブル光ディスク722への書き込みを行う光ディスクドライブ720を含む、1つまたは複数の低速メモリユニットの形式の様々なタイプのコンピュータ可読記憶媒体を含み得る。HDD714、FDD716、および光ディスクドライブ720は、それぞれ、HDDインターフェース724、FDDインターフェース726、および光学ドライブインターフェース728によってシステムバス708に接続され得る。外部ドライブ実施用のHDDインターフェース724は、ユニバーサルシリアルバス(USB)およびIEEE1394インターフェース技術の少なくとも一方または両方を含み得る。コンピューティングシステム702は、一般に、
図1~
図6Bを参照して本明細書で説明されるすべての論理、システム、方法、装置、および機能を実施するように構成される。
【0069】
ドライブおよび関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ可読命令、コンピュータ実行可能命令などの揮発性および/または不揮発性ストレージを提供する。例えば、多数のプログラムモジュールは、オペレーティングシステム730、1つまたは複数のアプリケーションプログラム732、他のプログラムモジュール734、およびプログラムデータ736を含む、ドライブおよびメモリユニット710、712に格納され得る。一実施形態では、1つまたは複数のアプリケーションプログラム732、他のプログラムモジュール734、およびプログラムデータ736は、例えば、システム100、200の様々なアプリケーションおよび/またはコンポーネント、例えば、アプレット203、カウンタ204、秘密鍵205、多様化された鍵206、顧客ID207、オペレーティングシステム112、アカウントアプリケーション113、他のアプリケーション114、認証アプリケーション223、アカウントデータ224、および/または暗号化された顧客ID208を含み得る。
【0070】
ユーザは、1つまたは複数の有線/無線入力デバイス、例えば、キーボード738およびマウス740などのポインティングデバイスを介して、コンピューティングシステム702にコマンドと情報を入力し得る。その他の入力デバイスには、マイク、赤外線(IR)リモートコントロール、無線周波数(RF)リモートコントロール、ゲームパッド、スタイラスペン、カードリーダ、ドングル、指紋リーダ、グラブ、グラフィックタブレット、ジョイスティック、キーボード、網膜リーダ、タッチスクリーン(例えば、容量性、抵抗性など)、トラックボール、トラックパッド、センサ、スタイラスなどを含み得る。これらおよび他の入力デバイスは、システムバス708に結合された入力デバイスインターフェース742を介してプロセッサ704に接続されることがよくあるが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインターフェースなどの他のインターフェースによって接続され得る。
【0071】
モニタ744または他のタイプの表示デバイスも、ビデオアダプタ746などのインターフェースを介してシステムバス708に接続されている。モニタ744は、コンピューティングシステム702の内部または外部にあり得る。モニタ744に加えて、コンピュータは通常、スピーカ、プリンタなどの他の周辺出力デバイスを含む。
【0072】
コンピューティングシステム702は、リモートコンピュータ748などの1つまたは複数のリモートコンピュータへの有線および/または無線通信を介した論理接続を使用して、ネットワーク環境で動作し得る。リモートコンピュータ748は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースの娯楽機器、ピアデバイス、または他の一般的なネットワークノードであり得、通常、コンピューティングシステム702に関連して記載された要素の多くまたはすべてを含むが、簡潔にするために、メモリ/ストレージデバイス750のみが示されている。示されている論理接続には、ローカルエリアネットワーク(LAN)752および/またはより大きなネットワーク、例えば、ワイドエリアネットワーク(WAN)754への有線/無線接続が含まれる。このようなLANおよびWANネットワーク環境は、オフィスや企業では一般的であり、イントラネットなどの企業規模のコンピュータネットワークを容易にする。これらはすべて、例えば、インターネットなどのグローバル通信ネットワークに接続し得る。実施形態では、
図2のネットワーク230は、LAN752およびWAN754のうちの1つまたは複数である。
【0073】
LANネットワーキング環境で使用される場合、コンピューティングシステム702は、有線および/または無線通信ネットワークインターフェースまたはアダプタ756を介してLAN752に接続される。アダプタ756は、アダプタ756の無線機能と通信するためにその上に配置された無線アクセスポイントを含み得るLAN752への有線および/または無線通信を容易にし得る。
【0074】
WANネットワーキング環境で使用される場合、コンピューティングシステム702は、モデム758を含み得るか、またはWAN754上の通信サーバに接続されるか、またはインターネットを経由するなど、WAN754上で通信を確立するための他の手段を有する。モデム758は、内部または外部であり、有線および/または無線デバイスであり、入力デバイスインターフェース742を介してシステムバス708に接続する。ネットワーク環境では、コンピューティングシステム702に関して示されたプログラムモジュール、またはその一部は、リモートメモリ/ストレージデバイス750に格納され得る。示されたネットワーク接続は例示であり、コンピュータ間の通信リンクを確立する他の手段を使用できることが理解されよう。
【0075】
コンピューティングシステム702は、無線通信(例えば、IEEE802.16無線変調技術)で動作可能に配置された無線デバイスなど、IEEE802規格ファミリを使用して有線および無線デバイスまたはエンティティと通信するように動作可能である。これには、少なくともWi-Fi(または無線フィデリティ)、WiMax、ブルートゥース(登録商標)ワイヤレステクノロジなどが含まれる。したがって、通信は、従来のネットワークと同様に事前定義された構造、または少なくとも2つのデバイス間での単なるアドホック通信であり得る。Wi-Fiネットワークは、IEEE802.11x(a、b、g、nなど)と呼ばれる無線技術を用いて、安全で信頼性の高い高速な無線接続を提供する。Wi-Fiネットワークは、コンピュータを相互に接続したり、インターネットに接続したり、有線ネットワーク(IEEE802.3関連のメディアと機能を使用)に接続したりするために使用し得る。
【0076】
様々な実施形態は、ハードウェア要素、ソフトウェア要素、または両方の組み合わせを使用して実施され得る。ハードウェア要素の例は、プロセッサ、マイクロプロセッサ、回路、回路要素(例えば、トランジスタ、抵抗、コンデンサ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどを含み得る。ソフトウェアの例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインターフェース、アプリケーションプログラムインターフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、単語、値、記号、またはそれらの任意の組み合わせを含み得る。一実施形態がハードウェア要素および/またはソフトウェア要素を使用して実施されるかどうかの決定は、所望の計算速度、電力レベル、耐熱性、処理サイクルバジェット、入力データ速度、出力データ速度、メモリリソース、データバス速度およびその他の設計または性能の制約などの任意の数の要因に従って変化し得る。
【0077】
少なくとも1つの実施形態の1つまたは複数の態様は、プロセッサ内の様々な論理を表す機械可読媒体に格納された代表的な命令によって実施でき、機械によって読み取られると、機械は、本明細書で説明する技術を実行する論理を製造する。「IPコア」として知られるこのような表現は、有形の機械可読媒体に格納され、論理またはプロセッサを作成する製造機械にロードするために、様々な顧客または製造施設に提供される。いくつかの実施形態は、例えば、機械によって実行された場合に、実施形態に従った方法および/または動作を機械に実行させることができる命令または命令セットを格納することができる機械可読媒体または物品を使用して実施され得る。そのような機械は、例えば、任意の適切な処理プラットフォーム、コンピューティングプラットフォーム、コンピューティングデバイス、処理デバイス、コンピューティングシステム、処理システム、コンピュータ、プロセッサなどを含むことができ、ハードウェアおよび/またはソフトウェアの任意の適切な組み合わせを使用して実施し得る。機械可読媒体または物品は、例えば、任意の適切なタイプのメモリユニット、メモリデバイス、メモリ物品、メモリ媒体、ストレージデバイス、ストレージ物品、ストレージ媒体および/またはストレージユニット、例えば、メモリ、リムーバブルまたは非リムーバブルな媒体、消去可能または消去不可能な媒体、書き込み可能または再書き込み可能な媒体、デジタルまたはアナログ媒体、ハードディスク、フロッピディスク、コンパクトディスクリードオンリーメモリ(CD-ROM)、コンパクトディスクレコーダブル(CD-R)、コンパクトディスクリライタブル(CD-RW)、光ディスク、磁気メディア、光磁気メディア、リムーバブルメモリカードまたはディスク、各種デジタルバーサタイルディスク(DVD)、テープ、カセットなどを含み得る。命令は、ソースコード、コンパイル済みコード、解釈済みコード、実行可能コード、静的コード、動的コード、暗号化コードなどの適切なタイプのコードを含むことができ、任意の適切な高レベル、低レベル、オブジェクト指向、視覚的、コンパイル型および/または解釈型のプログラミング言語を使用して実施され得る。
【0078】
例示的な実施形態の前述の説明は、例示および説明を目的として提示された。網羅的であること、または本開示を開示された正確な形式に限定することを意図していない。この開示に照らして、多くの修正および変更が可能である。本開示の範囲は、この詳細な説明ではなく、添付の請求の範囲によって限定されることが意図されている。本出願の優先権を主張する将来の出願は、開示された主題を異なる方法で主張し得、一般に、本明細書で様々に開示または実証されるように、1つまたは複数の限定の任意のセットを含み得る。
【国際調査報告】