[0018]本明細書全体を通じて、「一実施形態」、「ある実施形態」または同様の表現を言う場合、その実施形態に関連して記載されている特定の特徴、構造または特性が、少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通じて「一実施形態において」、「ある実施形態において」という語句、および同様の表現はすべて同じ実施形態を指し得るが、必ずしもそうであるとは限らず、特に明記されていない限り、「1つまたは複数の実施形態であるがすべての実施形態ではない」ことを意味する。「含む」、「備える」、「有する」という用語およびこれらの用語の変形は、特に明記されていない限り、「含むがそれには限定されない」ことを意味する。項目の列挙は、特に明記されていない限り、それらの項目のいずれかまたは全部が相互に排他的および/または相互に包含的であることを含意しない。「a」、「an」および「the」という用語は、特に明記されていない限り、「1つまたは複数」も指す。
[0019]また、実施形態の記載されている特徴、利点および特性は、任意の適切な方式で組み合わせてもよい。当業者は、実施形態が特定の実施形態の特定の特徴または利点のうちの1つまたは複数の特徴または利点がなくても実施可能であることがわかるであろう。また、すべての実施形態には示されていない場合がある、特定の実施形態における追加の特徴および利点もわかるであろう。
[0020]実施形態のこれらの特徴および利点は、以下の説明および添付の特許請求の範囲からよりよく明らかになり、または以下に記載されている実施形態を実施することにより知ることができる。当業者にはわかるように、本発明の態様は、システム、方法、および/またはコンピュータプログラム製品として具現化可能である。したがって、本発明の態様は、本明細書ではすべて「回路」、「モジュール」または「システム」と総称されている場合がある、完全にハードウェア実施形態、完全にソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェア態様とハードウェア態様との組合せの実施形態をとることができる。また、本発明の態様は、プログラムコードが具現化された1つまたは複数のコンピュータ可読媒体に具現化されたコンピュータプログラム製品の形態をとることができる。
[0021]本明細書に記載の機能ユニットの多くは、その実装の独立性をより具体的に強調するためにモジュールと称されている。例えば、モジュールは、カスタムVLSI回路またはゲートアレイ、ロジックチップなどの既製の半導体、トランジスタ、またはその他の個別構成要素を含むハードウェア回路として実装することができる。モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイスなどのプログラマブルハードウェアデバイスとして実装することもできる。
[0022]モジュールは、様々な種類のプロセッサによる実行のためのソフトウェアとして実装することもできる。プログラムコードの識別されるモジュールは、例えば、オブジェクト、手続きまたは関数として編成されることができる、例えばコンピュータ命令の1つまたは複数の物理ブロックまたは論理ブロックを備え得る。上記にもかかわらず、識別されるモジュールの実行ファイルは、物理的にまとめて配置されている必要はなく、互いに論理的に結合されるとそのモジュールを構成し、そのモジュールの記載されている目的を達成する、異なるロケーションに記憶された別々の命令を備えていてもよい。
[0023]実際、プログラムコードのモジュールは、単一の命令であってもよく、または多くの命令であってもよく、いくつかの異なるコードセグメントにわたり、異なるプログラムにわたり、いくつかのメモリデバイスにわたって分散されていてもよい。同様に、本明細書ではモジュール内で動作データが識別され、示されている場合があり、任意の適切な形態で具現化されてよく、任意の適切な種類のデータ構造内で編成されてよい。動作データは、単一のデータセットとしてまとめられてよく、または異なるストレージデバイスにまたがることを含めて異なるロケーションにわたって分散されてよく、少なくとも部分的に、単にシステムまたはネットワーク上の電子信号として存在してもよい。モジュールまたはモジュールの一部がソフトウェアで実装される場合、プログラムコードは1つまたは複数のコンピュータ可読媒体に記憶され、および/または1つまたは複数のコンピュータ可読媒体で伝播させられてもよい。
[0024]コンピュータプログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
[0025]コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持し、記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光学式ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、またはこれらの任意の適合する組合せとすることができるが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストには、可搬型コンピュータディスケット、ハードディスク、ランダムアクセスメモリ(「RAM」)、読み取り専用メモリ(「ROM」)、消去可能プログラマブル読み取り専用メモリ(「EPROM」またはフラッシュメモリ)、スタティックランダムアクセスメモリ(「SRAM」)、可搬型コンパクトディスク読み取り専用メモリ(「CD-ROM」)、デジタル多用途ディスク(「DVD」)、メモリスティック、フロッピィディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適切な組合せが含まれる。本明細書で使用するコンピュータ可読記憶媒体とは、電波またはその他の自由に伝播する電磁波、導波路またはその他の伝送媒体を伝播する電磁波(例えば光ファイバケーブルを通る光パルス)、または配線で送信される電気信号などの、一過性の信号そのものであると解釈されるべきではない。
[0026]本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワークおよび/または無線ネットワークなどのネットワークを介して外部コンピュータまたは外部ストレージデバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを備え得る。それぞれのコンピューティング/処理デバイスにおけるネットワークアダプタカードまたはネットワークインターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
[0027]本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクションセットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語、または同様のプログラム言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソースコードまたはオブジェクトコードとすることができる。コンピュータ可読プログラム命令は、スタンドアロンソフトウェアパッケージとして全体がユーザのコンピュータ上でまたは一部がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で一部が遠隔コンピュータ上で、または全体が遠隔コンピュータまたはサーバ上で実行されてもよい。後者の場合、遠隔コンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は(例えば、インターネットサービスプロバイダを使用してインターネットを介して)外部コンピュータに対して行ってもよい。実施形態によっては、本発明の態様を実行するために、例えばプログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
[0028]本明細書では、本発明の態様について、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品を示すフローチャート図および/またはブロック図を参照しながら説明する。フローチャート図および/またはブロック図の各ブロックおよびフローチャート図および/またはブロック図のブロックの組合せは、コンピュータ可読プログラム命令によって実装可能であることはわかるであろう。
[0029]これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブルデータ処理装置のプロセッサにより実行される命令が、フローチャートおよび/またはブロック図のブロックで規定されている機能/動作を実装する手段を形成するように、マシンを作り出すように汎用コンピュータ、専用コンピュータ、またはその他のプログラマブルデータ処理装置のプロセッサに供給することができる。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートおよび/またはブロック図のブロックで規定されている機能/動作の態様を実装する命令を含む製造品を備えるように、コンピュータ、プログラマブルデータ処理装置、および/またはその他の装置に対して特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
[0030]コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置またはその他のデバイス上で実行される命令がフローチャートおよび/またはブロック図のブロックで規定されている機能/動作を実装するように、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の動作ステップが実行されてコンピュータ実装プロセスを実現するようにするために、コンピュータ、その他のプログラマブルデータ処理装置、またはその他のデバイスにロードされてもよい。
[0031]図面中の概略フローチャート図および/または概略ブロック図は、本発明の様々な実施形態による装置、システム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能および動作を示す。その際、概略フローチャート図および/または概略ブロック図の各ブロックは、規定されている論理関数を実装するためのプログラムコードの1つまたは複数の実行可能命令を含む、コードのモジュール、セグメント、または部分を表すことがある。
[0032]なお、一部の別の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよいことにも留意されたい。例えば、連続して示されている2つのブロックは、関与する機能に応じて、実際には実質的に並行して実行されてよく、またはそれらのブロックは場合によっては逆の順序で実行されてもよい。示されている図の1つまたは複数のブロックまたはその一部の機能、論理または作用の点で同等であるその他のステップおよび方法も考えられ得る。
[0033]フローチャートおよび/またはブロック図では様々な種類の矢印および線種が採用されている場合があるが、それらは対応する実施形態の範囲を限定しないものと理解される。実際、一部の矢印またはその他の接続線は、図示されている実施形態の論理の流れを示すためにのみ使用されていることがある。例えば、矢印は、図示されている実施形態の列挙されているステップ間の明示されていない長さの待ち期間または監視期間を示している場合がある。なお、ブロック図および/またはフローチャート図の各ブロックと、ブロック図および/またはフローチャート図のブロックの組合せとは、示されている機能または動作を実行する専用ハードウェアベースのシステムまたは専用ハードウェアとプログラムコードの組合せによって実装可能であることに留意されたい。
[0034]図1に、口座検証のためのシステム100の一実施形態を示す。一実施形態では、システム100は1つまたは複数のハードウェアデバイス102と、1つまたは複数の検証モジュール104(例えば、バックエンド検証モジュール104b、1つまたは複数のハードウェアデバイス102上に配置された複数の検証モジュール104a、1つまたは複数のサードパーティエンティティ108のための1つまたは複数の売買業者用検証モジュール104c)、1つまたは複数のデータネットワーク106またはその他の通信チャネル、1つまたは複数のサードパーティエンティティ108(例えば1つまたは複数のサービスプロバイダ108の1つまたは複数のサーバ108、1つまたは複数のクラウドまたはネットワークサービス/プロバイダなど)、および/または1つまたは複数のバックエンドサーバ110を含む。特定の実施形態では、特定の数のハードウェアデバイス102、検証モジュール104、データネットワーク106、サードパーティエンティティ108、および/またはバックエンドサーバ110が図1に図示されていても、当業者は本開示に照らして任意の数のハードウェアデバイス102、検証モジュール104、データネットワーク106、サードパーティエンティティ108、および/またはバックエンドサーバ110が口座検証のためのシステム100に含まれてよいことがわかるであろう。
[0035]一実施形態では、システム100は1つまたは複数のハードウェアデバイス102を含む。ハードウェアデバイス102(例えばコンピューティングデバイス、情報処理デバイスなど)は、デスクトップコンピュータ、ラップトップコンピュータ、モバイルデバイス、タブレットコンピュータ、スマートフォン、セットトップボックス、ゲーム機、スマートTV、スマートウォッチ、フィットネスバンド、光学ヘッドマウントディスプレイ(例えばバーチャルリアリティヘッドセット、スマートグラスなど)、HDMI(登録商標)またはその他の電子ディスプレイドングル、パーソナルデジタルアシスタント、および/または、プロセッサ(例えば中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラおよび/または他の半導体集積回路デバイス)、揮発性メモリおよび/または不揮発性記憶媒体を備える、他のコンピューティングデバイスのうちの1つまたは複数を含み得る。特定の実施形態では、ハードウェアデバイス102は、後述のデータネットワーク106を介して1つまたは複数のサードパーティエンティティ108の1つまたは複数のサーバ108および/または1つまたは複数のバックエンドサーバ110と通信している。ハードウェアデバイス102は、さらなる実施形態では、様々なプログラム、プログラムコード、アプリケーション、命令、関数などを実行することができる。
[0036]検証モジュール104は、一実施形態では、図2および図3を参照しながら以下で詳述するように、ユーザによる対話、入力、フィードバックなどが最小限であるかまたはまったくなしに、ユーザの1つまたは複数の口座(例えば金融口座、オンラインサービスプロバイダ口座、ソーシャルメディア口座など)の存在および/または状態を検証するように構成される。本明細書で使用される口座検証(または即時口座検証)は、企業、銀行などのエンティティが顧客の機能源が有効であるか否かをリアルタイムおよび/または数秒以内などに検証することができるようにする。
[0037]例えば、金融サービス会社、例えば銀行、ローン会社、および/または住宅金融会社などにおける顧客が、検証する必要がある口座のための自分の電子認証情報、例えばユーザ名とパスワードを提供する。金融データ集約者が、その顧客に代わってログインし、検証された口座情報、例えば口座番号と銀行コードとをその機関にセキュアに返すことができる。
[0038]マイクロデポジットにのみ基づく従来の口座検証システムでは、選択された金融口座に2件の少額デポジットが入金される。その後、顧客は1営業日から3営業日の間のいずれかでそのデポジットが自分の口座に入金されるのを待つ必要があり、入金の時点で顧客は自分の金融口座と、口座を有効化するように検証を依頼する企業とにログインする必要がある。マイクロデポジットによって手動で自分の口座を検証する必要がある顧客は、処理の完了を検証するのを忘れることが多く、検証する時点までには登録する気力が衰えるかなくなってしまうことも多く、口座の登録を完了しないことがある。
[0039]特定の実施形態では、ユーザのハードウェアデバイス102上の検証モジュール104aが、ユーザのハードウェアデバイス102の、および/またはサードパーティエンティティ108などの決定された地理的ロケーションに基づいて、サードパーティエンティティ108のための検証モジュール104cと(直接および/または1つまたは複数のバックエンドサーバ110上の1つまたは複数のバックエンド検証モジュール104bを介して)、近距離無線通信(NFC)、マトリックスまたはその他のバーコード、Bluetooth(R)、Wi-Fi、無線ID(RFID)、赤外線(IR)信号プロトコル、無線周波数(RF)信号プロトコルを使用してデータネットワーク106を介して通信することができる。このようにして、一部の実施形態では、検証モジュール104が、ペイメントカードおよび/またはペイメントカードネットワークの代わりにユーザのハードウェア102を使用して、ユーザとサードパーティエンティティ108との間のトランザクションを完了させることができ、それによってカードではなくユーザを認証する。
[0040]特定の実施形態では、ユーザのハードウェアデバイス102の検証モジュール104aが、トランザクションのためにサードパーティエンティティ108の検証モジュール104cと直接に通信しなくてもよく、両者は(例えばデータネットワーク106などを使用して)バックエンド検証モジュール104bと通信してよい。バックエンド検証モジュール104bは、(例えば不正検出のため、またはトランザクションをトリガするため、またはユーザのハードウェアデバイス102上でユーザにオファを提示するため、またはトランザクションを完了するためなど)ユーザのハードウェアデバイス102とサードパーティエンティティ108について決定された地理的ロケーションを比較してもよい。
[0041]一実施形態では、以下で詳述するように、検証モジュール104aは、ユーザのためのモバイルハードウェアデバイス102上で実行される個人金融管理(PFM)モバイルアプリケーションの一部であるか、それに組み込まれているか、および/またはそれと通信していてよく、ユーザの電子認証情報を使用してユーザの金融口座(例えば、複数のサードパーティ金融機関108、114などの口座)のうちの1つまたは複数の金融口座にすでにアクセス可能であってよく、そのような金融口座にアクセスするためのユーザからの許可を有していてよい。検証モジュール104は、ユーザのトランザクションデータを集約するため、または資金および/あるいはクレジットの利用可能性を検証するため、またはトランザクションのための支払いを送金するためなどに、ユーザの電子認証情報を使用することができる。検証モジュール104は、一部の実施形態では、(例えばその後の金融トランザクションのための正確な不正検出を容易にするなどのために)1つまたは複数のサードパーティ金融口座からユーザの集約された金融トランザクションデータを清浄化、カテゴリ分け、分類、および/またはその他の処理を行うことができる。
[0042]一実施形態では、サードパーティエンティティのための検証モジュール104cが、完了したトランザクションなどに応答して、トランザクションのアイテムレベルのデータをユーザのための検証モジュール104a、またはバックエンド検証モジュール104bなどに提供されてよい。他の実施形態では、検証モジュール104cは、トランザクションの完了の前にアイテムレベルのデータを提供してよく、検証モジュール104がトランザクションのための不正検出のためにそのアイテムレベルのデータを使用することができる。アイテムレベルのデータについては以下で詳述する。例えば、一部の実施形態では、検証モジュール104cがアイテムレベルのデータを電子領収書としてユーザのハードウェアデバイス102上などでユーザに提供してよい。
[0043]一実施形態では、検証モジュール104は、1つまたは複数のサードパーティエンティティ108のために、ユーザの電子認証情報(例えばユーザ名およびパスワード、指紋スキャン、網膜スキャン、デジタル証明書、個人識別番号(PIN)、チャレンジ応答、セキュリティトークン、ハードウェアトークン、ソフトウェアトークン、DNAシーケンス、署名、顔認識、音声パターン認識、生体電気信号、二要素認証の認証情報、など)を決定および/または受け取るように構成され得る。検証モジュール104は、特定の実施形態では、ユーザに関連付けられ、および/またはユーザによって所有されているが、サードパーティエンティティ108のサーバ108によって記憶されている(例えばユーザによって所有、維持および/または制御されていないハードウェアによって記憶されている)、ユーザの写真、ユーザのソーシャルメディア書き込み、ユーザの医療記録、ユーザの金融トランザクション記録またはその他の金融データ、および/またはその他のデータなどの、ユーザに関連付けられたデータをサーバ108からダウンロードするために、ユーザの電子認証情報を使用してサードパーティエンティティ108のサーバ108にアクセスする。
[0044]検証モジュール104は、様々な実施形態において、ダウンロードされたデータをユーザにローカルで提供(例えばデータをハードウェアデバイス102の電子ディスプレイ上に表示)してよく、ダウンロードされたデータをユーザのハードウェアデバイス102からサードパーティエンティティ108と系列関係になくてもよい遠隔サーバ110(例えばバックエンド検証モジュール104b)または他の遠隔デバイス(例えばユーザの別のハードウェアデバイス102、異なるユーザのハードウェアデバイス102など)に提供すること、および/またはそのようなサーバまたは遠隔デバイスのためにパッケージ化することを行ってよく、ダウンロードされたデータに基づいて、ユーザに(例えばハードウェアデバイス102上で)1つまたは複数のアラート、メッセージ、オファ、広告、または他の通信を提供することなどを行ってよい。
[0045]特定の実施形態では、システム100は、複数の異なるユーザのハードウェアデバイス102上に配置/位置づけられた(例えば1つまたは複数のハードウェアデバイス102のハードウェア、および/またはそのようなハードウェアデバイス102上で稼働する実行可能コードを備えた)複数の検証モジュール104を含む。複数の検証モジュール104は、それぞれが別々にデータ(例えば写真、ソーシャルメディア書き込み、医療記録、金融トランザクション記録、その他の金融データおよび/またはその他のユーザデータ)を分散式および/または非集中式にダウンロードおよび/または集約する、地理的に分散され、異なるIPアドレスを使用する複数のハードウェアデバイス102にわたって実行される分散および/または非集中システム100として動作してよい。サードパーティエンティティ108(例えば金融機関、銀行、信用組合、および/またはその他のオンラインバンキングプロバイダ、ソーシャルメディアサイト、メディカルプロバイダ、写真ホスティングサイトなど)は、データアグリゲーションサービスまたはその他のエンティティが単一のロケーション(例えば単一のIPアドレス、IPアドレスの単一のブロックなど)から複数のユーザのデータにアクセスするのをブロックすることができるが、特定の実施形態では、多くの検証モジュール104の分散および/または非集中的な一群をサードパーティエンティティ108がブロックするのがはるかに困難な場合がある。
[0046]一実施形態では、ハードウェアデバイス102はインターネットブラウザを含むこと、および/または実行することができ、ユーザがそのインターネットブラウザを使用して(例えばインターネットブラウザにサードパーティエンティティ108のウェブページをロードすることによって)サードパーティエンティティ108のサーバ108にアクセスしてよい。特定の実施形態では、サードパーティエンティティ108が、ユーザ自身がインターネットブラウザを使用してサーバ108にアクセスするのをブロックもせずに、検証モジュール104がサードパーティエンティティ108のサーバ108にアクセスするのをブロックしなくてもよいように、検証モジュール104の少なくとも一部がユーザの個人的ハードウェアデバイス102のインターネットブラウザのプラグインおよび/または拡張を備えてよい。例えば、検証モジュール104は、ユーザがインターネットブラウザを介してサードパーティエンティティ108のサーバ108にアクセスする場合に使用するのと同じクッキー、IPアドレス、保存済み認証情報などを使用してもよい。特定の実施形態では、検証モジュール104は、(例えば異なるハードウェアデバイス102上の)複数の異なる種類のインターネットブラウザとの統合をサポートしてもよい。
[0047]特定の実施形態では、サードパーティエンティティ108が検証モジュール104によるサーバ108へのアクセスをユーザによるサーバ108へのアクセスから区別する可能性を低くするために、検証モジュール104がサードパーティエンティティ108のサーバ108にアクセスする際のユーザの挙動パターンを模倣またはコピーすることができる。例えば、サードパーティエンティティ108によって検出および/またはブロックされる確率を低くするために、検証モジュール104がユーザのデータをダウンロードおよび/または集約しているのを隠すため、検証モジュール104は検証モジュール104が1つまたは複数のロケーションのそれぞれからデータをダウンロードする意図がない場合であってもサードパーティエンティティ108のサーバ108の1つまたは複数のロケーション(例えばウェブページ)を訪れてよく、異なるロケーションへのアクセス間で特定の遅延時間だけ待ってよく、特定のスクロールパターンなどを使用してよい。
[0048]一実施形態では、検証モジュール104の少なくとも一部が、個人金融管理アプリケーション(例えば、複数の金融機関からのユーザの金融トランザクションの表示、ユーザの金融予算および/または金融目標の決定および/または表示、ユーザの口座残高の決定および/または表示、ユーザの純資産の決定および/または表示などのためのコンピュータ実行可能コード)、フォトビューア、医療アプリケーション、保険アプリケーション、会計アプリケーション、ソーシャルメディアアプリケーションなど、ハードウェアデバイス102上で実行され、検証モジュール104がサードパーティエンティティ108のサーバ108からダウンロードするデータを使用してよい別のアプリケーションに組み込まれるかまたは他の方法でその一部とされてもよい。
[0049]一実施形態では、検証モジュール104aは、分散型システム100を備え、検証モジュール104aおよび/または関連付けられたハードウェアデバイス102が、実質的に独立にデータのダウンロードおよび/または集約を行う(例えば、グローバルクロックなしに、構成要素の独立した成功および/または失敗とともに、データを並行してまたは非並行的にダウンロードする)。分散検証モジュール104aは、ユーザのためのデータの分散型アグリゲーションを協調させるために、互いに、および/またはバックエンド検証モジュール104bにメッセージを渡すことができる。一実施形態では、検証モジュール104aは、1つまたは複数のアグリゲーション機能を実行するのに集中サーバまたは他のデバイスに排他的に依拠するのではなく、分散化される(例えば、ユーザに関連付けられたハードウェアデバイス102が、データのダウンロードなどの1つまたは複数のアグリゲーション機能を実行する)。
[0050]特定の実施形態では、分散型および/または非集中型システム100であってもバックエンド検証モジュール104bおよび/またはバックエンドサーバ110などの中央エンティティが、1つまたは複数の検証モジュール104aに、ユーザの認証情報などを使用してサードパーティエンティティ108のサーバ108にアクセスするための命令を備える1つまたは複数のメッセージを提供してよい。例えば、バックエンド検証モジュール104bが、1つまたは複数のハードウェアデバイス102の1つまたは複数の検証モジュール104aに、検証モジュール104aがそれを使用してユーザのデータにアクセスしてダウンロードすることができる、ユーザの電子認証情報を入力するためのロケーション(例えば、テキストボックス、フィールド、ラベル、座標など)、ユーザの電子認証情報をサブミットするための命令(例えば、押すべきボタン、クリックすべきリンクなど)、ユーザに関連付けられたデータの1つまたは複数のロケーション(例えば、テーブルまたはチャートにおける行、テーブルまたはチャートにおける列、ユニフォームリソースロケータ(URL)またはその他のアドレス、座標、ラベルなど)、および/またはその他の命令もしくは情報などの、サードパーティエンティティ108のサーバ108にアクセスするための命令の1つまたは複数のセットを提供してよい。
[0051]さらなる実施形態では、1つまたは複数の検証モジュール104aが互いにピアツーピア式に、ユーザの認証情報などを使用してサードパーティエンティティ108のサーバ108にアクセスするための命令などのメッセージを渡してよい。別の実施形態では、バックエンド検証モジュール104bなどの中央エンティティが、最初に、サードパーティエンティティ108のサーバ108にアクセスするための命令の1つまたは複数のセットをユーザの認証情報を使用して1つまたは複数の検証モジュール104aに送信し、その1つまたは複数の検証モジュール104aがその命令の1つまたは複数セットを他の検証モジュール104aに送信してよい。
[0052]しかし、ユーザのデータにアクセスするための命令は、特定の実施形態では、時間の経過とともに変化することがあり、(例えば、アップグレード、異なるユーザのための異なるサービスレベルまたはサーバ108、異なるサードパーティエンティティ108の買収および/または合併などに起因して)サードパーティエンティティ108などの異なるユーザごとに異なることなどがあり、それによって、時間の経過とともに、および/または特定のユーザについて、特定の命令が失敗し、検証モジュール104がユーザのデータにアクセスし、ダウンロードすることができなくなることがある。一実施形態では、バックエンド検証モジュール104bが、サードパーティエンティティ108のサーバ108からユーザのデータにアクセスすることが可能としたことがわかっている命令の複数のセットの階層リストを1つまたは複数の検証モジュール104aに提供してよい。ハードウェアデバイス102上の検証モジュール104aは、検証モジュール104aがユーザのデータにアクセスすることができるまで、階層的順序で命令の異なるセットを試行することができる。
[0053]特定の実施形態では、検証モジュール104が、ユーザのデータにアクセスするための失敗した命令をユーザがユーザの電子認証情報の入力ロケーション、ユーザの電子認証情報をサブミットするための命令、ユーザに関連付けられたデータのロケーションなどをグラフィックで特定することにより修復または修正することができるようにするインターフェースをユーザに提供してもよい。検証モジュール104は、一実施形態では、検証モジュール104が決定したユーザの電子認証情報の入力ロケーション、ユーザの電子認証情報をサブミットするための命令、ユーザに関連付けられたデータのロケーションなどの推定を(例えば太字、色、視覚的コメントまたはラベルの図示などで)強調表示またはその他の方法で示唆してよい。例えば、検証モジュール104は、サードパーティエンティティ108のサーバ108のウェブページを処理(例えば、ハイパーテキストマークアップ言語(HTML)ファイルの構文解析および/または検索)して、ユーザの電子認証情報の入力ロケーション、ユーザの電子認証情報をサブミットするための命令、ユーザに関連付けられたデータのロケーションなどを推定することができる。
[0054]検証モジュール104は、特定の実施形態では、サードパーティエンティティ108のサーバ108からユーザのデータにアクセスするための壊れた命令および/または失敗した命令をユーザがグラフィックで修復するための高度なインターフェースを提供してもよく、それによってユーザがウェブページのコード(例えばHTMLなど)を見ることができるようにし、ウェブページのコード内でユーザの電子認証情報の入力ロケーション、ユーザの電子認証情報をサブミットするための命令、ユーザに関連付けられたデータのロケーションなどを特定することができるようにしてもよい。一実施形態では、検証モジュール104は、サーバ108のウェブページまたはその他のロケーションに、ユーザがユーザの電子認証情報の入力ロケーション、ユーザの電子認証情報をサブミットするための命令、ユーザに関連付けられたデータのロケーションなどを(例えばウェブページのHTMLまたはその他のコードをユーザが見る必要なしに)グラフィックで特定することができる基本インターフェースを重ねることによって、サードパーティエンティティ108のサーバ108からユーザのデータにアクセスするための壊れた命令および/または失敗した命令をユーザがグラフィックで修復するための基本インターフェースを提供してよい。検証モジュール104は、特定の実施形態では、壊れた命令および/または欠損した命令、ロケーションなどの選択可能なリストを含むインターフェースを提供してもよく、ユーザがそのリストから項目を選択することに応答して示唆をグラフィックで強調および/または表示してもよい。
[0055]検証モジュール104は、一実施形態では、(例えば、不正ユーザが不正または不適切な命令を提供するのを防ぐため)検証モジュール104aのそれぞれが提供された命令を使用することができるようにする前に、ユーザによって提供された命令を(例えば試験セットを使用して)試験してもよい。検証モジュール104は、ユーザの提供した命令の成功率に基づいてユーザに得点または格付けを与えて、より高い得点または格付けを有するユーザからの命令の使用を促進(例えば、より多数の検証モジュール104aおよび/またはユーザに提供)してもよい。特定の実施形態では、検証モジュール104の分散ネットワークは、これによって自己回復型および/または自己試験型となることができ、アクセス命令が変化または破損しても、1つまたは複数のサードパーティエンティティ108からユーザのデータへのアクセスおよび/またはユーザのデータの集約を継続して行うことが可能となる。
[0056]1つまたは複数の検証モジュール104は、特定の実施形態では、1つまたは複数のサードパーティエンティティ108のサーバ108から1つまたは複数の他のエンティティ(例えば、サードパーティエンティティ108と系列関係にない遠隔サーバ110またはその他のハードウェアデバイス102、バックエンド検証モジュール104bなど)に、ダウンロードおよび/または集約されたユーザデータを提供するためのインターフェース(例えばアプリケーションプログラミングインターフェース(API))を提供してよい。このインターフェースは、一実施形態では、ユーザのハードウェアデバイス102の検証モジュール104aと1つまたは複数のバックエンド検証モジュール104bとの間のプライベートインターフェースを含む。例えば、これにより、データをダウンロードしたユーザのハードウェアデバイス102がオフにされたり、バッテリが切れたり、データネットワーク106に接続されていなかったりなどした場合でも、バックエンド検証モジュール104bが、ユーザに複数のチャネルなどを介して複数のロケーションにおいて、複数のハードウェアデバイス102上で、ダウンロードおよび/または集約されたユーザデータへのアクセスを提供することができるようにすることができる。別の実施形態では、インターフェースは、セキュリティ保護可能な、パブリックインターフェースおよび/またはオープンインターフェースを含み、それによってユーザは検証モジュール104から1つまたは複数の他のツール、サービス、および/または他のエンティティに、ダウンロードされたユーザのデータをそのデータを記憶、処理および/またはその他の方法で使用するために共有することができる。
[0057]様々な実施形態において、検証モジュール104は、ハードウェア、ソフトウェアまたはハードウェアとソフトウェアの何らかの組合せとして具現化することができる。一実施形態では、検証モジュール104は、ハードウェアデバイス102、バックエンドサーバ110などのプロセッサでの実行のために非一過性のコンピュータ可読記憶媒体に記憶された実行可能プログラムコードを備え得る。例えば検証モジュール104は、ハードウェアデバイス102、バックエンドサーバ110、これらのうちの1つまたは複数の組合せなどのうちの1つまたは複数において実行される実行可能プログラムコードとして具現化されてよい。このような一実施形態では、後述するように、検証モジュール104の動作を行う様々なモジュールが、ハードウェアデバイス102、バックエンドサーバ110、および/またはこの2つの組合せなどに配置されてよい。
[0058]様々な実施形態において、検証モジュール104は、バックエンドサーバ110上、ユーザのハードウェアデバイス102(例えば、ドングル、電話102またはタブレット102と無線で、および/またはUSBまたはプロプライエタリ通信ポートなどのデータポートを介して通信しているケース内の1つまたは複数の半導体集積回路デバイスを含む電話102またはタブレット102の保護ケース、または他の周辺装置)上、またはデータネットワーク106上の他の場所に設置または配備、および/またはユーザのハードウェアデバイス102と併設されることができるハードウェア機器として具現化されてよい。特定の実施形態では、検証モジュール104は、有線接続(例えばUSB接続)または無線接続(例えばBluetooth(R)、Wi-Fi(R)、近距離通信(NFC)などによって)ラップトップコンピュータ、サーバ、タブレットコンピュータ、スマートフォンなどの他のハードウェアデバイス102に接続するか、または電子ディスプレイデバイス(例えばHDMIポート、DisplayPortポート、Mini DisplayPortポート、VGAポート、DVIポートなどを使用してテレビまたはモニタ)に接続するか、またはデータネットワーク106上で実質的に独立して動作するなどの、セキュリティ保護されたハードウェアドングルまたはその他のハードウェア機器デバイス(例えばセットトップボックス、ネットワーク機器など)などのハードウェアデバイスを備え得る。検証モジュール104のハードウェア機器は、電力インターフェース、有線および/または無線ネットワークインターフェース、ディスプレイデバイスに出力するグラフィカルインターフェース(例えば1つまたは複数のディスプレイポートを備えたグラフィクスカードおよび/またはGPU)、および/または、検証モジュール104に関して本明細書に記載されている機能を実行するように構成された後述するような半導体集積回路デバイスを備え得る。
[0059]検証モジュール104は、このような実施形態では、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、FPGAまたはその他のプログラマブルロジックのためのファームウェア、マイクロコントローラ上での実行のためのマイクロコード、特殊用途向け集積回路(ASIC)、プロセッサ、プロセッサコアなど、半導体集積回路デバイス(例えば1つまたは複数のチップ、ダイ、またはその他の個別ロジックハードウェア)などを備え得る。一実施形態では、検証モジュール104は、1つまたは複数の電線または接続部を備えたプリント回路基板(例えば揮発性メモリ、不揮発性記憶媒体、ネットワークインターフェース、周辺デバイス、グラフィカル/ディスプレイインターフェース)上に実装されてよい。ハードウェア機器は、データを送受信するように構成された(例えば、プリント回路基板などの1つまたは複数の電線と通信している)1つまたは複数のピン、パッドまたはその他の電気接続部と、検証モジュール104の様々な機能を実行するように構成された1つまたは複数のハードウェア回路および/またはその他の電気回路を含んでよい。
[0060]検証モジュール104の半導体集積回路デバイスまたはその他のハードウェア機器は、特定の実施形態では、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、キャッシュなどを含み得るがこれらには限定されない1つまたは複数の揮発性メモリ媒体を備え、および/またはそのような1つまたは複数の揮発性メモリ媒体に通信可能に結合される。一実施形態では、検証モジュール104の半導体集積回路デバイスまたはその他のハードウェア機器は、NANDフラッシュメモリ、NORフラッシュメモリ、ナノランダムアクセスメモリ(ナノRAMまたはNRAM)、ナノ結晶配線ベースのメモリ、シリコン酸化物ベースのサブ10ナノメートルプロセスメモリ、グラフェンメモリ、シリコン-酸化膜-窒化膜-酸化膜-シリコン(SONOS)、抵抗変化型RAM(RRAM(登録商標))、プログラマブルメタライゼーションセル(PMC)、導電性ブリッジRAM(CBRAM)、磁気抵抗RAM(MRAM)、ダイナミックRAM(DRAM)、相変化RAM(PRAMまたはPCM)、磁気記憶媒体(例えば、ハードディスク、テープ)、光記憶媒体、などを含み得るがこれらには限定されない1つまたは複数の不揮発性メモリ媒体を備え、および/またはそのようなメモリ媒体に通信可能に結合される。
[0061]データネットワーク106は、一実施形態では、デジタル通信を送信するデジタル通信ネットワークを含む。データネットワーク106は、無線セルラネットワークなどの無線ネットワーク、Wi-Fiネットワーク、Bluetooth(R)ネットワーク、近距離無線通信(NFC)ネットワーク、アドホックネットワークなどのローカル無線ネットワーク、および/またはそれに類するものを含んでよい。データネットワーク106は、ワイドエリアネットワーク(WAN)、ストレージエリアネットワーク(SAN)、ローカルエリアネットワーク(LAN)、光ファイバネットワーク、インターネット、またはその他のデジタル通信ネットワークを含み得る。データネットワーク106は、2つ以上のネットワークを含み得る。データネットワーク106は、1つまたは複数のサーバ、ルータ、スイッチ、および/またはその他のネットワーキング設備を含み得る。また、データネットワーク106は、ハードディスクドライブ、光ドライブ、不揮発性メモリ、RAMなどの1つまたは複数のコンピュータ可読記憶媒体を含み得る。
[0062]1つまたは複数のサードパーティエンティティ108は、一実施形態では、1つまたは複数のウェブサイトをホストする1つまたは複数のウェブサーバ、企業イントラネットシステム、アプリケーションサーバ、アプリケーションプログラミングインターフェース(API)サーバ、認証サーバなどの1つまたは複数のネットワークアクセス可能なコンピューティングシステムを含んでよい。1つまたは複数のサードパーティエンティティ108は、様々な機関または組織と関係するシステムを含み得る。例えば、サードパーティエンティティ108は、ユーザに関連付けられたデータを記憶する、金融機関、大学、政府機関、公益事業会社、電子メールプロバイダ、ソーシャルメディアサイト、写真共有サイト、ビデオ共有サイト、データストレージサイト、メディカルプロバイダ、またはその他のエンティティへの電子アクセスを提供するシステムを含み得る。サードパーティエンティティ108は、ユーザが、ユーザに関連付けられたデータのアップロード、閲覧、作成、および/または変更を行うためにユーザ口座を作成することを可能にしてよい。したがって、サードパーティエンティティ108は、ユーザが、ユーザのデータにアクセスするために、ユーザ名/パスワードの組合せなどの認証情報を提供することができるウェブサイト、アプリケーション、または類似したフロントエンドのログイン要素もしくはログインページなどの許可システムを含んでよい。
[0063]一実施形態では、1つまたは複数のバックエンドサーバ110および/または、1つまたは複数のバックエンド検証モジュール104bが、ネットワーク化された一群の検証モジュール104aの中央管理を提供する。例えば、1つまたは複数のバックエンド検証モジュール104b、および/またはバックエンドサーバ110は、検証モジュール104aからのダウンロードされたユーザデータを一元的に記憶してよく、検証モジュール104aがユーザ認証情報を使用して1つまたは複数のサードパーティエンティティ108からユーザデータにアクセスするための命令を提供してよく、またはそれに類することを行ってよい。バックエンドサーバ110が、ハードウェアデバイス102および/または1つまたは複数のサードパーティエンティティ108から遠隔に配置された、1つまたは複数のサーバを含んでよい。バックエンドサーバ110が、図2および図3の検証モジュール104に関して後述するモジュールまたはサブモジュールの少なくとも一部を含んでよく、検証モジュール104のハードウェアを備えてよく、1つまたは複数の非一過性のコンピュータ可読記憶媒体に検証モジュール104の実行可能プログラムコードを記憶してよく、および/または、1つまたは複数のサードパーティエンティティから分散方式でユーザデータを集約するための本明細書に記載の検証ジュール104の様々な動作のうちの1つまたは複数の動作をその他の方法で実行してよい。
[0064]図2に、検証モジュール104の一実施形態を示す。図示されている実施形態では、検証モジュール104は認証モジュール202と、直接アクセスモジュール204と、インターフェースモジュール206とを含む。
[0065]一実施形態では、認証モジュール202は、ユーザのハードウェアデバイス102上でユーザからサードパーティエンティティ108のためのユーザの電子認証情報を受け取る。さらなる実施形態では、認証モジュール202は、直接アクセスモジュール204が、異なるユーザのためのデータをダウンロード(例えば、単一のユーザのハードウェアデバイス102から複数のユーザのためのデータをダウンロード)することができるように、暗号化および/またはその他の方法でセキュリティ保護されてよい異なるユーザの電子認証情報を(例えば、異なるハードウェアデバイス102から、バックエンド検証モジュール104からなど)受け取ってよい。
[0066]例えば、分散/非集中システム100において、1人のユーザのハードウェアデバイス102がオフにされている、スリープしている、バッテリが切れている、またはサードパーティエンティティ108によってブロックされているなどの場合、特定の実施形態では、異なるユーザのハードウェアデバイス102上および/またはバックエンドサーバ110上の検証モジュール202が、その1人のユーザの電子認証情報を使用してその1人のユーザのためにデータをダウンロードしてよく、その1人のユーザのハードウェアデバイス102にデータを送信してよく、および/または、その1人のユーザのハードウェアデバイス102にアラートおよび/またはプッシュ通知を送信するなどしてよい。このようにして、一実施形態では、ユーザ自身のハードウェアデバイス102がブロックされる、利用不能であるなどの場合であっても、ユーザはデータの集約、アラートおよび/またはプッシュ通信の受信などを継続して行うことができる。特定の実施形態では、ユーザが別のユーザの電子認証情報、ダウンロードされたデータまたはその他の個人および/または機密データを見ること、および/またはアクセスすることができないように、1つまたは複数の認証モジュール202と協力して、検証モジュール104a、104bがセキュリティ保護および/または暗号化されたプロトコルを使用して互いに通信してよく、および/または、電子認証情報をセキュリティ保護および/または暗号化された方式で記憶してよい。
[0067]検証モジュール104がハードウェア(例えば、FPGA、ASICなどの半導体集積回路デバイス)を備える実施形態では、認証モジュール202は、暗号鍵を記憶する、セキュリティ保護されていないバスまたはストレージに復号データを出力しない、セキュリティ保護された暗号プロセッサ(例えば、チップ上の専用コンピュータまたは1つまたは複数の物理的セキュリティ手段を備えたパッケージングに内蔵されたマイクロプロセッサ)、セキュリティ保護されたストレージデバイス、TPMチップおよび/またはTPMセキュリティデバイスなどのトラステッドプラットフォームモジュール(TRM)、セキュリティ保護されたブートROMまたはその他の種類のROM、認証チップなど、電子認証情報、ダウンロードされたデータおよび/または機密および/または個人データを記憶および/または処理するための専用セキュリティハードウェアを備えてよい。別の実施形態では、認証モジュール202は、専用セキュリティハードウェアを備えた、または備えていないユーザの既存ハードウェアデバイス102のソフトウェアおよび/またはハードウェアを使用して(例えばRAM、NANDおよび/またはその他の汎用ストレージ内のデータを暗号化して)、電子認証情報、ダウンロードされたデータおよび/またはその他の機密データを、セキュリティ保護および/または暗号化された方式で記憶および/または処理してよい。特定の実施形態では、認証モジュール202は、第2の(例えば異なる)ユーザのハードウェアデバイス102によって(例えば第1のユーザのハードウェアデバイス102からデータネットワーク106などを介して)受信、処理および/または記憶される第1のユーザに関連付けられたデータ(例えば電子認証情報、ダウンロードされたデータ)を暗号化および/またはセキュリティ保護してよく、それによって、異なるユーザのハードウェアデバイス102から第1のユーザのデータがダウンロードおよび/または集約されることをそのまま可能にしつつ第2のユーザが第1のユーザのデータにアクセスするのを防止してよい。
[0068]一実施形態では、上述のように、電子認証情報は認証モジュール202がそれによってユーザの身元および/または許可を認証および/または有効性検証することができる、ユーザ名とパスワード、指紋スキャン、網膜スキャン、デジタル証明書、個人識別番号(PIN)、チャレンジ応答、セキュリティトークン、ハードウェアトークン、ソフトウェアトークン、DNAシーケンス、署名、顔認識、音声パターン認識、生体電気信号、二要素認証の認証情報、またはその他の情報のうちの1つまたは複数を備えてよい。
[0069]認証モジュール202は、特定の実施形態では、検証モジュール104が複数の異なるサードパーティエンティティ108からユーザのデータのダウンロード、集約および/または組み合わせを行うことができるように、異なるサードパーティエンティティ108(例えば異なるソーシャルネットワーク、異なる写真共有サイト、異なる金融機関)についてユーザの異なる口座のために、ユーザから異なる認証情報を受け取ってよい。一実施形態では、図3のパスワードマネージャモジュール306に関して後述するように、認証モジュール202は、ユーザから1つまたは複数のパスワードまたはその他の電子認証情報を受け取る代わりに、および/またはそれに加えて、1つまたは複数のサードパーティエンティティ108のためのユーザの1つまたは複数のパスワードまたはその他の電子認証情報の管理および/または決定を行ってもよい。例えば、特定の実施形態では、認証モジュール202は、サードパーティエンティティ108についてのユーザの口座のための電子認証情報(例えばユーザ名およびパスワード)の初期セットをユーザから受け取ってよく、認証モジュール202は、認証モジュール202によって決定された新しいパスワードを設定すべくサードパーティエンティティ108についてのユーザの口座にアクセスするために、電子認証情報のその初期セットを使用してよい。認証モジュール202は、一実施形態では、ユーザによって典型的に作成される、および/またはユーザが記憶しやすいパスワードまたはその他の電子認証情報よりもより安全な(例えば、より長いか、より多くの数字であるか、または大文字と小文字のバリエーションがより大きいか、より頻繁に変更されるなど)パスワードまたはその他の電子認証情報を決定してよい。
[0070]一実施形態では、直接アクセスモジュール204は、認証モジュール202からの(ハードウェアデバイス102に関連付けられたユーザのため、または異なるユーザのためなどの)ユーザの電子認証情報を使用して、ユーザのハードウェアデバイス102から、および/またはバックエンドサーバ110から1つまたは複数のサードパーティエンティティ108の1つまたは複数のサーバ108にアクセスする。直接アクセスモジュール204は、特定の実施形態では、ユーザのハードウェアデバイス102に直接データをダウンロードする代わりに、またはそれに加えて、(例えば、ユーザのハードウェアデバイス102の利用可能性に基づいて、またはデータを第2のロケーションでバックアップするためなど)1つまたは複数のサードパーティエンティティ108の1つまたは複数のサーバ108からユーザの(例えば、ダウンロードされたデータに関連付けられたユーザの、または処理のため、および/またはダウンロードされたデータに関連付けられたユーザのハードウェアデバイス102への転送のために異なるユーザなどの)ハードウェアデバイス102に、および/または直接アクセスモジュール204に関連付けられたバックエンドサーバ110に、ユーザに関連付けられたデータ(例えばユーザのソーシャルメディア書き込み、ユーザの写真、ユーザの金融トランザクションなど)をダウンロードする。
[0071]直接アクセスモジュール204は、特定の実施形態では、ユーザの電子認証情報を使用してサーバ108にアクセスために、および/またはユーザに関連付けられたデータをダウンロードするために、サードパーティエンティティ108のサーバ108のウェブページインターフェースを使用してよい。例えば、特定の実施形態では、直接アクセスモジュール204は、ユーザに関連付けられたサーバ108上のデータへの許可されたアクセスを得るために、サードパーティエンティティ108のサーバ108からウェブページをダウンロード/ロードし、ユーザのユーザ名とパスワードまたはその他の電子認証情報をウェブページ上のフォーム内のテキストボックスに入力し、ウェブページのサブミットボタンまたはその他のインターフェース要素を使用してユーザ名とパスワードまたはその他の電子認証情報をサブミットし、および/またはその他の方法でウェブサイトを使用して電子認証情報をサブミットしてよい。後述するように、パターンモジュール308は、直接アクセスモジュール204がサーバ108にアクセスすることができるようにする命令(例えば電子認証情報をサブミットするためのロケーションまたは方法など)を受信および/または提供してよい。
[0072]ユーザの電子認証情報を用いて、サードパーティエンティティ108のサーバ108に対して認証を行うことに成功し、アクセスすることに応答して、直接アクセスモジュール204は、サーバ108から、ユーザに関連付けられたデータを(例えばユーザの口座などから)ユーザに関連付けられたハードウェアデバイス102に、またはバックエンドサーバ110に、またはユーザの代理としてデータをダウンロードする別のユーザのハードウェアデバイス102などにダウンロードしてよい。後述するように、特定の実施形態では、パターンモジュール308は、直接アクセスモジュール204がサードパーティエンティティ108のサーバ108からユーザに関連付けられたデータをダウンロードすることができるようにする命令(例えば、データのロケーションへのURLまたはその他のリンク、1つまたは複数のウェブページまたはその他のデータ構造内などでのデータを探索するためのラベルまたはその他の識別子)を受信および/または提供してよい。直接アクセスモジュール204は、特定の実施形態では、ユーザに関連付けられたデータの探索、ダウンロードおよび/または抽出などを行うべく、エントリロケーションを探索するため、および/または電子認証情報をサブミットするために1つまたは複数のウェブページの構文解析し、スクリーンスクレイピング方式でサーバ108からの1つまたは複数のウェブページからのデータの認証および/またはアクセスを行うように、パターンモジュール308からの命令に従ってよい。
[0073]一実施形態では、直接アクセスモジュール204は、サードパーティエンティティ108のサーバ108のAPIまたはその他のアクセスプロトコルを使用して、電子認証情報を送信またはその他の方法でのサブミット、および/または、データの受信またはその他の方法でのデータのダウンロードを行う。例えば、直接アクセスモジュール204は、サードパーティエンティティ108のサーバ108(例えばAPIサーバ108)によって指定された形式および/またはサーバ108に適合する形式で要求を送信してよい。送信される要求は、ユーザの電子認証情報またはその一部(例えばユーザ名および/またはパスワード)を含んでよく、(例えば、サーバ108から最初の要求の肯定応答を受け取ることに応答するなど)後続の要求がユーザの電子認証情報またはその一部を含んでよく、および/または、直接アクセスモジュール204はサーバ108の異なるアクセスプロトコルを使用してよい。
[0074]直接アクセスモジュール204からのデータの要求に応答して(例えば、直接アクセスモジュール204がサーバ108のアクセスプロトコルを使用してユーザを認証することに応答して)、サードパーティエンティティ108のサーバ108がユーザに関連付けられたデータの送信および/または返送を(例えば、1つまたは複数のメッセージ、パケット、ペイロードで、直接アクセスモジュール204がデータを取り出すことができるロケーションのURLまたはその他のポインタなどとして)行ってよい。直接アクセスモジュール204は、様々な実施形態において、データネットワーク106を介してサードパーティエンティティ108のサーバ108から、ユーザに関連付けられたデータを直接受け取ってよく、または、サードパーティエンティティ108のサーバ108から、ユーザに関連付けられたデータのロケーションへのポインタ、URLまたはその他のリンクを受け取ってよく、または(例えばサードパーティエンティティ108のサーバ108から他のエンティティへの要求に応答してなど)データネットワーク106上の別のエンティティから、ユーザに関連付けられたデータを受け取ってよく、またはサードパーティエンティティ108のアクセスプロトコルに従ってユーザに関連付けられたデータをその他の方法で受け取ってよい。
[0075]一実施形態では、サードパーティエンティティ108が、直接アクセスモジュール204にAPIまたはその他のアクセスプロトコルを提供する。さらなる実施形態では、直接アクセスモジュール204が、サードパーティエンティティ108のアプリケーション(例えばモバイルアプリケーション)のためのラッパおよび/またはプラグインまたは拡張機能の役割を果たしてよく、アプリケーションがサードパーティエンティティ108のAPIまたはその他のアクセスプロトコルにアクセス可能であってよい。別の実施形態では、直接アクセスモジュール204は、サードパーティエンティティ108のアプリケーションの観察などにより、サードパーティエンティティ108のアプリケーション(例えばモバイルアプリケーション)と同様にしてAPIまたはその他のアクセスプロトコルを使用するように構成されてよい。特定の実施形態では、直接アクセスモジュール204は、ユーザに関連付けられたデータにアクセスするために(例えば、アプリケーションおよび/またはユーザによってすでにダウンロードされているデータへのアクセス、アプリケーションおよび/またはウェブブラウザのデータベースまたはその他のデータストアへのアクセス、ユーザがウェブページにアクセスしている際のサードパーティエンティティ108のウェブページのスキャンおよび/またはスクリーンスクレイピングなど)、サードパーティエンティティ108のアプリケーション、またはユーザがサードパーティエンティティ108のサービスにアクセスするために使用するウェブブラウザなどと協働してよい。
[0076]直接アクセスモジュール204は、特定の実施形態では、異なるサードパーティエンティティ108に異なる方式でアクセスしてよい。例えば、第1のサードパーティエンティティ108が直接アクセスモジュール204にAPIまたはその他のアクセスプロトコルへのアクセスを許諾してよく、一方、直接アクセスモジュール204は、サードパーティエンティティ108からのデータへのアクセスまたはダウンロードなどを行うために、ウェブページインターフェース(例えばスクリーンスクレイピング)を使用してよい。一実施形態では、遠隔バックエンドサーバ110が、ファーストパーティサービスプロバイダ110(例えば、検証モジュール104のベンダおよび/またはプロバイダ)に関連付けられてよく、直接アクセスモジュール204がファーストパーティサービスプロバイダ110からと、1つまたは複数のサードパーティエンティティ108の両方から、ユーザに関連付けられたデータをダウンロードしてよく、ユーザが単一のインターフェースおよび/またはアプリケーションでデータにアクセスすることができるようにデータを集約してよい。例えば、インターフェースモジュール206に関して後述するように、インターフェースモジュール206は、単一の写真アプリケーション内で複数のサードパーティクラウドストレージプロバイダ108からのユーザの写真へのユーザアクセスを提供してよく、ユーザに単一の個人金融管理アプリケーションおよび/またはオンラインバンキングアプリケーション内でユーザの個人金融情報へのアクセスを提供してよく、ユーザに単一のソーシャルネットワーキングアプリケーション内で複数のソーシャルネットワークからの書き込みへのアクセスを提供するなどしてよい。
[0077]直接アクセスモジュール204は、特定の実施形態では、1つまたは複数のサードパーティエンティティ108から独立してダウンロードおよび/または集約されたデータを記憶してよい。例えば、直接アクセスモジュール204は、ユーザのダウンロードおよび/または集約されたデータをユーザのハードウェアデバイス102上、またはユーザによるアクセスが可能なバックエンドサーバ110上などに記憶してよい。このようにして、特定の実施形態では、サードパーティエンティティ108が閉鎖し、または利用できない場合であっても、ユーザはユーザのデータをコントロールおよび/またはアクセスすることができ、使用がサードパーティエンティティ108によってサポートされていないなどの場合であっても、ユーザはユーザが望む任意の方式でユーザのデータを使用することができる。
[0078]直接アクセスモジュール204は、一実施形態では、1つまたは複数のサードパーティエンティティ108からデータをダウンロードすることに加えて、および/またはそれに代えて、ユーザ入力などに応答して1つまたは複数のサードパーティエンティティ108にデータのアップロード、および/または1つまたは複数のサードパーティエンティティ108の1つまたは複数の設定の変更を行ってよい。例えば、データが写真を含む実施形態では、直接アクセスモジュール204はユーザのハードウェアデバイス102から1つまたは複数のサードパーティエンティティ110に写真(例えばユーザがハードウェアデバイス102上で編集したダウンロード写真など)をアップロードしてよい。データがソーシャルメディア書き込みまたはその他の内容を含む実施形態では、直接アクセスモジュール204は、ユーザから入力(例えば写真、テキスト書き込み、1つまたは複数の絵文字、ビデオ、文書ファイルまたはその他のファイルなど)を受け取ってよく、受け取った入力を1つまたは複数のサードパーティエンティティ108(例えばソーシャルメディアサイトなど)にアップロードしてよい。データが金融トランザクションまたはその他の金融データを含む実施形態では、直接アクセスモジュール204は、請求書支払いもしくはその他の支払いまたは資金振替をスケジュールすること、小切手を遠隔で(例えば小切手の表および/または裏の写真をアップロードするなどして)デポジットすること、および/または他のアクションを行ってよい。
[0079]直接アクセスモジュール204は、口座の種類または口座のプラン、口座に関連付けられたクレジットカードまたはその他の支払情報、口座に関連付けられた電話番号もしくは住所またはその他の連絡先情報、口座のパスワードまたはその他の電子認証情報、および/またはサードパーティエンティティ108のためのその他のユーザの口座情報など、サードパーティエンティティ108についてのユーザの口座情報を更新または変更してよい。直接アクセスモジュール204は、データをダウンロードするために本明細書に記載の方式と実質的に同様にしてデータの更新および/またはアップロード(例えば、サードパーティエンティティ108のためのユーザの電子認証情報の決定、サードパーティエンティティ108のサーバ108へのアクセス、サードパーティエンティティ108へのデータのアップロードおよび/または提供など)を行ってよい。
[0080]一実施形態では、インターフェースモジュール206が、直接アクセスモジュール204によってダウンロードされたユーザのデータを、ユーザの(例えばダウンロードされたデータに関連付けられたユーザまたは異なるユーザの)ハードウェアデバイス102から、(例えば異なるユーザのハードウェアデバイス102によってユーザの1つのハードウェアデバイス102から同じユーザの別のハードウェアデバイス102にデータがダウンロードされたことに応答して)ダウンロードされたデータに関連付けられたユーザのハードウェアデバイス102、または、データがそこからダウンロードされたサードパーティエンティティ108の系列ではない(例えば所有、運営、制御などが行われていない)遠隔サーバ110またはその他の遠隔デバイス102などの別のエンティティに提供する。例えば、インターフェースモジュール206は、ユーザのダウンロードおよび/または集約されたデータをユーザのハードウェアデバイス102に、またはバックエンド検証モジュール104bに、またはバックエンドサーバ110に、または異なるサードパーティエンティティ108に、またはそのユーザの異なる/第2のハードウェアデバイス102などに提供するために、APIまたはその他のインターフェースを提供してよい。
[0081]特定の実施形態では、どのハードウェアデバイス102、110がユーザに関連付けられたデータをダウンロードしたかが、ユーザにとってトランスペアレントおよび/または実質的にトランスペアレント(例えばわからない)とすることができる。例えば、インターフェースモジュール206は、ユーザに関連付けられたダウンロードされたデータを、そのユーザの1つのハードウェアデバイス102からそのユーザの別のハードウェアデバイス102に、または、ユーザのハードウェアデバイス102から(例えば、ユーザがそこからウェブブラウザ、アプリケーションなどを使用してデータにアクセスすることができる)バックエンドサーバ110に、またはバックエンドサーバ110からユーザのハードウェアデバイス102に提供するなどしてよく、それによってユーザが、データがダウンロードされた先のロケーションとは異なるロケーションからデータにアクセスすることができるようにしてよい。
[0082]特定の実施形態では、インターフェースモジュール206は、ユーザのハードウェアデバイス102上でグラフィカルインターフェース(GUI)を提供し、ユーザに関連付けられたダウンロードされたデータをそのGUIを介してユーザに提供する(例えば、それによって、ユーザがデータを直接閲覧することができるようにし、そのデータに基づいてユーザに1つまたは複数の通知および/または推奨を提供し、そのデータに基づいてユーザに1つまたは複数のテーブルまたはチャートを提供し、そのデータに関連する1つまたは複数の統計の要約を提供するなどを行う)。インターフェースモジュール206は、様々な実施形態において、データがダウンロードされた同じハードウェアデバイス102から、データがダウンロードされたハードウェアデバイス102、110とは異なるハードウェアデバイス102上などで、ユーザにGUIを提供してよい。
[0083]例えば、ユーザに関連付けられたデータが写真を含む一実施形態では、インターフェースモジュール206は、ユーザがユーザのダウンロードおよび/または集約された写真を閲覧および/または他の方法でアクセスすることができる、写真管理インターフェース、写真編集インターフェースなどを提供してよい。ユーザに関連付けられたデータがユーザの金融トランザクション履歴(例えば、銀行、信用組合、ローン会社などの1つまたは複数の金融機関108からダウンロードされた購入および/またはその他の金融トランザクション)を含む他の実施形態では、インターフェースモジュール206は、個人金融管理インターフェースを、トランザクションのリスト、1つまたは複数の予算、1つまたは複数の金融目標、債務管理インターフェース、純資産インターフェース、および/または、ユーザがユーザのダウンロードおよび/または集約された金融トランザクション履歴および/またはそれに基づくアラートまたは推奨を閲覧することができる別の個人金融管理インターフェースとともに提供してよい。ユーザに関連付けられたデータがソーシャルメディア書き込みを含む別の実施形態では、インターフェースモジュール206は、ユーザが閲覧するためにソーシャルメディア書き込み(例えば、複数のソーシャルネットワーク108から、またはユーザの様々な連絡先または友人などからダウンロードおよび/または集約されたソーシャルメディア書き込み)のストリーム、フィードおよびまたはウォールを備えるGUIなどを提供してよい。
[0084]インターフェースモジュール206は、特定の実施形態では、1つまたは複数のアクセスコントロールをユーザに提供してよく、それによってユーザがどのデバイス102、ユーザ、サードパーティエンティティ110などがどのデータにアクセス可能であるかを定義することができるようにしてよい。例えば、インターフェースモジュール206は、ユーザが特定のモバイルアプリケーション、サードパーティサービスのための特定のAPI、特定のプラグインまたは拡張機能、特定のユーザ、特定のハードウェアデバイス102、および/または1つまたは複数の他のエンティティが、1つまたは複数のサードパーティエンティティ108からそのユーザのためにダウンロードされたデータにアクセスすることを(例えば、サードパーティエンティティ108またはその他のデータソース別、データタイプ別、アクセスを要求するエンティティ別、および/またはその他の詳細度によるアクセスコントロールを使用して)許可および/または制限するためのインターフェースを提供してよい。このようにして、検証モジュール104は、特定の実施形態では、集約されたデータのローカルリポジトリを備えることができ、そのリポジトリに1つまたは複数の他のデバイス102および/またはサービスがユーザの許可によりアクセスし、使用することができる。
[0085]図3に、検証モジュール104の別の実施形態を示す。図示されている実施形態では、検証モジュール104は、認証モジュール202と、直接アクセスモジュール204と、インターフェースモジュール206とを含み、さらに、ルートモジュール314と、頻度モジュール316と、試験モジュール318とを含む。認証モジュール202は、図示されている実施形態では、ローカル認証モジュール302と、ネットワーク認証モジュール304と、パスワードマネージャモジュール306とを含む。直接アクセスモジュール204は、図示されている実施形態では、パターンモジュール308と、アクセス修復モジュール310と、階層モジュール312とを含む。
[0086]一実施形態では、ローカル認証モジュール302は、ユーザのハードウェアデバイス102に転送される、および/またはユーザのハードウェアデバイス102から転送されるなどする、ユーザのハードウェアデバイス102上のダウンロードされたデータ、記憶されたパスワードおよび/またはその他のデータへのユーザのアクセスをセキュリティ保護および/または認証する。例えば、ローカル認証モジュール302は、ハードウェアデバイス102へのアクセスを得るためにユーザによって使用される、PIN、パスワード、指紋認証、顔認証、またはその他の電子認証情報などの、ユーザのハードウェアデバイス102の1つまたは複数のセキュリティシステムおよび/または認証システムと協働してよい。さらなる実施形態では、ローカル認証モジュール302は、インターフェースモジュール206がダウンロード/集約されたデータおよび/またはアラートまたはその他のメッセージへのアクセスをユーザに提供することができるようにする前に、ユーザを認証してよい。例えば、ローカル認証モジュール302は、ユーザのために検証モジュール104に関連付けられた電子認証情報の管理および/またはアクセスを行ってよく、ユーザが検証モジュール104のアプリケーションおよび/またはサービスにアクセスすることに応答して、ユーザを認証してよい。
[0087]特定の実施形態では、ローカル認証モジュール302は、ユーザが異なるユーザに関連付けられたデータにアクセスすることができないが、そのデータがその異なるユーザのハードウェアデバイス102またはバックエンドサーバ110などに送信された後はその異なるユーザがそのデータにアクセスすることができるように、ユーザのハードウェアデバイス102上で、異なるユーザに関連付けられた電子認証情報および/またはダウンロードされたデータを暗号化および/またはその他の方法でセキュリティ保護してよい。異なるハードウェアデバイス102、110のローカル認証モジュール302は、データネットワーク106を介して1つのハードウェアデバイス102、110から別のハードウェアデバイス102、110にデータ(例えば1つまたは複数の電子認証情報、ダウンロードされたデータなど)をセキュアに転送するために協働してよい。さらなる実施形態では、ローカル認証モジュール302は、ユーザの電子認証情報および/またはダウンロードされたデータが単一のハードウェアデバイス102上で、セキュリティ保護されたリポジトリなどに確実に留まるように(例えばデータネットワーク106で送信されないように)し、バックエンドサーバ110、別のユーザのハードウェアデバイス102などに記憶および/またはアクセス可能とならないようにしてよい。
[0088]一実施形態では、ネットワーク認証モジュール304は、ユーザのハードウェアデバイス102上、バックエンドサーバ110上などで、1つまたは複数のサードパーティエンティティ108のためのユーザの電子認証情報を受け取ること、および/または記憶することを行う。ネットワーク認証モジュール304は、様々な実施形態において、ユーザから、またはユーザのハードウェアデバイス102から、またはバックエンドサーバ110などから、ユーザの電子認証情報を受け取ってよい。ネットワーク認証モジュール304は、ユーザの電子認証情報をサードパーティエンティティ108のサーバ108に提供するために直接アクセスモジュール204と協働してよい(例えば、ネットワーク認証モジュール304が、サーバ108に提供するために直接アクセスモジュール204に電子認証情報を提供してよく、ネットワーク認証モジュール304が電子認証情報をサーバ108に直接提供するなどしてよい)。
[0089]ネットワーク認証モジュール304は、特定の実施形態では、ユーザの電子認証情報がサードパーティエンティティ108のサーバ108などに提供される一方で、ユーザのハードウェアデバイス102上で、データネットワーク106上で、異なるユーザのハードウェアデバイス102上で、バックエンドサーバ110上で、1つまたは複数のサードパーティエンティティ108のためのユーザの電子認証情報を暗号化および/またはその他の方法でセキュリティ保護するために、ローカル認証モジュール302と協働してよい。さらなる実施形態では、ネットワーク認証モジュール304は、ユーザの電子認証情報が確実にユーザのハードウェアデバイス102上にのみ記憶され、ユーザのハードウェアデバイス102からサードパーティエンティティ108のサーバ108に送信されるようにし、ユーザの電子認証情報をバックエンドサーバ110上、異なるユーザのハードウェアデバイス102上などには記憶しない。別の実施形態では、ネットワーク認証モジュール304は、ルートモジュール314に関連して後述するように、ユーザのハードウェアデバイス102が利用不能である、ブロックされているなどであっても、直接アクセスモジュール204がユーザに関連付けられたデータのアクセスおよび/またはダウンロードを行うことができるように、サードパーティエンティティ108のためのユーザの電子認証情報を、バックエンドサーバ110上、異なるユーザのハードウェアデバイス102上などに、(例えば安全な暗号化を使用して)セキュアに記憶してよい。特定の実施形態では、ユーザがセキュリティのレベルなどを決定することができるように、ネットワーク認証モジュール304および/またはローカル認証モジュール302が電子認証情報が異なるユーザのハードウェアデバイス102、またはバックエンドサーバ110などによって送信および/または記憶されることを可能にするか否かは、ユーザ入力に基づいて定義された設定に基づくことができる。
[0090]一実施形態では、パスワードマネージャモジュール306は、直接アクセスモジュール204が複数のサードパーティエンティティ108のそれぞれから、ユーザに関連付けられたデータのアクセスおよび/またはダウンロードを行うことができるように、複数のサードパーティエンティティ108のためのユーザの電子認証情報を管理および/または記憶してよい。パスワードマネージャモジュール306は、特定の実施形態では、複数のサードパーティエンティティ108のそれぞれのための異なるセキュリティ保護された認証情報を生成および/またはその他の方法で管理してよい。
[0091]パスワードマネージャモジュール306は、一実施形態では、生成された電子認証情報をユーザが覚えておき、入力する必要がないように、生成されたユーザの認証情報をセキュアにユーザのハードウェアデバイス102上に記憶してよい。例えば、直接アクセスモジュール204が生成された電子認証情報を使用してサードパーティエンティティ108にアクセスすることを可能にすることに加えて、パスワードマネージャモジュール306は、ユーザがウェブブラウザにおいてウェブページを訪れることなどに応答して、ユーザが電子認証情報を手動で入力しなくても、ウェブページ上のフォームの1つまたは複数のインターフェース要素にユーザの電子認証情報(例えばユーザ名、パスワード)を自動的に入力してよい。パスワードマネージャモジュール306は、特定の実施形態では、ユーザの電子認証情報を、毎週、毎月、2ヶ月ごと、3ヶ月ごと、4ヶ月ごと、5ヶ月ごと、6ヶ月ごと、毎年、2年ごと、ユーザ要求に応答、サードパーティエンティティ108からの要求に応答、および/またはその他の期間ごとまたは別の周期的トリガに応答してなど、定期的に更新してよい(例えば、異なるパスワードなどの異なる認証情報を再生成し、サードパーティエンティティ108に対するユーザの口座を再生成された異なる認証情報で更新してよい)。
[0092]パスワードマネージャモジュール306は、一実施形態では、(例えば、ユーザによって提供されるか、またはパスワードマネージャモジュール306によって生成されるなどした)ユーザの電子認証情報を、ユーザの異なるハードウェアデバイス102、ウェブブラウザなどにわたって同期させてよい。例えば、パスワードマネージャモジュール306および/またはユーザが電子認証情報を更新またはその他の方法で変更したのに応答して、パスワードマネージャモジュール306は、その更新/変更をユーザの異なるハードウェアデバイス102上などの1つまたは複数の他のパスワードマネージャモジュール306に伝播させてもよい。
[0093]一実施形態では、パターンモジュール308は、直接アクセスモジュール204がサーバにアクセスするためのサードパーティエンティティ108の1つまたは複数のサーバ108上の複数のロケーション(例えばユーザのデータが記憶され、および/またはアクセス可能なロケーション以外のロケーションを含んでよい)、直接アクセスモジュール204がサーバ108上のロケーションにアクセスする合間に待つ1つまたは複数の遅延、および/または、サーバのデータにアクセスするためのアクセスパターンのその他の構成要素の、順序付けられたリスト(例えばパターン、スクリプトなど)を決定する。特定の実施形態では、ロケーションは、ウェブページ、ウェブページの一部、画像ファイルまたはその他のデータファイル、データベースまたはその他のデータストア、モバイルアプリケーションのページまたはセクションなど、サードパーティエンティティ108の1つまたは複数のサーバなどによって提供される、独立してアドレス可能および/またはアクセス可能なコンテンツおよび/または資産を含む。パターンモジュール308は、一実施形態では、所望のデータをダウンロードするために直接アクセスモジュール204がアクセスする必要も使用する必要もない1つまたは複数のロケーションおよび/または遅延を含むパターン/順序付けられたリストを決定するが、その代わりに、このパターン/順序付けられたリストは、直接アクセスモジュール204がサードパーティエンティティ108のサーバにアクセスすることと、ユーザがサードパーティエンティティのサーバにアクセスすることとをサードパーティエンティティ108が区別するのを困難または不可能にすることができる。
[0094]パターンモジュール308は、一実施形態では、ウェブブラウザ、モバイルアプリケーションなどを使用してサードパーティエンティティ108にアクセスする複数のユーザの挙動において特定されるかまたはそのような挙動に基づく平均的パターンまたは組み合わされたパターンに基づいて、複数のロケーションおよび/または1つまたは複数の遅延(例えばパターン/順序付けられたリスト)を決定および/または選択してよい。パターンモジュール308は、一実施形態では、1人または複数のユーザがサードパーティエンティティ108のサーバにアクセスするときに、(例えば所定期間など)その1人または複数のユーザを監視してよく、それによって、どのリンク、データ、ウェブページおよび/またはその他のロケーションにその1人または複数のユーザがアクセスするか、その1人または複数のユーザが異なるロケーションにどれだけの時間アクセスするか、その1人または複数のユーザがロケーションにアクセスする順序などを追跡してよい。特定の実施形態では、直接アクセスモジュール204がサードパーティエンティティ108のサーバにアクセスするために使用するより現実的なアクセスパターンを提供するために、1人または複数の監視されているユーザは、ユーザのアクセスを一時的または永続的に監視する許可をパターンモジュール308に与えたボランティアであってもよい。
[0095]他の実施形態では、パターンモジュール308は、ユーザのハードウェアデバイス102のウェブブラウザ、モバイルアプリケーションまたはデスクトップアプリケーション、またはその他のインターフェースを使用してサードパーティサービスにアクセスする、パターンモジュール308が配置されているハードウェアデバイス102に関連付けられたユーザの挙動において特定されたパターンに基づいて、複数のロケーション、および/または異なるロケーションにアクセスする合間の1つまたは複数の遅延を決定および/または選択する。例えば、パターンモジュール308は、ユーザのハードウェアデバイス102のネットワークハードウェア(例えば、データおよび/またはサードパーティエンティティ108のサーバとの対話を監視するためにデータネットワーク106と通信しているネットワークアクセスカードおよび/またはチップ、プロセッサ、FPGA、ASICなど)、ウェブブラウザプラグインまたは拡張機能、ユーザのハードウェアデバイス102のプロセッサ上で実行されるモバイルアプリケーションおよび/またはデスクトップアプリケーションなどを備えてよい。パターンモジュール308は、ユーザのハードウェアデバイス102からの1つまたは複数のサードパーティエンティティ108の1つまたは複数のサーバに関して、ユーザの活動を監視するために、ユーザに許可を要求し、受け取ってよい。
[0096]パターンモジュール308は、特定の実施形態では、1人または複数のユーザのアクセスパターンなどの検出された変化に基づいて、パターン/順序付けられたリストを経時的に更新してよい。一実施形態では、パターンモジュール308は、サードパーティエンティティ108のサーバ108および/またはユーザに関連付けられたデータが壊れていることおよび/またはアクセス不能になったことに応答して、パターン/順序付けられたリストを更新するために、後述するアクセス修復モジュール310と連係/およびまたは協働してよい。
[0097]一実施形態では、アクセス修復モジュール310は、サードパーティエンティティ108のサーバ108へのアクセス、および/またはユーザに関連付けられたデータが壊れていることおよび/またはアクセス不能になっていることを検出する。アクセス修復モジュール310は、特定の実施形態では、ユーザがユーザの電子認証情報の入力ロケーション、ユーザに関連付けられたデータのロケーションなどをグラフィックで特定することができるようにするインターフェースをユーザに提供する。例えば、アクセス修復モジュール310は、エンドユーザが電子認証情報の入力ロケーション、電子認証情報をサブミットするためのアクション、データのロケーションなどを特定することができるようにするGUI、コマンドラインインターフェース(CLI)、API、および/または他のインターフェースを提供してよい。アクセス修復モジュール310は、一実施形態では、ユーザのハードウェアデバイス102上でユーザにインターフェースを提供する。
[0098]特定の実施形態では、例えば、アクセス修復モジュール310は、図5Aおよび図5Bに関連して以下で詳述するように、ユーザのハードウェアデバイス102の電子ディスプレイ画面上でサードパーティエンティティ108のウェブサイトの1つまたは複数のページの上にインターフェースを重ねてもよい。アクセス修復モジュール310は、複数のユーザに1つまたは複数のインターフェース(例えば、GUI、CLI、API、オーバレイなど)を提供してよく、それによって複数のユーザが(例えば、異なるハードウェアデバイス102などからネットワーク106を介して分散および/または非集中方式で)サードパーティエンティティ108のサーバへのアクセスのための修復および/または更新を定義することができるようにする。
[0099]アクセス修復モジュール310は、特定の実施形態では、ユーザのために、(例えば、基本インターフェース、標準インターフェース、初歩ユーザインターフェースなどで)ユーザが確認または変更/修正することができる1つまたは複数の示唆504および/または推奨504を決定および/または表示してよい。例えば、アクセス修復モジュール310は、ユーザが、ユーザ名を入力するための示唆されたロケーション、ユーザがパスワードを入力するための示唆されたロケーション、示唆された認証情報サブミットアクション、ユーザに関連付けられたデータの示唆されたロケーションを備えた1つまたは複数のインターフェース要素、および/または、ユーザがサードパーティエンティティ108のウェブサイト内の1つまたは複数のロケーションをグラフィックで特定することができるようにする1つまたは複数の他のインターフェース要素を表示してよい。
[0100]アクセス修復モジュール310は、特定の実施形態では、ユーザの電子認証情報の入力ロケーション、ユーザの電子認証情報をサブミットするためのアクション、ユーザに関連付けられたデータのロケーションなどの推定および/または予測を決定するために、サーバ108上の1つまたは複数のページおよび/またはその他のロケーション(例えば1つまたは複数のウェブサイト、ウェブアプリなど)を処理する。一実施形態では、アクセス修復モジュール310は、(例えば、ウェブサイトの1つまたは複数のページをスキャンおよび/または構文解析することによって、ウェブサイトの1つまたは複数のページにアクセスする他のユーザからの入力に基づいて、ウェブサイトの1つまたは複数のページとのユーザの以前の対話に基づいて、ウェブサイトの機械学習および/または人工知能解析を使用して行った予測に基づいて、ウェブサイトの1つまたは複数のページおよび/または1つまたは複数の類似のウェブサイトの1つまたは複数のページに加えられた過去の変更の統計分析に基づくなどして)1つまたは複数のロケーションおよび/またはアクションを推定してよい。アクセス修復モジュール310は、ユーザがインターフェースを使用して推定および/または予測が正しいか否かを確定することができるように、ユーザの電子認証情報の入力ロケーション、ユーザに関連付けられたデータのロケーションなどの確認および/または予測をユーザに対してインターフェースで表示してよい。
[0101]アクセス修復モジュール310は、ロケーションを指す矢印またはその他のポインタ、ロケーションのリンクまたはその他の識別子、ロケーションを囲むボックスまたはその他の強調表示、テキストを太字、イタリックおよび/または下線付きにするようにロケーションのテキスト標識を変更するなどにより、1つまたは複数の推定されたロケーションおよび/またはアクションを示してもよい。ユーザは、特定の実施形態では、アクセス修復モジュール310によって示唆されたロケーションを確認するかまたは変更/修正するために、ロケーションをクリック、選択またはその他の方法で特定することができる。例えば、ユーザは、ロケーションおよび/またはアクションに関連付けられたインターフェース要素をクリックまたはその他の方法で選択することができ、ロケーションをクリックまたはその他の方法で選択し、および/またはアクションを実行することができ、それをアクセス修復モジュール310が記録してよい(例えば、ロケーションおよび/またはアクションを特定するテキストフィールドに自動的に入力すること、異なるユーザのためにアクションがユーザなしに自動的に繰り返されることができるようにするマクロを記録することなど)。
[0102]特定の実施形態では、標準インターフェース、基本インターフェースまたは初歩ユーザインターフェースに代えて、またはそれに加えて、アクセス修復モジュール310は、経験を積んだユーザなどのためにウェブサイトのソースコードおよび/またはウェブサイトのその他の詳細を備えた高度なインターフェースを提供してもよい。例えば、一実施形態では、高度なアクセス修復インターフェースは、1人または複数の上級ユーザが、ウェブサイト自体では見えないおよび/または容易にはわからない場合があるウェブサイトのソースコード内で1つまたは複数のロケーションおよび/またはアクションを特定することができるようにしてもよい。特定の実施形態では、アクセス修復モジュール310は、ユーザが、標準ユーザインターフェースまたはビューと、高度なユーザインターフェースまたはビューとの間で選択および/または切り換えを行うことができるようにするユーザインターフェース要素を提供してよい。
[0103]一実施形態では、試験モジュール318が、ユーザから受け取った1つまたは複数のロケーションおよび/または命令が正確であるか否か(例えば、サードパーティエンティティ108のサーバからデータにアクセスするために使用可能であるか)を検証するために、アクセス修復モジュール310と協働する。試験モジュール318は、特定の実施形態では、複数の異なるユーザの電子認証情報などを使用して、アクセス修復モジュール310が単一のユーザから受け取った識別情報に基づいて、複数の異なるユーザ(例えばサンプルグループまたは試験セット)のために、サードパーティエンティティ108のサーバ108にアクセスを試みる。
[0104]試験モジュール318は、特定の実施形態では、それらの異なるユーザ(例えばサンプルグループまたは試験セット)に関連付けられたデータが、その単一のユーザからの識別情報を使用してアクセス可能であるか否かを決定する。試験モジュール318は、(例えば、複数の異なるハードウェアデバイス102上で、およびデータネットワーク106を介して単一のハードウェアデバイス102上の試験モジュール318に送信されるか、またはデータネットワーク106を介して異なるハードウェアデバイス102上の複数の試験モジュール318に送信されるか、または中央バックエンドサーバ110上の試験モジュール318に送信されるなどして)アクセス修復モジュール310が異なるユーザから受け取った識別情報を使用してサードパーティエンティティ108からデータへのアクセスを繰り返し試みてもよい。
[0105]試験モジュール318は、一実施形態では、単一ユーザからの識別情報を使用してそのためにデータにアクセス可能な異なるユーザ(例えばサンプルグループまたは試験セット)の量が閾値を満たすことに応答して、サードパーティエンティティ108のサーバ108にアクセスするために、ユーザからの1つまたは複数の識別情報を直接アクセスモジュール204の他のインスタンス(例えば他の試験モジュール318)に提供してよい。例えば、単一のユーザからの識別情報が、所定数の他の試験ユーザ(例えば、2人のユーザ、10人のユーザ、100人のユーザ、1000人のユーザ、試験ユーザの50%、試験ユーザの75%、および/または他の所定の閾値数の試験ユーザ)がサードパーティエンティティ108からそれぞれのデータにアクセスするのを可能にすることに成功した場合、試験モジュール318は、その識別情報に基づく命令をより多くのユーザ(例えばすべてのユーザまたは実質的にすべてのユーザなど)に提供してよい。
[0106]特定の実施形態では、試験モジュール318は、試験モジュール318が単一ユーザからの識別情報を使用してサードパーティエンティティ108からそれぞれのデータにアクセスするための命令を提供するユーザの数を含む試験サイズを連続的に増加させてもよい(例えば、1人または複数の試験ユーザから始めて、2人以上、3人以上、4人以上、5人以上、10人以上、20人以上、30人以上、40人以上、50人以上、100人以上、500人以上、1000人以上、5000人以上、10,000人以上、100,000人以上、100万人以上、および/またはその他の連続的に増加する数の試験ユーザに増加させる)。試験モジュール318は、一実施形態では、階層モジュール312に関して以下で詳述するように、単一のユーザからの識別情報に基づく命令を、サードパーティエンティティ108のサーバ108にアクセスするための命令の複数の異なるセットの順序付けられたリストに含める。
[0107]試験モジュール318は、特定の実施形態では、1人または複数のユーザの1つまたは複数の信頼要因(例えば得点など)に基づいて1人または複数のユーザからの識別情報を優先順位付けするように構成される。信頼要因は、一実施形態では、ユーザの識別情報が正しい可能性を示す得点またはその他のメタデータを含んでよい。例えば、様々な実施形態において、信頼要因は、ユーザの過去の識別情報の履歴(例えば正しいか正しくないか)、1つまたは複数の検証モジュール104のプロバイダとのユーザの提携関係(例えば、製作者、ベンダ、所有者、販売業者、再販業者、製造業者、バックエンドサーバ110など)、他のユーザからの肯定的および/または否定的な標示(例えば、投票、「いいね」、使用、フィードバック、星数、支持など)、および/またはユーザの識別情報が正しい可能性があるか否かを示すその他の標示のうちの1つまたは複数を含んでよく、および/または上記のうちの1つまたは複数に基づいてよい。試験モジュール318は、ユーザに関連付けられた1つまたは複数の信頼要因に基づいて、ユーザの識別情報を提供する他のユーザの数を決定してよい(例えば、より高い信頼要因に応答してユーザの識別情報が他のユーザに提供されるレートを加速させる、より低い信頼要因に応答してユーザの識別情報が他のユーザに提供されるレートを低下させるなど)。
[0108]試験モジュール318は、管理者、仲介者ユーザなどが識別情報の削除、識別情報の調整および/または無効化、ユーザの信頼要因の調整および/または無効化、ユーザが識別情報を提供するのを禁止、および/またはその他の方法でユーザまたはユーザの識別情報を無効化することができるようにする、オーバーライドインターフェースを含んでよい。様々な実施形態において、試験モジュール318は、管理者および/または仲介者にオーバーライドインターフェースをGUI、API、CLIなどとして提供してよい。
[0109]特定の実施形態では、試験モジュール318は最も効果的なソリューションなど(例えば1人または複数のユーザからの識別情報に基づく命令のセット)を試験し、使用するので、試験モジュール318は1つまたは複数の検証モジュール104およびそのアグリゲーションサービスを自己回復型、自己試験型および/または自己増分展開型とならせる。
[0110]一実施形態では、階層モジュール312が直接アクセスモジュール204に、ユーザに関連付けられたデータなどをダウンロードするためにユーザの電子認証情報を使用してサードパーティエンティティ108のサーバ108にアクセスするための命令の複数の異なるセットの順序付けられたリストを提供する。命令のそれぞれの異なるセットは、特定の実施形態では、ユーザの電子認証情報を入力するためのロケーション、ユーザの電子認証情報をサブミットするための命令、ユーザに関連付けられたデータの1つまたは複数のロケーションなどを含む。
[0111]階層モジュール312は、一実施形態では、バックエンドサーバ110(例えば、バックエンドサーバ110のバックエンド検証モジュール104b)から、またはピアツーピア方式で別のユーザハードウェアデバイス102(例えばユーザハードウェアデバイス102の検証モジュール104a)から、または試験モジュール318からなど、命令の1つまたは複数のセットを受け取ってよい。階層モジュール312は、特定の実施形態では、異なるユーザハードウェアデバイス102および/またはユーザによる命令の異なるセットの使用の成功および/または不成功の履歴に基づく(例えばグローバル階層順序の)順序付けられたリストにすでにある命令の複数の異なるセットを受け取ることができる。一実施形態では、階層モジュール312は、(例えばユーザの1つまたは複数のハードウェアデバイス102からの)ユーザによる命令の異なるセットの使用の成功および/または不成功の履歴に基づいて、単一のユーザのための命令の複数の異なるセットから、順序づけられたリストの階層(例えば、カスタムの階層または個別化された階層)を決定すること、および/またはそのような命令の異なる複数のセットから順序付けられたリストを作成することを行ってよい。
[0112]直接アクセスモジュール104は、一実施形態では、命令のセットのうちの1つのセットが成功し、直接アクセスモジュール104がサードパーティエンティティ108にアクセスすること、および/またはサードパーティエンティティ108からデータをダウンロードすることができるまで、リストの順序で、サードパーティエンティティ108のサーバ108にアクセスするための命令の複数のセットを1つずつ試みてよい。階層モジュール312は、一実施形態では、最近に使用に成功した命令のセットを(最初に試行するセットとして)最上位に置いてよい。例えば、ユーザのハードウェアデバイス102の階層モジュール312は、直接アクセスモジュール204が命令のセットを使用してサードパーティエンティティ108にアクセスすること、および/またはサードパーティエンティティ108からデータをダウンロードすることに成功したことに応答して、サードパーティエンティティ108にアクセスするためのその命令のセットをリストの最上位に(例えば、リストの順序を経時的に調整して)置いてよい。特定の実施形態では、階層モジュール312は、第1の順序(例えばグローバル順序)のサードパーティエンティティ108のサーバ108にアクセスするための命令の複数の異なるセットの順序付けられたリストを受け取ってよく、単一のユーザの使用および/またはハードウェアデバイス102の使用に基づいて、命令の異なるセットを経時的に動的に調整すること、および/または並べ替えることを行ってよい(例えば、ユーザ/ハードウェアデバイス102のために命令のセットを使用したアクセスが成功した場合、その命令のセットをリストの上方に移動し、ユーザ/ハードウェアデバイス102のために命令のセットを使用したアクセスが不成功の場合、その命令のセットをリストの下方に移動するなど)。
[0113]階層モジュール312は、特定の実施形態では、命令の1つまたは複数のセット、または命令の複数のセットの順序付けられたリストなどを、データネットワーク106を介して(例えば、ピアツーピア方式で他のユーザのハードウェアデバイス102に直接、またはバックエンドサーバ110のバックエンド検証モジュール104bを経由して間接的になど)他のユーザのハードウェアデバイス102の階層モジュール312と共有するように構成されてよい。様々な実施形態において、異なる口座タイプ、異なる口座設定、異なる発信元システム(例えば、企業買収などに起因して、同じサードパーティエンティティ108の異なるユーザが1つまたは複数の異なる設定、異なるアクセス方法などを有することがある)、システム変更もしくは更新、および/または同じサードパーティエンティティ108の異なるユーザの口座またはサービスなどのその他の相違に起因して、命令の異なるセットが異なるユーザにとって成功または不成功になる場合がある。
[0114]一実施形態では、ルートモジュール314が、サードパーティエンティティ108のサーバ108からユーザに関連付けられたデータをダウンロードするために、ユーザのハードウェアデバイス102が直接アクセスモジュール204にとって利用可能であるか否かを決定する。ルートモジュール314は、特定の実施形態では、ルートモジュール314がユーザのハードウェアデバイス102が利用不能であると決定することに応答して、ユーザに関連付けられたデータをサーバ108から遠隔バックエンドサーバ110にダウンロードするために、ユーザの電子認証情報を使用して遠隔バックンドサーバ110からサードパーティエンティティ108のサーバ108にアクセスしてよい。ルートモジュール314は、一実施形態では、遠隔バックエンドサーバ110にダウンロードされたユーザに関連付けられたデータに基づいて、ユーザのハードウェアデバイス102上でユーザに1つまたは複数のアラート(例えば、サードパーティエンティティ108からダウンロードされたデータ、サードパーティエンティティ108からのデータに基づいて決定された推奨または示唆、サードパーティエンティティ108からのデータ中で検出されたイベントまたはその他のトリガに基づく通知またはその他のアラートなど)を提供する。
[0115]特定の実施形態では、ルートモジュール314は、単一のユーザおよび/または口座に関連付けられた複数のハードウェアデバイス102のリストを維持および/または記憶する。ユーザおよび/または口座に関連付けられた1つのハードウェアデバイス102が利用不能である(例えば、電源遮断、機内モード、データネットワーク106に接続されていないなど)との決定に応答して、ルートモジュール314は、そのユーザおよび/または口座の異なる利用可能なハードウェアデバイス102からサードパーティエンティティ108のサーバ108にアクセスしてよく、異なる利用可能なハードウェアデバイス102上などで1つまたは複数の通知またはその他のアラートを提供してよい。ルートモジュール314は、図4Aから図4Cに関連して後述するように様々な実施形態において、ユーザの1つまたは複数のハードウェアデバイス102、異なるユーザの1つまたは複数のハードウェアデバイス102、1つまたは複数のバックエンドサーバ110、および/または別のハードウェアデバイスなどの複数のハードウェアデバイス間で、セキュリティ保護された方式でサードパーティエンティティ108からのユーザのためのデータのダウンロードを動的にルーティングしてよい。
[0116]ルートモジュール314は、一実施形態では、サードパーティエンティティ108からの同じユーザのためのデータのダウンロードのために、(例えば同じユーザまたは異なるユーザなどの)複数のハードウェアデバイス102、110間で周期的に交番または輪番させてよい。例えば、データがそこからダウンロードされるデバイス102、110の輪番および/または交番は、ダウンロードが不正または不適切であると誤って解釈される可能性を減らすことができる。別の実施形態では、ルートモジュール314は、サードパーティエンティティ108によって、信頼されるデバイスなどとして許可および/または特定され得る同じデバイス102、110(例えば、ユーザの一次ハードウェアデバイス102、バックエンドサーバ110など)からデータをダウンロードしてよい。
[0117]一実施形態では、頻度モジュール316が、直接アクセスモジュール204がサードパーティエンティティ108のサーバ108にアクセスする頻度を設定する。頻度モジュール316は、特定の実施形態では、遠隔バックエンドサーバ110(例えば、遠隔バックエンドサーバ110上で実行されている頻度モジュール316)が、異なるユーザおよび/または異なるハードウェアデバイス102のための複数の直接アクセスモジュール204について頻度を決定するように、アクセスされるサードパーティエンティティ108の系列でなくてよい遠隔バックエンドサーバ110からの入力に基づいて頻度を決定する。例えば、頻度モジュール316は、単一のユーザおよび/またはハードウェアデバイス102がある期間内に許される閾値回数(例えば、10分ごとに1回、半時間ごとに1回、1時間ごとに1回、1日に2回、1日に3回、1日に4回など)を超えて同じサードパーティエンティティ108にアクセスしないように制限してよい。頻度モジュール316は、特定の実施形態では、サードパーティエンティティ108などによる故意でないサービス拒否を防止するためにアクセス頻度を制限する。
[0118]頻度モジュール316は、特定の実施形態では、ユーザおよび/またはハードウェアデバイス102がサードパーティエンティティ108にアクセス可能な頻度を経時的に動的に調整してよい。例えば、頻度モジュール316は、異なるサードパーティエンティティ108のそれぞれの総アクセスおよび/またはダウンロード帯域幅に上限または制限を設けるために(例えば、いずれの単一のサードパーティエンティティ108などにも過負荷をかけないように)、複数のユーザ(すべてのユーザ、利用可能なユーザ、アクティブユーザなど)によるアクセスおよび/またはダウンロードを監視してよい。このようにして、一実施形態では、ユーザおよび/またはハードウェアデバイス102は、データをアクセスおよび/またはダウンロードしている他のユーザおよび/またはハードウェアデバイス102がより少ないとき(例えば低ピーク時)により高い頻度でデータのアクセス/ダウンロードを行うことができ、データをアクセスおよび/またはダウンロードしている他のユーザおよび/またはハードウェアデバイス102がより多いとき(例えば高ピーク時)により低い上限またはアクセス頻度までに制限され得る。
[0119]さらなる実施形態では、頻度モジュール316はユーザからの入力に基づいて頻度を決定し、それによってそのユーザが他のユーザおよび/またはバックエンドサーバ110とは独立してアクセス頻度を設定することができるようにする。頻度モジュール316は、1つまたは複数のハードウェアデバイス102を使用して1つまたは複数のサードパーティエンティティ108からデータをダウンロードするためのアクセス頻度をユーザが設定および/または調整することができるようにする(例えば、ユーザが、異なるサードパーティエンティティ108またはユーザの異なるハードウェアデバイス102などのために異なるアクセス頻度を設定することができるようにする、異なる設定を提供する)ユーザインターフェース(例えば、GUI、CLI、APIなど)を提供してよい。
[0120]一実施形態では、口座検証モジュール320がユーザの口座を検証するために、受け取ったユーザの電子認証情報を使用するように構成される。上述のように、口座検証モジュール320は、口座のためのユーザの電子認証情報(例えば口座番号とPIN/パスワード、ユーザ名とパスワードなど)を使用してリアルタイムで(例えば実質的に即時に)口座を検証することができる。このような実施形態では、口座検証モジュール320は、ユーザから、および/またはパスワードマネージャ(例えばLastPass(R))などから電子認証情報を受け取る。電子認証情報は、特定の実施形態では、リソース所有者の許可により認証サーバによってサードパーティクライアントに発行することができるアクセストークンを含んでよい。サードパーティは次に、リソースサーバによってホストされている保護されたリソースにアクセスするためにこのアクセストークンを使用する。
[0121]例えば、口座検証モジュール320は、ユーザのアクセストークンをOAuthサービスの一部として提示することによってユーザの口座にログインを試みてよい。本明細書では、OAuthは、インターネットユーザが、ウェブサイトまたはアプリケーションにパスワードを与えずにウェブサイトまたはアプリケーションに他のウェブサイト上の自分の情報へのアクセスを認めるための手段として一般的に使用されている、アクセス権委譲のためのオープン標準/サービスを指す。別の例では、口座検証モジュール320が、口座に関連付けられたウェブページ(例えばHTTPインターフェース、スクリーンスクレイプなど)を使用してユーザの口座にログインを試行してよく、口座に関連付けられたAPIなどを使用してよい。
[0122]様々な実施形態において、口座検証モジュール320は、ユーザの電子認証情報を使用してユーザの口座にログインするのに成功したことに応答して、口座の存在、口座の状態、口座の内容(例えば、金融口座にある金額、資産の検証、収入の検証など)、口座の機能または制限(例えば、ユーザがアクセス可能な他のサービス、またはユーザがアクセスできない他のサービス)、口座に関連付けられた加入レベルおよび/または会員レベル、口座に関連付けられた書き込み件数(例えば、ツィート、Instagram書き込み、Facebook書き込み、製品レビューなど)、口座に関連付けられた最近の書き込み、口座に関連付けられた友人および/またはフォロワの数などを検証するように構成されてよい。
[0123]実施形態によっては、口座検証モジュール320は、口座を検証するために複数の方法(例えば、フェイルオーバ、ロールオーバ、フォールバック、ラウンドロビンおよび/またはその他の構成)を使用するように構成される。例えば、一実施形態では、口座検証モジュール320は、ユーザの電子認証情報を使用して(例えば、web/HTTPインターフェース、OAuthサービス、および/またはAPIインターフェースを使用して)口座を検証するために、ユーザの口座にログインを試行してよく、試行した検証が失敗したことに応答して、口座検証モジュール320は、マイクロデポジットなどの異なる方法を使用して口座の検証を試行してよく、および/または、別の検証方法を使用してよい。
[0124]本明細書では、マイクロデポジットとは、ユーザの口座へのデポジットであり、通常は少額の2件以上のデポジットがユーザの口座に入金され、ユーザが自分の口座にデポジットがあるのを知ると、ユーザの口座を検証するためにそのデポジットの金額を、デポジットを行ったエンティティのインターフェースに入力する。口座検証モジュール320によって使用されるオーダ方法および/または検証方法は、一部の実施形態では、ユーザの、またはユーザの口座を検証するエンティティなどの1つまたは複数の選好に基づいて設定可能および/またはカスタマイズ可能であってよい(例えば、口座検証モジュール320は、異なるユーザ、異なる顧客/クライアントなどのために異なるフェイルオーバ方法、異なる検証方法などを使用してよい)。
[0125]一実施形態では、(例えば、銀行および/またはその他の金融機関などのサードパーティにおける個人金融管理アプリケーション/システム/プラットフォームに配置された)口座検証モジュール320が、口座からユーザのために集約された金融トランザクションデータに基づいて口座への1つまたは複数のマイクロデポジットを自動的に検証してよい。例えば、一部の実施形態では、ユーザが口座検証モジュール320を使用して集約のためにすでに以前に口座に接続、および/または口座を開設していてよく、サードパーティが口座の検証を要求することに応答して口座検証モジュール320はその口座に1つまたは複数のマイクロデポジットを送金してよく、その1つまたは複数のマイクロデポジットが正しく受領されたことを検証するために、その口座のために集約されたその後のトランザクションデータを処理してよい(例えば、金額、トランザクションの当事者などを自己確認式に照合する)。
[0126]例えば、口座検証モジュール320は、サードパーティからの口座検証要求に応答して、個人金融管理プラットフォーム/アプリケーションまたはサードパーティシステムの一部として、0.50セントと0.37セントとを、サードパーティが検証したいユーザの口座に入金してよい。口座検証モジュール320は、次に、(例えば、ユーザの口座に直接アクセスせずに、例えば銀行のウェブサイトを使用して)ユーザの集約されたトランザクションデータにアクセスしてよく、口座へのこの2件のマイクロデポジットを調べるためにトランザクションデータを処理してよい。口座検証モジュール320は、次に、集約されたトランザクションデータ内にマイクロデポジットが存在するか否かを決定してよく、存在する場合は、マイクロデポジットの金額がユーザの口座にデポジットされた金額と一致するか否かを決定し、さらに、ユーザの口座にマイクロデポジットが存在するとの確認または検証をサードパーティに送信してよい。このようにして、一実施形態では、ユーザによる追加の関与および/または入力がほとんどなしに、またはまったくなしに(例えば、金額を確認するためにユーザがマイクロデポジットの金額を手動で入力することなどがなく)、口座検証モジュール320がユーザの口座を検証することができる。
[0127]さらなる実施形態では、口座検証モジュール320は、マイクロデポジットトランザクション情報(例えばマイクロトランザクションの金額、トランザクションの当事者、および/またはその他の識別情報)を、ユーザの口座の検証を要求するサードパーティにおけるユーザのトランザクションデータからサブミットする。例えば、口座検証モジュール320は、サードパーティのAPIを使用すること、および/またはサードパーティのインターフェース(例えば口座検証モジュール320がマイクロトランザクション情報のためのウェブサイトのグラフィック入力ロケーションを探すためにスクレイピングするウェブサイト)を使用することなどによって、マイクロデポジットトランザクション情報をサブミットしてよい。
[0128]他の実施形態では、口座検証モジュール320が、口座の複数のトランザクションデータソース(例えば銀行サーバ)から集約される金融トランザクションデータに基づいて(例えば、追加のマイクロデポジットまたはその他の検証などなしに、口座のためにすでに集約されている過去の金融トランザクションに基づいて)口座を検証してよい。このような実施形態では、金融トランザクションデータがデータアグリゲーションサーバにおいて集約されてよく、データアグリゲーションサーバは、ファーストパーティサーバおよび/またはサードパーティサーバであってよい。例えば、口座検証モジュール320は、データアグリゲーションサーバにおいてユーザの電子認証情報を受け取ってよく、データアグリゲーションサーバは、受け取った電子認証情報を使用してユーザに代わってユーザの口座にログインを試行してよい。ユーザの口座へのログインが成功すると、ユーザの口座情報、例えば、口座番号および/または銀行コードなどの金融トランザクションデータがデータアグリゲーションサーバにおいて受け取られてよい。
[0129]一実施形態では、画像モジュール322が、(自動)スキャン(例えば写真、光学式文字認識、画像認識など)または無効小切手、預金伝票、領収書、預金残高証明書、クレジットカード請求書、および/または住宅ローン明細書などの文書のスクリーンショットを使用して、電子認証情報またはその他のユーザ情報(例えば、名前、識別子、口座番号、および/または銀行コードなど)の少なくとも一部を収集するように構成される。さらなる実施形態では、口座検証モジュール320は、画像モジュール322が例えば口座番号などの口座情報、ユーザ情報(例えば、名前、住所、社会保険番号など)、および/または銀行コードなどを比較することによって捕捉する情報を使用して、口座情報を検証する。
[0130]一実施形態では、情報要求モジュール324が、(例えば、情報要求モジュール324が、1回または複数回の検証試行が失敗したことに応答してユーザから追加情報を収集しないように)ユーザの口座の検証のために選択された検証オーダおよび/または方法に基づいて、ユーザから最小限の量の情報を収集する。例えば、情報要求モジュール324は、ユーザにユーザの電子認証情報、名前、および/または口座番号などを求めてよい。したがって、情報要求モジュール324は、口座検証の失敗に応答してユーザに後で追加情報を要求することなく、1回でユーザの口座を検証するための情報をユーザに要求することができる。
[0131]別の実施形態では、情報要求モジュール324は、例えば電子認証情報を使用して最初に第1の検証方法のためにユーザから情報を収集してよく、その後、第1の検証方法の失敗などに応答して、第2の検証方法、例えばマイクロデポジットのために、ユーザから追加情報を収集してよい。例えば、情報要求モジュール324は、口座検証のためにユーザの電子認証情報を要求してよく、口座検証の失敗に応答して、1つまたは複数のマイクロデポジットを使用してユーザの口座を検証するために、後でユーザに対して口座情報を要求してよい。
[0132]一実施形態では、報告モジュール326が、(例えば、ハードウェアデバイス102のグラフィカルユーザインターフェース、電子メール、テキストメッセージ、プッシュ通知などを使用して)1つまたは複数の報告および/またはその他のメッセージを、検証される口座に関連付けられたユーザ、口座の検証を要求するサードパーティエンティティなどに提供するように構成される。報告モジュール326は、ユーザおよび/またはサードパーティに口座検証の成功または失敗、使用された検証方法のフェイルオーバオーダ(例えば監査証跡、ディリジェンス証明、ログなど)などを通知してよい。
[0133]一実施形態では、報告モジュール326は、ユーザの口座の検証が成功したか否か、ユーザの口座を検証するためのユーザの電子認証情報の使用に成功したか否か、および/またはユーザの電子認証情報を使用したユーザの口座の検証に失敗したことに応答してユーザの口座を検証するためにマイクロデポジットが使用されたか否かおよびマイクロデポジットの金額などを示す報告を生成する。
[0134]図4Aに、口座検証のためのシステム400の一実施形態を示す。システム400は、図示されている実施形態では、検証モジュール104aを備えた単一のユーザハードウェアデバイス102を含む。検証モジュール104aの認証モジュール202が、特定の実施形態では、電子ユーザ認証情報をユーザのハードウェアデバイス102上でローカルに記憶および/または管理してよく、直接アクセスモジュール204がユーザに関連付けられたデータをユーザのハードウェアデバイス102に(例えばデータネットワーク106を介して)ダウンロードするためにユーザのハードウェアデバイス102から直接、1つまたは複数のサードパーティエンティティ108にアクセスしてよく、インターフェースモジュール206が、データおよび/またはデータに基づく1つまたは複数のアラート/メッセージをユーザのハードウェアデバイス102などからユーザに提供してよい。図示されているシステム400では、検証モジュール104aは、ユーザの認証情報、ユーザのデータなどを異なるユーザのハードウェアデバイス、バックエンドサーバ110などに提供せずに、1つまたは複数のサードパーティエンティティ108からユーザのハードウェアデバイス102上でユーザのためのデータのローカルリポジトリを作成してよい。
[0135]図4Bに、口座検証のためのシステム402の一実施形態を示す。システム402は、図示されている実施形態では、異なるユーザに関連付けられた検証モジュール104aを備えた複数のユーザハードウェアデバイス102を含む。特定の実施形態では、第1のユーザに関連付けられたデータをダウンロードするために第2の検証モジュール104aの直接アクセスモジュール204が第2のユーザのハードウェアデバイス102bから(例えばデータネットワーク106を介して)1つまたは複数のサードパーティエンティティ108にアクセスすることができるように、第1の検証モジュール104a(例えば第1の検証モジュール104aの認証モジュール202)が、第1のユーザの暗号化されたユーザ認証情報を、データネットワーク106などを介して第1のユーザのハードウェアデバイス102aから第2の検証モジュール104a(例えば第2の検証モジュール104aの認証モジュール202)にセキュアに提供してよい。
[0136]例えば、第2のユーザのハードウェアデバイス102bが、第1のユーザのハードウェアデバイス102aが電源遮断された、スリープしている、または1つまたは複数のサードパーティエンティティ108にアクセスするのをブロックされたなどとルートモジュール314が決定したことに応答して、第1のユーザのためのデータをダウンロードしてよい。第2の検証モジュール104aのインターフェースモジュール206が、ダウンロードされたデータに基づいて第1のユーザに1つまたは複数のアラート/メッセージを提供してよく、および/または、ダウンロードされたデータを第1のユーザに提供してよい(例えば、第1のユーザのハードウェアデバイス102aが利用可能になったことに応答して、第1のユーザに関連付けられた異なるハードウェアデバイス102に、または、第1のユーザがアクセスすることができるバックエンドサーバ110に提供するなど)。前述のように、特定の実施形態では、認証モジュール202、直接アクセスモジュール204、インターフェースモジュール206および/またはルートモジュール314は、第2のユーザが第1のユーザのためのデータにアクセスするのが困難または不可能であり、それによって第1のユーザのデータへの無許可のアクセスを防止および/または可能な限りなくす一方、第1のユーザのためのデータをそこからダウンロードすることができ得るデバイス102および/またはロケーションの柔軟性をより高くするように、第1のユーザのためのデータ(例えば、第1のユーザの電子認証情報、第1のユーザに関連付けられたダウンロードされたデータ、第1のユーザのためのアラート/メッセージ)を暗号化および/またはその他の方法でセキュリティ保護してよい。
[0137]図4Cに、口座検証のためのシステム404の一実施形態を示す。システム404は、図示されている実施形態では、1つまたは複数の検証モジュール104aを備えた1つまたは複数のユーザハードウェアデバイス102と、1つまたは複数のバックエンド検証モジュール104bを備えた1つまたは複数のバックエンドサーバ110とを含む。検証モジュール104aの認証モジュール202が、特定の実施形態では、バックエンド検証モジュール104bの直接アクセスモジュール204が、ユーザに関連付けられたデータをダウンロードするためにバックエンドサーバ110から(例えばデータネットワーク106を介して)1つまたは複数のサードパーティエンティティ108にアクセスすることができるように、ユーザの暗号化されたユーザ認証情報をユーザのハードウェアデバイス102からデータネットワーク106などを介してバックエンドサーバ110上のバックエンド検証モジュール104b(例えばバックエンド検証モジュール104bの認証モジュール202)にセキュアに提供してよい。
[0138]例えば、バックエンドサーバ110は、ユーザのハードウェアデバイス102aが電源遮断されている、スリープしている、または1つまたは複数のサードパーティエンティティ108にアクセスするのをブロックされたなどとルートモジュール314が決定したことに応答して、ユーザのためのデータをダウンロードしてよい。バックエンド検証モジュール104bのインターフェースモジュール206は(例えば、ユーザのハードウェアデバイス102aが利用可能になったことに応答して、第1のユーザに関連付けられた異なるハードウェアデバイス102にバックエンドサーバ110から直接、ウェブページとして、および/または専用アプリケーションなどを介して)、ダウンロードされたデータに基づく1つまたは複数のアラート/メッセージをユーザに提供してよく、および/または、ダウンロードされたデータをユーザに提供してよい。
[0139]図5に口座検証のための方法500の一実施形態を示す。方法500が開始し、認証モジュール202がユーザのハードウェアデバイス102上でユーザからサードパーティエンティティ108のためのユーザの電子認証情報を受け取る502。直接アクセスモジュール204が、ユーザの電子認証情報を使用してユーザのハードウェアデバイス102からサードパーティエンティティ108のサーバ108にアクセスする504。直接アクセスモジュール204が、ユーザに関連付けられたデータをサードパーティエンティティ108のサーバ108からユーザのハードウェアデバイス102にダウンロードし506、方法500は終了する。
[0140]図6に、口座検証のための方法600の一実施形態を示す。方法600が開始し、認証モジュール202が、複数のサードパーティエンティティ108のためのユーザの電子認証情報を決定する602。直接アクセスモジュール204が、決定された602電子認証情報を使用して複数のサードパーティエンティティ108のサーバにアクセスする604。直接アクセスモジュール204が、複数のサードパーティエンティティ108のアクセスされた604サーバからユーザに関連付けられたデータをダウンロードする606。
[0141]直接アクセスモジュール204が、複数の異なるサードパーティエンティティ108からのダウンロードされた606データを集約する608。インターフェースモジュール206が(例えば、ユーザのハードウェアデバイス102上にデータを表示すること、ユーザのハードウェアデバイス102にアラートまたはその他のメッセージを送信すること、ユーザがウェブインターフェースおよび/またはAPIなどを使用してアクセスすることができるサードパーティエンティティ108と系列関係にない遠隔バックエンドサーバ110にデータを送信することなどにより、)集約された608データをユーザに提供し610、方法600は終了する。
[0142]図7に、口座検証のための方法700の別の実施形態を示す。方法700が開始し、一実施形態では、認証モジュール202がユーザの電子認証情報を受け取る702。さらなる実施形態では、口座検証モジュール320が、受け取った電子認証情報を使用してユーザの口座を検証し704、検証失敗に応答してマイクロデポジットを使用してユーザの口座を検証し706、方法700は終了する。
[0143]図8に、口座検証のための方法800の別の実施形態を示す。方法800が開始し、一実施形態では、直接アクセスモジュール204が、複数のユーザ口座から集約されるユーザのトランザクションデータにアクセスする802。さらなる実施形態では、口座検証モジュール320が、集約されたトランザクションデータ内のユーザ口座の少なくとも1件のマイクロデポジットトランザクションを特定し804、そのマイクロデポジットトランザクションに基づく情報を使用してユーザ口座を検証し806、方法800は終了する。
[0144]ユーザのハードウェアデバイス102上でサードパーティエンティティ108のためのユーザの電子認証情報を決定する手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、認証モジュール202、ローカル認証モジュール302、ネットワーク認証モジュール304、パスワードマネージャモジュール306、検証モジュール104、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態は、ユーザのハードウェアデバイス102上でサードパーティエンティティ108のためのユーザの電子認証情報を決定する同様または同等の手段を含んでよい。
[0145]ユーザの電子認証情報を使用してユーザのハードウェアデバイス102からサードパーティエンティティ108のサーバ108にアクセスする手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、直接アクセスモジュール204、パターンモジュール308、アクセス修復モジュール310、階層モジュール312、検証モジュール104、ネットワークインターフェース、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態は、ユーザの電子認証情報を使用してユーザのハードウェアデバイス102からサードパーティエンティティ108のサーバ108にアクセスする同様または同等の手段を含んでよい。
[0146]サードパーティエンティティ108のサーバ108からユーザに関連付けられたデータをユーザのハードウェアデバイス102にダウンロードする手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、直接アクセスモジュール204、パターンモジュール308、アクセス修復モジュール310、階層モジュール312、検証モジュール104、ネットワークインターフェース、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態は、ユーザに関連付けられたデータをサードパーティエンティティ108のサーバ108からユーザのハードウェアデバイス102にダウンロードする同様または同等の手段を含んでよい。
[0147]データがそこからダウンロードされたサードパーティエンティティ108と系列関係にない遠隔デバイス110、102のためにユーザのハードウェアデバイス102から、ダウンロードされたデータをパッケージ化する手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、インターフェースモジュール206、検証モジュール104、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態は、データがそこからダウンロードされたサードパーティエンティティ108と系列関係にない遠隔デバイス110、102のためにユーザのハードウェアデバイス102から、ダウンロードされたデータをパッケージ化する同様または同等の手段を含んでよい。
[0148]ダウンロードされたデータをユーザのハードウェアデバイス102から、データがそこからダウンロードされたサードパーティエンティティ108の系列にない遠隔デバイス110、102に提供する手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、インターフェースモジュール206、検証モジュール104、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態は、ダウンロードされたデータをユーザのハードウェアデバイス102から、データがそこからダウンロードされたサードパーティエンティティ108の系列にない遠隔デバイス110、102に提供する同様または同等の手段を含んでよい。
[0149]ユーザの電子認証情報を受け取る手段が、様々な実施形態において、認証モジュール202、ハードウェアデバイス102、バックエンドサーバ110、インターフェースモジュール206、検証モジュール104、口座検証モジュール320、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態は、ユーザの電子認証情報を受け取る同様または同等の手段を含んでよい。
[0150]受け取った電子認証情報をユーザの口座を検証するために使用し、受け取った電子認証情報を使用した口座検証が失敗したことに応答して、1つまたは複数のマイクロデポジットを使用してユーザの口座を検証する手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、インターフェースモジュール206、検証モジュール104、口座検証モジュール320、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態は、受け取った電子認証情報をユーザの口座を検証するために使用し、受け取った電子認証情報を使用した口座検証が失敗したことに応答して、1つまたは複数のマイクロデポジットを使用してユーザの口座を検証する同様または同等の手段を含んでよい。
[0151]集約されたトランザクションデータにおいてユーザ口座の少なくとも1つのマイクロデポジットトランザクションを特定し、そのマイクロデポジットトランザクションに基づく情報を使用してユーザ口座を検証する手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、インターフェースモジュール206、検証モジュール104、口座検証モジュール320、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態は、集約されたトランザクションデータにおいてユーザ口座の少なくとも1つのマイクロデポジットトランザクションを特定し、そのマイクロデポジットトランザクションに基づく情報を使用してユーザ口座を検証する同様または同等の手段を含んでよい。
[0152]本明細書に記載のその他の方法ステップを実行する手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、認証モジュール202、ローカル認証モジュール302、ネットワーク認証モジュール304、パスワードマネージャモジュール306、直接アクセスモジュール204、パターンモジュール308、アクセス修復モジュール310、階層モジュール312、インターフェースモジュール206、ルートモジュール314、頻度モジュール316、試験モジュール318、検証モジュール104、ネットワークインターフェース、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または他の半導体集積回路デバイス)、HDMIまたはその他の電子ディスプレイドングル、ハードウェア機器またはその他のハードウェアデバイス、その他のロジックハードウェア、および/またはコンピュータ可読記憶媒体に記憶されたその他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態は、本明細書に記載の方法ステップのうちの1つまたは複数を実行する同様または同等の手段を含んでよい。
[0153]本発明は、本発明の趣旨または本質的特徴から逸脱することなく、他の特定の形態で具現化されてもよい。記載されている実施形態は、あらゆる点において、例示的であるに過ぎず、限定的ではないものとみなされるべきである。したがって、本発明の範囲は、上記の説明によってではなく、添付の特許請求の範囲によって示される。特許請求の範囲の均等の意味および範囲内に含まれるあらゆる変更が、特許請求の範囲に包含されるものとする。