(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023184758
(43)【公開日】2023-12-28
(54)【発明の名称】NFCを介してデータをクリップボードにコピーするためのタップ
(51)【国際特許分類】
H04L 9/10 20060101AFI20231221BHJP
H04L 9/08 20060101ALI20231221BHJP
【FI】
H04L9/10 A
H04L9/08 B
【審査請求】有
【請求項の数】25
【出願形態】OL
(21)【出願番号】P 2023192344
(22)【出願日】2023-11-10
(62)【分割の表示】P 2021553009の分割
【原出願日】2020-03-13
(31)【優先権主張番号】16/359,966
(32)【優先日】2019-03-20
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】519111877
【氏名又は名称】キャピタル・ワン・サービシーズ・リミテッド・ライアビリティ・カンパニー
【氏名又は名称原語表記】Capital One Services, LLC
(74)【代理人】
【識別番号】100145403
【弁理士】
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100135703
【弁理士】
【氏名又は名称】岡部 英隆
(72)【発明者】
【氏名】ヘリントン,ダニエル
(72)【発明者】
【氏名】ルール,ジェフリー
(72)【発明者】
【氏名】ハート,コリン
(72)【発明者】
【氏名】ジ,ジェイソン
(57)【要約】
【課題】NFCを介してデータをクリップボードにコピーするためのタップを提供する。
【解決手段】様々な実施形態は、一般に、NFCを使用して非接触カードからモバイルデバイスのクリップボードにデータをコピーすることに向けられている。モバイルデバイスは、非接触カードからデータを読み取る要求を発行し得る。非接触カードは、要求に応答して暗号化されたデータを生成し得る。モバイルデバイスは、暗号化されたデータをNFCを介して受信し、検証のために暗号化されたデータをサーバに送信し得る。サーバは、暗号化されたデータを検証し、非接触カードのアカウント番号の指示をモバイルデバイスに送信し得る。次に、モバイルデバイスは、アカウント番号をモバイルデバイスのクリップボードにコピーし得る。
【選択図】
図1A
【特許請求の範囲】
【請求項1】
プロセッサと、
命令を格納するメモリと、を備えた装置であって、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
前記プロセッサで実行されるアプリケーションが、アカウントに関連付けられた非接触カードから暗号化されたデータを受信することと、
前記アプリケーションが、サーバから、前記暗号化されたデータを復号する前記サーバに少なくとも部分的に基づいて、前記暗号化されたデータの検証を受信することと、
前記アプリケーションが、前記非接触カードに関連付けられたアカウント番号、有効期限、およびカード検証値(CVV)を受信することと、
前記アプリケーションが、タップカウンタをインクリメントすることと、
前記アプリケーションが、前記タップカウンタの値に基づいて、前記アカウント番号、前記有効期限、および前記CVVのうちの1つを前記プロセッサで実行されているオペレーティングシステム(OS)のクリップボードにコピーすることと、
を実行させる、
装置。
【請求項2】
前記アカウント番号、前記有効期限、および前記CVVは、前記非接触カードおよび前記サーバのいずれかから受信され、
前記メモリは、命令を格納しており、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
前記検証を受信する前に、前記暗号化されたデータを前記サーバに送信すること、
を実行させる、
請求項1に記載の装置。
【請求項3】
前記メモリは、命令を格納しており、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、前記アカウント番号、前記有効期限、および前記CVVのうちの1つを前記クリップボードにコピーする前に、
前記受信したアカウント番号、前記受信した有効期限、および前記受信したCVVが暗号化されていることを決定することと、
前記暗号化されたアカウント番号、前記暗号化された有効期限、および前記暗号化されたCVVを復号することと、
を実行させる、
請求項1に記載の装置。
【請求項4】
前記非接触カードから受信した前記暗号化されたデータは、1つまたは複数の暗号化アルゴリズムおよび多様化された鍵に基づいており、前記多様化された鍵は、マスター鍵およびカウンタ値に基づいている、
請求項1に記載の装置。
【請求項5】
前記サーバは、前記多様化された鍵のインスタンスに基づいて前記暗号化されたデータを復号し、前記多様化された鍵の前記インスタンスは、前記マスター鍵のインスタンスおよび前記サーバによって維持される前記カウンタ値のインスタンスに基づいており、前記非接触カードのカウンタ値は、前記サーバによって維持される前記カウンタ値のインスタンスと同期されている、
請求項4に記載の装置。
【請求項6】
前記メモリは、命令を格納しており、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
前記OSが、前記クリップボードから前記アカウント番号、前記有効期限、および前記CVVのうちの1つをフォームの第1のフォームフィールドに貼り付けること、
を実行させる、
請求項1に記載の装置。
【請求項7】
前記メモリは、命令を格納しており、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
前記アプリケーションが、前記装置に対する前記非接触カードのもう1つのタップを検出することと、
前記アプリケーションが、前記もう1つのタップに基づいて前記タップカウンタの値をインクリメントすることと、
前記アプリケーションが、前記タップカウンタの値に基づいて、前記有効期限および前記CVVの一方を前記クリップボードにコピーすることと、
前記OSが、前記クリップボードから前記有効期限および前記CVVの一方を前記フォームの第2のフォームフィールドに貼り付けることと、
を実行させる、
請求項6に記載の装置。
【請求項8】
前記メモリは、命令を格納しており、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
(i)購入の完了、および(ii)時間閾値の満了のうち少なくとも1つに基づいて前記クリップボードを変更することであって、前記クリップボードを変更することは、(i)前記クリップボードに格納されているすべてのデータを消去すること、および(ii)ランダムデータを前記クリップボードにコピーすることのうち1つまたは複数を含む、こと、
を実行させる、
請求項1に記載の装置。
【請求項9】
命令を格納するコンピュータ可読記憶媒体であって、
前記命令は、プロセッサによって実行されると、前記プロセッサに、
前記プロセッサで実行されるアプリケーションが、アカウントに関連付けられた非接触カードから暗号化されたデータを受信することと、
前記アプリケーションが、サーバから、前記暗号化されたデータを復号する前記サーバに少なくとも部分的に基づいて、前記暗号化されたデータの検証を受信することと、
前記アプリケーションが、前記非接触カードに関連付けられたアカウント番号、有効期限、およびカード検証値(CVV)を受信することと、
前記アプリケーションが、タップカウンタをインクリメントすることと、
前記アプリケーションが、前記タップカウンタの値に基づいて、前記アカウント番号、前記有効期限、および前記CVVのうちの1つを前記プロセッサで実行されているオペレーティングシステム(OS)のクリップボードにコピーすることと、
を実行させる、
媒体。
【請求項10】
前記アカウント番号、前記有効期限、および前記CVVは、前記非接触カードおよび前記サーバのいずれかから受信され、
前記媒体は、命令を格納しており、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
前記検証を受信する前に、前記暗号化されたデータを前記サーバに送信すること、
を実行させる、
請求項9に記載の媒体。
【請求項11】
前記媒体は、命令を格納しており、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、前記アカウント番号、前記有効期限、および前記CVVのうちの1つを前記クリップボードにコピーする前に、
前記受信したアカウント番号、前記受信した有効期限、および前記受信したCVVが暗号化されていることを決定することと、
前記暗号化されたアカウント番号、前記暗号化された有効期限、および前記暗号化されたCVVを復号することと、
を実行させる、
請求項9に記載の媒体。
【請求項12】
前記非接触カードから受信した前記暗号化されたデータは、1つまたは複数の暗号化アルゴリズムおよび多様化された鍵に基づいており、前記多様化された鍵は、マスター鍵およびカウンタ値に基づいている、
請求項9に記載の媒体。
【請求項13】
前記サーバは、前記多様化された鍵のインスタンスに基づいて前記暗号化されたデータを復号し、前記多様化された鍵の前記インスタンスは、前記マスター鍵のインスタンスおよび前記サーバによって維持される前記カウンタ値のインスタンスに基づいており、前記非接触カードのカウンタ値は、前記サーバによって維持される前記カウンタ値のインスタンスと同期されている、
請求項12に記載の媒体。
【請求項14】
前記媒体は、命令を格納しており、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
前記OSが、前記クリップボードから前記アカウント番号、前記有効期限、および前記CVVのうちの1つをフォームの第1のフォームフィールドに貼り付けること、
を実行させる、
請求項9に記載の媒体。
【請求項15】
前記媒体は、命令を格納しており、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
前記アプリケーションが、前記装置に対する前記非接触カードのもう1つのタップを検出することと、
前記アプリケーションが、前記もう1つのタップに基づいて前記タップカウンタの値をインクリメントすることと、
前記アプリケーションが、前記タップカウンタの値に基づいて、前記有効期限および前記CVVのうちの一方を前記クリップボードにコピーすることと、
前記OSが、前記クリップボードから前記有効期限および前記CVVのうちの一方を前記フォームの第2のフォームフィールドに貼り付けることと、
を実行させる、
請求項14に記載の媒体。
【請求項16】
前記媒体は、命令を格納しており、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
(i)購入の完了、および(ii)時間閾値の満了のうち少なくとも1つに基づいて前記クリップボードを変更することであって、前記クリップボードを変更することは、(i)前記クリップボードに格納されているすべてのデータを消去すること、および(ii)ランダムデータを前記クリップボードにコピーすることのうち1つまたは複数を含む、こと、
を実行させる、
請求項14に記載の媒体。
【請求項17】
装置のプロセッサで実行されるアプリケーションが、アカウントに関連付けられた非接触カードから暗号化されたデータを受信することと、
前記アプリケーションが、サーバから、前記暗号化されたデータを復号する前記サーバに少なくとも部分的に基づいて、前記暗号化されたデータの検証を受信することと、
前記アプリケーションが、前記非接触カードに関連付けられたアカウント番号、有効期限、およびカード検証値(CVV)を受信することと、
前記アプリケーションが、タップカウンタをインクリメントすることと、
前記アプリケーションが、前記タップカウンタの値に基づいて、前記アカウント番号、前記有効期限、および前記CVVのうちの1つを前記プロセッサで実行されているオペレーティングシステム(OS)のクリップボードにコピーすることと、
を含む、方法。
【請求項18】
前記アカウント番号、前記有効期限、および前記CVVは、前記非接触カードおよび前記サーバのいずれかから受信され、
前記方法は、
前記検証を受信する前に、前記暗号化されたデータを前記サーバに送信すること、
をさらに含む、
請求項17に記載の方法。
【請求項19】
前記方法は、
前記アプリケーションが、前記受信したアカウント番号、前記受信した有効期限、および前記受信したCVVが暗号化されていることを決定することと、
前記アプリケーションが、前記暗号化されたアカウント番号、前記暗号化された有効期限、および前記暗号化されたCVVを復号することと、
をさらに含む、
請求項17に記載の方法。
【請求項20】
前記非接触カードから受信した前記暗号化されたデータは、1つまたは複数の暗号化アルゴリズムおよび多様化された鍵に基づいており、前記多様化された鍵は、マスター鍵およびカウンタ値に基づいている、
請求項17に記載の方法。
【請求項21】
前記サーバは、前記多様化された鍵のインスタンスに基づいて前記暗号化されたデータを復号し、前記多様化された鍵の前記インスタンスは、前記マスター鍵のインスタンスおよび前記サーバによって維持される前記カウンタ値のインスタンスに基づいており、前記非接触カードのカウンタ値は、前記サーバによって維持される前記カウンタ値のインスタンスと同期されている、
請求項20に記載の方法。
【請求項22】
前記方法は、
前記OSが、前記クリップボードから前記アカウント番号、前記有効期限、および前記CVVのうちの1つをフォームの第1のフォームフィールドに貼り付けること、
をさらに含む、
請求項17に記載の方法。
【請求項23】
前記方法は、
前記アプリケーションが、前記装置に対する前記非接触カードのもう1つのタップを検出することと、
前記アプリケーションが、前記もう1つのタップに基づいて前記タップカウンタの値をインクリメントすることと、
前記アプリケーションが、前記タップカウンタの値に基づいて、前記有効期限および前記CVVの一方を前記クリップボードにコピーすることと、
前記OSが、前記クリップボードから前記有効期限および前記CVVの一方を前記フォームの第2のフォームフィールドに貼り付けることと、
をさらに含む、
請求項22に記載の方法。
【請求項24】
前記方法は、
(i)購入の完了、および(ii)時間閾値の満了のうち少なくとも1つに基づいて前記クリップボードを変更すること、
をさらに含む、
請求項17に記載の方法。
【請求項25】
前記クリップボードを変更することは、(i)前記クリップボードに格納されているすべてのデータを消去すること、および(ii)ランダムデータを前記クリップボードにコピーすることのうち1つまたは複数を含む、
請求項24に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書の実施形態は、一般に、モバイルコンピューティングプラットフォームに関連し、より具体的には、近距離無線通信(NFC)を介してデータをクリップボードにコピーするためにタップすることに関する。
【0002】
関連出願
この出願は、2019年3月20日に出願された「NFCを介してデータをクリップボードにコピーするためのタップ」という名称の米国特許出願第16/359,966号の優先権を主張する。前述の出願の内容は、その全体が参照により本明細書に援用される。
【背景技術】
【0003】
支払いカードのアカウント識別子は、多くの場合、長い数字や文字列である。そのため、ユーザがアカウント識別子を手動で正しく入力することは困難である。実際、ユーザはしばしば間違いを犯し、コンピューティングインターフェース(例えば、支払いインターフェース)に間違ったアカウント番号を入力する。さらに、ユーザが正しいアカウント識別子を入力した場合でも、カメラがアカウント識別子をキャプチャできるようにするプロセスが開発されている。
【発明の概要】
【0004】
本明細書に開示される実施形態は、NFCを介してデータをクリップボードにコピーするためにタップするためのシステム、方法、製造品、およびコンピュータ可読媒体を提供する。一例によれば、アプリケーションは、アカウントに関連付けられた非接触カードの通信インターフェースから暗号化されたデータを受信し得、暗号化されたデータは、1つまたは複数の暗号化アルゴリズムおよび多様化された鍵に基づいて生成され、多様化された鍵は、非接触カードのメモリに格納され、マスター鍵および非接触カードのメモリに格納されたカウンタ値に基づいて生成される。次に、アプリケーションは、サーバから、暗号化されたデータの検証を受信し得、サーバは、1つまたは複数の暗号化アルゴリズムと、サーバのメモリに格納された多様化された鍵とに基づいて、暗号化されたデータを復号して、暗号化されたデータを検証し、サーバのメモリに格納された多様化された鍵は、マスター鍵と、サーバのメモリに格納されたカウンタ値とに基づいて生成される。アプリケーションはさらに、サーバから、アカウントに関連付けられた暗号化されたアカウント番号を受信し得る。アプリケーションは、暗号化されたアカウント番号を復号して、アカウント番号を生成し得る。次に、アプリケーションは、プロセッサ回路上で実行されているオペレーティングシステム(OS)のクリップボードにアカウント番号をコピーし得る。
【図面の簡単な説明】
【0005】
【
図1A】NFCを介してデータをクリップボードにコピーするためにタップするためのシステムの実施形態を示している。
【
図1B】NFCを介してデータをクリップボードにコピーするためにタップするためのシステムの実施形態を示している。
【
図2】NFCを介してデータをクリップボードにコピーするためのタップの実施形態を示している。
【
図3A】NFCを介してデータをクリップボードにコピーするためのタップの実施形態を示している。
【
図3B】NFCを介してデータをクリップボードにコピーするためのタップの実施形態を示している。
【
図3C】NFCを介してデータをクリップボードにコピーするためのタップの実施形態を示している。
【
図8】コンピューティングアーキテクチャの実施形態を示している。
【発明を実施するための形態】
【0006】
本明細書に開示される実施形態は、NFCを使用して非接触カードからコンピューティングデバイスのクリップボードにデータ(例えば、アカウント番号)をコピーするための安全な技術を提供する。一般に、デバイスのユーザは、非接触カードからデータをコピーすることを指定する入力をアプリケーションに提供し得る。次に、非接触カードは、例えば、タップジェスチャを介して、デバイスとのNFC通信範囲に入り得る。次に、アプリケーションは、NFCを介してデータを生成してアプリケーションに送信するように非接触カードに指示し得る。非接触カードによって生成されたデータは、鍵の多様化を使用して暗号化され得る。アプリケーションは、非接触カードから受信したデータを検証のためにサーバに送信し得る。データを検証すると、サーバは、アカウントデータ(例えば、アカウント番号)をデバイス上のアプリケーションに送信し、これは、受信したアカウントデータをデバイスのオペレーティングシステムのクリップボードにコピーし得る。アカウントデータは、購入が行われるまで、または時間閾値の期限が切れるまでクリップボードに保持され得、その時点でクリップボードの内容が消去、上書き、またはその他の方法で変更され得る。有利なことに、そうすることで、すべてのデバイスおよび関連データのセキュリティが向上する。
【0007】
本明細書で使用される表記法および命名法を一般的に参照して、以下の詳細な説明の1つまたは複数の部分は、コンピュータまたはコンピュータのネットワーク上で実行されるプログラム手順に関して提示され得る。これらの手順の説明および表現は、当業者によって、それらの作業の実体を当業者に最も効果的に伝えるために使用される。手順はここにあり、一般に、望ましい結果につながる自己矛盾のない一連の演算であると考えられている。これらの演算は、物理量の物理的な操作を必要とする演算である。通常、必ずしもそうとは限らないが、これらの量は、格納、転送、結合、比較、およびその他の方法で操作できる電気信号、磁気信号、または光信号の形をとる。主に一般的な使用法の理由から、これらの信号をビット、値、要素、記号、文字、用語、数値などと呼ぶと便利な場合がある。しかしながら、これらおよび類似の用語はすべて、適切な物理量に関連付けられており、これらの量に適用される便利なラベルにすぎないことに留意すべきである。
【0008】
さらに、これらの操作は、加算または比較などの用語で呼ばれることが多く、これらは、一般に、人間のオペレータによって実行される知的な演算に関連付けられている。しかしながら、1つまたは複数の実施形態の一部を形成する本明細書に記載の演算のいずれにおいても、人間のオペレータのそのような能力は、必要ではなく、またはほとんどの場合望ましいものではない。むしろ、これらの演算は、機械演算である。様々な実施形態の演算を実行するための有用な機械は、本明細書の教示に従って書かれた、その中に格納されたコンピュータプログラムによって選択的にアクティブ化または構成されたデジタルコンピュータを含み、および/または必要な目的のために特別に構築された装置またはデジタルコンピュータを含む。様々な実施形態はまた、これらの演算を実行するための装置またはシステムに関する。これらの装置は、必要な目的のために特別に構築され得る。これらの様々な機械に必要な構造は、与えられた説明から明らかになる。
【0009】
ここで、図面を参照する。ここで、同様の参照番号は、全体を通して同様の要素を参照するために使用される。以下の説明では、説明の目的で、それらを完全に理解するために、多くの具体的な詳細が示されている。しかしながら、新規の実施形態は、これらの特定の詳細なしで実施できることは明らかであろう。他の例では、その説明を容易にするために、周知の構造およびデバイスがブロック図の形で示されている。意図は、請求の範囲内のすべての修正、均等物、および代替案をカバーすることである。
【0010】
図1Aは、開示された実施形態に対応する、例示的なシステム100の概略図を示している。示されるように、システム100は、1つまたは複数の非接触カード101、1つまたは複数のモバイルデバイス110、およびサーバ120を含む。非接触カード101は、クレジットカード、デビットカード、ATMカード、ギフトカードなどの任意のタイプの支払いカードを代表するものである。非接触カード101は、NFC、EMV標準、または無線通信における他の短距離プロトコルを介して、またはNFCデータ交換フォーマット(NDEF)タグを使用してモバイルデバイス110と通信するように構成された、無線周波数識別(RFID)チップなどの1つまたは複数のチップ(図示せず)を備え得る。通信プロトコルの例としてNFCが使用されているが、本開示は、EMV標準、ブルートゥース(登録商標)、および/またはWi-Fiなどの他のタイプの無線通信にも同様に適用可能である。モバイルデバイス110は、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス、ラップトップ、ポータブルゲームデバイスなどのような、任意のタイプのネットワーク対応コンピューティングデバイスを代表するものである。サーバ120は、サーバ、ワークステーション、コンピューティングクラスタ、クラウドコンピューティングプラットフォーム、仮想化コンピューティングシステムなどのような任意のタイプのコンピューティングデバイスを代表するものである。
【0011】
示されるように、非接触カード101のメモリ102は、データ103、カウンタ104、マスター鍵105、多様化された鍵106、および一意の顧客識別子107を含む。データ103は、一般に、文字、テキスト、実行可能コード、画像、または他のタイプのデータオブジェクトなど、クリップボード114にコピーできる任意のデータを含む。一実施形態では、データ103は、非接触カード101に関連付けられたアカウント番号、有効期限、およびカード検証値(CVV)を備え得る。アカウント番号は、プライマリアカウント番号(PAN)、仮想アカウント番号、および/またはPANに基づいて生成されたトークンなど、任意のタイプのアカウント番号であり得る。他のタイプのアカウント番号が企図されており、本明細書の例としての特定のタイプのアカウント番号の使用は、開示を限定するものと見なされるべきではない。データ103はさらに、名前、請求先住所、配送先住所、ユーザ名および/またはパスワード、多要素認証のための1回限りの使用コード、個人化されたユニフォームリソースロケータ(URL)、ギフトカード番号、運転免許証情報、パスポート情報、ロイヤルティプログラム情報、ロイヤルティポイント、電話番号、メールアドレス、連絡先情報、アクセス情報などを含む。他のタイプのデータ103が企図されており、本明細書の例としての任意のタイプのデータ103の使用は、本開示を限定すると見なされるべきではない。
【0012】
示されるように、モバイルデバイス110のメモリ111は、オペレーティングシステム(OS)112のインスタンスを含む。オペレーティングシステム112の例は、アンドロイド(登録商標)OS、iOS(登録商標)、Linux(登録商標)、およびウィンドウズ(登録商標)オペレーティングシステムを含む。示されるように、OS112は、アカウントアプリケーション113、クリップボード114、および1つまたは複数の他のアプリケーション115を含む。アカウントアプリケーション113は、ユーザが、以下でより詳細に説明されるように、アカウント残高の表示および支払いの処理などの様々なアカウント関連動作を実行することを可能にする。最初に、ユーザは、アカウントアプリケーションにアクセスするために認証資格情報を使用して認証する必要がある。例えば、認証資格情報は、ユーザ名およびパスワード、生体認証資格情報などを含み得る。クリップボード114は、OS112内でコピーおよび/または貼り付けることができるデータを格納する。例えば、以下でより詳細に論じられるように、非接触カード101に関連付けられたアカウントのアカウント番号(例えば、データ103の一部)は、OS112内で利用可能なコマンドおよび/またはジェスチャを使用して安全な方法でクリップボード114にプログラム的にコピーされ得る。次に、アカウント番号は、OS112内で利用可能なコマンドおよび/またはジェスチャを使用して、クリップボード114からアカウントアプリケーション113、他のアプリケーション115、および/またはOS112の他のコンポーネントに貼り付け得る。少なくとも1つの実施形態では、クリップボード114は、データ103のすべての要素のための単一のデータフィールドを含む。他の実施形態では、クリップボード114は、データ103の各要素に対して少なくとも1つのフィールド(例えば、アカウント番号のためのフィールド、有効期限のためのフィールド、CVV番号のためのフィールド、名のためのフィールド、および姓のためのフィールドなど)を有する複数のデータフィールドを含む。
【0013】
示されるように、サーバ120は、アカウントデータ124およびメモリ122のデータストアを含む。アカウントデータ124は、複数のユーザおよび/またはアカウントのアカウント関連データを含む。アカウントデータ124は、少なくともマスター鍵105、カウンタ104、顧客ID107、関連する非接触カード101、および各アカウントの経歴情報を含み得る。メモリ122は、管理アプリケーション123と、アカウントデータ124からの1つまたは複数のアカウントのデータ103、カウンタ104、マスター鍵105、および多様化された鍵106のインスタンスとを含む。
【0014】
一般に、システム100は、データを保護するために鍵の多様化を実施するように構成される。サーバ120(または他のコンピューティングデバイス)および非接触カード101は、同じマスター鍵105(マスター対称鍵とも呼ばれる)でプロビジョニングされ得る。より具体的には、各非接触カード101は、サーバ120内に対応するペアを有する別個のマスター鍵105でプログラムされている。例えば、非接触カード101が製造されるとき、一意のマスター鍵105が、非接触カード101のメモリ102にプログラムされ得る。同様に、一意のマスター鍵105は、サーバ120のアカウントデータ124内の非接触カード101に関連付けられた顧客の記録に格納され得る(または他の安全な場所に格納され得る)。マスター鍵は、非接触カード101およびサーバ120以外のすべての関係者から秘密にされ得、それにより、システム100のセキュリティを強化する。鍵多様化技術の他の例は、2018年11月29日に出願された米国特許出願第16/205,119号に記載されている。前述の特許出願は、参照によりその全体が本明細書に援用される。
【0015】
マスター鍵105は、鍵の多様化を使用してセキュリティを強化するために、カウンタ104と組み合わせて使用され得る。カウンタ104は、非接触カード101とサーバ120との間で同期される値を備える。カウンタ値104は、非接触カード101とサーバ120(および/または非接触カード101とモバイルデバイス110)との間でデータが交換されるたびに変化する数を備え得る。非接触カード101とモバイルデバイス110との間のNFCデータ転送を可能にするために、アカウントアプリケーション113は、非接触カード101がモバイルデバイス110のカードリーダ118に十分に近いときに非接触カード101と通信し得る。カードリーダ118は、非接触カード101から読み取りおよび/または非接触カード101と通信するように構成され得る(例えば、NFC、ブルートゥース(登録商標)、RFIDなどを介して)。したがって、例示的なカードリーダ118は、NFC通信モジュール、ブルートゥース(登録商標)通信モジュール、および/またはRFID通信モジュールを含む。
【0016】
例えば、ユーザは、非接触カード101をモバイルデバイス110にタップし得、それにより、非接触カード101をモバイルデバイス110のカードリーダ118に十分に近づけて、非接触カード101とモバイルデバイス110のカードリーダ118との間のNFCデータ転送を可能にする。クライアントデバイス110と非接触カード101との間で通信が確立された後、非接触カード101は、メッセージ認証コード(MAC)暗号文を生成する。いくつかの例では、これは、非接触カード101がアカウントアプリケーション113によって読み取られるときに発生し得る。特に、これは、NFCデータ交換フォーマットに従って作成され得る近距離無線データ交換(NDEF)タグのNFC読み取りなどの読み取り時に発生し得る。例えば、アカウントアプリケーション113および/またはカードリーダ118などのリーダは、NDEF生成アプレットのアプレットIDを用いて、アプレット選択メッセージなどのメッセージを送信し得る。選択が確認されると、選択ファイルメッセージのシーケンスとそれに続く読み取りファイルメッセージが送信され得る。例えば、シーケンスは、「機能ファイルの選択」、「機能ファイルの読み取り」、および「NDEFファイルの選択」を含み得る。この時点で、非接触カード101によって維持されるカウンタ値104は、更新またはインクリメントされ得、その後、「NDEFファイルの読み取り」が続き得る。この時点で、ヘッダと共有秘密を含み得るメッセージが生成され得る。次に、セッション鍵が生成され得る。MAC暗号文は、ヘッダと共有秘密を含み得るメッセージから作成され得る。次に、MAC暗号文をランダムデータの1つまたは複数のブロックと連結し、MAC暗号文と乱数(RND)をセッション鍵で暗号化し得る。その後、暗号文とヘッダを連結し、ASCII16進数として符号化して、NDEFメッセージフォーマットで返すことができる(「NDEFファイルの読み取り」メッセージに応答)。いくつかの例では、MAC暗号文は、NDEFタグとして送信され得、他の例では、MAC暗号文は、ユニフォームリソースインジケータとともに(例えば、フォーマットされた文字列として)含まれ得る。次に、非接触カード101は、MAC暗号文をモバイルデバイス110に送信し得、これは、次に、以下に説明するように、検証のためにMAC暗号文をサーバ120に転送し得る。しかしながら、いくつかの実施形態では、モバイルデバイス110は、MAC暗号文を検証し得る。
【0017】
より一般的には、データを送信する準備をするとき(例えば、サーバ120および/またはモバイルデバイス110に)、非接触カード101は、カウンタ値104をインクリメントし得る。次に、非接触カード101は、暗号化アルゴリズムへの入力としてマスター鍵105およびカウンタ値104を提供し得、これは、出力として多様化された鍵106を生成する。暗号化アルゴリズムは、暗号化アルゴリズム、ハッシュベースのメッセージ認証コード(HMAC)アルゴリズム、暗号ベースのメッセージ認証コード(CMAC)アルゴリズムなどを含み得る。暗号化アルゴリズムの非限定的な例は、3DESまたはAES128などの対称暗号化アルゴリズム、HMAC-SHA-256などの対称HMACアルゴリズム、AES-CMACなどの対称CMACアルゴリズムを含み得る。次に、非接触カード101は、多様化された鍵106を使用してデータ(例えば、顧客識別子107および他の任意のデータ)を暗号化し得る。次に、非接触カード101は、暗号化されたデータをモバイルデバイス110のアカウントアプリケーション113に送信し得る(例えば、NFC接続、ブルートゥース(登録商標)接続などを介して)。次に、モバイルデバイス110のアカウントアプリケーション113は、暗号化されたデータをネットワーク130を介してサーバ120に送信し得る。少なくとも1つの実施形態では、非接触カード101は、暗号化されたデータと共にカウンタ値104を送信する。そのような実施形態では、非接触カード101は、暗号化されたカウンタ値104、または暗号化されていないカウンタ値104を送信し得る。
【0018】
データを受信すると、サーバ120の管理アプリケーション123は、暗号化への入力としてカウンタ値104を使用し、暗号化のための鍵としてマスター鍵105を使用して、同じ対称暗号化を実行し得る。述べたように、カウンタ値104は、モバイルデバイス110から受信したデータ、または非接触カード101の鍵の多様化を実施するためにサーバ120によって維持されるカウンタ値104で指定され得る。暗号化の出力は、非接触カード101によって作成されたものと同じ多様化された鍵値106であり得る。次に、管理アプリケーション123は、多様化された鍵106を使用してネットワーク130を介して受信された暗号化データを復号し得、これにより、非接触カード101によって送信されたデータ(例えば、少なくとも顧客識別子107)が明らかになる。そうすることにより、管理アプリケーション123は、例えば、復号された顧客ID107をアカウントのアカウントデータ124内の顧客IDと比較することによって、モバイルデバイス110を介して非接触カード101によって送信されたデータを検証できる。
【0019】
カウンタ104が例として使用されるが、他のデータを使用して、非接触カード101、モバイルデバイス110、および/またはサーバ120の間の通信を保護できる。例えば、カウンタ104は、新しい多様化された鍵106が必要とされるたびに生成されるランダムナンス、非接触カード101およびサーバ120から送信されるカウンタ値の全値、非接触カード101およびサーバ120から送信されるカウンタ値の一部、非接触カード101およびサーバ120によって独立して維持されるが、両者の間で送信されないカウンタ、非接触カード101とサーバ120との間で交換されるワンタイムパスコード、および暗号化データのハッシュと置き換え得る。いくつかの例では、多様化された鍵106の1つまたは複数の部分は、複数の多様化された鍵106を作成するために当事者によって使用され得る。
【0020】
示されるように、サーバ120は、1つまたは複数のハードウェアセキュリティモジュール(HSM)125を含み得る。例えば、1つまたは複数のHSM125は、本明細書に開示されるように、1つまたは複数の暗号化動作を実行するように構成され得る。いくつかの例では、1つまたは複数のHSM125は、1つまたは複数の暗号化動作を実行するように構成された特別な目的のセキュリティデバイスとして構成され得る。HSM125は、鍵がHSM125の外部に決して公開されず、代わりにHSM125内で維持されるように構成され得る。例えば、1つまたは複数のHSM125は、鍵導出、復号、およびMAC動作のうちの少なくとも1つを実行するように構成され得る。1つまたは複数のHSM125は、サーバ120内に含まれ得、またはサーバ120とデータ通信し得る。
【0021】
前述のように、非接触カード101および/またはサーバ120のデータ103などのデータは、クリップボード114に安全にコピーされ得る。いくつかの実施形態では、データ103の1つまたは複数のデータ要素は、非接触カード101から直接受信され、クリップボードにコピーされる。例えば、非接触カード101のアカウント番号、有効期限、およびCVVは、非接触カード101からの1つまたは複数のデータパッケージ内のデータ103から受信され得る。いくつかの実施形態では、非接触カード101は、データ103の要求された要素を暗号化し、非接触カード101によって(例えば、サーバ120によって)生成された暗号化されたデータの認証が成功したことを示す指示を受信したことに応答して、アカウントアプリケーション113によって解析され、クリップボード114にコピーされ得る暗号化されたデータ103を備えるデータパッケージを送信し得る。他の実施形態では、サーバ120は、非接触カード101によって生成された暗号化されたデータを認証し、サーバ120に格納されたデータ103を1つまたは複数のデータパッケージでサーバ120から受信したデータ103をクリップボード114にコピーし得るアカウントアプリケーション113に送信し得る。データ103が単一のパッケージで(例えば、カード101および/またはサーバ120から)モバイルデバイス110に送信される実施形態では、単一のデータパッケージは、アカウントアプリケーション113がデータ103(例えば、アカウント番号、有効期限、CVV、請求先住所、および/または配送先住所)の各要素を解析および抽出することを可能にする区切り文字および/またはメタデータを含み得る。
【0022】
例えば、アカウントアプリケーション113のユーザは、データをクリップボード114にコピーするように指定し得る。それに応じて、アカウントアプリケーション113は、非接触カード101をモバイルデバイス110にタップするようにユーザに指示し得る。そうすることにより、アカウントアプリケーション113は、指示を生成し、非接触カード101に送信して、暗号化されたデータ108を生成する。それに応答して、非接触カード101は、カウンタ値104をインクリメントし、暗号化アルゴリズムへの入力としてマスター鍵105およびカウンタ値104を提供し、これは、出力として多様化された鍵106を生成する。次に、非接触カード101は、多様化された鍵106を使用して顧客識別子107を暗号化して、暗号化されたデータ108を生成できる。述べたように、いくつかの実施形態では、非接触カード101は、データ103をさらに暗号化し、暗号化されたデータ108の一部として暗号化されたデータ103を含み得る。次に、非接触カード101は、暗号化されたデータ108をモバイルデバイス110のアカウントアプリケーション113に(例えば、NFC接続、ブルートゥース(登録商標)接続などを介して)送信し得る。次に、モバイルデバイス110のアカウントアプリケーション113は、暗号化されたデータ108をネットワーク130を介してサーバ120に送信し得る。少なくとも1つの実施形態では、非接触カード101は、暗号化されたデータ108と共にカウンタ値104を送信する。
【0023】
暗号化されたデータ108を受信すると、サーバ120の管理アプリケーション123は、鍵の多様化を使用して暗号化されたデータ108を検証し得る。前述のように、サーバ120の管理アプリケーション123は、暗号化への入力としてカウンタ値104を使用し、暗号化のための鍵としてマスター鍵105を使用して同じ対称暗号化を実行して、多様化された鍵106を生成し得る。次に、管理アプリケーション123は、多様化された鍵106を使用してネットワーク130を介して受信された暗号化されたデータ108を復号し得、これにより、非接触カード101によって送信されたデータ(例えば、少なくとも顧客識別子107)が明らかになる。そうすることにより、管理アプリケーション123は、例えば、復号された顧客ID107を、顧客ID値の一致が非接触カード101から受信した暗号化されたデータを検証する、アカウントのアカウントデータ124内の顧客IDと比較することによって、モバイルデバイス110を介して非接触カード101によって送信されたデータを検証し得る。
【0024】
管理アプリケーション123が暗号化されたデータ108を正常に検証する場合、管理アプリケーション123は、検証の指示をアカウントアプリケーション113に送信し得る。述べたように、いくつかの実施形態では、非接触カード101によって生成された暗号化されたデータ108は、データ103を含み得る。したがって、管理アプリケーション123からの検証の指示の受信に応答して、アカウントアプリケーション113は、非接触カード101から受信した暗号化されたデータ108を復号および解析して、復号されたデータ103をクリップボード114にコピーする。述べたように、いくつかの実施形態では、管理アプリケーション123は、要求されたデータ103をサーバ120からアカウントアプリケーション113にさらに送信し得る。そのような実施形態では、アカウントアプリケーション113は、サーバ120から受信したデータ103をクリップボード114にコピーし得る。
【0025】
少なくとも1つの実施形態では、データをクリップボード114にコピーする要求に時間閾値を適用し得る。そのような実施形態では、アカウントアプリケーション113は、データをクリップボード114にコピーする要求が開始されたことをサーバ120に通知し得る。次に、サーバ120は、タイマを開始し得る。タイマ値が時間閾値を超える場合、サーバ120は、暗号化されたデータ108の検証を控え、暗号化されたデータ108の検証の指示を送信することを控え、および/またはサーバ120からアカウントアプリケーション113にデータ103を送信することを控え得る。例えば、サーバ120が、タイマを開始してから15秒後にモバイルデバイス110を介して非接触カード101から暗号化されたデータ108を受信し、時間閾値が30秒である場合、サーバ120は、暗号化されたデータ108を検証し、データ103をサーバ120からモバイルデバイス110に送信し得る。しかしながら、サーバ120が、タイマを開始してから45秒後にモバイルデバイス110を介して非接触カード101から暗号化されたデータ108を受信した場合、サーバ120は、暗号化されたデータ108の検証を差し控え、障害状態を、データをクリップボード114にコピーすることを差し控え得るアカウントアプリケーション113に送信し得る。
【0026】
図1Bは、管理アプリケーション123によって実行された検証プロセスの結果を示している。示されるように、暗号化されたデータ108を検証した後、サーバ120の管理アプリケーション123は、データ103をサーバ120からモバイルデバイス110に送信する。少なくとも1つの実施形態では、管理アプリケーション123は、アカウントアプリケーション113に送信する前にデータ103を暗号化する。述べたように、データ103は、非接触カード101のアカウント番号、CVV、有効期限、および/または請求先住所を含み得る。さらに、述べたように、アカウント番号は、使い捨ての仮想アカウント番号を備え得る。次に、アカウントアプリケーション113は、データ103を受信し、データ103が暗号化されている場合、受信したデータ103を復号し得る。次に、アカウントアプリケーション113は、ユーザ入力を必要とせずに、またデータ103を公開することなく、データ103をクリップボード114にプログラム的に書き込み得る。例えば、OS112は、データをクリップボード114にコピーするためのアプリケーションプログラミングインターフェース(API)を提供し得る。したがって、アカウントアプリケーション113は、クリップボード114にコピーされるデータ103を含むAPIを呼び出し得る。API呼び出しの結果は、提供されたデータ103をクリップボード114にコピーし得る。他の例として、アカウントアプリケーション113は、OS112によってサポートされる1つまたは複数のコードステートメントを使用して、データ103をクリップボードに直接コピーし得る。クリップボード114にコピーされると、ユーザは、OS112内で利用可能なコマンドおよび/またはジェスチャを使用して、クリップボード114からOS112内の他のターゲットにデータ103を容易に貼り付け得る。
【0027】
いくつかの実施形態では、データ103は、非接触カード101に関連付けられたアカウントを使用して購入を行うために必要なすべての関連情報(例えば、アカウント番号、有効期限、CVV、請求先住所、および/または配送先住所)をクリップボード114にコピーした。しかしながら、他の実施形態では、データ103の個々の要素は、非接触カード101およびモバイルデバイス110の1つまたは複数のタップを使用してクリップボード114に増分的にコピーされ得る。例えば、非接触カード101およびモバイルデバイス110の第1のタップは、データ103のアカウント番号をクリップボード114にコピーし得、一方、非接触カード101およびモバイルデバイス110の第2のタップは、有効期限をクリップボード114にコピーし得、非接触カード101およびモバイルデバイス110の第3のタップは、CVVをクリップボード114にコピーし得、非接触カード101の第4のタップは、配送先住所をクリップボード114にコピーし得、非接触カード101の第5のタップは、請求先住所をクリップボード114にコピーし得る。一実施形態では、暗号化されたデータ108の別個のパッケージは、各タップに応答する非接触カード101によって生成され、サーバ120は、対応するデータ103をクリップボード114にコピーする前に、暗号化されたデータ108の各パッケージを検証する。いくつかの実施形態では、暗号化されたデータ108の単一のパッケージは、最初のタップに応答して生成され、サーバ120は、暗号化されたデータ108の単一のパッケージを検証する。いくつかのそのような実施形態では、アカウントアプリケーション113は、データ103内の各データ要素(例えば、アカウント番号、有効期限、日付、CVV、請求先住所、および/または配送先住所)を識別する区切り文字および/またはメタデータを有する単一のパッケージでサーバ120からデータ103を受信し得る。アカウントアプリケーション113は、区切り文字および/またはメタデータを使用してデータ要素を解析して、サーバから受信したデータ103の単一のパッケージからデータの各要素を抽出し得る。次に、アカウントアプリケーション113は、非接触カード101およびモバイルデバイス110の各タップに応答して、解析されたデータをクリップボードにコピーし得る。いくつかのそのような実施形態では、アカウントアプリケーション113は、デバイス110に表示される現在のフィールドに基づいてデータ103を解析し得る。例えば、アカウント番号フィールドが現在選択されている、および/またはデバイス110に表示されている場合、アカウントアプリケーション113は、データ103からアカウント番号を解析し、アカウント番号をクリップボード114にコピーし得る。
【0028】
さらに、いくつかの実施形態では、クリップボード114は、ハイパーテキストマークアップ言語(HTML)ベースであり得る。そのような実施形態では、データ103は、HTMLでラップされ得る。例えば、アカウント番号をHTMLでラップして、アカウント番号の存在を示し得る。有効期限、CVV、および住所も同様にHTMLでラップされ得る。したがって、クリップボード114から貼り付ける場合、HTMLおよびデータ103は、ターゲット(例えば、OS112、アカウントアプリケーション113、および/または他のアプリケーション115内のフォーム)に貼り付けられる。少なくとも1つの実施形態では、クリップボード114および/またはOS112は、データ103および/または生成されたHTMLに照らしてフォームを解析して、データ103および/または生成されたHTMLをフォームのフィールドに関連付け得る。例えば、これにより、フォームでフィールドに異なるHTMLタグが使用されている場合でも、アカウント番号、有効期限、CVV、請求先住所、および配送先住所をフォームの正しいフィールドに貼り付けられ得る。
【0029】
さらに、アカウントアプリケーション113および/またはOS112は、クリップボード114にコピーされたデータ103を管理し得る。例えば、データ103は、データ103が所定の時間クリップボード114に格納された後、クリップボード114から削除され得る。他の例として、データ103が購入を行うために使用された後、例えば、データ103が購入を行うために使用されてから閾値時間が経過した後、データ103は、クリップボード114から削除され得る。さらに、および/または代替的に、クリップボード114は、例えば、ランダムデータをクリップボード114にコピーすることによって、データ103を除去するように修正され得る。
【0030】
図2は、NFCを介してデータをクリップボードにコピーするためのタップの例示的な実施形態を示す概略
図200である。一般に、概略200は、アカウントアプリケーション113が非接触カード101から直接(例えば、カードリーダ118を介して)データ103を読み取る実施形態を示している。示されるように、モバイルデバイス110上のアカウントアプリケーション113は、例えば、非接触カード101からクリップボード114にデータをコピーすることを指定するユーザ入力の受信に応答して、非接触カード101をモバイルデバイス110にタップするように指定し得る。非接触カード101がモバイルデバイス110にタップされると、アカウントアプリケーション113は、NFCカードリーダ118を介して、データ103を送信するための指示を非接触カード101に送信する。次に、非接触カード101は、NFCを介してデータ103をアカウントアプリケーション113に送信し得る。次に、アカウントアプリケーション113は、受信したデータ103をクリップボード114にコピーし得る。述べたように、データ103は、アカウント番号、有効期限、およびCVVのうちの1つまたは複数を含み得る。次に、データ103は、クリップボード114から、OS112内の任意の数およびタイプのターゲットに貼り付けられ得る。
【0031】
図3Aは、NFCを介してデータをクリップボードにコピーするためのタップの例示的な実施形態を示す概略
図300である。一般に、
図3Aは、データ103のアカウント番号をコピーするためにシングルタップが使用される実施形態を反映している。示されるように、モバイルデバイス110上のアカウントアプリケーション113は、例えば、データ103をクリップボード114にコピーすることを指定するユーザ入力の受信に応答して、非接触カード101をモバイルデバイス110にタップするように指定し得る。非接触カード101がモバイルデバイス110にタップされると、アカウントアプリケーション113は、NFCカードリーダ118を介して、データを送信するための指示を非接触カード101に送信する。一実施形態では、非接触カード101は、NFCを介してモバイルデバイス110にアカウント番号を直接送信し、カードリーダ118は、受信したデータをアカウントアプリケーション113に提供し、これは、アカウント番号をクリップボード114にコピーする。そのような実施形態では、非接触カード101のアプレット(例えば、
図4Bのアプレット440)は、アカウント番号を送信することを決定し、各タップに応答してカウンタ値をインクリメントするためのカウンタ値を維持し得る。そのような実施形態では、少なくとも1つのカウンタ値は、アカウント番号の送信に関連付けられ、少なくとも1つの他のカウンタ値は、有効期限の送信に関連付けられ、少なくとも1つの他のカウンタ値は、CVVの送信に関連付けられる。
【0032】
他の実施形態では、非接触カード101は、暗号化されたデータ(例えば、暗号化されたデータ108)を生成し、暗号化されたデータをアカウントアプリケーション113に送信するために、上記のような鍵多様化を使用して暗号化を実行し得る。次に、アカウントアプリケーション113は、暗号化されたデータをサーバ120に送信し得、管理アプリケーション123は、上記のように鍵多様化を使用して暗号化されたデータを検証する。次に、管理アプリケーション123は、アカウント番号をアカウントアプリケーション113に送信し得、これは、アカウント番号をクリップボード114にコピーする。
【0033】
非接触カード101のアカウント番号をクリップボード114にコピーするために使用される技術に関係なく、ユーザは、その後、必要に応じてアカウント番号を貼り付け得る。さらに、必要に応じて、ユーザは、非接触カード101をモバイルデバイス110にさらにタップして、非接触カード101の有効期限をクリップボード114にコピーし得る。
【0034】
図3Bは、ユーザが非接触カード101をモバイルデバイス110にタップして、非接触カード101の有効期限をクリップボード114にコピーした例示的な実施形態を示す概略
図310である。非接触カード101がモバイルデバイス110にタップされると、アカウントアプリケーション113は、NFCカードリーダ118を介して、データを送信するための指示を非接触カード101に送信する。一実施形態では、非接触カード101は、有効期限をNFCを介してモバイルデバイス110に直接送信し、アカウントアプリケーション113は、有効期限をクリップボード114にコピーする。そのような実施形態では、非接触カード101のアプレットは、タップに応答してカウンタ値をインクリメントし得、カウンタ値を参照して、有効期限を送信することを決定し得る。
【0035】
他の実施形態では、非接触カード101は、暗号化されたデータ(例えば、暗号化されたデータ108)を生成し、暗号化されたデータをアカウントアプリケーション113に送信するために、上記のような鍵多様化を使用して暗号化を実行し得る。次に、アカウントアプリケーション113は、暗号化されたデータをサーバ120に送信し得、管理アプリケーション123は、上記のように鍵多様化を使用して暗号化されたデータを検証し得る。次に、管理アプリケーション123は、有効期限をアカウントアプリケーション113に送信し得、これは、有効期限をクリップボード114にコピーし得る。そうすることで、ユーザは、必要に応じて有効期限を貼り付けることができる。さらに、必要に応じて、ユーザは、非接触カード101をモバイルデバイス110にさらにタップして、非接触カード101のCVVをクリップボード114にコピーし得る。
【0036】
図3Cは、ユーザが非接触カード101をモバイルデバイス110にタップして、非接触カード101のCVVをクリップボード114にコピーした例示的な実施形態を示す概略
図320である。非接触カード101がモバイルデバイス110にタップされると、アカウントアプリケーション113は、NFCカードリーダ118を介して、データを送信するための指示を非接触カード101に送信する。一実施形態では、非接触カード101は、CVVをNFCを介してモバイルデバイス110に直接送信する。次に、カードリーダ118は、CVVをアカウントアプリケーション113に提供し得、これは、CVVをクリップボード114にコピーし得る。そのような実施形態では、非接触カード101のアプレットは、タップに応答してカウンタ値をインクリメントし得、カウンタ値を参照して、CVVを送信することを決定し得る。
【0037】
他の実施形態では、非接触カード101は、暗号化されたデータ(例えば、暗号化されたデータ108)を生成し、暗号化されたデータをアカウントアプリケーション113に送信するために、上記のような鍵多様化を使用して暗号化を実行し得る。次に、アカウントアプリケーション113は、暗号化されたデータをサーバ120に送信し得、管理アプリケーション123は、上記のように鍵多様化を使用して暗号化されたデータを検証する。次に、管理アプリケーション123は、CVVをアカウントアプリケーション113に送信し得、これは、CVVをクリップボード114にコピーする。そうすることで、ユーザは、必要に応じてCVVを貼り付け得る。
【0038】
いくつかの実施形態では、モバイルデバイス110への非接触カード101の最初のタップ(例えば、
図3Aに示されるタップ)により、非接触カード101および/またはサーバ120は、アカウント番号、有効期限、およびCVVをアカウントアプリケーション113に(例えば、NDEFファイルで)転送する。そのような実施形態では、アカウントアプリケーション113は、第1のタップに応答して、アカウント番号をNDEFファイルからクリップボード114にコピーする。第2のタップに応答して、アカウントアプリケーション113は、非接触カード101および/またはサーバ120から追加のデータを受信する必要なしに、有効期限をNDEFファイルからクリップボード114にコピーする。第3のタップに応答して、アカウントアプリケーション113は、非接触カード101および/またはサーバ120から追加のデータを受信する必要なしに、CVVをNDEFファイルからクリップボード114にコピーする。
【0039】
図4Aは、クレジットカード、デビットカード、および/またはギフトカードなどの支払いカードを備え得る非接触カード101を示している。示されているように、非接触カード101は、カード101の表面または裏面に表示されるサービスプロバイダ405によって発行され得る。いくつかの例では、非接触カード101は、支払いカードとは関係がなく、識別カードを備え得るが、これに限定されない。いくつかの例では、支払いカードは、デュアルインターフェース非接触支払いカードを備え得る。非接触カード101は、プラスチック、金属、および他の材料で構成される単一層または1つまたは複数の積層層を含み得る基板410を備え得る。例示的な基板材料は、ポリ塩化ビニル、ポリ塩化ビニルアセテート、アクリロニトリルブタジエンスチレン、ポリカーボネート、ポリエステル、陽極酸化チタン、パラジウム、金、カーボン、紙、および生分解性材料を含む。いくつかの例では、非接触カード101は、ISO/IEC7810規格のID-1フォーマットに準拠する物理的特性を有し得、そうでなければ、非接触カードは、ISO/IEC14443規格に準拠し得る。しかしながら、本開示に係る非接触カード101は異なる特性を有し得、本開示は、支払いカードに非接触カードを実施する必要がないことを理解されたい。
【0040】
非接触カード101は、カードの表面および/または裏面に表示される識別情報415、および接触パッド420も含み得る。接触パッド420は、ユーザデバイス、スマートフォン、ラップトップ、デスクトップ、またはタブレットコンピュータなどの他の通信デバイスとの接触を確立するように構成され得る。非接触カード101は、処理回路、アンテナ、および
図4Aには示されていない他のコンポーネントも含み得る。これらのコンポーネントは、接触パッド420の背後または基板410上の他の場所に配置され得る。非接触カード101はまた、カードの裏面に位置し得る磁気ストリップまたはテープを含み得る(
図4Aには示されていない)。
【0041】
図4Bに示されるように、
図4Aの接触パッド420は、マイクロプロセッサ430およびメモリ102を含む、情報を格納および処理するための処理回路425を含み得る。処理回路425は、プロセッサ、メモリ、エラーおよびパリティ/CRCチェッカ、データエンコーダ、アンチコリジョンアルゴリズム、コントローラ、コマンドデコーダ、セキュリティプリミティブ、および本明細書に記載の機能を実行するために必要な改ざん防止ハードウェアを含む追加のコンポーネントを含み得ることが理解される。
【0042】
メモリ102は、リードオンリーメモリ、ライトワンスリードマルチプルメモリ、またはリード/ライトメモリ、例えば、RAM、ROM、およびEEPROMであり得、非接触カード101は、これらのメモリの1つまたは複数を含み得る。リードオンリーメモリは、工場出荷時に読み取り専用または1回限りのプログラムが可能であり得る。1回限りのプログラムにより、一度書き込んで何度も読み取ることができる。ライトワンス/リードマルチプルメモリは、メモリチップが工場から出荷された後のある時点でプログラムされ得る。メモリは、一度プログラムされると、書き換えられないかもしれないが、何度も読み取られ得る。リード/ライトメモリは、工場出荷後に何度もプログラムおよび再プログラムされ得る。リード/ライトメモリはまた、工場出荷後に何度も読み取られ得る。
【0043】
メモリ102は、1つまたは複数のアプレット440、データ103の1つまたは複数の要素、1つまたは複数のカウンタ104、マスター鍵105、多様化された鍵106、および顧客識別子107を格納するように構成され得る。1つまたは複数のアプレット440は、Java(登録商標)カードアプレットなど、1つまたは複数の非接触カード上で実行するように構成された1つまたは複数のソフトウェアアプリケーションを備え得る。しかしながら、アプレット440は、Javaカードアプレットに限定されず、代わりに、非接触カードまたは限られたメモリを有する他のデバイス上で動作可能な任意のソフトウェアアプリケーションであり得ることが理解される。1つまたは複数のカウンタ104は、整数を格納するのに十分な数値カウンタを備え得る。顧客識別子107は、非接触カード101のユーザに割り当てられた一意の英数字識別子を備え得、識別子は、非接触カードのユーザを他の非接触カードユーザと区別し得る。いくつかの例では、顧客識別子107は、顧客とその顧客に割り当てられたアカウントの両方を識別し、さらに顧客のアカウントに関連付けられた非接触カードを識別し得る。
【0044】
前述の例示的な実施形態のプロセッサおよびメモリ要素は、接触パッドを参照して説明されているが、本開示は、それに限定されない。これらの要素は、パッド420の外部に、またはそれから完全に分離して、または接触パッド420内に位置するプロセッサ430およびメモリ102要素に加えて、さらなる要素として実施され得ることが理解される。
【0045】
いくつかの例では、非接触カード101は、1つまたは複数のアンテナ455を備え得る。1つまたは複数のアンテナ455は、非接触カード101内および接触パッド420の処理回路425の周りに配置され得る。例えば、1つまたは複数のアンテナ455は、処理回路425と一体化され得、1つまたは複数のアンテナ455は、外部ブースターコイルと共に使用され得る。他の例として、1つまたは複数のアンテナ455は、接触パッド420および処理回路425の外部にあり得る。
【0046】
一実施形態では、非接触カード101のコイルは、空芯変圧器の二次側として機能し得る。端末は、電力または振幅変調を切断することによって非接触カード101と通信し得る。非接触カード101は、1つまたは複数のコンデンサを介して機能的に維持され得る非接触カードの電源接続におけるギャップを使用して、端末から送信されるデータを推測し得る。非接触カード101は、非接触カードのコイルまたは負荷変調の負荷を切り替えることにより、通信を返し得る。負荷変調は、干渉によって端末のコイルで検出され得る。より一般的には、アンテナ455、処理回路425、および/またはメモリ102を使用して、非接触カード101は、NFC、ブルートゥース(登録商標)、および/またはWi-Fi通信を介して通信するための通信インターフェースを提供する。
【0047】
上で説明したように、非接触カード101は、Javaカードなどのメモリが限られているスマートカードまたは他のデバイス上で動作可能なソフトウェアプラットフォーム上に構築され得、1つまたは複数のアプリケーションまたはアプレットは、安全に実行され得る。アプレットは、非接触カードに追加され、様々なモバイルアプリケーションベースの使用事例で多要素認証(MFA)用のワンタイムパスワード(OTP)を提供し得る。アプレットは、モバイルNFCリーダ(例えば、モバイルデバイス110の)などのリーダからの近距離データ交換要求などの1つまたは複数の要求に応答し、NDEFテキストタグとしてエンコードされた暗号的に安全なOTPを備えるNDEFメッセージを生成するように構成され得る。
【0048】
図5は、論理フロー500の実施形態を示している。論理フロー500は、本明細書に記載の1つまたは複数の実施形態によって実行される動作のいくつかまたはすべてを表し得る。例えば、論理フロー500は、鍵の多様化を使用して非接触カード101に関連付けられたデータを安全にコピーするための動作のいくつかまたはすべてを含み得る。この文脈において、実施形態は、限定されない。
【0049】
示されるように、論理フロー500は、ブロック505で始まり、ここで、非接触カード101およびサーバ120は、同じマスター鍵105でプロビジョニングされる。ブロック510で、ユーザは、非接触カード101をモバイルデバイスにタップして、非接触カード101に暗号化されたデータ(例えば、暗号化されたデータ108)を生成および送信させる。ユーザは、データ103をクリップボードにコピーすることを指定するアカウントアプリケーション113への入力を提供することに応答して、非接触カード101をタップし得る。アカウントアプリケーション113は、暗号化されたデータを生成および送信することを指定するNFCカードリーダ118を介して非接触カード101に指示を送信し得る。非接触カード101は、暗号化されたデータを生成するための指示の受信に応答して、メモリ102内のカウンタ値104をインクリメントし得る。ブロック515で、非接触カード101は、メモリ102内のカウンタ値104およびマスター鍵105と暗号化アルゴリズムを使用して、多様化された鍵106を生成する。ブロック520で、非接触カード101は、多様化された鍵106および暗号化アルゴリズムを使用してデータ(例えば、顧客識別子107)を暗号化し、暗号化されたデータ(例えば、暗号化されたデータ108)を生成する。
【0050】
ブロック525で、非接触カード101は、NFCを使用して、暗号化されたデータをモバイルデバイス110のアカウントアプリケーション113に送信し得る。少なくとも1つの実施形態では、非接触カード101は、暗号化されたデータとともにカウンタ値104の指示をさらに含む。ブロック530で、モバイルデバイス110のアカウントアプリケーション113は、非接触カード101から受信したデータをサーバ120の管理アプリケーション123に送信し得る。ブロック535で、サーバ120の管理アプリケーション123は、暗号化アルゴリズムへの入力としてマスター鍵105およびカウンタ値104を使用して、多様化された鍵106を生成し得る。一実施形態では、管理アプリケーション123は、非接触カード101によって提供されるカウンタ値104を使用する。他の実施形態では、管理アプリケーション123は、メモリ122内のカウンタ値104をインクリメントして、メモリ122内のカウンタ値104の状態を、非接触カード101のメモリ102内のカウンタ値104と同期させる。
【0051】
ブロック540で、管理アプリケーション123は、多様化された鍵106および暗号化アルゴリズムを使用して、モバイルデバイス110を介して非接触カード101から受信された暗号化されたデータを復号する。そうすることで、少なくとも顧客識別子107が得られ得る。顧客識別子107を得ることによって、管理アプリケーション123は、ブロック545で非接触カード101から受信したデータを検証し得る。例えば、管理アプリケーション123は、顧客識別子107を、アカウントデータ124内の関連するアカウントの顧客識別子と比較し、一致に基づいてデータを検証し得る。
【0052】
ブロック550で、管理アプリケーション123は、非接触カード101に関連付けられたデータ103をモバイルデバイス110のアカウントアプリケーション113に送信し得る。例えば、管理アプリケーション123は、アカウント番号、有効期限、およびCVVを送信し得る。一実施形態では、管理アプリケーション123は、モバイルデバイス110のアカウントアプリケーション113に送信される仮想アカウント番号を生成する。ブロック555で、モバイルデバイス110のアカウントアプリケーション113は、サーバ120から受信したデータ103をOS112のクリップボード114にコピーする。ブロック560で、クリップボード114にコピーされたデータ103は、フォームに貼り付けられ得る。フォームは、アカウントアプリケーション113、他のアプリケーション115、および/またはOS112のコンポーネントであり得る。
【0053】
図6は、論理フロー600の実施形態を示している。論理フロー600は、本明細書に記載の1つまたは複数の実施形態によって実行される動作のいくつかまたはすべてを表し得る。例えば、論理フロー600は、クリップボード114からアプリケーションフォームにデータを貼り付けるための動作のいくつかまたはすべてを含み得る。この文脈において、実施形態は、限定されない。
【0054】
示されるように、論理フロー600は、ブロック610で始まり、アカウントアプリケーション113および/またはOS112は、アプリケーション内のフォームフィールドを備えるフォームを識別する。アプリケーションは、アカウントアプリケーション113および/または他のアプリケーション115のうちの1つまたは複数であり得る。例えば、アカウントアプリケーション113および/またはOS112は、フォームのソースコードを解析して、フォームのフィールドを識別し得る。ブロック620で、アカウントアプリケーション113および/またはOS112は、クリップボード114にコピーされたデータ103の要素(例えば、アカウント番号、有効期限、および/またはCVV)を対応するフォームフィールドにマッピングし得る。例えば、アカウントアプリケーション113および/またはOS112は、ファジー一致および/またはルールを使用して、アカウント番号、有効期限、およびCVVをフォームの適切なフィールドにマッピングし得る。
【0055】
ブロック630で、アカウントアプリケーション113および/またはOS112は、オプションで、クリップボード114に格納されたデータ103のHTMLを生成し、それによって、クリップボード114内のデータ103にHTMLを追加し得る。そうすることにより、アカウントアプリケーション113および/またはOS112がデータ103をフォームに挿入することを可能にし得る。ブロック640で、アカウントアプリケーション113および/またはOS112は、データ103をマッピングされたフォームフィールドにコピーする。ブロック650で、アカウントアプリケーション113および/またはOS112は、非接触カード101のデータ103で行われた購入に続いて、クリップボード114の内容を変更および/または削除し得る。ブロック660で、アカウントアプリケーション113および/またはOS112は、データ103をクリップボード114に格納するための時間制限の満了に続いて、クリップボード114の内容を変更および/または削除し得る。そうすることで、アカウント番号、識別情報、アカウント情報などのデータ103のセキュリティが強化される。
【0056】
図7は、論理フロー700の実施形態を示している。論理フロー700は、本明細書に記載の1つまたは複数の実施形態によって実行される動作のいくつかまたはすべてを表し得る。例えば、論理フロー700は、モバイルデバイス110への非接触カード101の複数のタップを使用してデータ103をクリップボード114にコピーするための動作のいくつかまたはすべてを含み得る。この文脈において、実施形態は、限定されない。
【0057】
示されるように、論理フロー700は、ブロック710で始まり、そこで、ユーザは、非接触カード101をモバイルデバイス110にタップする。そうすることにより、アカウントアプリケーション113は、非接触カード101に指示を送信して、鍵の多様化を使用して暗号化されたデータを生成する。アカウントアプリケーション113は、タップに応答してタップカウンタをさらにインクリメントし得る。ブロック720で、非接触カード101は、カウンタ値104をインクリメントし、上記のように暗号化されたデータ108を生成する。ブロック730で、アカウントアプリケーション113は、NFCを介して非接触カード101から暗号化されたデータ108を受信し、暗号化されたデータ108をサーバ120に送信する。次に、サーバ120は、上記のように鍵の多様化を使用して暗号化されたデータ108を検証し得る。ブロック740で、アカウントアプリケーション113は、サーバ120が暗号化されたデータ108を検証した後、サーバ120からデータ103を受信する。データ103は、非接触カード101に関連付けられたアカウント番号、有効期限、およびCVVのうちの1つまたは複数を含み得る。
【0058】
ブロック750で、アカウントアプリケーション113は、データ103をクリップボード114にコピーし得る。述べたように、アカウントアプリケーション113は、タップカウンタの現在の値に基づいてデータの1つの要素を貼り付け得る。例えば、モバイルデバイス110への非接触カード101の第1のタップに関連付けられたカウンタ値は、アカウント番号をクリップボード114にコピーすることに関連付けられ得る。同様に、第2のタップに関連付けられたカウンタ値は、有効期限をクリップボード114にコピーすることに関連付けられ得、一方、第3のタップに関連付けられたカウンタ値は、CVVをクリップボード114にコピーすることに関連付けられ得る。ブロック760で、アカウントアプリケーション113は、より多くのデータ103が残っているかどうかを決定する。例えば、タップカウンタが、アカウント番号がクリップボード114にコピーされたことを示す場合、アカウントアプリケーション113は、有効期限および/またはCVVがクリップボード114にコピーされたままであると決定し得る。したがって、論理フロー700は、ブロック710に戻る。そうでなければ、論理フロー700は、終了する。
【0059】
いくつかの例では、非接触カード101は、1つまたは複数のコンピュータキオスクまたは端末などのデバイスにタップされて、コーヒなどの購入に応答する取引アイテムを受け取るために身元を確認し得る。非接触カード101を使用することにより、ロイヤルティプログラムにおいて身元を証明する安全な方法が確立され得る。例えば、報奨、クーポン、オファなどを入手するための身元の安全な証明、または特典の受領は、単にバーカードをスキャンするのとは異なる方法で確立される。例えば、非接触カード101と、1つまたは複数のタップジェスチャを処理するように構成されたデバイスとの間で、暗号化されたトランザクションが発生し得る。上で説明したように、1つまたは複数のアプリケーションは、ユーザの身元を検証し、ユーザに、例えば、1つまたは複数のタップジェスチャを介してアクションまたは応答させるように構成され得る。いくつかの例では、ボーナスポイント、ロイヤルティポイント、報酬ポイント、ヘルスケア情報などのデータを非接触カードに書き戻し得る。
【0060】
いくつかの例では、非接触カード101は、モバイルデバイス110などのデバイスにタップされ得る。上で説明したように、ユーザの身元は、身元の検証に基づいてユーザに望ましい利益を付与する1つまたは複数のアプリケーションによって検証され得る。
【0061】
いくつかの実施形態では、認証通信プロトコルの例は、トランザクションカードと販売時点情報管理装置との間で一般的に実行されるEMV規格のオフライン動的データ認証プロトコルを、いくつかの変更を加えて模倣し得る。例えば、認証プロトコルの例は、カード発行者/支払い処理業者自体との支払いトランザクションを完了するために使用されないため、一部のデータ値は不要であり、認証は、カード発行者/支払い処理業者へのリアルタイムのオンライン接続を必要とせずに実行され得る。いくつかの販売時点情報管理(POS)システムは、トランザクション値を含むトランザクションをカード発行者に提出する。発行者がトランザクションを承認するか拒否するかは、カード発行者がトランザクション値を認識しているかどうかに基づき得る。一方、本開示の特定の実施形態では、モバイルデバイスから発生するトランザクションは、POSシステムに関連付けられたトランザクション値を欠いている。したがって、いくつかの実施形態では、ダミーのトランザクション値(すなわち、カード発行者が認識でき、アクティベーションを行うのに十分な値)が、認証通信プロトコル例の一部として渡され得る。POSベースのトランザクションは、トランザクションの試行回数(例えば、トランザクションカウンタ)に基づいてトランザクションを拒否し得る。バッファ値を超える試行回数が行われると、ソフト拒否が生じ得る。ソフト拒否は、トランザクションを受け入れる前に、さらに検証が必要である。いくつかの実施では、正当なトランザクションの拒否を避けるために、トランザクションカウンタのバッファ値が変更され得る。
【0062】
いくつかの例では、非接触カード101は、受信者デバイスに応じて情報を選択的に通信し得る。タップされると、非接触カード101は、タップが向けられたデバイスを認識し得、この認識に基づいて、非接触カードは、そのデバイスに適切なデータを提供し得る。これにより、非接触カードは、支払いやカード認証などの即時のアクションまたはトランザクションを完了するために必要な情報のみを送信できるという利点がある。データの送信を制限し、不要なデータの送信を回避することで、効率とデータのセキュリティの両方を向上させ得る。情報の認識と選択的な通信は、カードのアクティベーション、残高の転送、アカウントへのアクセス試行、商取引、段階的な不正行為の抑制など、様々なシナリオに適用され得る。
【0063】
非接触カード101のタップが、AppleのiOS(登録商標)オペレーティングシステムを実行しているデバイス、例えば、iPhone(登録商標)、iPod(登録商標)、またはiPad(登録商標)に向けられている場合、非接触カードは、iOS(登録商標)オペレーティングシステムを認識し、このデバイスと通信するための適切なデータを送信し得る。例えば、非接触カード101は、例えば、NFCを介してNDEFタグを使用してカードを認証するために必要な暗号化された識別情報を提供し得る。同様に、非接触カードタップがAndroid(登録商標)オペレーティングシステムを実行しているデバイス、例えば、Android(登録商標)スマートフォンまたはタブレットに向けられている場合、非接触カードは、Android(登録商標)オペレーティングシステムを認識し、このデバイスと通信するための適切なデータを送信し得る(本明細書に記載されている方法による認証に必要な暗号化された身元情報など)。
【0064】
他の例として、非接触カードタップは、キオスク、チェックアウトレジスタ、支払いステーション、または他の端末を含むがこれらに限定されないPOSデバイスに向けられ得る。タップが実行されると、非接触カード101は、POSデバイスを認識し、アクションまたはトランザクションに必要な情報のみを送信し得る。例えば、商取引を完了するために使用されるPOSデバイスを認識すると、非接触カード101は、EMV規格の下でトランザクションを完了するために必要な支払い情報を通信し得る。
【0065】
いくつかの例では、トランザクションに参加するPOSデバイスは、例えば、デバイス固有情報、ロケーション固有情報、トランザクション固有情報など、非接触カードによって提供される追加情報を要求または指定し得る。例えば、POSデバイスが非接触カードからデータ通信を受信すると、POSデバイスは、非接触カードを認識し、アクションまたはトランザクションを完了するために必要な追加情報を要求し得る。
【0066】
いくつかの例では、POSデバイスは、特定の非接触カードに精通している、または特定の非接触カードトランザクションの実行に慣れている認可された業者または他のエンティティと提携し得る。しかしながら、そのような提携は、記載された方法の実施には必要とされないことが理解される。
【0067】
ショッピングストア、食料品店、コンビニエンスストアなどのいくつかの例では、非接触カード101は、アプリケーションを開かなくてもモバイルデバイスにタップされて、1つまたは複数の購入をカバーするために1つまたは複数の報酬ポイント、ロイヤルティポイント、クーポン、オファなどを利用したいという希望または意図を示し得る。このようにして、購入の背後にある意図が提供される。
【0068】
いくつかの例では、1つまたは複数のアプリケーションは、ユーザの身元を検証するために、午後3時51分に起動が発生したこと、午後3時56分にトランザクションが処理されたこと、または行われたことなど、非接触カード101の1つまたは複数のタップジェスチャを介して起動されたことを決定するように構成され得る。
【0069】
いくつかの例では、1つまたは複数のアプリケーションは、1つまたは複数のタップジェスチャに応答する1つまたは複数のアクションを制御するように構成され得る。例えば、1つまたは複数のアクションは、報酬の収集、ポイントの収集、最も重要な購入の決定、最も安価な購入の決定、および/またはリアルタイムでの他のアクションへの再構成を備え得る。
【0070】
いくつかの例では、生体認証/ジェスチャ認証としてタップ動作に関するデータを収集し得る。例えば、暗号的に安全で傍受されにくい一意の識別子は、1つまたは複数のバックエンドサービスに送信され得る。一意の識別子は、個人に関する二次情報を検索するように構成され得る。二次情報は、ユーザに関する個人を特定できる情報を備え得る。いくつかの例では、二次情報は、非接触カード内に格納され得る。
【0071】
いくつかの例では、デバイスは、複数の個人間で請求書を分割したり、支払いをチェックしたりするアプリケーションを備え得る。例えば、各個人が非接触カードを所持し、同一の発行金融機関の顧客であってもよいが、必須ではない。これらの個人のそれぞれは、購入を分割するために、アプリケーションを介してデバイスでプッシュ通知を受信し得る。支払いを示すために1回だけカードをタップするのではなく、他の非接触カードが使用され得る。いくつかの例では、異なる金融機関を持っている個人は、カードをタップする個人からの1つまたは複数の支払い要求を開始するための情報を提供する非接触カード101を所有し得る。
【0072】
いくつかの例では、本開示は非接触カードのタップに言及する。しかしながら、本開示はタップに限定されず、本開示は他のジェスチャ(例えば、カードのウェーブまたは他の動き)を含むことを理解されたい。
【0073】
図8は、前述の様々な実施形態を実施するのに適したコンピューティングシステム802を備える例示的なコンピューティングアーキテクチャ800の実施形態を示している。様々な実施形態では、コンピューティングアーキテクチャ800は、電子デバイスの一部として構成され、または実施され得る。いくつかの実施形態では、コンピューティングアーキテクチャ800は、例えば、システム100の1つまたは複数のコンポーネントを実施するシステムを表し得る。いくつかの実施形態では、コンピューティングシステム802は、例えば、システム100のモバイルデバイス110およびサーバ120を表し得る。実施形態は、この文脈に限定されない。より一般的には、コンピューティングアーキテクチャ800は、
図1~
図6を参照して本明細書で説明されるすべての論理、アプリケーション、システム、方法、装置、および機能を実施するように構成される。
【0074】
このアプリケーションで使用される用語「システム」、「コンポーネント」および「モジュール」は、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連エンティティを指すことを意図しており、その例は、例示的なコンピューティングアーキテクチャ800によって提供される。例えば、コンポーネントは、コンピュータプロセッサ上で実行されるプロセス、コンピュータプロセッサ、ハードディスクドライブ、(光学および/または磁気記憶媒体の)複数のストレージドライブ、オブジェクト、実行可能なもの、実行スレッド、プログラム、および/またはコンピュータであり得るが、これらに限定されない。例として、サーバ上で実行されているアプリケーションとサーバの両方は、コンポーネントであり得る。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッド内に常駐し得、コンポーネントは、1台のコンピュータにローカライズされ、および/または2台以上のコンピュータ間で分散され得る。さらに、コンポーネントは、様々なタイプの通信媒体によって互いに通信可能に結合され、動作を調整し得る。調整には、情報の一方向または双方向の交換が含まれ得る。例えば、コンポーネントは、通信媒体を介して通信される信号の形で情報を通信し得る。情報は、様々な信号線に割り当てられた信号として実施され得る。このような割り当てでは、各メッセージは、信号である。しかしながら、さらなる実施形態は、代替としてデータメッセージを使用し得る。このようなデータメッセージは、様々な接続を介して送信され得る。接続例は、パラレルインターフェース、シリアルインターフェース、およびバスインターフェースを含む。
【0075】
コンピューティングシステム802は、1つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インターフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入力/出力(I/O)コンポーネント、電源などの様々な一般的なコンピューティング要素を含む。しかしながら、実施形態は、コンピューティングシステム802による実施に限定されない。
【0076】
図8に示されるように、コンピューティングシステム802は、プロセッサ804、システムメモリ806、およびシステムバス808を含む。プロセッサ804は、AMD(登録商標)Athlon(登録商標)、Duron(登録商標)およびOpteron(登録商標)プロセッサ、ARM(登録商標)アプリケーション、組み込みおよびセキュアプロセッサ、IBM(登録商標)およびMotorola(登録商標)DragonBall(登録商標)およびPowerPC(登録商標)プロセッサ、IBMおよびSony(登録商標)Cellプロセッサ、Intel(登録商標)Celeron(登録商標)、Core(登録商標)、Core(2)Duo(登録商標)、Itanium(登録商標)、Pentium(登録商標)、Xeon(登録商標)、およびXScale(登録商標)プロセッサおよび類似のプロセッサを含むがこれらに限定されない、様々な市販のコンピュータプロセッサのいずれかであり得る。デュアルマイクロプロセッサ、マルチコアプロセッサ、およびその他のマルチプロセッサアーキテクチャも、プロセッサ804として使用し得る。
【0077】
システムバス808は、システムメモリ806からプロセッサ804を含むがこれらに限定されないシステムコンポーネントにインターフェースを提供する。システムバス808は、様々な市販のバスアーキテクチャのいずれかを使用して、メモリバス(メモリコントローラの有無にかかわらず)、周辺バス、およびローカルバスにさらに相互接続し得るいくつかのタイプのバス構造のいずれかであり得る。インターフェースアダプタは、スロットアーキテクチャを介してシステムバス808に接続し得る。スロットアーキテクチャの例は、アクセラレーテッドグラフィックスポート(AGP)、カードバス、(拡張)業界標準アーキテクチャ((E)ISA)、マイクロチャネルアーキテクチャ(MCA)、NuBus、ペリフェラルコンポーネントインターコネクト(拡張)(PCI(X))、PCI Express、Personal Computer Memory Card International Association(PCMCIA)などを含むがこれらに限定されない。
【0078】
システムメモリ806は、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレートDRAM(DDRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、プログラマブルROM(PROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ(例えば、1つまたはより多くのフラッシュアレイ)、強誘電性ポリマーメモリ、オボニックメモリ、相変化または強誘電性メモリなどのポリマーメモリ、シリコン酸化物窒化物酸化物シリコン(SONOS)メモリ、磁気または光カード、独立ディスクの冗長アレイ(RAID)ドライブなどのデバイスのアレイ、ソリッドステートメモリデバイス(例えば、USBメモリ、ソリッドステートドライブ(SSD))、および情報の格納に適したその他のタイプの記憶媒体などの1つまたは複数の高速メモリユニットの形式の様々なタイプのコンピュータ可読記憶媒体を含み得る。
図8に示される図示の実施形態では、システムメモリ806は、不揮発性メモリ810および/または揮発性メモリ812を含み得る。不揮発性メモリ810には、基本入出力システム(BIOS)が格納され得る。
【0079】
コンピューティングシステム802は、内部(または外部)ハードディスクドライブ(HDD)814、リムーバブル磁気ディスク818からの読み取りまたはリムーバブル磁気ディスク818への書き込みを行う磁気フロッピディスクドライブ(FDD)816、およびリムーバブル光ディスク822(例えば、CD-ROMまたはDVD)からの読み取りまたはリムーバブル光ディスク822への書き込みを行う光ディスクドライブ820を含む、1つまたは複数の低速メモリユニットの形式の様々なタイプのコンピュータ可読記憶媒体を含み得る。HDD814、FDD816、および光ディスクドライブ820は、それぞれ、HDDインターフェース824、FDDインターフェース826、および光学ドライブインターフェース828によってシステムバス808に接続され得る。外部ドライブ実施用のHDDインターフェース824は、ユニバーサルシリアルバス(USB)およびIEEE1394インターフェース技術の少なくとも一方または両方を含み得る。コンピューティングシステム802は、一般に、
図1~
図7を参照して本明細書で説明されるすべての論理、システム、方法、装置、および機能を実施するように構成される。
【0080】
ドライブおよび関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令などの揮発性および/または不揮発性ストレージを提供する。例えば、多数のプログラムモジュールは、オペレーティングシステム830、1つまたは複数のアプリケーションプログラム832、他のプログラムモジュール834、およびプログラムデータ836を含む、ドライブおよびメモリユニット810、812に格納され得る。一実施形態では、1つまたは複数のアプリケーションプログラム832、他のプログラムモジュール834、およびプログラムデータ836は、例えば、システム100の様々なアプリケーションおよび/またはコンポーネント、例えば、オペレーティングシステム112、アカウントアプリケーション113、クリップボード114、他のアプリケーション115、および管理アプリケーション123を含み得る。
【0081】
ユーザは、1つまたは複数の有線/無線入力デバイス、例えば、キーボード838およびマウス840などのポインティングデバイスを介して、コンピューティングシステム802にコマンドと情報を入力し得る。その他の入力デバイスには、マイク、赤外線(IR)リモートコントロール、無線周波数(RF)リモートコントロール、ゲームパッド、スタイラスペン、カードリーダ、ドングル、指紋リーダ、グラブ、グラフィックタブレット、ジョイスティック、キーボード、網膜リーダ、タッチスクリーン(例えば、容量性、抵抗性など)、トラックボール、トラックパッド、センサ、スタイラスなどを含み得る。これらおよび他の入力デバイスは、システムバス808に結合された入力デバイスインターフェース842を介してプロセッサ804に接続されることがよくあるが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインターフェースなどの他のインターフェースによって接続され得る。
【0082】
モニタ844または他のタイプの表示デバイスも、ビデオアダプタ846などのインターフェースを介してシステムバス808に接続されている。モニタ844は、コンピューティングシステム802の内部または外部にあり得る。モニタ844に加えて、コンピュータは通常、スピーカ、プリンタなどの他の周辺出力デバイスを含む。
【0083】
コンピューティングシステム802は、リモートコンピュータ848などの1つまたは複数のリモートコンピュータへの有線および/または無線通信を介した論理接続を使用して、ネットワーク環境で動作し得る。リモートコンピュータ848は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースの娯楽機器、ピアデバイス、または他の一般的なネットワークノードであり得、通常、コンピューティングシステム802に関連して記載された要素の多くまたはすべてを含むが、簡潔にするために、メモリ/ストレージデバイス850のみが示されている。示されている論理接続には、ローカルエリアネットワーク(LAN)852および/またはより大きなネットワーク、例えば、ワイドエリアネットワーク(WAN)854への有線/無線接続が含まれる。このようなLANおよびWANネットワーク環境は、オフィスや企業では一般的であり、イントラネットなどの企業規模のコンピュータネットワークを容易にする。これらはすべて、例えば、インターネットなどのグローバル通信ネットワークに接続し得る。実施形態では、
図1のネットワーク130は、LAN852およびWAN854のうちの1つまたは複数である。
【0084】
LANネットワーキング環境で使用される場合、コンピューティングシステム802は、有線および/または無線通信ネットワークインターフェースまたはアダプタ856を介してLAN852に接続される。アダプタ856は、アダプタ856の無線機能と通信するためにその上に配置された無線アクセスポイントを含み得るLAN852への有線および/または無線通信を容易にし得る。
【0085】
WANネットワーキング環境で使用される場合、コンピューティングシステム802は、モデム858を含み得るか、またはWAN854上の通信サーバに接続されるか、またはインターネットを経由するなど、WAN854上で通信を確立するための他の手段を有する。モデム858は、内部または外部であり、有線および/または無線デバイスであり、入力デバイスインターフェース842を介してシステムバス808に接続する。ネットワーク環境では、コンピューティングシステム802に関して示されたプログラムモジュール、またはその一部は、リモートメモリ/ストレージデバイス850に格納され得る。示されたネットワーク接続は例示であり、コンピュータ間の通信リンクを確立する他の手段を使用できることが理解されるであろう。
【0086】
コンピューティングシステム802は、無線通信(例えば、IEEE802.16無線変調技術)で動作可能に配置された無線デバイスなど、IEEE802規格ファミリを使用して有線および無線デバイスまたはエンティティと通信するように動作可能である。これには、少なくともWi-Fi(または無線フィデリティ)、WiMax、ブルートゥース(登録商標)ワイヤレステクノロジなどが含まれる。したがって、通信は、従来のネットワークと同様に事前定義された構造、または少なくとも2つのデバイス間での単なるアドホック通信であり得る。Wi-Fiネットワークは、IEEE802.11x(a、b、g、nなど)と呼ばれる無線技術を用いて、安全で信頼性の高い高速な無線接続を提供する。Wi-Fiネットワークは、コンピュータを相互に接続したり、インターネットに接続したり、有線ネットワーク(IEEE802.3関連のメディアと機能を使用)に接続したりするために使用し得る。
【0087】
様々な実施形態は、ハードウェア要素、ソフトウェア要素、または両方の組み合わせを使用して実施され得る。ハードウェア要素の例には、プロセッサ、マイクロプロセッサ、回路、回路要素(例えば、トランジスタ、抵抗、コンデンサ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどが含まれ得る。ソフトウェアの例には、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、手順、ソフトウェアインターフェース、アプリケーションプログラムインターフェース(API)、命令セット、計算コード、コンピュータコード、コードセグメント、コンピュータコードセグメント、単語、値、記号、またはそれらの任意の組み合わせが含まれ得る。ハードウェア要素および/またはソフトウェア要素を使用して実施形態が実施されているかどうかの決定は、必要な計算速度、電力レベル、熱耐性、処理サイクルバジェット、入力データ速度、出力データ速度、メモリリソース、データバス速度、およびその他の設計または性能の制約などの任意の数の要因に従って変化し得る。
【0088】
少なくとも1つの実施形態の1つまたは複数の態様は、プロセッサ内の様々な論理を表す機械可読媒体に格納された代表的な命令によって実施でき、機械によって読み取られると、機械は、本明細書で説明する技術を実行する論理を製造する。「IPコア」として知られるこのような表現は、有形の機械可読媒体に格納され、論理またはプロセッサを作成する製造機械にロードするために、様々な顧客または製造施設に提供される。いくつかの実施形態は、例えば、機械によって実行された場合に、実施形態に従った方法および/または動作を機械に実行させることができる命令または命令セットを格納することができる機械可読媒体または物品を使用して実施され得る。そのような機械は、例えば、任意の適切な処理プラットフォーム、コンピューティングプラットフォーム、コンピューティングデバイス、処理デバイス、コンピューティングシステム、処理システム、コンピュータ、プロセッサなどを含むことができ、ハードウェアおよび/またはソフトウェアの任意の適切な組み合わせを使用して実施し得る。機械可読媒体または物品は、例えば、任意の適切なタイプのメモリユニット、メモリデバイス、メモリ物品、メモリ媒体、ストレージデバイス、ストレージ物品、ストレージ媒体および/またはストレージユニット、例えば、メモリ、リムーバブルまたは非リムーバブルな媒体、消去可能または消去不可能な媒体、書き込み可能または再書き込み可能な媒体、デジタルまたはアナログ媒体、ハードディスク、フロッピディスク、コンパクトディスクリードオンリメモリ(CD-ROM)、コンパクトディスクレコーダブル(CD-R)、コンパクトディスクリライタブル(CD-RW)、光ディスク、磁気メディア、光磁気メディア、リムーバブルメモリカードまたはディスク、各種デジタルバーサタイルディスク(DVD)、テープ、カセットなどを含み得る。命令は、ソースコード、コンパイル済みコード、解釈済みコード、実行可能コード、静的コード、動的コード、暗号化コードなどの適切なタイプのコードを含むことができ、任意の適切な高レベル、低レベル、オブジェクト指向、視覚的、コンパイル型および/または解釈型のプログラミング言語を使用して実施され得る。
【0089】
例示的な実施形態の前述の説明は、例示および説明を目的として提示された。網羅的であること、または本開示を開示された正確な形式に限定することを意図していない。この開示に照らして、多くの修正および変更が可能である。本開示の範囲は、この詳細な説明ではなく、添付の請求の範囲によって限定されることが意図されている。本出願の優先権を主張する将来の出願は、開示された主題を異なる方法で主張し得、一般に、本明細書で様々に開示または実証されるように、1つまたは複数の限定の任意のセットを含み得る。