(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-12
(54)【発明の名称】データ電子分野の機密データを自動的かつ安全に提供する技術
(51)【国際特許分類】
G06F 21/60 20130101AFI20240305BHJP
G06F 21/35 20130101ALI20240305BHJP
【FI】
G06F21/60 320
G06F21/35
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023553339
(86)(22)【出願日】2022-03-02
(85)【翻訳文提出日】2023-11-01
(86)【国際出願番号】 US2022018502
(87)【国際公開番号】W WO2022187350
(87)【国際公開日】2022-09-09
(32)【優先日】2021-03-04
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】519111877
【氏名又は名称】キャピタル・ワン・サービシーズ・リミテッド・ライアビリティ・カンパニー
【氏名又は名称原語表記】Capital One Services, LLC
(74)【代理人】
【識別番号】100145403
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100135703
【氏名又は名称】岡部 英隆
(74)【代理人】
【識別番号】100109139
【氏名又は名称】今井 孝弘
(72)【発明者】
【氏名】ルール,ジェフリー
(72)【発明者】
【氏名】オズボーン,ケビン
(72)【発明者】
【氏名】ルッツ,ウェイン
(72)【発明者】
【氏名】イリンチック,ライコ
(57)【要約】
ここで議論される実施形態は、電子フォームまたはフィールドに機密データを自動的に入力するシステム、方法、および技術に向けられている。
【選択図】なし
【特許請求の範囲】
【請求項1】
ウェブページのフィールドに新しい情報または更新された情報を自動的に入力するように構成されたモバイル・デバイスであって、
プロセッシング回路と、
前記プロセッシング回路と結合されたメモリであって、前記プロセッシング回路によって実行されると、前記プロセッシング回路に、
非接触カードとの通信開始を検出すること;
無線インターフェイスを介して、前記非接触カードとの通信を実行することであって、前記通信は、前記非接触カードから認証情報を受信すること、を備え、
オンライン・システムのウェブページの1つまたは複数のフィールドを検出することであって、前記1つまたは複数のフィールドはデータを受信するように構成され、
前記オンライン・システムを識別するための情報を決定すること、
前記認証情報および前記オンライン・システム識別情報をサーバに伝達し、前記サーバは前記認証情報および前記オンライン・システム識別情報に基づいてデータを取得すること、
前記サーバから前記データを受信すること、および、
前記ウェブページの前記1つまたは複数のフィールドに前記データを自動的に入力すること、
を行わせる命令を含むアプリケーションを記憶するメモリと、を備える、
モバイル・デバイス。
【請求項2】
前記プロセッシング回路は、ディスプレイのグラフィカル・ユーザ・インターフェイスにプロンプトを表示し、前記プロンプトは、前記非接触カードとの通信を開始するために、ユーザが前記非接触カードを無線インターフェイスの動作範囲内に持ち込むことを指示する、
請求項1に記載のモバイル・デバイス。
【請求項3】
前記命令は、前記プロセッシング回路に、前記1つまたは複数のフィールドのそれぞれのラベルに基づいて前記1つまたは複数のフィールドを検出させる、
請求項1に記載のモバイル・デバイス。
【請求項4】
前記無線インターフェイスは近距離無線通信(NFC)インターフェイスを含み、前記通信はNFCプロトコルに従う、
請求項1に記載のモバイル・デバイス。
【請求項5】
前記認証情報は、前記非接触カードに記憶されたカウンタ値とマスター・キーに基づいて、多様化されたキーで暗号化されて受信される、
請求項1に記載のモバイル・デバイス。
【請求項6】
前記プロセッシング回路は、前記1つまたは複数のフィールドの少なくとも1つに入力するためのデータ・オプションの提案を前記サーバから受信する、
請求項1に記載のモバイル・デバイス。
【請求項7】
ディスプレイ・デバイスと、前記プロセッシング回路とを備え、
前記プロセッシング回路は、
前記ディスプレイ・デバイスに、データ・オプションの提案を提示し、
前記データ・オプションの少なくとも1つに対する入力選択を受信し、および、
前記1つまたは複数のフィールドの少なくとも1つのフィールドに、選択されたデータ・オプションを入力する、
請求項6に記載のモバイル・デバイス。
【請求項8】
ディスプレイ・デバイスと、前記プロセッシング回路とを備え、
前記ディスプレイ・デバイスに、データ・オプションの提案を提示し、
前記データ・オプションの少なくとも1つに対する入力選択を受信し、
少なくとも1つのデータ・オプションの入力選択をサーバに送信し、および、
前記入力選択に基づいてデータを受信し、前記1つまたは複数のフィールドの少なくとも1つのフィールドに入力する、
請求項6に記載のモバイル・デバイス。
【請求項9】
1つまたは複数のプロセッサと;
前記1つまたは複数のプロセッサと結合されたメモリであって、前記1つまたは複数のプロセッサによって実行されたときに、前記1つまたは複数のプロセッサに以下を実行させる命令を記憶するメモリとを備え、
前記命令は、
モバイル・デバイスから、非接触カードに関連付けられた認証情報と、オンライン・システムを識別するためのID情報を受信させ、
前記非接触カードに関連する認証操作を実行させ、
前記認証操作が成功したか失敗したかを判断させ、
前記認証操作が成功したことに応答して、前記オンライン・システムに関連するウェブページの1つまたは複数のフィールドに入力できるデータを決定させ、前記データを前記モバイル・デバイスに送信させ、
前記認証操作が失敗したことに応答して、前記認証情報の認証が失敗したことを示す指示を前記モバイル・デバイスに送信させる、
システム。
【請求項10】
前記1つまたは複数のプロセッサは、
前記メモリに格納された前記オンライン・システムと前記非接触カードのデータが存在するかどうかを判断し、
前記モバイル・デバイスに送信するデータを前記メモリから取得する、
請求項9に記載のシステム。
【請求項11】
前記1つまたは複数のプロセッサは、
前記オンライン・システムと前記非接触カードのデータが存在しないと判断し、
前記オンライン・システムが前記モバイル・デバイスに送信するデータを生成する、
請求項9に記載のシステム。
【請求項12】
前記1つまたは複数のプロセッサは、
前記認証操作を実行するために、前記非接触カードに関連するカウンタ値をインクリメントし、
前記カウンタ値と前記非接触カードに関連付けられた口座に関連付けられたマスター・キーに基づいて、多様化されたキーを生成し、
前記多様化されたキーを使用して前記認証情報を復号化する、
請求項9に記載のシステム。
【請求項13】
前記1つまたは複数のプロセッサは、
前記ウェブページの前記1つまたは複数のフィールドのためのオプション・データを決定し、前記オプション・データは、前記ウェブページの前記1つまたは複数のフィールドの少なくとも1つに入力するための1つまたは複数のオプションを含み、
前記オプションのデータを前記モバイル・デバイスに送信する、
請求項9に記載のシステム。
【請求項14】
前記1つまたは複数のプロセッサは、
前記オプション・データに対する応答通信を処理し、前記応答通信は前記オプション・データの選択指示を含み、
前記選択指示と関連付けられたデータを決定し、
前記選択指示と関連付けられたデータを前記モバイル・デバイスに送信する、
請求項13に記載のシステム。
【請求項15】
プロセッシング回路と、
前記プロセッシング回路と結合されたメモリであって、前記プロセッシング回路によって実行されたときに、前記プロセッシング回路に以下を実行させる命令を記憶するメモリと、を備え、
前記命令は、
データを入力させるために、ウェブページの1つまたは複数のフィールドを検出させ、
ユーザを認証するために非接触カードで認証操作を行わせ、
前記ウェブページおよび前記認証操作の成功結果に基づいて、前記1つまたは複数のフィールドに入力させるデータを決定し、
前記ウェブページの前記1つまたは複数のフィールドに前記データを入力させる、
コンピューティング・デバイス。
【請求項16】
前記命令は、
前記プロセッシング回路に、近距離無線通信で前記非接触カードから認証情報を受信して処理させ、前記認証操作を実行させる、
請求項15に記載のコンピューティング・デバイス。
【請求項17】
前記命令は、前記プロセッシング回路に、
前記ウェブページを特定するための情報を決定させ、
前記ウェブページを特定するための情報を基に前記データを決定させる、
請求項15のコンピューティング・デバイス。
【請求項18】
前記命令は、前記プロセッシング回路に、
前記ウェブページを識別するための情報と認証情報を、銀行システムに関連するサーバに送信させ、
前記サーバから前記データを受信させる、
請求項17のコンピューティング・デバイス。
【請求項19】
前記メモリが、前記データの少なくとも一部を含み、前記プロセッシング回路に、前記1つまたは複数のフィールドの少なくとも1つを入力するために、前記データの少なくとも一部を決定させる命令を含む、
請求項17のコンピューティング・デバイス。
【請求項20】
前記データの一部は、前記ウェブページを識別するための情報と関連付けられて前記メモリに格納される、
請求項19のコンピューティング・デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2021年3月4日に出願された「データ電子分野における機密データを自動的かつ安全に提供する技術」と題する米国特許出願第17/192,486号に対する優先権を主張する。前述の特許出願の内容は、その全体が参照により本明細書に援用される。
【背景技術】
【0002】
私たちは日常的に、ウェブサイトやネイティブ・モバイル・アプリケーションなどのモバイル・プラットフォームを操作する。これらのプラットフォームでは、ユーザがフィールドやフォームに個人データおよび/または機密データを入力することが必要になる場合がある。たとえば、電子商取引(e-commerce)システムを使用すると、ユーザは自宅で快適に商品および/またはサービスの取引を実行できる。通常、ユーザは、ウェブ・ブラウザのウェブサイトやネイティブ・モバイル・アプリケーションなど、アプリケーションを介して電子商取引システムとインターフェイスする。
【0003】
電子商取引システムには通常、仮想ショッピング・カートとチェックアウト・プロセスが含まれている。ほとんどの場合、チェックアウト・プロセスでは、ユーザが注文を完了するために支払い情報(クレジット・カードやデビット・カード情報など)やその他の個人情報を入力する必要がある。しかし、このプロセスは、特にユーザがモバイル・デバイスなどのハンドヘルド・デバイスで取引を実行している場合、ユーザにとって煩わしい場合がある。たとえば、チェックアウト・プロセスでは、口座情報、ユーザの名前、電話番号、住所など、多くのフィールドに詳細な支払い情報を提供することがユーザに要求される場合がある。商取引チェックアウト・プロセスを使用するユーザが、情報の入力に苦労したり、時間が足りなくなったり、チェックアウト・プロセスにイライラしたりするのはよくあることである。このような不満により、潜在的な消費者は取引を放棄することがよくある。ユーザは、医療システムや銀行システムなど、機密データの入力を必要とする他の種類のウェブサイトやアプリケーションでも同様の経験をしている。したがって、本明細書で説明する実施形態は、ユーザが安全な方法でデータを入力することを要求するシステムおよびプロセスを改善することを目的とする。
【発明の概要】
【0004】
本明細書で説明される実施形態は、一般に、ユーザを認証し、入力するデータを決定することによって、フィールドに機密データを自動的に入力するシステム、デバイス、方法、および技術を対象とすることができる。たとえば、実施形態は、プロセッシング回路を含み、ウェブページのフィールドに新しい情報または更新された情報を自動的に入力するように構成されたモバイル・デバイスと、プロセッシング回路に結合されたメモリを含み得る。前記メモリには、前記プロセッシング回路によって実行されると、前記プロセッシング回路に非接触カードとの通信の開始を検出させ、ワイヤレス・インターフェイスを介して、前記非接触カードとの通信を実行させ、前記通信は、前記非接触カードから認証情報を受信することを含み、オンライン・システムのウェブページの、データを受信するように構成された1つまたは複数のフィールドを検出させる、命令が格納される。
実施形態は、また、前記オンライン・システムを識別するための情報を決定し、前記認証情報およびサーバに対して前記オンライン・システムを識別するための情報、並びに前記認証情報および前記オンライン・システムを識別するための情報に基づいてデータを取得するための前記サーバと通信し、前記サーバからデータを受信し、ウェブページの1つまたは複数のフィールドにデータを自動的に入力するプロセッシング回路も含む。
【0005】
実施形態は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに接続されたメモリとを備えるシステムも含む。前記メモリは、1つまたは複数のプロセッサによって実行されると、非接触カードに関連付けられた認証情報およびオンライン・システムを識別するための識別情報を1つまたは複数のプロセッサに受信および処理させる命令を格納する。前記システムは、非接触カードに関連付けられた認証操作を実行し、認証操作が成功したか失敗したかを判断し得る。認証操作が成功したことに応答して、前記システムは、オンライン・システムに関連付けられたウェブページの1つまたは複数のフィールドに入力できるデータを決定し、そのデータを前記モバイル・デバイスに送信することができ、認証操作が失敗したことに応答して、前記システムは、 認証情報の認証が失敗したことを示す指示を前記モバイル・デバイスに送信することができる。
【0006】
実施形態はまた、プロセッシング回路を備えるコンピューティング・デバイスと、前記プロセッシング回路に結合されたメモリとを含み得る。前記メモリは、前記プロセッシング回路によって実行されると、前記プロセッシング回路に、ウェブページの1つまたは複数のフィールドを検出させてデータを入力させ、非接触カードによる認証操作を実行させてユーザを認証させ、ウェブページと認証操作の成功結果に基づいて、1つまたは複数のフィールドに入力するデータを決定させ、そして、ウェブページの1つまたは複数のフィールドにデータを入力させる、命令が格納する。
【0007】
特定の要素または行為の説明を簡単に識別するために、参照番号の最上位桁は、その要素が最初に導入される図番号を指す。
【図面の簡単な説明】
【0008】
【
図1】
図1は、実施形態によるシステム100の一例を示す。
【
図2】
図2は、実施形態による例示的なシーケンス・フロー200を示す。
【
図3】
図3は、一実施形態によるルーチン300を示す。
【
図4】
図4は、一実施形態によるルーチン400を示す。
【
図5】
図5は、実施形態による非接触カード500を示す。
【
図6】
図6は、実施形態によるトランザクション・カード・コンポーネント600を示す。
【
図7】
図7は、一実施形態によるシーケンス・フロー700を示す。
【
図8】
図8は、実施形態によるデータ構造800を示す。
【
図9】
図9は、実施形態によるキーシステム900の図である。
【
図10】
図10は、実施形態に従って暗号文を生成するルーチン1000を示す。
【
図13】
図13は、一実施形態によるコンピュータ・アーキテクチャ1300を示す。
【
図14】
図14は、一実施形態による通信アーキテクチャ1400を示す。
【発明を実施するための形態】
【0009】
ここで説明する実施形態は、安全な方法でウェブページまたはモバイル・アプリケーションのフィールドにデータを自動的に入力する方法、システム、および技術を対象とする。たとえば、この技術は、機密データをフィールドまたはフォームに入力する必要があるかどうかを決定すること、ユーザを認証するための認証操作を実行すること、前記フィールドまたはフォームに入力する機密データを決定することを含み得る。機密データは、タスクまたは操作を実行するために、ウェブページまたはモバイル・アプリケーションの1つまたは複数のフィールドに提供および/または自動的に入力され得る。
【0010】
一例では、タスクは、商品および/またはサービスを購入するためのチェックアウト操作であり、機密データは、購入を行うために1つまたは複数のフィールドに入力される口座または支払いデータであり得る。実施形態は、ウェブ・ブラウザまたはアプリケーションに表示されるフィールドまたはフォームに安全なデータが必要であることを検出および/または決定することと、ユーザを認証するために非接触カードをコンピューティング・デバイスにタップさせることによって認証操作を開始することとを含む。前記コンピューティング・デバイスは、サーバと通信して前記認証操作を実行し、前記ウェブページまたはモバイル・アプリケーションに入力するデータを決定し得る。たとえば、前記コンピューティング・デバイスは、前記非接触カードからの情報および前記ウェブページ/モバイル・アプリケーションに関連する情報を前記サーバに送信し得る。前記サーバは、前記非接触カードからのデータを利用して前記認証操作を実行し得る。前記ユーザが認証されると、前記サーバは前記ウェブページまたはモバイル・アプリケーションにデータを入力するために必要なデータも決定する。たとえば、前記サーバは、支払いデータを自動的に取得して前記コンピューティング・デバイスに提供し、前記ウェブページまたはモバイル・アプリケーションに自動的に入力し得る。場合によっては、前記支払いデータは前記非接触カードの口座情報であり得る。ただし、他の場合には、前記サーバは、1つまたは複数の最適化操作を実行して前記ウェブページまたはモバイル・アプリケーションに提供する最適な支払いデータを決定し得る。前記最適な支払いデータは、キャッシュ・バック、旅行ポイント、航空会社のマイル、ホテルのポイント、販売店での割引など、最も多くの特典を提供する支払いデータのような、1つまたは複数の基準に基づき得る。他の例では、前記基準は、購入を実行するのに十分な資金を有する口座に関連する支払いデータを含み得る。実施形態はこれらの例に限定されない。
【0011】
ユーザが安全なデータを手動で入力する必要があるため、不便でエラーが発生しやすく、前述したように、今日のソリューションには問題がある。ここで説明する操作は、ユーザが1つ1つの操作、たとえば、デバイス上またはデバイスの近くで非接触カードをタップするなど、を実行してユーザを認証し、ウェブページまたはモバイル・アプリケーションに安全な情報を入力できるようにすることで、これらおよびその他の問題を解決する。本明細書で説明する実施形態は、これらのウェブページまたはモバイル・アプリケーション・フィールドを処理する際のコンピュータの改良も提供する。たとえば、ここで説明するソリューションは、最初の試行でフィールドに正確なデータを自動入力する安全な方法を提供する。以前のシステムでは、ユーザがフィールドに情報またはデータを誤って入力すると、そのデータはデータを処理するバックエンド・システムに送信される。前記バックエンド・システムは前記データを処理し、前記データが間違っていると決定し、前記ユーザにエラー・メッセージを通知する必要がある。その後、前記システムは正しいデータを使用して同じ処理を再度実行する必要がある。本明細書で説明する実施形態は、前記フィールドに初めて入力されるデータが正確であることを保証することによって、この処理を改善する。したがって、システムで発生するエラーが少なくなり、通信するデータが少なくなり、処理/通信時間とコストが節約される。
【0012】
図1は、本明細書で説明する1つまたは複数の動作を実行するように構成されたシステム100の一例を示す。具体的には、システム100は、ユーザがウェブページまたはモバイル・アプリケーションの1つまたは複数のフィールドに自動的に入力するために使用できる1つまたは複数のデバイスおよびシステムを含む。図示のシステム100は、有線および無線ネットワーキング接続などの1つまたは複数の相互接続を介して結合された非接触カード106、コンピューティング・デバイス102、および銀行システム104を含む。システム100は、説明の目的で限られた数のコンポーネント、デバイス、およびシステムを示すが、システム100は、本明細書で説明する動作を可能にするために、図示されていない追加のコンポーネント、デバイス、およびシステムを含む。
【0013】
実施形態では、コンピューティング・デバイス102は、モバイル・デバイス、携帯電話デバイス、携帯情報端末、タブレットなどの任意のタイプのコンピューティング・デバイスであり得る。実施形態では、コンピューティング・デバイス102は、コンピュータ、パーソナル・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、サーバ、クラウドベースのコンピュータなどであってもよい。コンピューティング・デバイス102は、1つまたは複数のプロセッサおよび/またはプロセッシング・コンポーネントなどのプロセッシング回路、メモリ、ストレージ、1つまたは複数のインターフェイス、1つまたは複数のディスプレイなどを含む、多数のコンポーネントを含み得る。1つまたは複数のインターフェイスは、有線および無線で通信するように構成されたネットワーク・アダプタを含み得る。無線インターフェイスは、セルラー通信、ワイヤレス・フィデリティ(Wi-Fi(登録商標))通信、およびBluetooth(登録商標)インターフェイス、近距離無線通信(NFC)インターフェイスなどの短距離通信を行うように構成されたインターフェイスを含み得る。
【0014】
実施形態では、コンピューティング・デバイス102はまた、本明細書で説明される操作を実行するためのソフトウェア命令を記憶し、実行するように構成されており、アプリケーションやコンピューティング・デバイス102のハードウェア・コンポーネントなどのような、上位レベルのソフトウェア間で実行される操作を調整するように構成された1つまたは複数のオペレーティング・システム(OS)を含む。本明細書で説明される実施形態は、Android(登録商標)OS、Windows(登録商標)OS、Apple(登録商標)OSなどを含む任意のOSに従って動作するように構成され得る。
【0015】
コンピューティング・デバイス102は、アプリケーション(アプリ)などの追加のソフトウェアを含み得る。実施形態では、コンピューティング・デバイス102は、ユーザが商品およびサービスを購入し、取引を実行できるように構成されたアプリを含み得る。アプリは、たとえば販売者によって作成されたスタンドアロン・アプリであってもよく、オンライン販売者システムなどのバックエンド・システムへのインターフェイスを提供する。実施形態では、コンピューティング・デバイス102は、ユーザがウェブサイトにアクセスして閲覧できるようにする1つまたは複数のウェブ・ブラウザ・アプリ、場合によっては、オンライン販売者システムによって提供される販売者ウェブサイトも含む。このような場合、ユーザは、ウェブ・ブラウザに表示されるウェブサイトを介してオンライン販売システムとの取引を実行し得る。コンピューティング・デバイス102は、銀行アプリ、投資アプリ、ホテルアプリ、航空アプリ、電子メール・アプリ、ソーシャル・メディア・アプリ、通信アプリ、医療アプリなど、本明細書で論じられる操作を実行するように構成された他のアプリを含み得る。
【0016】
実施形態では、コンピューティング・デバイス102は、コンピューティング・デバイス102、銀行システム104、および非接触カード106上の1つまたは複数の他のアプリとインターフェイスするように構成された銀行アプリも含む。実施形態では、銀行アプリは、アプリおよびウェブ・ブラウザが銀行アプリとインターフェイスして通信して、本明細書で説明される1つまたは複数の操作を実行できるように、1つまたは複数のアプリケーション・プログラミング・インターフェイス(API)を用いて構成され得る。たとえば、アプリまたはウェブ・ブラウザは、1つまたは複数のフィールドでデータが必要な場合、たとえば支払い情報を決定するための取引を実行するためのチェックアウト・プロセス中、ローン申請データの提供、医療データの提供など、銀行アプリとインターフェイスし得る。銀行アプリは、非接触カードおよびサーバと通信することによるユーザの認証、フィールドまたはフォームに入力するデータの決定、およびデータの自動入力の1つまたは複数を実行し得る。ただし、他の場合には、本明細書で説明する操作を実行するための命令またはコードが、ネイティブまたはサード・パーティのアプリケーション自体に埋め込まれ、および/または含まれ得る。たとえば、販売者のアプリケーションは、認証操作を実行し、サーバと通信して機密データを決定し、機密情報を適切なフィールドまたはデータ入力領域に自動的に入力および/または挿入するための命令を含み得る。別の例では、ウェブ・ブラウザは、操作を実行するための命令および/またはプラグインを含み得る。
【0017】
実施形態では、コンピューティング・デバイス102は、データが1つまたは複数のフィールドまたはフォームに自動的に入力され得ることを決定または検出し、最初に非接触カードおよび銀行システム104を用いて認証操作を実行し得る。たとえば、銀行アプリおよび/または命令は、ユーザが非接触カード106をコンピューティング・デバイス102に提供するための、たとえば、非接触カード106をコンピューティング・デバイス102の動作範囲内に持ってくるための、プロンプトをディスプレイ・デバイス上に表示させ、または引き起こし得る。前記動作範囲は、非接触カード106と通信するように構成された短距離通信インターフェイスの通信範囲によって定義され得る。たとえば、NFCの動作範囲は約10センチメートル以下である。非接触カード106は、
図5~
図12で説明される非接触カードと同じであってもよく、ユーザを識別するために使用できる暗号文内の情報を交換することを含めて、通信するように構成し得る。
【0018】
実施形態では、コンピューティング・デバイス102は、カードとの1つまたは複数の短距離通信交換を介して、非接触カード106から情報およびデータを受信し得る。コンピューティング・デバイス102は、1つまたは複数の交換機を介して非接触カード106から受信した情報を銀行システム104とさらに通信するように構成され得る。前記情報は、ユーザを認証するために銀行システム104によって利用され得る。 ユーザが認証されていない場合、データを自動的に入力する操作が停止し得る。ユーザが認証されている場合、操作によってデータが決定され、データが自動的に入力され得る。たとえば、コンピューティング・デバイス102は、1つまたは複数のフィールドに関する追加情報、たとえば、ウェブページまたはモバイル・アプリケーションの識別子、およびフィールドの識別子を銀行システム104に提供し得る。銀行システム104は、追加情報を利用して、ウェブページまたはモバイル・アプリケーションに入力する機密データを決定することができる。決定されたデータはコンピューティング・デバイス102に戻され、対応するフィールドに入力され得る。
【0019】
実施形態では、銀行システム104は、顧客に銀行サービスを提供し、本明細書で説明する操作を実行するように構成された、サーバ、ネットワーキング機器などの1つまたは複数のコンピューティング・デバイスを含む。実施形態は、銀行システム104の特定の構成に限定されない。実施形態では、銀行システム104は、コンピューティング・デバイス102から情報を受信し、ユーザを認証し、ウェブページまたはモバイル・アプリケーションの1つまたは複数のフィールドに入力するデータを決定するように構成される。
【0020】
銀行システム104は、コンピューティング・デバイス102から受信したデータを、格納されたデータと比較することによってユーザを認証し得る。以下でより詳細に説明するように、銀行システム104は、共有キーを利用して非接触カードからのデータを復号できること、およびカードからの情報が保存されたデータ、たとえば共有シークレットと一致することを保証し得る。実施形態は、この方法でユーザを認証することに限定されず、場合によっては、ユーザは、ユーザを認証するためにコンピューティング・デバイス102および/または銀行システム104によって使用され得るパスワード、生体認証入力などを提供し得ることに留意されたい。
【0021】
認証されると、銀行システムはフィールドまたはフォームに入力するデータを決定し得る。取引例では、銀行システム104は、非接触カードから受信したデータおよび/またはコンピューティング・デバイス102から受信した情報に基づいて支払い口座を決定し得る。具体的には、銀行システム104は、安全なデータベースまたはデータストア内で検索を実行して、ユーザに関連付けられた口座情報を決定し得る。口座情報には、非接触カードのクレジット・カード口座にリンクされたクレジット・カード口座番号を含み得る。追加情報、たとえば、ユーザの名前、ユーザの住所、ユーザの電話番号、口座に関連付けられた検証値、口座に関連付けられた有効期限などが、フィールドに入力されるように決定され得る。前記情報は、関連するフィールドに入力するためにコンピューティング・デバイス102に戻されてもよい。
【0022】
場合によっては、銀行システム104は、フィールドに入力するための1つまたは複数のオプションまたは最適なデータが存在するかどうか、たとえば、取引を実行するために異なる口座情報を使用することがユーザにとってより有益であるかどうかを判断することを含む、追加のサービスをユーザに提供することができる。たとえば、銀行システム104は、そのデータを使用して販売者を識別し、最適な支払いデータを決定することができる。1つの特定の例では、銀行システム104は、販売業者識別子を使用して、販売業者が航空会社であることを決定することができる。銀行システム104は、ユーザが、取引を実行するために使用される場合にマイルまたはポイントを受け取る銀行口座またはクレジット口座を開設していると判断することができる。銀行システム104は、取引を実行するために非接触カードに関連付けられた口座の代わりに代替口座を利用するためのオプションをコンピューティング・デバイス102のユーザに提供することができる。ユーザは、たとえば、コンピューティング・デバイス102のディスプレイ上のGUIに提示されるウィンドウおよび/または情報を介して口座を介して選択することができる。銀行システム104は、ユーザが選択できる多数のオプション(3つ以上の口座)を提供することができる。ユーザが選択を行うと、その選択に対応するデータがフィールドに入力される。
【0023】
銀行システム104は、1つまたは複数の基準、たとえば、報酬、年率(APR)、現在のインセンティブプログラム(6ヶ月間利息0%)などに基づいて、任意のおよび/または最適な提案をユーザに提供する決定を行ってもよい。具体的には、銀行システム104は、非接触カードに関連付けられた口座を含む、ユーザに関連付けられた1つまたは複数の口座を分析することができる。銀行システム104は、各ユーザの口座情報を、銀行システム104によって制御されるデータベースまたはデータストアに格納することができる。ユーザへの提案を決定するために、銀行システム104は、銀行によって維持されている各口座の特徴、たとえば、報酬、APR、インセンティブ・オファーなどを比較して、どの口座がユーザにとって最適であるかを決定することができる。場合によっては、銀行システム104は、フィールドに入力するために使用され得る追加の口座または情報を決定するために、サード・パーティ・システム、たとえば、他の銀行システム、航空会社システム、商店システムなどと通信することができる。情報が分析されると、銀行システム104は、オプションをユーザおよびコンピューティング・デバイス102に送り返すことができる。
【0024】
たとえば、銀行システム104は、オプションの提案のすべてをコンピューティング・デバイス102に伝達することができる。オプションの提案は、取引を実行するために利用可能なすべての口座のリストである場合がある。ユーザはオプションの1つを選択することができ、その選択に基づいて、データが取り込まれたり、ウェブページやモバイル・アプリケーションにデータが提供されたりすることがある。場合によっては、コンピューティング・デバイス102からユーザの選択の銀行システム104に応答が提供されてもよく、銀行システム104は、ウェブページまたはモバイル・アプリケーションに入力するための支払いデータを含む別の通信をコンピューティング・デバイス102に送信してもよい。
【0025】
実施形態では、銀行システム104は、オプションの提案をランク付けすることができる。ランキングは、ユーザが設定した1つまたは複数の設定に基づく場合がある。たとえば、銀行システム104は、購入を実行するために利用可能な口座を、ユーザによって設定された好みと比較することができる。好みには、ユーザが取引を実行するために使用したい単純な注文口座が含まれる場合がある。他の例では、ユーザは、最高の報酬を持つ口座など、異なる設定を設定することもできる。この例では、銀行システム104は、取引に対して提供する報酬に基づいて口座をランク付けすることができる。実施形態では、ランキング情報はコンピューティング・デバイス102に提供され、ユーザに提示され得る。ユーザは、提示された情報に基づいて情報に基づいた決定を下すことができる。
【0026】
場合によっては、銀行システム104は、ユーザに対して設定された好みに基づいて口座のうちの1つを自動的に選択することができる。たとえば、銀行システム104は、ユーザによって提供されたランク・リスト上で利用可能な最初の口座を選択することができる。別の例では、銀行システム104は、最大の報酬、たとえば、最も多くのマイル、最も高いパーセントのバック、インセンティブ・オファーなどを提供する口座を選択することができる。場合によっては、銀行システム104は、各報酬について同様の値を決定するために1つまたは複数の計算を実行することになる。たとえば、銀行システム104は、マイルを金銭的価値に変換し、ユーザに対する過去の支払いに基づいて支払われる推定利息、インセンティブ・オファーに基づいて節約された金額などを決定することができる。銀行システム104は、ユーザに最も金銭的価値、たとえば、キャッシュ・バックまたは獲得したお金/報酬を提供する口座を選択することができる。単一の情報のみをコンピューティング・デバイス102に提供できる場合、または銀行システム104が最適な情報を選択する場合、銀行システム104は、情報をコンピューティング・デバイス102に伝達することができ、コンピューティング・デバイス102は、ユーザの介入なしに、フィールドまたはフォームに自動的に入力することができ、すなわち、ユーザが選択する必要がない。実施形態はこのように限定されない。 いくつかの実施形態では、銀行システム104によって実行される1つまたは複数の操作は、コンピューティング・デバイス102によってローカルに実行され得ることに留意されたい。たとえば、コンピューティング・デバイス102は、1つまたは複数のフィールドに入力され得るデータをローカルに格納し得る。実施形態はこのように限定されない。
【0027】
図2は、コンピューティング・デバイス102、非接触カード106、および銀行システム104の間で実行され得る例示的なシーケンス・フロー200を示す。シーケンス・フロー200に関して説明される動作は、ウェブページまたはモバイル・アプリケーションに機密データが必要であることを決定し、コンピューティング・デバイスのユーザを認証するための認証操作を実行し、ウェブページまたはアプリケーションに入力する機密データを決定するために実行され得る。前述したように、データは、ウェブページまたはアプリケーションの1つまたは複数のフィールドに必要な機密データである可能性がある。
【0028】
ライン202では、シーケンス・フロー200は、ウェブサイトまたはモバイル・デバイス内のフィールドまたはフォームにデータが必要であると判断するコンピューティング・デバイス102を含む。たとえば、命令を実行するコンピューティング・デバイス102は、データ入力を必要とするフィールドまたはフォームが、ディスプレイ上にユーザに対して提示されるという信号または指示を受信することができる。信号または指示は、銀行アプリ、ウェブ・ブラウザ、またはコンピューティング・デバイス102上で実行されるネイティブのサード・パーティ・アプリケーションの機能への関数呼び出しを介して受信され得る。別の例では、コンピューティング・デバイス102は、バックグラウンド・プロセスとして動作するスレッドまたは関数を実行し、別のアプリケーションがデータ入力を必要とする1つまたは複数のフィールドをGUIに提示していることを検出することができる。いくつかの実施形態では、命令は、JavaScript(登録商標)(JS)などのプログラミング言語、またはPython(登録商標)などのスクリプト言語で実装することができ、データ入力要件を検出するために呼び出すか実行することができる。
【0029】
実施形態では、命令は、フィールドまたはフォームが機密データを必要とするときを自動的に検出することができる。機密データは、ユーザが秘密または非公開にしたいあらゆる種類のデータである可能性がある。たとえば、機密データには、個人情報、銀行情報、医療情報などが含まれる場合がある。本明細書で説明する一例では、機密データは、取引を実行するために使用される取引データであってもよい。たとえば、ユーザはモバイル・アプリケーションやウェブ・ブラウザを利用してオンライン・ショッピングを実行する場合がある。ユーザは、商品および/またはサービスを電子ショッピング・カート、つまり保管場所に追加し、処理が完了するとチェックアウト処理を開始することができる。通常、アプリまたはウェブ・ブラウザは、ディスプレイ上のグラフィカル・ユーザ・インターフェイス (GUI)でチェックアウト・ページを表示し、出荷情報、商品/サービスが正しいことの確認、請求/支払い情報などの情報の提供をユーザに要求する場合がある。コンピューティング・デバイス102は、ユーザに提示される要素(フィールド)の名前およびタイプを分析する1つまたは複数の命令を実行することができる。この命令は、要素がフィールドであることを検出し、テキストベースの分析を実行して、機密データが必要であることを示す名前を検出し、たとえば、要素の名前は「口座番号(AcciuntNumber)」であり、銀行口座番号をフィールドに入力することを示す。この命令は、ユーザがフィールドまたはフォームを含むページに移動したときに、ページ内の要素からフィールド識別子、フィールド名、または XPathを検出するように、Javascript(登録商標)やPython(登録商標)などのプログラミング言語で実装できる。
【0030】
データは機密データであり、ユーザ以外の誰かによる使用は有害なユーザになる可能性があるため、システムはユーザがデータの所有者であることを確認できる。具体的には、シーケンス・フロー200は、ライン204で、ユーザを認証するための認証操作を実行することを含む。この例では、非接触カードに保存されているデータを利用して認証操作が実行される。ただし、パスコードの入力、生体認証入力など、他の認証操作が実行される場合もある。この例では、コンピューティング・デバイス102は、非接触カード106をコンピューティング・デバイス102に提示し、たとえば非接触カード106をコンピューティング・デバイス102の通信範囲内に持ってくるようにユーザに促す。コンピューティング・デバイス102は、コンピューティング・デバイス102のディスプレイ上で非接触カード106をタップする指示をGUIに提示して、カードがコンピューティング・デバイス102の通信内に確実に持ち込まれるようにすることができる。
【0031】
カードをディスプレイにタップする指示は、ウェブ・ブラウザまたはモバイル・アプリケーションで表示される場合がある。たとえば、モバイル・アプリまたはウェブ・ブラウザを含むコンピューティング・デバイス102は、ユーザが支払い情報を入力するために通常使用するフィールドに指示を提供することができる。このフィールドには、「ディスプレイ上に支払いカードをタップする」という記述が含まれる場合がある。別の例では、コンピューティング・デバイス102は、カードをディスプレイにタップする指示を含むポップアップGUIをディスプレイ上でユーザに提示させることができる。銀行アプリや埋め込み命令が初期化され、非接触カードとの短距離通信を実行する準備が整う。たとえば、コンピューティング・デバイス102は、非接触カードを用いて1つまたは複数のNFC読み取りを実行するなど、1つまたは複数のNFC交換の初期化を含む1つまたは複数の命令を実行することができる。
【0032】
ライン206において、シーケンス・フロー200は、非接触カード106との短距離通信交換を実行することを含む。実施形態では、短距離通信交換はNFC交換であってもよく、接続を確立するためにNFC初期化交換を実行するコンピューティング・デバイス102および非接触カード106を含み、1つまたは複数の NFCは、非接触カード106からデータを読み取るためにコンピューティング・デバイス102によって実行される操作を読み取る。実施形態では、非接触カード106は、電磁エネルギーを介してコンピューティング・デバイス102から電力を受け取るように構成され得る。 しかしながら、実施形態はこのように限定されず、場合によっては、非接触カード106は、バッテリなどの独自の電源を含んでもよい。
【0033】
実施形態では、ライン206のNFC交換は、顧客を識別して取引を実行するための情報を含むNFCペイロードを受信するための読み取り動作を実行するコンピューティング・デバイス102を含む。たとえば、NFCペイロードは、1つまたは複数の識別番号、カウンタ、バージョン番号、および共有シークレットを含む認証情報を含む暗号文を含むことができ、
図5~
図12で説明されるように、非接触カード106により、多様なキーを使用して暗号化することができる。いくつかの実施形態では、ペイロードは、非接触カード106に関連付けられた顧客を識別できる非暗号化識別子のような追加情報を含むことができる。実施形態はこのように限定されない。
【0034】
ライン208では、シーケンス・フロー200は、非接触カード106から情報を受信して処理するコンピューティング・デバイス102を含む。たとえば、コンピューティング・デバイス102は、非接触カードからの情報を準備して、銀行システム104に伝達して認証操作、たとえば、追加のセキュリティ操作(暗号化)の適用、データのフォーマット、銀行システム104への指示の送信などを実行することができる。異なる認証操作が実行される場合、コンピューティング・デバイス102は、このシーケンス・ステップでユーザを認証するためにパスコード、生体認証データなどを処理することができる。非接触カードからのデータを処理し、それを銀行システムに送信することに加えて、コンピューティング・デバイス102は、必要な機密データに関する追加情報を決定および/または収集することができる。たとえば、コンピューティング・デバイス102は、要求されたデータ(またはフィールド)およびウェブページ/モバイル・アプリケーションを識別するために銀行システム104によって使用され得る識別子を決定し得る。
【0035】
ライン210では、シーケンス・フロー200は、非接触カード106からの情報および追加情報を銀行システム104に伝達するコンピューティング・デバイス102を含む。非接触カード情報および識別子情報は、1つまたは複数の無線接続および有線接続を介して、1つまたは複数のメッセージで安全に通信され得る。
【0036】
銀行システム104は、コンピューティング・デバイス102から情報を受信し、処理することができる。具体的には、銀行システム104は、コンピューティング・デバイス102および非接触カード106から受信した情報に基づいて顧客の身元を確認することができる。たとえば、銀行システム104は、カードからの情報を保存された認証済み情報と比較して、たとえば、共有シークレットが顧客に関連付けられた認証済み共有シークレットと一致することを確認することができる。
【0037】
非接触カード情報が正しいことを確認する銀行システム104によって、または認証操作を実行するコンピューティング・デバイス102によって、ユーザが認証された場合、銀行システム104は、フィールドまたはフォームに記入するために必要なデータ、たとえばコンピューティング・デバイス102に送り返すデータを決定することができる。たとえば、銀行システム104は、フィールドに入力するためにコンピューティング・デバイス102に送信する支払データおよび/または個人データを決定することができる。前述したように、支払いデータは、非接触カード106に関連付けられた口座番号を含むことができ、銀行システム104は、データベースまたはデータストア内で検索を実行して番号を決定することができる。銀行システム104は、同様の操作を実行して、他のデータ、たとえば、個人データ、医療データ、他の支払いデータなどを決定することができる。たとえば、銀行システム104は、1つまたは複数の基準に基づいてユーザに提供される特典に基づいて、他の口座の支払いデータを決定することができる。場合によっては、銀行システム104は、ユーザが1つまたは複数のフィールドに入力するために選択するためのオプションまたは提案を決定し、提供することができる。
【0038】
ライン212で、銀行システム104は、1つまたは複数のフィールドに自動的に入力するためにデータをコンピューティング・デバイス102に送信することができる。ライン214で、データはコンピューティング・デバイス102によって受信され、フィールドに自動的に入力され得る。
図3に関してより詳細に説明するように、コンピューティング・デバイス102は、銀行システム104から受信したデータの識別情報、および入力される要素(フィールド)の名前または識別子に基づいて、1つまたは複数のフィールドに自動的に入力することができる銀行システム104がユーザに1つまたは複数の提案を提供する場合、ユーザは提案のうちの1つを選択するように促され、データはユーザの選択に基づいて1つまたは複数のフィールドに入力され得る。
【0039】
図3は、コンピューティング・デバイス102などのデバイス、つまり、オンライン取引の実行、ローン申請の提出、医療情報の提供などの操作を実行するためにウェブページまたはモバイル・アプリケーションにデータを自動的に入力または提供するモバイル・デバイスなどによって実行され得るルーチン300を示す。図示されたルーチン300では、1つまたは複数の動作は、コンピューティング・デバイス102上で実行される1つまたは複数のアプリまたは命令によって実行され得る。場合によっては、データは取引を実行するための口座データである場合がある。 しかしながら、実施形態はこれに限定されない。前述したように、データは個人データ、医療データなどであり、操作を実行するために使用される。ルーチン300は、ユーザを認証するためのコンピューティング・デバイス102と非接触カードとの間の交換から始まる。しかしながら、
図2で説明したように、交換の前に1つまたは複数の操作を実行することができ、たとえばフィールドを検出することができる。
【0040】
ブロック302において、ルーチン300は、非接触カードとの通信の開始を検出する。場合によっては、非接触カードとの通信の開始は、機密データを必要とする1つまたは複数のフィールドの検出の結果、それに基づいて行われる場合がある。コンピューティング・デバイス102は、メッセージまたは要求を表示することによって、非接触カードを通信距離内に持ってくるようにユーザに促すことができる。たとえば、命令を実行するコンピューティング・デバイス102は、ディスプレイ上に非接触カードをタップするようにというメッセージをディスプレイ上に提示することができる。メッセージは、ウェブページやモバイル・アプリケーション、またはディスプレイ上のポップアップ・ウィンドウ内の機密データを必要とする1つまたは複数のフィールド内またはその周囲に表示される場合がある。ポップアップ・ウィンドウは、ユーザに機密データの入力を要求する、ディスプレイ上に表示される1つまたは複数のフィールドの検出に基づく指示によってトリガーされ得る。コンピューティング・デバイス102は、表示される要素の名前、たとえばフィールドのタグまたはラベルに基づいて、機密データを必要とする1つまたは複数のフィールドを検出することができる。場合によっては、ウェブページまたはモバイル・アプリケーション自体に手順が埋め込まれている場合があり、ユーザが特定のページに移動すると、その指示によりデータのリクエストがトリガーされ、認証操作、たとえば、非接触カードをコンピューティング・デバイス102の近くに持ってくることが実行される。
【0041】
ブロック304において、ルーチン300は、無線インターフェイスを介して非接触カードとの通信を実行し、この通信には、非接触カードから認証情報を受信することが含まれる。コンピューティング・デバイス102および非接触カードは、NFCデータ交換フォーマット(NDEF)メッセージなどの1つまたは複数のメッセージで情報を交換することができる。非接触カードとの通信交換には、非接触カードから認証情報を受信することが含まれてもよい。いくつかの実施形態では、コンピューティング・デバイス102は、非接触カードから暗号文を含むペイロードを受信することができる。本明細書で説明するように、暗号文は、1つまたは複数の識別番号、カウンタ、バージョン番号、および共有シークレットを含む認証情報を含み、多様なキーを使用して暗号化することができる。暗号文は、非接触カードによって生成され、暗号化され、コンピューティング・デバイス102に伝達され得る。実施形態では、ペイロードは、暗号化されていない識別子などの追加情報を含むことができる。暗号化されていない識別子は、非接触カードに関連付けられ、非接触カードに保存されている顧客を識別するための顧客識別子であってもよい。実施形態はこのように限定されない。コンピューティング・デバイス102は、その情報を利用して、サーバまたは銀行システムとの認証操作を実行することができる。
【0042】
ブロック306において、ルーチン300は、オンライン・システムのウェブページまたはモバイル・アプリケーションの1つまたは複数のフィールドを検出または決定する。1つまたは複数のフィールドは、ユーザからデータを受信するか、自動的にデータが入力されるように構成される。たとえば、コンピューティング・デバイス102は、1つまたは複数のJavaScript(登録商標)関数またはJava(登録商標)関数を実行して、特定のフィールドのタグまたはラベルに基づいてウェブページまたはモバイル・アプリケーションに現在表示されているフィールドを識別することができる。場合によっては、コンピューティング・デバイス102は、XPathクエリ言語を利用して、ウェブページまたはモバイル・アプリケーション上に表示されるフィールド(または要素)を決定することができる。XPathクエリの結果は、ウェブページまたはモバイル・アプリケーション上の各要素の名前またはラベルを返す場合がある。返された名前またはラベルのテキストを分析して、必要な特定のデータを決定することができる。フィールドの名前は、「口座名義(AccountName)」、「名(FirstName)」、「姓(LastName)」、「有効期限(ExpirationDate)」、「住所(Address)」などである。場合によっては、フィールドは既知の名前、すなわち、銀行システムによって既知の名前、または銀行システムによって指定された名前で事前にプログラムされてもよい。他の例では、銀行システムは名前要素に対してテキスト分析技術を実行し、コンテキストの手がかりを使用して必要な特定のデータを決定する場合があります。たとえば、「AccNam」は「AccountName(口座名義)」に十分に似ている可能性がある。実施形態は、フィールドの名前を決定するためにJavaScript(登録商標)および/またはXPathを利用することに限定されず、Python(登録商標)およびget field関数などの他のプログラミング言語を利用して要素またはフィールドを検出できることに留意されたい。
【0043】
ブロック308において、ルーチン300は、オンライン・システムを識別するための情報を決定する。具体的には、実施形態は、ウェブページまたはモバイル・アプリケーションをホスティングおよび/または提供するシステムを識別することを含む。たとえば、オンライン・システムは、オンライン商品および/またはサービスを販売する販売者システム、銀行サービスを提供する銀行システム、医療サービスを提供する医療提供者システムなどであってもよい。オンライン・システムを識別するための情報は、ウェブページまたはコンピューティング・デバイス102自体から決定され得る。たとえば、識別子は ウェブ・アドレスやモバイル・アプリケーション名などである。オンライン・システムを識別する情報は、サーバおよび/または銀行システムによってフィールドのデータを決定するために使用されることもある。
【0044】
ブロック310において、ルーチン300は、認証情報およびオンライン・システムを識別するための情報をサーバに伝達する。サーバは銀行システムの一部である場合があり、場合によっては複数のサーバまたはコンピューティング・システムが存在する場合がある。認証情報およびオンライン・システムを識別するための情報は、1つまたは複数の安全な接続を介して伝達できる。場合によっては、認証情報および識別情報は、異なるメッセージおよび/または別個のメッセージで伝達されてもよい。コンピューティング・デバイスはまた、フィールドを識別する情報、たとえば要素の名前を伝達することもできる。
【0045】
情報を受信するサーバを含む銀行システムは、フィールドのデータを決定して提供する前に、まず認証情報に基づいてユーザを認証することができる。認証が失敗した場合、サーバはコンピューティング・デバイス102に認証の失敗の指示を提供する。場合によっては、銀行システムは、機密データを入力する前に追加の認証情報 (多要素認証など) を提供することを顧客に要求する場合がある。たとえば、銀行システムは、追加の認証情報を提供するために、顧客および/またはコンピューティング・デバイス102に対する要求をコンピューティング・デバイス102に送信することができる。ウェブサイトまたはモバイル・アプリを含むコンピューティング・デバイス102は、ウェブサイトまたはモバイル・アプリに関連付けられた口座にログインした顧客に基づいて認証を確認することができる。別の例では、コンピューティング・デバイス102は、要求を受信し、たとえば生体認証センサ、資格情報/パスワードの入力などを介して、顧客が追加の認証情報を提供するようにディスプレイ上に指示を提供することができる。この要求に応答して、コンピューティング・デバイス102は、追加の認証情報と、ユーザが銀行システムに対して認証されているかどうかに関する結果を提供することができる。認証されると、サーバはオンライン・システムとフィールドを識別する情報を利用して、入力するデータを決定する。たとえば、サーバは、データベース内で検索を実行することにより、識別情報に基づいて販売業者を決定することができる。販売者が識別されると、サーバは販売者が利用できる口座または支払いデータを決定することができる。口座データは、ウェブページまたはモバイル・アプリケーション上のフィールドに提供される口座番号であってもよい。実施形態では、口座番号は、非接触カードの口座番号であってもよい。前述したように、サーバは、取引を実行するために使用できる最適な口座または異なる口座を決定する操作を実行できる。たとえば、サーバは販売者を決定し、別の口座を使用することでユーザに特典、たとえば、特典、キャッシュ・バック、APRの低下、インセンティブの提供などの利益が提供されるかどうかを決定する。
【0046】
実施形態では、オンライン・システムを識別する情報は、フィールドのデータを決定するのに適切ではない可能性がある。場合によっては、コンピューティング・デバイス102およびサーバは、データを必要とする各フィールドを識別する情報、たとえば、要素の名前、フィールド識別子などを受信することができる。この情報は、名前フィールド、電話番号フィールド、住所フィールド、口座フィールド、有効期限データ・フィールド、CVVフィールドなどを識別する場合がある。言及したように、本明細書で説明する技術は、取引以外のデータのフィールドにデータを入力するために適用することができる。たとえば、必要なデータはローン申請書に入力するためのものである場合があり、フィールドは、社会保障番号フィールド、収入フィールド、扶養家族の数フィールドなど、さまざまなデータ用である場合がある。同様に、医療情報を処理する医療システムには、医療関連フィールド、健康歴フィールド、医学フィールド、アレルギーフィールドなどが含まれる場合がある。
【0047】
サーバは、各フィールドを識別する情報を利用して、各フィールドのデータを決定することができ、たとえば、データベースまたはデータストア内でルックアップを実行することができる。たとえば、サーバは要素(フィールド)の名前または識別子を利用して、データベース内の対応するデータを特定し、「口座名義(AccountName)」という名前のフィールドの口座番号を検索する。サーバを含む銀行システムは、フィールドにデータを提供するために使用できる安全かつ暗号化された方法でユーザに関連するデータを保存することができる。場合によっては、銀行システムは、医療提供者システム、別の銀行システムなどのサード・パーティ・システムと通信し、そこから情報を取得するように構成されてもよい。ユーザは、銀行システムが他のサード・パーティ・システムで操作を実行できるように許可を与えるか、オプトインするか、あるいはその両方を行うことができる。
【0048】
ブロック312で、ルーチン300はサーバからデータを受信する。具体的には、コンピューティング・デバイス102は、銀行システムから1つまたは複数のフィールドのデータを受信することができる。データは、コンピューティング・デバイス102が各フィールドに対応する特定のデータのそれぞれを識別できるように、コンピューティング・デバイス102に伝達され得る。たとえば、データの各部分にラベルを付けたり、特定のフィールドのラベルで識別したりすることができる。たとえば、 <名前>姓名、<口座番号>######、<電話番号>#-###-###-####など。実施形態では、識別子はフィールドの同じ名前または識別子であってもよい。データは、1つまたは複数の通信またはメッセージでコンピューティング・デバイス102に送信され得る。いくつかの実施形態では、ラベルは、フィールドを識別するためにウェブページまたはモバイル・アプリケーションによって使用されるのと同じラベルまたはタグであってもよい。
【0049】
場合によっては、データには特定のデータに対する1つまたは複数のオプションが含まれる場合がある。前述したように、銀行システムは、取引を実行するために使用できる口座の数を識別し、口座オプションのリスト、場合によってはランク付けされたリストを提供する場合がある。ユーザは、コンピューティング・デバイス102上でオプションの1つを選択するように促される場合がある。 さまざまなデータに対してオプションが存在する場合もある。たとえば、ユーザは多数の電話番号に関連付けられ、電話番号を選択するように求められる場合がある。実施形態はこのように限定されない。
【0050】
ブロック314において、ルーチン300は、ウェブページまたはモバイル・アプリケーションの1つまたは複数のフィールドにデータを自動的に入力することを含む。たとえば、コンピューティング・デバイス102は、銀行システムのサーバからデータを受信し、それをウェブページまたはモバイル・アプリケーション上に表示される正しいフィールドに自動的に入力することができる。コンピューティング・デバイス102は、フィールドまたは要素上の名前、タグ、またはラベルに基づいて特定のフィールドにデータをポストする、JavaScript命令またはJS命令などの1つまたは複数の命令を含み得る。論じたように、コンピューティング・デバイス102は、各要素またはフィールド名を決定するように構成され得る。同様に、コンピューティング・デバイス102は、対応する要素またはフィールドに特定のデータを挿入するように構成され、たとえば、支払い要素またはフィールドに支払いデータを挿入する。命令は、上記のブロック306で決定されたフィールドの名前を利用して、対応する言語を挿入することができる。たとえば、フィールドの名前が「口座番号」の場合、関数は「口座番号」の名前を利用してフィールドに口座番号を含む支払いデータを入力するように構成される。命令を含むコンピューティング・デバイス102は、銀行システムからのデータとともに伝達される識別子に基づいて、正しいデータを決定する。実施形態はこの例に限定されず、各データを同様に対応するフィールドに挿入してもよい。
【0051】
すべてのデータが自動的にフィールドに入力されると、コンピューティング・デバイス102は、たとえば、取引を実行するためのデータの送信など、次の操作またはアクションの実行に進むことができる。場合によっては、コンピューティング・デバイス102は、最初に、ポップアップ・ウィンドウなどを介してデータを確認するようにユーザに求めてもよい。コンピューティング・デバイス102は、たとえば、送信入力またはボタンをアクティブにすることによって、次の操作を開始するユーザに依存することもできる。
【0052】
図4は、システムの1つまたは複数のサーバによって実行され得る例示的なルーチン400を示す。図示の例および以下の説明では、サーバは銀行システムに組み込まれている。 しかしながら、実施形態はそのように限定されない。ルーチン400は、ユーザを認証し、1つまたは複数のフィールドに入力するデータを決定するために実行され得る。
【0053】
ブロック402において、ルーチン400は、非接触カードに関連付けられた認証情報、およびオンライン・システムを識別するための識別情報を受信することを含む。場合によっては、サーバは、データを必要とする 1つまたは複数のフィールドを識別するための情報を受信する場合がある。認証情報は、1つまたは複数の識別番号、カウンタ、バージョン番号、および共有シークレットを有する認証情報を含む暗号文を含む非接触カードからの情報を含み、多様なキーを使用して暗号化され得る。暗号文は、生成され、暗号化され、非接触カードによってコンピューティング・デバイス102に伝達され、次にコンピューティング・デバイス102によってサーバに伝達され得る。実施形態では、ペイロードは、暗号化されていない識別子などの追加情報を含むことができる。暗号化されていない識別子は、非接触カードに関連付けられ、非接触カードに保存されている顧客を識別するための顧客識別子であってもよい。実施形態はこのように限定されない。コンピューティング・デバイス102は、その情報を利用して、サーバまたは銀行システムとの認証操作を実行することができる。
【0054】
ブロック404では、ルーチン400は、非接触カードに関連付けられた認証操作を実行する。たとえば、銀行システムは、非接触カードに関連付けられ銀行システムに保存されている1つまたは複数のキーに基づいて、非接触カードからの認証情報を復号できるかどうかを判定することができる。別の例では、銀行システムは、認証情報の少なくとも一部が銀行システムに保存されている認証情報と一致するかどうかを判定することができる。たとえば、銀行システムは、非接触カードからの共有シークレットが、非接触カードに関連付けられた共有シークレットと一致するかどうかを判断することができる。銀行システムはまた、追加の認証情報が顧客が本物であることを示していること、たとえばオンライン販売システムに関連付けられたパスワードを入力したこと、顧客のデバイスに正しい資格情報を入力したことなどを確認することもできる。
【0055】
ブロック406において、ルーチン400は、認証操作が成功したか失敗したかを判定する。ブロック410において、ルーチン400は、認証操作が失敗したことに応答して、認証情報の認証が失敗したことを示す指示をコンピューティング・デバイス102に送信する。
【0056】
ブロック408において、ルーチン400は、認証操作が成功したことに応答して、オンライン・システムに関連する1つまたは複数のフィールドに入力できるデータを決定し、そのデータをコンピューティング・デバイス102に送信する。たとえば、サーバは、オンライン・システムを識別する情報を利用して販売業者を識別することができる。次に、サーバは、ユーザに関連付けられた口座番号を決定し、その口座番号を販売業者およびオンライン・システムで使用することができる。前述したように、サーバは機密データを必要とする各フィールドを識別する情報を受信する場合がある。サーバは、フィールドの名前または識別子に基づいて、必要なデータを決定でき、たとえば、「口座番号」は、取引を実行するための口座番号に対応する。サーバは、フィールドの名前または識別子を使用して、たとえばデータベースでの検索を実行すること、および/または前述したようにサード・パーティ・システムと通信することによって、各フィールドのデータを決定することができる。
【0057】
サーバは、1つまたは複数のフィールドに提供する1つまたは複数のオプションまたは最適なデータを決定することもできる。説明したように、サーバは、ユーザ設定、たとえば、最も多くの報酬、最高の金銭的価値などに基づいて、コンピューティング・デバイスに返す最適なデータを決定する場合がある。場合によっては、サーバは、取引の実行に使用できる各口座などのオプションのリストを返すことがある。場合によっては、リストは、1つまたは複数の基準に基づくランク・リストであってもよい。次いで、ルーチン300で説明したように、サーバは、データをコンピューティング・デバイス102に送り返してもよく、コンピューティング・デバイス102は、各フィールドに対応するデータを入力してもよい。ユーザにオプションが提供されない場合、コンピューティング・デバイスは、ユーザの操作なしでフィールドに自動的に値を入力する場合がある。オプションがユーザに提供される場合、ユーザは最初にオプションの1つを選択し、その後データがフィールドに自動的に入力される。以下の説明では、非接触カードについてさらに詳しく説明し、カードを利用した認証操作を実行する。
【0058】
図5は、非接触カード500の構成例を示す図であり、非接触カード500は、非接触カード500の前面または背面にサービス・プロバイダ・インジケータ502として表示されるように、サービス・プロバイダによって発行されるクレジット・カード、デビット・カード、ギフトカードなどの決済カードを含むことができる。いくつかの例では、非接触カード500は支払いカードに関連しておらず、限定ではなく、身分証明書を含むことができる。 いくつかの例では、非接触カードは、デュアル・インターフェイス非接触支払いカード、ポイント・カードなどを含み得る。非接触カード500は、プラスチック、金属、および他の材料からなる単層または1つまたは複数の積層層を含むことができる基板508を含むことができる。例示的な基板材料には、ポリ塩化ビニル、酢酸ポリ塩化ビニル、アクリロニトリルブタジエンスチレン、ポリカーボネート、ポリエステル、陽極酸化チタン、パラジウム、金、カーボン、紙、および生分解性材料が含まれる。いくつかの例では、非接触カード500は、ISO/IEC 7816規格のID-1フォーマットに準拠する物理的特性を有してもよく、また、非接触カードは、ISO/IEC 14443規格に準拠してもよい。しかしながら、本開示による非接触カード500は異なる特性を有することができ、本開示は非接触カードが支払いカードに実装されることを必要としないことが理解される。
【0059】
非接触カード500はまた、カードの表面および/または裏面に表示される識別情報506と、接触パッド504とを含んでもよい。接触パッド504は、1つまたは複数のパッドを含み、非接触カードを介してATM、ユーザデバイス、スマートフォン、ラップトップ、デスクトップ、またはタブレット・コンピュータなどの別のクライアント・デバイスとの接触を確立するように構成され得る。接触パッドは、ISO/IEC 7816規格などの1つまたは複数の規格に従って設計され、EMVプロトコルに従った通信を可能にすることができる。非接触カード500は、
図6でさらに説明するように、プロセッシング回路、アンテナ、および他の構成要素も含むことができる。これらの構成要素は、接触パッド504の背後、または基板508上の他の場所、たとえば、基板508上に配置されてもよく、基板508の異なる層内に配置され、接触パッド504と電気的かつ物理的に結合され得る。非接触カード500はまた、カードの裏面に配置され得る磁気ストリップまたは磁気テープを含んでもよい(
図5には示されていない)。非接触カード500はまた、NFCプロトコルを介して通信することができるアンテナに結合された近距離無線通信(NFC)デバイスを含んでもよい。実施形態はこのように限定されない。
【0060】
図5に示されるように、非接触カード500の接触パッド504は、プロセッサ602、メモリ604、および1つまたは複数のインターフェイス606を含む、情報を記憶し、処理し、通信するためのプロセッシング回路616を含んでもよい。プロセッシング回路616は、ここで説明されている機能を実行するために必要な場合、プロセッサ、メモリ、エラーおよびパリティ/CRCチェッカ、データエンコーダ、衝突防止アルゴリズム、コントローラ、コマンドデコーダ、セキュリティ基本要素と改ざん防止ハードウェアを含む追加のコンポーネントを含み得ることが理解される。
【0061】
メモリ604は、読み出し専用メモリ、追記型読み出し複数メモリ、または読み出し/書き込みメモリ、たとえば、RAM、ROM、およびEEPROMであってもよく、非接触カード500は、これらのメモリのうちの1つまたは複数を含んでもよい。読み取り専用メモリは、工場出荷時に読み取り専用としてプログラム可能であるか、または1回だけプログラム可能である場合がある。ワンタイム・プログラマビリティにより、一度書き込んで何度も読み取ることができる。ライト・ワンス/リード・マルチプル・メモリは、メモリチップが工場出荷後のある時点でプログラムされる場合がある。メモリは一度プログラムされると書き換えることはできませんが、何度でも読み取ることができる。読み取り/書き込みメモリは、工場出荷後に何度もプログラムされ、再プログラムされる場合がある。読み取り/書き込みメモリは、工場出荷後に何度も読み取られる場合もある。場合によっては、メモリ604は、プロセッサ602によって暗号化データに対して実行される暗号化アルゴリズムを利用する暗号化メモリであってもよい。
【0062】
メモリ604は、1つまたは複数のアプレット608、1つまたは複数のカウンタ610、顧客識別子614、および仮想口座番号であり得る口座番号612を記憶するように構成され得る。1つまたは複数のアプレット608は、Java Card(登録商標)アプレットなど、1つまたは複数の非接触カード上で実行するように構成された1つまたは複数のソフトウェアアプリケーションを含むことができる。しかし、アプレット608はJava Card(登録商標)アプレットに限定されず、非接触カードまたは限られたメモリを有する他のデバイス上で動作可能な任意のソフトウェアアプリケーションであってもよいことが理解される。1つまたは複数のカウンタ610は、整数を格納するのに十分な数値カウンタを備え得る。顧客識別子614は、500のユーザに割り当てられた一意の英数字の識別子を含むことができ、この識別子は、非接触カードのユーザを他の非接触カードユーザから区別することができる。いくつかの例では、顧客識別子614は、顧客とその顧客に割り当てられた口座の両方を識別することができ、さらに、顧客の口座に関連付けられた非接触カード500を識別することもできる。述べたように、口座番号612は、非接触カード500に関連付けられた何千もの使い捨て仮想口座番号を含むことができる。非接触カード500のアプレット608は、口座番号612を管理する(たとえば、口座番号612を選択し、選択された口座番号612を使用済みとしてマークし、送信する)ように構成され得る。 自動記入サービスによる自動記入のために、口座番号612をモバイル・デバイスに送信する。
【0063】
前述の例示的な実施形態のプロセッサ602およびメモリ要素は、接触パッド504を参照して説明されているが、本開示はこれに限定されない。これらの要素は、接触パッド504の外側に実装されてもよいし、接触パッド504から完全に分離されて実装されてもよいし、あるいは、接触パッド504内に位置するプロセッサ602およびメモリ604要素に加えてさらなる要素として実装されてもよいことが理解される。
【0064】
いくつかの例では、非接触カード500は、1つまたは複数のアンテナ618を備え得る。1つまたは複数のアンテナ618は、非接触カード500内および接触パッド504のプロセッシング回路616の周囲に配置され得る。たとえば、1つまたは複数のアンテナ618は、プロセッシング回路616と一体であってもよく、1つまたは複数のアンテナ618は、外部ブースタ・コイルとともに使用されてもよい。別の例として、1つまたは複数のアンテナ618は、接触パッド504およびプロセッシング回路616の外部にあってもよい。
【0065】
一実施形態では、非接触カード500のコイルは、空芯変圧器の二次側として機能することができる。端末は、電力または振幅変調を遮断することによって非接触カード500と通信することができる。非接触カード101は、非接触カードの電源接続のギャップを使用して、端末から送信されたデータを推測することができ、これは、1つまたは複数のコンデンサによって機能的に維持され得る。非接触カード500は、非接触カードのコイルの負荷または負荷変調を切り替えることによって通信を返すことができる。干渉により端末のコイルで負荷変調が検出される場合があります。より一般的には、アンテナ618、プロセッサ602、および/またはメモリ604を使用して、非接触カード101は、NFC、Bluetooth(登録商標)、および/またはWi-Fi(登録商標)通信を介して通信するための通信インターフェイスを提供する。
【0066】
上で説明したように、非接触カード500は、JavaCard(登録商標)などの、スマート・カードまたは限られたメモリを有する他のデバイス上で動作可能なソフトウェア・プラットフォーム上に構築することができ、1つまたは複数のアプリケーションまたはアプレットを安全に実行することができる。アプレット608を非接触カードに追加して、様々なモバイル・アプリケーション・ベースの使用例における多要素認証(MFA)用のワンタイムパスワード(OTP)を提供することができる。アプレット608は、モバイルNFCリーダ(たとえば、モバイル・デバイスまたは販売時点管理端末の)などのリーダからの、近距離無線データ交換要求などの1つまたは複数の要求に応答するように構成され得る。 そして、NDEFテキスト タグとしてエンコードされた暗号的に安全な OTPを含むNDEFメッセージを生成する。
【0067】
NDEF OTPの一例は、NDEFショート・レコード・レイアウト(SR=1)である。このような例では、1つまたは複数のアプレット608は、OTPをNDEFタイプ4の周知のタイプのテキスト・タグとしてエンコードするように構成され得る。いくつかの例では、NDEFメッセージは1つまたは複数のレコードを含むことができる。アプレット608は、OTPレコードに加えて1つまたは複数の静的タグ・レコードを追加するように構成され得る。
【0068】
いくつかの例では、1つまたは複数のアプレット608は、RFIDタグをエミュレートするように構成され得る。 RFIDタグは、1つまたは複数の多形性タグを含むことができる。いくつかの例では、タグが読み取られるたびに、非接触カードの信頼性を示す可能性のある異なる暗号データが提示される。1つまたは複数のアプレット608に基づいて、タグのNFC読み取りが処理され、データが銀行システムのサーバなどのサーバに送信され、データがサーバで検証され得る。
【0069】
いくつかの例では、非接触カード500およびサーバは、カードを適切に識別できるように特定のデータを含むことができる。非接触カード500は、1つまたは複数の固有の識別子(図示せず)を含むことができる。読み取り動作が行われるたびに、カウンタ610はインクリメントするように構成され得る。いくつかの例では、非接触カード500からのデータが(たとえば、モバイル・デバイスによって)読み取られるたびに、カウンタ610は検証のためにサーバに送信され、カウンタ610が(検証の一部として)サーバのカウンタと等しいかどうかを判定する。
【0070】
1つまたは複数のカウンタ610は、リプレイ攻撃を防止するように構成され得る。たとえば、暗号文が取得されて再生された場合、カウンタ610が読み取られ、使用され、あるいは渡された場合、その暗号文は直ちに拒否される。カウンタ610が使用されていない場合には、再実行することができる。いくつかの例では、カード上でインクリメントされるカウンタは、取引用にインクリメントされるカウンタとは異なる。非接触カード500上のアプレット608間に通信がないため、非接触カード101はアプリケーション・トランザクション・カウンタ610を決定することができない。
【0071】
いくつかの例では、カウンタ610が同期しなくなることがある。いくつかの例では、斜めからの読み取りなど、取引を開始する偶発的な読み取りを考慮するために、カウンタ610は増加する可能性があるが、アプリケーションはカウンタ610を処理しない。いくつかの例では、モバイル・デバイス10がウェイクアップされると、NFCが有効になり、デバイス110は利用可能なタグを読み取るように構成され得るが、読み取りに応答してアクションは取られない。
【0072】
カウンタ610の同期を保つために、バックグラウンド・アプリケーションなどのアプリケーションは、モバイル・デバイス110が起動したときを検出し、検出によって読み取りが発生したことを示してカウンタ値を前方に移動することを示す銀行システムのサーバと同期するように構成されたアプリケーションを実行することができる。 他の例では、ハッシュ化されたワンタイムパスワードを利用して、同期ミスのウィンドウを受け入れることができる。たとえば、閾値10以内であれば、カウンタ610は前進するように構成され得る。ただし、異なる閾値の範囲内、たとえば10または900以内の場合、ユーザがユーザのデバイスを介して1回以上タップ、ジェスチャ、またはその他の方法で指示した1つまたは複数のアプリケーションを介して再同期を実行するリクエストが処理される場合がある。カウンタ610が適切な順序で増加する場合、ユーザが増加したことを知ることができる。
【0073】
カウンタ610、マスター・キー、および多様化キーを参照して本明細書で説明されるキー多様化技術は、暗号化および/または復号化、キー多様化技術の一例である。本開示は他のタイプのキー多様化技術にも同様に適用可能であるため、この例のキー多様化技術は本開示を限定するものとみなされるべきではない。
【0074】
非接触カード500の作成プロセス中に、カードごとに2つの暗号化キーを一意に割り当てることができる。暗号化キーは、データの暗号化と復号化の両方に使用できる対称キーを含むことができる。トリプルDES(3DES)アルゴリズムはEMVによって使用され得、非接触カード500内のハードウェアによって実装される。キー多様化プロセスを使用することにより、キーを必要とする各エンティティの一意に識別可能な情報に基づいて、マスター・キーから1つまたは複数のキーを導出することができる。
【0075】
いくつかの例では、脆弱性の影響を受けやすい 3DESアルゴリズムの欠陥を克服するために、マスター・キーを使用するのではなく、セッション・キーが派生され得るが(セッションごとに一意のキーなど)、固有のカード由来のキーとカウンタは多様化データとして使用され得る。たとえば、非接触カード101が動作中に使用されるたびに、メッセージ認証コード(MAC)の作成および暗号化の実行に異なるキーが使用され得る。これにより、暗号化が3層になる。セッション・キーは、1つまたは複数のアプレットによって生成され、1つまたは複数のアルゴリズム(EMV 4.3 Book2 A1.3.1 Common Session Key Derivationで定義)を備えたアプリケーション・トランザクション・カウンタを使用して導出できる。
【0076】
さらに、各カードの増分は一意であり、個人化によって割り当てられるか、または何らかの識別情報によってアルゴリズム的に割り当てられる場合がある。たとえば、奇数番号のカードは2ずつ増加し、偶数番号のカードは5ずつ増加する。一部の例では、1枚のカードが1、3、5、2、2、・・・の繰り返しで順番に増分されるように、連続読み取りでも増分が変化する場合がある。特定のシーケンスまたはアルゴリズム・シーケンスは、パーソナライゼーション時に定義することも、一意の識別子から導出される1つまたは複数のプロセスから定義することもできる。これにより、リプレイ攻撃者が少数のカード・インスタンスから一般化することが困難になる可能性がある。
【0077】
認証メッセージは、16進ASCII形式のテキストNDEFレコードのコンテンツとして配信できる。別の例では、NDEFレコードは16進形式でエンコードされる場合がある。
【0078】
図7は、本開示の1つまたは複数の実施形態に従って、認証されたアクセスを提供するための例示的なシーケンスを示すシーケンス・フロー700である。シーケンス・フロー700は、非接触カード500と、アプリケーション704およびプロセッサ706を含むことができるコンピューティング・デバイス702とを含むことができる。
【0079】
ライン710で、アプリケーション704は(たとえば、非接触カード500に近づけられた後)非接触カード500と通信する。アプリケーション704と非接触カード500との間の通信は、アプリケーション704と非接触カード500との間のNFCデータ転送を可能にするために、コンピューティング・デバイス702のカードリーダ(図示せず)に十分に近い非接触カード500を必要とし得る。
【0080】
ライン708において、コンピューティング・デバイス702と非接触カード500との間で通信が確立された後、非接触カード500はメッセージ認証コード(MAC)暗号文を生成する。いくつかの例では、これは、非接触カード500がアプリケーション704によって読み取られるときに発生する可能性がある。特に、これは、NFCデータ交換フォーマットに従って作成され得る近距離フィールドデータ交換(NDEF)タグのNFC読み取りなどの読み取り時に発生する可能性がある。たとえば、アプリケーション704などのリーダ・アプリケーションは、NDEF生成アプレットのアプレットIDとともに、アプレット選択メッセージなどのメッセージを送信することができる。選択が確認されると、一連のファイル選択メッセージと、その後に続くファイル読み取りメッセージが送信され得る。たとえば、シーケンスには、「機能ファイルの選択」、「機能ファイルの読み取り」、および「NDEFファイルの選択」が含まれる場合がある。この時点で、非接触カード500によって維持されるカウンタ値が更新または増分されてもよく、その後に「NDEFファイルの読み取り」が続いてもよい。この時点で、ヘッダと共有シークレットを含むメッセージが生成される可能性がある。 その後、セッション・キーが生成される。MAC暗号文は、ヘッダと共有シークレットを含むメッセージから作成できる。次に、MAC暗号文はランダムデータの1つまたは複数のブロックと連結され、MAC暗号文と乱数(RND)はセッション・キーで暗号化される。その後、暗号文とヘッダが連結され、ASCII16進数としてエンコードされ、NDEFメッセージ形式で返される (「NDEFファイルの読み取り」メッセージに応答)。
【0081】
いくつかの例では、MAC暗号文は、NDEFタグとして送信され得、他の例では、MAC暗号文は、(たとえば、フォーマットされた文字列として)統一リソース・インジケータとともに含まれ得る。いくつかの例では、アプリケーション704は、MAC暗号文を生成する命令を含む要求を非接触カード500に送信するように構成され得る。
【0082】
ライン712で、 500はMAC暗号文をアプリケーション704に送信する。いくつかの例では、MAC暗号文の送信はNFCを介して行われるが、本開示はこれに限定されない。他の例では、この通信は、Bluetooth(登録商標)、Wi-Fi(登録商標)、または他の無線データ通信手段を介して行われてもよい。ライン714で、アプリケーション704はMAC暗号文をプロセッサ706に通信する。
【0083】
ライン716で、プロセッサ706は、アプリケーション122からの命令に従ってMAC暗号文を検証する。たとえば、以下で説明するように、MAC 暗号文を検証することができる。いくつかの例では、MAC暗号文の検証は、コンピューティング・デバイス702とデータ通信する銀行システムのサーバなど、コンピューティング・デバイス702以外のデバイスによって実行されてもよい。たとえば、プロセッサ706は、銀行システムのサーバに送信するためにMAC暗号文を出力することができ、銀行システムのサーバはMAC暗号文を検証することができる。いくつかの例では、MAC暗号文は検証の目的でデジタル署名として機能する場合がある。この検証を実行するために、デジタル署名アルゴリズムや RSAアルゴリズムなどの公開キー非対称アルゴリズム、またはゼロ知識プロトコルなどの他のデジタル署名アルゴリズムを使用することもできる。
【0084】
図8は、例示的な実施形態によるNDEFショート・レコード・レイアウト(SR=1)データ構造800を示す。1つまたは複数のアプレットは、OTPをNDEFタイプ4のよく知られたタイプのテキスト・タグとしてエンコードするように構成できる。いくつかの例では、NDEFメッセージは1つまたは複数のレコードを含むことができる。アプレットは、OTPレコードに加えて1つまたは複数の静的タグ・レコードを追加するように構成できる。 タグの例としては、以下が挙げられるが、これらに限定されない。
タグタイプ:よく知られたタイプ、
テキスト、エンコーディング英語(en);
アプレットID:D2760000850101;
機能:読み取り専用アクセス;
エンコーディング:認証メッセージはASCII16進数としてエンコードし得る;
type-length-value(TLV)データは、NDEFメッセージの生成に使用できる個人化パラメータとして提供される場合がる。
一実施形態では、認証テンプレートは、実際の動的認証データを提供するための周知のインデックスを有する最初のレコードを含むことができる。
【0085】
図9は、本開示の1つまたは複数の実施形態を実装するように構成されたシステム・キー・システム900の図を示す。以下で説明するように、非接触カードの作成プロセス中に、各カードに2つの暗号化キーが固有に割り当てられることがある。暗号化キーは、データの暗号化と復号化の両方に使用できる対称キーを含むことができる。トリプルDES(3DES)アルゴリズムはEMVで使用される場合があり、非接触カードのハードウェアによって実装される。キー多様化プロセスを使用することにより、キーを必要とする各エンティティの一意に識別可能な情報に基づいて、マスター・キーから1つまたは複数のキーを導出することができる。
【0086】
マスター・キー管理に関しては、1つまたは複数のアプレットが発行されるポートフォリオの各部分に対して、2つの発行者マスター・キー902、926が必要となる場合がある。たとえば、第1のマスター・キー902は、発行者暗号生成/認証キー(Iss-Key-Auth)を含んでもよく、第2のマスター・キー926は、発行者データ暗号化キー(Iss-Key-DEK)を含んでもよい。本明細書でさらに説明するように、2つの発行者マスター・キー902、926は、各カードに固有のカード・マスター・キー908、920に多様化される。いくつかの例では、バック・オフィス・データとして、ネットワーク・プロファイル・レコードID(pNPR)522および導出キーインデックス(pDKI)924を使用して、どの発行者マスター・キー902、926を認証のための暗号プロセスで使用するかを識別することができる。認証を実行するシステムは、認証時に非接触カードのpNPR922およびpDKI924の値を取得するように構成され得る。
【0087】
いくつかの例では、ソリューションのセキュリティを高めるために、セッション・キーが導出される場合がありますが(セッションごとに一意のキーなど)、マスター・キーを使用するのではなく、上で説明したように、一意のカード導出キーとカウンタが多様化データとして使用される場合がある。たとえば、カードが動作中に使用されるたびに、メッセージ認証コード(MAC)の作成と暗号化の実行に異なるキーが使用される場合がある。セッション・キーの生成に関して、暗号文を生成し、1つまたは複数のアプレット内のデータを暗号化するために使用されるキーは、カード固有のキー(Card-Key-Auth 908およびCard-Key-Dek 920)に基づくセッション・キーを含むことができる。セッション・キー(Aut-Session-Key932およびDEK-Session-Key910)は、1つまたは複数のアプレットによって生成され、1つまたは複数のアルゴリズムでアプリケーション・トランザクション・カウンタ(pATC)904を使用することによって導出され得る。データを1つまたは複数のアルゴリズムに適合させるには、4バイトのpATC904の下位2バイトのみが使用される。いくつかの例では、4バイトのセッション・キー導出方法は、以下を含むことができる。
F1 := PATC(下位2バイト)|| 'F0' || 'F0' || '00' || PATC(4バイト)F1 := PATC(下位2バイト)|| '0F' || '00' || PATC(4バイト)SK :={(ALG (MK) [F1] ) || ALG (MK) [F2]}
ここで、ALGは3DES ECBを含むことができ、MKはカード固有の派生マスター・キーを含むことができる。
【0088】
本明細書で説明するように、1つまたは複数のMACセッション・キーは、pATC904カウンタの下位2バイトを使用して導出することができる。非接触カードのタップごとに、pATC904が更新されるように構成され、カード・マスター・キー Card-Key-AuthおよびCard-Key-Dek 920がセッション・キーAut-Session-Key932およびDEK-Session-Key910にさらに多様化される。pATC904は、個人化またはアプレットの初期化時にゼロに初期化され得る。いくつかの例では、pATCカウンタ904は、個人化時または個人化前に初期化されてもよく、NDEF読み取りごとに1ずつ増加するように構成されてもよい。
【0089】
さらに、各カードの更新は一意であり、パーソナライゼーションによって割り当てられるか、pUIDまたはその他の識別情報によってアルゴリズム的に割り当てられる。たとえば、奇数番号のカードは2ずつ増加または減少し、偶数番号のカードは5ずつ増加または減少する。一部の例では、1枚のカードが1、3、5、2、2、・・・と繰り返して順番に増加するように、更新は順次読み取りで変化する場合もある。特定のシーケンスまたはアルゴリズム・シーケンスは、パーソナライゼーション時に定義することも、一意の識別子から導出される1つまたは複数のプロセスから定義することもできる。これにより、リプレイ攻撃者が少数のカード・インスタンスから一般化することが困難になる可能性がある。
【0090】
認証メッセージは、16進ASCII形式のテキストNDEFレコードのコンテンツとして配信できる。いくつかの例では、認証データと、その後に認証データのMACが続く8バイトの乱数のみが含まれてもよい。いくつかの例では、乱数は暗号文Aよりも前にあり、1ブロックの長さになる場合がある。他の例では、乱数の長さに制限がない場合もる。さらなる例では、総データ(すなわち、乱数と暗号文を足したもの)がブロックサイズの倍数であってもよい。これらの例では、MACアルゴリズムによって生成されたブロックと一致するように、追加の8バイト・ブロックが追加される場合がある。別の例として、使用されるアルゴリズムが16バイト・ブロックを使用する場合、そのブロックサイズの倍数でも使用することができ、または出力をそのブロックサイズの倍数に自動または手動でパディングすることもできる。
【0091】
MACは、ファンクションキー(AUT-Session-Key)932によって実行され得る。暗号文で指定されたデータは、javacard.signatureメソッド: ALG_DES_MAC8_ISO9797_1_M2_ALG3で処理され、EMV ARQC検証メソッドに関連付けられる。この計算に使用されるキーは、上で説明したように、セッション・キーAUT-Session-Key 932を含むことができる。上で説明したように、カウンタの下位2バイトは、1つまたは複数のMACセッション・キーを多様化するために使用できる。以下で説明するように、AUTセッション・キー932は、MACデータ906に使用され得るものであり、結果として生じるデータまたは暗号文A914および乱数RNDは、DEK-Session-Key910を使用して暗号化され、メッセージで送信される暗号文Bまたは出力918を作成することができる。
【0092】
いくつかの例では、最後の16(バイナリ、32 hex)バイトが、MAC認証データが後に続く乱数のゼロIVを有するCBCモードを使用する3DES対称暗号化を含むことができるように、1つまたは複数のHSMコマンドが復号化のために処理され得る。この暗号化に使用されるキーは、Card-Key-DEK920から導出されたセッション・キーDEK-Session-Key910を含むことができる。この場合、セッション・キー導出のATC値は、カウンタpATC904の最下位バイトである。
【0093】
以下のフォーマットは、バイナリバージョンの実施形態例を表す。さらに、いくつかの例では、最初のバイトがASCIIの「A」に設定される場合がある。
【0094】
【0095】
別のフォーマット例を以下に示す。 この例では、タグは16進形式でエンコードされる。
【0096】
受信メッセージのUIDフィールドを抽出して、マスター・キーIss-Key-AUT902およびIss-Key-DEK926から、その特定のカードのためのカード・マスター・キー(Card-Key-Auth908およびCard-Key-DEK920)を導出することができる。カード・マスター・キー(Card-Key-Auth908およびCard-Key-DEK920)を使用して、受信メッセージのカウンタ (pATC)フィールドを使用して、その特定のカードのためのセッション・キー(Aut-Session-Key932およびDEK-Session)を導出することができる。暗号文B918は、DEK-Session-KEYを使用して復号化され、暗号文A914およびRNDが生成され、RNDは破棄され得る。UIDフィールドは、メッセージのVer、UID、および pATCフィールドとともに、再作成されたAut-Session-Keyを使用して暗号化MACを通じて処理され、 MAC’などの MAC出力を作成し得る非接触カードの共有シークレットを検索するために使用できる。MAC’が暗号文A914と同じである場合、これはメッセージの復号化とMACチェックがすべて合格したことを示す。次に、pATCを読み取って、それが有効かどうかを判断できる。
【0097】
認証セッション中に、1つまたは複数のアプリケーションによって1つまたは複数の暗号文が生成される場合がある。たとえば、1つまたは複数の暗号文は、Aut-Session-Key 932などの1つまたは複数のセッション・キーを介したパディング方法2を備えたISO 9797-1アルゴリズム3を使用して、3DES MACとして生成することができる。入力データ906は、バージョン(2)、pUID(8)、pATC(4)、共有シークレット(4)の形式をとることができる。いくつかの例では、括弧内の数字はバイト単位の長さを含む場合がある。いくつかの例では、共有シークレットは、1つまたは複数の安全なプロセスを通じて乱数が予測不可能であることを保証するように構成され得る1つまたは複数の乱数生成器によって生成され得る。いくつかの例では、共有シークレットは、認証サービスによって既知である個人化時にカードに注入されるランダムな4バイトの2進数を含むことができる。認証セッション中、共有シークレットは1つまたは複数のアプレットからモバイル・アプリケーションに提供されない場合がある。パディング方法2には、入力データの末尾に必須の 0x'80' バイトを追加することと、8バイト境界までの結果のデータの末尾に追加される 0x'00' バイトが含まれる場合がある。結果として得られる暗号文は、長さが8バイトで構成される場合がある。
【0098】
いくつかの例では、MAC暗号文を使用して最初のブロックとして非共有乱数を暗号化する利点の 1つは、対称暗号化アルゴリズムのCBC(ブロックチェーン)モードを使用しながら初期化ベクトルとして機能することである。これにより、固定IVまたは動的IVを事前に確立しなくても、ブロックからブロックへの「スクランブル」が可能になる。
【0099】
MAC暗号文に含まれるデータの一部としてアプリケーション・トランザクション・カウンタ (pATC)を含めることにより、平文データで伝えられる値が改ざんされているかどうかを判断するように認証サービスを構成できる。さらに、1つまたは複数の暗号文にバージョンを含めることにより、攻撃者が暗号ソリューションの強度を低下させる目的でアプリケーションのバージョンを意図的に偽ることが困難になる。いくつかの例では、pATCは0から始まり、1つまたは複数のアプリケーションが認証データを生成するたびに1ずつ更新され得る。認証サービスは、認証セッション中に使用される pATCを追跡するように構成できる。いくつかの例では、認証データが認証サービスによって受信された以前の値以下のpATCを使用する場合、これは古いメッセージを再生しようとしていると解釈され、認証が拒否される可能性がある。いくつかの例では、pATCが受信した以前の値よりも大きい場合、これを評価して、それが許容範囲または閾値内にあるかどうか、および範囲または閾値を超えているか、または範囲または閾値の外にあるかどうかを判定することができ、検証が失敗したか、信頼性がないとみなされる可能性がある。MAC動作912において、データ906は、Aut-Session-Key932を使用してMACを通じて処理され、暗号化されたMAC出力(暗号文A)914を生成する。
【0100】
カード上のキーを暴露する総当たり攻撃に対する追加の保護を提供するために、MAC暗号文914が暗号化されることが望ましい。いくつかの例では、暗号文に含まれるデータまたは暗号文A914は、乱数(8)、暗号文(8)を含んでもよい。いくつかの例では、括弧内の数字はバイト単位の長さを含む場合がある。いくつかの例では、乱数は、1つまたは複数の安全なプロセスを通じて、乱数が予測不可能であることを保証するように構成され得る1つまたは複数の乱数生成器によって生成され得る。このデータの暗号化に使用されるキーには、セッション・キーが含まれる場合がある。たとえば、セッション・キーは、DEK-Session-Key910を含むことができる。暗号化操作916では、データまたは暗号文A914およびRNDが、DEK-Session-Key510(削除された)を使用して処理され、暗号化されたデータ、暗号文B918が生成される。データ914は、攻撃者が暗号文全体に対して攻撃を実行しなければならないことを保証するために、暗号ブロック連鎖モードで3DESを使用して暗号化することができる。非限定的な例として、Advanced Encryption Standard(AES)などの他のアルゴリズムが使用されてもよい。いくつかの例では、0x'0000000000000000' の初期化ベクトルが使用される場合がある。このデータの暗号化に使用されるキーを総当り攻撃しようとする攻撃者は、正しく復号化されたデータはランダムに出現するため、誤って復号化されたデータと区別できないため、正しいキーがいつ使用されたかを判断することができない。
【0101】
認証サービスが1つまたは複数のアプレットによって提供される1つまたは複数の暗号文を検証するには、認証セッション中に次のデータが1つまたは複数のアプレットからモバイル・デバイスに平文で送信される必要がある。
使用される暗号化手法と暗号文検証用のメッセージ形式を決定するバージョン番号、これにより、手法が将来変更される可能性がある。
pUIDを使用して暗号資産を取得し、カードキーを取得し、pATCは、暗号化に使用されるセッション・キーを導出する。
【0102】
図10は、暗号文を生成するための方法ルーチン1000を示す。たとえば、ブロック1002で、ネットワーク・プロファイル・レコードID(pNPR)および導出キーインデックス(pDKI)を使用して、認証のための暗号プロセスでどの発行者マスター・キーを使用するかを識別することができる。いくつかの例では、方法は、認証時に非接触カードのpNPRおよびpDKIの値を取得するために認証を実行することを含んでもよい。
【0103】
ブロック1004で、発行者マスター・キーは、カードの一意のID番号(pUID)および1つまたは複数のアプレット、たとえば支払いアプレットのPANシーケンス番号(PSN)と組み合わせることによって多様化され得る。
【0104】
ブロック1006で、Card-Key-AuthおよびCard-Key-DEK(固有のカードキー)は、MAC暗号文を生成するために使用され得るセッション・キーを生成するために発行者マスター・キーを多様化することによって作成され得る。
【0105】
ブロック1008で、暗号文を生成し、1つまたは複数のアプレット内のデータを暗号化するために使用されるキーは、カード固有キー(Card-Key-AuthおよびCard-Key-DEK)に基づくブロック930のセッション・キーを含むことができる。いくつかの例では、これらのセッション・キーは、1つまたは複数のアプレットによって生成され、pATCを使用して導出され、結果としてセッション・キーAut-Session-KeyおよびDEK-Session Keyが得られる。
【0106】
図11は、一例によるキーの多様化を示す例示的なプロセス・ルーチン1100を示す。最初に、送信者と受信者に2つの異なるマスター・キーが供給される場合がある。たとえば、第1のマスター・キーはデータ暗号化マスター・キーを構成することができ、第2のマスター・キーはデータ完全性マスター・キーを構成することができる。送信者は、ブロック1102で更新できるカウンタ値と、受信者と安全に共有できる保護対象データなどの他のデータを有する。
【0107】
ブロック1104で、データ暗号化派生セッション・キーを生成するために、カウンタ値は、データ暗号化マスター・キーを使用して送信者によって暗号化され、また、カウンタ値は、データ完全性派生セッション キーを生成するために、データ完全性マスター・キーを使用して、送信者によって暗号化され得る。いくつかの例では、カウンタ値全体またはカウンタ値の一部が両方の暗号化中に使用され得る。
【0108】
いくつかの例では、カウンタ値は暗号化されない場合がある。これらの例では、カウンタは、送信者と受信者の間で平文で、つまり暗号化なしで送信され得る。
【0109】
ブロック1106で、保護されるデータは、データ完全性セッション・キーおよび暗号化MACアルゴリズムを使用する送信者による暗号化MAC動作で処理される。平文と共有シークレットを含む保護されたデータは、セッション・キー(AUT-Session-Key)の1つを使用してMACを生成するために使用される場合がある。
【0110】
ブロック1108で、保護されるデータは、対称暗号化アルゴリズムと組み合わせてデータ暗号化派生セッション・キーを使用して送信者によって暗号化され得る。いくつかの例では、MAC は、たとえばそれぞれ 8バイト長の同量のランダムデータと結合され、次に2番目のセッション・キー(DEK-Session-Key)を使用して暗号化される。
【0111】
ブロック1110で、暗号化されたMACは、暗号文の検証のために追加の秘密情報(共有シークレット、マスター・キーなど)を識別するのに十分な情報とともに送信者から受信者に送信される。
【0112】
ブロック1112で、受信者は、受信したカウンタ値を使用して、上で説明したように、2つのマスター・キーから2つの導出セッション・キーを独立して導出する。
【0113】
ブロック1114では、データ暗号化から導出されたセッション・キーが対称復号化操作と併せて使用され、保護されたデータが復号化される。その後、交換されたデータに対して追加の処理が行われる。いくつかの例では、MACが抽出された後、MACを再現して照合することが望ましい。たとえば、暗号文を検証する場合、適切に生成されたセッション・キーを使用して復号化できる。保護されたデータは検証のために再構築される場合がある。MAC操作は、適切に生成されたセッション・キーを使用して実行され、それが復号化されたMACと一致するかどうかを判断できる。MAC操作は元に戻せないプロセスであるため、検証する唯一の方法は、ソースデータから再作成を試みることである。
【0114】
ブロック1116で、データ完全性から導出されたセッション・キーを暗号MAC動作と組み合わせて使用して、保護されたデータが変更されていないことを検証する。
【0115】
本明細書で説明される方法のいくつかの例は、以下の条件が満たされたときに認証が成功したと判断されることを有利に確認できる。まず、MACを検証できることから、導出されたセッション・キーが適切であることがわかる。MACが正しいのは、復号化が成功し、適切なMAC値が得られた場合のみである。復号化が成功すると、正しく導出された暗号化キーが暗号化されたMACの復号化に使用されたことがわかる。派生セッション・キーは、送信者(例:送信デバイス)と受信者(例:受信デバイス)のみが知っているマスター・キーを使用して作成されるため、最初にMACを作成し、MACを暗号化した非接触カードが実際に本物であると信頼できる。さらに、第1および第2のセッション・キーを導出するために使用されるカウンタ値は、有効であることが示され、認証操作を実行するために使用され得る。
【0116】
その後、導出された2つのセッション・キーは破棄され、データ交換の次の反復によりカウンタ値が更新され(ブロック1102に戻り)、新しいセッション・キーセットが作成される(ブロック1110)。いくつかの例では、結合されたランダムデータは破棄されてもよい。
【0117】
図12は、例示的な実施形態によるカード・アクティベーションのシーケンス・フロー700を示す。たとえば、カード・アクティベーションは、カード、デバイス、および1つまたは複数のサーバを含むシステムによって完了する場合がある。非接触カード、デバイス、および1つまたは複数のサーバは、非接触カード500、コンピューティング・デバイス702、およびサーバなど、以前に説明したのと同じまたは類似のコンポーネントを参照できる。
【0118】
ブロック1202において、カードはデータを動的に生成するように構成され得る。いくつかの例では、このデータには、カードからデバイスに送信され得る口座番号、カード識別子、カード検証値、または電話番号などの情報が含まれ得る。いくつかの例では、データの1つまたは複数の部分が、本明細書に開示されるシステムおよび方法を介して暗号化され得る。
【0119】
ブロック1204では、動的に生成されたデータの1つまたは複数の部分が、NFCまたは他の無線通信を介してデバイスのアプリケーションに通信され得る。たとえば、デバイスの近くでカードをタップすると、デバイスのアプリケーションが非接触カードに関連付けられたデータの1つまたは複数の部分を読み取ることができる場合がある。いくつかの例では、デバイスがカードのアクティベーションを支援するアプリケーションを備えていない場合、カードのタップによりデバイスが指示されるか、またはカードをアクティベートするための関連アプリケーションをダウンロードするように顧客にソフトウェア・アプリケーション・ストアに誘導できる。カードの十分なジェスチャ、配置および/または方向に応答して、デバイスは、カードから受信したデータの1つまたは複数の暗号化された部分を1つまたは複数のサーバに送信し始めることができる。
【0120】
ブロック1206では、データの1つまたは複数の部分が、カード発行ものサーバなどの1つまたは複数のサーバに伝達され得る。たとえば、カードのアクティベーションのために、データの1つまたは複数の暗号化された部分がデバイスからカード発行もののサーバに送信される場合がある。
【0121】
ブロック1208において、1つまたは複数のサーバは、本明細書に開示されるシステムおよび方法を介して、データの1つまたは複数の暗号化された部分を復号できる。たとえば、1つまたは複数のサーバは、デバイスから暗号化されたデータを受信し、受信したデータを1つまたは複数のサーバがアクセス可能な記録データと比較するために復号化できる。1つまたは複数のサーバによるデータの1つまたは複数の復号化された部分の比較の結果、一致が得られた場合、カードをアクティブ化できる。1つまたは複数のサーバによるデータの1つまたは複数の復号化された部分の比較の結果、不成功の一致が得られた場合、1つまたは複数のプロセスが実行され得る。この場合、ユーザがカードをアクティブ化することを許可される試行回数を含む所定の閾値が存在してもよい。あるいは、ユーザは、カード認証の試行が失敗したことを示す自分のデバイス上のメッセージなど、およびカードをアクティベートするための支援を求める関連サービスに電話、電子メール、またはテキストメッセージを送信する通知、または、カード認証の試行が失敗したことを示す自分のデバイスへの電話など、および、カードのアクティベーションの支援を求める関連サービスへの電話、電子メール、またはテキストメッセーを送信する別の通知、または、カード検証の失敗を示す電子メールなど、および、カードのアクティベーションの支援を求める関連サービスへの電話、電子メール、またはテキストメッセージの送信する別の通知、を受け取り得る。
【0122】
ブロック1210において、1つまたは複数のサーバは、カードのアクティベーションの成功に基づいて返信メッセージを送信できる。たとえば、デバイスは、1つまたは複数のサーバによるカードのアクティベーションの成功を示す出力を1つまたは複数のサーバから受信するように構成され得る。デバイスは、カードのアクティベーションが成功したことを示すメッセージを表示するように構成できる。カードがアクティベートされると、不正使用を避けるためにデータの動的生成を中止するようにカードを構成できる。このようにして、カードはその後アクティブ化されなくてもよく、カードがすでにアクティブ化されていることが1つまたは複数のサーバに通知される。
【0123】
図13は、前述したような様々な実施形態を実装するのに適した例示的なコンピュータ・アーキテクチャ1300の実施形態を示す。一実施形態では、コンピュータ・アーキテクチャ1300は、本明細書で説明するシステムを含むか、その一部として実装できる。
【0124】
本出願で使用される「システム」および「コンポーネント」という用語は、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連エンティティを指すことを意図しており、その例は、例示的なコンピューティング・コンピュータ・アーキテクチャ1300によって提供される。たとえば、コンポーネントは、これらに限定されないが、プロセッサ上で実行されるプロセス、プロセッサ、ハードディスク・ドライブ、(光および/または磁気記憶媒体の)複数の記憶ドライブ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータであり得る。例として、サーバ上で実行されるアプリケーションとサーバの両方をコンポーネントにできる。1つまたは複数のコンポーネントは、実行のプロセスおよび/またはスレッド内に常駐でき、コンポーネントは1台のコンピュータ上にローカライズされたり、2台以上のコンピュータ間で分散されたりできる。さらに、コンポーネントは、動作を調整するために、さまざまなタイプの通信媒体によって互いに通信可能に結合され得る。調整には、一方向または双方向の情報交換が含まれる場合がある。たとえば、コンポーネントは、通信媒体を介して通信される信号の形で情報を通信できる。情報は、さまざまな信号線に割り当てられた信号として実装できる。このような割り当てでは、各メッセージはシグナルである。しかしながら、さらなる実施形態では、代わりにデータメッセージを使用することもできる。このようなデータメッセージは、さまざまな接続を介して送信される可能性がある。例示的な接続には、パラレルインターフェイス、シリアルインターフェイス、およびバスインターフェイスが含まれる。
【0125】
コンピューティング・アーキテクチャ1300は、1つまたは複数のプロセッサ、マルチ・コア・プロセッサ、コプロセッサ、メモリ・ユニット、チップ・セット、コントローラ、周辺機器、インターフェイス、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入力/出力(I/O)コンポーネント、電源などの様々な共通のコンピューティング要素を含む。しかしながら、実施形態は、コンピューティング・アーキテクチャ1300による実装に限定されない。
【0126】
図13に示すように、コンピューティング・アーキテクチャ100は、プロセッサ1312、システム・メモリ1304、およびシステム・バス1306を含む。プロセッサ1312は、様々な市販のプロセッサのいずれであってもよい。
【0127】
システム・バス1306は、プロセッサ1312へのシステム・メモリ1304を含むがこれに限定されないシステムコンポーネントのためのインターフェイスを提供する。システム・バス1306は、様々な市販のバス・アーキテクチャのいずれかを使用して、メモリ・バス(メモリ・コントローラの有無にかかわらず)、周辺バス、およびローカル・バスにさらに相互接続できるいくつかのタイプのバス構造のいずれであってもよい。インターフェイス・アダプタは、スロット・アーキテクチャを介してシステム・バス1306に接続できる。スロット・アーキテクチャの例には、これらに限定されることなく、高速グラフィック・ポート(AGP)、カードバス、(拡張)業界標準アーキテクチャ((E)ISA)、マイクロ・チャネル・アーキテクチャ(MCA)、NuBus、ペリフェラル・コンポーネント・インターコネクト(拡張)(PCI(X))、PCI Express、パーソナル・コンピュータ・メモリカード国際協会(PCMCIA)などを含み得る。
【0128】
コンピューティング・アーキテクチャには、さまざまな製品が含まれたり、実装されたりする場合がある。製品には、ロジックを保存するためのコンピュータ可読記憶媒体が含まれる場合がある。コンピュータ読み取り可能な記憶媒体の例には、揮発性メモリまたは不揮発性メモリ、取り外し可能または取り外し不可能なメモリ、消去可能または消去不可能なメモリ、書き込み可能または再書き込み可能メモリなどを含み得る。ロジックの例には、ソースコード、コンパイルされたコード、解釈されたコード、実行可能コード、静的コード、動的コード、オブジェクト指向コード、ビジュアルコードなどの任意の適切なタイプのコードを使用して実装される実行可能なコンピュータ・プログラム命令が含まれ得る。実施形態はまた、非一時的なコンピュータ可読媒体内または上に含まれる命令として少なくとも部分的に実装されてもよく、この命令は、本明細書に記載される動作の実行を可能にするために、1つまたは複数のプロセッサによって読み取られて実行され得る。
【0129】
システム・メモリ1304は、読み取り専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、ダイナミックRAM(DRAM)、ダブル・データ・レートDRAM(DDRAM)、同期DRAM(SDRAM)、スタティックRAM(SRAM)、プログラマブルROM(PROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュ・メモリ、ポリマー・メモリなど強誘電体ポリマー・メモリ、オボニック・メモリ、相変化メモリまたは強誘電体メモリ、シリコン酸化物窒化物酸化物シリコン(SONOS)メモリ、磁気カードまたは光カード、独立ディスク冗長アレイ(RAID)ドライブなどのデバイスのアレイ、ソリッド・ステート・メモリ・デバイス(USBメモリ、ソリッド・ステート・ドライブ(SSD))、および情報の保存に適したその他の種類の記憶媒体などを含み得る。
図13に示される実施形態では、システム・メモリ1304は、不揮発性メモリ1308および/または揮発性メモリ1310を含むことができる。基本入出力システム(BIOS)は不揮発性メモリ1308に保存できる。
【0130】
コンピュータ1302は、内部(または外部)ハードディスク・ドライブ1330、リムーバブルディスクに読み書きするための磁気ディスク・ドライブ1316を含む、1つまたは複数の低速メモリ・ユニットの形態の様々なタイプのコンピュータ可読記憶媒体、磁気ディスク1320、およびリムーバブル光ディスク1332(たとえば、CDーROMまたはDVD)に読み書きするための光ディスク・ドライブ1328を含み得る。ハードディスク・ドライブ1330、磁気ディスク・ドライブ1316および光ディスク・ドライブ1328は、それぞれHDDインターフェイス1314、FDDインターフェイス1318および光ディスク・ドライブ・インターフェイス1334によってシステム・バス1308に接続できる。外部ドライブ実装用のHDDインターフェイス1314は、ユニバーサルシリアルバス(USB)およびIEEE1394インターフェイス技術の少なくとも一方または両方を含むことができる。
【0131】
ドライブおよび関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令などの揮発性および/または不揮発性ストレージを提供する。たとえば、オペレーティング・システム1322、1つまたは複数のアプリケーション1342、他のプログラム・モジュール1324、およびプログラム・データ1326を含む、多数のプログラム・モジュールをドライブおよび不揮発性メモリ1308および揮発性メモリ1310に格納できる。一実施形態では、1つまたは複数のアプリケーション1342、他のプログラム・モジュール1324、およびプログラム・データ1326は、たとえば、本明細書で説明するシステムのさまざまなアプリケーションおよび/またはコンポーネントを含むことができる。
【0132】
ユーザは、1つまたは複数の有線/無線入力デバイス、たとえば、キーボード1350およびマウス1352などのポインティングデバイスを介して、コンピュータ1302にコマンドおよび情報を入力できる。他の入力デバイスには、マイク、赤外線(IR)リモコン、無線周波数(RF)リモコン、ゲームパッド、スタイラスペン、カード・リーダ、ドングル、指紋リーダ、手袋、グラフィックタブレット、ジョイ・スティック、キーボード、網膜リーダ、タッチスクリーン(たとえば、容量性、抵抗性など)、トラックボール、トラックパッド、センサ、スタイラスなどを含み得る。これらおよび他の入力デバイスは、システム・バス1306に結合された入力デバイス・インターフェイス1336を介してプロセッサ1312に接続されることが多いが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインターフェイスなどの他のインターフェイスによって接続することもできる。
【0133】
モニタ1344または他のタイプのディスプレイ・デバイスも、ビデオ・アダプタ1346などのインターフェイスを介してシステム・バス1306に接続される。モニタ1344は、コンピュータ1302の内部にあっても外部にあってもよい。モニタ1344に加えて、コンピュータは通常、スピーカ、プリンタなどの他の周辺出力デバイスを含む。
【0134】
コンピュータ1302は、リモート・コンピュータ(単数または複数)1348などの1つまたは複数のリモート・コンピュータへの有線および/または無線通信を介した論理接続を使用して、ネットワーク環境で動作できる。リモート・コンピュータ1348は、ワークステーション、サーバ・コンピュータ、ルーター、パーソナル・コンピュータ、ポータブルコンピュータ、マイクロ・プロセッサ・ベースのエンターテイメント機器、ピア・デバイス、または他の一般的なネットワーク・ノードであり得るものであり、通常、説明される多くのまたはすべての要素を含むが、ただし、簡潔にするために、メモリおよび/または記憶デバイス1358のみが示されている。図示された論理接続には、ローカル・エリア・ネットワーク1356および/またはより大きなネットワーク、たとえばワイド・エリア・ネットワーク1354への有線/無線接続が含まれる。このようなLANおよびWANネットワーキング環境はオフィスや企業では一般的であり、イントラネットなどの企業規模のコンピュータネットワークを容易にし、そのすべてがインターネットなどのグローバル通信ネットワークに接続し得る。
【0135】
ローカル・エリア・ネットワーク1356ネットワーキング環境で使用される場合、コンピュータ1302は、有線および/または無線通信ネットワーク・インターフェイスまたはネットワーク・アダプタ1338を介してローカル・エリア・ネットワーク1356に接続される。ネットワーク・アダプタ1338は、ローカル・エリア・ネットワーク1358への有線および/または無線通信を容易にでき、ローカル・エリア・ネットワーク1356は、ネットワーク・アダプタ1338の無線機能と通信するためにその上に配置された無線アクセス・ポイントも含み得る。
【0136】
ワイド・エリア・ネットワーク1354ネットワーキング環境で使用される場合、コンピュータ1302はモデム1340を含むことができ、またはワイド・エリア・ネットワーク1354上の通信サーバに接続されるか、またはインターネットのやり方などのワイド・エリア・ネットワーク1354を介して通信を確立するための他の手段を有する。モデム1340は、内部または外部、有線および/または無線デバイスであり得るものであり、入力デバイス・インターフェイス1336を介してシステム・バス1306に接続する。ネットワーク環境では、コンピュータ1302に関連して示されたプログラム・モジュール、またはその一部を、リモートメモリおよび/または記憶デバイス1358に記憶できる。図示のネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段を使用できることが理解されるであろう。
【0137】
コンピュータ1302は、無線通信(たとえば、IEEE802.11無線変調技術)において動作可能に配置される無線デバイスなど、IEEE802規格ファミリーを使用して有線および無線のデバイスまたはエンティティと通信するように動作可能である。これには、少なくともWiーFi(登録商標)(またはWireless Fidelity)、WiMax(登録商標)、Bluetooth(登録商標)ワイヤレス・テクノロジなどが含まれる。したがって、通信は、従来のネットワークのようにあらかじめ定義された構造であることもあれば、少なくとも2つのデバイス間の単なるアドホック通信であることもある。Wi-Fiネットワークは、IEEE802.11(a、b、g、nなど)と呼ばれる無線技術を使用し、安全で信頼性の高い高速ワイヤレス接続を提供する。Wi-Fiネットワークは、コンピュータ同士、インターネット、有線ネットワーク(IEEE802.3関連のメディアと機能を使用)に接続するために使用できる。
【0138】
本明細書で説明する参照実施形態で先に説明したようなデバイスの様々な要素は、様々なハードウェア要素、ソフトウェア要素、またはその両方の組み合わせを含むことができる。ハードウェア要素の例としては、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ、回路要素(たとえば、トランジスタ、抵抗器、コンデンサ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラマブル・ロジック・デバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールド・プログラマブル・ゲートアレイ(FPGA)、メモリ・ユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップ・セットなどを挙げることができる。ソフトウェア要素の例には、ソフトウェア・コンポーネント、プログラム、アプリケーション、コンピュータ・プログラム、アプリケーション・プログラム、システム・プログラム、ソフトウェア開発プログラム、マシン・プログラム、オペレーティング・システム・ソフトウェア、ミドルウェア、ファームウェア、ソフトウェア・モジュール、ルーチン、サブルーチン、機能、方法、手順、ソフトウェア・インタフェース、アプリケーション・プログラミング・インタフェース(API)、命令セット、コンピューティング・コード、コンピュータ・コード、コード・セグメント、コンピュータ・コード・セグメント、単語、値、記号、またはそれらの任意の組み合わせが含まれる。しかしながら、実施形態がハードウェア要素および/またはソフトウェア要素を使用して実装されるかどうかを決定することは、所与の実装に対して所望される計算速度、電力レベル、熱許容範囲、処理サイクル予算、入力データ速度、出力データ速度、メモリ・リソース、データバス速度、および他の設計または性能制約などの任意の数の要因に従って変化し得る。
【0139】
図14は、先に説明したような様々な実施形態を実施するのに適した例示的な通信アーキテクチャ1400を示すブロック図である。通信アーキテクチャ1400には、送信機、受信機、トランシーバ、無線機、ネットワーク・インターフェイス、ベースバンド・プロセッサ、アンテナ、増幅器、フィルタ、電源など、さまざまな一般的通信要素が含まれる。しかしながら、本実施形態は、通信アーキテクチャ1400による実装に限定されるものではなく、本明細書で議論されるシステムと一致し得る。
【0140】
図14に示すように、通信アーキテクチャ1400は、1つまたは複数のクライアント1402およびサーバ1404を含む。サーバ1404は、1つまたは複数のデバイスを実装できる。クライアント1402およびサーバ1404は、クッキーおよび/または関連するコンテキスト情報など、それぞれのクライアント1402およびサーバ1404にローカルな情報を格納するために採用され得る、1つまたは複数のそれぞれのクライアント・データ・ストア1406およびサーバ・データ・ストア1408に動作可能に接続される。
【0141】
クライアント1402とサーバ1404は、通信フレームワーク1410を用いて互いに情報を通信できる。通信フレームワーク1410は、任意の周知の通信技術およびプロトコルを実装できる。通信フレームワーク1410は、パケット交換ネットワーク(例:インターネットなどのパブリック・ネットワーク、企業内イントラネットなどのプライベート・ネットワークなど)、回線交換ネットワーク(例:公衆交換電話網)、またはパケット交換ネットワークと回線交換ネットワークとの組み合わせ(適切なゲートウェイとトランスレータ)として実装できる。
【0142】
通信フレームワーク1410は、通信ネットワークを受け入れ、通信し、通信ネットワークに接続するように配置された様々なネットワーク・インターフェイスを実装できる。ネットワーク・インターフェイスは、入出力(I/O)インターフェイスの特殊な形態とみなすことができる。ネットワーク・インターフェイスは、ダイレクトコネクト、イーサネット(たとえば、太い、細い、ツイストペア10/100/1000ベースTなど)、トークンリング、ワイヤレス・ネットワーク・インターフェイス、セルラー・ネットワーク・インターフェイス、IEEE802.11a-xネットワーク・インターフェイス、IEEE802.16ネットワーク・インターフェイス、IEEE802.20ネットワーク・インターフェイスなどを含むがこれらに限定されない接続プロトコルを採用できる。さらに、複数のネットワーク・インターフェイスを使用して、さまざまな種類の通信ネットワークに接続できる。たとえば、ブロードキャスト、マルチキャスト、ユニキャスト・ネットワークを介した通信を可能にするために、複数のネットワーク・インターフェイスを採用できる。処理要件がより大きな速度および容量を必要とする場合、クライアント1402およびサーバ1404が必要とする通信帯域幅をプール、負荷分散、およびその他の方法で増加させるために、分散ネットワーク・コントローラ・アーキテクチャを同様に採用できる。通信ネットワークは、直接相互接続、セキュリティで保護されたカスタム接続、プライベート・ネットワーク(たとえば、企業イントラネット)、パブリック・ネットワーク(たとえば、インターネット)、パーソナル・エリア・ネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネット上のノードとしてのオペレーティング・ミッション(OMNI)、ワイド・エリア・ネットワーク(WAN)、無線ネットワーク、セルラーネットワーク、および他の通信ネットワークを含むがこれらに限定されない、有線ネットワークおよび/または無線ネットワークのいずれか1つおよびその組み合わせであってよい。
【0143】
上述したデバイスの構成要素および機能は、ディスクリート回路、特定用途向け集積回路(ASIC)、論理ゲートおよび/またはシングルチップ・アーキテクチャの任意の組み合わせを使用して実装できる。さらに、本デバイスの機能は、マイクロコントローラ、プログラマブル・ロジック・アレイおよび/またはマイクロプロセッサ、または好適には前述の任意の組合せを用いて実装できる。本明細書では、ハードウェア、ファームウェア、および/またはソフトウェア要素を、集合的または個々に「論理」または「回路」と呼ぶ場合があることに留意されたい。
【国際調査報告】