(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-17
(54)【発明の名称】分散ストレージを使用した非接触カード通信および鍵ペア暗号化認証のシステムおよび方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20240709BHJP
G06F 21/31 20130101ALI20240709BHJP
G06F 21/32 20130101ALI20240709BHJP
【FI】
H04L9/32 200B
H04L9/32 200F
G06F21/31
G06F21/32
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023577711
(86)(22)【出願日】2022-06-15
(85)【翻訳文提出日】2024-02-15
(86)【国際出願番号】 US2022033593
(87)【国際公開番号】W WO2022266199
(87)【国際公開日】2022-12-22
(32)【優先日】2021-06-18
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】519111877
【氏名又は名称】キャピタル・ワン・サービシーズ・リミテッド・ライアビリティ・カンパニー
【氏名又は名称原語表記】Capital One Services, LLC
(74)【代理人】
【識別番号】100145403
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100135703
【氏名又は名称】岡部 英隆
(74)【代理人】
【識別番号】100163902
【氏名又は名称】市川 奈月
(72)【発明者】
【氏名】ルール,ジェフリー
(72)【発明者】
【氏名】ルッツ,ウェイン
(57)【要約】
認証のシステムおよび方法は、認証サーバを含む。認証サーバは、プロセッサおよびメモリを含み得る。プロセッサは、認証要求を受信し得る。プロセッサは、通知を送信し得る。プロセッサは、通知に応答したレスポンスであって、暗号文および入力データを含む、レスポンスを受信し得る。プロセッサは、FIDO(Fast Identity Online)公開鍵およびFIDO秘密鍵を含むFIDO鍵ペアを生成し得る。プロセッサは、FIDO秘密鍵を使用してチャレンジを暗号化し得る。プロセッサは、チャレンジを復号して認証要求を完了するFIDO公開鍵を送信し得る。
【特許請求の範囲】
【請求項1】
プロセッサと、
メモリと
を備える、認証サーバであって、
前記プロセッサが、
認証要求を受信し、
通知を送信し、
前記通知に応答したレスポンスを受信し、前記レスポンスが暗号文および入力データを含み、
FIDO(Fast Identity Online)公開鍵およびFIDO秘密鍵を含むFIDO鍵ペアを生成し、
前記FIDO秘密鍵を使用してチャレンジを暗号化し、
前記チャレンジを復号して前記認証要求を完了するために前記FIDO公開鍵を送信する
認証サーバ。
【請求項2】
前記認証要求がブラウザ拡張機能からリダイレクトされる、請求項1に記載の認証サーバ。
【請求項3】
前記入力データが、生体認証データおよびログインデータの群より選択された少なくとも1つを含む、請求項1に記載の認証サーバ。
【請求項4】
前記プロセッサが、前記FIDO秘密鍵をセキュアエレメントに記憶する、請求項1に記載の認証サーバ。
【請求項5】
前記プロセッサが、ブラウザ拡張機能から前記チャレンジを受信する、請求項1に記載の認証サーバ。
【請求項6】
前記認証要求が、FIDOウェブサイト登録を求める要求を含む、請求項1に記載の認証サーバ。
【請求項7】
クラウドベースのオーセンティケータを備える、請求項1に記載の認証サーバ。
【請求項8】
前記認証要求が、アプリケーションを起動するよう求める要求を含む、請求項1に記載の認証サーバ。
【請求項9】
前記暗号文が、近距離無線通信データ交換フォーマット(NDEF)読み出しを介して取得される、請求項1に記載の認証サーバ。
【請求項10】
認証方法であって、
プロセッサによって、第1の要求を受信するステップと、
前記プロセッサによって、第2の要求を送信するステップと、
前記プロセッサによって、前記第2の要求に応答した第1のレスポンスを受信するステップであって、前記第1のレスポンスが暗号文を含む、ステップと、
前記プロセッサによって、FIDO(Fast Identity Online)公開鍵およびFIDO秘密鍵を含むFIDO鍵ペアを生成するステップと、
前記プロセッサによって、前記FIDO秘密鍵を使用してチャレンジを暗号化するステップと、
前記プロセッサによって、前記チャレンジを復号して前記第1の要求を完了するためにFIDO公開鍵を送信するステップと
を含む、方法。
【請求項11】
前記第1の要求がブラウザ拡張機能からリダイレクトされる、請求項10に記載の方法。
【請求項12】
前記プロセッサによって、第3の要求を送信することをさらに含む、請求項10に記載の方法。
【請求項13】
前記プロセッサによって、前記第3の要求に応答した第2のレスポンスを受信することであって、前記第2のレスポンスが入力データを含む、受信することをさらに含む、請求項12に記載の方法。
【請求項14】
前記入力データが、生体認証データおよびログインデータの群より選択された少なくとも1つを含む、請求項13に記載の方法。
【請求項15】
前記プロセッサによって、前記FIDO秘密鍵をセキュアエレメントに記憶することをさらに含む、請求項10に記載の方法。
【請求項16】
前記プロセッサによって、ブラウザ拡張機能から前記チャレンジを受信することをさらに含む、請求項10に記載の方法。
【請求項17】
前記第1の要求が、FIDOウェブサイト登録を求める要求を含む、請求項10に記載の方法。
【請求項18】
前記第1の要求が、アプリケーションを起動するよう求める要求を含む、請求項10に記載の方法。
【請求項19】
前記暗号文が、近距離無線通信データ交換フォーマット(NDEF)読み出しを介して取得される、請求項10に記載の方法。
【請求項20】
プロセッサ上で実行されると、
認証要求を受信するステップと、
通知を送信するステップと、
前記通知に応答したレスポンスを受信するステップであって、前記レスポンスが暗号文および入力データを含む、ステップと、
FIDO(Fast Identity Online)公開鍵およびFIDO秘密鍵を含むFIDO鍵ペアを生成するステップと、
前記FIDO秘密鍵を使用してチャレンジを暗号化するステップと、
前記チャレンジを復号して前記認証要求を完了するために前記FIDO公開鍵を送信するステップと
を含む手順を行うコンピュータ実行可能命令を含む非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2021年6月18日に出願された米国特許出願第17/352143号の優先権を主張し、その開示は、その全体が参照により本明細書に引用される。
【0002】
本開示は、非接触カード通信のシステムおよび方法、より具体的には、分散ストレージを使用した非接触カードの鍵ペア暗号化認証のシステムおよび方法に関する。
【背景技術】
【0003】
カードベースの動作は、多くの場合、サーバまたは他のデバイスと通信するカードの使用を伴う。そのような通信を傍受および不正アクセスから保護する必要がある。しかしながら、ハッカーまたは他の不正行為者によって使用され得るデータを傍受する多数の巧妙な方法がある。
【0004】
例えば、暗号化または他の保護がないデータの送信は、中間者攻撃、フィッシング攻撃、リプレイ攻撃、および他の攻撃を受けやすく、他の脆弱性を招く可能性があり、その結果、セキュリティリスクが増加し、アカウントまたはカードの乱用のリスクが増加する。これらのリスクは、他のデバイスと無線で通信し、よって送信中にデータを潜在的な傍受にさらす非接触カードの使用によってさらに増加し得る。
【0005】
暗号化などの、セキュリティリスクに対処するために講じられる対策は、システムリソースを消費し、動作効率を妨げる可能性がある。多数の動作の場合、システムリソースの消費および動作効率の妨げが増加する可能性があり、その結果、動作を行うことができないか、または不満足な性能をもたらす可能性がある。
【0006】
上記その他の欠陥が存在する。したがって、安全かつ確実な方法で通信を傍受および不正アクセスから保護することによってこれらの欠陥を克服する認証のシステムおよび方法が必要とされている。
【発明の概要】
【0007】
本開示の実施形態は、認証サーバを提供する。認証サーバは、プロセッサおよびメモリを含み得る。プロセッサは、認証要求を受信し得る。プロセッサは、通知を送信し得る。プロセッサは、通知に応答したレスポンスであって、暗号文および入力データを含む、レスポンスを受信し得る。プロセッサは、FIDO(Fast Identity Online)公開鍵およびFIDO秘密鍵を含むFIDO鍵ペアを生成し得る。プロセッサは、FIDO秘密鍵を使用してチャレンジを暗号化し得る。プロセッサは、チャレンジを復号して認証要求を完了するFIDO公開鍵を送信し得る。
【0008】
本開示の実施形態は、認証方法を提供する。方法は、プロセッサによって、第1の要求を受信することを含み得る。方法は、プロセッサによって、第2の要求を送信することを含み得る。方法は、プロセッサによって、第2の要求に応答した第1のレスポンスを受信することであって、第1のレスポンスが暗号文を含む、ことを含み得る。方法は、プロセッサによって、FIDO(Fast Identity Online)公開鍵およびFIDO秘密鍵を含むFIDO鍵ペアを生成することを含み得る。方法は、プロセッサによって、FIDO秘密鍵を使用してチャレンジを暗号化することを含み得る。方法は、プロセッサによって、チャレンジを復号して第1の要求を完了するFIDO公開鍵を送信することを含み得る。
【0009】
本開示の実施形態は、プロセッサ上で実行されると、認証要求を受信するステップと、通知を送信するステップと、通知に応答したレスポンスを受信するステップであって、レスポンスが暗号文および入力データを含む、ステップと、FIDO(Fast Identity Online)公開鍵およびFIDO秘密鍵を含むFIDO鍵ペアを生成するステップと、FIDO秘密鍵を使用してチャレンジを暗号化するステップと、チャレンジを復号して認証要求を完了するFIDO公開鍵を送信するステップとを含む手順を行うコンピュータ実行可能命令を含むコンピュータ可読の非一時的な媒体を提供する。
【0010】
本開示の様々な実施形態は、さらなる目的および利点と共に、以下の説明を添付の図面と併せて参照することによって最もよく理解され得る。
【図面の簡単な説明】
【0011】
【
図1】例示的な実施形態による認証システムを示す。
【
図2A】例示的な実施形態による第1のデバイスの図である。
【
図2B】例示的な実施形態による第1のデバイスのコンタクトパッドの図である。
【
図4】例示的な実施形態による認証プロセスのシーケンス図を示す。
【発明を実施するための形態】
【0012】
以下の実施形態の説明は、本発明の異なる態様の特徴および教示を特に説明するために符号を参照して非限定的な代表例を提供する。説明される実施形態は、別々に実施することもでき、またはそれらの実施形態の説明からの他の実施形態と組み合わせて実施することもできるとものとして認識されるであろう。当業者は、実施形態の説明を考察すれば、本発明の異なる記載の態様を知り、理解することができるであろう。実施形態の説明は、具体的に網羅されてはいないが実施形態の説明を読んだ当業者の知識の範囲内にある他の実施態様が本発明の適用と一致することが理解される程度まで本発明の理解を容易にするであろう。
【0013】
本明細書で開示されるシステムおよび方法は、FIDO(Fast Identity Online)認証、FIDO2(Fast Identity Online 2)認証、WebAuthn、CTAP(Client to Authenticator Protocol)FIDO、他の認証実施態様を含むがこれらに限定されない認証フレームワークの補完に使用され得る。本明細書で使用されるシステムおよび方法は、分散ストレージ、クラウドベースのストレージ、およびこの機能をサポートする他の形態のストレージを用いて実施され得る。様々な認証プロセスが実施され、第1の認証プロセスは、特定のレスポンスデータを必要とするデバイスのアプリケーションに送信され、第2の認証プロセスは、特定の入力データを必要とするアプリケーションに送信され得る。レスポンスおよび入力データがクラウドベースのオーセンティケータ(authenticator)によって認証されると、鍵ペアが生成されてもよく、鍵のうちの1つはセキュアエレメントに記憶され、鍵のうちの1つはチャレンジに署名して認証要求を完了するブラウザ拡張機能に送信される。限定されないが、サーバは、クラウドベースのオーセンティケータとして、および/または分散ストレージを使用して実施されるものとして、を含めて、オーセンティケータを備えてもよい。
【0014】
本明細書で開示されるシステムおよび方法の利点は、通信を傍受および不正アクセスから保護することによる認証の改善を含む。本明細書で開示されるシステムおよび方法は、中間者攻撃およびフィッシング攻撃の回避、リプレイ攻撃の防止、ならびに他のセキュリティ脆弱性の低減を可能にする。
【0015】
さらに、FIDO2フレームワークおよび他の認証フレームワークに対する懸念は、認証プロセスに着手しようとしているユーザの識別情報を確立することである。本明細書で説明されるシステムおよび方法は、フレームワークを介して資格情報を登録し、認証しようと試みるユーザが、そのように主張している、認証プロセスを行う権限を与えられたユーザであることを確認することによって、この脆弱性を低減し得る。そうすることによって、フレームワークのセキュリティおよび権限のないユーザを排除する能力が高められ得る。
【0016】
加えて、多数の認証プロセスが行われてもよく、認証を改善するために通知へのレスポンスを介してカスタマイズされたクエリが送信されてもよい。そうすることによって、チャレンジに署名しようと試みるときに、鍵にアクセスするか、または紛失したり、盗まれたり、置き忘れたりした鍵を回収するために、物理的デバイス(例えば、ハードウェアドングル)が不要になる。したがって、セキュリティリスクがさらに軽減され、様々なデバイス間の互換性およびトランザクション効率が改善され得る。
【0017】
これらの特徴は、ユーザに不必要なセキュリティタスクを負わせることによってユーザ体験を低下させることなく実施され得る。さらに、これらの特徴は、ユーザの期待およびトランザクション要件に応じるために、トランザクションの時間効率的な遂行を可能にするように行われ得る。
【0018】
したがって、本明細書で開示されるシステムおよび方法は、カードまたはカードと関連付けられたアカウントの乱用などの不正行為のリスクを低減する。本明細書で開示されるシステムおよび方法は、セキュアな認証を欠く実施態様を改善する。これらの利点は、システム効率を促進し、ユーザ体験の低下を回避し、多数のデバイス間の互換性を促進しながら、有利に達成され得る。
【0019】
図1は、認証システム100を示している。システム100は、ブラウザ拡張機能101と、第1のデバイス105と、第2のデバイス110と、ネットワーク115と、サーバ120と、データベース125とを備え得る。
図1はシステム100の構成要素の単一の例を示しているが、システム100は任意の数の構成要素を含んでもよい。
【0020】
システム100は、ブラウザ拡張機能101を含み得る。ブラウザ拡張機能101は、Chrome(登録商標)、Internet Explorer(登録商標)、Firefox(登録商標)、またはSafari(登録商標)を含んでもよい。スタンドアロンのソフトウェアアプリケーションを含む、ブラウザ拡張機能以外のソフトウェアアプリケーションが利用され得ることが理解される。限定されないが、ウェブサイト登録やアプリケーションの起動などの認証要求は、ブラウザ拡張機能101と関連付けられたラップトップやデスクトップを含むがこれらに限定されない任意のデバイス上で行われてもよい。モバイルベースのブラウザ101、またはデスクトップベースのブラウザ101は、以下でさらに説明するように、1つまたは複数の要求を送信および受信し得る。
【0021】
システム100は、第1のデバイス105を含み得る。限定されないが、第1のデバイス105は、非接触カード、接触ベースのカード、ネットワーク対応コンピュータ、または本明細書で説明される他のデバイスを備えてもよい。本明細書で言及するように、ネットワーク対応コンピュータは、これらに限定されないが、例えば、サーバ、ネットワーク家電機器、パーソナルコンピュータ、ワークステーション、電話、ハンドヘルドPC、携帯情報端末、非接触カード、シンクライアント、ファットクライアント、インターネットブラウザ、キオスク、タブレット、端末、または他のデバイスを含むコンピュータデバイス、または通信デバイスを含んでもよい。以下の
図2A~
図2Bでさらに説明するように、第1のデバイス105は、1つまたは複数のプロセッサ102およびメモリ104を含み得る。メモリ104は、1つまたは複数のアプレット106および1つまたは複数のカウンタ108を含み得る。各カウンタ108は、カウンタ値を含み得る。メモリ104は、カウンタ値、送信データ、および少なくとも1つの鍵を含み得る。
【0022】
第1のデバイス105は、通信インターフェース107を含み得る。通信インターフェース107は、物理インターフェースおよび非接触インターフェースとの通信能力を備え得る。例えば、通信インターフェース107は、カードスワイプインターフェースを通してスワイプすることや、現金自動預払機(ATM)もしくは物理インターフェースを介して通信する他のデバイス上にあるカードチップリーダに挿入することなどによって、物理インターフェースと通信してもよい。他の例では、通信インターフェース107は、NFC、Bluetooth、Wi-Fi、RFID、および他の形態の非接触通信などの短距離無線通信方法を介してカード読み出しデバイスとの非接触通信を確立し得る。
図1に示すように、通信インターフェース107は、ネットワーク115を介して第2のデバイス110、サーバ120、および/またはデータベース125と直接通信し得る。
【0023】
第1のデバイス105は、システム100の任意の数の構成要素とデータ通信し得る。例えば、第1のデバイス105は、ネットワーク115を介して第2のデバイス110および/またはサーバ120にデータを送信してもよい。第1のデバイス105は、ネットワーク115を介してデータベース125にデータを送信してもよい。いくつかの例では、第1のデバイス105は、任意のデバイスの1つまたは複数の通信フィールドにエントリした後にネットワーク115を介してデータを送信し得る。限定されないが、各エントリは、タップ、スワイプ、ウェイブ、および/またはそれらの任意の組合せと関連付けられてもよい。
【0024】
システム100は、第2のデバイス110を含み得る。第2のデバイス110は、1つまたは複数のプロセッサ112およびメモリ114を含み得る。メモリ114は、アプリケーション116を含むがこれに限定されない、1つまたは複数のアプリケーションを含み得る。第2のデバイス110は、システム100の任意の数の構成要素とデータ通信し得る。例えば、第2のデバイス110は、ネットワーク115を介してサーバ120にデータを送信してもよい。第2のデバイス110は、ネットワーク115を介してデータベース125にデータを送信してもよい。限定されないが、第2のデバイス110は、ネットワーク対応コンピュータであってもよい。本明細書で言及するように、ネットワーク対応コンピュータは、これらに限定されないが、例えば、サーバ、ネットワーク家電機器、パーソナルコンピュータ、ワークステーション、電話、ハンドヘルドPC、携帯情報端末、非接触カード、シンクライアント、ファットクライアント、インターネットブラウザ、キオスク、タブレット、端末、または他のデバイスを含むコンピュータデバイス、または通信デバイスを含んでもよい。第2のデバイス110はまた、モバイルデバイスであってもよく、例えば、モバイルデバイスは、Apple(登録商標)製のiPhone、iPod、iPad、もしくはAppleのiOS(登録商標)オペレーティングシステムを実行する任意の他のモバイルデバイス、MicrosoftのWindows(登録商標)Mobileオペレーティングシステムを実行する任意のデバイス、Google(登録商標)のAndroid(登録商標)オペレーティングシステムを実行する任意のデバイス、および/または任意の他のスマートフォン、タブレット、もしくは同様のウェアラブルモバイルデバイスを含んでもよい。
【0025】
第2のデバイス110は、処理回路を含んでもよく、本明細書で説明される機能を行うため必要に応じて、プロセッサ、メモリ、エラーおよびパリティ/CRCチェッカ、データエンコーダ、衝突防止アルゴリズム、コントローラ、コマンドデコーダ、セキュリティプリミティブおよび改ざん防止ハードウェアを含む追加の構成要素を含んでもよい。第2のデバイス110は、ディスプレイおよび入力デバイスをさらに含み得る。ディスプレイは、液晶ディスプレイ、発光ダイオードディスプレイ、プラズマパネル、および陰極線管ディスプレイを含む、コンピュータモニタ、フラットパネルディスプレイ、およびモバイルデバイス画面などの視覚情報を提示する任意の種類のデバイスであってもよい。入力デバイスは、タッチスクリーン、キーボード、マウス、カーソル制御デバイス、タッチスクリーン、マイクロフォン、デジタルカメラ、ビデオレコーダまたはカムコーダなど、ユーザのデバイスによって利用可能であり、サポートされている、ユーザのデバイスに情報を入力する任意のデバイスを含んでもよい。これらのデバイスは、情報を入力し、本明細書で説明されるソフトウェアおよび他のデバイスとの対話に使用され得る。
【0026】
システム100は、ネットワーク115を含み得る。いくつかの例では、ネットワーク115は、無線ネットワーク、有線ネットワーク、または無線ネットワークと有線ネットワークとの任意の組合せのうちの1つまたは複数であってもよく、システム100の構成要素のいずれかに接続し得る。例えば、第1のデバイス105は、ネットワーク115を介してサーバ120に接続してもよい。いくつかの例では、ネットワーク115は、光ファイバネットワーク、パッシブ光ネットワーク、ケーブルネットワーク、インターネットネットワーク、衛星ネットワーク、無線ローカルエリアネットワーク(LAN)、グローバル移動体通信システム、パーソナル通信サービス、パーソナルエリアネットワーク、ワイヤレスアプリケーションプロトコル、マルチメディアメッセージングサービス、拡張メッセージングサービス、ショートメッセージサービス、時分割多重化ベースのシステム、符号分割多元接続ベースのシステム、D-AMPS、Wi-Fi、固定無線データ、IEEE802.11b、802.15.1、802.11nおよび802.11g、Bluetooth、NFC、無線周波数識別(RFID)、Wi-Fiなどうちの1つまたは複数を含み得る。
【0027】
加えて、ネットワーク115は、限定されないが、電話回線、光ファイバ、IEEEイーサネット902.3、広域ネットワーク、無線パーソナルエリアネットワーク、LAN、またはインターネットなどのグローバルネットワークを含んでもよい。加えて、ネットワーク115は、インターネットネットワーク、無線通信ネットワーク、セルラーネットワークなど、またはそれらの任意の組合せをサポートしてもよい。ネットワーク115は、スタンドアロンネットワークとして、または互いに協働して動作する、1つのネットワーク、または任意の数の上記の例示的な種類のネットワークをさらに含んでもよい。ネットワーク115は、ネットワークが通信可能に結合されている1つまたは複数のネットワーク要素の1つまたは複数のプロトコルを利用してもよい。ネットワーク115は、他のプロトコルに、または他のプロトコルからネットワークデバイスの1つまたは複数のプロトコルに変換してもよい。ネットワーク115は単一のネットワークとして示されているが、1つまたは複数の例によれば、ネットワーク115は、例えば、インターネット、サービスプロバイダのネットワーク、ケーブルテレビネットワーク、クレジットカード協会ネットワークなどの企業ネットワーク、およびホームネットワークなどの複数の相互接続されたネットワークを含み得ることが理解されるであろう。
【0028】
システム100は、1つまたは複数のサーバ120を含み得る。いくつかの例では、サーバ120は、メモリ124に結合された1つまたは複数のプロセッサ122を含み得る。限定されないが、サーバ120は、クラウドベースのオーセンティケータを備えてもよい。サーバ120は、中央システム、サーバまたはプラットフォームとして、複数のワークフロー動作を実行するために異なる時間に様々なデータを制御し、呼び出し得る。サーバ120は、第1のデバイス105に接続し得る。サーバ120は、アプレット106および/またはアプリケーション116とデータ通信し得る。例えば、サーバ120は、1つまたは複数のネットワーク115を介してアプレット106とデータ通信してもよい。第1のデバイス105は、1つまたは複数のネットワーク115を介して1つまたは複数のサーバ120と通信してもよく、サーバ120とのそれぞれのフロントエンドからバックエンドのペアとして動作してもよい。第1のデバイス105は、例えば、その上で実行されているアプレット106から、サーバ120に1つまたは複数の要求を送信し得る。1つまたは複数の要求は、サーバ120からデータを取り出すことと関連付けられてもよい。サーバ120は、第1のデバイス105から1つまたは複数の要求を受信し得る。サーバ120は、アプレット106からの1つまたは複数の要求に基づいて、要求されたデータを取り出し得る。サーバ120は、1つまたは複数の要求に応答したものである受信データを、アプレット106に送信し得る。
【0029】
いくつかの例では、サーバ120は、ブレード型サーバなどの専用サーバコンピュータとすることもできるし、またはパーソナルコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、パームトップコンピュータ、ネットワークコンピュータ、モバイルデバイス、ウェアラブルデバイス、もしくはシステム100をサポートすることができる任意のプロセッサ制御デバイスとすることもできる。
図1は単一のサーバ120を示しているが、他の実施形態は、ユーザのサポートに必要な、または望ましい複数のサーバまたは複数のコンピュータシステムを使用することができ、特定のサーバの障害が発生した場合にネットワークのダウンタイムを防止するバックアップサーバまたは冗長サーバを使用することもできることが理解される。
【0030】
サーバ120は、その上で実行する命令を含むアプリケーションを含み得る。例えば、アプリケーションは、サーバ120上で実行する命令を含んでもよい。サーバ120のアプリケーションは、システム100の任意の構成要素と通信し得る。例えば、サーバ120は、例えば、システム100の1つまたは複数の構成要素とのネットワークおよび/またはデータ通信を可能にし、データを送信および/または受信する1つまたは複数のアプリケーションを実行してもよい。限定されないが、サーバ120は、ネットワーク対応コンピュータであってもよい。本明細書で言及するように、ネットワーク対応コンピュータは、これらに限定されないが、例えば、サーバ、ネットワーク家電機器、パーソナルコンピュータ、ワークステーション、電話、ハンドヘルドPC、携帯情報端末、非接触カード、シンクライアント、ファットクライアント、インターネットブラウザ、または他のデバイスを含むコンピュータデバイス、または通信デバイスを含んでもよい。サーバ120はまた、モバイルデバイスであってもよく、例えば、モバイルデバイスは、Apple(登録商標)製のiPhone、iPod、iPad、もしくはAppleのiOS(登録商標)オペレーティングシステムを実行する任意の他のモバイルデバイス、MicrosoftのWindows(登録商標)Mobileオペレーティングシステムを実行する任意のデバイス、GoogleのAndroid(登録商標)オペレーティングシステムを実行する任意のデバイス、および/または任意の他のスマートフォン、タブレット、もしくは同様のウェアラブルモバイルデバイスを含んでもよい。
【0031】
サーバ120は、処理回路を含んでもよく、本明細書で説明される機能を行う必要に応じて、プロセッサ、メモリ、エラーおよびパリティ/CRCチェッカ、データエンコーダ、衝突防止アルゴリズム、コントローラ、コマンドデコーダ、セキュリティプリミティブおよび改ざん防止ハードウェアを含む追加の構成要素を含んでもよい。サーバ120は、ディスプレイおよび入力デバイスをさらに含み得る。ディスプレイは、液晶ディスプレイ、発光ダイオードディスプレイ、プラズマパネル、および陰極線管ディスプレイを含む、コンピュータモニタ、フラットパネルディスプレイ、およびモバイルデバイス画面などの視覚情報を提示する任意の種類のデバイスであってもよい。入力デバイスは、タッチスクリーン、キーボード、マウス、カーソル制御デバイス、タッチスクリーン、マイクロフォン、デジタルカメラ、ビデオレコーダまたはカムコーダなど、ユーザのデバイスによって利用可能であり、サポートされている、ユーザのデバイスに情報を入力する任意のデバイスを含んでもよい。これらのデバイスは、情報を入力し、本明細書で説明されるソフトウェアおよび他のデバイスとの対話に使用され得る。
【0032】
システム100は、1つまたは複数のデータベース125を含み得る。データベース125は、リレーショナルデータベース、非リレーショナルデータベース、または他のデータベース実施態様、ならびに複数のリレーショナルデータベースおよび非リレーショナルデータベースを含むそれらの任意の組合せを備え得る。いくつかの例では、データベース125は、デスクトップデータベース、モバイルデータベース、またはインメモリデータベースを備え得る。さらに、データベース125は、第1のデバイス105やサーバ120などのシステム100の任意の構成要素によって内部でホストされてもよいし、またはデータベース125は、クラウドベースのプラットフォームによって、または第1のデバイス105およびサーバ120とデータ通信している任意の記憶デバイス内でなど、第1のデバイス105やサーバ120などのシステム100の任意の構成要素の外部でホストされてもよい。いくつかの例では、データベース125は、システム100の任意の数の構成要素とデータ通信し得る。例えば、サーバ120は、データベース125から、アプレット106によって送信された要求データを取り出してもよい。サーバ120は、ネットワーク115を介してデータベース125からアプレット106に、送信された1つまたは複数の要求に応答した受信データを送信し得る。他の例では、アプレット106は、ネットワーク115を介してデータベース125からの要求データを求める1つまたは複数の要求を送信し得る。
【0033】
いくつかの例では、本明細書で説明される本開示による例示的な手順は、処理装置および/またはコンピューティング装置(例えば、コンピュータハードウェア装置)によって行うことができる。そのような処理装置/コンピューティング装置は、例えば、これに限定されないが、例えば、1つまたは複数のマイクロプロセッサを含み、コンピュータアクセス可能媒体(例えば、RAM、ROM、ハードドライブ、または他の記憶デバイス)に記憶された命令を使用することができるコンピュータ/プロセッサの全体、またはその一部であり得るか、またはそれらを含むことができる。例えば、コンピュータアクセス可能媒体は、第1のデバイス105、第2のデバイス110、サーバ120、および/またはデータベース125、または他のコンピュータハードウェア装置のメモリの一部とすることができる。
【0034】
いくつかの例では、コンピュータアクセス可能媒体(例えば、本明細書で上述したような、ハードディスク、フロッピーディスク、メモリスティック、CD-ROM、RAM、ROMなどの記憶デバイス、またはそれらの集合体)を設けることができる(例えば、処理装置と通信する)。コンピュータアクセス可能媒体は、その上に実行可能命令を含むことができる。加えて、または代替的に、コンピュータアクセス可能媒体とは別個に記憶装置を設けることもでき、記憶装置は、例えば、本明細書で上述したように、特定の例示的な手順、プロセス、および方法を実行するように処理装置を構成するために処理装置に命令を提供することができる。
【0035】
プロセッサ122は、認証要求を受信し得る。いくつかの例では、認証要求は、ウェブサイト登録を求める要求を含み得る。例えば、認証要求は、FIDO(Fast Identity Online)ウェブサイト登録を求める要求を含んでもよい。プロセッサ122は、複数の要求を取り扱うこととができる。要求のうちの少なくとも1つは、FIDO登録要求を含み得る。さらに、要求のうちの少なくとも1つは、FIDO認証要求を含み得る。複数の要求は、アプリケーション116や実行する命令を含む別のアプリケーションなどのアプリケーションを起動するためにデバイス110に送信されるプッシュ通知などの通知をもたらし得る。他の例では、認証要求は、任意のデバイス上でアプリケーションを起動するよう求める要求を含み得る。
【0036】
認証要求はリダイレクトされ得る。例えば、認証要求はブラウザ拡張機能101からリダイレクトされてもよい。いくつかの例では、ブラウザ拡張機能101は、FIDOウェブサイト登録を傍受し、それをクラウドベースのオーセンティケータサーバ120のプロセッサ122にリダイレクトし得る。ブラウザ拡張機能101は、Chrome(登録商標)ブラウザ、Internet Explorer(登録商標ブラウザ)、Firefox(登録商標)ブラウザ、および/またはSafari(登録商標)ブラウザ用の拡張機能を含み得る。他のブラウザ拡張機能101が利用されてもよいことが理解され、スタンドアロンのソフトウェアアプリケーションが使用されてもよいことがさらに理解される。限定されないが、FIDOウェブサイト登録は、ラップトップまたはデスクトップを含むがこれらに限定されない任意のデバイス上で行われてもよい。モバイルベースのブラウザ101、またはデスクトップベースのブラウザ101は、FIDOウェブサイト登録を傍受し、それをサーバ120のプロセッサ122に送信し得る。例えば、ウェブサイトは、これに限定されないが、ハイパーテキスト転送プロトコルセキュア(HTTPS)を含むプロトコルを介してチャレンジを発行してもよい。ブラウザ拡張機能101は、FIDO2対応デバイスを有するデバイス上でローカルにこれに応答する代わりに、このトラフィックをプロセッサ122などのサーバ120にリダイレクトし得る。以下でさらに説明するように、サーバ120のプロセッサ122は、第1のデバイス105のプロセッサ102を使用してチャレンジに署名するデバイス110のアプリケーション116にチャレンジをリダイレクトしてもよく、署名されたチャレンジは元のデバイスに返送され、ログインのためにウェブサイトに返される。別の例では、デバイス110のアプリケーション116は、以下でさらに説明するように、ユーザを認証してもよく、その際デバイス110のアプリケーション116は、受信した暗号文をサーバ120のプロセッサ122に送信してもよく、次いで、サーバは、受信した暗号文からユーザの識別情報を検証し、次いで、サーバ120のプロセッサ122は、登録プロセス中に生成されたFIDO秘密鍵を使用してチャレンジに署名する。そのような実施態様は、ウェブサイト登録および/またはアプリケーションの起動に適用可能であり得る。例えば、アプリケーションは、要求がサーバ120のプロセッサ122にリダイレクトされていることを認識してもよい。デバイス110のアプリケーション116は、サーバ120のプロセッサ122からプッシュ通知を受信したときに起動してもよく、第1のデバイス105からの暗号文を受信してサーバ120のプロセッサ122に送信する。
【0037】
プロセッサ122は、1つまたは複数の通知を送信し得る。いくつかの例では、プロセッサ122は、識別情報の検証を必要とする通知を送信し得る。例えば、プロセッサ122から第2のデバイスなどのデバイス110のアプリケーション116に、識別情報検証を要求する少なくとも1つの通知が送信されてもよい。1つまたは複数の通知は、プロセッサ122によってアプリケーション116に送信され、アプリケーション116による1つまたは複数のレスポンスを必要とし得る。プロセッサ122は、1つまたは複数の通知を生成して送信し得る。限定されないが、1つまたは複数の通知は、プロセッサ122からデバイス110のアプリケーション116に転送されたプッシュ通知を含んでもよい。
【0038】
プロセッサ122は、1つまたは複数の通知に応答した1つまたは複数のレスポンスを受信し得る。いくつかの例では、レスポンスは、暗号文、クリプトグラム、または他の暗号結果、および入力データを含み得る。プロセッサ122は、カードなどの第1のデバイス105のプロセッサ102から1つまたは複数のレスポンスを受信し得る。例えば、カードのプロセッサ102は、少なくとも1つの鍵およびカウンタ値を使用して暗号文を作成してもよい。暗号文は、カウンタ値を含み得る。第1のデバイス105のプロセッサ102は、通信インターフェース107を介してデバイス110のアプリケーション116に暗号文を送信してもよく、デバイス110は、暗号文および入力データを含む任意のデータを送信するためにプロセッサ122と第1のデバイス105との間の仲介デバイスとして機能し得る。例えば、カードのプロセッサ102は、暗号文をプロセッサ122に送信してもよい。第1のデバイス105のプロセッサ102は、暗号文の送信後にカウンタ値を更新し得る。暗号文は、これに限定されないが、1回または複数回の近距離無線通信データ交換フォーマット(NDEF)読み出しを含む1回または複数回の読み出しを介して取得され得る。デバイス110のアプリケーション116は、第1のデバイス105の近距離無線通信(NFC)タグなどのタグの1回または複数回の読み出しを行い得る。例えば、カードのプロセッサ102は、デバイスの通信フィールドへの1回または複数回のエントリの後に、暗号文を送信してもよい。限定されないが、各エントリは、タップ、スワイプ、ウェイブ、および/またはそれらの任意の組合せと関連付けられてもよい。
【0039】
プロセッサ122は、第1のレスポンスを必要とする第1の通知を送信し得る。第1のレスポンスは暗号文を含み得る。プロセッサ122は、デバイス110のアプリケーション116から第1のレスポンスを受信し得る。プロセッサ122は、暗号文を検証し得る。例えば、デバイス110のアプリケーション116からサーバ120のプロセッサ122への送信前に暗号化され得る暗号文を復号することによる、暗号文の検証後、プロセッサ122は、第2のレスポンスを必要とする第2の通知をアプリケーション116に送信し得る。第2のレスポンスは、入力データを含み得る。プロセッサ122は、第2のレスポンスの入力データを受信し得る。プロセッサ122は、参照入力データをアプリケーション116からの送信入力データと比較することによって入力データを検証し得る。参照入力データは、サーバ120によってメモリ124などに記憶され得る。他の例では、参照入力データは、例えばデータベース125を介してサーバ120によって取り出され得る。例えば、サーバ120は、データベース125に参照入力データの取得を求める要求を送信してもよく、データベース125は、要求を受信し、サーバ120によって送信された要求に応答して参照入力データを送信してもよい。他の例では、別個のレスポンスを必要とする別個の通知を送信する代わりに、単一の通知がプロセッサ122によってアプリケーション116に送信され、単一のレスポンスを介して暗号文と入力データの両方を要求し得る。さらに、入力データは、第1の通知に対する第1のレスポンスを介して、第2の通知に対する第2のレスポンスの前に要求されてもよい。他の例では、入力データは、第2の通知に対する第2のレスポンスを介して、第1の通知に対する第1のレスポンスの後に要求され得る。
【0040】
いくつかの例では、入力データは、生体認証データを含み得る。限定されないが、生体認証データは、指紋、顔スキャン、網膜スキャン、音声認識、および/またはそれらの任意の組合せの群より選択された少なくとも1つを含んでもよい。いくつかの例では、入力データは、追加的および/または代替的にログインデータを含み得る。限定されないが、ログインデータは、ユーザ名、パスワード、アカウント番号、セキュリティコード、ワンタイムパスコード、セキュリティ質問に対する回答、および/またはそれらの任意の組合せのエントリの群より選択された少なくとも1つを含んでもよい。入力データは、生体認証データおよびログインデータの群より選択された少なくとも1つを含み得る。入力データは、生体認証データ、ログインデータ、および/またはそれらの任意の組合せを含んでもよい。
【0041】
暗号文と入力データの両方を含む識別情報検証の後、プロセッサ122は鍵ペアを生成し得る。例えば、プロセッサ122は、FIDO鍵ペアを生成してもよい。鍵ペアは、1組の鍵を含み得る。いくつかの例では、FIDO鍵ペアは、秘密鍵および公開鍵を含み得る。例えば、FIDO鍵ペアは、FIDO秘密鍵およびFIDO公開鍵を含んでもよい。プロセッサ122は、1つまたは複数の鍵を記憶し得る。例えば、プロセッサは、FIDO秘密鍵をセキュアエレメントに記憶してもよい。FIDO秘密鍵を第1のデバイス105に記憶するのではなく、FIDO秘密鍵は、サーバ120に属するセキュアエレメントに記憶され得る。FIDO秘密鍵は、サーバ120などのクラウドベースのオーセンティケータによって維持されるセキュアエレメントに記憶され得る。セキュアエレメントは、クラウド内でホストされてもよく、1つまたは複数の鍵がセキュアに記憶され、取り出され得る耐タンパ性のセキュアストレージ領域を備え得る。いくつかの例では、セキュアエレメントへのアクセスは、プロセッサ122のみによるアクセスなどに、制限され得る。プロセッサ122は、セキュアエレメントからFIDO秘密鍵を取り出し得る。他の例では、セキュアエレメントへのアクセスは制限されなくてもよく、それによって鍵を取り出しのために専用デバイス上に記憶しない。初期FIDO登録時に、ウェブサイトは、ウェブサイトおよび/またはユーザを一意に識別する識別子を送信し得る。FIDO秘密鍵などの鍵が生成されると、クラウド内のサーバ120は、識別子を使用してこの鍵をセキュアエレメントに記憶し得る。その後のFIDO認証要求時に、ウェブサイトは、チャレンジと共に識別子を送信し得る。チャレンジに署名する時点で、次いで、FIDO秘密鍵は、識別子を使用してセキュアエレメントから検索され、取り出される。このように、鍵ペアが紛失したり、置き忘れられたり、盗まれたりした場合、クラウドベースのオーセンティケータなどのサーバ120は、鍵を含む物理的デバイスを必要とせずに、FIDO公開鍵などの鍵を生成して送信し得る。
【0042】
プロセッサ122は、鍵ペアからの鍵のうちの少なくとも一方を使用して、1つまたは複数のチャレンジを暗号化し得る。例えば、プロセッサ122は、ブラウザ拡張機能101からチャレンジを受信してもよい。いくつかの例では、サーバ120のプロセッサ122は、FIDO秘密鍵を使用してチャレンジを暗号化し得る。鍵のうちの少なくとも1つは、チャレンジの復号に使用され得る。例えば、プロセッサ122は、チャレンジを復号して認証要求の完了にFIDO公開鍵を送信してもよい。いくつかの例では、ウェブサイトが署名されたチャレンジを確認し、ウェブサイトへのアクセスを許可する認証要求の完了は、FIDO公開鍵によって確認され得る。例えば、チャレンジは、結果が元のチャレンジと一致するかどうかを判定してそれがデジタル署名されたことを検証するために、ブラウザ拡張機能101によって受信したFIDO公開鍵で復号されてもよい。いくつかの例では、ブラウザ拡張機能101は、チャレンジを復号して認証要求を処理するために、これらに限定されないが、別個のサーバまたはデータベースを含む任意のデバイスに公開鍵を送信し得る。このように、システム100は、分散ストレージ、クラウドベースのストレージ、および前述の機能をサポートする他の形態のストレージを用いて実施し得る。
【0043】
図2Aは、1つまたは複数の第1のデバイス200を示している。第1のデバイス200は、
図1に関して上述したように、第1のデバイス105と同じかまたは同様の構成要素を参照し得る。
図2Aおよび
図2Bは、第1のデバイス200の構成要素の単一の例を示しているが、任意の数の構成要素が利用されてもよい。
【0044】
第1のデバイス200は、システム100の1つまたは複数の構成要素と通信し得る。第1のデバイス200は、接触ベースのカード(例えば、磁気ストライプのスワイプやチップリーダへの挿入によって読み出されるカード)または非接触カードを構成してもよく、第1のデバイス200は、第1のデバイス200の前面または背面に表示されたサービスプロバイダ205によって発行されたクレジットカード、デビットカード、またはギフトカードなどの支払いカードを構成してもよい。いくつかの例では、第1のデバイス200は支払いカードに関連せず、限定されないが、身分証明書、会員証、および交通カードを構成してもよい。いくつかの例では、支払いカードは、デュアルインターフェース非接触支払いカードを含み得る。
【0045】
第1のデバイス200は基材210を含んでもよく、基材210は、プラスチック、金属、および他の材料から構成された単一層または1つもしくは複数の積層を含み得る。例示的な基材材料としては、ポリ塩化ビニル、ポリ塩化ビニルアセテート、アクリロニトリルブタジエンスチレン、ポリカーボネート、ポリエステル、陽極酸化チタン、パラジウム、金、炭素、紙、および生分解性材料が挙げられる。いくつかの例では、第1のデバイス200はISO/IEC7810規格のID-1フォーマットに準拠した物理的特性を有してもよく、第1のデバイス200はそうではなく、ISO/IEC14443規格に準拠していてもよい。しかしながら、本開示による第1のデバイス200は異なる特性を有してもよく、本開示は支払いカードにおける実施を必要としないことが理解される。
【0046】
第1のデバイス200はまた、カードの前面および/または背面に表示された識別情報215、ならびにコンタクトパッド220も含み得る。コンタクトパッド220は、ユーザデバイス、スマートフォン、ラップトップ、デスクトップ、またはタブレットコンピュータを含むがこれらに限定されない別の通信デバイスとのコンタクトを確立し得る。第1のデバイス200はまた、
図2Aに示されていない処理回路、アンテナおよび他の構成要素を含んでもよい。これらの構成要素は、コンタクトパッド220の背後に、または基材210上の他の場所に配置されてもよい。第1のデバイス200はまた、カードの背面に配置され得る磁気ストリップまたはテープ(
図2Aには示されていない)を含んでもよい。
【0047】
図2Bに示すように、
図2Aのコンタクトパッド220は、マイクロプロセッサなどのプロセッサ230と、メモリ235とを含み、情報を記憶し、処理する処理回路225を含み得る。処理回路225は、本明細書で説明される機能を行うため必要に応じて、プロセッサ、メモリ、エラーおよびパリティ/CRCチェッカ、データエンコーダ、衝突防止アルゴリズム、コントローラ、コマンドデコーダ、セキュリティプリミティブおよび改ざん防止ハードウェアを含む追加の構成要素を含み得ることが理解される。
【0048】
メモリ235は、読み出し専用メモリ、ライトワンス・リードマルチプルメモリ、または読み出し/書き込みメモリ、例えば、RAM、ROM、およびEEPROMであってもよく、第1のデバイス200は、これらのメモリのうちの1つまたは複数を含んでもよい。読み出し専用メモリは、読み出し専用または1回のみプログラム可能として工場でプログラム可能であってもよい。1回のみプログラム可能であることは、1回書き込んだ後に何度も読み出す機会を提供する。ライトワンス・リードマルチプルメモリは、メモリチップが工場を出た後の時点にプログラムされ得る。メモリがプログラムされると、メモリは書き換えられなくなるが、何度も読み出され得る。読み出し/書き込みメモリは、工場を出た後に何度もプログラムされ、再プログラムされ得る。読み出し/書き込みメモリはまた、何度も読み出され得る。
【0049】
メモリ235は、1つまたは複数のアプレット240、1つまたは複数のカウンタ245、および顧客識別子250を記憶し得る。1つまたは複数のアプレット240は、Java Cardアプレットなどの1つまたは複数の接触ベースのカードまたは非接触カード上で実行する1つまたは複数のソフトウェアアプリケーションを含み得る。しかしながら、アプレット240は、Java Cardアプレットに限定されないが、代わりに、接触ベースのカードもしくは非接触カードまたは限られたメモリを有する他のデバイス上で動作可能な任意のソフトウェアアプリケーションであってもよいことが理解される。1つまたは複数のカウンタ245は、整数を記憶するのに十分な数値カウンタを含み得る。顧客識別子250は、第1のデバイス200のユーザに割り当てられた一意の英数字識別子を含んでもよく、識別子は、非接触カードのユーザを他の非接触カードユーザから区別し得る。いくつかの例では、顧客識別子250は、顧客とその顧客に割り当てられたアカウントの両方を識別してもよく、顧客のアカウントと関連付けられた非接触カードをさらに識別し得る。
【0050】
前述の例示的な実施形態のプロセッサおよびメモリ要素は、コンタクトパッドを参照して説明されているが、本開示はこれに限定されない。これらの要素は、コンタクトパッド220の外側に、またはコンタクトパッド220から完全に分離して、またはコンタクトパッド内に配置されたプロセッサ230およびメモリ235要素に加えてさらなる要素として実施されてもよいことが理解される。
【0051】
いくつかの例では、第1のデバイス200は1つまたは複数のアンテナ255を含み得る。1つまたは複数のアンテナ255は、第1のデバイス200内の、コンタクトパッド220の処理回路225の周囲に配置され得る。例えば、1つまたは複数のアンテナ255は、処理回路225と一体であってもよく、1つまたは複数のアンテナ255は外部ブースタコイルと共に使用されてもよい。別の例では、1つまたは複数のアンテナ255は、コンタクトパッド220および処理回路225の外部にあってもよい。
【0052】
一実施形態では、第1のデバイス200のコイルは、空芯変圧器の二次として機能し得る。端末は、切断電力または振幅変調によって第1のデバイス200と通信し得る。第1のデバイス200は、1つまたは複数のコンデンサを介して機能的に維持され得る第1のデバイスの電力接続におけるギャップを使用して端末から送信されたデータを推測し得る。第1のデバイス200は、第1のデバイスのコイルの負荷または負荷変調を切り替えることによって返信し得る。負荷変調は、干渉によって端末のコイルで検出され得る。
【0053】
図3は、登録プロセスおよび/またはアプリケーション起動プロセスを含み得る認証方法300を示している。
図3は、システム100、ならびに
図2Aおよび
図2Bの第1のデバイス200と同じかまたは同様の構成要素を参照し得る。
【0054】
ブロック310で、方法300は、プロセッサによって、第1の要求を受信することを含み得る。例えば、プロセッサは、サーバに属し得る。第1の要求は、認証要求を含み得る。プロセッサは、認証要求を受信するように構成され得る。いくつかの例では、認証要求は、ウェブサイト登録を求める要求を含み得る。例えば、認証要求は、FIDOウェブサイト登録を求める要求を含んでもよい。他の例では、認証要求は、任意のデバイス上でアプリケーションを起動するよう求める要求を含み得る。他の例では、認証要求は、他の動作を含んでもよい。
【0055】
認証要求はリダイレクトされ得る。例えば、認証要求はブラウザ拡張機能からリダイレクトされてもよい。いくつかの例では、ブラウザ拡張機能は、FIDOウェブサイト登録を傍受し、それをクラウドベースのオーセンティケータサーバにリダイレクトし得る。ブラウザ拡張機能は、Chrome(登録商標)ブラウザ、Internet Explorer(登録商標ブラウザ)、Firefox(登録商標)ブラウザ、および/またはSafari(登録商標)ブラウザ用の拡張機能を含み得る。他のブラウザ拡張機能が利用されてもよいことが理解され、スタンドアロンのソフトウェアアプリケーションが使用されてもよいことがさらに理解される。限定されないが、FIDOウェブサイト登録は、モバイルデバイス、タブレット、ラップトップ、またはデスクトップを含むがこれらに限定されない任意のデバイス上で行われてもよい。モバイルベースのブラウザ、タブレットベースのブラウザ、ラップトップベースのブラウザ、またはデスクトップベースのブラウザは、FIDOウェブサイト登録を傍受し、それをサーバに送信し得る。例えば、ウェブサイトは、これに限定されないが、ハイパーテキスト転送プロトコルセキュア(HTTPS)を含むプロトコルを介してチャレンジを発行してもよい。ブラウザ拡張機能は、ローカルのFIDO2対応デバイスでデバイスに直接応答する代わりに、このトラフィックをサーバにリダイレクトし得る。以下でさらに説明するように、サーバは、第1のデバイスのプロセッサを使用してチャレンジに署名するデバイスのアプリケーションにチャレンジをリダイレクトしてもよく、署名されたチャレンジは元のデバイスに返送され、ログインのためにウェブサイトに返される。別の例では、デバイスのアプリケーションは、以下でさらに説明するように、ユーザを認証してもよく、その際デバイスのアプリケーションは、受信した暗号文をサーバに送信してもよく、サーバは、受信した暗号文からユーザの識別情報を検証する。サーバのプロセッサは、登録プロセス中に生成されたFIDO秘密鍵を使用してチャレンジに署名し得る。そのような実施態様は、ウェブサイト登録および/またはアプリケーションの起動に適用可能であり得る。例えば、アプリケーションは、要求がリダイレクトされていることを認識してもよい。デバイスのアプリケーションは、サーバのプロセッサからプッシュ通知を受信したときに起動してもよく、第1のデバイスから暗号文を受信してサーバに送信する。
【0056】
ブロック320で、方法300は、プロセッサによって、第2の要求を送信することを含み得る。例えば、第2の要求は通知を含んでもよい。プロセッサは、1つまたは複数の通知を送信し得る。いくつかの例では、プロセッサは、識別情報の検証を必要とする通知を送信し得る。例えば、プロセッサからデバイスのアプリケーションに、識別情報検証を要求する少なくとも1つの通知が送信されてもよい。1つまたは複数の通知は、プロセッサによってアプリケーションに送信され、アプリケーションによる1つまたは複数のレスポンスを必要とし得る。プロセッサは、1つまたは複数の通知を生成して送信し得る。限定されないが、1つまたは複数の通知は、プロセッサからアプリケーションに転送されたプッシュ通知を含んでもよい。
【0057】
ブロック330で、方法300は、プロセッサによって、第2の要求に応答した第1のレスポンスを受信することであって、第1のレスポンスが暗号文を含む、ことを含み得る。例えば、プロセッサは、1つまたは複数の通知を含む、第2の要求に応答した1つまたは複数のレスポンスを受信してもよい。いくつかの例では、レスポンスは、クリプトグラムや暗号結果などの暗号文、および入力データを含み得る。プロセッサは、カードのプロセッサから1つまたは複数のレスポンスを受信し得る。例えば、カードのプロセッサは、少なくとも1つの鍵およびカウンタ値を使用して暗号文を作成してもよい。暗号文は、カウンタ値を含み得る。カードのプロセッサは、通信インターフェースを介してデバイスのアプリケーションに暗号文を送信してもよく、デバイスは、暗号文および入力データを含む任意のデータを送信するためにプロセッサとカードとの間の仲介デバイスとして機能し得る。例えば、カードのプロセッサは、暗号文をプロセッサに送信してもよい。カードのプロセッサは、暗号文の送信後にカウンタ値を更新し得る。暗号文は、これに限定されないが、1回または複数回の近距離無線通信データ交換フォーマット(NDEF)読み出しを含む1回または複数回の読み出しを介して取得され得る。デバイスのアプリケーションは、カードの近距離無線通信(NFC)タグなどのタグの1回または複数回の読み出しを行い得る。例えば、カードは、デバイスの通信フィールドへの1回または複数回のエントリの後に、暗号文を送信してもよい。限定されないが、各エントリは、タップ、スワイプ、ウェイブ、および/またはそれらの任意の組合せと関連付けられてもよい。
【0058】
プロセッサは、第1のレスポンスを必要とする第1の通知を送信し得る。第1のレスポンスは暗号文を含み得る。プロセッサは、アプリケーションから第1のレスポンスを受信し得る。プロセッサは、暗号文を検証し得る。例えば、アプリケーションからプロセッサへの送信前に暗号化され得る暗号文を復号することによる、暗号文の検証後、プロセッサは、第2のレスポンスを必要とする第2の通知をアプリケーションに送信し得る。第2のレスポンスは、入力データを含み得る。プロセッサは、第2のレスポンスの入力データを受信し得る。プロセッサは、参照入力データをアプリケーションからの送信入力データと比較することによって入力データを検証し得る。参照入力データは、サーバによって記憶され得る。他の例では、参照入力データは、例えばデータベースを介してサーバによって取り出され得る。例えば、サーバは、データベースに参照入力データの取得を求める要求を送信してもよく、データベースは、要求を受信し、サーバによって送信された要求に応答して参照入力データを送信してもよい。他の例では、別個のレスポンスを必要とする別個の通知を送信する代わりに、単一の通知がプロセッサによってアプリケーションに送信され、単一のレスポンスを介して暗号文と入力データの両方を要求し得る。さらに、入力データは、第1の通知に対する第1のレスポンスを介して、第2の通知に対する第2のレスポンスの前に要求されてもよい。他の例では、入力データは、第2の通知に対する第2のレスポンスを介して、第1の通知に対する第1のレスポンスの後に要求され得る。
【0059】
いくつかの例では、入力データは、生体認証データを含み得る。限定されないが、生体認証データは、指紋、顔スキャン、網膜スキャン、音声認識、および/またはそれらの任意の組合せの群より選択された少なくとも1つを含んでもよい。いくつかの例では、入力データは、追加的および/または代替的にログインデータを含み得る。限定されないが、ログインデータは、ユーザ名、パスワード、アカウント番号、セキュリティコード、ワンタイムパスコード、セキュリティ質問に対する回答、および/またはそれらの任意の組合せのエントリの群より選択された少なくとも1つを含んでもよい。入力データは、生体認証データおよびログインデータの群より選択された少なくとも1つを含み得る。入力データは、生体認証データ、ログインデータ、および/またはそれらの任意の組合せを含んでもよい。
【0060】
ブロック340で、方法300は、プロセッサによって、FIDO(Fast Identity Online)鍵ペアを生成することを含み得る。識別情報検証の後、プロセッサは鍵ペアを生成し得る。鍵ペアは、1組の鍵を含み得る。いくつかの例では、FIDO鍵ペアは、秘密鍵および公開鍵を含み得る。例えば、FIDO鍵ペアは、FIDO秘密鍵およびFIDO公開鍵を含んでもよい。プロセッサは、1つまたは複数の鍵を記憶し得る。例えば、プロセッサは、FIDO秘密鍵をセキュアエレメントに記憶してもよい。FIDO秘密鍵をカードに記憶するのではなく、FIDO秘密鍵は、サーバに属するセキュアエレメントに記憶され得る。FIDO秘密鍵は、クラウドベースのオーセンティケータによって維持されるセキュアエレメントに記憶され得る。セキュアエレメントは、クラウド内でホストされてもよく、1つまたは複数の鍵がセキュアに記憶され、取り出され得る耐タンパ性のセキュアストレージ領域を備え得る。いくつかの例では、セキュアエレメントへのアクセスは、プロセッサのみによるなど、制限され得る。プロセッサは、セキュアエレメントからFIDO秘密鍵を取り出し得る。他の例では、セキュアエレメントへのアクセスは制限されなくてもよく、それによって鍵を取り出しのために専用デバイス上に記憶しない。初期FIDO登録時に、ウェブサイトは、ウェブサイトおよび/またはユーザを一意に識別する識別子を送信し得る。FIDO秘密鍵などの鍵が生成されると、クラウド内のサーバは、識別子を使用してこの鍵をセキュアエレメントに記憶するように構成し得る。その後のFIDO認証要求時に、ウェブサイトは、チャレンジと共に識別子を送信し得る。チャレンジに署名する時点で、サーバは、識別子を使用してセキュアエレメントからFIDO秘密鍵を検索し、取り出し得る。このように、鍵ペアが紛失したり、置き忘れられたり、盗まれたりした場合、クラウドベースのオーセンティケータは、鍵を記憶した物理的デバイスを必要とせずに、FIDO公開鍵などの鍵を生成して送信し得る。
【0061】
ブロック350で、方法300は、プロセッサによって、FIDO秘密鍵を使用してチャレンジを暗号化することを含み得る。例えば、プロセッサは、鍵ペアからの鍵のうちの少なくとも一方を使用して、1つまたは複数のチャレンジを暗号化してもよい。例えば、プロセッサは、ブラウザ拡張機能からチャレンジを受信してもよい。いくつかの例では、プロセッサは、FIDO秘密鍵を使用してチャレンジを暗号化し得る。
【0062】
ブロック360で、方法300は、プロセッサによって、チャレンジを復号して第1の要求を完了するためにFIDO公開鍵を送信することを含み得る。例えば、プロセッサは、チャレンジを復号して認証要求を完了するためにFIDO公開鍵を送信してもよい。鍵のうちの少なくとも1つは、チャレンジの復号に使用され得る。いくつかの例では、ウェブサイトが署名されたチャレンジを確認し、ウェブサイトへのアクセスを許可する認証要求の完了は、FIDO公開鍵によって確認され得る。例えば、チャレンジは、結果が元のチャレンジと一致するかどうかを判定してそれがデジタル署名されたことの検証に、受信したFIDO公開鍵で復号されてもよい。このように、方法300は、分散ストレージ、クラウドベースのストレージ、および前述の機能をサポートする他の形態のストレージを用いて実施し得る。
【0063】
図4は、例示的な実施形態による認証プロセスのシーケンス
図400を示している。方法400は、登録プロセスを含み得る。
図4は、システム100、
図2Aおよび
図2Bの第1のデバイス200、ならびに
図3の方法300と同じかまたは同様の構成要素を参照し得る。
【0064】
ステップ410で、ユーザは、ウェブサイトによって登録するように促され得る。例えば、ユーザは、ブラウザ拡張機能を介して、FIDOウェブサイト登録を促されてもよい。限定されないが、ブラウザ拡張機能は、Chrome(登録商標)、Internet Explorer(登録商標)、Firefox(登録商標)、またはSafari(登録商標)を含み得る。ブラウザ拡張機能以外のソフトウェアアプリケーション、例えばスタンドアロンのソフトウェアアプリケーションが使用されてもよいことが理解される。さらに、ユーザは、ラップトップ、デスクトップ、または任意の他のデバイスを含むがこれらに限定されないデバイス上で実行する命令を含むアプリケーションによって促されてもよい。
【0065】
ステップ420で、ブラウザ拡張機能は、FIDOウェブサイト登録を傍受し、この要求をクラウドベースのオーセンティケータなどのオーセンティケータにリダイレクトし得る。いくつかの例では、サーバはクラウドベースのオーセンティケータを含み得る。いくつかの例では、ブラウザ拡張機能は、FIDOウェブサイト登録を開始し得る。限定されないが、FIDOウェブサイト登録は、ラップトップまたはデスクトップを含むがこれらに限定されない任意のデバイス上で行われてもよい。モバイルベースのブラウザ、またはデスクトップベースのブラウザは、FIDOウェブサイト登録を傍受し、それをクラウドベースのオーセンティケータに送信し得る。
【0066】
いくつかの例では、要求は認証要求を含み得る。クラウドベースのオーセンティケータは、認証要求を受信し得る。いくつかの例では、認証要求は、ウェブサイト登録を求める要求を含み得る。例えば、認証要求は、FIDO(Fast Identity Online)ウェブサイト登録を求める要求を含んでもよい。他の例では、認証要求は、任意のデバイス上でアプリケーションを起動するよう求める要求を含み得る。
【0067】
認証要求はリダイレクトされ得る。例えば、認証要求はブラウザ拡張機能からリダイレクトされてもよい。いくつかの例では、ブラウザ拡張機能は、FIDOウェブサイト登録を傍受し、それをクラウドベースのオーセンティケータサーバにリダイレクトし得る。例えば、ウェブサイトは、これに限定されないが、ハイパーテキスト転送プロトコルセキュア(HTTPS)を含むプロトコルを介してチャレンジを発行してもよい。ブラウザ拡張機能は、ローカルのFIDO2対応デバイスでデバイスに直接応答する代わりに、このトラフィックをクラウドベースのオーセンティケータサーバにリダイレクトし得る。以下でさらに説明するように、クラウドベースのオーセンティケータサーバは、第1のデバイスのプロセッサを使用してチャレンジに署名するデバイスのアプリケーションにチャレンジをリダイレクトしてもよく、署名されたチャレンジは元のデバイスに返送され、ログインのためにウェブサイトに返される。別の例では、デバイスのアプリケーションは、以下でさらに説明するように、ユーザを認証してもよく、その際デバイスのアプリケーションは、受信した暗号文をクラウドベースのオーセンティケータサーバのプロセッサに送信してもよく、サーバは、受信した暗号文からユーザの識別情報を検証し得る。クラウドベースのオーセンティケータサーバのプロセッサは、登録プロセス中に生成されたFIDO秘密鍵を使用してチャレンジに署名し得る。そのような実施態様は、ウェブサイト登録および/またはアプリケーションの起動に適用可能であり得る。例えば、アプリケーションは、要求がリダイレクトされていることを認識してもよい。デバイスのアプリケーションは、クラウドベースのオーセンティケータサーバのプロセッサからプッシュ通知を受信したときに起動してもよく、第1のデバイスから暗号文を受信してクラウドベースのオーセンティケータサーバに送信する。
【0068】
ステップ430で、クラウドベースのオーセンティケータは、識別情報検証プロセスを行い得る。例えば、クラウドベースのオーセンティケータは、デバイス上で実行する命令を含む1つまたは複数の通知を生成してアプリケーションに送信することによって識別情報検証プロセスを行ってもよい。例えば、クラウドベースのオーセンティケータは、1つまたは複数の通知を送信してもよい。いくつかの例では、クラウドベースのオーセンティケータは、識別情報の検証を必要とする通知を送信し得る。例えば、クラウドベースのオーセンティケータからアプリケーションに少なくとも1つの通知が送信されてもよい。1つまたは複数の通知は、クラウドベースのオーセンティケータによってアプリケーションに送信され、アプリケーションによる1つまたは複数のレスポンスを必要とし得る。クラウドベースのオーセンティケータは、1つまたは複数の通知を生成し、送信し得る。限定されないが、1つまたは複数の通知は、クラウドベースのオーセンティケータからアプリケーションに転送されたプッシュ通知を含んでもよい。
【0069】
ステップ440で、デバイスのアプリケーションは、クラウドベースのオーセンティケータによって送信された1つまたは複数の通知を受信し得る。1つまたは複数の通知に応答して、デバイスのアプリケーションは、カードの1回または複数回の読み出しを実行し得る。暗号文は、これに限定されないが、1回または複数回の近距離無線通信データ交換フォーマット(NDEF)読み出しを含む1回または複数回の読み出しを介して取得され得る。デバイスのアプリケーションは、カードの近距離無線通信(NFC)タグなどのタグの1回または複数回の読み出しを実行し得る。例えば、カードは、デバイスの通信フィールドへの1回または複数回のエントリの後に、暗号文を送信してもよい。限定されないが、各エントリは、タップ、スワイプ、ウェイブ、および/またはそれらの任意の組合せと関連付けられてもよい。例えば、カードのプロセッサは、少なくとも1つの鍵およびカウンタ値を使用して暗号文を作成してもよい。暗号文は、カウンタ値を含み得る。
【0070】
ステップ450で、カードのプロセッサは、通信インターフェースを介してデバイスのアプリケーションに暗号文を送信してもよく、デバイスは、暗号文および入力データを含む任意のデータを送信するためにクラウドベースのオーセンティケータとカードとの間の仲介デバイスとして機能し得る。例えば、カードのプロセッサは、暗号文をクラウドベースのオーセンティケータに送信してもよい。カードのプロセッサは、暗号文の送信後にカウンタ値を更新し得る。
【0071】
ステップ460で、デバイスのアプリケーションは、クラウドベースのオーセンティケータによって送信された1つまたは複数の通知に応答した1つまたは複数のレスポンスを送信し得る。1つまたは複数の通知に応答して、デバイスのアプリケーションは、デバイスの通信フィールドへのカードのエントリを促し得る。例えば、デバイスのアプリケーションは、クラウドベースのオーセンティケータからの1つまたは複数の通知に応答した第1のレスポンスであって、暗号文を含む、第1のレスポンスを送信してもよい。いくつかの例では、レスポンスは、クリプトグラムや暗号結果などの暗号文、および入力データを含み得る。例えば、カードのプロセッサは、少なくとも1つの鍵およびカウンタ値を使用して暗号文を作成してもよい。暗号文は、カウンタ値を含み得る。カードのプロセッサは、通信インターフェースを介してデバイスのアプリケーションに暗号文を送信してもよく、デバイスは、暗号文および入力データを含む任意のデータを送信するためにクラウドベースのオーセンティケータとカードとの間の仲介デバイスとして機能し得る。例えば、カードのプロセッサは、暗号文をクラウドベースのオーセンティケータに送信してもよい。
【0072】
いくつかの例では、入力データは、生体認証データを含み得る。限定されないが、生体認証データは、指紋、顔スキャン、網膜スキャン、音声認識、および/またはそれらの任意の組合せの群より選択された少なくとも1つを含んでもよい。いくつかの例では、入力データは、追加的および/または代替的にログインデータを含み得る。限定されないが、ログインデータは、ユーザ名、パスワード、アカウント番号、セキュリティコード、ワンタイムパスコード、セキュリティ質問に対する回答、および/またはそれらの任意の組合せのエントリの群より選択された少なくとも1つを含んでもよい。入力データは、生体認証データおよびログインデータの群より選択された少なくとも1つを含み得る。入力データは、生体認証データ、ログインデータ、および/またはそれらの任意の組合せを含んでもよい。このように、暗号文と入力データの両方の認証後に識別情報検証が完了され得る。
【0073】
ステップ470で、クラウドベースのオーセンティケータは、デバイスのアプリケーションによって送信された1つまたは複数のレスポンスを受信し得る。いくつかの例では、クラウドベースのオーセンティケータは、カードから1つまたは複数のレスポンスを受信し得る。クラウドベースのオーセンティケータは、識別情報検証プロセスを介して、受信した1つまたは複数のレスポンスを検証し得る。クラウドベースのオーセンティケータは、アプリケーションから第1のレスポンスを受信して認証し得る。クラウドベースのオーセンティケータは、暗号文を検証し得る。例えば、アプリケーションからクラウドベースのオーセンティケータへの送信前に暗号化され得る暗号文を復号することによる、暗号文の検証後、クラウドベースのオーセンティケータは、第2のレスポンスを必要とする第2の通知をアプリケーションに送信し得る。第2のレスポンスは、入力データを含み得る。クラウドベースのオーセンティケータは、第2のレスポンスの入力データを受信し得る。クラウドベースのオーセンティケータは、参照入力データをアプリケーションからの送信入力データと比較することによって入力データを検証し得る。参照入力データは、クラウドベースのオーセンティケータによって記憶され得る。他の例では、参照入力データは、例えばデータベースを介してクラウドベースのオーセンティケータによって取り出され得る。例えば、クラウドベースのオーセンティケータは、データベースに参照入力データの取得を求める要求を送信してもよく、データベースは、要求を受信し、サーバによって送信された要求に応答して参照入力データを送信してもよい。他の例では、別個のレスポンスを必要とする別個の通知を送信する代わりに、単一の通知がクラウドベースのオーセンティケータによってアプリケーションに送信され、単一のレスポンスを介して暗号文と入力データの両方を要求し得る。さらに、入力データは、第1の通知に対する第1のレスポンスを介して、第2の通知に対する第2のレスポンスの前に要求されてもよい。他の例では、入力データは、第2の通知に対する第2のレスポンスを介して、第1の通知に対する第1のレスポンスの後に要求され得る。
【0074】
ステップ480で、クラウドベースのオーセンティケータは、ユーザに固有の鍵ペアを生成し得る。例えば、識別情報検証の後、クラウドベースのオーセンティケータは鍵ペアを生成してもよい。FIDO鍵ペアなどの鍵ペアは、1組の鍵を含み得る。いくつかの例では、FIDO鍵ペアは、秘密鍵および公開鍵を含み得る。例えば、FIDO鍵ペアは、FIDO秘密鍵およびFIDO公開鍵を含んでもよい。クラウドベースのオーセンティケータは、1つまたは複数の鍵を記憶し得る。例えば、クラウドベースのオーセンティケータは、FIDO秘密鍵をセキュアエレメントに記憶してもよい。FIDO秘密鍵をカードに記憶するのではなく、FIDO秘密鍵は、クラウドベースのオーセンティケータに属するセキュアエレメントに記憶され得る。FIDO秘密鍵は、クラウドベースのオーセンティケータによって維持されるセキュアエレメントに記憶され得る。セキュアエレメントは、クラウド内でホストされてもよく、1つまたは複数の鍵がセキュアに記憶され、取り出され得る耐タンパ性のセキュアストレージ領域を備え得る。いくつかの例では、セキュアエレメントへのアクセスは、クラウドベースのオーセンティケータのみによるなど、制限され得る。クラウドベースのオーセンティケータは、セキュアエレメントからFIDO秘密鍵を取り出し得る。他の例では、セキュアエレメントへのアクセスは制限されなくてもよく、それによって鍵を取り出しのために専用デバイス上に記憶しない。初期FIDO登録時に、ウェブサイトは、ウェブサイトおよび/またはユーザを一意に識別する識別子を送信し得る。FIDO秘密鍵などの鍵が生成されると、クラウド内のクラウドベースのオーセンティケータは、識別子を使用してこの鍵をセキュアエレメントに記憶し得る。その後のFIDO認証要求時に、ウェブサイトは、チャレンジと共に識別子を送信し得る。チャレンジに署名する時点で、サーバは、識別子を使用してセキュアエレメントからFIDO秘密鍵を検索し、取り出し得る。このように、鍵ペアが紛失したり、置き忘れられたり、盗まれたりした場合、クラウドベースのオーセンティケータは、鍵を記憶した物理的デバイスを必要とせずに、FIDO公開鍵などの鍵を生成して送信し得る。
【0075】
クラウドベースのオーセンティケータは、鍵のうちの1つをブラウザ拡張機能に送信し得る。例えば、クラウドベースのオーセンティケータは、チャレンジを暗号化するために使用され得るFIDO秘密鍵を送信してもよい。いくつかの例では、クラウドベースのオーセンティケータは、鍵ペアからの鍵のうちの少なくとも一方を使用して、1つまたは複数のチャレンジを暗号化し得る。例えば、クラウドベースのオーセンティケータは、ブラウザ拡張機能からチャレンジを受信してもよい。いくつかの例では、クラウドベースのオーセンティケータは、FIDO秘密鍵を使用してチャレンジを暗号化し得る。
【0076】
ステップ490で、ブラウザ拡張機能は、クラウドベースのオーセンティケータによって送信された鍵のうちの1つを受信し得る。例えば、ブラウザ拡張機能は、チャレンジを復号して認証要求を完了するために、データベースなど、FIDO公開鍵を受信および送信してもよい。いくつかの例では、ウェブサイトが署名されたチャレンジを確認し、ウェブサイトへのアクセスを許可する認証要求の完了は、FIDO公開鍵によって確認され得る。例えば、チャレンジは、結果が元のチャレンジと一致するかどうかを判定してそれがデジタル署名されたことを検証するために、クラウドベースのオーセンティケータからの受信したFIDO公開鍵で復号されてもよい。このように、認証プロセスのシーケンス
図400は、分散ストレージ、クラウドベースのストレージ、および前述の機能をサポートする他の形態のストレージを用いて実施し得る。
【0077】
図5は、例示的な実施形態による認証方法500を示している。方法500は、登録プロセスを含み得る。
図5は、システム100、
図2Aおよび
図2Bの第1のデバイス200、
図3の方法300、ならびに
図4のシーケンス
図400と同じかまたは同様の構成要素を参照し得る。
【0078】
ブロック510で、方法500は、要求をリダイレクトすることを含み得る。例えば、要求は認証要求を含んでもよい。サーバのプロセッサは、認証要求を受信し得る。いくつかの例では、認証要求は、ウェブサイト登録を求める要求を含み得る。例えば、認証要求は、FIDO(Fast Identity Online)ウェブサイト登録を求める要求を含んでもよい。他の例では、認証要求は、任意のデバイス上でアプリケーションを起動するよう求める要求を含み得る。
【0079】
認証要求はリダイレクトされ得る。例えば、認証要求はブラウザ拡張機能からリダイレクトされてもよい。いくつかの例では、ブラウザ拡張機能は、FIDOウェブサイト登録を傍受し、それをクラウドベースのオーセンティケータサーバにリダイレクトし得る。ブラウザ拡張機能101は、Chrome(登録商標)ブラウザ、Internet Explorer(登録商標ブラウザ)、Firefox(登録商標)ブラウザ、および/またはSafari(登録商標)ブラウザ用の拡張機能を含み得る。他のブラウザ拡張機能101が利用されてもよいことが理解され、スタンドアロンのソフトウェアアプリケーションが使用されてもよいことがさらに理解される。限定されないが、FIDOウェブサイト登録は、ラップトップまたはデスクトップを含むがこれらに限定されない任意のデバイス上で行われてもよい。モバイルベースのブラウザ、またはデスクトップベースのブラウザは、FIDOウェブサイト登録を傍受し、それをサーバに送信し得る。例えば、ウェブサイトは、これに限定されないが、ハイパーテキスト転送プロトコルセキュア(HTTPS)を含むプロトコルを介してチャレンジを発行してもよい。ブラウザ拡張機能は、ローカルのFIDO2対応デバイスでデバイスに直接応答する代わりに、このトラフィックをサーバにリダイレクトし得る。以下でさらに説明するように、サーバは、第1のデバイスのプロセッサを使用してチャレンジに署名するデバイスのアプリケーションにチャレンジをリダイレクトしてもよく、署名されたチャレンジは元のデバイスに返送され、ログインのためにウェブサイトに返される。別の例では、デバイスのアプリケーションは、以下でさらに説明するように、ユーザを認証してもよく、その際デバイスのアプリケーションは、受信した暗号文をサーバに送信してもよく、サーバは、受信した暗号文からユーザの識別情報を検証し得る。サーバは次いで、登録プロセス中に生成されたFIDO秘密鍵を使用してチャレンジに署名し得る。そのような実施態様は、ウェブサイト登録および/またはアプリケーションの起動に適用可能であり得る。例えば、アプリケーションは、要求がリダイレクトされていることを認識されてもよい。デバイスのアプリケーションは、サーバのプロセッサからプッシュ通知を受信したときに起動してもよく、第1のデバイスから暗号文を受信してサーバに送信する。
【0080】
ブロック520で、方法500は、プッシュ通知を送信することを含み得る。例えば、プッシュ通知は、プロセッサによって送信されてもよい。いくつかの例では、プロセッサは、通知を送信することによって識別情報検証を行い得る。例えば、プロセッサからデバイスのアプリケーションに、識別情報検証を要求する少なくとも1つの通知が送信されてもよい。1つまたは複数の通知は、プロセッサによってアプリケーションに送信され、アプリケーションによる1つまたは複数のレスポンスを必要とし得る。プロセッサは、1つまたは複数の通知を生成して送信し得る。限定されないが、1つまたは複数の通知は、プロセッサからアプリケーションに転送されたプッシュ通知を含んでもよい。
【0081】
ブロック530で、方法500は、レスポンスを認証することを含み得る。例えば、プロセッサは、デバイスのアプリケーションによって送信された、プッシュ通知に応答した1つまたは複数のレスポンスを認証してもよい。いくつかの例では、レスポンスは、クリプトグラムや暗号結果などの暗号文、および入力データを含み得る。プロセッサは、カードのプロセッサから1つまたは複数のレスポンスを受信し得る。例えば、カードのプロセッサは、少なくとも1つの鍵およびカウンタ値を使用して暗号文を作成してもよい。暗号文は、カウンタ値を含み得る。カードのプロセッサは、通信インターフェースを介してデバイスのアプリケーションに暗号文を送信してもよく、デバイスは、暗号文および入力データを含む任意のデータを送信するためにプロセッサとカードとの間の仲介デバイスとして機能し得る。例えば、カードのプロセッサは、暗号文をプロセッサに送信してもよい。カードのプロセッサは、暗号文の送信後にカウンタ値を更新し得る。暗号文は、これに限定されないが、1回または複数回の近距離無線通信データ交換フォーマット(NDEF)読み出しを含む1回または複数回の読み出しを介して取得され得る。デバイスのアプリケーションは、カードの近距離無線通信(NFC)タグなどのタグの1回または複数回の読み出しを実行し得る。例えば、カードは、デバイスの通信フィールドへの1回または複数回のエントリの後に、暗号文を送信してもよい。限定されないが、各エントリは、タップ、スワイプ、ウェイブ、および/またはそれらの任意の組合せと関連付けられてもよい。
【0082】
プロセッサは、第1のレスポンスを必要とする第1の通知を送信し得る。第1のレスポンスは暗号文を含み得る。プロセッサは、アプリケーションから第1のレスポンスを受信し得る。プロセッサは、暗号文を検証し得る。例えば、アプリケーションからプロセッサへの送信前に暗号化され得る暗号文を復号することによる、暗号文の検証後、プロセッサは、第2のレスポンスを必要とする第2の通知をアプリケーションに送信し得る。第2のレスポンスは、入力データを含み得る。プロセッサは、第2のレスポンスの入力データを受信し得る。プロセッサは、参照入力データをアプリケーションからの送信入力データと比較することによって入力データを検証し得る。参照入力データは、サーバによって記憶され得る。他の例では、参照入力データは、例えばデータベースを介してサーバによって取り出され得る。例えば、サーバは、データベースに参照入力データの取得を求める要求を送信してもよく、データベースは、要求を受信し、サーバによって送信された要求に応答して参照入力データを送信してもよい。他の例では、別個のレスポンスを必要とする別個の通知を送信する代わりに、単一の通知がプロセッサによってアプリケーションに送信され、単一のレスポンスを介して暗号文と入力データの両方を要求し得る。さらに、入力データは、第1の通知に対する第1のレスポンスを介して、第2の通知に対する第2のレスポンスの前に要求されてもよい。他の例では、入力データは、第2の通知に対する第2のレスポンスを介して、第1の通知に対する第1のレスポンスの後に要求され得る。
【0083】
いくつかの例では、入力データは、生体認証データを含み得る。限定されないが、生体認証データは、指紋、顔スキャン、網膜スキャン、音声認識、および/またはそれらの任意の組合せの群より選択された少なくとも1つを含んでもよい。いくつかの例では、入力データは、追加的および/または代替的にログインデータを含み得る。限定されないが、ログインデータは、ユーザ名、パスワード、アカウント番号、セキュリティコード、ワンタイムパスコード、セキュリティ質問に対する回答、および/またはそれらの任意の組合せのエントリの群より選択された少なくとも1つを含んでもよい。入力データは、生体認証データおよびログインデータの群より選択された少なくとも1つを含み得る。入力データは、生体認証データ、ログインデータ、および/またはそれらの任意の組合せを含んでもよい。
【0084】
ブロック540で、方法500は、鍵ペアを生成することを含み得る。例えば、プロセッサは、FIDO鍵ペアを生成してもよい。識別情報検証の後、プロセッサは鍵ペアを生成し得る。鍵ペアは、1組の鍵を含み得る。いくつかの例では、FIDO鍵ペアは、秘密鍵および公開鍵を含み得る。例えば、FIDO鍵ペアは、FIDO秘密鍵およびFIDO公開鍵を含んでもよい。プロセッサは、1つまたは複数の鍵を記憶し得る。例えば、プロセッサは、FIDO秘密鍵をセキュアエレメントに記憶してもよい。FIDO秘密鍵をカードに記憶するのではなく、FIDO秘密鍵は、サーバに属するセキュアエレメントに記憶され得る。FIDO秘密鍵は、サーバのプロセッサによって維持されるセキュアエレメントに記憶され得る。セキュアエレメントは、クラウド内でホストされてもよく、1つまたは複数の鍵がセキュアに記憶され、取り出され得る耐タンパ性のセキュアストレージ領域を備え得る。いくつかの例では、セキュアエレメントへのアクセスは、プロセッサのみによるなど、制限され得る。プロセッサは、セキュアエレメントからFIDO秘密鍵を取り出し得る。他の例では、セキュアエレメントへのアクセスは制限されなくてもよく、それによって鍵を取り出しのために専用デバイス上に記憶しない。初期FIDO登録時に、ウェブサイトは、ウェブサイトおよび/またはユーザを一意に識別する識別子を送信し得る。FIDO秘密鍵などの鍵が生成されると、クラウド内のサーバは、識別子を使用してこの鍵をセキュアエレメントに記憶し得る。その後のFIDO認証要求時に、ウェブサイトは、チャレンジと共に識別子を送信し得る。チャレンジに署名する時点で、次いで、FIDO秘密鍵は、識別子を使用してセキュアエレメントから検索され、取り出される。このように、鍵ペアが紛失したり、置き忘れられたり、盗まれたりした場合、クラウドベースのオーセンティケータは、鍵を含む物理的デバイスを必要とせずに、FIDO公開鍵などの鍵を生成して送信し得る。
【0085】
ブロック550で、方法500は、復号の鍵を送信することを含み得る。例えば、FIDO秘密鍵などの鍵のうちの1つは、プロセッサによってチャレンジを暗号化してもよく、プロセッサはまた、チャレンジを復号するFIDO公開鍵を送信してもよい。例えば、プロセッサは、チャレンジを復号して認証要求を完了するためにFIDO公開鍵を送信してもよい。鍵のうちの少なくとも1つは、チャレンジの復号に使用され得る。いくつかの例では、ウェブサイトが署名されたチャレンジを確認し、ウェブサイトへのアクセスを許可する認証要求の完了は、FIDO公開鍵によって確認され得る。例えば、チャレンジは、結果が元のチャレンジと一致するかどうかを判定してそれがデジタル署名されたことを検証するために、受信したFIDO公開鍵で復号されてもよい。このように、方法500は、分散ストレージ、クラウドベースのストレージ、および前述の機能をサポートする他の形態のストレージを用いて実施し得る。
【0086】
図6は、例示的な実施形態による認証方法600を示している。方法600は、登録プロセスを含み得る。
図6は、システム100、
図2Aおよび
図2Bの第1のデバイス200、
図3の方法300、
図4のシーケンス
図400、ならびに
図5の方法500と同じかまたは同様の構成要素を参照し得る。
【0087】
ブロック610で、方法600は、暗号文を生成することを含み得る。例えば、カードのプロセッサは、暗号文を生成してもよい。いくつかの例では、カードのプロセッサは、少なくとも1つの鍵およびカウンタ値を使用して暗号文を作成し得る。暗号文は、カウンタ値を含み得る。暗号文は、これらに限定されないが、デバイスによる1回または複数回の近距離無線通信データ交換フォーマット(NDEF)読み出しを含む1回または複数回の読み出しを介して取得され得る。デバイスのアプリケーションは、カードの近距離無線通信(NFC)タグなどのタグの1回または複数回の読み出しを実行し得る。例えば、カードは、デバイスの通信フィールドへの1回または複数回のエントリの後に、暗号文を送信してもよい。限定されないが、各エントリは、タップ、スワイプ、ウェイブ、および/またはそれらの任意の組合せと関連付けられてもよい。
【0088】
ブロック620で、方法600は、暗号文を暗号化することを含み得る。例えば、カードのプロセッサは、1つまたは複数の暗号化アルゴリズムを使用して暗号文を暗号化してもよい。
【0089】
ブロック630で、方法600は、チャレンジに署名する鍵ペアの生成をトリガするために認証の暗号文を送信することを含み得る。例えば、カードのプロセッサは、通信インターフェースを介してデバイスのアプリケーションに暗号文を送信してもよく、デバイスは、暗号文を含む任意のデータを送信するためにサーバとカードとの間の仲介デバイスとして機能してもよい。いくつかの例では、暗号文は、1つまたは複数の暗号アルゴリズムを介して、認証のためにデバイスのアプリケーションによって復号され得る。暗号文の復号の成功に基づいて、デバイスのアプリケーションは、暗号化または復号された形式のいずれかでカードのプロセッサによって生成された暗号文を含むレスポンスをサーバに送信し得る。サーバによる暗号化または復号された暗号文を含むレスポンスの検証時に、サーバによって鍵ペアが生成されてもよく、秘密鍵のうちの1つはチャレンジの暗号化に使用され、公開鍵のうちの1つはチャレンジを復号するために送信される。公開鍵を使用したチャレンジの復号に成功すると、ウェブサイト登録やアプリケーションの起動などの認証要求は正常に処理され得る。
【0090】
ブロック640で、方法600は、カウンタ値を更新することを含み得る。例えば、カードのプロセッサは、暗号文の送信後にカウンタ値を更新してもよい。他の例では、カードのプロセッサは、デバイス上で実行する命令を含むアプリケーションによる、またはサーバによる暗号文の送信および復号の成功後に、カウンタ値を更新し得る。他の例では、カードのプロセッサは、ウェブサイト登録のアプリケーションの起動の成功を可能にするチャレンジの復号の成功後に、カウンタ値を更新し得る。このように、方法600は、分散ストレージ、クラウドベースのストレージ、および前述の機能をサポートする他の形態のストレージを用いて実施し得る。
【0091】
本明細書で説明されるシステムおよび方法は、これらに限定されないが、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、ハードドライブ、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、およびデータストレージの能力がある他の物理媒体などのより多くの物理媒体のうちの1つで有形に具現化され得ることにさらに留意する。例えば、データストレージは、データおよび情報およびコンピュータプログラム命令にアクセスして記憶し得る、ランダムアクセスメモリ(RAM)および読み出し専用メモリ(ROM)を含んでもよい。データストレージはまた、記憶媒体または他の適切な種類のメモリ(例えば、RAM、ROM、プログラマブル読み出し専用メモリ(PROM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、磁気ディスク、光ディスク、フロッピーディスク、ハードディスク、リムーバブルカートリッジ、フラッシュドライブ、任意の種類の有形の非一時的な記憶媒体など)を含んでもよく、オペレーティングシステム、例えばウェブブラウザアプリケーション、電子メールアプリケーションおよび/または他のアプリケーションを含むアプリケーションプログラムを含むファイル、ならびにデータファイルが記憶され得る。ネットワーク対応コンピュータシステムのデータストレージは、例えば、フラットファイル、インデックス付きファイル、階層型データベース、例えば、Oracle(登録商標)Corporation、Microsoft(登録商標)Excelファイル、Microsoft(登録商標)Accessファイルからのソフトウェアで作成および維持されるデータベースなどのリレーショナルデータベース、フラッシュアレイ、ハイブリッドアレイ、もしくはサーバ側製品を含み得るソリッドステート記憶デバイス、オンラインまたはクラウドストレージを含み得るエンタープライズストレージ、または任意の他の記憶機構を含む、様々な方法で記憶された電子情報、ファイル、および文書を含み得る。さらに、図は、様々な構成要素(例えば、サーバ、コンピュータ、プロセッサなど)を別々に示している。様々な構成要素で行われるものとして説明された機能は、他の構成要素で行われてもよく、様々な構成要素は組み合わされても分離されてもよい。他の修正が行われてもよい。
【0092】
上記の明細書では、添付の図面を参照して様々な実施形態を説明した。しかしながら、添付の特許請求の範囲に記載される本発明のより広い範囲から逸脱することなく、様々な修正および変更が行われてもよく、追加の実施形態が実施され得ることは明らかであろう。したがって、本明細書および図面は、限定的な意味ではなく例示的な意味とみなされるであろう。
【国際調査報告】