(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-10
(45)【発行日】2023-02-20
(54)【発明の名称】非接触カードの仮想番号を生成するためのオンデマンドアプリケーションを使用したフォームの安全な自動入力
(51)【国際特許分類】
G06F 21/35 20130101AFI20230213BHJP
G06F 21/60 20130101ALI20230213BHJP
【FI】
G06F21/35
G06F21/60 320
G06F21/60 360
(21)【出願番号】P 2021540182
(86)(22)【出願日】2020-01-29
(86)【国際出願番号】 US2020015536
(87)【国際公開番号】W WO2020160065
(87)【国際公開日】2020-08-06
【審査請求日】2022-01-04
(32)【優先日】2019-02-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519111877
【氏名又は名称】キャピタル・ワン・サービシーズ・リミテッド・ライアビリティ・カンパニー
【氏名又は名称原語表記】Capital One Services, LLC
(74)【代理人】
【識別番号】100145403
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100135703
【氏名又は名称】岡部 英隆
(74)【代理人】
【識別番号】100210701
【氏名又は名称】萩原 義則
(72)【発明者】
【氏名】ルール,ジェフリー
(72)【発明者】
【氏名】ルッツ,ウェイン
(72)【発明者】
【氏名】モートン,ポール
【審査官】局 成矢
(56)【参考文献】
【文献】国際公開第2017/222032(WO,A1)
【文献】特開2016-009236(JP,A)
【文献】米国特許出願公開第2016/0026997(US,A1)
【文献】特表2017-501517(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/35
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
デバイスが、非接触カードの通信インターフェースから、暗号化されたデータを備えるユニフォームリソースロケータ(URL)を受信することと、
前記デバイスが、前記URLに基づいてアプリケーションサーバから第1のアプリケーションをダウンロードすることと、
前記デバイスで実行されている前記第1のアプリケーションが、前記暗号化されたデータを認証サーバに送信することと、
前記第1のアプリケーションが、仮想アカウント番号サーバから、仮想アカウント番号を受信することと、
前記第1のアプリケーションが、前記デバイスで実行されている自動入力サービスに前記仮想アカウント番号を提供することと、
前記自動入力サービスが、前記デバイスで実行されている第2のアプリケーションによって表示するために出力された支払いフォームのアカウント番号フィールドに前記仮想アカウント番号を自動入力することと、
を含む、コンピュータで実施される方法。
【請求項2】
前記方法は、
前記第1のアプリケーションをダウンロードした後、前記デバイスに前記第1のアプリケーションをインストールすること、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記方法は、
前記第2のアプリケーションが、前記非接触カードから前記URLを受信する前に、前記アカウント番号フィールド、有効期限フィールド、およびカード検証値(CVV)フィールドを備える前記支払いフォームを出力すること、
をさらに含む、請求項1に記載の方法。
【請求項4】
前記方法は、
前記第1のアプリケーションが、前記仮想アカウント番号サーバから、前記仮想アカウント番号に関連付けられた有効期限、および前記仮想アカウント番号に関連付けられたカード検証値(CVV)を受信することと、
前記第1のアプリケーションが、前記有効期限および前記CVVを前記自動入力サービスに提供することと、
前記自動入力サービスが、前記支払いフォームの前記有効期限フィールドに前記有効期限を、前記CVVフィールドに前記CVVを自動入力することと、
をさらに含む、請求項3に記載の方法。
【請求項5】
前記有効期限および前記CVVは、(i)前記仮想アカウント番号サーバによって生成された有効期限およびCVV、および(ii)アカウントデータベースに格納されている前記非接触カードの有効期限およびCVVのうちの1つまたは複数を備える、請求項4に記載の方法。
【請求項6】
前記第1のアプリケーションは、(i)ウェブブラウザで実行されるプログレッシブウェブアプリケーション、(ii)インスタントアプリケーション、および(iii)アプリケーションストアの外部で利用可能なアプリケーションのうちの少なくとも1つを備え、前記第2のアプリケーションは、(i)前記ウェブブラウザ、(ii)ネイティブオペレーティングシステムアプリケーション、および(iii)アプリケーションストアで利用可能なアプリケーションのうちの少なくとも1つを備える、請求項1に記載の方法。
【請求項7】
前記方法は、
前記アカウント番号フィールドに前記仮想アカウント番号を備える前記支払いフォームを提出すること、
をさらに含む、請求項1に記載の方法。
【請求項8】
前記方法は、
前記第1のアプリケーションをダウンロードする前に、前記デバイスの少なくとも1つの属性を前記アプリケーションサーバに送信すること、
をさらに含む、請求項1に記載の方法。
【請求項9】
プロセッサと、
命令を格納するメモリと、を備えるコンピューティング装置であって、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
非接触カードの通信インターフェースから、暗号化されたデータを備えるユニフォームリソースロケータ(URL)を受信することと、
前記URLに基づいてアプリケーションサーバから第1のアプリケーションをダウンロードすることと、
前記第1のアプリケーションが、前記暗号化されたデータを認証サーバに送信することと、
前記第1のアプリケーションが、仮想アカウント番号サーバから、仮想アカウント番号を受信することと、
前記第1のアプリケーションが、前記プロセッサで実行されている自動入力サービスに前記仮想アカウント番号を提供することと、
前記自動入力サービスが、前記プロセッサで実行されている第2のアプリケーションによって表示するために出力された支払いフォームのアカウント番号フィールドに前記仮想アカウント番号を自動入力することと、
を実行させる、コンピューティング装置。
【請求項10】
前記命令は、前記プロセッサに、
前記第1のアプリケーションをダウンロードした後、前記装置に前記第1のアプリケーションをインストールすること、
をさらに実行させる、請求項9に記載のコンピューティング装置。
【請求項11】
前記命令は、前記プロセッサに、
前記第2のアプリケーションが、前記非接触カードから前記URLを受信する前に、前記アカウント番号フィールド、有効期限フィールド、およびカード検証値(CVV)フィールドを備える前記支払いフォームを出力すること、
をさらに実行させる、請求項9に記載のコンピューティング装置。
【請求項12】
前記命令は、前記プロセッサに、
前記第1のアプリケーションが、前記仮想アカウント番号サーバから、前記仮想アカウント番号に関連付けられた有効期限および前記仮想アカウント番号に関連付けられたカード検証値(CVV)を受信することと、
前記第1のアプリケーションが、前記有効期限および前記CVVを前記自動入力サービスに提供することと、
前記自動入力サービスが、前記支払いフォームの前記有効期限フィールドに前記有効期限を、前記CVVフィールドに前記CVVを自動入力することと、
をさらに実行させる、請求項11に記載のコンピューティング装置。
【請求項13】
前記有効期限および前記CVVは、(i)前記仮想アカウント番号サーバによって生成された有効期限およびCVV、および(ii)アカウントデータベースに格納されている前記非接触カードの有効期限およびCVVのうちの1つまたは複数を備える、請求項12に記載のコンピューティング装置。
【請求項14】
前記第1のアプリケーションは、(i)ウェブブラウザで実行されるプログレッシブウェブアプリケーション、(ii)インスタントアプリケーション、および(iii)アプリケーションストアの外部で利用可能なアプリケーションのうちの少なくとも1つを備え、前記第2のアプリケーションは、(i)前記ウェブブラウザ、(ii)ネイティブオペレーティングシステムアプリケーション、および(iii)アプリケーションストアで利用可能なアプリケーションのうちの少なくとも1つを備える、請求項9に記載のコンピューティング装置。
【請求項15】
前記命令は、前記プロセッサに、
前記アカウント番号フィールドに前記仮想アカウント番号を備える前記支払いフォームを提出すること、
をさらに実行させる、請求項9に記載のコンピューティング装置。
【請求項16】
前記命令は、前記プロセッサに、
前記第1のアプリケーションをダウンロードする前に、前記装置の少なくとも1つの属性を前記アプリケーションサーバに送信すること、
をさらに実行させる、請求項9に記載のコンピューティング装置。
【請求項17】
非一時的なコンピュータ可読記憶媒体であって、前記コンピュータ可読記憶媒体は、命令を含み、前記命令は、デバイスのプロセッサによって実行されると、前記プロセッサに、
非接触カードの通信インターフェースから、暗号化されたデータを備えるユニフォームリソースロケータ(URL)を受信することと、
前記URLに基づいてアプリケーションサーバから第1のアプリケーションをダウンロードすることと、
前記プロセッサで実行されている前記第1のアプリケーションが、前記暗号化されたデータを認証サーバに送信することと、
前記第1のアプリケーションが、仮想アカウント番号サーバから、仮想アカウント番号を受信することと、
前記第1のアプリケーションが、前記プロセッサで実行されている自動入力サービスに前記仮想アカウント番号を提供することと、
前記自動入力サービスが、前記プロセッサで実行されている第2のアプリケーションによって表示するために出力された支払いフォームのアカウント番号フィールドに前記仮想アカウント番号を自動入力することと、
を実行させる、非一時的なコンピュータ可読記憶媒体。
【請求項18】
前記命令は、前記プロセッサに、
前記第1のアプリケーションをダウンロードした後、前記デバイスに前記第1のアプリケーションをインストールすること、
をさらに実行させる、請求項17に記載のコンピュータ可読記憶媒体。
【請求項19】
前記命令は、前記プロセッサに、
前記第2のアプリケーションが、前記非接触カードから前記URLを受信する前に、前記アカウント番号フィールド、有効期限フィールド、およびカード検証値(CVV)フィールドを備える前記支払いフォームを出力すること、
をさらに実行させる、請求項17に記載のコンピュータ可読記憶媒体。
【請求項20】
前記命令は、前記プロセッサに、
前記第1のアプリケーションが、前記仮想アカウント番号サーバから、前記仮想アカウント番号に関連付けられた有効期限および前記仮想アカウント番号に関連付けられたカード検証値(CVV)を受信することと、
前記第1のアプリケーションが、前記有効期限および前記CVVを前記自動入力サービスに提供することと、
前記自動入力サービスが、前記支払いフォームの前記有効期限フィールドに前記有効期限を、前記CVVフィールドに前記CVVを自動入力することと、
をさらに実行させる、請求項19に記載のコンピュータ可読記憶媒体。
【請求項21】
前記有効期限および前記CVVは、(i)前記仮想アカウント番号サーバによって生成された有効期限およびCVV、および(ii)アカウントデータベースに格納されている前記非接触カードの有効期限およびCVVのうちの1つまたは複数を備える、請求項20に記載のコンピュータ可読記憶媒体。
【請求項22】
前記第1のアプリケーションは、(i)ウェブブラウザで実行されるプログレッシブウェブアプリケーション、(ii)インスタントアプリケーション、および(iii)アプリケーションストアの外部で利用可能なアプリケーションのうちの少なくとも1つを備え、前記第2のアプリケーションは、(i)前記ウェブブラウザ、(ii)ネイティブオペレーティングシステムアプリケーション、および(iii)アプリケーションストアで利用可能なアプリケーションのうちの少なくとも1つを備える、請求項17に記載のコンピュータ可読記憶媒体。
【請求項23】
前記命令は、前記プロセッサに、
前記アカウント番号フィールドに前記仮想アカウント番号を備える前記支払いフォームを提出すること、
をさらに実行させる、請求項17に記載のコンピュータ可読記憶媒体。
【請求項24】
前記命令は、前記プロセッサに、
前記第1のアプリケーションをダウンロードする前に、前記デバイスの少なくとも1つの属性を前記アプリケーションサーバに送信すること、
をさらに実行させる、請求項17に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書の実施形態は、一般に、コンピューティングプラットフォーム、より具体的には、オンデマンドアプリケーションを使用して非接触カードの仮想番号を生成し、フォームフィールドを安全に自動入力することに関する。
【0002】
関連出願
この出願は、2019年2月1日に出願された「非接触カードの仮想番号を生成するためのオンデマンドアプリケーションを使用したフォームの安全な自動入力」という名称の米国特許出願第16/265,961号の優先権を主張する。前述の出願の内容は、その全体が参照により本明細書に援用される。
【背景技術】
【0003】
支払いカードのアカウント識別子は、多くの場合、長い数字および/または文字列である。そのため、ユーザがアカウント識別子を手動で正しく入力することは困難である。実際、ユーザは、しばしば間違いを犯し、コンピューティングインターフェース(例えば、支払いインターフェース)に間違ったアカウント番号を入力する。多くの場合、アプリケーションストアからダウンロードされたネイティブオペレーティングシステム(OS)アプリケーションは、ユーザがアカウント識別子をフォームに入力するのを支援する機能を含み得る。しかしながら、一部のユーザは、デバイスにそのようなアプリケーションを有し得ない。したがって、これらのユーザは、手動でアカウント識別子を正しく入力する必要がある。
【発明の概要】
【0004】
本明細書に開示される実施形態は、非接触カードをコンピューティングデバイスにタップして、フォームフィールドに自動入力され得る仮想カード番号を安全に生成するためのシステム、方法、製造品、およびコンピュータ可読媒体を提供する。一例によれば、第1のアプリケーションは、支払いフィールドを備えるフォームを出力し得る。オペレーティングシステム(OS)は、非接触カードから、暗号化されたデータを備えるユニフォームリソースロケータ(URL)を受信し得る。第2のアプリケーションは、受信されたURLから動的にダウンロードおよびインストールされ得る。第2のアプリケーションは、暗号化されたデータを認証サーバに送信し得、認証サーバは、暗号化されたデータを検証し得る。第2のアプリケーションは、仮想アカウント番号サーバから、仮想アカウント番号、仮想アカウント番号に関連付けられた有効期限、および仮想アカウント番号に関連付けられたCVVを受信し得る。第2のアプリケーションは、仮想アカウント番号、有効期限、およびCVVをOSの自動入力サービスに提供し得る。OSの自動入力サービスは、第1のアプリケーションの支払いフィールドに仮想アカウント番号を自動入力し得る。
【図面の簡単な説明】
【0005】
【
図1A】非接触カードをコンピューティングデバイスにタップして、フォームフィールドに自動入力され得る仮想カード番号を安全に生成するシステムの実施形態を示している。
【
図1B】非接触カードをコンピューティングデバイスにタップして、フォームフィールドに自動入力され得る仮想カード番号を安全に生成するシステムの実施形態を示している。
【
図1C】非接触カードをコンピューティングデバイスにタップして、フォームフィールドに自動入力され得る仮想カード番号を安全に生成するシステムの実施形態を示している。
【
図2A】非接触カードをコンピューティングデバイスにタップして、フォームフィールドに自動入力され得る仮想カード番号を安全に生成する実施形態を示している。
【
図2B】非接触カードをコンピューティングデバイスにタップして、フォームフィールドに自動入力され得る仮想カード番号を安全に生成する実施形態を示している。
【
図2C】非接触カードをコンピューティングデバイスにタップして、フォームフィールドに自動入力され得る仮想カード番号を安全に生成する実施形態を示している。
【
図2D】非接触カードをコンピューティングデバイスにタップして、フォームフィールドに自動入力され得る仮想カード番号を安全に生成する実施形態を示している。
【
図7】コンピューティングアーキテクチャの実施形態を示している。
【発明を実施するための形態】
【0006】
本明細書に開示される実施形態は、非接触カードを使用して、アプリケーション(例えば、銀行アプリケーション、アカウント管理アプリケーション、支払いアプリケーションなど)をデバイスにプリインストールする必要なしに、コンピューティングデバイス上のフォーム自動的に入力され得るカードデータ(例えば、アカウント番号、有効期限、および/またはカード検証値(CVV))を生成するための安全な技術を提供する。一般に、非接触カードは、コンピューティングデバイスがカードデータフィールドを含むフォームを出力しているときに、例えば、タップジェスチャを介して、コンピューティングデバイスの通信範囲内に入り得る。そうすることで、非接触カードは、コンピューティングデバイスに送信されるユニフォームリソースロケータ(URL)を生成する。URLの少なくとも一部は、1つまたは複数のアプリケーションおよび/またはアプリケーションセグメントをホストするアプリケーションサーバに向けられ得る。アプリケーションは、アプリケーションストアを介して利用可能なアプリケーションを含み得、一方、アプリケーションのセグメントは、アプリケーションの一部(例えば、1つまたは複数のページ、1つまたは複数の機能など)を含み得る。例えば、アプリケーションセグメントは、インスタントアプリケーションおよび/またはプログレッシブウェブアプリケーションなどのオンデマンドアプリケーションであり得る。URLに関連付けられた1つまたは複数のアプリケーションセグメントは、コンピューティングデバイスにダウンロードされ実行され得る。
【0007】
非接触カードによって生成されたURLは、検証プロセスの一部として認証サーバによって使用されるデータをさらに含み得る。例えば、URLは、検証プロセスの一部としてサーバによって復号される暗号化されたデータを含み得る。ダウンロードされたアプリケーションセグメントは、URLを受信し、暗号化されたデータを抽出し得る。ダウンロードされたアプリケーションは、検証のために暗号化されたデータを認証サーバに送信し得る。検証されると、認証サーバは、非接触カードに関連付けられたアカウントのカードデータを生成するように仮想アカウント番号サーバに指示し得る。カードデータは、仮想アカウント番号、有効期限、CVV、およびユーザの住所を含み得る。仮想アカウント番号は、非接触カードに関連付けられているアカウント番号とは異なるアカウント番号であり得る。次に、生成されたカードデータは、コンピューティングデバイス上で実行されているアプリケーションセグメントに送信され得る。アプリケーションセグメントは、カードデータをOSの自動入力サービスに提供し得る。自動入力サービスは、カードデータをフォームの対応する支払いフィールドに自動的に入力し得る。
【0008】
利点として、本明細書に開示される実施形態は、すべてのデバイスおよび関連するデータのセキュリティを改善する。例えば、本明細書に開示される実施形態は、ユーザがアプリケーションストアからアプリケーションをコンピューティングデバイスにインストールすることを必要とせずに、カードデータを自動入力するときにアプリケーションストアを介してインストールされるアプリケーションのセキュリティを提供する。さらに、従来のアプローチでは、ユーザがカードデータをフォームに手動で入力する必要がある。しかしながら、そうすることで、ユーザがカードデータをフォームに入力するときに、他のユーザまたはデバイスがカードデータをキャプチャし得る。ユーザがフォームにカードデータを手動で入力する必要がなくなるため、カードデータのセキュリティは、強化される。
【0009】
本明細書で使用される表記法および命名法を一般的に参照して、以下の詳細な説明の1つまたは複数の部分は、コンピュータまたはコンピュータのネットワーク上で実行されるプログラム手順に関して提示され得る。これらの手順の説明および表現は、当業者によって、それらの作業の実体を当業者に最も効果的に伝えるために使用される。手順はここにあり、一般に、望ましい結果につながる自己矛盾のない一連の操作であると考えられている。これらの操作は、物理量の物理的な操作を必要とする操作である。通常、必ずしもそうとは限らないが、これらの量は、格納、転送、結合、比較、およびその他の方法で操作できる電気信号、磁気信号、または光信号の形をとる。主に一般的な使用法の理由から、これらの信号をビット、値、要素、記号、文字、用語、数値などと呼ぶと便利な場合がある。しかしながら、これらおよび類似の用語はすべて、適切な物理量に関連付けられており、これらの量に適用される便利なラベルにすぎないことに留意すべきである。
【0010】
さらに、これらの操作は、加算または比較などの用語で呼ばれることが多く、これらは、一般に、人間のオペレータによって実行される精神的操作に関連付けられている。しかしながら、1つまたは複数の実施形態の一部を形成する本明細書に記載の操作のいずれにおいても、人間のオペレータのそのような能力は、必要ではなく、またはほとんどの場合望ましいものではない。むしろ、これらの操作は、機械操作である。様々な実施形態の操作を実行するための有用な機械は、本明細書の教示に従って書かれた、その中に格納されたコンピュータプログラムによって選択的にアクティブ化または構成されたデジタルコンピュータを含み、および/または必要な目的のために特別に構築された装置またはデジタルコンピュータを含む。様々な実施形態はまた、これらの操作を実行するための装置またはシステムに関する。これらの装置は、必要な目的のために特別に構築され得る。これらの様々な機械に必要な構造は、与えられた説明から明らかになる。
【0011】
ここで、図面を参照する。ここで、同様の参照番号は、全体を通して同様の要素を参照するために使用される。以下の説明では、説明の目的で、それらを完全に理解するために、多くの具体的な詳細が示されている。しかしながら、新規の実施形態は、これらの特定の詳細なしで実施できることは明らかであろう。他の例では、その説明を容易にするために、周知の構造およびデバイスがブロック図の形で示されている。意図は、請求の範囲内のすべての修正、均等物、および代替案をカバーすることである。
【0012】
図1Aは、開示された実施形態に対応する、例示的なシステム100の概略図を示している。示されるように、システム100は、1つまたは複数の非接触カード101、1つまたは複数のモバイルデバイス110、認証サーバ120、仮想アカウント番号サーバ140、およびアプリケーションサーバ150を含む。非接触カード101は、クレジットカード、デビットカード、ATMカード、ギフトカードなどのあらゆるタイプの支払いカードを代表するものである。非接触カード101は、NFC、EMV標準、または無線通信における他の短距離プロトコルを介してモバイルデバイス110と通信するように構成された、無線周波数識別(RFID)チップなどの1つまたは複数のチップ(図示せず)を備え得る。通信プロトコルの例としてNFCが使用されているが、本開示は、EMV標準、ブルートゥース(登録商標)、および/またはWi-Fiなどの他のタイプの無線通信にも同様に適用可能である。モバイルデバイス110は、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス、ラップトップ、ポータブルゲームデバイスなどのあらゆるタイプのネットワーク対応コンピューティングデバイスを代表するものである。サーバ120、140、150は、サーバ、ワークステーション、コンピューティングクラスタ、クラウドコンピューティングプラットフォーム、仮想化コンピューティングシステムなどのような任意のタイプのコンピューティングデバイスを代表するものである。
【0013】
示されるように、モバイルデバイス110のメモリ111は、オペレーティングシステム(OS)112のインスタンスを含む。オペレーティングシステム112の例は、アンドロイド(登録商標)OS、iOS(登録商標)、macOS(登録商標)、Linux(登録商標)、およびウィンドウズ(登録商標)オペレーティングシステムを含む。示されるように、OS112は、自動入力サービス114、ウェブブラウザ115、および1つまたは複数の他のアプリケーション116を含む。自動入力サービス114は、他のアプリケーション(例えば、ウェブブラウザ115および/または他のアプリケーション116)のビューにデータを挿入して、他のアプリケーションのフォームに入力する。自動入力サービス114はまた、アプリケーションのビューからユーザデータを取得し、後で使用するためにデータを格納し得る。自動入力サービス114は、本明細書の参照例として使用され、開示を限定すると見なされるべきではない。この開示は、アクセシビリティサービスなどのフォームフィールドにデータを挿入することにより、アプリケーションおよび/またはウェブページのフォームフィールドに自動的に入力する他のタイプのコードにも同様に適用できる。ウェブブラウザ115は、モバイルデバイス110がネットワーク130を介して(例えば、インターネットを介して)情報にアクセスすることを可能にするアプリケーションである。動作中、ウェブブラウザ115は、1つまたは複数のフォーム127を含むコンテンツにアクセスし得る。例えば、ウェブブラウザ115は、カードデータのフィールド(例えば、名前フィールド、カード番号フィールド、有効期限フィールド、CVVフィールド、請求先住所フィールド、配送先住所フィールドなど)を備えた1つまたは複数のフォーム127を含む銀行カード管理ページをロードし得る。他のアプリケーション116は、カードデータのフィールド(例えば、名前フィールド、カード番号フィールド、有効期限フィールド、CVVフィールド、請求先住所フィールド、配送先住所フィールドなど)を備えた1つまたは複数のフォーム129を含む任意のアプリケーションの代表である。例えば、他のアプリケーション116は、購入を処理するための専用の業者アプリケーション、サービス(例えば、タクシーサービス、配達サービスなど)のためのアプリケーションなどを含む。他のアプリケーション116の各例は、カードデータ用のフィールドを備えた1つまたは複数のフォーム129を含む。
【0014】
他の例として、ユーザは、ウェブブラウザ115および/または業者によって提供される他のアプリケーション116を使用して、業者のウェブサイトから購入を行い得る。トランザクションを完了するために、ユーザは、ウェブブラウザ115の1つまたは複数のフォーム127および/または他のアプリケーション116のフォーム129にカードデータを提供しなければならない。本明細書の参照例としてのウェブブラウザ115および/または他のアプリケーション116の使用は、開示がカードデータのフィールドを備えたフォームを含むすべてのタイプのアプリケーションおよびカードデータのフィールドを備えたすべてのタイプのフォームに等しく適用可能であるため、開示を限定すると見なされるべきではない。
【0015】
一般に、ユーザは、カードデータの1つまたは複数のフィールド(例えば、名前フィールド、カード番号フィールド、有効期限フィールド、CVVフィールド、請求先住所フィールド、配送先住所フィールドなど)を含むフォーム127、129に遭遇し得る。従来、ユーザは、自分の名前、カード番号、有効期限、CVV、および/または住所情報を手動で入力する必要がある。いくつかのモバイルオペレーティングシステムでは、このようなデータをフォームに自動入力できるが、他のモバイルオペレーティングシステムでは、このようなデータの自動入力に制限がある。さらに、データをフォームに自動入力できるオペレーティングシステムでは、そのためには専用のアプリケーションを使用してユーザを認証する必要がある。例えば、以前の解決策は、非接触カード101の発行者によって提供されるアカウント管理アプリケーションをインストールし、アプリケーションで認証して、フォーム127、129にカードデータを自動入力することをユーザに要求する。しかしながら、有利には、本明細書に開示される実施形態は、非接触カード101を活用して、デバイス110にプリインストールされているアプリケーション(アカウント管理アプリケーションなど)を必要とせずにOS112の自動入力サービス114にコピーされ得る仮想アカウント番号、有効期限、および/またはCVVの生成をトリガすることによってそのような問題を解決する。
【0016】
そうするために、ユーザは、非接触カード101をモバイルデバイス110にタップし、それによって、非接触カード101をモバイルデバイス110のカードリーダ119に十分に近づけて、非接触カード101の通信インターフェース107とモバイルデバイス110のカードリーダ119との間のNFCデータ転送を可能にし得る。いくつかの実施形態では、モバイルデバイス110は、アプリケーションプログラムインターフェース(API)呼び出しを介してカードリーダ119をトリガし得る。一例では、モバイルデバイス110は、ユーザがフォームフィールドなどのユーザインターフェースの要素をタップまたは選択することに応答するAPI呼び出しを介してカードリーダをトリガする。さらに、および/または代替的に、モバイルデバイス110は、カードリーダ119を定期的にポーリングすることに基づいて、カードリーダ119をトリガし得る。より一般的には、モバイルデバイス110は、カードリーダ119をトリガして、任意の実行可能な方法を使用して通信を行い得る。モバイルデバイス110と非接触カード101との間で通信が確立された後、非接触カード101のプロセッサ(図示せず)上で実行されるアプレット103は、通信インターフェース107を介してデータを生成し、モバイルデバイス110に送信する。いくつかの実施形態では、非接触カード101によって生成されたデータは、URL106を含み得る。URLは、アプリケーションサーバ150、または1つまたは複数のアカウントアプリケーション151をホストしている他の場所に向けられ得る。OS112がURL106を受信すると、OSは、URL106からアカウントアプリケーション151を動的にダウンロードし、アカウントアプリケーション151をデバイスに動的にインストールし得る。URL106はさらに、ローカルリソース(例えば、関連するアカウントアプリケーション151の1つまたは複数の特定のページ)を開くユニバーサルリンクURL(またはディープリンクURL)であり得る。モバイルデバイス110上で実行時に開かれるべきアカウントアプリケーション151のページは、URLのパラメータとして指定され得る。
【0017】
より一般的には、URL106は、アプリケーションサーバ150の1つまたは複数のアカウントアプリケーション151に向けられた1つまたは複数のURL(および/またはユニフォームリソース識別子(URI))の代表である。アプレット103は、任意の適切な選択技術に基づいて(例えば、ランダムに、モバイルデバイス110から受信したデータに基づいてなど)、URL106を選択し得る。アカウントアプリケーション151は、モバイルデバイス110に動的にダウンロードおよびインストールされ得るオンデマンドアプリケーションを含み得る。示されるように、アカウントアプリケーション151は、インスタントアプリケーション152およびプログレッシブウェブアプリケーション153を含む。インスタントアプリケーションは、モバイルデバイス110に動的にダウンロードおよびインストールされ得る非永続的なアプリケーションである。インスタントアプリケーション152の一例は、アンドロイド(登録商標)インスタントアプリケーションである。インスタントアプリケーション152は、ダウンロードが完了するとすぐにモバイルデバイス110にインストールおよび実行され得るオンデマンドアプリケーションである。さらに、インスタントアプリケーション152は、実行される特定の機能に基づいて選択されるアプリケーションのサブセットに対応し、一方、アプリケーションの残りの部分は、後で(またはバックグラウンドプロセスの一部として)ダウンロードされ得る。例えば、インスタントアプリケーション152は、様々な機能を実行する全体的なアカウント管理アプリケーションのサブセットであり得、一方、インスタントアプリケーション152は、アカウント管理アプリケーションの1つまたは複数の部分および/またはアカウント管理アプリケーションによって提供される機能のサブセットを備える。
【0018】
一般に、プログレッシブウェブアプリケーションは、ウェブブラウザ115で実行され、モバイルデバイス110で実行されたときに永続性を維持するオンデマンドアプリケーションである。例えば、プログレッシブウェブアプリケーションは、モバイルデバイス110のストレージが割り当てられ、新しい機能がプログレッシブウェブアプリケーションに追加されたときにバックグラウンドで更新され得る。プログレッシブウェブアプリケーション153の一例は、アンドロイドプログレッシブウェブアプリケーションである。前述のように、プログレッシブウェブアプリケーション153は、動的にダウンロードされ、ダウンロードが完了すると、ウェブブラウザ115で自動的に実行され得る。プログレッシブウェブアプリケーション153は、実行される特定の機能に基づいて選択されるアプリケーションのサブセットに対応する。例えば、プログレッシブウェブアプリケーション153は、様々な機能を実行する全体的なアカウント管理アプリケーションのサブセットであり得、一方、プログレッシブウェブアプリケーション153は、アカウント管理アプリケーションの1つまたは複数の部分および/またはアカウント管理アプリケーションによって提供される機能のサブセットを備える。
【0019】
いくつかの実施形態では、アカウントアプリケーション151は、他のアプリケーション(例えば、アカウント管理アプリケーションなど)の1つまたは複数の部分(またはセグメント)を含む。したがって、他の言い方をすれば、アカウントアプリケーション151は、ページのサブセット(またはすべて)および/または他のアプリケーションの機能を含み得る。例えば、第1のアカウントアプリケーション151は、顧客が銀行アカウント残高を表示することを可能にするページと、完全なアカウント管理アプリケーションによって提供される他の機能(例えば、支払いスケジューリング、ローン要求など)を除外しながら顧客が顧客サービスに電子メールを送信することを可能にするページとを含み得る。有利なことに、第1のアカウントアプリケーション151は、銀行のアカウント管理アプリケーションをモバイルデバイス110にプレインストールする必要なしに、関連する機能を実行できる。より一般的には、アカウントアプリケーション151は、集合的に、アクセス可能なクラウドベースの「アプリケーションバンドル」と見なされ得、そのバンドルのサブセットは、モバイルデバイス110に迅速にダウンロードされ得る。したがって、アプリケーションバンドルは、アカウント管理アプリケーションによって提供されるすべての機能を集合的に含み得るが、1つまたは複数の必要な操作を実行するために必要なアカウントアプリケーション151のサブセットのみがモバイルデバイス110にダウンロードされる。
【0020】
アプレット103によって生成されたURL106は、パラメータとして暗号化されたデータ105をさらに含み得る。以下でより詳細に説明するように、暗号化されたデータ105は、非接触カード101によって生成されたデータを検証するために認証サーバ120によって使用され得る。例えば、非接触カード101のアップルレット103は、暗号化アルゴリズムを使用して、非接触カード101のメモリ102に格納された秘密鍵104に少なくとも部分的に基づいて、暗号化されたデータ105の暗号化ペイロードを生成し得る。そのような実施形態では、秘密鍵104および他のいくつかのデータ(例えば、顧客識別子、アカウント識別子など)は、暗号化されたデータ105を出力する暗号化アルゴリズムへの入力として提供され得る。一般に、アプレット103は、任意のタイプの暗号化アルゴリズムおよび/またはシステムを使用して、暗号化されたデータ105を生成し得、本明細書の例としての特定の暗号化アルゴリズムの使用は、開示を限定すると見なされるべきではない。いくつかの実施形態では、アプレット103は、暗号化ペイロードを生成するために鍵多様化技術を使用して暗号化を実行し得る。鍵多様化技術の例は、2018年11月29日に出願された米国特許出願第16/205,119号に記載されている。前述の特許出願は、参照によりその全体が本明細書に援用される。
【0021】
述べたように、非接触カード101のアプレット103は、暗号化されたデータ105をURL106のパラメータとして含み得、それにより、暗号化されたデータを有するURL108を生成する。例えば、アプリケーションサーバ150および/またはアカウントアプリケーション151へのURLが「http://www.example.com/accountapp」であり、暗号化されたデータ105が「ABC123」である場合、暗号化されたデータを有するURL108は、「http://www.example.com/accountapp?data=ABC123」であり得る。いくつかの実施形態では、アプレット103は、暗号化されたデータ105をURL106のパラメータとして含める前に、URLと互換性のある符号化フォーマットに従って暗号化されたデータ105を符号化し得る。例えば、暗号化されたデータ105は、URLと互換性がない可能性があるバイナリデータ(例えば、0および1)の文字列であり得る。したがって、アプレット103は、暗号化されたデータ105を、情報交換のための米国標準コード(AGRI)のbase64符号化フォーマットに符号化し得る。そうすることにより、バイナリ暗号化されたデータ105は、それをradix-64表現(例えば、前の例の「ABC123」)に変換することによって、ASCII文字列フォーマットで表す。さらに、URL106は、インストール時にアプリケーション151のどのページを開くべきかについての指示を含み得る。前の例を続けると、「1」のページ識別子(またはページ名などの他のページ識別子)は、パラメータとしてURL106に追加し得、暗号化されたデータを有するURL108は、「http://www.example.com/accountapp?data=ABC123&p=1」であり得る。
【0022】
生成されると、アプレット103は、例えば、NFCを介して、暗号化されたデータを有するURL108をモバイルデバイス110に送信し得る。一実施形態では、OS112によって受信されると、OS112は、ウェブブラウザ115に、暗号化されたデータを有するURL108にアクセスさせる。そうすることにより、モバイルデバイス110を説明する情報が、暗号化されたデータを有するURL108にアクセスするための要求とともに送信されるようになる。例えば、情報は、オペレーティングシステムのバージョン、ハードウェア機能、およびソフトウェア機能などのモバイルデバイス110の属性を含み得る。それに応答して、アプリケーションサーバ150は、暗号化されたデータを有するURL108に関連付けられたアカウントアプリケーション151をモバイルデバイス110に送信し得る。いくつかの実施形態では、アプリケーションサーバ150は、モバイルデバイス110の受信された属性に基づいてアカウントアプリケーション151を選択する。例えば、モバイルデバイス110のOS112がプログレッシブウェブアプリケーション153をサポートしない場合、アプリケーションサーバ150は、対応するインスタントアプリケーション152をアカウントアプリケーション151として選択し得る。いくつかの実施形態では、アプリケーションサーバ150がインスタントアプリケーション152をアカウントアプリケーション151として選択する場合、アプリケーションサーバ150は、モバイルデバイス110にアプリケーションストアアプリケーション(例えば、他のアプリケーション116の1つ)を開いて、インスタントアプリケーション152をダウンロードさせ得る。アプリケーションストアの例は、Google(登録商標)Playstore、Apple(登録商標)AppStore、Amazon(登録商標)Appstoreなどを含む。
【0023】
いくつかの実施形態では、OS112が暗号化されたデータを有するURL108を受信すると、URLは、インスタントアプリケーション152に向けられる。いくつかのそのような実施形態では、インスタントアプリケーション152は、アプリケーションストアを介してダウンロードされる。したがって、ウェブブラウザ115を開く代わりに、OS112は、対応するアプリケーションストアアプリケーション116を開く。いくつかの実施形態では、アプリケーションストアアプリケーション116は、OS112のフォアグラウンドでアプリケーションストアアプリケーション116を開かずに、OS112のバックグラウンドで開かれる。そのような実施形態では、インスタントアプリケーション152は、OS112のバックグラウンドでダウンロードされる。OS112のフォアグラウンドまたはバックグラウンドのどちらで発生するかに関係なく、アプリケーションストアアプリケーション116は、インスタントアプリケーション152をダウンロード、インストール、および実行する。しかしながら、いくつかの実施形態では、そのようなインスタントアプリケーション152は、インスタントアプリケーション152が格納されている場所に関係なく、ウェブブラウザ115を使用してダウンロードされ得る。
【0024】
さらに、および/または代わりに、アプリケーションサーバ150は、所与の機能を実行するために必要とされるアプリケーションの部分に基づいて、アカウントアプリケーション151を選択し得る。例えば、アプリケーションサーバ151は、暗号化されたデータを有するURL108内の暗号化されたデータ105に基づいて、機能が、暗号化されたデータ105を抽出すること、暗号化されたデータ105を復号すること、復号された暗号化されたデータ105を認証サーバ120に送信すること、VANジェネレータ142から仮想カードデータ126を受信すること、および仮想カードデータ126を自動入力サービス114に提供することのうち1つまたは複数を含むと決定し得る。したがって、アプリケーションサーバ150は、前述の機能を実行するために必要な機能を含む1つまたは複数のアカウントアプリケーション151を選択し得る。例えば、アプリケーションサーバ150は、暗号化されたデータ105を抽出し、暗号化されたデータ105を復号し、復号された暗号化されたデータ105を認証サーバ120に送信し、VANジェネレータ142から仮想カードデータ126を受信し、仮想カードデータ126を自動入力サービス114に提供する機能を含む1つまたは複数のインスタントアプリケーション152を選択し得る。いくつかの実施形態では、アプリケーションサーバ150は、アプリケーションの追加部分をモバイルデバイス110に送信し得る(例えば、バックグラウンドダウンロードの一部として)。
【0025】
同様に、アプリケーションサーバ150は、所与の機能を実行するために必要とされるアプリケーションの部分に基づいて、1つまたは複数のプログレッシブウェブアプリケーション153を選択し得る。例えば、プログレッシブウェブアプリケーション153は、所与のタスクおよび/または機能のために最適化され得る。他の例として、プログレッシブウェブアプリケーション153は、必要な機能(および/または追加の機能)を実行するコアプログレッシブウェブアプリケーション153のサブセットを含み得る。コアプログレッシブウェブアプリケーション153は、アカウント管理アプリケーションの完全な機能を含み得る。したがって、前の例を続けると、アプリケーションサーバ150は、暗号化されたデータ105を抽出し、暗号化されたデータ105を復号し、復号された暗号化されたデータ105を認証サーバ120に送信し、VANジェネレータ142から仮想カードデータ126を受信し、および仮想カードデータ126を自動入力サービス114に提供するように最適化された1つまたは複数のプログレッシブウェブアプリケーション153を選択し得る。同様に、アプリケーションサーバ150は、コアプログレッシブウェブアプリケーション153のサブセットを選択し得、サブセットは、暗号化されたデータ105を抽出し、暗号化されたデータ105を復号し、復号された暗号化されたデータ105を認証サーバ120に送信し、VANジェネレータ142から仮想カードデータ126を受信し、および仮想カードデータ126を自動入力サービス114に提供する機能を含む。
【0026】
図1Bは、例示的なアカウントアプリケーション151-1が動的にダウンロードされ、モバイルデバイス110のメモリ111にインストールされた実施形態を示している。アカウントアプリケーション151は、インスタントアプリケーション152および/またはプログレッシブウェブアプリケーション153であり得る。
図1Bでは、わかりやすくするために、
図1Aの一部の要素は示されていない。述べたように、アカウントアプリケーション151-1は、1つまたは複数の必要な機能、アカウントアプリケーション151-1によって実行される機能、および/またはモバイルデバイス110のパラメータに基づいて、アプリケーションサーバ150によって選択され得る。メモリ111内で実行するように描かれているが(例えば、インスタントアプリケーション152として)、アカウントアプリケーション151-1がプログレッシブウェブアプリケーション153である場合、アカウントアプリケーション151-1のプログレッシブウェブアプリケーション153インスタンスは、ウェブブラウザ115で実行し得る。アカウントアプリケーション151-1がプログレッシブウェブアプリケーション153である一実施形態では、プログレッシブウェブアプリケーション153は、モバイルデバイス110上のアプリケーションサーバ150からインスタントアプリケーション152をダウンロードしてインストールすることを決定し得る。
【0027】
さらに、アカウントアプリケーション151-1がインスタントアプリケーション152であるかプログレッシブウェブアプリケーション153であるかに関係なく、アカウントアプリケーション151-1は、必要な機能(例えば、本明細書で説明される機能)を実行するのに十分なページまたは機能を含む。より具体的には、モバイルデバイス110にダウンロードされると、アカウントアプリケーション151-1は、暗号化されたデータを有するURL108を入力として受信する1つまたは複数のページ(例えば、URL106の1つまたは複数のパラメータによって指定されたページ)を開き、暗号化されたデータを有するURL108から暗号化されたデータ105を抽出し、ネットワーク130を介して認証サーバ120に暗号化されたデータ105を送信し得る。さらに、アカウントアプリケーション151-1は、バイナリ暗号化されたデータ105を認証サーバ120に送信する前に、暗号化されたデータ105を元の符号化フォーマット(例えば、ASCIIbase64からバイナリに)に変換し得る。以下でより詳細に説明するように、アカウントアプリケーション151-1は、VANジェネレータ142から仮想カードデータ126を受信し、仮想カードデータ126を自動入力サービス114に提供し得る。
【0028】
受信されると、認証アプリケーション123は、暗号化されたデータ105を認証し得る。例えば、認証アプリケーション123は、認証サーバ120のメモリ122に格納された秘密鍵104のコピーを使用して、暗号化されたデータ105を復号しようと試み得る。秘密鍵104は、非接触カード101のメモリ102に格納された秘密鍵104と同一であり得る。ここで、各非接触カード101は、一意の秘密鍵104を含むように製造される(そして認証サーバ120は、各一意の秘密鍵104の対応するコピーを格納する)。したがって、認証アプリケーション123は、暗号化されたデータ105を首尾よく復号し得、それにより、暗号化されたデータ105を検証し得る。例えば、述べたように、顧客識別子は、暗号化されたデータ105を生成するために使用され得る。そのような例では、認証アプリケーション123は、認証サーバ120の秘密鍵104を使用して、暗号化されたデータ105を復号し得る。復号の結果がアカウントデータ124内のアカウントに関連付けられた顧客識別子をもたらす場合、認証アプリケーション123は、暗号化されたデータ105を検証し、非接触カード101に関連付けられたアカウントの仮想カードデータ126を生成するようにVANジェネレータ142に指示する。認証アプリケーション123が暗号化されたデータを復号して期待される結果(例えば、非接触カード101に関連付けられたアカウントの顧客識別子)を生成できない場合、認証アプリケーション123は、暗号化されたデータ105を検証しない。検証が失敗したため、認証アプリケーション123は、関連付けられたアカウントのセキュリティを維持するために仮想カードデータ126を生成するようにVANジェネレータ142に指示しない。
【0029】
図1Bに示される実施形態は、認証アプリケーション123が暗号化されたデータ105を検証し、仮想アカウント番号サーバ140のメモリ141内の仮想アカウント番号(VAN)ジェネレータ142に仮想カードデータ126を生成するように指示する場所を反映している。仮想カードデータ126は、非接触カード101に関連付けられたアカウントの仮想アカウント番号、有効期限、および/またはCVVを備え得る。いくつかの実施形態では、VANジェネレータ142は、仮想アカウント番号、有効期限、およびCVVを生成する。他の実施形態では、VANジェネレータ142は、仮想アカウント番号を生成し、既存の有効期限および/またはCVVを(例えば、アカウントデータ124から)選択する。例えば、既存の有効期限および/またはCVVは、非接触カード101、またはアカウントデータ124内のアカウントに関連付けられた他のカードの有効期限および/またはCVVであり得る。カードデータ126は、アカウント所有者の名前および非接触カード101に関連付けられた1つまたは複数の既知の住所をさらに含み得る。
【0030】
少なくとも1つの実施形態では、VANジェネレータ142によって生成された仮想アカウント番号を含むカードデータ126は、特定の業者または業者のグループに制限される。仮想アカウント番号および/またはカードデータ126は、他の制限(例えば、時間制限、金額制限など)をさらに含み得る。生成されると、VANジェネレータ142は、仮想カードデータ126を、モバイルデバイス110上で実行されているアカウントアプリケーション151-1に送信し得る。VANジェネレータ142は、プッシュ通知、テキストメッセージ、電子メール、1つまたは複数のデータパケットなどの任意の適切な方法を介して、仮想カードデータ126をアカウントアプリケーション151-1に提供し得る。
【0031】
アカウントアプリケーション151-1によって受信されると、アカウントアプリケーション151-1は、例えば、自動入力サービスのアプリケーションプログラミングインターフェース(API)114を介して、仮想アカウント番号、有効期限、CVV、仮想カードデータ126の住所を、OS112の自動入力サービス114に提供し得る。したがって、アカウントアプリケーション151-1は、仮想カードデータ126を受信し、仮想カードデータ126を自動入力サービス114に提供する機能をさらに含む。
図1Bに示されるように、自動入力サービス114は、仮想アカウント番号、有効期限、およびCVVを含む仮想カードデータ126を格納する。述べたように、仮想カードデータ126は、アカウント所有者の名前、請求先住所、および/または配送先住所をさらに含み得る。そうすることにより、自動入力サービス114は、仮想カードデータ126を、ウェブブラウザ115および他のアプリケーション116のフォーム127、129にそれぞれ挿入できる。
【0032】
図1Cは、自動入力サービス114が、仮想カードデータ126を、ウェブブラウザ115のフォーム127および他のアプリケーション116のフォーム129に自動的に入力する実施形態を示している。
図2A~
図2Dを参照してより詳細に説明されるように、自動入力サービス114は、仮想カードデータ126の各要素を、フォーム127、129の対応するフィールドに自動入力し得る。少なくとも1つの実施形態では、ユーザは、仮想カードデータ126のフォーム127、129への自動入力を承認するように促され得る。
【0033】
図2Aは、自動入力サービス114を使用して例示的なフォームに入力するための仮想カードデータを生成するために非接触カード101をタップする例示的な実施形態を示す概略200である。示されるように、ウェブブラウザ115は、URL201でページを出力する。URL201のページは、フォームフィールド202~204および209を有するフォーム(例えば、支払いフォームなど)を含む。フィールド202は、アカウント番号フィールドに対応し、フィールド203は、有効期限フィールドに対応し、フィールド204は、CVVフィールドに対応し、およびフィールド209は、住所フィールドに対応する。住所フィールド209は、請求先住所および/または配送先住所であり得る。フォームは、わかりやすくするために示されていない追加の要素を含み得る。示されるように、通知205は、OS112および/または他のサービス(インストールされている場合)によって出力される。通知205は、非接触カード101をモバイルデバイス110にタップするようにユーザに指示する。一実施形態では、ユーザは、非接触カード101をモバイルデバイス110にタップする前に、通知205を選択する。しかしながら、いくつかの実施形態では、通知205は、出力されず、ユーザは、通知205からの指示なしに、非接触カード101をモバイルデバイス110にタップする。
【0034】
一例では、OS112は、アカウント番号フィールド202(または他のフィールド)がフォーカスを移動させたとき(例えば、ユーザによって選択されたとき)に通知205を出力する。フィールドがフォーカスを移動させたことを決定するために、OS112は、アカウント番号フィールド202のハイパーテキストマークアップ言語(HTML)属性を解析して、アカウント番号フィールド202がフォーカスを移動させたことを決定し得る。他の例として、OS112は、フォームが1つまたは複数の支払いフィールドを含むと決定すると、通知205を出力する。さらに、OS112は、アカウント番号フィールド202のメタデータを解析して、フィールド202がアカウント番号に関連付けられていることを決定し得る。例えば、OS112は、メタデータに基づいて、アカウント番号フィールド202が入力として16文字を受信するように構成されていると決定し得る。他の例として、メタデータは、アカウント番号フィールドに関連付けられた名前に類似したフォームフィールド202の名前を指定し得る(例えば、「accountnumber」、「accout_number」など)。他の例として、フォームフィールドのメタデータは、フォームフィールドがアカウント番号フィールド、有効期限フィールド、CVVフィールド、配送先住所フィールド、および/または請求先住所フィールドに関連付けられることを指定し得る。したがって、OS112は、フォームが1つまたは複数の支払いフィールドを含むと自動的に決定することに基づいて、および/または支払いフィールドがフォーカスを移動させたと決定することに基づいて、非接触カード101をモバイルデバイス110にタップする通知205を出力し得る。
【0035】
前述のように、非接触カード101がモバイルデバイス110にタップされると、OS112は、カードリーダ119を介して(例えば、NFC、ブルートゥース(登録商標)、RFID、および/またはEMVプロトコルなどを介して)、非接触カード101の通信インターフェース107に指示を送信する。指示は、暗号化されたデータでURLを生成するように指定し得る。述べたように、アプレット103は、暗号化されたデータ105を生成するための暗号化アルゴリズムへの入力として、データ(例えば、顧客識別子)および非接触カードの秘密鍵104を使用して暗号化されたデータを生成し得る。アプレット103は、暗号化されたデータ105を、URLと互換性のある符号化フォーマットに符号化し得る。次に、アプレット103は、URL106を選択し、符号化された暗号化されたデータ105をURL106のパラメータとして含み得る。アプレット103は、アカウントアプリケーション151の1つまたは複数のページの指示をパラメータとしてURLにさらに追加し得る。そうすることにより、URLを入力として(例えば、実行時にアカウントアプリケーション151に提供される「オンクリエイト」入力として)受信することによって、アカウントアプリケーション151が実行時に正しいページを開くことが保証される。次に、アプレット103は、暗号化されたデータを有するURLを、通信インターフェース107を介してモバイルデバイス110に送信し得る。
【0036】
図2Bは、モバイルデバイス110のOS112が、非接触カード101によって生成された暗号化されたデータを有するURLを受信する実施形態を示す概略
図210である。示されるように、OS112は、ウェブブラウザ115に、アプリケーションサーバ150に向けられた例示的なURL206を開かせた。実施形態では、支払いフォームフィールド202~204が他のアプリケーション116の1つにある場合、OS112は、ウェブブラウザ115を開き、ウェブブラウザ115にURL206にアクセスさせる。次に、アプリケーションサーバ150は、要求を受信し、URL206に関連付けられたアカウントアプリケーション151の送信を開始し得る。述べたように、アカウントアプリケーション151は、インスタントアプリケーション152、プログレッシブウェブアプリケーション153、またはモバイルデバイス110にプリインストールされていない他の任意のアプリケーションであり得る。一般に、アプリケーションサーバ150は、必要な機能およびアカウントアプリケーション151によって実行される機能に基づいて、アカウントアプリケーション151を選択する。いくつかの実施形態では、アプリケーションサーバ150は、URL206で受信されたモバイルデバイス110を記述する属性に基づいて、アカウントアプリケーション151を選択する。例えば、モバイルデバイス110のOS112がインスタントアプリケーション152をサポートしないが、プログレッシブウェブアプリケーション153をサポートする場合、アプリケーションサーバ150は、プログレッシブウェブアプリケーション153であるアカウントアプリケーション151をモバイルデバイス110に送信し得る。モバイルデバイス110を記述する他の例示的な属性は、OS112にインストールされたソフトウェアの検出されたバージョン、モバイルデバイス110のネットワーク接続の速度、モバイルデバイス110の残りのバッテリ寿命などを含む。したがって、例えば、モバイルデバイス110が、遅いネットワーク接続を有するか、および/または残りのバッテリ寿命がほとんどない場合、アプリケーションサーバ150は、必要な機能を実行できる最小のサイズを有するアカウントアプリケーション151を選択し得る。
【0037】
図2Cは、アカウントアプリケーション151のインスタントアプリケーション152バージョンがダウンロードされ、モバイルデバイス110にインストールされる実施形態を示す概略
図220である。示されるように、アカウントアプリケーション151は、暗号化されたデータ105がURL206から抽出および復号されたことを反映するページを開く。アカウントアプリケーション151のページは、URL206のパラメータ「p=1」に基づいて開かれる。次に、アカウントアプリケーション151は、抽出および復号された暗号化データ105を認証のために認証サーバ120に送信し得る。示されるように、認証サーバ120は、暗号化されたデータ105を認証し、仮想カード番号、有効期限、およびCVVを生成するようにVANジェネレータ142に指示する。次に、VANジェネレータ142は、生成されたデータをアカウントアプリケーション151に送信し、これは、支払いフォームを用いて前のアプリケーション(例えば、ウェブブラウザ115および/または他のアプリケーション116)にリダイレクトするURL208を出力する。リンク208の代わりに他のグラフィックオブジェクトを使用し得、リンク208の使用は、開示を制限すると見なされるべきではない。
【0038】
図2Dは、ユーザがアカウントアプリケーション151内のリンク208を選択してウェブブラウザ115に戻る一実施形態を示す概略
図230である。示されるように、自動入力サービス114は、ウェブブラウザ115のフォームフィールド202~204に例示的なデータを自動入力した。より具体的には、自動入力サービス114は、仮想アカウント番号をフォームフィールド202に、有効期限をフォームフィールド203に、CVVをフォームフィールド204に、そしてアカウント所有者の住所をフォームフィールド209に自動入力した。自動入力されると、ユーザは、購入ボタン211を選択して、購入の支払いを処理し得る。有利なことに、データは、ユーザが手動でデータを入力することを必要とせず、また、デバイス110にプレインストールされるデータを自動入力するための専用アプリケーションを必要とせずに、フォームフィールドに自動入力される。いくつかの実施形態では、自動入力サービス114は、データをフォームフィールド202~204および209に自動入力する前に選択されなければならない通知(図示せず)をユーザに出力し得る。
【0039】
いくつかの実施形態では、自動入力サービス114は、フォームフィールド(例えば、フォームフィールド202~204、209)を検出し、検出されたフォームフィールドのタイプと一致するタイプを有する通知(例えば、テキストメッセージ通知)内のコンテンツを検出し、通知から解析されたコンテンツをキーボードの自動入力候補に提供する。そうすることにより、自動入力サービス114は、通知から対応するフォームフィールドにデータを自動的に入力できる。
【0040】
図3は、論理フロー300の実施形態を示している。論理フロー300は、本明細書に記載の1つまたは複数の実施形態によって実行される動作のいくつかまたはすべてを代表するものであり得る。例えば、論理フロー300は、非接触カードを使用して仮想カードデータを生成し、自動入力サービス114を使用して仮想アカウント番号をフォームに自動入力するための動作の一部またはすべてを含み得る。この文脈において、実施形態は、限定されない。
【0041】
示されるように、論理フロー300は、ブロック305で始まり、インストールされたアカウント管理アプリケーションを含まないモバイルデバイス110は、支払いフィールドを有する支払いフォームを含む第1のアプリケーションを出力する。第1のアプリケーションは、フォーム127を含むウェブブラウザ115および/またはフォーム129を含む他のアプリケーション116の1つであり得る。支払いフィールドは、アカウント番号フィールド、有効期限フィールド、CVVフィールド、1つまたは複数の名前フィールド、および1つまたは複数の住所フィールド(例えば、請求先住所、配送先住所など)の1つまたは複数を含み得る。例えば、OS112は、フォームフィールドのメタデータを解析して、1つまたは複数のフィールドがアカウント番号、有効期限、CVV、請求先住所などに関連付けられていることを決定し得る。他の例として、OS112は、メタデータに基づいて、フィールドが入力として16文字を受信するように構成されていると決定し得る。
【0042】
いくつかの実施形態では、ユーザは、ウェブブラウザ115内のフォームの支払いフィールドをタップして、支払いフィールドの1つにフォーカスを合わせ得る。例えば、ユーザは、フォームの支払いフィールドをタップして、支払いフィールドにフォーカスを合わせ得る。他の例として、ユーザは、マウスおよび/またはキーボードを使用して、フォームの支払いフィールドを選択し得る。より一般的には、プログラムで生成されたフォーカスを含む、任意の技術を使用して支払いフィールドにフォーカスを合わせ得る。例えば、支払いフィールドは、HTMLの「focus()」メソッドに基づいてフォーカスを移動させ得る。他の例として、例えば、ソースコードの支払いフィールドに適用されている「オートフォーカス」HTML属性に基づいて、フォームがロードされるときに、支払いフィールドは、自動的にフォーカスを移動させ得る。支払いフィールドがフォーカスを移動させると、アカウントアプリケーション113および/またはOS112は、非接触カード101をモバイルデバイス110にタップするようにユーザに指定する通知を出力し得る。
【0043】
ブロック310で、ユーザは、非接触カード101をモバイルデバイス110にタップして、非接触カード101に、URLの一部として暗号化されたデータを生成させ、アプリケーションサーバ150および/またはアカウントアプリケーション151の1つに送信させる。OS112は、URLの一部として暗号化されたデータを生成および送信することを指定する、NFCカードリーダ119を介して非接触カード101に指示を送信し得る。
【0044】
ブロック315で、非接触カードのアプレット103は、秘密鍵104、入力データ(例えば、顧客識別子)、および暗号化アルゴリズムを使用して暗号化されたデータを生成する。次に、アプレット103は、暗号化されたデータをURLのパラメータとして含み得る。アプレット103は、符号化された暗号化されたデータをURLのパラメータとして追加する前に、暗号化されたデータをさらに符号化し得る。さらに、URLは、ダウンロード時に開かれるアカウントアプリケーション151の1つまたは複数のページの識別子を指定するパラメータを有するユニバーサルリンクURLであり得る。さらに、URLは、最初にダウンロードされる必要があるインスタントアプリケーション152および/またはプログレッシブウェブアプリケーション153の一部を識別し得る。そうすることにより、アプリケーション151がダウンロードされたときに識別されたページを開いて最初にダウンロードし、すぐに開かない他のページを後でダウンロードできる。
【0045】
ブロック320で、アプレット103は、暗号化されたデータを含むURLをモバイルデバイス110に送信し得る。ブロック325で、OS112は、ウェブブラウザ115に、非接触カード101から受信したURLにアクセスして、第2のアプリケーション(例えば、アカウントアプリケーション151の1つ)を動的にダウンロードおよびインストール(および/または実行)するように指示する。ここで、第2のアプリケーションは、インスタントアプリケーション152および/またはプログレッシブウェブアプリケーション153である。次に、アプリケーションサーバ150は、1つまたは複数のアカウントアプリケーション151を選択して、モバイルデバイス110に送信し得る。述べたように、非接触カード101から受信したURLにアクセスする際に、ウェブブラウザ115は、モバイルデバイス110を記述する情報(例えば、ウェブブラウザ115のタイプの指示、ウェブブラウザのバージョン、OS112のタイプ、およびOS112のバージョンなど)を送信し得る。したがって、アプリケーションサーバ150は、モバイルデバイス110によってサポートされるアプリケーションのタイプに基づいて、アカウントアプリケーション151を選択し得る。さらに、アプリケーションサーバ150は、アカウントアプリケーション151が実行するように構成されなければならない機能のタイプに基づいて、アカウントアプリケーション151を選択し得る。受信されると、OS112は、受信されたアカウントアプリケーション151を実行する。例えば、OS112は、プログレッシブウェブアプリケーション153をウェブブラウザ115にロードし得る。他の例として、OS112は、インスタントアプリケーションを実行し得る。アカウントアプリケーション151のタイプに関係なく、OS112は、暗号化されたデータを有するURLをアプリケーションサーバ150から受信し、暗号化されたデータを有するURLを入力としてアプリケーションに提供する。
【0046】
ブロック330で、アカウントアプリケーション151は、暗号化されたデータをURLから抽出し、検証のために暗号化されたデータを認証サーバ120の認証アプリケーション123に送信する。述べたように、いくつかの実施形態では、アカウントアプリケーション151は、暗号化されたデータを認証サーバ120に送信する前に、暗号化されたデータを復号し得る。ブロック335で、認証アプリケーション123は、暗号化されたデータを検証するために、認証サーバ120のメモリ内の秘密鍵を使用して暗号化されたデータを復号する。ブロック340で、認証アプリケーション123は、仮想アカウント番号、有効期限、およびCVVを備えるカードデータを生成することを指定する指示をVANジェネレータ142に送信する。ブロック345で、VANジェネレータ142は、仮想アカウント番号、有効期限、およびCVVを生成する。ブロック350で、VANジェネレータ142は、仮想アカウント番号、有効期限、およびCVVをモバイルデバイス110に送信する。VANジェネレータ142は、アカウント所有者の名前、請求先住所、および配送先住所をさらに含み得、これらは、VANジェネレータ142によってローカルに格納され、および/または認証サーバ120から受信され得る。
【0047】
ブロック355で、第2のアプリケーション(例えば、ダウンロードされたアカウントアプリケーション151)は、受信したデータをOS112の自動入力サービス114に提供する。さらに、ユーザは、第1のアプリケーション(例えば、ウェブブラウザ115および/または他のアプリケーション116)に戻り得る。次に、ブロック360で、自動入力サービスは、自動入力サービス114に格納された仮想アカウント番号、有効期限、CVV、名前、および住所をフォームの支払いフィールドに自動入力し得る。ブロック365で、ユーザは、VANジェネレータ142によって生成されたカードデータを含む自動入力されたフォームを提出する。例えば、フォームの送信により、支払い情報の更新(例えば、ユーザのアカウント)、購入の完了などをし得る。有利なことに、フォームは自動入力され、アカウント管理アプリケーション(または非接触カード101および/または認証サーバ120と通信する他のアプリケーション)をデバイスにプレインストールする必要なしに購入を完了し得る。
【0048】
図4は、論理フロー400の実施形態を示している。論理フロー400は、本明細書に記載の1つまたは複数の実施形態によって実行される動作のいくつかまたはすべてを代表するものであり得る。例えば、論理フロー500は、モバイルデバイス110に送信するためにアカウントアプリケーション151を選択するためにアプリケーションサーバ150によって実行される動作のいくつかまたはすべてを含み得る。この文脈において、実施形態は、限定されない。
【0049】
示されるように、論理フロー400は、ブロック405で始まり、そこで、アプリケーションサーバ150は、モバイルデバイス110から属性データを受信する。一般に、非接触カード101によって生成されたURLに従う場合、ウェブブラウザ115は、ハイパーテキスト転送プロトコル(HTTP)要求においてモバイルデバイス110を記述するデータを含む。アプリケーションサーバ150は、受信したデータを解析して、例えば、モバイルデバイス110のタイプ、OS112のタイプおよび/またはバージョン、ウェブブラウザ115のタイプおよび/またはバージョンなどを決定し得る。ブロック410で、アプリケーションサーバ150は、モバイルデバイス110の属性データに基づいて、モバイルデバイス110がインスタントアプリケーション152および/またはプログレッシブウェブアプリケーション153と互換性があるかどうかを決定する。例えば、インスタントアプリケーション152は、互換性のためにOSの特定のタイプおよびバージョンを必要とし得、一方、プログレッシブウェブアプリケーション153は、互換性のためにOSの特定のタイプおよびバージョンおよびウェブブラウザを必要とし得る。デバイス属性は、モバイルデバイス110がこれらの要件を満たしているかどうかを示す。
【0050】
ブロック415で、アプリケーションサーバ150は、ブロック410で行われた決定に基づいて、インスタントアプリケーション152および/またはプログレッシブウェブアプリケーション153のうちの1つまたは複数を選択する。例えば、モバイルデバイス110がインスタントアプリケーションと互換性がある場合、アプリケーションサーバ150は、アカウントアプリケーション151としてインスタントアプリケーション152を選択し得る。さらに、述べたように、アプリケーションサーバ150は、モバイルデバイス110上で実行される必要な機能(例えば、暗号化されたデータを抽出すること、暗号化されたデータを認証サーバに送信すること、VANジェネレータ142から仮想カードデータを受信すること、および受信した仮想カードデータを自動入力サービス114に提供すること)に基づいて、インスタントアプリケーション152および/またはプログレッシブウェブアプリケーション153のうちの1つまたは複数を選択する。ブロック420で、アプリケーションサーバ150は、ブロック415で選択されたアカウントアプリケーション151のダウンロードのためのパラメータとして、非接触カード101によって生成されたURLを提供する。ブロック425で、アプリケーションサーバ150は、選択されたアカウントアプリケーション151およびURLをモバイルデバイス110に送信する。そうすることにより、選択されたアプリケーションが動的にダウンロードされ、モバイルデバイス110にインストールされる。
【0051】
図5は、論理フロー500の実施形態を示している。論理フロー500は、本明細書に記載の1つまたは複数の実施形態によって実行される動作のいくつかまたはすべてを代表するものであり得る。例えば、論理フロー500は、暗号化されたデータを有するURL108を生成するために非接触カード101によって実行される動作のいくつかまたはすべてを含み得る。この文脈において、実施形態は、限定されない。
【0052】
示されるように、論理フロー500は、ブロック505で始まり、そこで、非接触カードのアプレット103が暗号化されたデータ105を生成する。述べたように、暗号化されたデータ105は、秘密鍵104および入力データ(例えば、顧客識別子)に基づく暗号化アルゴリズムの出力である。ブロック510で、アプレット103は、暗号化されたデータ105を符号化フォーマット(例えば、ASCIIbase64)に従って符号化する。ブロック515で、アプレット103は、符号化された暗号化されたデータと、パラメータとしてターゲットアカウントアプリケーション151の1つまたは複数のアプリケーションページとを備えるURLを生成する。URLは、アプリケーションサーバ150および/またはアカウントアプリケーション151の1つまたは複数に向けられ得る。ブロック520で、非接触カード101は、ブロック515で生成されたURLをモバイルデバイス110に送信する。URLを受信すると、OS112は、ウェブブラウザ115にURLにアクセスさせる。そうすることにより、アカウントアプリケーション151が動的にダウンロードされ、モバイルデバイス110にインストールされ得る。
【0053】
図6は、論理フロー600の実施形態を示している。論理フロー600は、本明細書に記載の1つまたは複数の実施形態によって実行される動作のいくつかまたはすべてを代表するものであり得る。例えば、論理フロー600は、モバイルデバイス110上で実行されるアカウントアプリケーション151によって実行される動作のいくつかまたはすべてを含み得る。この文脈において、実施形態は、限定されない。
【0054】
示されるように、論理フロー600は、ブロック605で始まり、
図3の第2のアプリケーション(例えば、アカウントアプリケーション151)は、符号化された暗号化されたデータを備えるURLを入力として受信する。ブロック610で、アカウントアプリケーション151は、URLで指定されたアカウントアプリケーション151のページを開く。例えば、アカウントアプリケーション151は、符号化された暗号化されたデータをURLから抽出し、暗号化されたデータを復号し、暗号化されたデータを認証サーバに送信し、VANジェネレータ142から仮想カードデータを受信し、受信した仮想カードデータを自動入力サービス114に提供するように構成された1つまたは複数のページを開き得る。述べたように、アカウントアプリケーション151は、インスタントアプリケーション152および/またはプログレッシブウェブアプリケーション153であり得る。
【0055】
ブロック615で、アカウントアプリケーション151は、例えば、URL内のパラメータ名に基づいて、符号化された暗号化されたデータをURLから抽出する。ブロック620で、アカウントアプリケーション151は、暗号化されたデータを符号化されていないフォーマット(例えば、バイナリ)に復号する。ブロック625で、アカウントアプリケーション151は、復号された暗号化されたデータを認証サーバ120に送信する。ブロック630で、アカウントアプリケーション151は、VANジェネレータ142から仮想カードデータ(例えば、仮想カード番号、有効期限、CVV、名前、請求先住所、および配送先住所のうちの1つまたは複数)を受信する。ブロック635で、アカウントアプリケーション151は、仮想カードデータを自動入力サービス114に提供する。
【0056】
図7は、前述のような様々な実施形態を実施するのに適し得るコンピューティングシステム702を備える例示的なコンピューティングアーキテクチャ700の実施形態を示している。様々な実施形態では、コンピューティングアーキテクチャ700は、電子デバイスを備えるか、またはその一部として実施され得る。いくつかの実施形態では、コンピューティングアーキテクチャ700は、例えば、システム100の1つまたは複数のコンポーネントを実施するシステムを代表するものであり得る。いくつかの実施形態では、コンピューティングシステム702は、例えば、システム100のモバイルデバイス110、認証サーバ120、仮想アカウント番号サーバ140、および/またはアプリケーションサーバ150を代表するものであり得る。実施形態は、この文脈に限定されない。より一般的には、コンピューティングアーキテクチャ700は、
図1~
図6を参照して本明細書で説明されるすべての論理、アプリケーション、システム、方法、装置、および機能を実施するように構成される。
【0057】
このアプリケーションで使用される用語「システム」、「コンポーネント」および「モジュール」は、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連エンティティを指すことを意図しており、その例は、例示的なコンピューティングアーキテクチャ700によって提供される。例えば、コンポーネントは、コンピュータプロセッサ上で実行されるプロセス、コンピュータプロセッサ、ハードディスクドライブ、(光学および/または磁気記憶媒体の)複数のストレージドライブ、オブジェクト、実行可能なもの、実行スレッド、プログラム、および/またはコンピュータであり得るが、これらに限定されない。例として、サーバ上で実行されているアプリケーションとサーバの両方は、コンポーネントであり得る。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッド内に常駐し得、コンポーネントは、1台のコンピュータにローカライズされ、および/または2台以上のコンピュータ間で分散され得る。さらに、コンポーネントは、様々なタイプの通信媒体によって互いに通信可能に結合され、動作を調整し得る。調整には、情報の一方向または双方向の交換が含まれ得る。例えば、コンポーネントは、通信媒体を介して通信される信号の形で情報を通信し得る。情報は、様々な信号線に割り当てられた信号として実施され得る。このような割り当てでは、各メッセージは、信号である。しかしながら、さらなる実施形態は、代替としてデータメッセージを使用し得る。このようなデータメッセージは、様々な接続を介して送信され得る。接続例は、パラレルインターフェース、シリアルインターフェース、およびバスインターフェースを含む。
【0058】
コンピューティングシステム702は、1つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インターフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入力/出力(I/O)コンポーネント、電源などの様々な一般的なコンピューティング要素を含む。しかしながら、実施形態は、コンピューティングシステム702による実施に限定されない。
【0059】
図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として使用し得る。
【0060】
システムバス708は、システムメモリ706からプロセッサ704を含むがこれらに限定されないシステムコンポーネントにインターフェースを提供する。システムバス708は、様々な市販のバスアーキテクチャのいずれかを使用して、メモリバス(メモリコントローラの有無にかかわらず)、周辺バス、およびローカルバスにさらに相互接続し得るいくつかのタイプのバス構造のいずれかであり得る。インターフェースアダプタは、スロットアーキテクチャを介してシステムバス708に接続し得る。スロットアーキテクチャの例は、アクセラレーテッドグラフィックスポート(AGP)、カードバス、(拡張)業界標準アーキテクチャ((E)ISA)、マイクロチャネルアーキテクチャ(MCA)、NuBus、ペリフェラルコンポーネントインターコネクト(拡張)(PCI(X))、PCI Express、Personal Computer Memory Card International Association(PCMCIA)などを含むがこれらに限定されない。
【0061】
システムメモリ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)が格納され得る。
【0062】
コンピューティングシステム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~
図6を参照して本明細書で説明されるすべての論理、システム、方法、装置、および機能を実施するように構成される。
【0063】
ドライブおよび関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令などの揮発性および/または不揮発性ストレージを提供する。例えば、多数のプログラムモジュールは、オペレーティングシステム730、1つまたは複数のアプリケーションプログラム732、他のプログラムモジュール734、およびプログラムデータ736を含む、ドライブおよびメモリユニット710、712に格納され得る。一実施形態では、1つまたは複数のアプリケーションプログラム732、他のプログラムモジュール734、およびプログラムデータ736は、例えば、システム100の様々なアプリケーションおよび/またはコンポーネント、例えば、アプレット103、秘密鍵104、URL106、暗号化されたデータを有するURL108、オペレーティングシステム112、自動入力サービス114、ウェブブラウザ115、他のアプリケーション116、認証アプリケーション123、およびVANジェネレータ142を含み得る。
【0064】
ユーザは、1つまたは複数の有線/無線入力デバイス、例えば、キーボード738およびマウス740などのポインティングデバイスを介して、コンピューティングシステム702にコマンドと情報を入力し得る。その他の入力デバイスには、マイク、赤外線(IR)リモートコントロール、無線周波数(RF)リモートコントロール、ゲームパッド、スタイラスペン、カードリーダ、ドングル、指紋リーダ、グラブ、グラフィックタブレット、ジョイスティック、キーボード、網膜リーダ、タッチスクリーン(例えば、容量性、抵抗性など)、トラックボール、トラックパッド、センサ、スタイラスなどを含み得る。これらおよび他の入力デバイスは、システムバス708に結合された入力デバイスインターフェース742を介してプロセッサ704に接続されることがよくあるが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインターフェースなどの他のインターフェースによって接続され得る。
【0065】
モニタ744または他のタイプの表示デバイスも、ビデオアダプタ746などのインターフェースを介してシステムバス708に接続されている。モニタ744は、コンピューティングシステム702の内部または外部にあり得る。モニタ744に加えて、コンピュータは通常、スピーカ、プリンタなどの他の周辺出力デバイスを含む。
【0066】
コンピューティングシステム702は、リモートコンピュータ748などの1つまたは複数のリモートコンピュータへの有線および/または無線通信を介した論理接続を使用して、ネットワーク環境で動作し得る。リモートコンピュータ748は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースの娯楽機器、ピアデバイス、または他の一般的なネットワークノードであり得、通常、コンピューティングシステム702に関連して記載された要素の多くまたはすべてを含むが、簡潔にするために、メモリ/ストレージデバイス750のみが示されている。示されている論理接続には、ローカルエリアネットワーク(LAN)752および/またはより大きなネットワーク、例えば、ワイドエリアネットワーク(WAN)754への有線/無線接続が含まれる。このようなLANおよびWANネットワーク環境は、オフィスや企業では一般的であり、イントラネットなどの企業規模のコンピュータネットワークを容易にする。これらはすべて、例えば、インターネットなどのグローバル通信ネットワークに接続し得る。実施形態では、
図1のネットワーク130は、LAN752およびWAN754のうちの1つまたは複数である。
【0067】
LANネットワーキング環境で使用される場合、コンピューティングシステム702は、有線および/または無線通信ネットワークインターフェースまたはアダプタ756を介してLAN752に接続される。アダプタ756は、アダプタ756の無線機能と通信するためにその上に配置された無線アクセスポイントを含み得るLAN752への有線および/または無線通信を容易にし得る。
【0068】
WANネットワーキング環境で使用される場合、コンピューティングシステム702は、モデム758を含み得るか、またはWAN754上の通信サーバに接続されるか、またはインターネットを経由するなど、WAN754上で通信を確立するための他の手段を有する。モデム758は、内部または外部であり、有線および/または無線デバイスであり、入力デバイスインターフェース742を介してシステムバス708に接続する。ネットワーク環境では、コンピューティングシステム702に関して示されたプログラムモジュール、またはその一部は、リモートメモリ/ストレージデバイス750に格納され得る。示されたネットワーク接続は例示であり、コンピュータ間の通信リンクを確立する他の手段を使用できることが理解されるであろう。
【0069】
コンピューティングシステム702は、無線通信(例えば、IEEE802.16無線変調技術)で動作可能に配置された無線デバイスなど、IEEE802規格ファミリを使用して有線および無線デバイスまたはエンティティと通信するように動作可能である。これには、少なくともWi-Fi(または無線フィデリティ)、WiMax、ブルートゥース(登録商標)ワイヤレステクノロジなどが含まれる。したがって、通信は、従来のネットワークと同様に事前定義された構造、または少なくとも2つのデバイス間での単なるアドホック通信であり得る。Wi-Fiネットワークは、IEEE802.11x(a、b、g、nなど)と呼ばれる無線技術を用いて、安全で信頼性の高い高速な無線接続を提供する。Wi-Fiネットワークは、コンピュータを相互に接続したり、インターネットに接続したり、有線ネットワーク(IEEE802.3関連のメディアと機能を使用)に接続したりするために使用し得る。
【0070】
様々な実施形態は、ハードウェア要素、ソフトウェア要素、または両方の組み合わせを使用して実施され得る。ハードウェア要素の例には、プロセッサ、マイクロプロセッサ、回路、回路要素(例えば、トランジスタ、抵抗、コンデンサ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどが含まれ得る。ソフトウェアの例には、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、手順、ソフトウェアインターフェース、アプリケーションプログラムインターフェース(API)、命令セット、計算コード、コンピュータコード、コードセグメント、コンピュータコードセグメント、単語、値、記号、またはそれらの任意の組み合わせが含まれ得る。ハードウェア要素および/またはソフトウェア要素を使用して実施形態が実施されているかどうかの決定は、必要な計算速度、電力レベル、熱耐性、処理サイクルバジェット、入力データ速度、出力データ速度、メモリリソース、データバス速度、およびその他の設計または性能の制約などの任意の数の要因に従って変化し得る。
【0071】
少なくとも1つの実施形態の1つまたは複数の態様は、プロセッサ内の様々な論理を表す機械可読媒体に格納された代表的な命令によって実施でき、機械によって読み取られると、機械は、本明細書で説明する技術を実行する論理を製造する。「IPコア」として知られるこのような表現は、有形の機械可読媒体に格納され、論理またはプロセッサを作成する製造機械にロードするために、様々な顧客または製造施設に提供される。いくつかの実施形態は、例えば、機械によって実行された場合に、実施形態に従った方法および/または動作を機械に実行させることができる命令または命令セットを格納することができる機械可読媒体または物品を使用して実施され得る。そのような機械は、例えば、任意の適切な処理プラットフォーム、コンピューティングプラットフォーム、コンピューティングデバイス、処理デバイス、コンピューティングシステム、処理システム、コンピュータ、プロセッサなどを含むことができ、ハードウェアおよび/またはソフトウェアの任意の適切な組み合わせを使用して実施し得る。機械可読媒体または物品は、例えば、任意の適切なタイプのメモリユニット、メモリデバイス、メモリ物品、メモリ媒体、ストレージデバイス、ストレージ物品、ストレージ媒体および/またはストレージユニット、例えば、メモリ、リムーバブルまたは非リムーバブルな媒体、消去可能または消去不可能な媒体、書き込み可能または再書き込み可能な媒体、デジタルまたはアナログ媒体、ハードディスク、フロッピディスク、コンパクトディスクリードオンリメモリ(CD-ROM)、コンパクトディスクレコーダブル(CD-R)、コンパクトディスクリライタブル(CD-RW)、光ディスク、磁気メディア、光磁気メディア、リムーバブルメモリカードまたはディスク、各種デジタルバーサタイルディスク(DVD)、テープ、カセットなどを含み得る。命令は、ソースコード、コンパイル済みコード、解釈済みコード、実行可能コード、静的コード、動的コード、暗号化コードなどの適切なタイプのコードを含むことができ、任意の適切な高レベル、低レベル、オブジェクト指向、視覚的、コンパイル型および/または解釈型のプログラミング言語を使用して実施され得る。
【0072】
例示的な実施形態の前述の説明は、例示および説明を目的として提示された。網羅的であること、または本開示を開示された正確な形式に限定することを意図していない。この開示に照らして、多くの修正および変更が可能である。本開示の範囲は、この詳細な説明ではなく、添付の請求の範囲によって限定されることが意図されている。本出願の優先権を主張する将来の出願は、開示された主題を異なる方法で主張し得、一般に、本明細書で様々に開示または実証されるように、1つまたは複数の限定の任意のセットを含み得る。