(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-30
(54)【発明の名称】記憶装置へのアクセスを制御するための暗号認証
(51)【国際特許分類】
G06F 21/44 20130101AFI20240723BHJP
G06F 21/78 20130101ALI20240723BHJP
【FI】
G06F21/44
G06F21/78
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023579306
(86)(22)【出願日】2022-06-24
(85)【翻訳文提出日】2024-02-21
(86)【国際出願番号】 US2022034863
(87)【国際公開番号】W WO2022272038
(87)【国際公開日】2022-12-29
(32)【優先日】2021-06-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】519111877
【氏名又は名称】キャピタル・ワン・サービシーズ・リミテッド・ライアビリティ・カンパニー
【氏名又は名称原語表記】Capital One Services, LLC
(74)【代理人】
【識別番号】100145403
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100135703
【氏名又は名称】岡部 英隆
(74)【代理人】
【識別番号】100227927
【氏名又は名称】中村 拓
(72)【発明者】
【氏名】イー,ブライアント
(72)【発明者】
【氏名】ブルガコフ,ミハイロ
(72)【発明者】
【氏名】バージェロン,ジョージ
(57)【要約】
記憶装置へのアクセスを制御するための暗号認証のためのシステム、方法、装置、およびコンピュータ可読媒体。非接触カードのプロセッサ上で実行するアプレットは、非接触カードの無線通信インターフェースを介して、非接触カードの記憶装置にアクセスする要求を受信することができ、記憶装置はロック状態にある。アプレットは、要求に基づいて暗号文を生成し、無線通信インターフェースを介して暗号文をコンピューティングデバイスに送信することができる。アプレットは、サーバが暗号文を復号したことを特定する指示をコンピューティングデバイスから受信することができる。アプレットは、記憶装置のコントローラに、サーバが暗号文を復号したことを特定する指示に基づいて、記憶装置のロックを解除するように特定する指示を送信することができる。コントローラは、アプレットから受信した指示に基づいて、記憶装置をロック状態からロック解除状態に遷移させることができる。
【特許請求の範囲】
【請求項1】
非接触カードであって、
プロセッサ回路と、
コントローラを備える記憶装置と、
命令を記憶するメモリとを備え、前記命令は前記プロセッサ回路によって実行されると、前記プロセッサ回路に、
前記記憶装置にアクセスする要求を受信することであって、前記記憶装置はロック状態にある、受信することと、
前記要求に基づいて暗号文を生成することと、
無線通信インターフェースを介して前記暗号文をコンピューティングデバイスに送信することと、
サーバが前記暗号文を復号したことを特定する指示を前記コンピューティングデバイスから受信することと、
前記サーバが前記暗号文を復号したことを特定する前記指示に基づいて、前記記憶装置のロックを解除することを特定する指示を前記コントローラに送信することであって、前記コントローラは、前記指示に基づいて前記記憶装置を前記ロック状態からロック解除状態に遷移させる、送信することと、を行わせる、
非接触カード。
【請求項2】
前記メモリは命令を記憶し、前記命令は前記プロセッサ回路によって実行されると、前記プロセッサ回路に、
前記記憶装置をロックすることを特定する別の要求を受信することと、
別の暗号文を生成することと、
前記別の暗号文を前記コンピューティングデバイスに送信することと、
前記サーバが前記別の暗号文を復号したことを特定する指示を前記コンピューティングデバイスから受信することと、
前記サーバが前記別の暗号文を復号したことを特定する前記指示に基づいて、前記記憶装置をロックすることを特定する指示を前記コントローラに送信することであって、前記コントローラは、前記記憶装置をロックする前記指示に基づいて、前記記憶装置を前記ロック解除状態から前記ロック状態に遷移させる、送信することと、
を行わせる、請求項1に記載の非接触カード。
【請求項3】
前記コントローラは、
前記記憶装置のロックを解除してから経過した時間量が閾値を超えると判定することと、
前記閾値を超える前記時間量に基づいて前記記憶装置をロックすることと、
をさらに行うように構成されている、請求項1に記載の非接触カード。
【請求項4】
前記メモリは命令を記憶し、前記命令は前記プロセッサ回路によって実行されると、前記プロセッサ回路に、
前記記憶装置にアクセスする別の要求を受信することと、
別の暗号文を生成することと、
前記別の暗号文を前記コンピューティングデバイスに送信することと、
前記サーバが前記別の暗号文を復号しなかったことを特定する指示を前記コンピューティングデバイスから受信することと、
前記サーバが前記別の暗号文を復号しなかったという前記指示に基づいて、前記記憶装置にアクセスする前記別の要求を拒否することであって、前記コントローラは、前記記憶装置を前記ロック状態に維持する、拒否することと、
を行わせる、請求項1から3のいずれか一項に記載の非接触カード。
【請求項5】
前記無線通信インターフェースをさらに備え、前記メモリは命令を記憶し、前記命令は前記プロセッサ回路によって実行されると、前記プロセッサ回路に、
前記無線通信インターフェースを介して前記コンピューティングデバイスに、前記記憶装置が前記ロック解除状態にあることを特定する指示を送信させる、請求項1に記載の非接触カード。
【請求項6】
前記記憶装置は、ユニバーサルシリアルバス(USB)記憶装置を備え、前記コントローラは、
前記記憶装置のコネクタがUSBポートに挿入されたと判定することと、
前記ロック解除された記憶装置を前記USBポートに露出させることと、
を行うように構成されている、請求項5に記載の非接触カード。
【請求項7】
前記要求されたアクセスは、(i)前記記憶装置に記憶されたデータを読み出すこと、または(ii)前記記憶装置にデータを書き込むことのうちの1つまたは複数を含み、前記要求されたアクセスは、(i)前記記憶装置をポートに挿入すること、または(ii)前記無線通信インターフェースのうちの1つまたは複数を介して処理され、前記無線通信インターフェースは近距離無線通信(NFC)インターフェースを備える、請求項1から3または5から6のいずれか一項に記載の非接触カード。
【請求項8】
方法であって、
非接触カードのプロセッサ上で実行するアプレットによって、前記非接触カードの無線通信インターフェースを介して、前記非接触カードの記憶装置にアクセスする要求を受信することであって、前記記憶装置はロック状態にある、受信することと、
前記アプレットによって、前記要求に基づいて暗号文を生成することと、
前記アプレットによって、前記無線通信インターフェースを介して前記暗号文をコンピューティングデバイスに送信することと、
サーバが暗号文を復号したことを特定する指示を、前記アプレットによって前記コンピューティングデバイスから受信することと、
前記アプレットによって、前記記憶装置のコントローラに、前記サーバが前記暗号文を復号したことを特定する前記指示に基づいて、前記記憶装置をロック解除することを特定する指示を送信することと、
前記コントローラによって、前記アプレットから受信した前記指示に基づいて、前記記憶装置を前記ロック状態からロック解除状態に遷移させることと、
を含む方法。
【請求項9】
前記アプレットによって、前記記憶装置をロックすることを特定する別の要求を受信することと、
前記アプレットによって、別の暗号文を生成することと、
前記アプレットによって、前記別の暗号文を前記コンピューティングデバイスに送信することと、
前記アプレットによって前記コンピューティングデバイスから、前記サーバが前記別の暗号文を復号したことを特定する指示を受信することと、
前記サーバが前記別の暗号文を復号したことを特定する前記指示に基づいて、前記記憶装置をロックすることを特定する指示を前記アプレットによって前記コントローラに送信することと、
前記コントローラによって、前記記憶装置をロックする前記指示に基づいて、前記記憶装置を前記ロック解除状態から前記ロック状態に遷移させることと、
をさらに含む、請求項8に記載の方法。
【請求項10】
前記コントローラによって、前記記憶装置のロック解除後に経過した時間量が閾値を超えると判定することと、
前記コントローラによって、前記時間量が前記閾値を超えたという前記判定に基づいて、前記記憶装置を前記ロック状態から前記ロック解除状態に遷移させることと、
をさらに含む、請求項8に記載の方法。
【請求項11】
前記アプレットによって、前記記憶装置にアクセスする別の要求を受信することと、
前記アプレットによって、別の暗号文を生成することと、
前記アプレットによって、前記別の暗号文を前記コンピューティングデバイスに送信することと、
前記アプレットによって、前記サーバが前記別の暗号文を復号しなかったことを特定する指示を前記コンピューティングデバイスから受信することと、
前記サーバが前記別の暗号文を復号しなかったという前記指示に基づいて、前記記憶装置にアクセスする前記別の要求を前記アプレットによって拒否することであって、前記コントローラは、前記記憶装置を前記ロック状態に維持する、ことと、
をさらに含む、請求項8から10のいずれか一項に記載の方法。
【請求項12】
前記アプレットによって、前記無線通信インターフェースを介して前記コンピューティングデバイスに、前記記憶装置が前記ロック解除状態にあることを特定する指示を送信することと、をさらに含む、請求項8に記載の方法。
【請求項13】
前記記憶装置はユニバーサルシリアルバス(USB)記憶装置を備え、前記方法は、
前記コントローラによって、前記記憶装置のコネクタがUSBポートに挿入されたと判定することと、
前記コントローラによって、前記ロック解除された記憶装置を前記USBポートに露出させることと、
をさらに含む、請求項8に記載の方法。
【請求項14】
前記要求されたアクセスは、(i)前記記憶装置に記憶されたデータを読み出すこと、または(ii)前記記憶装置にデータを書き込むことのうちの1つまたは複数を含み、前記要求されたアクセスは、(i)前記記憶装置をポートに挿入すること、または(ii)前記無線通信インターフェースのうちの1つまたは複数を介して処理され、前記無線通信インターフェースは近距離無線通信(NFC)インターフェースを備える、請求項8から10または12から13のいずれか一項に記載の方法。
【請求項15】
コンピュータ可読プログラムコードが具現化された非一時的コンピュータ可読記憶媒体であって、前記コンピュータ可読プログラムコードは、非接触カードのプロセッサ回路によって実行されると、前記プロセッサ回路に、
前記非接触カードの記憶装置にアクセスする要求を受信することであって、前記記憶装置はロック状態にある、受信することと、
前記要求に基づいて暗号文を生成することと、
無線通信インターフェースを介して前記暗号文をコンピューティングデバイスに送信することと、
サーバが前記暗号文を復号したことを特定する指示を前記コンピューティングデバイスから受信することと、
前記サーバが前記暗号文を復号したことを特定する前記指示に基づいて、前記記憶装置のロックを解除することを特定する指示を前記記憶装置のコントローラに送信することであって、前記コントローラは、前記指示に基づいて前記記憶装置を前記ロック状態からロック解除状態に遷移させる、送信することと、
を行わせる、非一時的コンピュータ可読記憶媒体。
【請求項16】
前記プロセッサ回路に、
前記記憶装置をロックすることを特定する別の要求を受信することと、
別の暗号文を生成することと、
前記別の暗号文を前記コンピューティングデバイスに送信することと、
前記サーバが前記別の暗号文を復号したことを特定する指示を前記コンピューティングデバイスから受信することと、
前記サーバが前記別の暗号文を復号したことを特定する前記指示に基づいて、前記記憶装置をロックすることを特定する指示を前記コントローラに送信することであって、前記コントローラは、前記記憶装置をロックする前記指示に基づいて、前記記憶装置を前記ロック解除状態から前記ロック状態に遷移させる、送信することと、
を行わせる、前記プロセッサ回路によって実行可能なコンピュータ可読プログラムコードをさらに備える、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項17】
前記記憶装置のロック解除後に経過した時間量が閾値を超えることを判定することと、
前記閾値を超える前記時間量に基づいて、前記記憶装置をロックする指示を前記コントローラに送信することであって、前記コントローラは、前記記憶装置をロックする前記指示に基づいて前記記憶装置を前記ロック状態から前記ロック解除状態に遷移させる、送信することと、
を行わせる、前記プロセッサ回路によって実行可能なコンピュータ可読プログラムコードをさらに備える、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項18】
前記プロセッサ回路に、
前記記憶装置にアクセスする別の要求を受信することと、
別の暗号文を生成することと、
前記別の暗号文を前記コンピューティングデバイスに送信することと、
前記サーバが前記別の暗号文を復号しなかったことを特定する指示を前記コンピューティングデバイスから受信することと、
前記サーバが前記別の暗号文を復号しなかったという前記指示に基づいて、前記記憶装置にアクセスする前記別の要求を拒否することであって、前記コントローラは、前記記憶装置を前記ロック状態に維持する、拒否することと、
を行わせる、前記プロセッサ回路によって実行可能なコンピュータ可読プログラムコードをさらに備える、請求項15から17のいずれか一項に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記記憶装置はユニバーサルシリアルバス(USB)記憶装置を備え、前記コントローラに、
前記記憶装置のコネクタがUSBポートに挿入されたと判定することと、
前記ロック解除された記憶装置を前記USBポートに露出させることと、
を行わせる、前記コントローラによって実行可能なコンピュータ可読プログラムコードをさらに備える、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記要求されたアクセスは、(i)前記記憶装置に記憶されたデータを読み出すこと、または(ii)前記記憶装置にデータを書き込むことのうちの1つまたは複数を含み、前記要求されたアクセスは、(i)前記記憶装置をポートに挿入すること、または(ii)前記無線通信インターフェースのうちの1つまたは複数を介して処理され、前記無線通信インターフェースは近距離無線通信(NFC)インターフェースを備える、請求項15から17または19のいずれか一項に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【関連出願への相互参照】
【0001】
本出願は、2021年6月25日に出願された米国特許出願第17/358,473号、発明の名称「CRYPTOGRAPHIC AUTHENTICATION TO CONTROL ACCESS TO STORAGE DEVICES」の優先権を主張する。前述の出願の内容は、その全体が参照により本明細書に援用される。
【背景技術】
【0002】
記憶装置は、時間の経過とともに、よりコンパクトでポータブルになってきている。しかしながら、これらの特徴は、ユーザに記憶装置を置き忘れるか、そうでなければ紛失させる可能性がある。セキュリティ対策がなければ、記憶装置に記憶されたデータは、悪意のある当時者を含む、記憶装置を所有する誰でもアクセス可能であり得る。したがって、安全が確保されていない記憶装置は、セキュリティリスクをもたらす。
【発明の概要】
【0003】
記憶装置へのアクセスを制御するための暗号認証のためのシステム、方法、装置、およびコンピュータ可読媒体。一態様では、方法は、非接触カードのプロセッサ上で非接触カードの無線通信インターフェースを介して実行されるアプレットによって、非接触カードの記憶装置にアクセスする要求を受信することであって、記憶装置がロック状態にある、受信することと、アプレットによって要求に基づいて暗号文を生成することと、アプレットによって、無線通信インターフェースを介してコンピューティングデバイスに暗号文を送信することと、アプレットによって、コンピューティングデバイスから、サーバが暗号文を復号したことを示す指示を受信することと、アプレットによって、記憶装置のコントローラに、サーバが暗号文を復号したことを特定する指示に基づいて、記憶装置のロックを解除することを特定する指示を送信することと、コントローラによって、アプレットから受信した指示に基づいて、記憶装置をロック状態からロック解除状態に遷移させることとを含む。
【図面の簡単な説明】
【0004】
任意の特定の要素または行為の説明を容易に識別するために、参照番号の最上位桁は、その要素が最初に導入される図番号を指す。
【
図8】一実施形態によるコンピュータアーキテクチャを示す。
【発明を実施するための形態】
【0005】
本明細書で開示される実施形態は、記憶装置へのアクセスを制御するための暗号認証のための技術を提供する。一例では、非接触カードは、ユニバーサルシリアルバス(USB)記憶装置などの統合記憶装置を含むことができる。コントローラは、一般に、例えば、記憶装置をロックおよび/またはロック解除することによって、記憶装置へのアクセスを制御することができる。記憶装置のロックを解除するために、暗号技術を使用することができる。例えば、コンピューティングデバイスのユーザは、記憶装置上のデータを読み出し、記憶装置にデータを書き込み、および/または1つまたは複数のアプリケーションを使用して記憶装置にアクセスすることを望む場合がある。これに応答して、コンピューティングデバイスは、非接触カードをコンピューティングデバイスにタップして、それによって非接触カードをコンピューティングデバイスとの無線通信範囲内にするようにユーザに指示することができる。次いで、コンピューティングデバイスは、非接触カード上で実行されているアプレットに暗号文を生成するように無線で命令することができる。コンピューティングデバイスの無線カードリーダは、暗号文を読み出し、検証のために認証サーバに暗号文を送信することができる。認証サーバが暗号文の復号またはその他の検証を行わない場合、サーバは対応する指示をコンピューティングデバイスに返すことができる。次いで、コンピューティングデバイスは、サーバが暗号文を復号またはその他の検証を行わなかったことを示す指示を非接触カードに送信することができる。次いで、コントローラは、記憶装置をロック状態に維持し、記憶装置へのあらゆるアクセスの試みを制限することができ、それによって記憶装置および記憶装置に記憶されたあらゆるデータのセキュリティを維持する。
【0006】
認証サーバが暗号文を復号することができる場合、認証サーバは、サーバが暗号文を復号したことを示す指示をコンピューティングデバイスに送信する。これに応答して、コンピューティングデバイスは、暗号文が復号またはその他の検証をされたことを示す指示をアプレットに送信することができる。次いで、アプレットは、サーバによる暗号文の復号に基づいて記憶装置をロック解除するように指示および/または命令をコントローラに送信することができる。次いで、コントローラは、記憶装置をロック解除し、記憶装置への要求されたアクセスを許可することができる。例えば、記憶装置は、コンピューティングデバイスのUSBポートに挿入されてもよく、コントローラは、(例えば、記憶装置に記憶されたデータを読み出し、書き込み、および/または他の様態で修正するために)記憶装置へのアクセスを許可してもよい。別の例として、例えば、非接触カードとコンピューティングデバイスとの間の無線データ転送を介して、記憶装置への無線アクセスを提供することができる。実施形態は、この文脈において限定されない。
【0007】
有利には、本明細書に開示される実施形態は、記憶装置へのアクセスを保護する技術を提供する。非接触カードによって生成された暗号を活用することにより、本開示の実施形態は、不正行為のリスクを最小限に抑えてユーザの身元を安全に検証することができる。さらに、そうすることにより、ユーザがサーバとの暗号文検証を容易にする非接触カードにアクセスできるときにのみ、記憶装置上で読み出し/書き込み/修正操作が許可されることが保証される。そうすることにより、記憶装置に記憶されたデータのセキュリティが向上し、および/またはコントローラのセキュリティが向上する。
【0008】
本明細書で使用される表記および命名法を一般的に参照すると、以下の詳細な説明の1つまたは複数の部分は、コンピュータまたはコンピュータのネットワーク上で実行されるプログラム手順に関して提示され得る。これらの手順の説明および表現は、自分たちの作業の内容を他の当業者に伝えるために当業者によって使用される。手順は、ここでは、一般に、所望の結果をもたらす自己矛盾のない一連の動作であると考えられる。これらの操作は、物理量の物理的動作を必要とする操作である。必ずしもそうとは限らないが、通常、これらの量は、記憶、転送、結合、比較、および他の方法で操作することができる電気信号、磁気信号、または光信号の形態をとる。主に一般的な使用の理由から、これらの信号をビット、値、要素、シンボル、文字、用語、数字などとして参照することが時には便利であることが分かる。しかしながら、これらおよび類似の用語はすべて、適切な物理量に関連付けられるべきであり、それらの量に適用される便利なラベルにすぎないことに留意されたい。
【0009】
さらに、これらの操作は、追加または比較などの用語で呼ばれることが多く、これらは一般に、人間のオペレータによって実行される精神的動作に関連する。しかしながら、1つまたは複数の実施形態の一部を形成する本明細書に記載の動作のいずれにおいても、人間のオペレータのそのような能力は必要ではなく、またはほとんどの場合望ましくない。むしろ、これらの動作は機械動作である。様々な実施形態の動作を実行するための有用な機械は、本明細書の教示に従って書かれたコンピュータプログラムによって選択的に起動または構成されるデジタルコンピュータを含み、および/または必要な目的のために特別に構成された装置またはデジタルコンピュータを含む。様々な実施形態はまた、これらの動作を実行するための装置またはシステムに関する。これらの装置は、必要な目的のために特別に構成されてもよい。様々なこれらの機械に必要な構造は、与えられた説明から明らかになるであろう。
【0010】
ここで図面を参照するが、全体を通して同様の要素を指すために同様の参照番号が使用されている。以下の説明では、説明の目的のために、その完全な理解を提供するために多くの具体的な詳細が記載される。しかしながら、新規な実施形態は、これらの具体的な詳細なしで実施することができることは明らかであろう。他の例では、その説明を容易にするために、周知の構造およびデバイスはブロック図形式で示されている。その意図は、特許請求の範囲内のすべての修正、均等物、および代替物を網羅することである。
【0011】
図1Aは、少なくとも一実施形態による、例示的な非接触カード102を示す。非接触カード102は、クレジットカード、デビットカード、ギフトカード、スマートカードなどの任意の種類のカードを表す。図示のように、非接触カード102は、記憶装置104を含む。記憶装置104は、データを記憶するための不揮発性コンピュータ可読記憶媒体(図示せず)を含む。不揮発性記憶媒体の例には、ダイナミック・ランダム・アクセス・メモリ(DRAM)、スタティック・ランダム・アクセス・メモリ(SRAM)、フラッシュメモリ、埋め込み型マルチメディアコントローラ(eMMC)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)などが含まれるが、これらに限定されない。記憶装置104は、インターフェース106(本明細書では、「コネクタ」ともいう)をさらに含む。インターフェース106の例には、本明細書で参考例として使用され得るユニバーサルシリアルバス(USB)インターフェースが含まれるが、これに限定されない。例えば、インターフェース106は、USBーAコネクタ、USBーBコネクタ、USBーCコネクタ、ライトニングコネクタ、MicroーAコネクタ、MicroーBコネクタ、MiniーAコネクタ、MiniーBコネクタなどを含むことができる。インターフェース106は、外部シリアルATアタッチメント(eSATA)、Firewireなどを含む、様々な他の形態のインターフェースであってもよい。いくつかの実施形態では、記憶装置104は、メモリカードインターフェースを介して通信することができる。したがって、記憶装置104は、マルチメディアカード(MMC)、セキュアデジタル(SD)、メモリスティック、エクストリームデジタル(XD)、XQD、コンパクトフラッシュ(CF)(登録商標)などのメモリカードファミリーと互換性があり得る。本明細書における参照例としてのUSBの使用は、本開示を限定するものではない。
【0012】
図1Bは、拡張位置にある記憶装置104を有する非接触カード102を示す。図示のように、回転ジョイント108は、記憶装置104が伸長および/または収縮することを可能にすることができる。
図1A~1Bに示されている非接触カード102は特定の構成であるが、非接触カード102は記憶装置104を含むための他の適切な構成を有してもよいので、この文脈では実施形態は限定されない。
【0013】
有利には、統合記憶装置104は、非接触カード102の全体寸法が、非接触カードの様々な規格、例えば、ISO/IEC 7810、ISO/IEC 7811、ISO/IEC 7812、ISO/IEC 7813、ISO/IEC 7816、ISO 8583、ISO/IEC 4909、およびISO/IEC 14443のうちの1つまたは複数に準拠するような物理的寸法のものである。
【0014】
図2Aは、開示された実施形態と一致する、システムとも呼ばれる例示的なコンピューティングアーキテクチャ200を示す。
図2A~
図2Eに示されているコンピューティングアーキテクチャ200は、特定のトポロジにおいて限られた数の要素を有するが、コンピューティングアーキテクチャ200は、所与の実装に対して所望されるように代替のトポロジにおいてより多くのまたはより少ない要素を含むことができることが理解されよう。
【0015】
コンピューティングアーキテクチャ200は、1つまたは複数のコンピューティングデバイス202と、1つまたは複数のサーバ204と、1つまたは複数の非接触カード102とを備える。コンピューティングデバイス202およびサーバ204は、ネットワーク234を介して通信可能に結合することができる。図示のように、非接触カード102は、近距離無線通信(NFC)、EMV規格、または無線通信における他の短距離プロトコルを介してコンピューティングデバイス202の通信インターフェース218(本明細書では「カードリーダ」、「無線カードリーダ」、および/または「無線通信インターフェース」とも呼ばれる)と通信するように構成された、無線周波数識別(RFID)チップなどの1つまたは複数の通信インターフェース218を備えることができる。本明細書ではNFCが例示的な通信プロトコルとして使用されているが、本開示は、EMV規格、Bluetooth、および/またはWi-Fiなどの他の種類の無線通信にも同様に適用可能である。
【0016】
コンピューティングデバイス202は、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス、ラップトップ、携帯ゲームデバイス、仮想化コンピューティングシステム、販売者端末、販売時点管理システム、サーバ、デスクトップコンピュータなどの任意の数および種類のコンピューティングデバイスを表す。モバイルデバイスは、本明細書ではコンピューティングデバイス202の一例として使用され得るが、本開示を限定するものと見なされるべきではない。図示のように、コンピューティングデバイス202は、無線通信インターフェース218およびポート242を含む。無線通信インターフェース218は、RFID、Bluetooth、NFCなどの任意の種類の無線通信インターフェースを表す。ポート242は、記憶装置104のインターフェース106に結合するように構成された任意のインターフェースである。ポート242の例は、USBポート、eSATAポート、メモリカードスロットなどを含む。
【0017】
サーバ204は、サーバ、ワークステーション、計算クラスタ、クラウドコンピューティングプラットフォーム、仮想化コンピューティングシステムなどの任意の種類のコンピューティングデバイスを表す。明確にするために示していないが、コンピューティングデバイス202、非接触カード102、およびサーバ204は各々、プログラム、コード、および/または命令を実行するための1つまたは複数のプロセッサ回路を含む。
【0018】
図示のように、非接触カード102のメモリ206は、アプレット208、カウンタ210、マスタ鍵212、分散鍵214、および一意の顧客識別子(ID)118を含む。アプレット208は、本明細書に記載された動作を実行するように構成された実行可能コードである。カウンタ210、マスタ鍵212、分散鍵214、および顧客ID216は、以下でより詳細に説明するように、システム200にセキュリティを提供するために使用される。非接触カード102の記憶装置104は、コントローラ236と、メモリ238とを含む。メモリ238は、任意の種類の不揮発性かつ非一時的なコンピュータ可読記憶媒体を表す。コントローラ236は、一般に、記憶装置104のメモリ238へのアクセスを制御する。図示のように、コントローラ236は、記憶装置104の状態を反映する状態240を維持する。例えば、状態は、すべての動作(例えば、読み出し、書き込み、および/または修正)を制限するロック状態、すべての動作を許可するロック解除状態、読み出し専用状態、読み出しー書き込み状態などであってもよい。いくつかの実施形態では、記憶装置104のメモリ238に記憶されたデータは、マスタ鍵212で暗号化および/または復号される。状態240は、非接触カード102が十分な電力を継続的に有していない場合、記憶装置104の状態240を維持するために、1つまたは複数の不揮発性メモリユニットに実装されてもよい。
【0019】
図示のように、コンピューティングデバイス202のメモリ230は、オペレーティングシステム244のインスタンスを含む。例示的なオペレーティングシステムは、Android(登録商標)OS、iOS(登録商標)、macOS(登録商標)、Linux(登録商標)、およびWindows(登録商標)オペレーティングシステムを含む。オペレーティングシステム244は、例えばUSBプロトコルまたは任意の他のファイル転送プロトコルに従って、記憶装置104の1つまたは複数のポート242およびインターフェース106を介して記憶装置104と通信するための論理および/または機能を含む。図示のように、オペレーティングシステム244は、アカウントアプリケーション246と、1つまたは複数の他のアプリケーション248とを含む。アカウントアプリケーション246は、ユーザが、支払いカードのアクティブ化、アカウント残高の閲覧、商品の購入、支払いの処理、記憶装置104に記憶されたファイルの管理などの様々なアカウント関連動作を実行することを可能にする。いくつかの実施形態では、ユーザは、アカウントアプリケーション246の特定の機能にアクセスするために認証資格情報を使用して認証することができる。例えば、認証資格情報は、ユーザ名(またはログイン)およびパスワード、生体認証資格情報(例えば、指紋、顔IDなど)などを含むことができる。他のアプリケーション248は、記憶装置104のメモリ238からデータを読み出し、および/またはデータを書き込むことができる任意の種類のアプリケーションを表す。そのようなアプリケーションの例には、ファイルブラウザ、ウェブブラウザ、コマンドラインインターフェースなどが含まれる。上述したように、アカウントアプリケーション246は、記憶装置104のメモリ238に記憶されたデータを読み出し、書き込み、および/または他の方法で修正するための他のアプリケーション248と同様の機能をさらに含むことができる。いくつかの実施形態では、他のアプリケーション248は、例えば、本明細書でより詳細に説明するように、暗号認証のために非接触カード102および/またはサーバ204と通信するためのアカウントアプリケーション246の機能を含む。
【0020】
図示のように、サーバ204のメモリ220は、認証アプリケーション222、アカウントデータベース224、ならびに複数のアカウントおよび/または非接触カード102の各々に対するマスタ鍵212、分散鍵214、およびカウンタ210のインスタンスを含む。アカウントデータベース224は、一般に、アカウント名義人(例えば、1人以上のユーザ)、アカウント名義人の1つまたは複数のアカウント、およびアカウントの1つまたは複数の非接触カード102に関する情報を含む。
【0021】
いくつかの実施形態では、ユーザは、記憶装置104を使用して動作を実行することを望む場合がある。例えば、ユーザは、記憶装置104に記憶されたファイルへのアクセス、ファイルの修正、ファイルの削除、ファイルのリストの閲覧、ディレクトリ構造の閲覧、記憶装置への新しいファイルの書き込みなどを必要とする場合がある。そのような動作は、USBプロトコルなどの様々なプロトコルおよび/またはフォーマットに従って実行することができる。有利には、システム200は、記憶装置104へのアクセスを可能にするために特定の暗号化動作を必要とすることによって、記憶装置104に記憶されたデータを保護する。暗号化動作は、例えばEMVプロトコルを介して支払いを処理するためにシステム200によって実行される暗号化動作とは異なり得る。
【0022】
そうするために、ユーザは、非接触カード102をコンピューティングデバイス202にタップする(または別の方法で非接触カード102をデバイス202の通信インターフェース218の通信範囲内に持ってくる)ことができる。次いで、非接触カード102のアプレット208は、記憶装置104の状態240が、記憶装置104がロックされているか、またはアクセスできない状態にあることを反映して、記憶装置104をロック解除するための暗号文228を生成することができる。暗号文228は、非接触カード102の顧客ID216に基づいてもよい。暗号文228は、任意の適切な暗号技術に基づいて生成されてもよい。いくつかの実施形態では、アプレット208は、データパッケージの一部として、暗号文228および暗号化されていない識別子(例えば、顧客ID216、非接触カード102の識別子、および/または任意の他の一意の識別子)を有してもよい。少なくとも1つの実施形態では、データパッケージはNDEFファイルである。
【0023】
上述のように、コンピューティングアーキテクチャ200は、データを保護するために鍵分散を実施するように構成され、本明細書では鍵分散技術と呼ぶことができる。一般に、サーバ204(または別のコンピューティングデバイス)および非接触カード102は、同じマスタ鍵212(マスタ対称鍵とも呼ばれる)でプロビジョニングされ得る。より具体的には、各非接触カード102は、サーバ204内に対応するペアを有する別個のマスタ鍵212でプログラムされる。例えば、非接触カード102が製造されると、固有のマスタ鍵212が非接触カード102のメモリ206にプログラムされ得る。同様に、一意のマスタ鍵212は、サーバ204のアカウントデータベース224内の非接触カード102に関連付けられた顧客のレコードに記憶することができる(および/またはハードウェア・セキュリティ・モジュール(HSM)226などの異なる安全な場所に記憶することができる)。マスタ鍵212は、非接触カード102およびサーバ204以外のすべての当事者から秘密に保たれてもよく、それによってシステム200のセキュリティを強化する。いくつかの実施形態では、非接触カード102のアプレット208は、マスタ鍵212および暗号アルゴリズムへの入力としてのデータを使用して、データ(例えば、顧客ID216)を暗号化および/または復号することができる。例えば、顧客ID216をマスタ鍵212で暗号化することにより、暗号文228を得ることができる。同様に、サーバ204は、対応するマスタ鍵212を使用して、非接触カード102に関連付けられたデータを暗号化および/または復号することができる。
【0024】
他の実施形態では、非接触カード102およびサーバ204のマスタ鍵212は、鍵分散を使用してセキュリティを強化するためにカウンタ210と共に使用することができる。カウンタ210は、非接触カード102とサーバ204との間で同期された値を含む。カウンタ210は、非接触カード102とサーバ204(および/または非接触カード102とコンピューティングデバイス202)との間でデータが交換されるたびに変化する番号を含むことができる。(例えば、サーバ204および/またはデバイス202への)データの送信を準備するとき、非接触カード102のアプレット208は、カウンタ210を増分することができる。次いで、非接触カード102のアプレット208は、マスタ鍵212およびカウンタ210を暗号アルゴリズムへの入力として提供することができ、暗号アルゴリズムは、出力として分散鍵214を生成する。暗号化アルゴリズムは、暗号化アルゴリズム、ハッシュベースのメッセージ認証コード(HMAC)アルゴリズム、暗号ベースのメッセージ認証コード(CMAC)アルゴリズムなどを含み得る。暗号アルゴリズムの非限定的な例は、3DESまたはAES107などの対称暗号アルゴリズム、HMAC-SHA-250などの対称HMACアルゴリズム、およびAES-CMACなどの対称CMACアルゴリズムを含むことができる。鍵分散技術の例は、2018年11月29日に出願された米国特許出願第16/205,119号により詳細に記載されている。前述の特許出願は、その全体が参照により本明細書に援用される。
【0025】
鍵分散の例を続けると、アプレット208は、次いで、分散鍵214およびデータを暗号アルゴリズムへの入力として使用して、データ(例えば、顧客ID216および/または任意の他のデータ)を暗号化することができる。例えば、顧客ID216を分散鍵214で暗号化することにより、暗号化された顧客ID(例えば、暗号文228)を得ることができる。次いで、アカウントアプリケーション246は、コンピューティングデバイス202の通信インターフェース218を介して暗号文228を含むデータパッケージを読み出すことができる。読み取ると、アカウントアプリケーション246は、検証のために暗号文228をサーバ204に送信することができる。
【0026】
いくつかの実施形態では、暗号文228は、ユニフォームリソースロケータ(URL)のパラメータである。例えば、URLは「http://www.example.com/redirect?param=ABC123&custID=123」であってもよい。このような例では、暗号文228がパラメータ「ABC123」に対応し、顧客ID216がパラメータ「custID」に対応してもよい。そのような実施形態では、コンピューティングデバイス202は、非接触カード102がコンピューティングデバイス202にタップされたときにアカウントアプリケーション246をフォアグラウンドに持つ必要はない。URLがオペレーティングシステム244によって受信されると、オペレーティングシステム244は、URLを処理するためにアプリケーションを開くことができる。いくつかの実施形態では、URLはアカウントアプリケーション246に登録されてもよく、これにより、オペレーティングシステム244はアカウントアプリケーション246を起動し、アカウントアプリケーション246への入力としてURLに暗号文228を提供する。例えば、アカウントアプリケーション246のファイルエクスプローラのページは、URLに応答して開くことができる。次いで、アカウントアプリケーション246は、URLから暗号文228を抽出し、暗号文228をサーバ204に送信してもよい。
【0027】
図2Bは、アカウントアプリケーション246が暗号文228をサーバ204に送信する実施形態を示す。いくつかの実施形態では、アカウントアプリケーション246は、暗号文228と共に、暗号文228が記憶装置104にアクセスする要求の一部であることを指定する指示を含む。認証アプリケーション222は、受信されると、暗号文228の検証を試みてもよい。例えば、認証アプリケーション222は、サーバ204によって記憶されたマスタ鍵212のコピーを使用して、暗号文228の復号を試みることができる。いくつかの実施形態では、認証アプリケーション222は、アカウントアプリケーション246によってサーバ204に提供された暗号化されていない顧客ID216(または他の識別子)を使用して、マスタ鍵212およびカウンタ210を識別することができる。別の例では、認証アプリケーション222は、マスタ鍵212およびカウンタ210を暗号アルゴリズムへの入力として提供することができ、暗号アルゴリズムは、出力として分散鍵214を生成することができる。結果として得られる分散鍵214は、暗号文228を復号するために使用され得る非接触カード102の分散鍵214に対応し得る。
【0028】
使用される復号技術にかかわらず、認証アプリケーション222は、暗号文228を正常に復号することができ、それにより、暗号文228を検証または認証する(例えば、暗号文228を復号することによって生成された顧客ID216をアカウントデータベース224に記憶された既知の顧客IDと比較することによって、および/またはマスタ鍵212および/または分散鍵214を使用した復号が成功したという指示に基づいて)。鍵114、116はメモリ220に記憶されているものとして示されているが、鍵は、セキュア要素および/またはHSM226などの他の場所に記憶されてもよい。そのような実施形態では、セキュア要素および/またはHSM226は、マスタ鍵212および/または分散鍵214ならびに暗号化関数を使用して暗号文228を復号することができる。同様に、セキュア要素および/またはHSM226は、上述のように、マスタ鍵212およびカウンタ210に基づいて分散鍵214を生成することができる。
【0029】
認証アプリケーション222が暗号文228を復号して期待する結果(例えば、非接触カード102に関連付けられたアカウントの顧客ID216)を得ることができない場合、認証アプリケーション222は、暗号文228を検証しない。そのような例では、認証アプリケーション222は、復号失敗の指示をコンピューティングデバイス202に送信することができる。復号失敗の指示を受信すると、アカウントアプリケーション246は、記憶装置104への要求されたアクセスを拒否することができる。
【0030】
図2Cは、認証アプリケーション222が暗号文228の復号に成功し、検証結果232をコンピューティングデバイス202に送信する実施形態を示す。検証結果232は、一般に、サーバ204が暗号文228を検証および/または復号したか否かを反映する。
図2Cに示す例では、検証結果232は、サーバ204が暗号文228を復号または他の方法で検証したことを示すことができる。そうすることにより、アカウントアプリケーション246は、暗号文228が正常に検証されたと判定することができる。それに応答して、アカウントアプリケーション246は、記憶装置104がロック状態からロック解除状態に遷移してアクセスを許可するべきであることを示す命令250を生成することができる。しかしながら、検証結果232が、サーバが暗号文を検証または他の方法で復号しなかったことを示す場合、命令250は、記憶装置104をロック状態に維持して、記憶装置104への要求されたアクセスを制限することを指定する。
【0031】
次いで、アカウントアプリケーション246は、非接触カード102をコンピューティングデバイス202にタップすることを指定する通知を出力することができる。次いで、アカウントアプリケーション246は、命令250を、無線通信インターフェースを介して非接触カード102に送信することができる。図示のように、アプレット208は、命令250を受信し、命令250(または他の何らかの指示)をコントローラ236に提供することができる。そうすることにより、コントローラ236は、記憶装置104のロックを解除することができる。いくつかの実施形態では、コントローラ236は、状態240を更新して、記憶装置104がロック解除されたこと、または他の様態で読み出しおよび/または書き込みアクセスに利用可能であることを反映することができる。しかしながら、命令250が記憶装置104をロック状態に維持することを示す場合、コントローラ236は、記憶装置104をロック状態に維持し、記憶装置104に対する任意の読み出し/書き込みトランザクションを制限する。コントローラ236は、命令250が実施され、それに応じて記憶装置104がロックおよび/またはロック解除されたことを特定する確認をアプレット208に送信することができる。
【0032】
図2Dは、アプレット208が、記憶装置104のロック解除に成功したことに基づいて通知252をコンピューティングデバイス202に送信する実施形態を示す。通知252は、一般に、記憶装置104がコントローラ236によってロック解除され、読み出し/書き込み/修正トランザクションに利用可能であることを指定することができる。いくつかの実施形態では、コントローラ236は、1分、5分などの所定の時間量の間、記憶装置104のロックを解除する。そのような実施形態では、通知は、この所定の時間量を指定することができる。また、コントローラ236は、所定時間が経過したとき、例えば、記憶装置104のロックが解除されてからの時間量が所定の時間量を超えたときに、記憶装置104をロックしてもよい。いくつかの実施形態では、アプレット208は、記憶装置104のロックが解除されてからの時間量を追跡するタイマを維持し、記憶装置104のロックが解除されてからの時間量が所定の時間量を超えたときに、記憶装置104をロックするように指定する命令をコントローラ236に送信する。より一般的には、コントローラ236および/またはアプレット208は、クロックのための論理など、タイマを実装するための論理および/または機能を含むことができる。
【0033】
図2Eは、記憶装置104のインターフェース106がコンピューティングデバイス202のポート242に挿入される実施形態を示す。オペレーティングシステム244およびコントローラ236は、一般に、コントローラ236に記憶装置104をオペレーティングシステム244に露出させるための1つまたは複数の(例えば、USBプロトコルに従う)動作を実行することができる。1つまたは複数の動作は、コントローラ236が、記憶装置104がロック解除されているか、他の態様で読み出しおよび/または書き込み動作のためにアクセス可能であることを状態240が示すことを確認することを含むが、これに限定されない。より一般的には、コンピューティングデバイス202および記憶装置104によって実行されるすべての動作は、インターフェース106がポート242に挿入されたときにUSBプロトコルに従って実行および/またはフォーマットされてもよい。
【0034】
次いで、1つまたは複数のアプリケーション(例えば、オペレーティングシステム244、アカウントアプリケーション246、および/または他のアプリケーション248)は、記憶装置104からデータ254を読み出す要求を生成してもよい。要求は、USBまたは他のプロトコルに従ってフォーマットされてもよく、ユーザ入力に応答して生成されてもよい。図示のように、データ254は、USBプロトコルなどの様々なプロトコルに従って、記憶装置104のメモリ238からコンピューティングデバイス202に転送することができる。受信すると、オペレーティングシステム244は、アカウントアプリケーション246および/または他のアプリケーション248などの要求アプリケーションにデータを提供することができる。読み出し動作として示されているが、コンピューティングデバイス202は、記憶装置104にデータを書き込み、および/または記憶装置104に記憶されたデータを修正することもできる。同様に、データ転送は、参考例としてUSBを使用して説明されているが、コンピューティングデバイス202と記憶装置104との間のデータトランザクションに他のプロトコルが使用されてもよい。
【0035】
データ254はインターフェース106を介して転送されるものとして示されているが、いくつかの実施形態では、データ254は無線通信されてもよい。例えば、コントローラ236は、データ254をアプレット208に提供することができる。次いで、アプレット208は、データ254をコンピューティングデバイス202に無線で(例えば、NFC、Bluetooth(登録商標)、WiFiなどを介して)送信することができる。
【0036】
図3Aは、一実施形態による、非接触カード102に組み込まれた記憶装置の暗号認証の例を示す概略
図300aである。図示のように、アカウントアプリケーション246は、記憶装置104にアクセスすることを指定する選択可能要素302を含むことができる。ユーザは、要素302を選択することができ、これにより、アカウントアプリケーション246は、ユーザに、非接触カード102をコンピューティングデバイス202にタップするように指示する。
【0037】
上述したように、非接触カード102がコンピューティングデバイス202にタップされると、アプレット208は暗号文228を生成することができる。いくつかの実施形態では、暗号文228はURLのパラメータである。次いで、アプレット208は、暗号文228および暗号化されていない識別子(例えば、顧客ID216)を、コンピューティングデバイス202によって読み取られるNDEFファイルなどのデータパッケージに含めることができる。データパッケージの受信に応答して、アカウントアプリケーション246は、検証のためにデータパッケージをサーバ204に送信する。
【0038】
図3Bは、アカウントアプリケーション246が、上記でより詳細に説明したように暗号文が復号または他の方法で検証されたことを特定する検証結果232をサーバ204から受信する実施形態を示す概略
図300bである。次いで、アカウントアプリケーション246は、ユーザに、非接触カード102をコンピューティングデバイス202にタップするように指示することができる。そうすることにより、アカウントアプリケーション246は、命令250を非接触カード102に送信する。命令250は、一般に、要求されたアクセスが許可されるべきであり、コントローラ236が記憶装置104のロックを解除すべきであることを示すことができる。次いで、コントローラ236は、記憶装置104をロック状態からロック解除状態に遷移させ、ロック解除状態の指示を状態240に記憶することができる。しかしながら、検証結果232が、暗号文228が検証されていないことを示す場合、命令250は、要求されたアクセスを制限することを示し、コントローラ236は、記憶装置104をロック状態に維持する。
【0039】
図3Cは、記憶装置104のインターフェース106がコンピューティングデバイス202のポート242に挿入される実施形態を示す概略
図300cである。図示のように、アカウントアプリケーション246は、ファイルエクスプローラのページを表示する。ファイルエクスプローラのページは、記憶装置104のメモリ238の内容(またはその一部)を表示してもよい。ファイルエクスプローラのページは、一般に、オペレーティングシステム244を介してメモリ238の内容を閲覧するように要求することができる。コントローラ236は、この要求を受信し、記憶装置104の状態240が読み出し動作を許可していると判定してもよい。次いで、コントローラ236は、読み出し動作の結果をアカウントアプリケーション246に返すことができ、アカウントアプリケーションは、記憶装置104に記憶された1つまたは複数のファイルを表示する。
【0040】
有利には、本明細書で開示される実施形態は、非接触カード102によって生成された暗号文の検証に基づいて記憶装置104へのアクセスのみを許可する。サーバ204が暗号文を復号または他の方法で検証することができない場合、要求されたアクセスは拒否される。本明細書に記載の重要な鍵分散技術により、記憶装置104への不正または悪意のあるアクセスのリスクが大幅に低減される。そうすることにより、記憶装置104およびそこに記憶されている任意のデータのセキュリティが向上する。さらに、そうすることにより、記憶装置104へのアクセスの高度な暗号管理を提供することによって、コントローラ236が改善される。
【0041】
開示された実施形態の動作は、以下の図を参照してさらに説明することができる。図面のいくつかは、論理フローを含むことができる。本明細書に提示されたそのような図は特定の論理フローを含むことができるが、論理フローは、本明細書に記載された一般的な機能をどのように実装することができるかの例を提供するにすぎないことが理解されよう。さらに、別段の指示がない限り、所与の論理フローは必ずしも提示された順序で実行される必要はない。さらに、所与の論理フローは、ハードウェア要素、プロセッサによって実行されるソフトウェア要素、またはそれらの任意の組み合わせによって実施されてもよい。実施形態は、この文脈において限定されない。
【0042】
図4は、論理フローまたはルーチン400の実施形態を示す。論理フロー400は、本明細書に記載の1つまたは複数の実施形態によって実行される動作の一部または全部を表すことができる。例えば、論理フロー400は、非接触カード102の記憶装置104へのアクセスを暗号的に制御するための動作の一部または全部を含み得る。実施形態は、この文脈において限定されない。
【0043】
ブロック402において、ルーチン400は、非接触カード102の無線通信インターフェース218を介して非接触カード102のプロセッサ上で実行されるアプレット208によって、非接触カード102の記憶装置104にアクセスする要求を受信し、(例えば、記憶装置104がロック状態にあることを示す状態240に基づいて)記憶装置104はロック状態にある。要求は、コンピューティングデバイス202から受信することができる。ブロック404において、ルーチン400は、アプレット208によって、要求に基づいて暗号文228を生成する。ブロック406において、ルーチン400は、アプレット208によって、無線通信インターフェース218を介して暗号文228をコンピューティングデバイス202に送信する。ブロック408において、ルーチン400は、アプレット208によってコンピューティングデバイス202から、サーバ204が暗号文228を検証したことを特定する指示を受信する。
【0044】
ブロック410において、ルーチン400は、アプレット208によって、記憶装置104のコントローラ236に、サーバ204が暗号文228を検証したことを特定する指示に基づいて、記憶装置104のロックを解除することを特定する指示を送信する。ブロック412において、ルーチン400は、アプレット208から受信した指示に基づいてコントローラ236によって、記憶装置104をロック状態からロック解除状態に遷移させる。そうすることにより、記憶装置104のメモリ238からのデータの読み出しおよび/または書き込みが可能になる。同様に、ファイルの削除、ファイルの移動などの他のトランザクションが許可されてもよい。例えば、ブロック414において記憶装置104がポート242に挿入されると、コントローラ236は、記憶装置104をコンピューティングデバイス202に露出させることができる。ブロック416において、コントローラ236は、記憶装置104がアクセス可能であることを示す状態240に基づいて、記憶装置104に対する要求された動作(例えば、読み出し/書き込み/修正)を許可することができる。
【0045】
図5は、論理フローまたはルーチン500の実施形態を示す。論理フロー500は、本明細書に記載の1つまたは複数の実施形態によって実行される動作の一部または全部を表すことができる。例えば、論理フロー500は、非接触カード102の記憶装置104へのアクセスを暗号的に制御するための動作の一部または全部を含み得る。実施形態は、この文脈において限定されない。
【0046】
ブロック502において、ルーチン500は、非接触カード102の無線通信インターフェース218を介して非接触カード102のプロセッサ上で実行されるアプレット208によって、非接触カード102の記憶装置104をロックする要求を受信し、記憶装置104はロック解除状態にある。要求は、コンピューティングデバイス202から受信することができる。ブロック504において、ルーチン500は、アプレット208によって、要求に基づいて暗号文228を生成する。ブロック506において、ルーチン500は、アプレット208によって、無線通信インターフェースを介して暗号文228をコンピューティングデバイス202に送信する。ブロック508において、ルーチン500は、アプレット208によってコンピューティングデバイス202から、サーバ204が暗号文228を復号したことを特定する指示を受信する。
【0047】
ブロック510において、ルーチン500は、アプレット208によって、記憶装置104のコントローラ236に、サーバ204が暗号文228を復号したことを特定する指示に基づいて、記憶装置104をロックすることを特定する指示を送信する。ブロック512において、ルーチン500は、アプレット208から受信した指示に基づいてコントローラ236によって、記憶装置104をロック解除状態からロック状態に遷移させる。ブロック514において、ルーチン500は、アプレット208によって、記憶装置104にアクセスする要求を受信する。アクセスは、読み出しアクセス、書き込みアクセス、または任意の他の種類のアクセスであってもよい。ブロック516において、ルーチン500は、アプレット208によって、コントローラ236から記憶装置104の状態240を判定する。ブロック518において、ルーチン500は、アプレット208および/またはコントローラ236によって、記憶装置104がロック状態にあることを示す状態240に基づいて要求を拒否する。例えば、記憶装置104がポート242に挿入されると、コントローラ236は、記憶装置104がコンピューティングデバイス202に露出されることを制限し、記憶装置104がロックされているか、他の態様でアクセスできないことを示す状態240に基づいて、要求された動作を拒否することができる。
【0048】
図6Aは、非接触カード102の正面または背面にサービスプロバイダ証印602として表示されるようなサービスプロバイダによって発行されたクレジットカード、デビットカード、またはギフトカードなどの支払いカードを含むことができる非接触カード102の例示的な構成を示す概略
図600である。いくつかの例では、非接触カード102は、支払いカードに関連せず、限定はしないが、身分証明書を含むことができる。いくつかの例では、取引カードは、デュアルインターフェース非接触支払いカード、報酬カードなどを含むことができる。非接触カード102は、プラスチック、金属、および他の材料で構成された単層あるいは1つまたは複数の積層を含むことができる基板604を含むことができる。例示的な基板材料としては、ポリ塩化ビニル、ポリ塩化ビニルアセテート、アクリロニトリルブタジエンスチレン、ポリカーボネート、ポリエステル、陽極酸化チタン、パラジウム、金、炭素、紙、および生分解性材料が挙げられる。いくつかの例では、非接触カード102は、ISO/IEC7816規格のID-1フォーマットに準拠した物理的特性を有してもよく、そうでなければ、取引カードは、ISO/IEC14443規格に準拠してもよい。しかしながら、本開示による非接触カード102は、異なる特性を有してもよく、本開示は、取引カードが支払いカードに実装されることを必要としないことが理解される。
【0049】
非接触カード102はまた、カードの前面および/または背面に表示される識別情報606と、接触パッド608とを含むことができる。接触パッド608は、1つまたは複数のパッドを含んでもよく、取引カードを介してATM、ユーザデバイス、スマートフォン、ラップトップ、デスクトップ、またはタブレットコンピュータなどの別のクライアントデバイスとの接触を確立するように構成することができる。接触パッドは、ISO/IEC7816規格などの1つまたは複数の規格に従って設計されてもよく、EMVプロトコルに従って通信を可能にすることができる。非接触カード102はまた、処理回路、アンテナ、および
図6Bでさらに説明するような他の構成要素を含んでもよい。これらの構成要素は、接触パッド608の背後または基板604上の他の場所、例えば基板604の異なる層内に配置されてもよく、接触パッド608と電気的および物理的に結合されてもよい。非接触カード102はまた、カードの背面(
図6Aには図示せず)に配置され得る磁気ストリップまたはテープを含み得る。非接触カード102はまた、NFCプロトコルを介して通信することができるアンテナに結合された近距離無線通信(NFC)デバイスを含むことができる。実施形態は、この方法に限定されない。
【0050】
図6Bに示すように、非接触カード102の接触パッド608は、プロセッサ612、メモリ206、および、1つまたは複数の通信インターフェース218を含む、情報を記憶、処理、および、通信するための処理回路610を含むことができる。処理回路610は、本明細書で説明される機能を実行するために必要に応じて、プロセッサ、メモリ、エラーおよびパリティ/CRCチェッカ、データエンコーダ、衝突防止アルゴリズム、コントローラ、コマンドデコーダ、セキュリティプリミティブ、および改ざん防止ハードウェアを含む追加の構成要素を含み得ることが理解される。
【0051】
メモリ206は、読み出し専用メモリ、ライトワンスリード多重メモリ、または読み出し/書き込みメモリ、例えばRAM、ROM、およびEEPROMであってもよく、非接触カード102は、これらのメモリのうちの1つまたは複数を含んでもよい。読み出し専用メモリは、読み出し専用またはワンタイムプログラマブルとして工場でプログラム可能であってもよい。ワンタイムプログラム可能性は、1回の書き込みの後に何度も読み取る機会を提供する。ライトワンス/リード多重メモリは、メモリチップが工場から出た後の時点でプログラムされてもよい。メモリがプログラムされると、メモリは書き換えることはできないが、何度も読み出すことができる。読み出し/書き込みメモリは、工場を出た後に何度もプログラムおよび再プログラムされてもよい。読み出し/書き込みメモリはまた、工場を出た後に何度も読み出されてもよい。場合によっては、メモリ206は、データを暗号化するためにプロセッサ612によって実行される暗号化アルゴリズムを利用する暗号化メモリであってもよい。いくつかの実施形態では、記憶装置104に記憶されたデータは、データを暗号化するためにプロセッサ612および/またはコントローラ236によって実行される暗号化アルゴリズムを使用して暗号化される。通信バス616は、コントローラ236、記憶装置104、および接触パッド608の処理回路610を結合することができる。
【0052】
メモリ206は、1つまたは複数のアプレット208、1つまたは複数のカウンタ210、顧客ID216、マスタ鍵212、および分散鍵214を記憶するように構成することができる。1つまたは複数のアプレット208は、Java(登録商標)カードアプレットなどの1つまたは複数の非接触カード102上で実行するように構成された1つまたは複数のソフトウェアアプリケーションを含んでもよい。しかしながら、アプレット208は、Javaカードアプレットに限定されず、代わりに、非接触カードまたは限られたメモリを有する他のデバイス上で動作可能な任意のソフトウェアアプリケーションであってもよいことが理解される。1つまたは複数のカウンタ210は、整数を記憶するのに十分な数値カウンタを備えてもよい。顧客ID216は、非接触カード102のユーザに割り当てられた一意の英数字識別子を含むことができ、識別子は、非接触カード102のユーザを他の非接触カード102の他のユーザから区別することができる。いくつかの例では、顧客ID216は、顧客とその顧客に割り当てられたアカウントの両方を識別することができ、顧客のアカウントに関連付けられた非接触カード102をさらに識別することができる。
【0053】
上記の例示的な実施形態のプロセッサ612およびメモリ要素は、接触パッド608を参照して説明されているが、本開示はこれに限定されない。これらの要素は、接触パッド608の外側に実装されてもよく、または接触パッドから完全に分離されてもよく、または接触パッド608内に配置されたプロセッサ612およびメモリ206要素に加えてさらなる要素として実装されてもよいことが理解される。
【0054】
いくつかの例では、非接触カード102は、1つまたは複数のアンテナ614を含んでもよい。1つまたは複数のアンテナ614は、非接触カード102内および接触パッド608の処理回路610の周囲に配置されてもよい。例えば、1つまたは複数のアンテナ614は処理回路610と一体であってもよく、1つまたは複数のアンテナ614は外部ブースターコイルと共に使用されてもよい。別の例として、1つまたは複数のアンテナ614は、接触パッド608および処理回路610の外部にあってもよい。
【0055】
一実施形態では、非接触カード102のコイルは、空心変圧器の二次として機能することができる。端末は、切断電力または振幅変調によって非接触カード102と通信することができる。非接触カード102は、非接触カード102の電力接続のギャップを使用して端末から送信されたデータを推測することができ、これは、1つまたは複数のコンデンサを介して機能的に維持され得る。非接触カード102は、非接触カード102のコイルへの負荷または負荷変調を切り替えることによって、通信を戻すことができる。負荷変調は、干渉によって端末のコイルで検出され得る。より一般的には、アンテナ614、プロセッサ612、および/またはメモリ206を使用して、非接触カード102は、NFC、Bluetooth、および/またはWi-Fi通信を介して通信するための通信インターフェースを提供する。
【0056】
上述のように、非接触カード102は、スマートカードまたはJavaCardなどの限られたメモリを有する他のデバイス上で動作可能なソフトウェアプラットフォーム上に構築することができ、1つまたは複数のまたは複数のアプリケーションまたはアプレットを安全に実行することができる。様々なモバイルアプリベースのユースケースにおける多要素認証(MFA)のためのワンタイムパスワード(OTP)を提供するために、非接触カードにアプレット208を追加することができる。アプレット208は、モバイルNFCリーダ(例えば、例えば、モバイルコンピューティングデバイス202または販売時点管理端末)などのリーダからの近距離無線データ交換要求などの1つまたは複数の要求に応答し、NDEFテキストタグとして符号化された暗号的に安全なOTPを含むNDEFメッセージを生成するように構成され得る。NDEFメッセージは、暗号文228、および記憶装置104に記憶されたデータなどの任意の他のデータを含むことができる。
【0057】
NDEF OTPの一例は、NDEFショートレコードレイアウト(SR=1)である。そのような例では、OTPをNDEFタイプ4の周知のタイプのテキストタグとして符号化するように、1つまたは複数のアプレット208を構成され得る。いくつかの例では、NDEFメッセージは、1つまたは複数のレコードを含むことができる。アプレット208は、OTPレコードに加えて、1つまたは複数の静的タグレコードを追加するように構成され得る。
【0058】
いくつかの例では、1つまたは複数のアプレット208は、RFIDタグをエミュレートするように構成され得る。RFIDタグは、1つまたは複数の多形タグを含むことができる。いくつかの例では、タグが読み取られるたびに、非接触カードの信頼性を示すことができる異なる暗号化データが提示される。1つまたは複数のアプレット208に基づいて、タグのNFC読み出しを処理することができ、データを銀行システムのサーバなどのサーバに送信することができ、データをサーバで検証することができる。
【0059】
いくつかの例では、非接触カード102およびサーバは、カードが適切に識別され得るように特定のデータを含み得る。非接触カード102は、1つまたは複数の固有の識別子(図示せず)を含み得る。読み出し動作が行われるたびに、カウンタ210はインクリメントするように構成され得る。いくつかの例では、非接触カード102からのデータが(例えば、モバイルデバイスによって)読み出されるたびに、カウンタ210は、検証のためにサーバに送信され、カウンタ210が(検証の一部として)サーバのカウンタと等しいかどうかを判定する。
【0060】
1つまたは複数のカウンタ210は、リプレイ攻撃を防止するように構成され得る。例えば、暗号文が取得されて再生された場合、その暗号文は、カウンタ210が読み出されたか、使用されたか、別の方法で渡された場合に直ちに拒否される。カウンタ210が使用されていなければ、再生されてもよい。いくつかの例では、非接触カード102上で増分されるカウンタは、トランザクションのために増分されるカウンタとは異なる。非接触カード102は、非接触カード102上のアプレット208間に通信がないため、アプリケーショントランザクションカウンタ210を決定することができない。いくつかの例では、非接触カード102は、トランザクションアプレットであり得る第1のアプレット440ー1と、第2のアプレット440ー2とを備えることができる。各アプレット440ー1および440ー2は、それぞれのカウンタ210を備えることができる。
【0061】
いくつかの例では、カウンタ210は同期しなくなる可能性がある。いくつかの例では、ある角度での読み出しなど、トランザクションを開始する偶発的な読み出しを考慮するために、カウンタ210は増分することができるが、アプリケーションはカウンタ210を処理しない。いくつかの例では、モバイルデバイス10がウェイクアップされると、NFCが有効にされてもよく、コンピューティングデバイス202は利用可能なタグを読み出すように構成されてもよいが、読み出しに応答してアクションは実行されない。
【0062】
カウンタ210を同期したままにするために、コンピューティングデバイス202がウェイクアップしたときを検出し、検出によって発生した読み出しがカウンタ210を前進させることを示す銀行システムのサーバと同期するように構成されるアプリケーション(バックグラウンドアプリケーションなど)が実行されてもよい。他の例では、誤同期のウィンドウが受け入れられ得るように、ハッシュ化ワンタイムパスワードが利用されてもよい。例えば、10の閾値内にある場合、カウンタ210は前進するように構成され得る。しかし、異なる閾値内、例えば10または1000内の場合、再同期を実行する要求が処理されてもよく、これは、ユーザがタップし、ジェスチャし、または他の方法でユーザのデバイスを介して1回または複数回指示する1つまたは複数のアプリケーションを介して要求する。カウンタ210が適切なシーケンスで増加する場合、ユーザがそうようにしたことを知ることができる。
【0063】
カウンタ210、マスタ鍵、および分散鍵を参照して本明細書で説明される鍵多様化技術は、鍵多様化技術の暗号化および/または復号の一例である。この例示的な鍵多様化技術は、本開示が他の種類の鍵多様化技術にも等しく適用可能であるため、本開示を限定するものとみなすべきではない。
【0064】
非接触カード102の作成プロセス中に、カードごとに2つの暗号鍵を一意に割り当てることができる。暗号鍵は、データの暗号化および復号の両方で使用され得る対称鍵を含み得る。トリプルDES(3DES)アルゴリズムは、EMVによって使用されてもよく、非接触カード102内のハードウェアによって実装される。鍵多様化プロセスを使用することにより、鍵を必要とする各エンティティの一意に識別可能な情報に基づいて、マスタ鍵から1つまたは複数の鍵を導出することができる。
【0065】
いくつかの例では、脆弱性の影響を受けやすい3DESアルゴリズムの欠点を克服するために、(セッションごとの一意の鍵などの)セッション鍵を導出することができるが、マスタ鍵を使用するのではなく、一意のカード導出鍵およびカウンタを多様化データとして使用することができる。例えば、非接触カード102が動作中に使用されるたびに、メッセージ認証コード(MAC)の作成および暗号化の実行に異なる鍵が使用されてもよい。これにより、暗号の3層が得られる。セッション鍵は、1つまたは複数のアプレットによって生成され、(EMV4.3 Book 2 A1.3.1共通セッション鍵導出に定義されているように)1つまたは複数のアルゴリズムを有するアプリケーショントランザクションカウンタを使用することによって導出され得る。
【0066】
さらに、各カードの増分は、一意であってもよく、パーソナライズによって割り当てられてもよく、または何らかの識別情報によってアルゴリズム的に割り当てられてもよい。例えば、奇数番号のカードは2ずつ増加してもよく、偶数番号のカードは5ずつ増加してもよい。いくつかの例において、増分はまた、1つのカードが1、3、5、2、2、...の繰り返しで順に増分し得るように、順次読み出しにおいて変動し得る。特定のシーケンスまたはアルゴリズムシーケンスは、パーソナライズ時に、または一意の識別子から導出された1つまたは複数のプロセスから定義することができる。これにより、リプレイ攻撃者が少数のカードインスタンスから一般化することをより困難にすることができる。
【0067】
認証メッセージは、16進ASCIIフォーマットのテキストNDEFレコードのコンテンツとして送達することができる。別の例では、NDEFレコードは16進形式で符号化されてもよい。
【0068】
図7は、例示的な実施形態によるNDEFショートレコードレイアウト(SR=1)データ構造700を示す。1つまたは複数のアプレットは、OTPをNDEFタイプ4の周知のタイプのテキストタグとして符号化するように構成されてもよい。いくつかの例では、NDEFメッセージは、1つまたは複数のレコードを含むことができる。アプレットは、OTPレコードに加えて1つまたは複数の静的タグレコードを追加するように構成され得る。例示的なタグは、タグ型:周知の型、テキスト、符号化英語(en)、アプレットID:D 2760000850101、機能:読み出し専用アクセス、符号化:認証メッセージはASCII hexとして符号化、typeーlengthーvalue(TLV)データは、NDEFメッセージを生成するために使用され得るパーソナライズパラメータとして提供され得る、を含むがこれらに限定されない。一実施形態では、認証テンプレートは、実際の動的認証データを提供するための周知のインデックスを有する第1のレコードを含むことができる。データ構造700は、暗号文228、およびアプレット208によって提供される他の任意のデータを含むことができる。
【0069】
図8は、前述のような様々な実施形態を実施するのに適した例示的なコンピュータアーキテクチャ800の実施形態を示す。一実施形態では、コンピュータアーキテクチャ800は、コンピューティングアーキテクチャ200を含むか、またはその一部として実装されてもよい。
【0070】
本出願で使用される場合、「システム」および「構成要素」という用語は、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連エンティティを指すことを意図しており、その例は、例示的なコンピューティングコンピュータアーキテクチャ800によって提供される。例えば、構成要素は、限定はしないが、プロセッサ上で実行されるプロセス、プロセッサ、ハードディスクドライブ、(光学および/または磁気記憶媒体の)複数の記憶ドライブ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータであり得る。例として、サーバ上で実行されているアプリケーションとサーバの両方が構成要素であり得る。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在することができ、構成要素は、1つのコンピュータ上に局在化することができ、および/または2つ以上のコンピュータ間に分散することができる。さらに、構成要素は、動作を調整するために様々な種類の通信媒体によって互いに通信可能に結合されてもよい。調整は、情報の単方向または双方向の交換を含むことができる。例えば、構成要素は、通信媒体を介して通信される信号の形態で情報を通信することができる。情報は、様々な信号線に割り当てられた信号として実装することができる。このような割り当てでは、各メッセージは信号である。しかしながら、さらなる実施形態は、代替的にデータメッセージを使用してもよい。このようなデータメッセージは、さまざまな接続を介して送信され得る。例示的な接続には、パラレルインターフェース、シリアルインターフェース、およびバスインターフェースが含まれる。
【0071】
コンピュータアーキテクチャ800は、1つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インターフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入力/出力(I/O)構成要素、電源などの様々な一般的なコンピューティング要素を含む。しかしながら、実施形態は、コンピュータアーキテクチャ500による実装に限定されない。
【0072】
図8に示すように、コンピュータアーキテクチャ800は、プロセッサ802と、システムメモリ804と、システムバス806とを備えるコンピュータ812を含む。プロセッサ802は、様々な市販のプロセッサのいずれかとすることができる。コンピュータ812は、コンピューティングデバイス202および/またはサーバ204を表すことができる。
【0073】
システムバス806は、システムメモリ804を含むがこれに限定されないシステム構成要素のためのインターフェースをプロセッサ802に提供する。システムバス806は、様々な市販のバスアーキテクチャのいずれかを使用して、(メモリコントローラの有無にかかわらず)メモリバス、周辺バス、およびローカルバスにさらに相互接続することができるいくつかの種類のバス構造のいずれかとすることができる。インターフェースアダプタは、スロットアーキテクチャを介してシステムバス806に接続することができる。例示的なスロットアーキテクチャは、限定はしないが、アクセラレーテッド・グラフィックス・ポート(AGP)、カードバス、(拡張)業界標準アーキテクチャ((E)ISA)、マイクロ・チャネル・アーキテクチャ(MCA)、NuBus、周辺構成要素相互接続(拡張)(PCI(X))、PCI Express、パーソナルコンピューターメモリーカード国際協会(PCMCIA)などを含むことができる。
【0074】
コンピュータアーキテクチャ800は、様々な製品を含むかまたは実装することができる。製品は、論理を記憶するためのコンピュータ可読記憶媒体を含むことができる。コンピュータ可読記憶媒体の例は、揮発性メモリまたは不揮発性メモリ、取り外し可能または取り外し不能メモリ、消去可能または消去不能メモリ、書き込み可能または書き換え可能メモリなどを含む、電子データを記憶することができる任意の有形媒体を含むことができる。論理の例は、ソースコード、コンパイル済みコード、解釈済みコード、実行可能コード、静的コード、動的コード、オブジェクト指向コード、視覚的コードなどの任意の適切な種類のコードを使用して実装された実行可能コンピュータプログラム命令を含むことができる。実施形態はまた、本明細書に記載の動作の実行を可能にするために1つまたは複数のプロセッサによって読み出されて実行され得る非一時的コンピュータ可読媒体に含まれる命令または非一時的コンピュータ可読媒体上の命令として少なくとも部分的に実装されてもよい。
【0075】
システムメモリ804は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレートDRAM(DDRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、プログラマブルROM(PROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ、強誘電体ポリマーメモリなどのポリマーメモリ、オボニックメモリ、相変化または強誘電体メモリ、シリコン-酸化物-窒化物-酸化物-シリコン(SONOS)メモリ、磁気カードまたは光カード、独立ディスク冗長アレイ(RAID)ドライブなどのデバイスのアレイ、ソリッドステートメモリデバイス(例えば、USBメモリ、ソリッドステートドライブ(SSD)、および情報を記憶するのに適した任意の他の種類の記憶媒体など、1つまたは複数の高速メモリユニットの形態の様々な種類のコンピュータ可読記憶媒体を含むことができる。
図8に示す例示の実施形態では、システムメモリ804は、不揮発性808および/または揮発性810を含むことができる。基本入力/出力システム(BIOS)は、不揮発性808に記憶することができる。
【0076】
コンピュータ812は、内部(または外部)ハードディスクドライブ814、リムーバブル磁気ディスク818を読み書きする磁気ディスク・ドライブ(FDD)816、およびリムーバブル光ディスク822(例えば、CD-ROMまたはDVD)を読み書きする光ディスクドライブ820を含む、1つまたは複数の低速メモリユニットの形態の様々な種類のコンピュータ可読記憶媒体を含むことができる。ハードディスクドライブ814、磁気ディスクドライブ816および光ディスクドライブ820は、それぞれHDDインターフェース824、FDDインターフェース826および光ディスクドライブインターフェース828によってシステムバス806に接続することができる。外部ドライブ実装のためのHDDインターフェース824は、ユニバーサルシリアルバス(USB)およびIEEE1394インターフェース技術の少なくとも一方または両方を含むことができる。
【0077】
ドライブおよび関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令などの揮発性および/または不揮発性記憶を提供する。例えば、オペレーティングシステム830、1つまたは複数のアプリケーション832、他のプログラムモジュール834、およびプログラムデータ836を含む、いくつかのプログラムモジュールをドライブおよび不揮発性808、揮発性810に記憶することができる。一実施形態では、1つまたは複数のアプリケーション832、他のプログラムモジュール834、およびプログラムデータ836は、例えば、システム200の様々なアプリケーションおよび/または構成要素を含むことができる。
【0078】
ユーザは、例えばキーボード838、およびマウス840などのポインティングデバイスなどの1つまたは複数の有線/無線入力デバイスを介して、コマンドおよび情報をコンピュータ812に入力することができる。他の入力デバイスは、マイクロフォン、赤外線(IR)リモコン、無線周波数(RF)リモコン、ゲームパッド、スタイラスペン、カードリーダ、ドングル、指紋リーダ、グローブ、グラフィックタブレット、ジョイスティック、キーボード、網膜リーダ、タッチスクリーン(例えば、容量性、抵抗性など)、トラックボール、トラックパッド、センサ、スタイラスなどを含むことができる。これらおよび他の入力デバイスは、システムバス806に結合された入力デバイスインターフェース842を介してプロセッサ802に接続されることが多いが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインターフェースなどの他のインターフェースによって接続することができる。
【0079】
モニタ844または他の種類の表示デバイスも、ビデオアダプタ846などのインターフェースを介してシステムバス806に接続される。モニタ844は、コンピュータ812の内部または外部にあってもよい。モニタ844に加えて、コンピュータは通常、スピーカ、プリンタなどの他の周辺出力デバイスを含む。
【0080】
コンピュータ812は、リモートコンピュータ848などの1つまたは複数のリモートコンピュータへの有線および/または無線通信を介した論理接続を使用して、ネットワーク環境で動作することができる。リモートコンピュータ848は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースのエンターテイメント機器、ピアデバイス、または他の一般的なネットワークノードとすることができ、典型的には、コンピュータ812に関して説明した要素の多くまたは全部を含むが、簡潔にするために、メモリおよび/または記憶装置850のみが示されている。図示の論理接続は、ローカル・エリア・ネットワーク852および/またはより大きなネットワーク、例えばワイド・エリア・ネットワーク854への有線/無線接続を含む。そのようなLANおよびWANネットワーキング環境は、オフィスおよび企業において一般的であり、イントラネットなどの企業規模のコンピュータネットワークを容易にし、そのすべてが、例えばインターネットなどのグローバル通信ネットワークに接続することができる。
【0081】
ローカル・エリア・ネットワーク852ネットワーキング環境で使用される場合、コンピュータ812は、有線および/または無線通信ネットワークインターフェースまたはネットワークアダプタ856を介してローカル・エリア・ネットワーク852に接続される。ネットワークアダプタ856は、ローカル・エリア・ネットワーク852への有線および/または無線通信を容易にすることができ、これは、ネットワークアダプタ856の無線機能と通信するためにその上に配置された無線アクセスポイントも含むことができる。
【0082】
広域ネットワーク854ネットワーキング環境で使用される場合、コンピュータ812は、モデム858を含むことができ、または広域ネットワーク854上の通信サーバに接続され、またはインターネットなどを介して広域ネットワーク854上で通信を確立するための他の手段を有する。モデム858は、内部または外部ならびに有線および/または無線デバイスとすることができ、入力デバイスインターフェース842を介してシステムバス806に接続する。ネットワーク環境では、コンピュータ812またはその一部に関して示されたプログラムモジュールは、リモートメモリおよび/または記憶装置850に記憶することができる。図示のネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段を使用できることが理解されよう。
【0083】
コンピュータ812は、無線通信(例えば、IEEE802.11無線変調技術)において動作可能に配置された無線デバイスなどの、IEEE802規格ファミリーを使用する有線および無線デバイスまたはエンティティと通信するように動作可能である。これには、とりわけ、少なくともWi-Fi(またはワイヤレスフィデリティ)、WiMax、およびBluetooth(商標)無線技術が含まれる。したがって、通信は、従来のネットワークと同様に事前定義された構造、または単に少なくとも2つのデバイス間のアドホック通信とすることができる。Wi-Fiネットワークは、IEEE802.11(a、b、g、n、ac、axなど)と呼ばれる無線技術を使用して、安全で信頼性が高く高速な無線接続を提供する。Wi-Fiネットワークを使用して、コンピュータを互いに、インターネットに、および(IEEE802.3関連の媒体および機能を使用する)有線ネットワークに接続することができる。
【0084】
図1~
図7を参照して前述したようなデバイスの様々な要素は、様々なハードウェア要素、ソフトウェア要素、または両方の組み合わせを含むことができる。ハードウェア要素の例は、デバイス、論理デバイス、構成要素、プロセッサ、マイクロプロセッサ、回路、プロセッサ、回路要素(例えば、トランジスタ、抵抗器、コンデンサ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラマブル・ロジック・デバイス(PLD)、デジタル・シグナル・プロセッサ(DSP)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどを含み得る。ソフトウェア要素の例は、ソフトウェア構成要素、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、機械プログラム、オペレーティング・システム・ソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、方法、手順、ソフトウェアインターフェース、アプリケーション・プログラム・インターフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、またはそれらの任意の組み合わせを含み得る。実施形態がハードウェア要素および/またはソフトウェア要素を使用して実施されるかどうかの決定は、所望の計算速度、電力レベル、耐熱性、処理サイクルバジェット、入力データ速度、出力データ速度、メモリリソース、データバス速度、および所与の実施態様に望まれる他の設計または性能制約などの任意の数の要因に従って変化し得る。
【0085】
少なくとも1つの実施形態の1つまたは複数の態様は、プロセッサ内の様々な論理を表す機械可読媒体に記憶された代表的な命令によって実施されてもよく、機械によって読み取られると、機械は、本明細書に記載の技術を実行するための論理を作成する。「IPコア」として知られるそのような表現は、有形の機械可読媒体に記憶され、論理またはプロセッサを作成する製造機械にロードするために様々な顧客または製造施設に供給され得る。いくつかの実施形態は、例えば、機械によって実行された場合に機械に実施形態による方法および/または動作を実行させることができる命令または命令のセットを記憶することができる機械可読媒体または物品を使用して実施することができる。そのような機械は、例えば、任意の適切な処理プラットフォーム、コンピューティングプラットフォーム、コンピューティングデバイス、処理デバイス、コンピューティングシステム、処理システム、コンピュータ、プロセッサなどを含むことができ、ハードウェアおよび/またはソフトウェアの任意の適切な組み合わせを使用して実施することができる。機械可読媒体または物品は、例えば、任意の適切な種類のメモリユニット、メモリデバイス、メモリ物品、メモリ媒体、記憶装置、記憶物品、記憶媒体および/または記憶ユニット、例えば、メモリ、取り外し可能または取り外し不可能な媒体、消去可能または消去不可能な媒体、書き込み可能または書き換え可能な媒体、デジタルまたはアナログ媒体、ハードディスク、フロッピーディスク、コンパクトディスク読み出し専用メモリ(CD-ROM)、記録可能コンパクトディスク(CD-R)、書き換え可能コンパクトディスク(CD-RW)、光ディスク、磁気媒体、光磁気媒体、取り外し可能なメモリカードまたはディスク、様々な種類のデジタル多用途ディスク(DVD)、テープ、カセットなどを含むことができる。命令は、任意の適切な高レベル、低レベル、オブジェクト指向、ビジュアル、コンパイルおよび/または解釈されたプログラミング言語を使用して実装された、ソースコード、コンパイルされたコード、解釈されたコード、実行可能コード、静的コード、動的コード、暗号化されたコードなどの任意の適切な種類のコードを含むことができる。
【0086】
例示的な実施形態の前述の説明は、例示および説明の目的で提示されている。網羅的であること、または本開示を開示された正確な形態に限定することは意図されていない。本開示に照らして、多くの修正および変形が可能である。本開示の範囲は、この詳細な説明によってではなく、むしろ添付の特許請求の範囲によって限定されることが意図されている。本出願に対する優先権を主張する将来出願される出願は、異なる方法で開示された主題を主張することができ、一般に、本明細書で様々に開示または他の方法で実証される1つまたは複数の制限の任意のセットを含むことができる。
【国際調査報告】