(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-01-09
(54)【発明の名称】非接触カード認証に基づく鍵回復
(51)【国際特許分類】
H04L 9/08 20060101AFI20241226BHJP
H04L 9/32 20060101ALI20241226BHJP
【FI】
H04L9/08 Z
H04L9/32 100E
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024535919
(86)(22)【出願日】2022-11-23
(85)【翻訳文提出日】2024-08-13
(86)【国際出願番号】 US2022050885
(87)【国際公開番号】W WO2023113986
(87)【国際公開日】2023-06-22
(32)【優先日】2021-12-15
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】519111877
【氏名又は名称】キャピタル・ワン・サービシーズ・リミテッド・ライアビリティ・カンパニー
【氏名又は名称原語表記】Capital One Services, LLC
(74)【代理人】
【識別番号】100145403
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100135703
【氏名又は名称】岡部 英隆
(74)【代理人】
【識別番号】100109139
【氏名又は名称】今井 孝弘
(72)【発明者】
【氏名】オズボーン,ケビン
(72)【発明者】
【氏名】プラサド,ジャイキシャン
(72)【発明者】
【氏名】カタラ カステリャル,ホセ
(57)【要約】
非接触カード暗号に基づくキー回復のためのシステム、方法、装置、およびコンピュータ読み取り可能なメディア。サーバは、アプリケーションから、デジタル・ウォレットの秘密鍵を回復するための要求を受信し得るものであり、前記要求には、前記非接触カードによって生成された第1の暗号文が含まれる。前記サーバは、前記非接触カードの鍵に基づいて第1の暗号文を復号化し得る。前記サーバは、前記復号化に基づいて、前記非接触カードの固有識別子と、前記デジタル・ウォレットに関連付けられた多様化係数を決定し得る。前記サーバは、前記固有識別子と前記多様化係数に基づいて秘密鍵を生成し得る。前記サーバは、ネットワーク経由で前記アプリケーションに前記秘密鍵を送信し得る。
【選択図】
図1A
【特許請求の範囲】
【請求項1】
方法であって、
サーバによって、アプリケーションから、デジタル・ウォレットの秘密鍵を回復する要求を受信することであって、該要求は、非接触カードによって生成された第1の暗号文を備えることと、
前記サーバによって、前記非接触カードの鍵に基づいて、前記第1の暗号文を復号化することと、
前記復号化に基づいて、前記サーバによって、前記非接触カードの固有識別子と、前記デジタル・ウォレットに関連する多様化係数とを決定することと、
前記固有識別子と前記多様化係数に基づいて、前記サーバによって、秘密鍵を生成することと、
ネットワーク経由で前記サーバによって、前記アプリケーションに前記秘密鍵を送信することと、
を備える方法。
【請求項2】
多様化係数は、非接触カードのアプリケーション・プライマリ口座番号(PAN)シーケンス番号を備える、
請求項1に記載の方法。
【請求項3】
多様化係数は、非接触カードのアプリケーション取引カウンタ(ATC)を備える、
請求項1に記載の方法。
【請求項4】
前記要求を受信する前に、さらに、
前記サーバによって、前記アプリケーションから、前記非接触カードによって生成された第2の暗号文を受信することと、
前記サーバによって、前記第2の暗号文を復号化することと、
前記第2の暗号文の復号化に基づいて、前記サーバによって秘密鍵を生成することと、
前記秘密鍵に基づいて前記サーバが公開鍵を生成し、前記公開鍵に基づいて前記デジタル・ウォレットのウォレット・アドレスを生成することと、
前記サーバが前記アプリケーションに前記秘密鍵、前記公開鍵、前記ウォレット・アドレスを送信することと、
を備える請求項1に記載の方法。
【請求項5】
前記非接触カードの前記固有識別子および前記多様化係数は、前記デジタル・ウォレットの前記ウォレット・アドレスに基づいて決定される、
請求項4に記載の方法。
【請求項6】
前記第1の暗号文の復号化に基づいて前記デジタル・ウォレットの前記ウォレット・アドレスを生成すること、
をさらに含む、請求項5に記載の方法。
【請求項7】
前記サーバは、前記デジタル・ウォレットに関連付けられたソルト値をさらに決定し、前記サーバは、前記ソルト値に基づいて秘密鍵をさらに生成し、
前記方法は、
前記秘密鍵に基づいて前記アプリケーションによって、前記デジタル・ウォレットにアクセスすること、
をさらに備える請求項1に記載の方法。
【請求項8】
非一過性のコンピュータ読み取り可能な記憶媒体であって、プロセッサによって実行されると、前記プロセッサに、
アプリケーションから、デジタル・ウォレットの秘密鍵を回復する要求を受信することであって、前記要求は、非接触カードによって生成された第1の暗号文を備えることと、
前記非接触カードの鍵に基づいて、前記第1の暗号文を復号化することと、
前記復号化に基づいて、前記非接触カードの固有識別子と前記デジタル・ウォレットに関連する多様化係数を決定することと、
前記固有識別子と前記多様化係数に基づいて秘密鍵を生成することと、
ネットワーク経由で前記秘密鍵をアプリケーションに送信することと、
を行わせる命令を含む、コンピュータ読み取り可能な記憶媒体。
【請求項9】
前記多様化係数は、前記非接触カードのアプリケーション・プライマリ口座番号(PAN)シーケンス番号からなる、
請求項8に記載のコンピュータ読み取り可能な記憶媒体。
【請求項10】
前記多様化係数は、前記非接触カードのアプリケーション取引カウンタ(ATC)を備える、
請求項8に記載のコンピュータ読み取り可能な記憶媒体。
【請求項11】
前記命令は、前記要求を受信する前に、前記プロセッサに、さらに、
アプリケーションから、非接触カードによって生成された第2の暗号文を受信することと、
前記第2の暗号文を復号化することと、
前記第2の暗号文の復号化に基づいて秘密鍵を生成することと、
前記秘密鍵に基づいて公開鍵を生成し、前記公開鍵に基づいて前記デジタル・ウォレットのウォレット・アドレスを生成することと、
前記アプリケーションに前記秘密鍵、前記公開鍵、前記ウォレット・アドレスを送信することと、
を行わせる、請求項8に記載のコンピュータ読み取り可能な記憶媒体。
【請求項12】
前記非接触カードの前記固有識別子および前記多様化係数は、前記デジタル・ウォレットの前記ウォレット・アドレスに基づいて決定される、
請求項11に記載のコンピュータ読み取り可能な記憶媒体。
【請求項13】
前記命令はさらに、
前記第1の暗号文の復号化に基づいて、前記デジタル・ウォレットの前記ウォレット・アドレスを生成するようにコンピュータを構成する、
請求項12に記載のコンピュータ読み取り可能な記憶媒体。
【請求項14】
前記プロセッサは、前記デジタル・ウォレットに関連するソルト値をさらに決定し、前記プロセッサは、前記ソルト値に基づいて前記秘密鍵をさらに生成する、
請求項8に記載のコンピュータ読み取り可能な記憶媒体。
【請求項15】
プロセッサと、
前記プロセッサによって実行されると、前記プロセッサに以下を行わせる命令を記憶するメモリと、を備えるコンピューティング装置であって、
前記命令は、前記プロセッサに
アプリケーションから、デジタル・ウォレットの秘密鍵を回復する要求を受信することであって、前記要求は、非接触カードによって生成された第1の暗号文を備えることと、
前記非接触カードの鍵に基づいて第1の暗号文を復号化することと、
前記復号化に基づいて、前記非接触カードの固有識別子と前記デジタル・ウォレットに関連する多様化係数を決定することと、
前記固有識別子と前記多様化係数に基づいて秘密鍵を生成することと、
ネットワーク経由で前記秘密鍵をアプリケーションに送信することと、
を行わせるコンピューティング装置。
【請求項16】
前記多様化係数は、前記非接触カードのアプリケーション・プライマリ口座番号(PAN)シーケンス番号を備える、
請求項15に記載のコンピューティング装置。
【請求項17】
前記多様化係数は、前記非接触カードのアプリケーション取引カウンタ(ATC)を備えている、
請求項15に記載のコンピューティング装置。
【請求項18】
前記命令は、前記要求を受信する前に、前記コンピューティング装置を、
前記アプリケーションから、前記非接触カードによって生成された第2の暗号文を受信することと、
前記第2の暗号文を復号化することと、
前記第2の暗号文の復号化に基づいて秘密鍵を生成することと、
前記秘密鍵に基づいて公開鍵を生成し、前記公開鍵に基づいてデジタル・ウォレットのウォレット・アドレスを生成することと、
前記秘密鍵、前記公開鍵、前記ウォレット・アドレスを前記アプリケーションに送信することと、
を行うようにさらに構成する、請求項15に記載のコンピューティング装置。
【請求項19】
前記非接触カードの前記固有識別子および前記多様化係数は、前記デジタル・ウォレットの前記ウォレット・アドレスに基づいて決定され、前記命令は、前記第1の暗号文の復号化に基づいて前記デジタル・ウォレットの前記ウォレット・アドレスを生成するように前記プロセッサをさらに構成する、
請求項18に記載のコンピューティング装置。
【請求項20】
前記プロセッサは、前記デジタル・ウォレットに関連付けられたソルト値をさらに決定し、前記プロセッサは、前記ソルト値に基づいて秘密鍵をさらに生成する、
請求項15に記載のコンピューティング装置。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、2021年12月15日に提出された「非接触カード認証に基づく鍵回復」と題する米国特許出願番号17/551,670に対する優先権を主張する。前述の出願の内容は、その全体が参照により本明細書に援用される。
【背景技術】
【0002】
デジタル・ウォレットには多くの利点があるが、セキュリティとプライバシーの課題もある。最も一般的なリスクには、盗難やアクセス鍵の紛失(または忘れ)などがある。さらに、カストディ・ウォレットは特定の機関に結び付けられており、移植性が許可されない。プロキシ・ウォレットには、セキュリティ侵害や盗難のリスクがあり、アクセス鍵が危険にさらされる可能性がある。ハードウェア・ウォレットは回復シードを提供する場合があるが、これらのシードは盗難やその他の種類の損失(たとえば、ユーザがシードを思い出せない場合やシードの記録を見つけられない場合)が発生しやすくなる。
【発明の概要】
【0003】
非接触カード認証に基づく鍵回復のためのシステム、方法、装置、およびコンピュータ読み取り可能なメディア。
一態様では、方法は、
サーバがアプリケーションからデジタル・ウォレットの秘密鍵を回復するための要求を受信することであって、前記要求には非接触カードによって生成された第1の暗号文が含まれることと、
前記サーバが前記非接触カードの鍵に基づいて第1の暗号文を復号化することと、
前記サーバは、前記復号化に基づいて、前記非接触カードの固有識別子と、ハードウェア・セキュリティ・モジュール内のデジタル・ウォレットに関連付けられた多様化係数とを決定することと、
前記サーバは、前記固有識別子と前記多様化係数に基づいて前記秘密鍵を生成することと、
前記サーバがネットワーク経由で前記アプリケーションに前記秘密鍵を送信することと、
を含む。
【0004】
特定の要素または行為の説明を簡単に識別できるように、参照番号の最上位の数字は、その要素が最初に導入される図の番号を参照する。
【図面の簡単な説明】
【0005】
【
図4】
図4は、一実施形態に従ったルーチン400を示す。
【
図5】
図5は、一実施形態に従ったルーチン500を示す。
【
図6】
図6は、一実施形態に従ったルーチン600を示す。
【
図7B】
図7Bは、一実施形態による非接触カード104を示す。
【
図8】
図8は、一実施形態に従ったデータ構造800を示す。
【
図9】
図9は、実施形態に従ったシステム900の例を示す。
【
図10】
図10は、実施形態に従った論理モデル1000の例を示す。
【
図11】
図11は、実施形態に従った論理モデル1100の例を示す。
【
図12】
図12は、一実施形態に従ったコンピュータ・アーキテクチャ1200を示す。
【発明を実施するための形態】
【0006】
本明細書に開示される実施形態は、非接触カードを使用して暗号通貨ウォレットなどのデジタル・ウォレットにアクセスするために使用される暗号鍵を安全に回復するための技術を提供する。デジタル・ウォレットを作成するには、コンピューティング装置が非接触カードに暗号文を生成するよう指示し得る。コンピューティング装置上で実行されるアプリケーションは、非接触カードとの無線通信を介して暗号文を受信し、検証のために暗号文をサーバに送信し得る。サーバが暗号文を検証すると、サーバはデジタル・ウォレットにアクセスしたり、デジタル・ウォレットを使用して操作を実行したりするために必要な秘密鍵を作成し得る。次に、サーバは秘密鍵に対応する公開鍵を作成し、公開鍵に基づいてデジタル・ウォレットのウォレット・アドレスを生成し得る。その後、サーバは、秘密鍵を作成するために使用される暗号化アルゴリズムへの1つ以上の入力をハードウェア・セキュリティ・モジュール(HSM)に保存し得る。入力には、非接触カードに関連付けられた1つ以上の鍵、非接触カードの固有識別子、および多様化係数が含まれ得る。いくつかの実施形態では、鍵はHSMに格納され、一方、固有識別子および多様化係数は、秘密鍵を多様化するためのHSMへの入力として提供され得る(たとえば、固有識別子および多様化係数はHSMに格納される必要はない)。
【0007】
サーバは、秘密鍵、公開鍵、およびウォレット・アドレスをアプリケーションに安全に送信し、アプリケーションはデジタル・ウォレットを生成し、その中に秘密鍵、公開鍵、およびウォレット・アドレスを保存し得る。いくつかの実施形態では、ユーザがデジタル・ウォレットにアクセスしようとすると、非接触カードを使用した暗号検証を使用してデジタル・ウォレットへのアクセスを認証し得る。暗号検証が成功しない場合、ユーザはウォレットへのアクセスを制限され、ウォレットのセキュリティが向上し得る。
【0008】
デジタル・ウォレットには難読化されたバージョンの秘密鍵が保存されるため、ユーザは秘密鍵を紛失したり、忘れたり、あるいはデジタル・ウォレットで取引(暗号通貨の転送など)を実行するための前提条件として秘密鍵を提供できなくなる可能性があり得る。有利なことに、本明細書に開示される実施形態は、非接触カードを使用して秘密鍵を回復するための安全なソリューションを提供する。通常、秘密鍵を回復するために、非接触カードはサーバによって検証される暗号文を生成し得る。サーバが暗号文を検証できる場合、秘密鍵の生成に使用された入力がHSMに提供され得る。その後、サーバは秘密鍵を再作成し、再作成された秘密鍵を1つ以上の部分に分けて要求元のアプリケーションおよび/または装置に送信し得る。
【0009】
有利なことに、本明細書に開示された実施形態は、非接触カードによって生成された暗号を使用してデジタル・ウォレットにアクセスするために使用される秘密鍵を回復するための安全な技術を提供する。暗号文を活用することにより、本発明の実施形態は、不正行為のリスクを最小限に抑えながら、ユーザの身元を安全に検証し得る。さらに、そうすることで、ユーザがサーバとの暗号検証を容易にする非接触カードにアクセスできる場合にのみ、秘密鍵が復元されることが保証される。さらに、デジタル・ウォレットへのアクセスや秘密鍵の回復の前提条件として暗号検証を要求することで、デジタル・ウォレットのセキュリティが強化される。
【0010】
本明細書で使用されている表記法および命名法を一般的に参照すると、本明細書の詳細な説明は、コンピュータまたはコンピュータのネットワーク上で実行されるプログラム手順の観点から提示され得る。これらの手順の説明と表現は、当業者が自分の作業の内容を他の当業者に効果的に伝えるために使用される。
【0011】
ここでの手順は、一般的には、望ましい結果につながる一貫した一連の操作であると考えられている。これらの操作は、物理量の物理的な操作を必要とする操作である。通常、これらの量は、保存、転送、結合、比較、その他の操作が可能な電気信号、磁気信号、または光信号の形式をとるが、必ずしもそうとは限らない。主に一般的な使用上の理由から、これらの信号をビット、値、要素、シンボル、文字、用語、数値などと呼ぶことが便利な場合がある。ただし、これらすべての用語および類似の用語は適切な物理量に関連付けられるものであり、それらの量に適用される便利なラベルにすぎないことに注意する必要がある。
【0012】
さらに、実行される操作は、多くの場合、加算や比較などの用語で表現されますが、これらは通常、人間のオペレータが実行する精神的な操作に関連付けられる。本明細書で説明される、1つまたは複数の実施形態の一部を構成するいずれの操作においても、人間のオペレータのそのような能力は必要なく、またほとんどの場合望ましくもない。むしろ、操作は機械操作である。さまざまな実施形態の操作を実行するために有用な機械には、デジタルコンピュータまたは同様の装置が含まれる。
【0013】
いくつかの実施形態は、「結合された」および「接続された」という表現とその派生語を使用して説明され得る。これらの用語は、必ずしも同義語として意図されているわけではない。たとえば、いくつかの実施形態は、2つ以上の要素が互いに直接物理的または電気的に接触していることを示すために、「接続された」および/または「結合された」という用語を使用して説明され得る。ただし、「結合された」という用語は、2つ以上の要素が直接接触していないものの、相互に協力したり相互作用したりすることを意味し得る。
【0014】
さまざまな実施形態は、これらの操作を実行するための装置またはシステムにも関係する。この装置は、必要な目的のために特別に構築されるか、またはコンピュータに格納されたコンピュータ・プログラムによって選択的に起動または再構成されるコンピュータを備え得る。ここで紹介する手順は、本質的に特定のコンピュータやその他の装置に関連するものではない。本明細書の教示に従って記述されたプログラムでは、さまざまなマシンを使用し得るが、必要な方法のステップを実行するために、より特殊な装置を構築することが便利な場合もある。これらのさまざまなマシンに必要な構造は、説明から明らかになる。
【0015】
ここで図面を参照すると、図面全体にわたって同様の要素を指すために同様の参照番号が使用されている。以下の説明では、説明の目的で、十分な理解が得られるように多数の具体的な詳細が記載されている。しかしながら、これらの具体的な詳細がなくても、新規な実施形態を実践することは可能である。他の例では、構造および装置は、説明を容易にするためにブロック図形式で示される。意図は、請求された主題と一致するすべての修正、同等物、および代替物を網羅することである。
【0016】
図および付随する説明では、「a」、「b」、「c」(および同様の指定子)は、任意の正の整数を表す変数であることが意図されている。したがって、たとえば、実装でaの値を5に設定した場合、コンポーネント123-1から123-a(または123a)として示されるコンポーネント123の完全なセットには、コンポーネント123-1、123-2、123-3、123-4、および123-5が含まれ得る。実施形態はこの文脈に限定されない。
【0017】
図1Aは、開示された実施形態と一致する、システムとも呼ばれる例示的なコンピューティング・アーキテクチャ100を示している。
図1A~1Cに示すコンピューティング・アーキテクチャ100には、特定のトポロジ内の要素の数が限られているが、コンピューティング・アーキテクチャ100には、特定の実装の必要に応じて、代替トポロジ内の要素の数を増やすことも減らすこともし得ることは理解できる。
【0018】
コンピューティング・アーキテクチャ100は、1つ以上のコンピューティング装置102、1つ以上のサーバ106、および1つ以上の非接触カード104を備える。非接触カード104は、クレジット・カード、デビット・カード、ATMカード、ギフト・カード、支払いカード、スマート・カードなどのあらゆるタイプのカードを表す。非接触カード104は、NFC、EMV標準、または無線通信におけるその他の短距離プロトコルを介してコンピューティング装置102の通信インターフェイス124(ここでは「カード・リーダ」、「ワイヤレス・カード・リーダ」、および/または「無線通信インターフェイス」とも呼ばれる)と通信するように構成された、無線周波数識別(RFID)チップなどの1つ以上の通信インターフェイス124を含み得る。ここでは通信プロトコルの例としてNFCが使用されていますが、本開示は、EMV標準、Bluetooth(登録商標)、および/またはWi-Fi(登録商標)などの他の種類の無線通信にも同様に適用できる。
【0019】
コンピューティング装置102は、スマートフォン、タブレット・コンピュータ、ウェアラブル装置、ラップトップ、ポータブル・ゲーム装置、仮想化コンピューティング・システム、マーチャント端末、POSシステム、サーバ、デスクトップ・コンピュータなど、あらゆる数および種類のコンピューティング装置を表す。モバイル装置は、コンピューティング装置102の例として使用できるが、本開示を制限するものとは見なされない。サーバ106は、サーバ、ワークステーション、コンピューティング・クラスタ、クラウド・コンピューティング・プラットフォーム、仮想化コンピューティング・システムなどのあらゆるタイプのコンピューティング装置を表す。明確にするために図示されていないが、コンピューティング装置102、非接触カード104、およびサーバ106には、それぞれ、プログラム、コード、および/または命令を実行するための1つ以上のプロセッサ回路が含まれる。
【0020】
図に示すように、非接触カード104のメモリ108には、アプレット110、カウンタ116、1つ以上のマスター鍵114、1つ以上の多様化鍵120、固有ID112、プライマリ口座番号(PAN:Primary Account Number)シーケンス番号156、および1つ以上の固有派生鍵(UDK:Unique Derived Keys)118が含まれる。固有ID112は、非接触カード104を他の非接触カード104と比較して一意に識別する任意の識別子である。PANシーケンス156には、非接触カード104によって保存されたカウンタ値が含まれ得る。アプレット110は、本明細書で説明する操作の一部またはすべてを実行するように構成された実行可能コードである。カウンタ116は、非接触カード104とサーバ106の間で同期される値である。カウンタ116は、非接触カード104とサーバ106(および/または非接触カード104とコンピューティング装置102)の間でデータが交換されるたびに変化する数値を備え得る。カウンタ116、マスター鍵114、多様化鍵120、UDK118、PANシーケンス156、および/または固有ID112は、以下でより詳細に説明するように、システム100のセキュリティを提供するために使用される。
【0021】
図に示すように、コンピューティング装置102のメモリ132には、オペレーティング・システム134のインスタンスが含まれている。オペレーティング・システムの例としては、Android(登録商標)OS、iOS(登録商標)、macOS(登録商標)、Linux(登録商標)、Windows(登録商標)オペレーティング・システムなどがある。図に示すように、オペレーティング・システム134には口座アプリケーション136が含まれる。口座アプリケーション136を使用すると、ユーザは、デジタル・ウォレットの管理、ウォレットを使用した取引の処理、ブロックチェーンおよび/または暗号通貨取引の処理、支払いカードの有効化、口座残高の表示、アイテムの購入、支払いの処理など、さまざまな口座関連の操作を実行できる。いくつかの実施形態では、ユーザは認証資格情報を使用して認証し、口座アプリケーション136の特定の機能にアクセスできる。たとえば、認証資格情報には、ユーザ名(またはログイン)とパスワード、生体認証資格情報(指紋、Face IDなど)などが含まれ得る。
【0022】
図に示すように、サーバ106のメモリ126には、認証アプリケーション138と口座データベース128が含まれる。口座データベース128には、通常、口座所有者(たとえば、1人以上のユーザ)、口座所有者の1つ以上の口座、および口座の1つ以上の非接触カード104に関連する情報が含まれる。
【0023】
前述のように、口座アプリケーション136は、デジタル・ウォレットを作成、管理、アクセス、またはその他の方法で使用するために使用し得る。デジタル・ウォレットを使用すると、一方の当事者がもう一方の当事者と電子取引を行うことができる。いくつかの実施形態では、デジタル・ウォレットは、暗号通貨の秘密鍵および/または公開鍵を保存する暗号通貨ウォレットである。暗号通貨は、ビットコイン、イーサリアムなど、あらゆるタイプの暗号通貨である。デジタル・ウォレットを作成するには、ユーザは認証資格情報を使用して口座に認証する必要がある。次に、口座アプリケーション136は、非接触カード104をコンピューティング装置102にタップするようにユーザに指示する。
【0024】
図1Aに示す実施形態では、ユーザは非接触カード104をコンピューティング装置102にタップできる(または、非接触カード104を装置102の通信インターフェイス124の通信範囲内に持ち込む)。次に、口座アプリケーション136は、アプレット110に暗号文122を生成するように指示する。暗号文122は、任意の適切な暗号化技術に基づいて生成し得る。いくつかの実施形態では、暗号文122は、非接触カード104の固有ID112に基づくものであってもよい。いくつかの実施形態では、アプレット110には、暗号文122と、暗号文122を含むデータ・パッケージの一部として暗号化されていない識別子(例えば、カウンタ116、PANシーケンス156、固有ID112、および/またはその他の固有識別子)が含まれ得る。少なくとも1つの実施形態では、データ・パッケージはNDEFファイルである。
【0025】
前述のように、コンピューティング・アーキテクチャ100は、データを保護するために鍵の多様化を実装するように構成されており、これを本明細書では鍵の多様化技術と呼ぶことがある。一般に、サーバ106(または他のコンピューティング装置)と非接触カード104には、同じマスター鍵114(マスター対称鍵とも呼ばれる)がプロビジョニングされ得る。より具体的には、各非接触カード104には、サーバ106のハードウェア・セキュリティ・モジュール(HSM)130内に対応するペアを持つ個別のマスター鍵114がプログラムされている。たとえば、非接触カード104が製造されるとき、固有のマスター鍵114が非接触カード104のメモリ108にプログラムされ得る。同様に、固有マスター鍵114は、HSM130内のレコード142に格納され得る。
【0026】
さらに、特定のカード104が製造されるとき、多様化係数とHSM130内のマスター鍵114インデックスへの参照(たとえば、レコード142へのインデックス)を入力として受け取るHSM関数を介して、UDK118がマスター鍵114から多様化され得る。いくつかの実施形態では、多様化係数は、非接触カード104の固有ID112およびPANシーケンス156であり得る。
UDK118は、非接触カード104およびHSM130のレコード142に格納され得る。マスター鍵114およびUDK118は、非接触カード104およびサーバ106以外のすべての関係者から秘密に保持できるため、システム100のセキュリティが強化される。レコード142に格納されているように示されているが、一部の実施形態では、カウンタ116および/またはPANシーケンス156はHSM 130に格納されない。たとえば、固有ID112、カウンタ116、およびPANシーケンス156は、口座データベース128に格納され得る。
【0027】
いくつかの実施形態では、暗号文122を生成するために、アプレット110は、UDK118、固有ID112、および多様化係数を暗号化アルゴリズムへの入力として提供し、それによって多様化鍵120を生成し得る。いくつかの実施形態では、多様化係数はカウンタ116である。他の実施形態では、PANシーケンス156が多様化係数である。多様化鍵120は、多様化係数(たとえば、カウンタ116および/またはPANシーケンス156)やその他の機密データなどの一部のデータを暗号化するために使用され得る。アプレット110とサーバ106は、暗号文の復号化および/または検証処理を容易にするために、同じタイプのデータを暗号化するように構成し得る。
【0028】
前述のように、非接触カード104およびサーバ106のUDK118は、鍵の多様化を使用してセキュリティを強化するために、カウンタ116と組み合わせて使用し得る。前述のように、カウンタ116は、非接触カード104とサーバ106の間で同期される値で構成される。カウンタ116は、非接触カード104とサーバ106(および/または非接触カード104とコンピューティング装置102)との間でデータが交換されるたびに変化する数値を含み得る。データ(例えば、サーバ106および/または装置102)を送信する準備をするとき、非接触カード104のアプレット110はカウンタ116を増分し得る。非接触カード104のアプレット110は、UDK118、固有ID112、およびカウンタ116を暗号化アルゴリズムへの入力として提供し、暗号化アルゴリズムは出力として多様化鍵120を生成する。暗号化アルゴリズムには、暗号化アルゴリズム、ハッシュ・ベースのメッセージ認証コード(HMAC:Hash-based Message Authentication Code)アルゴリズム、暗号ベースのメッセージ認証コード(CMAC:Cipher-based Message Authentication Code)アルゴリズムなどが含まれる。暗号化アルゴリズムの非限定的な例としては、3DESやAES107などの対称暗号化アルゴリズム、HMAC-SHA-256などの対称HMACアルゴリズム、AES-CMACなどの対称CMACアルゴリズムなどが挙げられる。主要な多様化技術の例については、2018年11月29日に提出された米国特許出願16/205,119で詳しく説明されている。前述の特許出願は、その全体が参照により本明細書に援用される。いくつかの実施形態では、カウンタ116の代わりにPANシーケンス156が暗号化アルゴリズムへの入力として使用され、たとえば、UDK118、固有ID112、およびPANシーケンス156を暗号化することによって、多様化鍵120が生成される。
【0029】
次に、アプレット110は、多様化鍵120とデータを暗号化アルゴリズムへの入力として使用して、一部のデータ(たとえば、固有ID112、カウンタ116、PANシーケンス156、コマンド、および/またはその他のデータ)を暗号化する。たとえば、多様化鍵120を使用して固有ID112を暗号化すると、暗号化された固有ID112(たとえば、暗号文122)が生成され得る。前述のように、アプレット110とサーバ106は同じデータを暗号化するように構成し得る。
【0030】
いくつかの実施形態では、例えば、暗号化関数への入力の1つ以上の部分に基づいて、2つの多様化鍵120が生成され得る。いくつかの実施形態では、2つの多様化鍵120は、2つの異なるマスター鍵114、2つの異なるUDK118、固有ID112、およびカウンタ116(またはPANシーケンス156)に基づいて生成される。このような実施形態では、多様化鍵120の1つを使用してメッセージ認証コード(MAC)が生成され、多様化鍵120の他の1つを使用してMACが暗号化され得る。MACは、機密データ、固有ID112、カウンタ116、および/またはPANシーケンス156など、MACアルゴリズムに入力される任意の適切なデータに基づいて生成し得る。より一般的には、アプレット110とサーバ106は、同じデータに基づいてMACを生成するように構成され得る。いくつかの実施形態では、暗号文122は、NDEFファイルなどのデータ・パッケージに含まれる。その後、口座アプリケーション136は、コンピューティング装置102の通信インターフェイス124を介して、暗号文122を含むデータ・パッケージを読み取り得る。
【0031】
図1Bは、口座アプリケーション136が暗号文122をサーバ106に送信する実施形態を示す。サーバ106は、サーバ106によって保存されたマスター鍵114および/またはUDK118のインスタンスに基づいて、少なくとも部分的に検証のために、暗号文122を認証アプリケーション138および/またはHSM130に提供し得る。いくつかの実施形態では、認証アプリケーション138および/またはHSM130は、サーバ106に提供された暗号化されていない固有ID112を使用して、UDK118(またはマスター鍵114)およびカウンタ116を識別し得る。PANシーケンス156を使用して暗号文122を生成する例では、サーバ106は、暗号化されていない固有ID112を使用して、口座データベース128および/またはHSM130内のPANシーケンス156を識別し得る。いくつかの例では、認証アプリケーション138は、UDK118、固有ID112、およびカウンタ116をHSM130の暗号化機能への入力として提供し、HSM130は1つ以上の多様化鍵120を出力として生成する。他の実施形態では、サーバは、UDK118、固有ID112、およびPANシーケンス156を暗号化して、多様化鍵120を生成する。結果として得られる多様化鍵120は、非接触カード104の多様化鍵120に対応する可能性があり、これを使用して暗号文122を復号化し、および/または復号化されたMACを検証し得る。たとえば、サーバ106は、アプレット110と同じデータ、例えば機密データ、固有ID112、カウンタ116、および/またはPANシーケンス156に基づいてMACを生成し得る。サーバ106によって生成されたMACが暗号文122内の復号化されたMACと一致する場合、サーバ106は暗号文122を検証または認証し得る。
【0032】
使用される復号化技術に関係なく、認証アプリケーション138および/またはHSM130は暗号文122を正常に復号化し、MACを検証して、暗号文122を検証または認証し得る。復号化および/またはMAC検証が成功した場合、認証アプリケーション138および/またはHSM130は、ユーザ用のデジタル・ウォレット144を生成し得る。一般的に、デジタル・ウォレット144を作成するには、秘密鍵146を生成する必要がある。いくつかの実施形態では、ランダムな数字が、SHA-2アルゴリズムやその他の適切なアルゴリズムなどの暗号化(またはハッシュ)アルゴリズムへの入力として提供され、任意の長さの秘密鍵146が生成される。他の実施形態では、非接触カード104の固有ID112とPANシーケンス156が連結され、ハッシュ・アルゴリズムへの入力として提供され、秘密鍵146が生成される。他の実施形態では、非接触カード104の固有ID112とカウンタ116が連結され、ハッシュ・アルゴリズムへの入力として提供され、秘密鍵146が生成される。
【0033】
他の実施形態では、非接触カード104のマスター鍵114、固有ID112、およびカウンタ116が連結され、ハッシュ・アルゴリズムへの入力として提供され、秘密鍵146が生成される。マスター鍵114を使用して秘密鍵146を生成する実施形態では、非接触カード104の第1マスター鍵114を使用して暗号文122を生成し、非接触カード104の第2マスター鍵114を使用して秘密鍵146を生成し得るものであり、第1マスター鍵114と第2マスター鍵114は異なる鍵である。他の実施形態では、多様化鍵120の1つ、固有ID112、および非接触カード104のカウンタ116が連結され、ハッシュ・アルゴリズムへの入力として提供され、秘密鍵146が生成される。他の実施形態では、UDK118の1つ、固有ID112、および非接触カード104のカウンタ116が連結され、ハッシュ・アルゴリズムへの入力として提供され、秘密鍵146が生成される。秘密鍵146を生成するために使用される入力に関係なく、いくつかの実施形態では、秘密鍵146を生成するためのハッシュ・アルゴリズムへの入力にソルト(たとえば、ランダム・データ)が含まれる。
【0034】
次に、秘密鍵146を使用して、対応する公開鍵148を生成し得る。いくつかの実施形態では、楕円曲線デジタル署名アルゴリズム(ECDSA:Elliptic Curve Digital Signature Algorithm)を使用して秘密鍵146に基づいて公開鍵148が生成され得る。いくつかの実施形態では、公開鍵148は、例えばハッシュ・アルゴリズムを使用して連結(または圧縮)され得る。いくつかの実施形態では、ソルトを使用して公開鍵148を生成する。ウォレット・アドレス150は、公開鍵148に基づいて、たとえば公開鍵148をハッシュすることによって、デジタル・ウォレット144用に生成され得る。デジタル・ウォレット144はHSM130に格納されているように示されているが、一部の実施形態では、デジタル・ウォレット144はHSM130に永続的に格納されるわけではない。代わりに、本明細書でより詳細に説明するように、秘密鍵146を再作成するために使用される要素は、HSM130および/または口座データベース128に格納され得る。たとえば、固有ID112およびカウンタ116は、HSM130および/または口座データベース128に格納され得る。別の例では、固有ID112およびPANシーケンス156は、HSM130および/または口座データベース128に格納され得る。
【0035】
いくつかの実施形態では、秘密鍵146および/または公開鍵148は、例えば階層的な決定論的鍵を作成するために、さらに多様化される場合がある。たとえば、秘密鍵146は、カウンタ116、固有ID112、ソルト値154、またはその他の所定のシード値を使用して多様化し得る。そうすることで、秘密鍵146が多様化する可能性があり得る。同様に、公開鍵148は、カウンタ116、固有ID112、ソルト値154、またはその他の所定のシード値を使用して多様化され、多様化された公開鍵148が作成される。このような実施形態では、秘密鍵146および/または公開鍵148を多様化するために使用される任意のシード値は、口座データベース128および/またはHSM130の回復レコード152に格納され得る。より一般的には、秘密鍵146および/または公開鍵148は、シード値を複数回使用して多様化され、それによって、多様化された秘密鍵146および/または多様化された公開鍵148のツリー(または階層)が生成される。このような実施形態では、ツリー(または階層)の1つ以上のパスを使用して、異なる多様化されたキーを指定し得る。より一般的には、ツリーの各ノードは、多様化された公開鍵および/または多様化された子鍵に対応し得る。ツリーのノードの秘密鍵と公開鍵が与えられれば、ツリー内のすべての子孫ノードの多様な秘密鍵と公開鍵を導出し得る。さらに、ツリー内の各リーフ・ノードは、多様化された公開鍵および/または多様化された子鍵に対応し得る。いくつかの実施形態では、パスはさらに、通貨、通貨の額、取引の第1のウォレット・アドレス(例:送信ウォレット・アドレス)、取引の第2のウォレット・アドレス(例:受取人のウォレット・アドレス)、およびその他の属性などの取引の属性を指定するために使用される。これらの属性は、ツリーの特定のノードに格納され得る。
【0036】
復号化に戻ると、認証アプリケーション138が暗号文122を復号化できない場合(および/またはMACを検証できない場合)、認証アプリケーション138は暗号文122を検証しない。このような例では、認証アプリケーション138は、デジタル・ウォレットの生成を控えることを決定する。認証アプリケーション138は、失敗した復号化および/または検証の指示をコンピューティング装置102に送信し得る。
【0037】
図1Cは、認証アプリケーション138がデジタル・ウォレット144をコンピューティング装置102に送信する実施形態を示す。図に示すように、口座アプリケーション136は、秘密鍵146、公開鍵148、およびウォレット・アドレス150を含むデジタル・ウォレット144 (メモリ132および/または不揮発性ストレージ(明瞭性のために図示されていない)を保存し得る。口座アプリケーション136は、秘密鍵146、公開鍵148、および/またはウォレット・アドレス150をハッシュ化、暗号化、またはその他の方法で難読化し得る。口座アプリケーション136は、ユーザ名やパスワード、生体認証情報などの認証制御を使用してデジタル・ウォレット144を保護し得る。さらに、および/または代わりに、口座アプリケーション136は、デジタル・ウォレット144(例えば、非接触カード104は、本明細書で説明されているように、サーバ106によって検証される暗号文を生成する)にアクセスするために、非接触カード104を使用した暗号の復号化および/または検証を要求し得る。さらに、いくつかの実施形態では、口座アプリケーション136は、デジタル・ウォレット144にアクセスしたり、デジタル・ウォレット144を使用して操作を実行したりするために、ユーザに秘密鍵146の提供を要求し得る。より一般的には、口座アプリケーション136は、デジタル・ウォレット144にアクセスしたり、使用したり、その他の方法で管理したりするためのさまざまなインターフェイスを提供し得る。
【0038】
いくつかの実施形態では、デジタル・ウォレット144は、たとえば、サーバ106またはクライアントにクラウド・ベースのウォレット・サービスを提供する別のコンピューティング・システムなどのクラウド・ベースのウォレットに保存され得る。実施形態はこの文脈に限定されない。クラウド・ベースのウォレットは、たとえば口座アプリケーション136を介してデジタル・ウォレット144にアクセスしたり、その他の方法で使用したりするためのインターフェイスを提供し得る。
【0039】
図に示すように、サーバ106は、デジタル・ウォレット144の作成に基づいて、口座データベース128に回復レコード152を作成した。回復レコード152には、固有ID112、多様化係数158(たとえば、カウンタ116および/またはPANシーケンス156)、および秘密鍵146を生成するためのソルト154(使用されている場合)が含まれる。いくつかの実施形態では、回復レコード152は、ウォレット144のウォレット・アドレス150に基づいてインデックス付けされ得る。他の実施形態では、回復レコード152は、非接触カード104のキーを格納するHSM130のレコード142に基づいてインデックス付けされ得る。他の実施形態では、回復レコード152は、非接触カード104の固有ID112に基づいてインデックス付けされる。次に、回復レコード152を使用して、たとえば、固有ID112、多様化係数158、および/またはソルト154と適切なアルゴリズムに基づいて、秘密鍵146を再作成し得る。多様化鍵120、UDK118、またはマスター鍵114を使用して秘密鍵146を生成する実施形態では、セキュリティを向上させるために、多様化鍵120、UDK118、またはマスター鍵114は回復レコード152に保存されないという利点がある。このような実施形態では、HSM130は、秘密鍵146を再作成するために使用されるマスター鍵114、UDK118、および/または多様化鍵120を格納し、一方、固有ID112、多様化係数158、および/またはソルト154は、口座データベース128に格納され得る。
【0040】
図2Aは、ユーザが秘密鍵146の回復を要求する実施形態を示す概略
図200である。図に示すように、秘密鍵146を回復するために、口座アプリケーション136は、非接触カード104をコンピューティング装置102にタップするようにユーザに指示し、これにより非接触カード104は暗号文208を生成する。暗号文208は、暗号文122を参照して上で説明したように生成し得る。たとえば、アプレット110は、カウンタ116を増分し、1つ以上のUDK118、固有ID112、およびカウンタ116を暗号化して、1つ以上の多様化鍵120を生成し得る。1つ以上の多様化鍵120は、何らかのデータに基づいてMACを生成し、MACおよび/またはデータを暗号化するために使用し得る。いくつかの実施形態では、ウォレット・アドレス150と多様化鍵120の1つに基づいてMACが生成される。このような実施形態では、ウォレット・アドレス150とMACは、多様化鍵120のもう1つを使用して暗号化され、暗号文208が生成される。別の例として、公開鍵148を使用してMACを生成し、公開鍵148をMACで暗号化し得る。
【0041】
図2Bは、口座アプリケーション136が検証のために暗号文208をサーバ106に送信する実施形態を示す。一般的に、サーバ106は、カウンタ116を増分し、非接触カード104のUDK118、固有ID112、およびカウンタ116を暗号化して、非接触カード104によって生成された鍵に対応する1つ以上の多様化鍵120を生成し得る。1つ以上の多様化鍵120は、暗号文208を復号化し、および/またはMACを検証するために使用し得る。
【0042】
サーバ106が暗号文208を復号化でき、かつ/またはMACを検証できる場合、サーバ106は回復レコード152に基づいて秘密鍵146を再作成し得る。ウォレット・アドレス150が暗号文208で暗号化されている実施形態では、ウォレット・アドレス150に基づいて回復レコード152がインデックス付け(検索など)され、サーバ106は復号化されたウォレット・アドレス150を使用して回復レコード152にアクセスし得る。公開鍵148が暗号文208で暗号化されている実施形態では、サーバ106は公開鍵148を使用してウォレット・アドレス150を再生成し、再生成されたウォレット・アドレス150を使用して口座データベース128をインデックス化し得る。他の実施形態では、口座データベース128は、回復レコード152を識別するために固有ID112を使用してインデックス付けされる。このような実施形態では、固有ID112は、暗号文208に含まれる固有ID112の暗号化されていないバージョンに基づいて決定される。
【0043】
サーバ106が回復レコード152を識別すると、回復レコード152を使用して秘密鍵146を再作成し得る。たとえば、回復レコード152の固有ID112、多様化係数158、およびソルト154(使用されている場合)は、秘密鍵146を最初に作成するために使用されるHSM130の機能への入力として提供され得る。こうすることで、秘密鍵146が再作成される。
【0044】
いくつかの実施形態では、サーバ106は、マスター鍵114またはUDK118に基づいて秘密鍵146をさらに再作成する。たとえば、サーバ106は、非接触カード104のマスター鍵114と回復レコード152(たとえば、ユニークID112、多様化係数158、任意のソルト154)内のデータを、秘密鍵146の作成に使用されるHSM130の機能への入力として提供し得る。こうすることで、秘密鍵146が再作成される。別の例として、サーバ106は、非接触カード104のUDK118と回復レコード152(例えば、ユニークID112、多様化係数158、任意のソルト154)内のデータを、秘密鍵146の作成に使用されるHSM130の機能への入力として提供し得る。これにより、秘密鍵146も再作成される。
【0045】
いくつかの実施形態では、UDK118、固有ID112、多様化係数158、および任意のソルト154がHSM130の機能に入力され、秘密鍵146を生成するために使用される多様化鍵120が生成される。多様化鍵120、多様化係数158、および任意のソルト154は、秘密鍵146を再作成するためのHSM130の機能への入力として提供され得る。
【0046】
一方、HSM130が暗号文122を復号化できない場合、および/またはMACを検証できない場合、HSM130は暗号文122を検証しない。このような例では、認証アプリケーション138は、秘密鍵146の回復を控えることを決定する。認証アプリケーション138は、失敗した復号化および/またはMAC検証の指示をコンピューティング装置102に送信し得る。このような実施形態では、ユーザは回復レコード152を使用して秘密鍵146を回復することが制限される。
【0047】
図2Cは、HSM130が回復レコード152に基づいて秘密鍵146を再作成し、秘密鍵146を口座アプリケーション136に送信する実施形態を示す。いくつかの実施形態では、サーバ106は、秘密鍵146を1つ以上のデータ部分で送信し得る。より一般的には、サーバ106は、コンピューティング装置102とのセキュリティ保護された接続を使用して秘密鍵146を送信し得る。その後、コンピューティング装置102は秘密鍵146を表示し、ユーザが秘密鍵146を回復できるようにする。その後、ユーザは秘密鍵146を使用して、デジタル・ウォレット144および/またはデジタル・ウォレット144に関連付けられた任意の暗号通貨を使用して1つ以上の操作を実行し得る。たとえば、秘密鍵146は、ブロックチェーン906内で取引を生成するために使用され得る。
【0048】
いくつかの実施形態では、秘密鍵146はコンピューティング装置102に送信されない。たとえば、クラウド・ベースのウォレットの実施形態では、秘密鍵146を使用して取引または他の種類のデータに署名し得る。このような例では、ユーザは口座認証資格情報を使用して口座アプリケーション136で自分の口座を認証し、意図した取引の詳細(例:購入、暗号通貨の送金など)を提供し得る。口座アプリケーション136は、取引の詳細をサーバ106に提供し得る。いくつかの実施形態では、口座アプリケーション136は、暗号文および/または暗号文を含むデータ・パッケージで取引の詳細を提供する。暗号文は、暗号文122および/または暗号文208に類似し得る。その後、サーバ106は、回復レコード152(例えば、ユニークID112、カウンタ116、PANシーケンス156、および/またはソルト154)から鍵を多様化するために使用されるデータを取得し得る。回復レコード152からのデータはHSM130に提供され、HSM130は回復レコードのデータとマスター鍵114および/またはUDK118を使用して取引のデジタル署名を生成する。こうすることで、取引に必要な署名が生成される。たとえば、有効な署名を生成することにより、公開鍵148を使用して取引を検証できる。このような例では、検証された取引を反映するために、取引がブロックチェーンに追加され得る。
【0049】
図3Aは、たとえば秘密鍵146を回復するために、非接触カード104をコンピューティング装置102にタップする実施形態を示す概略
図300aである。前述のように、非接触カード104がコンピューティング装置102にタップされると、アプレット110は暗号文(たとえば、暗号文122および/または暗号文208)を生成し得る。暗号文およびその他のデータ(例:暗号化されていない固有ID112)は、コンピューティング装置102によって読み取られるNDEFファイルなどのデータ・パッケージに含まれ得る。次に、コンピューティング装置102は、本明細書で説明されているように、検証(例:復号化および/またはMAC検証)のために暗号文をサーバ106に送信し得る。
【0050】
図3Bは、サーバ106が
図3Aで生成された暗号文を検証した実施形態を示す概略
図300bである。検証に基づいて、サーバ106は回復レコード152に基づいて秘密鍵146を再作成し得る。その後、サーバ106は秘密鍵146を口座アプリケーション136に送信し得る。図に示すように、口座アプリケーション136は、秘密鍵146を文字列としてディスプレイに表示する。いくつかの実施形態では、秘密鍵146を表すためにマトリックス・コード302が生成され得る。そうすることで、マトリックス・コード302をスキャンして秘密鍵146を判別できるようになる。
【0051】
開示された実施形態の動作は、以下の図を参照してさらに説明し得る。一部の図にはロジック・フローが含まれ得る。ここで提示される図には特定のロジック・フローが含まれ得るが、ロジック・フローは、ここで説明する一般的な機能がどのように実装されるかの例を単に提供するものであることがわかる。さらに、特に明記しない限り、特定のロジック・フローは必ずしも提示された順序で実行される必要はない。さらに、一部の実施形態では、ロジック・フローに示されたすべての動作が必要なわけではない。さらに、与えられたロジック・フローは、ハードウェア要素、プロセッサによって実行されるソフトウェア要素、またはそれらの任意の組み合わせによって実装され得る。実施形態はこの文脈に限定されない。
【0052】
図4は、ロジック・フローまたはルーチン400の実施形態を示す。ロジック・フロー400は、本明細書で説明する1つ以上の実施形態によって実行される操作の一部またはすべてを表し得る。たとえば、ロジック・フロー400には、デジタル・ウォレットを作成するための操作の一部またはすべてが含まれ得る。実施形態はこの文脈に限定されない。
【0053】
ブロック402では、サーバ106は、コンピューティング装置102上で実行されている口座アプリケーション136から、デジタル・ウォレットを生成するための要求を受信し得る。要求には、非接触カード104によって生成され、コンピューティング装置102に送信された暗号文が含まれ得る。ブロック404では、サーバは、マスター鍵114、UDK118、およびカウンタ116に基づいて1つ以上の多様化鍵120を生成することによって暗号文を復号化し得る。サーバ106は、暗号文をさらに検証し、たとえば、サーバ106によって生成されたMACが復号化された暗号文内のMACと一致するかどうかを判断する。
【0054】
ブロック406では、サーバ106は、ブロック404での暗号文の復号化および/または検証の成功に基づいて秘密鍵146を生成する。秘密鍵146は、HSM130の暗号化機能への入力に基づき得る。入力には、固有ID112と多様化係数158(たとえば、非接触カード104のカウンタ116および/またはPANシーケンス156)が含まれ得る。いくつかの実施形態では、入力には、マスター鍵114、UDK118、および/または多様化鍵120がさらに含まれ得る。ブロック408では、サーバ106は秘密鍵146に基づいて公開鍵148を生成し得る。サーバはさらに、公開鍵148に基づいてデジタル・ウォレット144のウォレット・アドレス150をさらに作成し得る。ブロック410では、サーバは、秘密鍵146、公開鍵148、およびウォレット・アドレス150をアプリケーションに送信し得る。ブロック412では、サーバ106は、秘密鍵を生成するために使用された1つ以上の入力を口座データベース128(例えば、固有ID112と多様化係数158)に格納する。
【0055】
図5は、ロジック・フローまたはルーチン500の実施形態を示す。ロジック・フロー500は、本明細書で説明する1つ以上の実施形態によって実行される操作の一部またはすべてを表し得る。たとえば、ロジック・フロー500には、デジタル・ウォレットにアクセスするための操作の一部またはすべてが含まれ得る。実施形態はこの文脈に限定されない。
【0056】
ブロック502では、ルーチン500は、サーバ106によって、コンピューティング装置102上で実行されている口座アプリケーション136から、暗号文を含むデジタル・ウォレット144へのアクセス要求を受信する。ブロック504では、サーバ106は、マスター鍵114、UDK118、およびカウンタ116に基づいて1つ以上の多様化鍵120を生成することによって暗号文を復号化し得る。サーバ106は、暗号文をさらに検証し、たとえば、サーバ106によって生成されたMACが復号化された暗号文内のMACと一致するかどうかを判断する。ブロック506では、サーバは成功した復号化と検証に基づいて認証を生成し得る。認証は、通常、デジタル・ウォレット144への要求されたアクセスが許可されることを示す。ブロック508では、サーバは口座アプリケーション136に認証を送信する。認証により、口座アプリケーション136は、デジタル・ウォレット144への要求されたアクセスを許可する。ただし、一部の実施形態では、デジタル・ウォレット144にアクセスするために秘密鍵146がさらに必要になる。
【0057】
図6は、ロジック・フローまたはルーチン600の実施形態を示す。ロジック・フロー600は、本明細書で説明する1つ以上の実施形態によって実行される操作の一部またはすべてを表し得る。たとえば、ロジック・フロー600には、デジタル・ウォレットの秘密鍵を回復するための操作の一部またはすべてが含まれ得る。実施形態はこの文脈に限定されない。
【0058】
ブロック602では、ルーチン600は、サーバ106によって口座アプリケーション136から、デジタル・ウォレット144の秘密鍵146を回復するための要求を受信する。要求には、鍵の多様化に基づいて(たとえば、マスター鍵114、UDK118、および1つ以上の多様化鍵120に基づいて)非接触カード104によって生成された暗号文が含まれ得る。ブロック604では、サーバ106は、マスター鍵114、UDK118、およびカウンタ116に基づいて1つ以上の多様化鍵120を生成することによって暗号文を復号化し得る。サーバ106は、暗号文をさらに検証し、たとえば、サーバ106によって生成されたMACが復号化された暗号文内のMACと一致するかどうかを判断する。
【0059】
ブロック606では、サーバ106は、復号化および検証に基づいて、非接触カード104の固有ID112と、口座データベース128内の多様化係数158(たとえば、カウンタ116および/またはPANシーケンス156)を決定し得る。ブロック608では、サーバ106は、固有ID112、多様化係数158、および任意のソルト154に基づいて秘密鍵146を再作成する。いくつかの実施形態では、サーバ106は、マスター鍵114、固有ID112、多様化係数158、および任意のソルト154に基づいて秘密鍵146を再作成する。いくつかの実施形態では、サーバ106は、UDK118、固有ID112、多様化係数158、および任意のソルト154に基づいて秘密鍵146を再作成する。いくつかの実施形態では、サーバ106は、多様化鍵120、固有ID112、多様化係数158、および任意のソルト154に基づいて秘密鍵146を再作成する。ブロック610では、サーバ106は、再作成された秘密鍵146をネットワーク経由で口座アプリケーション136に送信する。
【0060】
図7Aは、非接触カード104の構成例を示す概略
図700であり、非接触カード104には、非接触カード104の前面または背面にサービス・プロバイダのマーク702として表示される、サービス・プロバイダによって発行されたクレジット・カード、デビット・カード、ギフト・カードなどの支払いカードが含まれ得る。いくつかの例では、非接触カード104は支払いカードとは関係がなく、限定されないが、身分証明書を含み得る。いくつかの例では、取引カードには、デュアル・インターフェイスの非接触支払いカード、ポイント・カードなどが含まれ得る。非接触カード104には基板704が含まれ、基板704にはプラスチック、金属、その他の材料で構成された単層または1つ以上の積層層が含まれ得る。例示的な基板材料としては、ポリ塩化ビニル、ポリ塩化ビニルアセテート、アクリロニトリルブタジエンスチレン、ポリカーボネート、ポリエステル、陽極酸化チタン、パラジウム、金、炭素、紙、および生分解性材料が挙げられる。いくつかの例では、非接触カード104は、ISO/IEC7816規格のID-1形式に準拠した物理的特性を有し、取引カードは、ISO/IEC14443規格に準拠していることがあり得る。しかしながら、本開示による非接触カード104は異なる特性を有する場合があり、本開示では取引カードを支払いカードに実装する必要がないことが理解される。
【0061】
非接触カード104には、カードの表面および/または裏面に表示される識別情報706と、接触パッド708も含まれ得る。接触パッド708には1つ以上のパッドが含まれ、取引カードを介してATM、ユーザ装置、スマートフォン、ラップトップ、デスクトップ、またはタブレット・コンピュータなどの別のクライアント装置との接続を確立するように構成し得る。接触パッドは、ISO/IEC7816標準などの1つ以上の標準に従って設計され、EMVプロトコルに従った通信を可能にする。非接触カード104には、
図7Bでさらに説明するように、処理回路、アンテナ、およびその他のコンポーネントも含まれ得る。これらのコンポーネントは、接触パッド708の背後、または基板704上の他の場所(たとえば、基板704の別の層内)に配置され、接触パッド708と電気的および物理的に結合され得る。非接触カード104には、磁気ストリップまたはテープも含まれており、これらはカードの裏面に配置され得る(
図7Aには示されていない)。非接触カード104には、NFCプロトコルを介して通信可能なアンテナと結合された近距離無線通信(NFC)装置も含まれ得る。実施形態は、この方法に限定されるわけではない。
【0062】
図7Bに示すように、非接触カード104の接触パッド708には、プロセッサ712、メモリ108、および1つ以上の通信インターフェイス124を含む、情報を保存、処理、および通信するための処理回路710が含まれ得る。処理回路710には、本明細書で説明する機能を実行するために必要な、プロセッサ、メモリ、エラーおよびパリティ/CRCチェッカー、データ・エンコーダ、衝突防止アルゴリズム、コントローラ、コマンド・デコーダ、セキュリティ・プリミティブ、および改ざん防止ハードウェアなどの追加コンポーネントが含まれる場合があることが理解される。
【0063】
メモリ108は、読み取り専用メモリ、追記型メモリ、読み取り/書き込み型メモリ、たとえばRAM、ROM、EEPROMなどであり、非接触カード104にはこれらのメモリが1つ以上含まれ得る。読み取り専用メモリは、読み取り専用または1回限りのプログラム可能として工場でプログラムし得る。ワンタイム・プログラミングにより、一度書き込んでから何度も読み取る機会が提供される。一度書き込み/複数回読み取り可能なメモリは、メモリ・チップが工場を出荷された後の時点でプログラムされ得る。メモリは一度プログラムされると、書き換えることはできないが、何度も読み取り得る。読み取り/書き込みメモリは、工場出荷後、何度もプログラムおよび再プログラムされ得る。読み取り/書き込みメモリは、工場出荷後も何度も読み取られ得る。場合によっては、メモリ108は、プロセッサ712によって実行される暗号化アルゴリズムを使用してデータを暗号化する暗号化メモリであり得る。
【0064】
メモリ108は、1つ以上のアプレット110、1つ以上のカウンタ116、固有ID112、マスター鍵114、UDK118、多様化鍵120、およびPANシーケンス156を格納するように構成し得る。1つ以上のアプレット110は、Java(登録商標)Cardアプレットなど、1つ以上の非接触カード104上で実行するように構成された1つ以上のソフトウェア・アプリケーションで構成される。ただし、アプレット110はJava Cardアプレットに限定されず、非接触カードまたはメモリが制限された他の装置上で動作可能な任意のソフトウェア・アプリケーションであってもよいことが理解される。1つ以上のカウンタ116は、整数を格納するのに十分な数値カウンタを含み得る。固有ID112は、非接触カード104に割り当てられた固有の英数字識別子で構成され、この識別子によって非接触カード104が他の非接触カード104と区別される。いくつかの例では、固有ID112は、顧客とその顧客に割り当てられたアカウントの両方を識別し得る。
【0065】
前述の例示的な実施形態のプロセッサ712およびメモリ要素は、接触パッド708を参照して説明されているが、本開示はこれに限定されない。これらの要素は、接触パッド708の外部に実装することも、完全に別個に実装することも、または接触パッド708内に配置されたプロセッサ712およびメモリ108要素に加えて追加の要素として実装することもできることが理解される。
【0066】
いくつかの例では、非接触カード104は1つ以上のアンテナ714を備え得る。1つまたは複数のアンテナ714は、非接触カード104内および接触パッド708の処理回路710の周囲に配置され得る。たとえば、1つ以上のアンテナ714は、処理回路710と一体化されていてもよく、1つ以上のアンテナ714は、外部ブースタ・コイルと共に使用され得る。別の例として、1つ以上のアンテナ714は、接触パッド708および処理回路710の外部にあってもよい。
【0067】
一実施形態では、非接触カード104のコイルは、空芯変圧器の二次側として機能し得る。端末は、電力を遮断するか、振幅変調することによって非接触カード104と通信し得る。非接触カード104は、1つ以上のコンデンサを通じて機能的に維持される非接触カード104の電源接続のギャップを使用して、端末から送信されたデータを推測し得る。非接触カード104は、非接触カード104のコイルの負荷を切り替えるか、負荷変調することによって通信を返信し得る。干渉により端末のコイルで負荷変調が検出され得る。より一般的には、アンテナ714、プロセッサ712、および/またはメモリ108を使用して、非接触カード104は、NFC、Bluetooth、および/またはWi-Fi通信を介して通信するための通信インターフェイスを提供する。
【0068】
上述したように、非接触カード104は、スマート・カードまたはJava Cardなどのメモリが制限された他の装置上で動作可能なソフトウェア・プラットフォーム上に構築され、1つ以上のアプリケーションまたはアプレットを安全に実行し得る。アプレット110を非接触カードに追加して、さまざまなモバイル・アプリケーションベースのユース・ケースで多要素認証(MFA:MultiFactor Authentication)用のワンタイム・パスワード(OTP:One-Time Password)を提供し得る。アプレット110は、モバイルNFCリーダ(モバイル・コンピューティング装置102またはPOS端末など)などのリーダからの1つ以上の要求(近距離データ交換要求など)に応答し、NDEFテキスト・タグとしてエンコードされた暗号化された安全なOTPを含むNDEFメッセージを生成するように構成し得る。NDEFメッセージには、暗号文122や暗号文208などの暗号文やその他のデータが含まれ得る。
【0069】
NDEF OTPの一例は、NDEFショートレコードレイアウト(SR=1)である。このような例では、1つ以上のアプレット110が、OTPをNDEFタイプ4の既知のタイプのテキスト・タグとしてエンコードするように構成され得る。いくつかの例では、NDEFメッセージは1つ以上のレコードで構成され得る。アプレット110は、OTPレコードに加えて1つ以上の静的タグレコードを追加するように構成し得る。
【0070】
いくつかの例では、1つ以上のアプレット110は、RFIDタグをエミュレートするように構成され得る。RFIDタグには、1つ以上の多形性タグが含まれ得る。いくつかの例では、タグが読み取られるたびに、非接触カードの信頼性を示す可能性のある異なる暗号データが提示される。1つ以上のアプレット110に基づいて、タグのNFC読み取りが処理され、データが銀行システムのサーバなどのサーバに送信され、データがサーバで検証され得る。
【0071】
いくつかの例では、非接触カード104およびサーバには、カードが適切に識別されるように特定のデータが含まれ得る。非接触カード104には、1つ以上の固有識別子(図示せず)が含まれ得る。読み取り操作が行われるたびに、カウンタ116が増加するように構成され得る。いくつかの例では、非接触カード104からのデータが読み取られるたびに(たとえば、モバイル装置によって)、カウンタ116が検証のためにサーバに送信され、カウンタ116が(検証の一部として)サーバのカウンタと等しいかどうかが判断される。
【0072】
1つ以上のカウンタ116は、リプレイ攻撃を防止するように構成され得る。たとえば、暗号文が取得され再生された場合、カウンタ116が読み取られたり、使用されたり、あるいはその他の方法で渡されたりすると、その暗号文は直ちに拒否される。カウンタ116が使用されていない場合は、再プレイし得る。いくつかの例では、非接触カード104上で増加されるカウンタは、取引に対して増加されるカウンタとは異なる。非接触カード104上のアプレット110間に通信がないため、非接触カード104はアプリケーション取引カウンタ116を判別できない。いくつかの例では、非接触カード104は、取引アプレットである第1アプレット440-1と、第2アプレット440-2とを含み得る。各アプレット440-1および440-2は、それぞれカウンタ116を含み得る。
【0073】
いくつかの例では、カウンタ116が同期しなくなり得る。いくつかの例では、斜めからの読み取りなど、取引を開始する偶発的な読み取りを考慮すると、カウンタ116は増加するが、アプリケーションはカウンタ116を処理しないことがあり得る。いくつかの例では、装置102が起動されると、NFCが有効になり、コンピューティング装置102は利用可能なタグを読み取るように構成され得るが、読み取りに応答するアクションは実行されない。
【0074】
カウンタ116を同期状態に保つために、バックグラウンド・アプリケーションなどのアプリケーションが実行され、コンピューティング装置102が起動したことを検知し、検知によって読み取りが発生したことを示す銀行システムのサーバと同期してカウンタ116を進めるように構成される。他の例では、ハッシュ化されたワンタイム・パスワードが利用され、誤った同期のウィンドウが受け入れられ得る。たとえば、しきい値10以内の場合、カウンタ116は前進するように構成し得る。ただし、異なるしきい値数内、たとえば10または600以内であれば、ユーザが装置を介して1回以上タップ、ジェスチャ、またはその他の方法で指示する1つ以上のアプリケーションを介して要求される再同期の実行要求が処理され得る。カウンタ116が適切な順序で増加すると、ユーザがその操作を実行したことを知り得る。
【0075】
カウンタ116、マスター鍵114、UDK118、および多様化鍵120を参照して本明細書で説明する鍵多様化技術は、暗号化および/または復号化鍵多様化技術の一例である。この例の鍵多様化手法は、他の種類の鍵多様化手法にも同様に適用されるため、開示を制限するものとは見なされない。
【0076】
非接触カード104の作成プロセス中に、カードごとに2つの暗号鍵が一意に割り当てられ得る。暗号鍵は、データの暗号化と復号化の両方に使用できる対称鍵で構成され得る。EMVではトリプルDES(3DES)アルゴリズムが使用され得るものであり、これは非接触カード104のハードウェアによって実装される。鍵多様化プロセスを使用すると、鍵を必要とする各エンティティの一意に識別可能な情報に基づいて、マスター鍵から1つ以上の鍵を派生し得る。
【0077】
いくつかの例では、脆弱性の影響を受けやすい可能性がある3DESアルゴリズムの欠陥を克服するために、セッション鍵が導出され得る(セッションごとに固有鍵など)が、マスター鍵を使用するのではなく、固有のカード導出鍵(UDK118など)とカウンタが多様化データとして使用され得る。たとえば、非接触カード104が動作中に使用されるたびに、メッセージ認証コード(MAC)の作成と暗号化の実行に異なる鍵が使用され得る。これにより、暗号化は3層になる。セッション鍵は、1つ以上のアプレットによって生成され、1つ以上のアルゴリズム(EMV 4.3 Book 2 A1.3.1共通セッション鍵導出の定義)を備えたアプリケーション取引カウンタを使用して導出される。
【0078】
さらに、各カードの増分は一意であり、パーソナライゼーションによって割り当てられるか、または何らかの識別情報によってアルゴリズム的に割り当てられる。たとえば、奇数カードは2増加し、偶数カードは5増加し得る。いくつかの例では、増分は連続読み取りでも変化する可能性があり、1枚のカードが1、3、5、2、2、… と順番に増加し、それが繰り返され得る。特定のシーケンスまたはアルゴリズム・シーケンスは、パーソナライゼーション時に定義することも、固有識別子から派生した1つ以上のプロセスから定義し得る。これにより、リプレイ攻撃者が少数のカード・インスタンスから一般化することが難しくなる。
【0079】
認証メッセージは、16進ASCII形式のテキストNDEFレコードの内容として配信され得る。別の例では、NDEFレコードは16進形式でエンコードされ得る。
【0080】
図8は、一実施例によるNDEFショートレコードレイアウト(SR=1)データ構造800を示す。1つ以上のアプレット110は、OTPをNDEFタイプ4の既知のタイプのテキスト・タグとしてエンコードするように構成し得る。一部の例では、NDEFメッセージは1つ以上のレコードで構成される。アプレットは、OTPレコードに加えて1つ以上の静的タグレコードを追加するように構成し得る。例示的なタグには、以下が含まれる。タグ・タイプ:既知のタイプ、テキスト、エンコード英語(en);アプレットID:D2760000850101;機能:読み取り専用アクセス;エンコード:認証メッセージはASCII16進数としてエンコードし得る;タイプ長値(TLV:Type-Length-Value)データは、NDEFメッセージの生成に使用できるパーソナライズパラメータとして提供され得る(ただし、これらに限定されない)。一実施形態では、認証テンプレートは、実際の動的認証データを提供するための既知のインデックスを備えた最初のレコードを含み得る。データ構造800には、暗号文122や暗号文208などの暗号文、およびアプレット110によって提供されるその他のデータが含まれ得る。
【0081】
図9は、開示された実施形態と一致する例示的なシステム900の概略図を示す。システム900は、ネットワーク902を介してブロックチェーン906にアクセスできるシステムで構成され得る。
【0082】
システム900は、ブロックチェーン906を使用して、信頼性のないやり取りの記録を生成し得る。さらに、ブロックチェーン906は複数のコンピューティング・システムに分散でき、ブロックチェーン906に格納された記録の有効性に対する信頼を高めることができる。このように、開示されたシステムは、従来のシステムにおける少なくとも上記の技術的問題に対する革新的な技術的解決策を提供する。
【0083】
ユーザ・システム904には、コンピューティング装置102が含まれ得る。ユーザ・システム904は、開示された実施形態に従って、デジタル・ウォレット144を使用して取引を処理するように構成され得る。ユーザ・システム904は、サーバ、ワークステーション、デスクトップ、またはモバイル装置(ラップトップ、タブレット、ファブレット、スマートフォン、スマートウォッチ、または同様のモバイル・コンピューティング装置など)などのコンピューティング装置で構成され得る。
図12に関して以下で説明するように、ユーザ・システム904は、ディスプレイおよび入出力インターフェイスを備えて構成され得る。ユーザ・システム904は、ディスプレイおよび入出力インターフェイスを使用してユーザ(図示せず)と対話するように構成し得る。
【0084】
メンバ・システム908は、開示された実施形態に従って取引を処理するように構成され得る。メンバ・システム908には、サーバ、ワークステーション、デスクトップ・コンピュータ、または専用コンピューティング装置などの1つ以上のコンピューティング装置が含まれ得る。メンバ・システム908はスタンドアロンである場合もあれば、サブシステムの一部である場合もあり、サブシステムはより大きなシステムの一部である場合もある。たとえば、メンバ・システム908は商業機関に関連付けられ得る。メンバ・システム908には、リモートに配置され、パブリック・ネットワークまたは専用のプライベート・ネットワークを介して金融機関の他のシステムと通信する分散サーバが含まれ得る。
【0085】
メンバ・システム908は、デジタル・ウォレット144の暗号通貨を使用して取引を処理する要求を受信するように構成され得る。いくつかの実施形態では、メンバ・システム908は、別のメンバ・システム908やユーザ・システム904など、システム900の別の要素からの要求を受信するように構成され得る。メンバ・システム908は、ブロックチェーン906と対話して取引要求を処理するように構成され得る。
【0086】
メンバ・システム908は、開示された実施形態に従って、ブロックチェーン906にメッセージを格納するように構成し得る。いくつかの側面では、メンバ・システム908は、メッセージを含むブロックをブロックチェーン906に追加するように構成され得る。さまざまな側面において、メンバ・システム908は、許可されたシステムにメッセージを提供するように構成され得る。認証されたシステムは、メッセージを含むブロックをブロックチェーン906に追加するように構成され得る。
図10に関して以下で説明するように、メッセージは取引記録を含み得る。
【0087】
ブロックチェーン906は、開示された実施形態と一致する分散データ構造を備え得る。ブロックチェーン906はプライベート・ブロックチェーンであり得る。たとえば、認証されたシステムはブロックチェーン906のコピーを保存し得る。これらの認証されたシステムは、ブロックチェーン906にブロックを追加し、そのブロックを他の認証されたシステムに公開するように構成し得る。認証されたシステムは、ブロックチェーン906に公開するために他のシステムからメッセージを受信するように構成し得る。これらの他のシステムは、ブロックチェーン906への読み取り専用アクセス権を持ち得る。いくつかの実施形態では、1つ以上のメンバ・システム908は、認証されたシステムである。いくつかの実施形態では、1つ以上のユーザ・システム904は、認証されたシステムである。
図9に関して詳細に説明したように、ブロックチェーン906は、メンバ・システムからのメッセージ(取引を含む)を格納するように構成し得る。
【0088】
ネットワーク902は、
図9のコンポーネント間の通信を提供するように構成され得る。たとえば、ネットワーク902は、インターネット、ローカル・エリア・ネットワーク、または認証システム900が認証システム900のコンポーネント間で情報を送受信できるようにするその他の適切な接続など、通信を提供し、情報を交換し、および/または情報交換を容易にする任意のタイプのネットワーク(インフラストラクチャを含む)であり得る。
【0089】
図10は、開示された実施形態と一致する例示的なブロックチェーン906の論理モデル1000を示す。ブロックチェーン906は、多くの異なるシステム(たとえば、メンバ・システム908または他のシステム)によって維持される多数のこのようなブロックチェーンを備え得る。このような例示的なブロックチェーンは、ブロック1006aからブロック1006dなどのブロックを備え得る。ブロックには、メッセージ1008aからメッセージ1008dなどのメッセージが含まれ得る。一般に、ブロックには、各ブロックを一意に識別するヘッダ(ヘッダ1002aから1002dなど)が含まれ得る。ヘッダ1002aから1002dには、ハッシュ関数によって生成されたハッシュ値が含まれ得る。ハッシュ関数は、任意のサイズの入力データを固定サイズのハッシュ値にマッピングするために使用できる関数である。たとえば、ヘッダには、前のブロックのハッシュ値、ブロック内のメッセージに基づいて生成されたハッシュ値(Merkleルートなど)、およびタイムスタンプの少なくとも1つが含まれ得る。開示された実施形態と一致して、システム900は、ブロックチェーン906に追加されたブロックが作業証明条件とデジタル署名条件の少なくとも1つを満たすことを要求し得る。たとえば、ヘッダ1002aから1002dには、ヘッダがプルーフ・オブ・ワーク条件1004aから1004dを満たすことを保証するために選択されたnonceが含まれる場合があります。限定されない例として、プルーフ・オブ・ワーク条件1004aから1004dでは、ヘッダのハッシュが所定の値の範囲内に収まることが要求され得る。追加の例として、ヘッダは、認証されたシステムの暗号鍵(例えば、秘密鍵146)を使用してデジタル署名され、デジタル署名がヘッダ内に含まれ得る。このデジタル署名は、システム900のメンバが利用できる鍵を使用して検証し得る。
【0090】
図11は、開示された実施形態と一致する、ブロックチェーン(例えば、ブロックチェーン906の要素)に格納されたメッセージ1008bの論理モデル1100を示す。いくつかの実施形態では、メッセージ1008bはインデックス情報1102を備え得る。特定の態様では、インデックス情報1102は、ユーザを識別する情報を備え得る。たとえば、インデックス情報1102は、ユーザのフルネーム、電子メールアドレス、電話番号、またはその他の機密性のない個人情報のうちの少なくとも1つであり得る。さまざまな側面において、インデックス情報1102には、プライベート・ブロックチェーン内の以前のブロックへの1つ以上の参照が含まれ得る。たとえば、インデックス情報1102には、同じユーザに関連付けられた1つ以上の以前のブロックへの1つ以上の参照が含まれ得る。参照には、限定されない例として、同じユーザに関連付けられたブロックチェーン内の前のブロックのハッシュが含まれ得る。いくつかの側面では、インデックス情報1102は、当業者に知られている方法に従って難読化または暗号化され得る。たとえば、インデックス情報1102は、秘密鍵146などの暗号鍵を使用して暗号化され得る。追加の例として、インデックス情報1102は、ユーザのフルネーム、電子メールアドレス、電話番号、またはその他の機密性のない個人情報のうちの少なくとも1つのハッシュを備え得る。
【0091】
メッセージ1008bは、開示された実施形態に従って、追加情報1104を備え得る。追加情報1104には、あるデジタル・ウォレット144から別のデジタル・ウォレット144に転送される暗号通貨の金額などの取引の詳細が含まれ得る。さまざまな側面において、追加情報1104は、当業者に知られている方法に従って難読化または暗号化され得る。たとえば、ルートシステム情報1104は、秘密鍵146などの暗号化鍵を使用して暗号化され得る。
【0092】
メッセージ1008bは、開示された実施形態と一致して、認証レコード1106を備え得る。いくつかの側面では、認証レコード1106は、取引のその後の監査を可能にする情報を備え得る。たとえば、認証レコード1106は、メンバ・システム908、メンバ・システム908に関連付けられた商業機関、認証レコード1106の目的(例:取引の詳細)のうち少なくとも1つを識別し得る。いくつかの側面では、認証レコード1106は、当業者に知られている方法に従って難読化または暗号化され得る。たとえば、認証レコード1106は、秘密鍵146などの暗号化鍵を使用して暗号化され得る。
【0093】
開示された実施形態と一致して、秘密鍵146などの暗号化鍵は、ブロック内のメッセージの要素を暗号化するために使用し得る。いくつかの側面では、このような暗号鍵は、認証システム900のメンバ(たとえば、メンバ・システム908)に関連付けられ得る。さまざまな側面において、少なくとも一部の暗号鍵は、認証されたシステムに関連付けられ得る。開示された実施形態と一致して、公開鍵148などの対応する暗号化鍵を使用して、暗号化されたメッセージ要素を復号化できる場合がある。たとえば、ブロック内のメッセージの要素が対称鍵で暗号化されている場合、同じ対称鍵を使用して暗号化された要素を復号化できる場合がある。別の例として、ブロック内のメッセージの要素が秘密鍵146で暗号化されている場合、対応する公開鍵148を使用して暗号化された要素を復号化できる場合がある。いくつかの側面では、対応する暗号鍵は、認証システムのメンバー(たとえば、メンバ・システム908)が利用できる場合がある。
【0094】
図12は、前述の様々な実施形態を実装するのに適した例示的なコンピュータ・アーキテクチャ1200の実施形態を示す。一実施形態では、コンピュータ・アーキテクチャ1200は、コンピューティング・アーキテクチャ100を含むか、またはコンピューティング・アーキテクチャ100の一部として実装され得る。
【0095】
このアプリケーションで使用される「システム」および「コンポーネント」という用語は、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連のエンティティを指すことを意図しており、その例は、例示的なコンピューティング・コンピュータアーキテクチャ1200によって提供される。たとえば、コンポーネントには、プロセッサ上で実行されるプロセス、プロセッサ、ハード・ディスク・ドライブ、複数のストレージ・ドライブ(光学式および/または磁気式ストレージ・メディア)、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータなどがありますが、これらに限定されない。例として、サーバ上で実行されているアプリケーションとサーバの両方がコンポーネントになることができる。1つ以上のコンポーネントがプロセスおよび/または実行スレッド内に存在でき、コンポーネントは1台のコンピュータにローカライズすることも、2台以上のコンピュータに分散することもできまる。さらに、コンポーネントは、操作を調整するために、さまざまな種類の通信メディアによって相互に通信的に結合され得る。調整には、一方向または双方向の情報交換が含まれ得る。たとえば、コンポーネントは、通信メディアを介して通信される信号の形式で情報を通信し得る。情報は、さまざまな信号線に割り当てられた信号として実装できる。このような割り当てでは、各メッセージは信号になる。しかしながら、さらなる実施形態では、データ・メッセージを代わりに使用し得る。このようなデータ・メッセージは、さまざまな接続を介して送信される可能性があります。例示的な接続には、パラレル・インターフェイス、シリアル・インターフェイス、およびバス・インターフェイスが含まれます。
【0096】
コンピュータ・アーキテクチャ1200には、1つ以上のプロセッサ、マルチ・コア・プロセッサ、コ・プロセッサ、メモリ・ユニット、チップ・セット、コントローラ、周辺機器、インターフェイス、発振器、タイミング装置、ビデオ・カード、オーディオ・カード、マルチメディア入出力(I/O)コンポーネント、電源などのさまざまな一般的なコンピューティング要素が含まれる。しかしながら、実施形態は、コンピューティング・コンピュータ・アーキテクチャ1200による実装に限定されない。
【0097】
図12に示すように、コンピュータ・アーキテクチャ1200は、プロセッサ1202、システム・メモリ1204、およびシステム・バス1206を含むコンピュータ1212を含む。プロセッサ1202は、市販されているさまざまなプロセッサのいずれかになり得る。コンピュータ1212は、コンピューティング装置102および/またはサーバ106を表し得る。
【0098】
システム・バス1206は、システム・メモリ1204からプロセッサ1202までを含むシステム・コンポーネント用のインターフェイスを提供する。システム・バス1206は、市販されているさまざまなバス・アーキテクチャのいずれかを使用して、メモリ・バス(メモリ・コントローラの有無にかかわらず)、周辺バス、およびローカル・バスにさらに相互接続できる、いくつかの種類のバス構造のいずれかになり得る。インターフェイス・アダプタは、スロット・アーキテクチャを介してシステム・バス1206に接続し得る。スロット・アーキテクチャの例には、Accelerated Graphics Port (AGP)、カード・バス、(拡張)業界標準アーキテクチャ((E)ISA)、マイクロ・チャネル・アーキテクチャ(MCA)、NuBus、Peripheral Component Interconnect (Extended) (PCI(X))、PCI Express、Personal Computer Memory Card International Association(PCMCIA)などが含まれるが、これらに限定されない。
【0099】
コンピュータ・アーキテクチャ1200には、さまざまな製造品が含まれたり、実装されたりする場合がある。製造物には、ロジックを保存するためのコンピュータ読み取り可能な記憶媒体が含まれ得る。コンピュータ読み取り可能な記憶媒体の例には、揮発性メモリまたは不揮発性メモリ、取り外し可能または取り外し不可能なメモリ、消去可能または消去不可能なメモリ、書き込み可能または再書き込み可能なメモリなど、電子データを保存できる任意の有形媒体が含まれる。ロジックの例には、ソース・コード、コンパイルされたコード、解釈されたコード、実行可能コード、静的コード、動的コード、オブジェクト指向コード、ビジュアル・コードなどの任意の適切なタイプのコードを使用して実装された実行可能なコンピュータ・プログラム命令が含まれ得る。実施形態は、少なくとも部分的に、非一時的なコンピュータ読み取り可能な媒体に含まれる命令として実装されることもあり、その命令は、1つ以上のプロセッサによって読み取られ、実行されて、本明細書で説明される操作の実行をし得る。
【0100】
システム・メモリ1204には、読み取り専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、ダイナミックRAM (DRAM)、ダブル・データ・レートDRAM (DDRAM)、同期DRAM (SDRAM)、スタティックRAM (SRAM)、プログラマブルROM (PROM)、消去可能プログラマブルROM (EPROM)、電気的に消去可能プログラマブルROM (EEPROM)、フラッシュ・メモリ、強誘電体ポリマー・メモリなどのポリマー・メモリ、オボニック・メモリ、相変化または強誘電体メモリ、シリコン酸化物窒化物酸化物シリコン(SONOS)メモリ、磁気カードまたは光カード、冗長独立ディスク・アレイ(RAID)ドライブなどの装置のアレイ、ソリッド・ステート・メモリ装置(USBメモリ、ソリッド・ステート・ドライブ(SSD)など)、および情報の保存に適したその他のタイプのストレージ・メディアなど、1つ以上の高速メモリ・ユニットの形式でさまざまな種類のコンピュータ読み取り可能なストレージ・メディアが含まれ得る。
図12に示す実施形態では、システム・メモリ1204は不揮発性メモリ1208および/または揮発性メモリ1210を含むことができる。基本入出力システム(BIOS)は不揮発性メモリ1208に保存できる。
【0101】
コンピュータ1212には、内部(または外部)ハード・ディスク・ドライブ1214、取り外し可能な磁気ディスク1218の読み取りまたは書き込みを行う磁気ディスク・ドライブ1216、取り外し可能な光ディスク1222(CD-ROMやDVDなど)の読み取りまたは書き込みを行う光ディスク・ドライブ1220など、1つ以上の低速メモリ・ユニットの形式でさまざまな種類のコンピュータ読み取り可能な記憶媒体が含まれ得る。ハード・ディスク・ドライブ1214、磁気ディスク・ドライブ1216、および光ディスク・ドライブ1220は、それぞれHDDインターフェイス1224、FDDインターフェイス1226、および光ディスク・ドライブ・インターフェイス1228によってシステム・バス1206に接続できる。外部ドライブ実装用のHDDインターフェイス1224には、ユニバーサル・シリアル・バス(USB)インターフェイス・テクノロジとIEEE 1394インターフェイス・テクノロジの少なくとも1つまたは両方を含めることができる。
【0102】
ドライブおよび関連するコンピュータ読み取り可能なメディアは、データ、データ構造、コンピュータ実行可能命令などの揮発性および/または不揮発性ストレージを提供する。たとえば、オペレーティング・システム1230、1つ以上のアプリケーション1232、その他のプログラム・モジュール1234、およびプログラム・データ1236を含む多数のプログラム・モジュールをドライブおよび不揮発性メモリ1208と揮発性メモリ1210に格納できる。一実施形態では、1つ以上のアプリケーション1232、他のプログラム・モジュール1234、およびプログラム・データ1236には、例えば、システム100のさまざまなアプリケーションおよび/またはコンポーネントが含まれ得る。
【0103】
ユーザは、キーボード1238やマウス1240などのポインティング装置など、1つ以上の有線/無線入力装置を介して、コンピュータ1212にコマンドや情報を入力できる。その他の入力装置には、マイク、赤外線(IR)リモート・コントロール、無線周波数(RF)リモート・コントロール、ゲーム・パッド、スタイラス・ペン、カード・リーダ、ドングル、指紋リーダ、手袋、グラフィック・タブレット、ジョイスティック、キーボード、網膜リーダ、タッチ・スクリーン(静電容量式、抵抗式など)、トラックボール、トラック・パッド、センサ、スタイラスなどが含まれる。これらおよびその他の入力装置は、システム・バス1206に結合された入力装置インターフェイス1242を介してプロセッサ1202に接続されることが多いが、パラレル・ポート、IEEE1394シリアル・ポート、ゲーム・ポート、USBポート、IRインターフェイスなどの他のインターフェイスによって接続することもできる。
【0104】
モニタ1244または他のタイプのディスプレイ装置も、ビデオ・アダプタ1246などのインターフェイスを介してシステム・バス1206に接続される。モニタ1244はコンピュータ1212の内部または外部に配置し得る。コンピュータには通常、モニタ1244に加えて、スピーカ、プリンタなどの他の周辺出力装置が含まれる。
【0105】
コンピュータ1212は、リモート・コンピュータ1248などの1台以上のリモート・コンピュータへの有線および/または無線通信による論理接続を使用して、ネットワーク環境で動作し得る。リモート・コンピュータ1248は、ワークステーション、サーバ・コンピュータ、ルータ、パーソナル・コンピュータ、ポータブル・コンピュータ、マイクロプロセッサ・ベースのエンターテイメント機器、ピア装置、またはその他の共通ネットワーク・ノードであり、通常はコンピュータ1212に関連して説明した要素の多くまたはすべてを含むが、簡潔にするために、メモリおよび/またはストレージ装置1250のみが示されている。図示の論理接続には、ローカル・エリア・ネットワーク1252や、たとえばワイド・エリア・ネットワーク1254などのより大規模なネットワークへの有線/無線接続が含まれる。このようなLANおよびWANネットワーク環境は、オフィスや企業では一般的であり、イントラネットなどの企業全体のコンピュータ・ネットワークを促進し、これらのネットワークはすべて、インターネットなどのグローバル通信ネットワークに接続し得る。
【0106】
ローカル・エリア・ネットワーク1252のネットワーク環境で使用される場合、コンピュータ1212は、有線および/または無線通信ネットワーク・インターフェイスまたはネットワーク・アダプタ1256を介してローカル・エリア・ネットワーク1252に接続される。ネットワーク・アダプタ1256は、ローカル・エリア・ネットワーク1252への有線および/または無線通信を容易にでき、ローカル・エリア・ネットワーク1252には、ネットワーク・アダプタ1256の無線機能と通信するために、その上に配置された無線アクセスポイントも含み得る。
【0107】
ワイド・エリア・ネットワーク1254のネットワーキング環境で使用される場合、コンピュータ1212は、モデム1258を含むことができ、またはワイド・エリア・ネットワーク1254上の通信サーバに接続され、またはインターネットによるなど、ワイド・エリア・ネットワーク1254を介して通信を確立するための他の手段を有する。モデム1258は、内部または外部、および有線装置および/または無線装置であることができ、入力装置インターフェイス1242を介してシステム・バス1206に接続する。ネットワーク化された環境では、コンピュータ1212に関連して描かれたプログラム・モジュール、またはその一部は、リモート・メモリおよび/またはストレージ装置1250に記憶され得る。示されたネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段を使用できることが理解されよう。
【0108】
コンピュータ1212は、ワイヤレス通信(例:IEEE802.11無線変調技術)で動作可能に配置されたワイヤレス装置など、IEEE802ファミリの規格を使用する有線およびワイヤレス装置またはエンティティと通信するように動作可能である。これには、少なくともWi-Fi(登録商標)(またはWireless Fidelity)、WiMax、およびBluetooth(登録商標)ワイヤレス技術などが含まれる。このように、通信は、従来のネットワークのようにあらかじめ定義された構造であることも、少なくとも2つの装置間の単なるアドホック通信であることもあり得る。Wi-Fiネットワークは、IEEE802.11(a、b、g、n、ac、axなど)と呼ばれる無線技術を使用し、安全で信頼性が高く、高速なワイヤレス接続を提供する。Wi-Fiネットワークは、コンピュータ同士やインターネット、有線ネットワーク(IEEE802.3関連のメディアと機能を使用するもの)との接続に使用できる。
【0109】
図1A~
図12を参照して先に説明したような装置の様々な要素は、様々なハードウェア要素、ソフトウェア要素、または両方の組み合わせを含み得る。ハードウェア要素の例としては、装置、論理装置、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ、回路要素(たとえば、トランジスタ、抵抗器、コンデンサ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラマブル論理装置(PLD)、デジタル信号プロセッサ(DSP)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、メモリ・ユニット、論理ゲート、レジスタ、半導体装置、チップ、マイクロチップ、チップ・セットなどを含み得る。ソフトウェア要素の例としては、ソフトウェア・コンポーネント、プログラム、アプリケーション、コンピュータ・プログラム、アプリケーション・プログラム、システム・プログラム、ソフトウェア開発プログラム、マシン・プログラム、オペレーティング・システム・ソフトウェア、ミドルウェア、ファームウェア、ソフトウェア・モジュール、ルーチン、サブルーチン、関数、方法、手順、ソフトウェア・インターフェイス、アプリケーション・プログラム・インターフェイス(API)、命令セット、コンピューティング・コード、コンピュータ・コード、コード・セグメント、コンピュータ・コード・セグメント、ワード、値、シンボル、またはそれらの任意の組み合わせを含み得る。しかし、実施形態がハードウェア要素および/またはソフトウェア要素を使用して実装されるかどうかを決定することは、所与の実装に対して所望される計算速度、電力レベル、熱許容範囲、処理サイクル予算、入力データ速度、出力データ速度、メモリ・リソース、データバス速度、および他の設計または性能制約など、任意の数の要因に従って変化し得る。
【0110】
少なくとも1つの実施形態の1つまたは複数の側面は、プロセッサ内のさまざまなロジックを表す機械可読媒体に格納された代表的な命令によって実装されてもよく、この命令は、機械によって読み取られると、本明細書で説明する技術を実行するロジックを機械に作製させる。「IPコア」として知られるこのような表現は、有形の機械可読媒体に格納され、論理またはプロセッサを製造する製造機械にロードするために、さまざまな顧客または製造施設に供給され得る。いくつかの実施形態は、例えば、機械によって実行されると、実施形態に従った方法および/または動作を機械に実行させる命令または命令セットを記憶できる機械可読媒体または物品を使用して実装され得る。そのような機械は、例えば、任意の適切な処理プラットフォーム、コンピューティング・プラットフォーム、コンピューティング装置、プロセッシング装置、コンピューティング・システム、プロセッシングシステム、コンピュータ、プロセッサなどを含むことができ、任意の適切なハードウェアおよび/またはソフトウェアの組み合わせを使用して実装されることができる。機械可読媒体または物品は、例えば、任意の適切なタイプのメモリ・ユニット、メモリ装置、メモリ物品、メモリ媒体、ストレージ装置、記憶物品、記憶媒体および/または記憶ユニット、例えば、メモリ、取り外し可能または取り外し不可能な媒体、消去可能または消去不可能な媒体、書き込み可能または再書き込み可能な媒体、デジタルまたはアナログ媒体、ハード・ディスク、フロッピー・ディスク、コンパクト・ディスク読み取り専用メモリ(CD-ROM)、コンパクト・ディスク記録可能(CD-R)、コンパクト・ディスク書き換え可能(CD-RW)、光ディスク、磁気媒体、光磁気媒体、取り外し可能なメモリカードまたはディスク、様々なタイプのデジタル多用途ディスク(DVD)、テープ、カセットなど。命令は、ソース・コード、コンパイル済みコード、解釈済みコード、実行可能コード、静的コード、動的コード、暗号化コードなど、任意の適切なタイプのコードを含むことができ、任意の適切な高レベル、低レベル、オブジェクト指向、視覚的、コンパイル済みおよび/または解釈済みプログラミング言語を使用して実装されることができる。
【0111】
上述した装置の構成要素および機能は、ディスクリート回路、特定用途向け集積回路(ASIC)、論理ゲートおよび/またはシングル・チップ・アーキテクチャの任意の組み合わせを使用して実装し得る。さらに、装置の特徴は、マイクロコントローラ、プログラマブル・ロジック・アレイおよび/またはマイクロプロセッサ、または好適には前述の任意の組み合わせを使用して実装され得る。本明細書では、ハードウェア、ファームウェア、および/またはソフトウェア要素は、「論理」または「回路」と総称または個別に呼ばれる場合があることに留意されたい。
【0112】
上述したブロック図に示された例示的な装置は、多くの潜在的な実装の1つの機能的説明例を表す可能性があることが理解されよう。したがって、添付の図に描かれているブロック機能の分割、省略、または包含は、これらの機能を実装するためのハードウェア構成要素、回路、ソフトウェア、および/または要素が、実施形態において必ずしも分割、省略、または包含されることを推論するものではない。
【0113】
少なくとも1つのコンピュータ読み取り可能な記憶媒体は、実行されると、本明細書に記載されるコンピュータ実装方法のいずれかをシステムに実行させる命令を含み得る。
【0114】
いくつかの実施形態は、「一実施形態(one embodiment)」または「一実施形態(an embodiment)」という表現を、それらの派生語とともに用いて説明される場合がある。これらの用語は、実施形態に関連して説明される特定の特徴、構造、または特性が、少なくとも1つの実施形態に含まれることを意味する。本明細書中のさまざまな場所で「1つの実施形態において」という表現が現れるが、必ずしもすべてが同じ実施形態を指すわけではない。さらに、特に断らない限り、上述した特徴は、任意の組み合わせで一緒に使用可能であると認識される。したがって、別々に説明した特徴は、特徴が互いに互換性がないと指摘されない限り、互いに組み合わせて採用し得る。
【0115】
本開示の要約は、読者が技術開示の性質を迅速に把握できるように提供されることを強調する。これは、特許請求の範囲または意味を解釈または制限するために使用されないことを理解した上で提出される。さらに、前述の詳細な説明では、開示を合理化する目的で、様々な特徴が単一の実施形態にまとめられていることが分かる。この開示方法は、特許請求される実施形態が各請求項に明示的に記載されているよりも多くの特徴を必要とするという意図を反映していると解釈されるものではない。むしろ、以下の請求項が反映するように、発明的主題は、単一の開示された実施形態のすべての特徴よりも少ない特徴にある。したがって、以下の特許請求の範囲は、各請求項が別個の実施形態としてそれ自体で成り立つ状態で、本明細書に組み込まれる。添付の特許請求の範囲において、用語「を含む」および「において」は、それぞれ、それぞれの用語「からなる」および「において」の平易な英語での等価物として使用される。さらに、「第1」、「第2」、「第3」などの用語は、単にラベルとして使用されており、その対象に数値要件を課すことを意図していない。
【0116】
上述したことは、開示されたアーキテクチャの例を含む。もちろん、構成要素および/または方法論の考えられるすべての組み合わせを説明することは不可能であるが、当業者であれば、多くのさらなる組み合わせおよび順列が可能であることを認識できるであろう。したがって、新規なアーキテクチャは、添付の特許請求の範囲の精神および範囲内に入る、すべてのそのような変更、修正および変形を包含することが意図される。
【0117】
例示的な実施形態の前述の説明は、例示および説明の目的で提示されたものである。網羅的であること、または本開示を開示された正確な形態に限定することは意図されていない。本開示に照らして多くの修正および変形が可能である。本開示の範囲は、この詳細な説明によってではなく、むしろ本明細書に添付された特許請求の範囲によって限定されることが意図される。本出願の優先権を主張する将来出願される出願は、異なる態様で開示された主題を主張でき、一般に、本明細書において様々に開示されるか、または別様に示されるような1つまたは複数の制限の任意のセットを含むことができる。
【国際調査報告】