(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-12
(54)【発明の名称】非接触カードによって生成されたユニフォーム・リソース・ロケーターのサーバー・サイド・リダイレクト
(51)【国際特許分類】
G06Q 20/34 20120101AFI20240705BHJP
G06F 21/33 20130101ALI20240705BHJP
【FI】
G06Q20/34 380
G06F21/33
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023578786
(86)(22)【出願日】2022-04-04
(85)【翻訳文提出日】2024-02-19
(86)【国際出願番号】 US2022023257
(87)【国際公開番号】W WO2022271252
(87)【国際公開日】2022-12-29
(32)【優先日】2021-06-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】519111877
【氏名又は名称】キャピタル・ワン・サービシーズ・リミテッド・ライアビリティ・カンパニー
【氏名又は名称原語表記】Capital One Services, LLC
(74)【代理人】
【識別番号】100145403
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100135703
【氏名又は名称】岡部 英隆
(74)【代理人】
【識別番号】100109139
【氏名又は名称】今井 孝弘
(72)【発明者】
【氏名】ルール,ジェフリー
(72)【発明者】
【氏名】オズボーン,ケビン
【テーマコード(参考)】
5L020
【Fターム(参考)】
5L020AA66
(57)【要約】
非接触カードによって生成されたユニフォーム・リソース・ロケーター(URL)のサーバー・サイド・リダイレクトのためのシステム、方法、装置、およびコンピュータ可読媒体。一態様では、サーバーは、クライアントから、ユニフォーム・リソース・ロケーター(URL)を含む第1のリクエストを受信し得るものであり、前記URLのパラメータは、暗号文と、非接触カードに関連付けられた口座の顧客識別子とを含む。前記サーバーは、前記暗号文を復号化し、口座の1つまたは複数の属性に基づいて、前記口座のコンテキストを決定し得る。前記サーバーは、前記暗号文の復号化および決定されたコンテキストに基づいて、複数のリダイレクトURLの中から第1のリダイレクトURLを選択し得る。前記サーバーは、前記リダイレクトURLを含む応答を前記クライアントに送信し得る。前記サーバーは、前記リダイレクトURLを含む第2のリクエストを前記クライアントから受信し得る。前記サーバーは、前記リダイレクトURLのリソースを含む応答を前記クライアントに送信し得る。
【選択図】
図3
【特許請求の範囲】
【請求項1】
クライアント・デバイスからサーバーによって、ユニフォーム・リソース・ロケーター(URL)を備える第1のハイパーテキスト転送プロトコル(HTTP)リクエストを受信するステップであって、前記URLの第1パラメータは非接触カードによって生成された暗号文を備え、前記URLの第2パラメータは前記非接触カードに関連する口座の顧客識別子を備えるステップと、
前記サーバーにより、前記暗号文を復号化するステップと、
前記サーバーにより、前記口座の1つまたは複数の属性に基づいて、前記口座のコンテキストを決定するステップと、
前記サーバーにより、前記暗号文の復号化と前記口座の決定されたコンテキストに基づいて、複数のリダイレクトURLの中から第1のリダイレクトURLを選択するステップと、
前記サーバーにより、前記クライアント・デバイスに、前記リダイレクトURLを構成するHTTPレスポンスを送信するステップと、
前記サーバーにより、前記クライアント・デバイスから、前記リダイレクトURLを構成する第2のHTTPリクエストを受信するステップと、
前記サーバーにより、前記クライアント・デバイスに、前記リダイレクトURLのリソースを構成する第2のHTTPレスポンスを送信するステップと、
を備える方法。
【請求項2】
機械学習(ML)モデルが、前記第1のHTTPリクエスト、前記URL、および前記口座のコンテキストを備える入力に基づいて、前記リダイレクトURLを選択し、前記MLモデルが、複数のリダイレクト操作および複数の口座の複数のコンテキストを記述するトレーニング・データに基づいて生成される、
請求項1に記載の方法。
【請求項3】
前記口座の1つまたは複数の属性は、
(i)前記非接触カードの支払状態であって、前記支払状態はアクティブな支払状態または非アクティブな支払状態のうちの1つを含み、
(ii)前記口座がアクティブであった時間、および
(iii)前記口座の取引履歴における前記非接触カードを使用した拒否された取引のうちの1つまたは複数を含む、
請求項1に記載の方法。
【請求項4】
前記第1のHTTPリクエストに基づいて、前記第1のHTTPリクエストが前記クライアント・デバイスのウェブ・ブラウザまたは前記クライアント・デバイスのアプリケーションのいずれによって生成されたかを、前記サーバーによって判断するステップをさらに備え、
前記ウェブ・ブラウザは、前記アプリケーションとは区別され、
前記サーバーは、前記リクエストが前記クライアント・デバイスまたは前記アプリケーションのいずれによって生成されたかに基づいて、前記リダイレクトURLを選択する、
請求項1に記載の方法。
【請求項5】
前記サーバーが、前記第1のHTTPリクエストが前記アプリケーションによって生成されたと判断し、
前記方法は、
前記アプリケーションが前記第1のHTTPリクエストを生成したという判断に基づいて、前記サーバーによって、前記口座のための認証トークンを生成するステップであって、前記サーバーは、前記リダイレクトURLの第1パラメータとして前記認証トークンを含むステップと、
前記サーバーにより、前記アプリケーションから前記認証トークンを受信するステップと、
前記サーバーにより、前記アプリケーションに、前記認証トークンを前記アプリケーションから受信したことに基づいて、前記口座の1つまたは複数の属性を送信するステップと、
をさらに備える、
請求項4記載の方法。
【請求項6】
前記サーバーによって、前記コンテキストおよび前記リダイレクトURLに基づいて、前記アプリケーションのページの識別子を判断するステップをさらに備え、
前記サーバーは、前記アプリケーションの前記ページの識別子を前記リダイレクトURLの第2パラメータとして含み、前記アプリケーションは、前記URLの第2パラメータに少なくとも部分的に基づいて前記アプリケーションのページを開く、
請求項5記載の方法。
【請求項7】
前記復号化するすステップは、
前記サーバーにより、前記非接触カードに関連するカウンター値をインクリメントするステップと、
前記サーバーによって、前記カウンター値とマスター・キーを暗号化し、多様化キーを生成するステップと、
前記多様化キーに基づき、前記サーバーにより、が前記暗号文を復号化するステップと、
を備える、
請求項1に記載の方法。
【請求項8】
コンピュータ読み取り可能なプログラム・コードを有する非一過性のコンピュータ読み取り可能な記憶媒体であって、コンピュータ読み取り可能なプログラム・コード実行可能ファイルは、プロセッサに、
サーバーにより、クライアント・デバイスからユニフォーム・リソース・ロケーター(URL)を備える第1のハイパーテキスト転送プロトコル(HTTP)リクエストを受信させることであって、前記URLの第1パラメータが非接触カードによって生成された暗号文を備え、前記URLの第2パラメータが前記非接触カードに関連付けられた口座の顧客識別子を備えることと、
前記サーバーにより、前記暗号文を復号化させることと、
前記サーバーにより、前記口座の1つまたは複数の属性に基づいて、前記口座のコンテキストを決定することと、
前記サーバーにより、前記暗号文の復号化と前記口座の決定されたコンテキストに基づいて、複数のリダイレクトURLの中から第1のリダイレクトURLを選択することと、
前記サーバーにより、クライアント・デバイスに、リダイレクトURLを構成するHTTPレスポンスを送信することと、
前記サーバーにより、前記クライアント・デバイスから、前記リダイレクトURLを備える第2のHTTPリクエストを受信することと、
前記サーバーにより、前記クライアント・デバイスに、前記リダイレクトURLのリソースを構成する第2のHTTPレスポンスを送信することと、
を実行させる、
非一過性のコンピュータ読み取り可能な記憶媒体。
【請求項9】
機械学習(ML)モデルが、前記第1のHTTPリクエスト、前記URL、および前記口座のコンテキストを備える入力に基づいてリダイレクトURLを選択し、前記MLモデルが、複数のリダイレクト操作および複数の口座の複数のコンテキストを記述するトレーニング・データに基づいて生成される、
請求項8に記載の媒体。
【請求項10】
前記口座の1つまたは複数の属性が、
(i)非接触カードの支払状態であって、前記支払状態がアクティブな支払状態または非アクティブな支払状態のうちの1つを含む、支払状態、
(ii)前記口座がアクティブであった時間、および
(iii)前記口座の取引履歴における非接触カードを使用した拒否された取引、
のうちの1つまたは複数を含む、
請求項8に記載の媒体。
【請求項11】
前記コンピュータ可読プログラム・コード実行可能ファイルは、前記プロセッサに、
前記サーバーにより、前記第1のHTTPリクエストに基づいて、前記第1のHTTPリクエストが、前記クライアント・デバイスのウェブ・ブラウザによって生成されたか、前記クライアント・デバイスのアプリケーションによって生成されたかを判断させることであって、前記ウェブ・ブラウザは前記アプリケーションとは別であり、前記サーバーは、前記リクエストが前記クライアント・デバイスによって生成されたか、前記アプリケーションによって生成されたかに基づいて、前記リダイレクトURLを選択すること、
を実行させる、
請求項8に記載の媒体。
【請求項12】
前記コンピュータ可読プログラム・コード実行可能ファイルは、前記プロセッサに、
前記サーバーにより、前記アプリケーションが前記第1のHTTPリクエストを生成したという判断に基づいて、前記口座のための認証トークンを生成することであって、前記サーバーが、前記リダイレクトURLの第1パラメータとして前記認証トークンを含むことと、
前記サーバーにより、前記アプリケーションから前記認証トークンを受信することと、
前記サーバーにより、前記アプリケーションに、前記認証トークンの受信に基づいて、前記口座の1つまたは複数の属性を送信することと、
を実行させる、
請求項11に記載の媒体。
【請求項13】
前記コンピュータ可読プログラム・コード実行可能ファイルは、前記プロセッサに、
前記サーバーにより、前記コンテキストおよび前記リダイレクトURLに基づいて、前記アプリケーションのページの識別子を判断することであって、前記サーバーは前記アプリケーションのページの識別子を前記リダイレクトURLの第2パラメータとして含むことを、
実行させる、
請求項12に記載の媒体。
【請求項14】
コンピュータ可読プログラム・コード実行可能ファイルは、前記暗号文を復号化するために、前記プロセッサに、
前記サーバーにより、前記非接触カードに関連付けられたカウンター値をインクリメントすることと、
前記サーバーにより、前記カウンター値とマスター・キーを暗号化して多様化キーを生成することと、
前記サーバーにより、前記多様化キーに基づき前記暗号文を復号化することと、
を続行させる、
請求項8に記載の媒体。
【請求項15】
プロセッサと、
前記プロセッサによって実行されると、前記プロセッサに以下のことをさせる命令を保存するメモリと、を備え、
前記命令は、前記プロセッサに、
サーバーにより、クライアント・デバイスからユニフォーム・リソース・ロケーター(URL)を備える第1のハイパーテキスト転送プロトコル(HTTP)リクエストを受信することであって、前記URLの第1パラメータが非接触カードによって生成された暗号文を備え、前記URLの第2パラメータが前記非接触カードに関連付けられた口座の顧客識別子を備えることと、
前記サーバーにより、前記暗号文を復号化することと、
前記サーバーにより、前記口座の1つまたは複数の属性に基づいて、前記口座のコンテキストを決定することと、
前記サーバーにより、前記暗号文の復号化と前記口座の決定されたコンテキストに基づいて、複数のリダイレクトURLの中から第1のリダイレクトURLを選択することと、
前記サーバーにより、前記クライアント・デバイスに、前記リダイレクトURLを備えるHTTPレスポンスを送信することと、
前記サーバーにより、前記クライアント・デバイスから前記リダイレクトURLを備える第2のHTTPリクエストを受信することと、
前記サーバーにより、前記クライアント・デバイスに、前記リダイレクトURLのリソースを備える第2のHTTPレスポンスを送信することと、
を実行させる、
装置。
【請求項16】
前記プロセッサ上で実行される機械学習(ML)モデルが、前記第1のHTTPリクエスト、前記URL、および前記口座のコンテキストからなる入力に基づいて、前記リダイレクトURLを選択し、前記MLモデルが、複数のリダイレクト操作および複数の口座の複数のコンテキストを記述するトレーニング・データに基づいて生成される、
請求項15に記載の装置。
【請求項17】
前記口座の1つまたは複数の属性は、
(i)非接触カードの支払状態であって、支払状態はアクティブな支払状態または非アクティブな支払状態のうちの1つを含む支払状態、
(ii)前記口座がアクティブであった時間、および
(iii)前記口座の取引履歴における拒否された取引、
のうちの1つ以上を含む、
請求項15に記載の装置。
【請求項18】
前記メモリは、前記プロセッサによって実行されると、前記プロセッサに以下を行わせる命令を記憶するメモリであつて、
前記命令は、前記プロセッサに、
前記サーバーにより、前記第1のHTTPリクエストに基づいて、判断することと、
前記第1のHTTPリクエストが前記クライアント・デバイスのウェブ・ブラウザによって生成されたか、前記クライアント・デバイスのアプリケーションによって生成されたか、をリクエクストすることであって、前記ウェブ・ブラウザは前記アプリケーションとは区別され、前記サーバーは、前記リクエストが前記クライアント・デバイスによって生成されたかアプリケーションによって生成されたかに基づいて前記リダイレクトURLを選択することと、
を実行させる、
請求項15に記載の装置。
【請求項19】
前記メモリは、前記プロセッサによって実行されると、前記プロセッサに、以下を実行させる命令を記憶するメモリであって、
前記命令は、前記プロセッサに、
前記サーバーにより、前記アプリケーションが前記第1のHTTPを生成したという判断に基づいて、生成することと、
前記口座のための認証トークンをリクエストすることであって、前記サーバーは、前記リダイレクトURLの第1パラメータとして前記認証トークンを含むことと、
前記サーバーにより、前記アプリケーションから前記認証トークンを受信することと、
前記サーバーにより、前記アプリケーションから前記認証トークンを受信したことに基づいて、前記口座の1つまたは複数の属性を前記アプリケーションに送信することと、
を実行させる、
請求項18に記載の装置。
【請求項20】
前記メモリは、前記プロセッサによって実行されると、前記プロセッサに以下を行わせる命令を記憶するメモリであって、
前記命令は、前記プロセッサに、
前記サーバーにより、前記コンテキストおよび前記リダイレクトURLに基づいて、前記アプリケーションのページの識別子を判断することであって、前記サーバーは、前記アプリケーションのページの識別子を前記リダイレクトURLの第2パラメータとして含むこと、
を実行させる、
請求項19に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2021年6月25日に出願された「非接触カードによって生成されたユニフォーム・リソース・ロケーターのサーバー・サイド・リダイレクト」と題する米国特許出願シリアル番号17/359,220号の優先権を主張するものである。前述の出願の内容は、参照によりその全体が本明細書に援用される。
【背景技術】
【0002】
非接触カードは、ユニフォーム・リソース・ロケーター(URL)を生成および/または保存するロジックを含み得る。しかし、非接触カードは他のコンピューティング・デバイスに比べてリソースが限られ得る。そのため、ある非接触カードが生成および/または保存できる異なるURLの数には制限があり得る。さらに、非接触カードのロジックは定期的に更新する必要があり得る。非接触カードの数は数千、数百万、あるいはそれ以上となる可能性があるため、これは課題となり得る。
【発明の概要】
【0003】
非接触カードが生成したユニフォーム・リソース・ロケーター(URL)のサーバー・サイド・リダイレクト用のシステム、方法、装置、およびコンピュータ読み取り可能媒体。一態様において、サーバーは、クライアント・デバイスから、ユニフォーム・リソース・ロケーター(URL)からなる第1のハイパーテキスト転送プロトコル(HTTP)リクエストを受信でき、ここで、URLの第1パラメータは、非接触カードによって生成された暗号文を含み、URLの第2パラメータは、非接触カードに関連付けられた口座の顧客識別子を含む。サーバーは暗号文を復号化し、口座の1つ以上の属性に基づいて口座のコンテキストを決定できる。サーバーは、暗号文の復号化と口座の決定されたコンテキストに基づいて、複数のリダイレクトURLの中から第1のリダイレクトURLを選択できる。サーバーは、クライアント・デバイスに、リダイレクトURLを含むHTTPレスポンスを送信できる。サーバーは、クライアント・デバイスから、リダイレクトURLを含む第2のHTTPリクエストを受信できる。サーバーは、クライアント・デバイスに、リダイレクトURLのリソースを含むHTTPレスポンスを送信できる。
【0004】
特定の要素や行為に関する議論を容易に識別するため、参照番号の最上位桁または数字は、その要素が最初に登場する図番号を指す。
【図面の簡単な説明】
【0005】
【
図3】
図3は、一実施形態によるルーチン300を示す。
【
図4】
図4は、一実施形態によるルーチン400を示す。
【
図5】
図5は、一実施形態によるルーチン500を示す。
【
図6A】
図6Aは、一実施形態に準じた非接触カードを示している。
【
図6B】
図6Bは、一実施形態に準じた非接触カードを示している。
【
図7】
図7は、一実施形態によるデータ構造を示す。
【
図8】
図8は、一実施形態に準じたコンピュータ・アーキテクチャを示している。
【発明を実施するための形態】
【0006】
本明細書で開示する実施形態は、非接触カードが生成したURLの安全なサーバー・サイド・リダイレクトのための技術を提供する。一般的に、ユーザーは非接触カードをコンピューティング・デバイスにタップすることで、カードをコンピューティング・デバイスの無線通信範囲内に入れることができる。これに対し、非接触カードは、第1パラメータとして暗号文を含むユニフォーム・リソース・ロケーター(URL)を生成し、第2パラメータとして顧客識別子を生成できる。コンピューティング・デバイス102は、URLを受信することにより、コンピューティング・デバイスにアプリケーションを開かせることができる。アプリケーションは、処理のためにURLを認証サーバーに送信できる。サーバーは暗号文の復号化を試み得る。サーバーが暗号文を復号化できた場合、サーバーは、カードに関連付けられた口座のコンテキストに基づいてリダイレクトURLを決定できる。コンテキストは、カードに関連付けられた口座の1つ以上の属性に少なくとも部分的に基づいて決定されることがある。サーバーは、URLで指定された顧客IDに基づいて、1つ以上の属性を決定できる。サーバーは、リダイレクトURLをコンピューティング・デバイスに送信でき、これにより、アプリケーションは、リダイレクトURLで指定されたリソースを要求し、ロードする。
【0007】
いくつかの実施形態では、機械学習(ML)モデルを使用して、リダイレクトURLを選択し、および/または口座のコンテキストを決定できる。一般的に、MLモデルはトレーニング・データをベースに訓練されることがある。トレーニング・データは、異なる口座コンテキストおよび/または口座属性に基づいて、複数の非接触カード104によって生成され、受信されたURLに対して選択されたリダイレクトURLを記述し得る。そうすることで、機械学習を使わずにリダイレクトURLを選ぶよりも、リダイレクトURLを選ぶ精度を向上させ得る。
【0008】
有利なことに、本明細書に開示された実施形態は、非接触カードによって生成されたURLの安全なサーバー・サイド・リダイレクトを提供する。非接触カードが生成した暗号文を活用することで、本開示の実施形態は、詐欺行為のリスクを最小限に抑えながら、ユーザーの身元を安全に確認できる。さらに、このようにすることで、リダイレクト操作は、ユーザーがサーバーとの暗号文検証を容易にする非接触カードにアクセスできる場合にのみ実行されるようになる。さらに、サーバー・サイド・リダイレクトのロジックを提供することで、非接触カードに必要なリソースを少なくし、非接触カードのパフォーマンスを向上させ、コストを削減する。たとえば、非接触カードは、URLと利用可能なウェブ・リソースとの間に一対一の関係を持たせるのに十分なストレージおよび/または処理リソースを持っていない可能性がある。しかし、非接触カードが、コンテキストに基づいてサーバーがリダイレクトできる限られた数のURLを生成するように構成することによって、非接触カードは、URLと利用可能なウェブ・リソースとの間の一対多の関係をサポートできる。さらに、そうすることで、たとえば、新しいウェブ・リソースが追加、削除、および/または変更されたときに、新しいURLをサポートするために非接触カードのロジックを定期的に更新する必要性をなくすことができる。
【0009】
本明細書で使用される表記および命名法を一般的に参照しながら、以下に続く詳細な説明の1つまたは複数の部分を、コンピュータまたはコンピュータのネットワーク上で実行されるプログラム手順の観点から示すことができる。このような手順記述や表現は、当業者が自分の仕事の物質を他の当業者に最も効果的に伝えるために使用するものである。手続きとは、ここでは、そして一般的には、望ましい結果を導く自己矛盾のない一連の操作であると考えられている。これらの操作は、物理量の物理的操作を必要とするものである。必ずしもそうとは限らないが、通常、これらの量は、記憶、転送、結合、比較、その他の操作が可能な電気信号、磁気信号、光信号の形をとる。これらの信号をビット、値、要素、記号、文字、用語、数字などと呼ぶのは、主に一般的な用法から便利な場合がある。しかし、これらの用語や類似の用語はすべて、適切な物理量に関連づけられるべきものであり、それらの物理量に適用される便宜的なラベルに過ぎないことに注意すべきである。
【0010】
さらに、これらの操作は、一般的に人間の操作者が行う精神的な操作に関連する、加算や比較などの用語で呼ばれることが多い。しかしながら、1つまたは複数の実施形態の一部を形成する本明細書に記載された操作のいずれにおいても、人間の操作者のそのような能力は必要ではなく、ほとんどの場合において望ましいものではない。むしろ、これらの操作は機械操作である。様々な実施形態の動作を実行するための有用な機械には、本明細書の教示に従って記述された内部に格納されたコンピュータプログラムによって選択的に起動または構成されるデジタル・コンピュータが含まれ、および/または、必要な目的のために特別に構成された装置またはデジタル・コンピュータが含まれる。様々な実施形態はまた、これらの操作を実行するための装置またはシステムに関する。これらの装置は、必要な目的のために特別に作られることもある。これらの様々な機械に必要な構造は、与えられた説明から明らかだろう。
【0011】
次に図面を参照するが、ここでは全体を通して同様の参照数字は同様の要素を指すために使用される。以下の説明では、十分な理解を得るために、説明のために多数の具体的な詳細を示している。しかし、これらの具体的な詳細がなくても、新規の実施形態を実施できることは明らかであろう。他の例では、その説明を容易にするために、周知の構造および装置をブロック図の形で示している。その意図は、特許請求の範囲内のすべての変更、同等物、代替物をカバーすることである。
【0012】
図1Aは、開示された実施形態と一致する、システムとも呼ばれる例示的なコンピューティング・アーキテクチャ100を示す。
図1A~1Eに示すコンピューティング・アーキテクチャ100は、あるトポロジーにおいて限られた数の要素を有するが、コンピューティング・アーキテクチャ100は、所与の実施に対して所望されるように、代替のトポロジーにおいてより多くのまたはより少ない要素を含み得ることが理解され得る。
【0013】
コンピューティング・アーキテクチャ100は、1つまたは複数のコンピューティング・デバイス102、1つまたは複数のサーバー106、および1つまたは複数の非接触カード104から構成される。非接触カード104は、クレジット・カード、デビット・カード、ATMカード、ギフト・カード、支払いカード、スマート・カードなど、あらゆる種類のカードの代表である。非接触カード104は、1つまたは複数の通信インタフェース122(本明細書では、「カード・リーダー」、「ワイヤレス・カード・リーダー」、および/または「ワイヤレス通信インタフェース」とも呼ばれる)と、NFC、EMV規格、またはワイヤレス通信における他の短距離プロトコルを介して通信するように構成された、無線周波数識別(RFID)チップなどの1つまたは複数の通信インタフェース122を備え得る。本明細書では通信プロトコルの一例としてNFCが使用されるが、本開示は、EMV規格、Bluetooth、および/またはWi-Fiなどの他のタイプの無線通信にも同様に適用可能である。
【0014】
コンピューティング・デバイス102は、スマートフォン、タブレット・コンピュータ、ウェアラブル・デバイス、ラップトップ、ポータブル・ゲーム・デバイス、仮想化コンピューティング・システム、加盟店端末、POSシステム、サーバー、デスクトップ・コンピュータなど、任意の数およびタイプのコンピューティング・デバイスを代表する。コンピューティング・デバイス102の例としてモバイル・デバイスを使用できるが、本開示を限定するものと考えるべきではない。サーバー106は、サーバー、ワークステーション、計算クラスタ、クラウド・コンピューティング・プラットフォーム、仮想化コンピューティング・システムなど、任意のタイプのコンピューティング・デバイスを代表する。明確にするために描かれていないが、コンピューティング・デバイス102、非接触カード104、およびサーバー106はそれぞれ、プログラム、コード、および/または命令を実行するための1つまたは複数のプロセッサ回路を含む。
【0015】
図示されているように、非接触カード104のメモリ108は、アプレット110、カウンター112、マスター・キー114、多様化キー116、固有の顧客識別子(ID)118、および1つまたは複数のURL120を含む。アプレット110は、本明細書で説明する動作を実行するように構成された実行可能コードである。カウンター112、マスター・キー114、多様化キー116、顧客ID118は、以下でさらに詳しく説明するように、システム100のセキュリティを提供するために使用される。
【0016】
図示されているように、コンピューティング・デバイス102のメモリ132には、オペレーティング・システム134のインスタンスが含まれている。オペレーティング・システム例としては、Android(登録商標)OS、iOS(登録商標)、macOS(登録商標)、Linux(登録商標)、Windows(登録商標)オペレーティング・システムがある。図示されているように、オペレーティング・システム134には口座アプリケーション136とウェブ・ブラウザ138が含まれている。口座アプリケーション136では、支払カードの有効化、口座残高の閲覧、商品の購入、支払処理など、口座に関する様々な操作をユーザーが行うことができる。いくつかの実施形態では、ユーザーは、口座アプリケーション136の特定の機能にアクセスするために、認証クレデンシャルを使用して認証できる。たとえば、認証資格情報には、ユーザー名(またはログイン)およびパスワード、生体認証資格情報(指紋、Face IDなど)などが含まれる。ウェブ・ブラウザ138は、コンピューティング・デバイス102がネットワーク156を介して(たとえば、インターネットを介して)情報にアクセスできるようにするアプリケーションである。たとえば、ウェブ・ブラウザ138を使用して、ユーザーは、サーバー106のウェブ・サーバー・データベース146内の1つまたは複数のリソースにアクセスできる。リソースは、非接触カード104の活性化、口座残高の閲覧、アイテムの購入、支払いの処理、新しく活性化された非接触カード104のためのオンボード体験などのためのページを含むことができる。口座アプリケーション136と同様に、ユーザーは、そのようなウェブページにアクセスする前に、認証クレデンシャルを使用して認証できる。
【0017】
図示のように、サーバー106のメモリ124は、認証アプリケーション142、機械学習(ML)モデル150、ウェブ・サーバー144を含む。サーバー106の別個の構成要素として描かれているが、いくつかの実施形態では、認証アプリケーション142、MLモデル150、および/またはウェブ・サーバー144は、単一の構成要素に統合されてもよい。さらに、認証アプリケーション142、MLモデル150、および/または認証アプリケーション142は、ハードウェア、ソフトウェア、および/またはハードウェアとソフトウェアの組み合わせで実装できる。メモリ124はさらに、口座データベース126、ウェブ・サーバー・データベース146、トレーニング・データ152のデータストアを含む。口座データベース126は、一般に、口座保持者(たとえば、1人または複数のユーザー)、口座保持者の1つまたは複数の口座、および口座の1つ以上の非接触カード104に関連する情報を含む。
【0018】
いくつかの実施形態では、ユーザーは、ウェブ・サーバー・データベース146において、操作を実行し、および/またはリソースにアクセスする必要があるかもしれない。たとえば、ユーザーは、非接触カード104を支払い処理に使用できるように、非接触カード104を非アクティブな支払状態からアクティブな支払状態にアクティブ化する必要があるかもしれない。別の例として、ユーザーは、たとえば、口座アプリケーション136を介して自分の口座にアクセスできないとき、非接触カード104を使用した購入が拒否されたときなど、カスタマー・サポートを必要とする場合がある。多くの場合、ウェブ・サーバー・データベース146の多くのリソースが、ユーザーが要求された操作を実行するのを支援し、および/または支援を受けることができる。しかし、ウェブ・サーバー・データベース146には任意の数のリソースが存在する可能性があるため、非接触カード104は、ウェブ・サーバー・データベース146の各リソースのURL120を格納するのに十分なリソースを有していない可能性がある。別の例として、非接触カード104は、ウェブ・サーバー・データベース146のリソースの最新の状態を反映するように更新されていない可能性がある。有利には、システム100は、非接触カード104によって生成されたURL120の安全なサーバー・サイド・リダイレクトを実装する。
【0019】
図1Aに描かれている実施形態では、ユーザーは、非接触カード104をコンピューティング・デバイス102にタップする(または、そうでなければ、非接触カード104をデバイス102の通信インタフェース122の通信範囲内に入れる)ことができる。次に、非接触カード104のアプレット110は、サーバー106、認証アプリケーション142、ウェブ・サーバー144、および/またはウェブ・サーバー・データベース146のリソースなどのリソースに向けられたURL120を生成できる。いくつかの実施形態では、URL120は、ウェブ・サーバー・データベース146内の特定のリソースを決定するためにサーバー106によって解釈され得る汎用URLである。別の言い方をすれば、サーバー106は、汎用URL120のリダイレクトURLを特定し、コンピューティング・デバイス102がリダイレクトURLのリソースにアクセスできるように、リダイレクトURLをコンピューティング・デバイス102に返す必要があるかもしれない。したがって、そのような実施形態では、URL120は、サーバー106のリダイレクト・コンポーネント、たとえば、本明細書で説明するようなリダイレクトを処理するページおよび/またはアプリケーションに向けられることがある。いくつかの実施形態では、アプレット110は1つ以上の規則に従ってURL120を構築する。いくつかの実施形態では、非接触カード104は複数の汎用URL120を記憶し、アプレット103は1つ以上の規則に基づいて複数のURL120からURL120を選択する。いくつかの実施形態では、アプレット110は、URL120を選択し、暗号文130などの動的データをURLの1つ以上のパラメータとして追加することによって、URL120を生成し得る。
【0020】
暗号文130は、非接触カード104の顧客ID118に基づき得る。暗号文130は、任意の適切な暗号技術に基づいて生成され得る。いくつかの実施形態では、アプレット110は、データ・パッケージの一部として、URL120、暗号文130、および暗号化されていない識別子(たとえば、顧客ID118、非接触カード104の識別子、および/または他の任意の一意の識別子)を含み得る。少なくとも1つの実施形態では、データ・パッケージはNDEFファイルである。
【0021】
前述のとおり、コンピューティング・アーキテクチャ100は、データを保護するためにキーの多様化を実施するように構成されており、本明細書では、これをキーの多様化技法と呼ぶことがある。一般に、サーバー106(または他のコンピューティング・デバイス)および非接触カード104は、同じマスター・キー114(マスター対称キーとも呼ばれる)を備え得る。より具体的には、各非接触カード104は、サーバー106に対応するペアを持つ個別のマスター・キー114でプログラムされている。たとえばでは、非接触カード104が製造されるとき、固有のマスター・キー114が非接触カード104のメモリ108にプログラムされ得る。同様に、固有のマスター・キー114は、サーバー106の口座データベース126内の非接触カード104に関連する顧客の記録に格納され得る(および/または、ハードウェア・セキュリティ・モジュール(HSM)128などの別の安全な場所に格納される)。マスター・キー114は、非接触カード104とサーバー106以外のすべての関係者から秘密にでき、それによってシステム100のセキュリティが強化される。いくつかの実施形態では、非接触カード104のアプレット110は、マスター・キー114およびデータを入力として暗号アルゴリズムを使用して、データ(たとえば、顧客ID118)を暗号化および/または復号化し得る。たとえば、顧客ID118をマスター・キー114で暗号化することで、暗号文130を生成し得る。同様に、サーバー106は、対応するマスター・キー114を使用して、非接触カード104に関連するデータを暗号化および/または復号化し得る。
【0022】
他の実施形態では、非接触カード104とサーバー106のマスター・キー114をカウンター112と併用し、キーの多様化を用いてセキュリティを強化できる。カウンター112は、非接触カード104とサーバー106の間で同期される値を備える。カウンター112は、非接触カード104とサーバー106(および/または非接触カード104とコンピューティング・デバイス102)の間でデータが交換されるたびに変化する番号を備え得る。データを送信する(たとえば、サーバー106および/またはデバイス102に)準備をする際、非接触カード104のアプレット110はカウンター112をインクリメントし得る。非接触カード104のアプレット110は、マスター・キー114とカウンター112を入力として暗号化アルゴリズムに提供し、多様化キー116を出力として生成し得る。暗号化アルゴリズムには、暗号化アルゴリズム、ハッシュ・ベース・メッセージ認証コード(HMAC)アルゴリズム、暗号ベース・メッセージ認証コード(CMAC)アルゴリズムなどが含まれ得る。暗号化アルゴリズムの非限定的な例としては、3DESやAES107などの対称暗号化アルゴリズム、HMAC-SHA-256などの対称HMACアルゴリズム、AES-CMACなどの対称CMACアルゴリズムを含み得る。主要な多様化技術の例は、2018年11月29日に出願された米国特許出願16/205,119にさらに詳細に記載されている。前述の特許出願は、参照によりその全体が本明細書に援用される。
【0023】
キーの多様化の例を続けると、アプレット110は、次に、多様化キー116とデータを暗号化アルゴリズムへの入力として使用して、データ(たとえば、顧客ID118および/または任意の他のデータ)を暗号化し得る。たとえば、顧客ID118を多様化キー116で暗号化することで、暗号化された顧客ID(たとたとえば、暗号文130)を得ることができる。いくつかの実施形態では、暗号文130はURL120のパラメータとして含まれる。他の実施形態では、暗号文130はURL120のパラメータではなく、NDEFファイルのようなデータ・パッケージでURL120と共に送信される。その後、認証アプリケーション142は、コンピューティング・デバイス102の通信インタフェース122を介して、URL120および暗号文130を含むデータ・パッケージを読み取り得る。
【0024】
前述のように、暗号文130および顧客ID118は、URL120のパラメータであり得る。たとえば、URL120は「http://www.example.com/redirect?param=ABC123&custID=123」であってもよい。このような例では、暗号文130はパラメータ「ABC123」に対応し、顧客ID118はパラメータ「custID」に対応し得る。オペレーティング・システム134が受信すると、オペレーティング・システム134はURL120を処理するためのアプリケーションを開き得る。いくつかの実施形態では、URL120は、口座アプリケーション136に登録されることがあり、これにより、オペレーティング・システム134は、口座アプリケーション136を起動し、口座アプリケーション136に入力としてURL120を提供する。しかし、他の例では、オペレーティング・システム134はウェブ・ブラウザ138を起動し、ウェブ・ブラウザ138に入力としてURL120を提供し得る。オペレーティング・システム134によって起動されたエンティティにかかわらず、口座アプリケーション136および/またはウェブ・ブラウザ138は、URL120を含むハイパーテキスト転送プロトコル(HTTP)要求を生成し得る。分かりやすくするために、
図1A~1Eの実施形態は、口座アプリケーション136を参照例として用いて説明されている。しかしながら、実施形態はウェブ・ブラウザ138にも同様に適用可能であり、口座アプリケーション136の使用は本開示を限定するものと考えられるべきではない。
【0025】
図1Bは、口座アプリケーション136が、暗号文130と暗号化されていない顧客ID118とからなるHTTPリクエスト140をサーバー106に送信する実施形態を示す。ウェブ・サーバー144は通常、HTTPリクエスト140を受信し、検証のために暗号文130を認証アプリケーション142に提供し得る。たとえば、認証アプリケーション142は、サーバー106が保管するマスター・キー114のコピーを使用して、暗号文130の復号化を試み得る。いくつかの実施形態では、認証アプリケーション142は、口座アプリケーション136からサーバー106に提供された暗号化されていない顧客ID118(または他の識別子)を使用して、マスター・キー114およびカウンター112を識別し得る。いくつかの例では、認証アプリケーション142は、マスター・キー114およびカウンター112を暗号アルゴリズムへの入力として提供でき、暗号アルゴリズムは多様化キー116を出力として生成する。その結果、多様化キー116は非接触カード104の多様化キー116に対応し、暗号文130の復号化に使用される可能性がある。
【0026】
使用される復号化技法に関係なく、認証アプリケーション142は暗号文130の復号化に成功し得るものであり、それにより、リクエスト140内の暗号文130を検証または認証する(たとえば、暗号文130を復号化することにより生成される顧客ID118を、口座データベース126に格納されている既知の顧客IDと比較することにより、および/またはマスター・キー114および/または多様化キー116を使用した復号化が成功したことを示す表示に基づく)。キー114、116はメモリ124に格納されているように描かれているが、キーは、セキュア・エレメントやHSM128など、他の場所に格納され得る。このような実施形態では、セキュア・エレメントおよび/またはHSM128は、マスター・キー114および/または多様化キー116と暗号関数とを用いて、暗号文130を復号化し得る。同様に、セキュア・エレメントおよび/またはHSM128は、上述したように、マスター・キー114及びカウンター112に基づいて多様化キー116を生成し得る。
【0027】
復号化が成功した場合、認証アプリケーション142、ウェブ・サーバー144、および/またはMLモデル150は、非接触カード104に関連付けられた口座のコンテキストを決定し得る。口座のコンテキストは、口座の1つ以上の属性に基づき得る。1つまたは複数の属性は、口座名義人、口座、および/または口座データベース126内の非接触カード104に関する任意のメタデータを含み得る。属性の例としては、口座が開設されてからの時間、非接触カード104の支払状態、非接触カード104の年齢、口座の残高、非接触カード104の残高、口座および/または非接触カード104に関連する最近のイベントが挙げられるが、これらに限定されない。イベントには、辞退された取引、承認された取引、取引履歴、非接触カードの活性化、顧客への非接触カード104の郵送(活性化ではない)等、あらゆるタイプのイベントを含み得る。コンテキストはさらに、リクエスト140、たとえばリクエストを送信したアプリケーション、リクエストのメタデータなどの分析に基づいて決定され得る。たとえば、口座アプリケーション136がリクエスト140を生成する場合、口座アプリケーション136は、サーバー106がコンテキストを決定することを可能にするいくつかのメタデータを含み得る。メタデータは、非接触カード104がコンピューティング・デバイス102にタップされたときにコンピューティング・デバイス102に表示されていた口座アプリケーション136の現在のページを含み得る。実施形態はこのコンテキストで限定されるものではない。
【0028】
コンテキストに基づいて、URL120のサーバー・サイド・リダイレクトに対して、ウェブ・サーバー・データベース146からのリソースが選択される場合がある。たとえば、前述のように、URL120は、サーバー106のリダイレクトリソースに向けられた汎用URLであってもよい。コンテキストを決定することによって、ウェブ・サーバー・データベース146内の特定のリソースが特定され、特定されたリソースに向けられたリダイレクトURLがコンピューティング・デバイス102に返され得る。たとえば、ユーザーが非接触カード104をアクティベートできない場合、サーバー106は、ウェブ・サーバー・データベース146からカード・アクティベート・ウェブページを選択し、カード・アクティベート・ウェブページへのURLをコンピューティング・デバイス102に送信することを決定し得る。
【0029】
いくつかの実施形態では、MLモデル150は、コンテキストを決定し、および/またはリダイレクトのためにウェブ・サーバー・データベース146からリソースを選択し得る。一般的に、MLモデル150はあらゆるタイプのコンピューティングモデルを代表する。MLモデル150は、トレーニング・データ152に基づいてコンテキストを決定し、リダイレクションのためのリソースを選択するように訓練され得る。トレーニング・データ152には、MLモデル150を訓練するためのデータが含まれている。たとえば、トレーニング・データ152は、複数の口座、各口座の属性、各口座に関連付けられた1つまたは複数の非接触カード104の属性、口座のコンテキスト、および各口座に関連付けられたクライアント・デバイスからの要求の受信に基づいて口座に対して選択された1つまたは複数のリダイレクトURLを記述するデータを含み得るものであり、要求は、URL120のようなURL、たとえば、サーバー106による解釈およびリダイレクトを必要とする非接触カード104によって生成された汎用URLを指定する。リダイレクトには、口座のコンテキストの決定と、特定のリソースに向けられたリダイレクトURLの選択が含まれる。別の言い方をすれば、トレーニング・データ152は、複数のURL120、口座の1つまたは複数の属性、非接触カード104の属性、および/または口座および/または非接触カード104のコンテキストに基づいて選択される複数のリダイレクトURLを含む。いくつかの実施形態では、トレーニング・データ152は、一般に、口座(および/または非接触カード104)のライフ・サイクルにおいて、特定の口座関連の操作が発生する異なる時間を反映するデータを含む。したがって、トレーニングに基づいて、MLモデル150は、口座のコンテキストを正確に決定し、および/または、口座(および/または非接触カード104)のライフ・サイクルの段階に基づいて、ウェブ・サーバー・データベース146のリソースをリダイレクト操作のリソースとして正確に選択し得る。別の言い方をすれば、訓練されたMLモデル150は、顧客が非接触カード104をコンピューティング・デバイス102にタップするときに何をしようとしているかを予測し得る。学習されると、MLモデル150は、顧客が何をしようとしているかの予測に基づいて、非接触カード104が生成したURL120に対してリダイレクトURLを選択する。
【0030】
復号化に戻ると、認証アプリケーション142が暗号文130を復号化して期待される結果(たとえば、非接触カード104に関連する口座の顧客ID118)を得ることができない場合、認証アプリケーション142は暗号文130を検証しない。このような例では、認証アプリケーション142は、口座のコンテキストを決定すること、および/またはリダイレクトURLを選択することを控えることを決定する。認証アプリケーション142は、コンピューティング・デバイス102に復号化に失敗した旨の表示を送信し得る。
【0031】
図1Cは、暗号文130の復号化に成功し、口座のコンテキストを決定することに基づいて、認証アプリケーション142がリダイレクトURL158を選択し、コンピューティング・デバイス102に送信する実施形態を示す。たとえば、コンテキストがユーザーが非接触カード104を起動できないことを示す場合、リダイレクトURL158は、非接触カード104を起動しようとするユーザーを支援するために、ウェブ・サーバー・データベース146のヘルプ・ウェブページに誘導され得る。リダイレクトURL158はHTTPレスポンス(図示せず)に含まれ得る。一部の実施形態では、HTTPレスポンスは、ロケーション・ヘッダー。フィールドを持つステータス・コードを含み、リダイレクトURL158は、ロケーション・ヘッダー・フィールドの少なくとも一部として指定される。HTTPレスポンスは、ロケーション・ヘッダー・フィールドを含む任意の適切なHTTPステータス・コードを含み得る。ロケーション・ヘッダー・フィールドを含むHTTPステータス・コードの例には、HTTP301ステータス・コード、HTTP302ステータス・コード、HTTP303ステータス・コード、HTTP307ステータス・コード、HTTP308ステータス・コードなどが含まれるが、これらに限定されない。しかし、他の実施形態では、リダイレクトURL158は、異なるフォーマットおよび/またはプロトコルに従って送信される。いくつかの実施形態では、リダイレクトURL158は、認証トークンおよび/またはリダイレクトURL158の受信に応答して開かれる口座アプリケーション136のページの識別子などの1つまたは複数の追加パラメータを含む。
【0032】
前述のように、認証アプリケーション142は、リダイレクトURL158のパラメータとして含まれる認証トークンを生成し得る。認証トークンは、暗号文130の復号化に応じて生成され得る。いくつかの実施形態では、認証アプリケーション142は、非接触カード104に関連付けられた口座が時間閾値(たとえば、1ヶ月、3ヶ月など)を超える期間アクティブであったという判断に基づいて、認証トークンをさらに生成する。別の例として、認証アプリケーション142は、口座アプリケーション136および/またはウェブ・ブラウザ138から受信した、口座データベース126の口座に関連付けられた装置識別子と一致するコンピューティング・デバイス102の装置識別子に基づいて、認証トークンをさらに生成し得る。デバイス識別子は、コンピューティング・デバイス102のメディアアクセス制御(MAC)アドレス、一意の英数字文字列など、任意の一意の識別子である得る。別の言い方をすれば、デバイス識別子が口座データベース126の記憶された識別子と一致する場合、コンピューティング・デバイス102は「信頼された」デバイスである可能性があり、認証アプリケーション142は、コンピューティング・デバイス102が信頼されたデバイスであることに基づいて認証トークンを生成し得る。
【0033】
認証トークンは、一般的に、口座アプリケーション136が口座データベース126の非接触カード104に関連付けられた口座にログインすることを許可し得る。いくつかの実施形態では、認証トークンは、ハッシュ値および口座の1つ以上の属性を含む。たとえば、口座アプリケーション136は認証トークンを引き抜き得る。その後、口座アプリケーション136は、たとえば、トークンをローカルで検証し、および/または認証トークンをサーバー106に送信することによって、トークンを使用して口座にアクセスし得る。たとえば、サーバー106は、口座アプリケーション136から受信した認証トークンと、認証アプリケーション142によって生成された口座トークンとを比較し得る。比較の結果、一致した場合、サーバー106は、口座データベース126の口座の1つまたは複数の属性を口座アプリケーション136に送信し得るものであり、口座アプリケーション136は、1つまたは複数の属性を処理および/または他の方法でコンピューティング・デバイス102に表示し得る。
【0034】
図示されているように、認証アプリケーション142はさらに、コンピューティング・デバイス102に復号化結果148を送信し得る。復号化結果148は、一般に、暗号文130が復号化されたか否かを、たとえばフラグ、ビット、その他の適切な表示で反映する。
図1Cの例では、復号化結果148は、サーバー106が暗号文130を復号化したことを示す。このようにすることで、口座アプリケーション136は、リダイレクトURL158を追跡する前に、暗号文130が正常に復号化されたと判断でき、セキュリティが向上する。口座アプリケーション136、および/またはウェブ・ブラウザ138は、リダイレクトURL158、および/または復号化結果148を受け取り得る。少なくとも1つの実施形態では、口座アプリケーション136、および/またはウェブ・ブラウザ138は、たとえば、リダイレクトURL158からなる新たなリクエストを生成することにより、リダイレクトURL158を受信すると自動的に従う。
【0035】
図1Dは、口座アプリケーション136がリダイレクトURL158を構成するリクエスト154をサーバー106に送信する実施形態を示す。受信すると、ウェブ・サーバー144は、リダイレクトURL158に関連するウェブ・サーバー・データベース146のリソースを特定し得る。たとえば、ウェブ・サーバー・データベース146のリソースには、非接触カードを活性化するためのヘルプ・ページを含み得る。実施形態はこのコンテキストで限定されるものではない。リダイレクトURL158が認証トークン、および/またはページ識別子を含む場合、口座アプリケーション136は、口座認証の目的でトークンを抽出し、および/またはページ識別子に関連付けられた口座アプリケーション136のページを開き得る。いくつかの実施形態では、口座アプリケーション136は、口座データベース126の口座の1つまたは複数の属性を識別するために、認証トークンをデコードし得る。
【0036】
図1Eは、ウェブ・サーバー144がリダイレクトURL158に関連するリソース160を識別する実施形態を示す。その後、ウェブ・サーバー144は、リソース160をコンピューティング・デバイス102に送信し得る。リソース160はHTTPレスポンスの一部として送信され得る。図示されているように、口座アプリケーション136は次にリソース160にアクセスし、それによってコンピューティング・デバイス102のディスプレイ上にリソース160を表示し得る。前述のように、いくつかの実施形態では、ウェブ・ブラウザ138はリソース160を受信し、レンダリングし得る。
【0037】
有利なことに、システム100は、非接触カード104によって生成されたURL120のサーバー・サイド・リダイレクトを提供する。そうすることで、システム100の性能が向上する。たとえばは、URL120の生成および/または保存に必要な処理リソースおよび/またはメモリ・リソースの量を削減することによって、非接触カード104の性能を改善し得る。さらに、コンテキストに基づいてサーバー106によってリダイレクトされ得る限定された数のURL120を生成するように非接触カードを構成することによって、非接触カード104は、URLとウェブ・サーバー・データベース146内の利用可能なリソースとの間の一対多の関係をサポートし得る。さらに、このようにすることで、たとえば、新しいウェブ・リソースが追加、削除、および/または変更されたときに、新しいURLをサポートするために非接触カード104内のロジックを定期的に更新する必要性をなくし得る。同様に、非接触カードによるURL120に含まれる暗号文130を利用することにより、システム100は、不正行為のリスクを最小限に抑えながら、ユーザーの身元を安全に検証し得る。さらに、システム100は、サーバー106による検証のための有効な暗号文を生成する非接触カードにユーザーがアクセスできる場合にのみリダイレクト操作が実行されることを保証する。
【0038】
図2Aは、非接触カード104がコンピューティング・デバイス102に接続される実施形態を示す概略
図200aである。コンピューティング・デバイス102はオペレーティング・システム134の画面(たとえば、ホーム画面)を出力しているように示されているが、コンピューティング・デバイス102は一般にどのような状態であってもよい。たとえば102の場合、ユーザーは、非接触カード104をコンピューティング・デバイス102にタップするときに、口座アプリケーション136および/またはウェブ・ブラウザ138などの別のアプリケーションを使用し得る。
【0039】
述べたように、非接触カード104がコンピューティング・デバイス102にタップされると、アプレット110は暗号文130およびURL 120を生成し得る。いくつかの実施形態では、暗号文130はURL120のパラメータである。アプレット110は、URL120のパラメータとして、暗号化されていない顧客ID118、非接触カード104の識別子などの識別子をさらに含み得る。暗号文130および/または暗号化されていない識別子がURL120のパラメータであるか否かにかかわらず、暗号文130、暗号化されていない識別子、およびURL120は、コンピューティング・デバイス102によって読み取られるNDEFファイルなどのデータ・パッケージに含まれ得る。図示されているように、データ・パッケージの受信に応答して、オペレーティング・システム134は、URL120(またはその一部)が口座アプリケーション136および/またはウェブ・ブラウザ138に登録され得るため、アプリケーションを起動し得る。
【0040】
図2Bは、オペレーティング・システム134が非接触カード104からURL120を受信したことに応答して口座アプリケーション136が開設される実施形態を示す概略
図200bである。図示されているように、口座アプリケーション136は、URL120、暗号文130、および暗号化されていない顧客ID118をサーバー106に送信する。少なくとも1つの実施形態において、口座アプリケーション136は、URL120、暗号文130、および顧客ID118を、第1のHTTPリクエストの少なくとも一部としてサーバー106に送信する。認証アプリケーション142は、上記で詳しく説明したように、暗号文130の復号化を試みる。復号化が成功した場合、認証アプリケーション142は、顧客ID118に関連付けられた口座のコンテキストを決定し、ウェブ・サーバー・データベース146内のリソース160に向けられたリダイレクトURLを出力するよう、MLモデル150に指示し得る。その後、サーバー106は、リダイレクトURL158をコンピューティング・デバイス102に送信し得る。
【0041】
他の実施形態では、MLモデル150は、リソース160を出力してもよく、ウェブ・サーバー144は、たとえば、ウェブ・サーバー144によって記憶されたリソース(図示せず)に対するURLのマッピングに基づいて、リソース160に関連付けられたリダイレクトURLを決定する。別の実施形態では、MLモデル150は、「口座の有効化」、「トランザクションの拒否」などのコンテキストを出力し得る。次に、ウェブ・ブラウザ138は、たとえば、ウェブ・サーバー144によって記憶されたコンテキストとリソース(図示せず)とのマッピングに基づいて、コンテキストに関連付けられるウェブ・サーバー・データベース146内の1つまたは複数のリソース160を特定し得る。たとえば、複数のリソース160が、MLモデル150によって生成された「取引拒否」コンテキストに関連付けられ得る。このような例では、ウェブ・サーバー144は、複数のリソースのうちの1つを選択し、選択されたリソースに指示されたリダイレクトURL158をコンピューティング・デバイス102に返し得る。
【0042】
図2Cは、口座アプリケーション136がページ202を表示する実施形態を示す概略
図200cである。ページ202は、
図2Bを参照して上述したように、サーバー106から受信したリダイレクトURL158に関連するリソース160に対応し得る。一旦受信されると、口座アプリケーション136は、リダイレクトURL158を指定する新たな要求を生成し、その新たな要求をサーバー106に送信し得る。サーバー106は、リソース160、たとえばページ202で応答し得る。しかし、いくつかの実施形態では、口座アプリケーション136は、ページ202をローカルに保存し得る。このような実施形態では、口座アプリケーション136は、ページ202に対する新たな要求を生成する必要はない。その代わりに、リダイレクトURL158は、ページ202の識別子を含み得るものであり、口座アプリケーション136は、リダイレクトURL158内のページ202の識別子を識別することに基づいて、ページ202を開き得る。図示されているように、ページ202は口座詳細ページに対応し、1つまたは複数の口座の1つまたは複数の属性がコンピューティング・デバイス102に表示される。
【0043】
開示された実施形態の動作を、以下の図を参照してさらに説明できる。数字の中にはロジック・フローを含み得る。本明細書に提示されるこのような図には、特定のロジック・フローを含み得るが、ロジック・フローは、本明細書に記載されるような一般的な機能がどのように実施され得るかの一例を提供するに過ぎないことが理解され得る。また、ロジック・フローは、特に断りのない限り、必ずしも提示された順序で実行される必要はない。さらに、所定のロジック・フローは、ハードウェア要素、プロセッサによって実行されるソフトウェア要素、またはそれらの任意の組み合わせによって実装され得る。実施形態はこのコンテキストで限定されるものではない。
【0044】
図3は、ロジック・フロー(ルーチン)300の実施形態を示す。ロジック・フロー300は、本明細書に記載される1つまたは複数の実施形態によって実行される動作の一部または全部を代表し得る。たとえば、ロジック・フロー300は、非接触カード104によって生成されたURLのサーバー・サイド・リダイレクトに対する操作の一部または全部を含み得る。実施形態はこのコンテキストで限定されるものではない。
【0045】
ブロック302において、ルーチン300は、サーバー106によって、クライアント・コンピューティング・デバイス102から、URL120を備える第1のハイパーテキスト転送プロトコル(HTTP)要求を受信し、URL120の第1パラメータは、非接触カード104によって生成された暗号文130を備え、URL120の第2パラメータは、非接触カード104に関連付けられた口座の顧客ID118を備える。ブロック304で、ルーチン300はサーバー106によって暗号文130を復号化する。ブロック306において、ルーチン300は、サーバー106によって、口座の1つまたは複数の属性に基づいて、口座のコンテキストを決定する。少なくとも1つの実施形態では、MLモデル150がコンテキストを決定する。ブロック308において、ルーチン300は、サーバー106によって、暗号文の復号化および口座の決定されたコンテキストに基づいて、複数のリダイレクトURLのうちの第1のリダイレクトURL158を選択する。ブロック310において、ルーチン300は、サーバー106によって、コンピューティング・デバイス102に、リダイレクトURL158を備えるHTTPレスポンスを送信する。ブロック312において、ルーチン300は、サーバー106によって、コンピューティング・デバイス102から、リダイレクトURL158を備える第2のHTTPリクエストを受信する。ブロック314において、ルーチン300は、サーバー106によって、コンピューティング・デバイス102に、リダイレクトURL158のリソース160を備えるHTTPレスポンスを送信する。
【0046】
図4は、ロジック・フロー(ルーチン)400の実施形態を示す。ロジック・フロー400は、本明細書に記載される1つまたは複数の実施形態によって実行される動作の一部または全部を代表し得る。たとえば、ロジック・フロー400は、非接触カード104によって生成されたURLのサーバー・サイド・リダイレクトに対する操作の一部または全部を含み得る。実施形態はこのコンテキストで限定されるものではない。
【0047】
ブロック402において、ルーチン400は、サーバー106によって、リクエストで指定されたURLを分析する。たとえば、URLは、
図3のブロック302で受信した暗号文130を構成するURL120であり得る。ブロック404において、ルーチン400は、サーバー106によって、分析に基づいて、リクエストを生成するアプリケーションを決定する。たとえば、口座アプリケーション136および/またはウェブ・ブラウザ138は、リクエストを送信し得るものであり、サーバー106は、口座アプリケーション136またはウェブ・ブラウザ138がリクエストを送信したと判断し得る。ブロック406において、ルーチン400は、サーバー106によって、リクエストに関連する口座の1つまたは複数の属性を、たとえば、リクエストの顧客ID118に基づいて決定する。
ブロック410において、ルーチン400は、分析、リクエストを生成するアプリケーション、および口座の1つまたは複数の属性に基づいて、リダイレクトURL158を選択する。リダイレクトURL158は、コンピューティング・デバイス102に送信されてもよく、コンピューティング・デバイス102は、リダイレクトURL158に従って、対応するリソース160をロードし得る。
【0048】
図5は、ロジック・フロー(ルーチン)500の実施形態を示す。ロジック・フロー500は、本明細書に記載される1つまたは複数の実施形態によって実行される動作の一部または全部を代表し得る。たとえば、ロジック・フロー500は、非接触カード104によってURLが生成される機械学習を使用するURLのサーバー・サイド・リダイレクトに対する操作の一部または全部を含み得る。実施形態はこのコンテキストで限定されるものではない。
【0049】
ブロック502において、ルーチン500は、MLモデル150によって、URL、およびリクエストに関連付けられた口座の1つまたは複数の属性を指定するリクエストを受信する。ブロック504において、ルーチン500は、MLモデル150によって、口座のコンテキストを決定する。ブロック506において、ルーチン500は、MLモデル150によって、URL、口座の1つまたは複数の属性、および口座のコンテキストを処理する。ブロック508において、ルーチン500は、処理に基づいてMLモデルにより、複数のリダイレクトURLのうちの第1のリダイレクトURL158を生成する。リダイレクトURL158は、コンピューティング・デバイス102に送信され得るものであり、コンピューティング・デバイス102は、リダイレクトURL158に従って、対応するリソース160をロードし得る。
【0050】
図6Aは、非接触カード104の構成例を示す概略
図600であり、非接触カード104は、非接触カード104の前面または背面にサービスプロバイダ・インジケータ602として表示されるように、サービス・プロバイダによって発行されたクレジット・カード、デビット・カード、またはギフト・カードなどの支払いカードを含み得る。いくつかの例では、非接触カード104は支払いカードとは関係なく、限定されないが、身分証明書を含み得る。いくつかの例では、取引カードは、デュアル・インターフェース非接触支払カード、リワード・カードなどを含み得る。非接触カード104は、基板604を含み得るものであり、基板604は、単層、またはプラスチック、金属、および他の材料から構成される1つ以上の積層層を含み得る。例示的な基材には、ポリ塩化ビニル、ポリ塩化ビニルアセテート、アクリロニトリル・ブタジエン・スチレン、ポリカーボネート、ポリエステル、陽極酸化チタン、パラジウム、金、カーボン、紙、生分解性材料などがある。いくつかの例では、非接触カード104はISO/IEC7816標準のID-1フォーマットに準拠した物理的特性を有し、トランザクション・カードはISO/IEC14443標準に準拠している。しかし、本開示に従った非接触カード104は、異なる特性を有する可能性があり、本開示は、決済カードに実装されるトランザクション・カードを必要としないことが理解される。
【0051】
非接触カード104は、カードの表面および/または裏面に表示される識別情報606、および接触パッド608を含み得る。接触パッド608は、1つまたは複数のパッドを含み、トランザクション・カードを介してATM、ユーザ・デバイス、スマートフォン、ラップトップ、デスクトップ、またはタブレット・コンピュータなどの別のクライアント・デバイスとの接続を確立するように構成され得る。接触パッドは、ISO/IEC7816規格などの1つまたは複数の規格に従って設計されており、EMVプロトコルに従って通信を可能にし得る。非接触カード104は、
図6Bでさらに説明されるように、処理回路、アンテナ、および他の構成要素も含み得る。これらの構成要素は、接触パッド608の後方または基板604上の他の場所、たとえば基板604の異なる層内に配置されてもよく、接触パッド608と電気的および物理的に結合されてもよい。非接触カード104は、磁気ストリップまたはテープも含み得るものであり、これはカードの裏面に位置し得る(
図6Aには図示せず)。非接触カード104は、NFCプロトコルを介して通信可能なアンテナと結合された近距離無線通信(NFC)デバイスを含み得る。実施形態はこのように限定されるものではない。
【0052】
図2に示されるように、非接触カード104の接触パッド608は、プロセッサ612、メモリ108、および1つまたは複数の通信インタフェース122を含む、情報を記憶、処理、および通信するための処理回路610を含み得る。処理回路610は、本明細書で説明する機能を実行するために必要な、プロセッサ、メモリ、エラーおよびパリティ/CRCチェッカ、データエンコーダ、アンチコリジョンアルゴリズム、コントローラ、コマンドデコーダ、セキュリティプリミティブ、および改ざん防止ハードウェアを含む追加のコンポーネントを含むことができることを理解されたい。
【0053】
メモリ108は、読み出し専用メモリ、ライトワンス/リードマルチプルメモリ、または読み出し/書き込みメモリ、たとえばRAM、ROM、EEPROMとでき、非接触カード104はこれらのメモリを1つ以上含むことができる。読み出し専用メモリは、工場出荷時に読み出し専用としてプログラム可能な場合もあれば、ワンタイム・プログラム可能な場合もある。ワンタイム・プログラマビリティは、一度書き込めば何度でも読み込める機会を提供する。ライトワンス/リードマルチプルメモリは、メモリチップが工場から出荷された後の時点でプログラムされ得る。一度プログラムされたメモリは書き換えることはできないが、何度でも読み出し得る。読み取り/書き込みメモリは、工場出荷後に何度もプログラムされ、再プログラムされ得る。読み書き可能なメモリは、工場出荷後に何度も読み込み得る。ある実施態様では、メモリ108は、データを暗号化するためにプロセッサ612によって実行される暗号化アルゴリズムを利用する暗号化メモリであってもよい。
【0054】
メモリ108は、1つまたは複数のアプレット110、1つまたは複数のカウンター112、顧客ID118、マスター・キー114、多様化キー116、およびリダイレクトURL120を記憶するように構成され得る。1つまたは複数のアプレット110を備え得るJava(登録商標)カード・アプレットなど、1つまたは複数の非接触カード上で実行するように構成された1つまたは複数のソフトウェアアプリケーションを備え得る。しかしながら、アプレット110は、Javaカード・アプレットに限定されず、代わりに、非接触カードまたは限られたメモリを有する他の装置上で動作可能な任意のソフトウェアアプリケーションであってもよいことが理解される。1つ以上のカウンター112は、整数を格納するのに十分な数値カウンターを備え得る。顧客ID118は、非接触カード104のユーザーに割り当てられた一意の英数字の識別子を備え得るものであり、その識別子は、非接触カードのユーザーを他の非接触カードのユーザーと区別し得る。いくつかの例では、顧客ID118は、顧客とその顧客に割り当てられた口座の両方を識別し得るものであり、顧客の口座に関連付けられた非接触カード104をさらに識別し得る。
【0055】
前述の例示的な実施形態のプロセッサ612およびメモリ要素は、接触パッド608を参照して説明されているが、本開示はこれに限定されない。これらの要素は、接触パッド608の外部に実装されてもよいし、接触パッド608とは完全に別個に実装されてもよいし、接触パッド608内に配置されたプロセッサ612およびメモリ108要素に加えて、さらなる要素として実装されてもよいことが理解される。
【0056】
いくつかの例では、非接触カード104はを備え得るに1つまたは複数のアンテナ614を設置する。1つまたは複数のアンテナ614は、非接触カード104内及び接触パッド608の処理回路610の周囲に配置し得る。たとえば、1つまたは複数のアンテナ614は処理回路610と一体であってもよく、1つまたは複数のアンテナ614は外部ブースターコイルと共に使用されてもよい。別の例として、1つまたは複数のアンテナ614は、接触パッド608および処理回路610の外部に設けられてもよい。
【0057】
一実施形態では、非接触カード104のコイルは、空芯変圧器の二次側として機能し得る。端末は、電力または振幅変調をカットすることによって非接触カード104と通信し得る。非接触カード104は、非接触カード104の電力接続の間隙を利用して、端末から送信されたデータを推測し得るものであり、このデータは、1つ以上のコンデンサを介して機能的に維持され得る。非接触カード104は、非接触カード104のコイルの負荷を切り替えたり、負荷変調を行うことで通信を返したりし得る。負荷変調は干渉によってターミナルのコイルで検出され得る。より一般的には、アンテナ614、プロセッサ612、および/またはメモリ108を使用して、非接触カード104は、NFC、ブルートゥース(登録商標)、および/またはWi-Fi通信を介して通信するための通信インタフェースを提供する。
【0058】
上記で説明したように、非接触カード104は、JavaCardのような限られたメモリを有するスマート・カードまたは他のデバイス上で動作可能なソフトウェア・プラットフォーム上に構築されてもよく、1つまたは複数のアプリケーションまたはアプレットが安全に実行されてもよい。アプレット110は、様々なモバイル・アプリケーション・ベースのユース・ケースにおいて、多要素認証(MFA)のためのワンタイム・パスワード(OTP)を提供するために非接触カードに追加し得る。アプレット110は、(たとえば、モバイルコンピューティング・デバイス102またはPOS端末の)モバイルNFCリーダーなどのリーダーからの近接場データ交換要求などの1つまたは複数の要求に応答し、NDEFテキストタグとしてエンコードされた暗号化された安全なOTPからなるNDEFメッセージを生成するように構成され得る。NDEFメッセージは、URL120、暗号文130、およびその他のデータを含み得る。
【0059】
NDEF OTPの一例は、NDEFショートレコードレイアウト(SR=1)である。このような例では、1つまたは複数のアプレット110は、OTPをNDEFタイプ4のよく知られたタイプのテキストタグとしてエンコードするように構成され得る。いくつかの例では、NDEFメッセージを備え得るは1つ以上のレコードを持つ。アプレット110は、OTPレコードに加えて、1つ以上の静的タグレコードを追加するように構成され得る。
【0060】
いくつかの例では、1つ以上のアプレット110は、RFIDタグをエミュレートするように構成され得る。RFIDタグは、1つまたは複数の多形タグを含み得る。いくつかの例では、タグが読み取られるたびに、非接触カードの信頼性を示す異なる暗号データが提示される。1つまたは複数のアプレット110に基づいて、タグのNFC読み取りが処理され、データが銀行システムのサーバーなど のサーバに送信され、データがサーバーで検証され得る。
【0061】
いくつかの例では、非接触カード104とサーバーは、カードが適切に識別されるように、特定のデータを含み得る。非接触カード104は、1つまたは複数の固有の識別子(図示せず)を含み得る。読み出し動作が行われるたびに、カウンター112はインクリメントするように構成され得る。いくつかの例では、非接触カード104からのデータが(たとえば、モバイル・デバイスによって)読み取られるたびに、カウンター112は、検証のためにサーバーに送信され、カウンター112がサーバーのカウンターと(検証の一部として)等しいかどうかを判断する。
【0062】
1つまたは複数のカウンター112は、リプレイ攻撃を防止するように構成され得る。たとえば、暗号文が取得され再生された場合、カウンター112が読み取られ、使用され、または他の方法で引き渡された場合、その暗号文は直ちに拒否される。カウンター112が使用されていない場合は、リプレイされ得る。いくつかの例では、非接触カード104でインクリメントされるカウンターは、取引のためにインクリメントされるカウンターとは異なる。非接触カード104は、非接触カード104上のアプレット110間の通信がないため、アプリケーション・トランザクション・カウンター112を判断できない。いくつかの例では、非接触カードは、トランザクションアプレットであってもよい第1のアプレット440-1と、第2のアプレット440-2を備え得る。各アプレット440-1、440-2を備え得るはそれぞれのカウンター112を持つ。
【0063】
いくつかの例では、カウンター112が同期を失い得る。いくつかの例では、斜め読みなどのトランザクションを開始する偶発的な読み取りを考慮するために、カウンター112はインクリメントするかもしれないが、アプリケーションはカウンター112を処理しない。いくつかの例では、モバイル・デバイス10が起動されると、NFCが有効になり、コンピューティング・デバイス102が利用可能なタグを読み取るように構成され得るが、読み取られたタグに対応するアクションは実行されない。
【0064】
カウンター112の同期を保つために、バックグラウンド・アプリケーションのようなアプリケーションを実行し、コンピューティング・デバイス102が目覚めたときに検出し、検出により発生した読み取りがカウンター112を前進させることを示す銀行システムのサーバーと同期するように構成し得る。他の例では、ハッシュド・ワンタイム・パスワードを利用することで、誤同期を受け入れ得る。たとえばは、閾値10以内であれば、カウンター112が前進するように構成し得る。しかし、異なる閾値数、たとえば10以内または1000以内である場合、再同期を実行するための要求は、1つまたは複数のアプリケーションを介して、ユーザーがユーザーのデバイスを介して1回または複数回タップ、ジェスチャー、またはその他の方法で指示することを要求する処理が行われ得る。カウンター112が適切な順序で増加すれば、ユーザーがそうしたことを知り得る。
【0065】
カウンター112、マスター・キー、多様化キーを参照して本明細書で説明する鍵多様化技術は、鍵多様化技術による暗号化および/または復号化の一例である。本開示は他のタイプの重要な分散化技術にも同様に適用可能であるため、この例の重要な分散化技術は本開示の限定的なものとみなされるべきではない。
【0066】
非接触カード104の作成プロセスにおいて、カード1枚につき2つの暗号キーを一意に割り当て得る。暗号キーを備え得る対称キーは、データの暗号化と復号化の両方に使用し得る。トリプルDES(3DES)アルゴリズムはEMVで使用されることがあり、非接触カード104のハードウェアで実装されている。キーの多様化プロセスを使用することにより、キーを必要とする各エンティティの一意に識別可能な情報に基づいて、マスター・キーから1つまたは複数のキーを導出し得る。
【0067】
いくつかの例では、脆弱性の影響を受けやすい3DESアルゴリズムの欠陥を克服するために、セッション鍵を導出してもよい(セッションごとに一意の鍵など)が、マスター・キーを使用するのではなく、カードに由来する一意の鍵とカウンターを多様化データとして使用してもよい。たとえば、非接触カード104が運用に使用されるたびに、メッセージ認証コード(MAC)の作成と暗号化の実行に異なるキーが使用され得る。この結果、3重の暗号化レイヤーが形成される。セッション・キーは、1つまたは複数のアプレットによって生成され、1つまたは複数のアルゴリズム(EMV 4.3 Book 2 A1.3.1 Common Session Key Derivationで定義されている)を用いてアプリケーション・トランザクション・カウンターを使用して導出され得る。
【0068】
さらに、各カードの増分は一意であり、パーソナライズによって割り当てられるか、または何らかの識別情報によってアルゴリズム的に割り当てられる。たとえばでは、奇数番号のカードは2ずつ、偶数番号のカードは5ずつ増やし得る。いくつかの例では、インクリメントはまた、1枚のカードが1、3、5、2、...の繰り返しで順にインクリメントするように、順次読み出しで変化し得る。特定のシーケンスまたはアルゴリズムシーケンスは、パーソナライゼーション時に定義し得るし、一意の識別子に由来する1つまたは複数のプロセスから定義し得る。これにより、リプレイ攻撃者は少数のカード・インスタンスから一般化することが難しくなる。
【0069】
認証メッセージは、16進ASCII形式のテキストNDEFレコードのコンテンツとして配信し得る。別の例では、NDEFレコードは16進数形式でエンコードされ得る。
【0070】
図7は、例示的な実施形態によるNDEFショートレコードレイアウト(SR=1)データ構造700を示す。1つまたは複数のアプレットは、OTPをNDEFタイプ4のよく知られたタイプのテキストタグとしてエンコードするように構成し得る。いくつかの例では、NDEFメッセージを備え得るは1つまたは複数のレコードを持つ。アプレットは、OTPレコードに加えて、1つまたは複数の静的タグレコードを追加するように構成し得る。例示的なタグには、これらに限定されないが、以下が含まれる。タグタイプ:よく知られたタイプ、テキスト、エンコーディング英語(en)、アプレットID:D2760000850101;能力:読み取り専用アクセス;エンコーディング:認証メッセージは、ASCII 16進数としてエンコードされてもよい;タイプ長値(TLV)データは、NDEFメッセージを生成するために使用され得る個人化パラメータとして提供されてもよい。一実施形態では、認証テンプレートを備え得るは、実際の動的認証データを提供するためのよく知られたインデックスを持つ最初のレコードである。データ構造700は、URL120、暗号文130、およびアプレット110が提供するその他のデータを含み得る。
【0071】
図8は、先に説明したような様々な実施形態を実施するのに適した例示的なコンピュータ・アーキテクチャ800の実施形態を示す。一実施形態において、コンピュータ・アーキテクチャ800は、コンピューティング・アーキテクチャ100を含むか、またはコンピューティング・アーキテクチャ100の一部として実施され得る。
【0072】
本出願において使用される場合、用語「システム」及び「コンポーネント」は、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかであるコンピュータ関連エンティティを指すことを意図しており、その例は、例示的なコンピューティング・コンピュータ・アーキテクチャ800によって提供される。たとえば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、ハードディスクドライブ、(光および/または磁気記憶媒体の)複数の記憶ドライブ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータであってもよいが、これらに限定されない。たとえるなら、サーバー上で動作するアプリケーションもサーバーもコンポーネントになり得る。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッド内に存在でき、コンポーネントは、1つのコンピュータ上に局在することも、2つまたはそれ以上のコンピュータ間に分散し得る。さらに、コンポーネントは、様々な種類の通信媒体によって互いに通信可能に結合され、動作を調整し得る。調整には、一方向の情報交換と双方向の情報交換がある。
たとえば、コンポーネントは、通信媒体を介して通信される信号の形で情報を通信し得る。情報は、さまざまな信号線に割り当てられた信号として実装し得る。このような割り当てでは、各メッセージは信号となる。しかし、さらなる実施形態では、代わりにデータ・メッセージを採用し得る。このようなデータ・メッセージは、さまざまな接続を介して送信され得る。例示的な接続には、パラレル・インターフェース、シリアル・インターフェース、バス・インターフェースがある。
【0073】
コンピュータ・アーキテクチャ800は、1つまたは複数のプロセッサ、マルチコア・プロセッサ、コプロセッサ、メモリ・ユニット、チップセット、コントローラ、周辺機器、インタフェース、発振器、タイミング・デバイス、ビデオカード、オーディオ・カード、マルチメディア入出力(I/O)コンポーネント、電源などの様々な共通のコンピューティング要素を含む。ただし、実施形態は、コンピューティング・アーキテクチャ800による実施に限定されるものではない。
【0074】
図8に示すように、コンピュータ・アーキテクチャ800は、プロセッサ802、システム・メモリ804、システム・バス806からなるコンピュータ812を含む。プロセッサ802は、市販されている様々なプロセッサのいずれでもよい。コンピュータ812は、コンピューティング・デバイス102および/またはサーバー106を代表するものであってもよい。
【0075】
システム・バス806は、システム・メモリ804を含むがこれに限定されないシステムコンポーネントのプロセッサ802へのインタフェースを提供する。システム・バス806は、市販されている様々なバスアーキテクチャのいずれかを使用して、メモリバス(メモリ・コントローラの有無にかかわらず)、周辺バス、およびローカル・バスにさらに相互接続できる、いくつかのタイプのバス構造のいずれかであり得る。インターフェイスアダプタは、スロットアーキテクチャを介してシステム・バス608に接続し得る。例示的なスロットアーキテクチャには、限定されないが、AGP(Accelerated Graphics Port)、カードバス、(拡張)業界標準アーキテクチャ((E)ISA)、MCA(Micro Channel Architecture)、NuBus、PCI(X)(Peripheral Component Interconnect(Extended))、PCI Express、PCMCIA(Personal Computer Memory Card International Association)などが含まれる。
【0076】
コンピュータ・アーキテクチャ800は、様々な製造品を含むか、または実施し得る。製造品は、論理を記憶するコンピュータ読み取り可能な記憶媒体を含み得る。コンピュータ読み取り可能な記憶媒体の例としては、揮発性メモリまたは不揮発性メモリ、リムーバブルメモリまたは非リムーバブルメモリ、消去可能メモリまたは非消去可能メモリ、書き込み可能メモリまたは再書き込み可能メモリなどを含む、電子データを記憶できる任意の有形媒体を挙げることができる。ロジックの例としては、ソースコード、コンパイルコード、インタプリタコード、実行可能コード、静的コード、動的コード、オブジェクト指向コード、ビジュアルコードなど、任意の適切なタイプのコードを使用して実装された実行可能なコンピュータプログラム命令を挙げることができる。実施形態はまた、少なくとも部分的に、非一過性のコンピュータ可読媒体に含まれるか、または非一過性のコンピュータ可読媒体上に含まれる命令として実施され得、この命令は、本明細書に記載される動作の実行を可能にするために、1つまたは複数のプロセッサによって読み取られ、実行され得る。
【0077】
システム・メモリ804は、読み出し専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、ダイナミックRAM(DRAM)、ダブル・データ・レートDRAM(DDRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、プログラマブルROM(PROM)、消去可能プログラマブルROM(EPROM)、電気的に消去可能なプログラマブルROM(EEPROM)、フラッシュメモリ、強誘電体ポリマーメモリなどのポリマーメモリ、オボニックメモリ、相変化または強誘電体メモリ、シリコン-酸化物-窒化物-酸化物-シリコン(SONOS)メモリ、磁気カードまたは光カード、RAID(Redundant Array of Independent Disks)ドライブなどのデバイスのアレイ、ソリッドステートメモリデバイス(たとえば。g.,USBメモリ、ソリッド・ステート・ドライブ(SSD)、その他情報の保存に適したあらゆるタイプの記憶媒体などの1つまたは複数の高速メモリ・ユニットの形態の様々なタイプのコンピュータ読み取り可能記憶媒体を含み得る。
図8に示す図示の実施形態では、システム・メモリ804は、不揮発性808および/または揮発性810を含み得る。基本入出力システム(BIOS)を不揮発性808に保存し得る。
【0078】
コンピュータ812は、内部(または外部)ハードディスクドライブ814、リムーバブル磁気ディスク818から読み出しまたはリムーバブル磁気ディスク818に書き込むための磁気ディスクドライブ816、およびリムーバブル光ディスク822(たとえば、CD-ROMまたはDVD)から読み出しまたはリムーバブル光ディスク822に書き込むための光ディスクドライブ820を含む、1つまたは複数の低速メモリ・ユニットの形態の様々なタイプのコンピュータ読み取り可能記憶媒体を含み得る。ハードディスクドライブ814、磁気ディスクドライブ816および光ディスクドライブ820は、それぞれ、HDDインタフェース824、およびFDDインタフェース826、および光ディスクドライブインタフェース828によってシステム・バス806に接続し得る。外付けドライブ実装用のHDDインタフェース824は、ユニバーサル・シリアル・バス(USB)およびIEEE 1394インタフェース技術の少なくとも1つまたは両方を含み得る。
【0079】
ドライブおよび関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令などの揮発性および/または不揮発性ストレージを提供する。たとえば、オペレーティング・システム830、1つまたは複数のアプリケーション832、他のプログラムモジュール834、およびプログラムデータ836を含む、多数のプログラムモジュールをドライブおよび不揮発性808、および揮発性810に格納し得る。一実施形態において、1つまたは複数のアプリケーション832、他のプログラムモジュール834、およびプログラムデータ836は、たとえば、システム100の様々なアプリケーションおよび/またはコンポーネントを含み得る。
【0080】
たとえば、キーボード838およびマウス840のようなポインティングデバイスを使用して、ユーザーはコマンドおよび情報をコンピュータ812に入力し得る。その他の入力デバイスとしては、マイク、赤外線(IR)リモートコントロール、無線周波数(RF)リモートコントロール、ゲームパッド、スタイラスペン、カード・リーダー、ドングル、指紋リーダー、手袋、グラフィックタブレット、ジョイスティック、キーボード、網膜リーダー、タッチスクリーン(静電容量式、抵抗膜式など)、トラックボール、トラックパッド、センサー、スタイラスなどを挙げることができる。これらおよび他の入力デバイスは、多くの場合、システム・バス806に結合された入力デバイス・インタフェース842を介してプロセッサ802に接続されるが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインタフェースなどの他のインタフェースによって接続し得る。
【0081】
モニタ844または他のタイプの表示装置も、ビデオアダプタ846などのインタフェースを介してシステム・バス806に接続される。モニタ844は、コンピュータ812の内部であっても外部であってもよい。モニタ844に加えて、コンピュータには通常、スピーカ、プリンタなどの他の周辺出力装置が含まれる。
【0082】
コンピュータ812は、リモート・コンピュータ848などの1つまたは複数のリモート・コンピュータへの有線および/または無線通信を介した論理接続を使用して、ネットワーク環境で動作し得る。リモート・コンピュータ(複数可)848は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースの娯楽用電化製品、ピアデバイス、または他の一般的なネットワークノードとでき、典型的には、コンピュータ812に関連して説明した要素の多くまたはすべてを含むが、簡潔にするために、メモリおよび/または記憶装置850のみを図示している。描かれている論理接続は、ローカル・エリア・ネットワーク852および/またはより大規模なネットワーク、たとえば、ワイド・エリア・ネットワーク854への有線/無線接続を含む。このようなLANおよびWANネットワーク環境は、オフィスやものでは一般的であり、イントラネットのような企業全体のコンピュータ・ネットワークを促進し、そのすべてがグローバル通信ネットワークであるたとえば、インターネットに接続され得る。
【0083】
ローカル・エリア・ネットワーク852のネットワーク環境で使用される場合、コンピュータ812は、有線および/または無線通信ネットワーク・インタフェースまたはネットワーク・アダプタ856を介してローカル・エリア・ネットワーク852に接続される。ネットワーク・アダプタ856は、ローカル・エリア・ネットワーク852との有線および/または無線通信を容易にでき、ネットワーク・アダプタ856の無線機能と通信するために、その上に配置された無線アクセス・ポイントを含み得る。
【0084】
ワイド・エリア・ネットワーク854のネットワーク環境で使用される場合、コンピュータ812は、モデム858を含むか、ワイド・エリア・ネットワーク854上の通信サーバーに接続されるか、または、インターネットによるなど、ワイド・エリア・ネットワーク854を介して通信を確立するための他の手段を有し得る。モデム858は、内部または外部、有線および/または無線装置とでき、入力デバイス・インタフェース842を介してシステム・バス806に接続する。ネットワーク環境では、コンピュータ812に関連して描かれたプログラムモジュール、またはその一部を、リモートメモリおよび/または記憶装置850に格納し得る。図示したネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段を使用できることは理解されよう。
【0085】
コンピュータ812は、無線通信(たとえば、IEEE 802.11無線変調技術)で動作可能に配置された無線デバイスなどのIEEE 802ファミリーの規格を使用する有線および無線デバイスまたはエンティティと通信するように動作可能である。これには少なくともWi-Fi(またはWireless Fidelity)、WiMax、Bluetooth(登録商標)無線技術などが含まれる。したがって、通信は、従来のネットワークのようにあらかじめ定義された構造であることもあれば、少なくとも2つのデバイス間の単なるアドホック通信であることもある。Wi-Fiネットワークは、IEEE 802.11(a、b、g、n、ac、axなど)と呼ばれる無線技術を使用し、安全で信頼性の高い高速ワイヤレス接続を提供する。Wi-Fiネットワークは、コンピュータ同士、インターネット、有線ネットワーク(IEEE 802.3関連のメディアと機能を使用)に接続するために使用し得る。
【0086】
図1~7を参照して先に説明したような装置の様々な要素は、様々なハードウェア要素、ソフトウェア要素、またはその両方の組み合わせを含み得る。ハードウェア要素の例としては、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ、回路要素(たとえば、トランジスタ、抵抗器、コンデンサ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、メモリ・ユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどを挙げることができる。ソフトウェア要素の例には、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、マシンプログラム、オペレーティング・システムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、手順、ソフトウェアインタフェース、アプリケーションプログラムインタフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、単語、値、記号、またはそれらの任意の組み合わせが含まれる。しかしながら、実施形態がハードウェア要素および/またはソフトウェア要素を使用して実装されるかどうかを決定することは、所与の実装に対して所望される計算速度、電力レベル、熱許容範囲、処理サイクル予算、入力データ速度、出力データ速度、メモリ・リソース、データバス速度、および他の設計または性能制約などの任意の数の要因に従って変化し得る。
【0087】
少なくとも1つの実施形態における1つまたは複数の態様は、プロセッサ内の様々な論理を表す機械可読媒体上に記憶された代表的な命令によって実施でき、この命令が機械によって読み取られると、本明細書に記載の技術を実行するための論理を機械に作製させる。「IPコア」として知られるこのような表現は、有形で機械読み取り可能な媒体に格納され、ロジックやプロセッサを製造する製造機械にロードするために、様々な顧客や製造施設に供給され得る。いくつかの実施形態は、たとえばは、機械によって実行された場合、実施形態に従った方法および/または動作を機械に実行させ得る命令または命令のセットを記憶し得る機械可読媒体または物品を使用して、実施し得る。このような機械は、たとえば、任意の適切な処理プラットフォーム、コンピューティングプラットフォーム、コンピューティング・デバイス、処理装置、コンピューティング・システム、処理システム、コンピュータ、プロセッサなどを含むことができ、ハードウェアおよび/またはソフトウェアの任意の適切な組み合わせを用いて実装し得る。機械可読媒体または物品は、たとえば、任意の適切なタイプのメモリ・ユニット、メモリデバイス、メモリ物品、メモリ媒体、記憶デバイス、記憶物品、記憶媒体および/または記憶ユニット、メモリ、取り外し可能または取り外し不可能な媒体、消去可能または消去不可能な媒体、書き込み可能または再書き込み可能な媒体、デジタルまたはアナログ媒体、ハードディスク、フロッピーディスク、CD-ROM(Compact Disk Read Only Memory)、CD-R(Compact Disk Recordable)、CD-RW(Compact Disk Rewriteable)、光ディスク、磁気媒体、光磁気媒体、リムーバブルメモリカードまたはディスク、各種DVD(Digital Versatile Disk)、テープ、カセットなどを含み得る。命令は、ソースコード、コンパイル済みコード、解釈済みコード、実行可能コード、静的コード、動的コード、暗号化コードなど、任意の適切なタイプのコードを含むことができ、任意の適切な高レベル、低レベル、オブジェクト指向、視覚的、コンパイル済みおよび/または解釈済みプログラミング言語を使用して実装される。
【0088】
前述の実施形態例の説明は、例示および説明の目的で提示されたものである。これは、本開示を網羅することを意図したものではなく、また、本開示を開示された正確な形式に限定することを意図したものでもない。本開示に照らして、多くの修正や変形が可能である。本開示の範囲は、この詳細な説明によってではなく、添付の特許請求の範囲によって限定されることが意図されている。本出願の優先権を主張する将来の出願は、開示された主題を異なる態様で請求でき、一般に、本明細書において様々に開示されるかまたは他の方法で示されるような1つまたは複数の制限の任意のセットを含むことができる。
【国際調査報告】