(57)【要約】  一般に、本発明の複数の実施形態は、アウト・オブ・バンド・データ（すなわち、ユーザによって直接供給されないデータ）から導出されるデジタルフィンガープリント信号を分析することに基づくユーザ検証サービスを提供するシステム、方法、及びコンピュータ可読媒体を提供する。いくつかの実施形態において、ユーザによってアクセスされているクライアントデバイス上でホスティングされたアプリに組み込まれたデジタルフィンガープリントエンジンは、様々なデバイス又はユーザのデータを読み取り、その後デバイス上にローカルに格納されたアウト・オブ・バンド・データを表す一組の符号化ユーザ検証データを作成する。いくつかの実施形態において、ユーザ検証データはハッシュ関数によって生成されたハッシュとして符号化される。いくつかの実施形態において、アプリは、クラウドを介してビジネスサーバとコンタクトをとるように構成されて、一組のデジタルフィンガープリントはクライアントデバイスからビジネスサーバへ送信される認証要求に含まれる。いくつかの実施形態において、デジタルフィンガープリント検証サービスは、それらが以前に検証されたユーザ群を表す一組の格納されたデジタルフィンガープリントのいずれとマッチングするどうかを判断することによって一組のデジタルフィンガープリントを検証する。
2017532707.tif 000002
【特許請求の範囲】
【請求項１】
ユーザによってアクセスされているクライアントデバイス上でローカルに格納されたデータから導出される一組のユーザ検証信号を含むデジタルフィンガープリントを生成するコンピュータ実装方法であって、
前記クライアントデバイス上で実行するアプリから認証要求を受信する段階であって、前記認証要求は前記ユーザに関連付けられたユーザ識別データを含む、段階と、
前記一組のユーザ検証信号のユーザ検証信号毎に、前記クライアントデバイスから前記ユーザ検証信号に関連付けられた一組の属性を記述する属性データを取得する段階と、
一方向の符号化アルゴリズムを用いて代替符号化となるよう前記属性データをマッピングする段階と、
前記符号化アルゴリズムを用いて代替符号化となるよう前記ユーザ識別データをマッピングする段階と、
を備える、方法。
【請求項２】
前記一組のユーザ検証信号は、連絡先リスト、カレンダー、一組のデジタル写真、ユーザの選曲、及び前記ユーザが前記クライアントデバイスをどうのように接続するかに関するデータの少なくとも１つを含む、請求項１に記載の方法。
【請求項３】
前記一方向の符号化アルゴリズムは、ハッシュ関数であって、
それぞれの代替符号化は、前記ハッシュ関数を用いて算出されたハッシュである、請求項１又は２に記載の方法。
【請求項４】
前記ユーザ検証信号は、連絡先リストを表し、
代替符号化となるよう前記属性データをマッピングする段階は、
前記連絡先リストの連絡先毎に、事前に決められた一組の連絡先フィールドのそれぞれから連絡先属性データを抽出する段階と、
前記一組の連絡先フィールドのそれぞれの前記連絡先属性データについて、前記ハッシュ関数を用いてハッシュを算出する段階を備える、請求項３に記載の方法。
【請求項５】
前記ユーザ検証信号は、アルファベット順の連絡先リストを表し、
代替符号化となるよう前記属性データをマッピングする段階は、
事前に決められた量のアルファベットの文字のそれぞれに関連付けられた代表連絡先を選択することによって前記連絡先リストの連絡先のサブセットを生成する段階と、
前記連絡先リストの前記連絡先の前記サブセットの連絡先毎に、事前に決められた一組のフィールドのそれぞれから連絡先属性データを抽出する段階と、
前記一組の領域のそれぞれの前記連絡先属性データについて、前記ハッシュ関数を用いてハッシュを算出する段階と、
を備える、請求項３に記載の方法。
【請求項６】
前記代替符号化のそれぞれをキャッシングする段階を更に備える、請求項１から５のいずれか一項に記載の方法。
【請求項７】
ユーザによってアクセスされているクライアントデバイス上でローカルに格納されたデータから導出される一組のユーザ検証信号に基づいてユーザを検証するコンピュータ実装方法であって、
前記ユーザに関連付けられた符号化検証データを受信する段階であって、前記符号化検証データはユーザ識別データ及び前記一組のユーザ検証信号を記述する、段階と、
前記受信された符号化検証データが、検証されたユーザ群を表す少なくともいくつかの格納された符号化検証データとマッチングするかどうかを判断することによって前記ユーザを検証する段階と、
を備える、方法。
【請求項８】
前記一組のユーザ検証信号は、連絡先リスト、カレンダー、一組のデジタル写真、ユーザの選曲、及び前記ユーザが前記クライアントデバイスをどのように接続するかに関するデータの少なくとも１つを含む、請求項７に記載の方法。
【請求項９】
前記ユーザを検証する段階は、
前記格納された符号化検証データとマッチングすると判断された前記受信された符号化検証データの量に基づいて検証スコアを算出する段階と、
前記検証スコアと検証スコアの閾値とを比較する段階と、
前記検証スコアが前記検証スコアの閾値を満たす場合に前記ユーザを検証する段階と、
を備える、請求項７又は８に記載の方法。
【請求項１０】
前記ユーザを検証する段階は、
前記受信された符号化検証データがブラックリストに登録されたユーザ群を表す少なくともいくつかの格納された符号化検証データとマッチングするかどうかを判断する段階と、
前記格納された符号化検証データとマッチングすると判断された前記受信された符号化検証データの量に基づいて検証スコアを算出する段階と、
前記検証スコアと検証スコアの閾値とを比較する段階と、
前記検証スコアが前記検証スコアの閾値を満たす場合に前記ユーザをブラックリストに登録されたユーザとして更に識別する段階と、
を更に備える、請求項７から９のいずれか一項に記載の方法。
【請求項１１】
前記受信された符号化検証データ及び前記格納された符号化検証データは、特定のハッシュ関数を用いてそれぞれ算出されたハッシュとして符号化される、請求項７から１０のいずれか一項に記載の方法。
【請求項１２】
１又は複数のコンピュータと、
１又は複数の記憶デバイスと、を備え、
前記１又は複数の記憶デバイスは、前記１又は複数のコンピュータによって実行される場合、デジタルフィンガープリント検証要求を受信するデジタルフィンガープリント検証サービスであって、それぞれのデジタル検証要求は、ユーザに関連付けられた符号化検証データを含み、前記符号化検証データは、ユーザ識別データを含むデジタルフィンガープリント及び前記ユーザによってアクセスされているクライアントデバイス上でローカルに格納されたデータから導出される一組のユーザ検証信号を記述する、デジタルフィンガープリント検証サービスを前記１又は複数のコンピュータに提供させるべく動作可能な命令を格納し、
前記デジタルフィンガープリント検証サービスは、
前記クライアントデバイスから前記クライアントデバイス上で実行するアプリによって生成されたユーザ検証要求を受信することと、
前記ユーザ検証要求に含まれる前記符号化検証データが、検証されたユーザ群を表す少なくともいくつかの格納された符号化検証データとマッチングするかどうかを判断することによって検証結果を生成することと、
前記検証結果を前記クライアントデバイスへ送信することと、
を備えるオペレーションを実行する、システム。
【請求項１３】
前記一組のユーザ検証信号は、連絡先リスト、カレンダー、一組のデジタル写真、ユーザの選曲、及び前記ユーザが前記クライアントデバイスをどのように接続するかに関するデータの少なくとも１つを含む、請求項１２に記載のシステム。
【請求項１４】
前記検証結果を生成することは、
前記格納された符号化検証データとマッチングすると判断された前記受信された符号化検証データの量に基づいて検証スコアを算出することと、
前記検証スコアと検証スコアの閾値とを比較することと、
前記検証スコアが前記検証スコアの閾値を満たす場合に前記ユーザを検証する前記検証結果を生成することと、
を備える、請求項１２又は１３に記載のシステム。
【請求項１５】
前記検証結果を生成することは、
前記受信された符号化検証データがブラックリストに登録されたユーザ群を表す少なくともいくつかの格納された符号化検証データとマッチングするかどうかを判断することと、
前記格納された符号化検証データとマッチングすると判断された前記受信された符号化検証データの量に基づいて検証スコアを算出することと、
前記検証スコアと検証スコアの閾値とを比較することと、
前記検証スコアが前記検証スコアの閾値を満たす場合に前記ユーザをブラックリストに登録されたユーザとして識別することを含む前記検証結果を生成することと、
を更に備える、請求項１２から１４のいずれか一項に記載のシステム。
【請求項１６】
前記受信された符号化検証データ及び前記格納された符号化検証データは、特定のハッシュ関数を用いてそれぞれ算出されたハッシュとして符号化される、請求項１２から１５のいずれか一項に記載のシステム。
【請求項１７】
１又は複数のコンピュータに、
デジタルフィンガープリント検証要求を受信するデジタルフィンガープリント検証サービスであって、それぞれのデジタル検証要求は，ユーザに関連付けられた符号化検証データを含み、前記符号化検証データは、ユーザ識別データを含むデジタルフィンガープリント及び前記ユーザによってアクセスされているクライアントデバイス上でローカルに格納されたデータから導出される一組のユーザ検証信号を記述する、デジタルフィンガープリント検証サービスを提供することを実行させ、
前記デジタルフィンガープリント検証サービスは、
前記ユーザに関連付けられたクライアントデバイスから前記クライアントデバイス上で実行するアプリによって生成されたデジタルフィンガープリント検証要求を受信することと、
前記デジタルフィンガープリント検証要求に含まれる前記符号化検証データが、検証されたユーザ群を表す少なくともいくつかの格納された符号化検証データとマッチングするかどうか判断することによって検証結果を生成することと、
前記検証結果を前記クライアントデバイスへ送信することと、
を備えるオペレーションを実行する、コンピュータプログラム。
【請求項１８】
前記一組のユーザ検証信号は、連絡先リスト、カレンダー、一組のデジタル写真、ユーザの選曲、及び前記ユーザが前記クライアントデバイスをどのように接続するかに関するデータの少なくとも１つを含む、請求項１７に記載のコンピュータプログラム。
【請求項１９】
前記検証結果を生成することは、
前記格納された符号化検証データとマッチングすると判断された前記受信された符号化検証データの量に基づいて検証スコアを算出することと、
前記検証スコアと検証スコアの閾値とを比較することと、
前記検証スコアが前記検証スコアの閾値を満たす場合に前記ユーザを検証する前記検証結果を生成することと、
を備える、請求項１７又は１８に記載のコンピュータプログラム。
【請求項２０】
前記検証結果を生成することは、
前記受信された符号化検証データがブラックリストに登録されたユーザ群を表す少なくともいくつかの格納された符号化検証データとマッチングするかどうかを判断することと、
前記格納された符号化検証データとマッチングすると判断された前記受信された符号化検証データの量に基づいて検証スコアを算出することと、
前記検証スコアと検証スコアの閾値とを比較することと、
前記検証スコアが前記検証スコアの閾値を満たす場合に前記ユーザをブラックリストに登録されたユーザとして識別することを含む前記検証結果を生成することと、
を更に備える、請求項１７から１９のいずれか一項に記載のコンピュータプログラム。
【請求項２１】
前記受信された符号化検証データ及び前記格納された符号化検証データは、特定のハッシュ関数を用いてそれぞれ算出されたハッシュとして符号化される、請求項１７から２０のいずれか一項に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願への相互参照］  本出願は「ネイティブソフトウェアアプリケーションを非ネイティブソフトウェアアプリケーションに結合する技術」と題され２０１４年１０月１７日に出願された米国仮出願第６２／０６５，５３５号の利益を主張し、その内容が全体の参照によって本明細書に組み込まれている。 
【０００２】
本明細書は、アウト・オブ・バンド・データ（すなわち、ユーザによって直接供給されないデータ）から導出されるデジタルフィンガープリント信号を分析することに基づいてユーザ検証サービスを提供するフレームワークに関するものである。 
【背景技術】
【０００３】
典型的なユーザ認証システムは、ユーザによって供給されるデータ（例えば、ユーザの電話番号、電子メールアドレス、社会保障番号のような個人情報、ログインユーザＩＤ及びパスワードのうちの１つ又はそれらの組み合わせ）に基づいている。このタイプのデータが（例えば、個人情報の窃盗又はハッキングを介して）盗まれた場合、悪意のあるユーザはデータを使用し、データの正当な所有者の代わりに認証されることができる。データの窃盗が広範囲にわたるようになったという理由から、ユーザによって供給されるデータに基づいて認証要求を処理する場合に、典型的なユーザ認証システムが本物のユーザと不正なユーザとを区別することは困難である。
【０００４】
ユーザの代わりに認証要求を検証する現在の方法は、現在のシステムを不十分、効果のない、及び／又は同様のものにさせる複数の問題を示す。努力、創意工夫、及び革新が適用されることを通じて、そのような方法を改善する解決策が実現され、本発明の複数の実施形態と関連して説明される。
【発明の概要】
【０００５】
一般的に、本発明の複数の実施形態は、アウト・オブ・バンド・データ（すなわち、ユーザによって直接供給されないデータ）から導出されるデジタルフィンガープリント信号を分析することに基づいてユーザ検証サービスを提供する本明細書のシステム、方法、及びコンピュータ可読媒体を提供する。
【０００６】
いくつかの実施形態において、ユーザによってアクセスされているクライアントデバイス上でホスティングされたアプリケーション（以下、「アプリ」）に組み込まれたデジタルフィンガープリントエンジンは、様々なデバイス又はユーザデータを読み取り、その後そのデバイス上でローカルに格納されたアウト・オブ・バンド・データを表す一組の符号化ユーザ検証データ（以下、「デジタルフィンガープリント」）を作成する。データは、特定の１又は複数のパーソナルデータアイテム（例えば、連絡先、カレンダー、写真アイテム等）、デバイスシリアル番号、デバイスＵＵＩＤ番号、デバイス電話番号、及び同様のものを含み得る。いくつかの実施形態において、ユーザ検証データは、一方向の符号化方式（例えば、ハッシュ関数によって生成されるハッシュとして符号化）を用いて符号化される。
【０００７】
いくつかの実施形態において、アプリは、クラウドを介してビジネスサーバとコンタクトをとるように構成され、一組のデジタルフィンガープリントはクライアントデバイスからビジネスサーバへ送信された認証要求に含まれる。いくつかの実施形態において、デジタルフィンガープリント検証サービスは、それらが以前に検証されたユーザ群を表す格納された一組のデジタルフィンガープリントのいずれかとマッチングするかどうかを判断することによって一組のデジタルフィンガープリントを検証する。いくつかの実施形態において、デジタルフィンガープリント検証サービスから返された検証結果は、認証要求を処理する際にビジネスサーバによって用いられる。
【０００８】
本明細書で説明されるシステム及び技術は、以下の利点の１又は複数を提供し得る。
【０００９】
アウト・オブ・バンド・データはハッカーが利用可能ではないので、アウト・オブ・バンド・データは認証要求が不正なユーザから来ていないことを検証する際に使用する付加的な情報を供給する。符号化方式は可逆でないので、データの符号化はユーザのプライバシが保護されることを保証する。したがって、デジタルフィンガープリントは検証のために比較され得るが、ユーザアイデンティティは匿名である。
【００１０】
複数の企業が、同一のデジタルフィンガープリント検証サービスを共有し、検証処理の効率を最適化し得る。いくつかの実施形態において、デジタルフィンガープリントエンジンのインスタンスは、同一のクライアントデバイス上でホスティングされた複数のアプリに組み入れられ得、生成されたデジタルフィンガープリントはキャッシュされ得る。いったん１つのアプリによって送信された認証要求を通じてユーザが検証されると、他のアプリのいずれによって送信されている同一のユーザの代わりに認証要求がより迅速に処理され得る。
【００１１】
本明細書において説明される主題の１又は複数の実施形態の詳細は、添付図面及び下記の記載に明記される。主題の他の特徴、態様及び利点は、明細書、図面及び請求項から明らかとなるであろう。
【図面の簡単な説明】
【００１２】
一般用語を用いて本発明を説明したので、添付図面を参照するがこれらは必ずしも縮尺通りに描かれていない。
【００１３】
【図１】一連のイベントを実装するように構成され得る例示的なシステムを説明し、これらの少なくともいくつかは本明細書で説明されるいくつかの実施形態に係るアウト・オブ・バンド・データから導出されるユーザ検証信号を分析することに基づいてユーザ検証サービスを提供することを容易にするシステムとのユーザインタラクションに応えるものであり得る。
【００１４】
【図２】本明細書で説明されるいくつかの実施形態に係るユーザによってアクセスされているクライアントデバイス上でローカルに格納されたデータから導出される一組のユーザ検証信号を生成する例示的な方法のフロー図である。
【００１５】
【図３】本明細書で説明されるいくつかの実施形態に係るフィンガープリント検証要求を受信することに応えて一組のデジタルフィンガープリントを検証する例示的な方法のフロー図である。
【００１６】
【図４】本発明の一部を具体化することができるコンピュータシステムを表現する。
【発明を実施するための形態】
【００１７】
以下では、本発明が添付図面を参照してより十分に説明されるが、ここでは本発明の実施形態の全てではなくいくつかが示されている。実際に、本発明は多く異なる形態で具現化され得、本発明が本明細書に明記される実施形態に限定されていると解釈されるべきではない。むしろ本開示が適切な法的要件を満たすように、これら実施形態が提供される。全体を通して、同様の番号は同様の要素を指す。
【００１８】
本明細書で説明されるように、システムコンポーネントは、互いに１又は複数のシステムコンポーネントと通信可能に連結され得る。コンポーネントが別個のものである又は異なるものであるとして説明されるが、コンポーネントのうち２又はそれより多くが１回の処理又はルーチンとなるよう組み合わされ得る。異なる機能の担当の分離を含む本明細書で提供されるコンポーネントの機能的な記載は、一例である。他のグループ分け又は他の機能的な担当の区分けは、必要に応じて又は設計の好みに従ってされ得る。
【００１９】
本明細書で用いられる場合、「データ」、「コンテンツ」、「情報」及び同様の用語は、様々な例示的な実施形態に従ってキャプチャ、送信、受信、表示及び／又は格納されることができるデータを指すのに区別なく用いられ得る。したがって、このようないずれかの用語の使用により、本開示の思想及び態様が限定されるべきではない。更に、コンピューティングデバイスが別のコンピューティングデバイスからデータを受信すると本明細書で説明される場合、データは別のコンピューティングデバイスから直接的に受信され得、又は例えば１つ又は複数のサーバ、リレー、ルータ、ネットワークアクセスポイント、基地局及び／又は同様のもののような１又は複数の中間のコンピューティングデバイスを介して間接的に受信され得る。同様に、コンピューティングデバイスが別のコンピューティングデバイスにデータを送信すると本明細書で説明される場合、データは別のコンピューティングデバイスへ直接的に送信され得、又は例えば１つ又は複数のサーバ、リレー、ルータ、ネットワークアクセスポイント、基地局及び／又は同様のもののような１又は複数の中間のコンピューティングデバイスを介して間接的に送信され得る。
【００２０】
本明細書で用いられる場合、「アウト・オブ・バンド・データ」という用語は、ユーザによって直接供給されないデータの任意のタイプ又はソース（例えば、連絡先のアドレス帳、選曲、及び同様のものを含むユーザのパーソナルデータのようなユーザのデバイス上のデータ）及びユーザがデバイスをどのように接続するかに関するデータ（例えば、無線キャリア情報、ケーブルプロバイダ接続データ及び同様のもの）を指す。アウト・オブ・バンド・データは、ユーザが修正することができないもの（例えば、無線キャリア供給タワーベースのユーザ場所）、ユーザが容易に編集することが困難であるもの（例えば、携帯電話のシリアル番号）、又はユーザがアクセス可能なもの（例えば、アドレス帳）であり得る。
【００２１】
本明細書で用いられる場合、「ローカルに格納されたデータ」という用語は、デバイスの永久的な（内部）メモリに格納されたデータ、デバイス上の「アドイン」型のメモリ（例えば、ＳＤカードメモリストレージ又はマイクロＳＤメモリストレージ）に格納されたデータ、及び／又はデバイスの「仮想メモリストレージ」（例えば、ＧｏｏｇｌｅＤｒｉｖｅ、ＤｒｏｐＢｏｘ、Ｍｉｃｒｏｓｏｆｔ  ＯｎｅＤｒｉｖｅ及びデバイスに関連付けられた同様のもの）に格納されたデータを指す。
【００２２】
本明細書で用いられる場合、「フィンガープリント」、「デジタルフィンガープリント」及び「ユーザ認証デジタルフィンガープリント」という用語は、そのデバイス上にローカルに格納されたアウト・オブ・バンド・データを表す符号化ユーザ検証データを指すのに区別なく用いられ得る。
【００２３】
本明細書で用いられる場合、アプリケーション又は「アプリ」という用語は、デバイス上で実行されるソフトウェアアプリケーションを指すのに用いられる。「モバイルアプリ」という用語は、モバイルデバイス（例えば、携帯電話、タブレット、ラップトップ及び同様のもの）上でホスティングされたアプリを指すのに用いられる。 
【００２４】
本明細書で用いられる場合、「ハッシュ関数」という用語は、任意のサイズのデジタルデータを（例えば、固定サイズの）別の一組のデジタルデータにマッピングするべく用いられ得る任意の関数を指すのに用いられる。ハッシュ関数によって返される値は、ハッシュ値、ハッシュコード、又はハッシュと呼ばれ得る。
【００２５】
この点については、アウト・オブ・バンド・データ（すなわち、ユーザによって直接供給されないデータ）から導出されるデジタルフィンガープリント信号を分析することに基づいてユーザ検証サービスを提供するフレームワークを提供することに関連する複数の技術の例が、本明細書で説明される。
【００２６】
図１は、一連のイベントを実装するように構成され得る例示的なシステム１００を説明し、そのうちの少なくともいくつかは、アウト・オブ・バンド・データから導出されるユーザ検証信号（以下、「デジタルフィンガープリント」）を分析することに基づいてデジタルフィンガープリント検証サービスを提供することを容易にするシステムとのユーザインタラクションに応え得る。  複数の実施形態において、システム１００は、クライアントデバイス１１０、ビジネスサーバ１３０及びデジタルフィンガープリント検証サービス１４０を備えるクラウドベースシステムである。ユーザがインタラクトするクライアントデバイス１１０は、クラウド１２０介してビジネスサーバ１３０と接続し、クライアントデバイス１１０にローカルなデータソース１１９ａ−ｘのうちの１つ又はそれらの組み合わせから導出される一組のユーザ検証信号を含有するデジタルフィンガープリントを生成するデジタルフィンガープリントエンジン１１７を含む少なくとも１つのアプリ１１５をホスティングするように構成される。ビジネスサーバ１３０は、アプリ１１５からユーザ認証要求１１２を受信するように構成され、認証要求はユーザ識別データ及びデジタルフィンガープリントエンジン１１７によって生成されたデジタルフィンガープリントを含む。ビジネスサーバ１３０は、顧客プロファイルリポジトリ１３５を用いるユーザ識別情報の検証に加えて、デジタルフィンガープリントの検証に基づいてユーザを認証し、認証結果１３４をアプリ１１５へ返すように更に構成される。デジタルフィンガープリント検証サービス１４０は、少なくとも１つのデジタルフィンガープリントを含むフィンガープリント検証要求１３２を受信し、受信されたデジタルフィンガープリントを検証し、フィンガープリント検証要求１３２のイニシエータへ検証結果１４４を返すように構成される。
【００２７】
いくつかの実施形態において、デジタルフィンガープリント検証サービス１４０は、異なる企業のグループ内の企業の少なくともの１つと以前にインタラクトしたユーザのデジタルフィンガープリントを格納しているフィンガープリントリポジトリ１４５を用いて、グループからのデジタルフィンガープリント検証要求１３２を処理する別個のクラウドベースサービスとして展開される。いくつかの代替の実施形態において、デジタルフィンガープリント検証サービス１４０は、ビジネスサーバ１３０のコンポーネントとして展開され、フィンガープリントリポジトリ１４５は、企業と以前にインタラクトしたユーザのデジタルフィンガープリントを格納する。デジタルフィンガープリント検証サービス１４０の展開選択は、実装決定であり、本発明にとって重大ではない。
【００２８】
いくつかの実施形態において、デジタルフィンガープリントエンジン１１７は、クラウド１２０介してビジネスサーバ１３０と接続するように設計された任意のアプリ１１５に組み入れられる別個の機能的コンポーネントであり得る。デジタルフィンガープリント検証サービス１４０が別個のサービスとして実装されるいくつかの実施形態において、デジタルフィンガープリント検証サービス１４０は、ソフトウェア開発キット（ＳＤＫ）を提供し、デジタルフィンガープリントエンジン１１７のインスタンスをアプリのネイティブ機能とともにアプリに組み入れることを容易にし得る。そこで、例えば、いくつかの実施形態において、一組の生成されたデジタルフィンガープリントと同一ものは、デジタルフィンガープリントエンジン１１７のインスタンスをそれぞれ含むいくつかのアプリによってアクセスされ、それらのアプリのいずれかとインタラクトすることによって企業のグループのいずれかと接続しているユーザを検証するよう同一のクライアントデバイス上でホスティングされ得る。
【００２９】
いくつかの実施形態において、デジタルフィンガープリントエンジン１１７は、様々なデバイス又はユーザデータ１１９ａ−ｘを読み取り、その後そのデバイス上にローカルに格納されたアウト・オブ・バンド・データを表す１又は複数のデジタルフィンガープリントを作成する。データは、特定の１又は複数パーソナルデータアイテム（例えば、連絡先、カレンダー、写真アイテム、及び選曲）、デバイスシリアル番号、デバイスＵＵＩＤ番号、デバイス電話番号、同様のものを含み得る。１又は複数のデジタルフィンガープリントは、以前に検証されたユーザを表す格納されたデジタルフィンガープリントに後でマッチングされ、同一のユーザが同一又は別のアプリケーションに後の時間にログインする場合を判断し得る。
【００３０】
いくつかの実施形態において、生成された一組のデジタルフィンガープリントは、デジタルフィンガープリントエンジン１１７によって後のアクセスのためにクライアントデバイス上でローカルにキャッシュされ得る。いくつかの実施形態において、デジタルフィンガープリントエンジン１１７は、キャッシュされたフィンガープリントを生成するのに用いられたローカルデータが変わった（例えば、データの追加、削除、又は修正）かどうかを判断し、データが変わった場合、デジタルフィンガープリントを再生成するように更に構成され得る。いくつかの実施形態において、デジタルフィンガープリントエンジン１１７は、デジタルフィンガープリントが変わったことをデジタルフィンガープリント検証サービス１４０に通知し、デジタルフィンガープリント検証サービス１４０がフィンガープリントリポジトリ１４５に格納されたデジタルフィンガープリントを更新し得るように、再生成されたデジタルフィンガープリント及び／又は変更を表すデルタを供給し得る。
【００３１】
図２は、ユーザによってアクセスされているクライアントデバイス上にローカルに格納されたデータから導出される一組のユーザ検証信号を生成する例示的な方法２００のフロー図である。便宜上、方法２００は、１又は複数のコンピューティングデバイスを含み、方法２００を実行するシステムに関連して説明される。具体的に、方法２００は、デジタルフィンガープリントエンジン１１７によってデジタルフィンガープリントを生成することに関連して説明される。
【００３２】
複数の実施形態において、システムは、クライアントデバイス１１０上にローカルに格納されたデータ１１９ａ−ｘからユーザ検証信号に関連付けられた一組の属性を記述する属性データを取り出す（２０５）。
【００３３】
複数の実施形態において、システムは、一方向の符号化アルゴリズムを用いて代替符号化となるよう属性データをマッピングする（２１０）。例えば、いくつかの実施形態において、一方向の符号化アルゴリズムはハッシュ関数であり、代替符号化はハッシュである。この一方向は、生成されているユーザ検証信号が特定のユーザを検証するフィンガープリントとして機能することを保証するだけでなく、ユーザの情報が匿名のままであることも保証する。符号化アルゴリズムの選択は、実装選択であり、したがって本発明にとって重大ではない。
【００３４】
限定ではなく図示のために提示される例示的なユーザ検証信号は、いくつかの実施形態において、ユーザの音楽ライブラリ上で（格納された又はストリーミング／視聴された）それぞれの歌又はアルバムのハッシュのうちの１つ又はそれらの組み合わせ、音楽のタイプ（例えば、ラップ、ジャズ、カントリー音楽）毎の格納された異なる歌の相対数を示すヒストグラム（カウント）、及び音楽のタイプ毎の視聴された（すなわち、格納せず再生のみすることがあるストリーミングアカウントに用いられる）異なる歌の相対数を示すヒストグラム（カウント）を表すユーザの音楽フィンガープリントである。例えば、ユーザ検証信号がクライアントデバイス上の７０％のラップソングをユーザが聴いたと示した場合、そのユーザが９０％のクラシック音楽を聴いたという以前に生成された（場合によっては異なるクライアントデバイスから生成された）そのユーザの信号とマッチングする可能性がある。
【００３５】
限定ではなく図示のために提示されるユーザ検証信号の第２の例は、ユーザの物理的な動作のデータである。現在では、ユーザのウォーキングスタイル（加速、減速のタイプ）は、しばしばユーザの電話上で格納される。このデータは、ウォーキングスタイル等のユーザの「動作のフィンガープリント」もまた提供し得る。動作のデータは、マクロな物理的な動作のタイプ（ウォーキング）だけでなく、タッチスクリーン上の１又は複数の指入力のユーザの指入力のスタイル／速度（ストロークのタイプ、弧線のスタイル、圧力、スタイル、時間遅延、方向、及び同様のもの）であり得る。タッチスクリーン上で常に１本の指で「タイプする」人もいれば、２本のアームでタブレットを保持し２又はそれより多くの異なる指で「タイプする」人等もいる。
【００３６】
複数の実施形態において、デジタルフィンガープリントは、クライアントデバイス内の様々なデータ要素をそれぞれ表す大量の符号化値を含み得る。いくつかの実施形態において、生成されたデジタルフィンガープリントに含まれるデータ要素の最小閾値サイズが存在し、将来の比較がデータの代表量に基づいていることを保証する。したがって、例えば、ちょうど３つの連絡先を含むアドレス帳は、生成されたデジタルフィンガープリントに含まれないだろう。いくつかの実施形態において、迅速なマッチングを可能とするように、検証信号が最小閾値サイズを満たすデータ要素の量を含むローカルに格納されたデータソースのサブサンプリングによって導出され得る。いくつかの実施形態において、一組の異なるサブサンプリングアルゴリズムが、複数のデータセットを生成すべくデータソースをランダムにサブサンプリングするのに用いられ得る。
【００３７】
限定ではなく図示の例として、フィンガープリントは、クライアントデバイスの連絡先リストの１０００の連絡先のそれぞれに関連付けられた属性に基づいて生成され得る。それぞれの連絡先のコンテンツ（全て又は事前に決められた数の属性フィールドのデータ）は、ハッシュ化され得、連絡先に対応するハッシュ化された情報はフィンガープリントに含まれ得る。例えば、フィンガープリントが、全ての連絡先、最初のＮの連絡先、最後のＮの連絡先、特定の文字で始まる最初のＮの連絡先、又はその他の事前に決められたルールからハッシュ化された属性を含め得ることは、留意されるべきである。Ｎは、任意の整数でよい。ルールの選択は、本発明にとって重大ではない。
【００３８】
いくつかの実施形態において、フィンガープリント発生の時間デルタは、ユーザ検証信号に含まれて得る。１００要素の連絡先リストの例を参照すると、現在生成されている１０００の出力ハッシュが、以前に生成された１０００の出力ハッシュと比較され、ユーザがおそらく「同一のユーザのように見える」かどうかを確認し得る。それら２つを生成する間の時間差が２４時間未満の場合、その場合は最大閾値以下のアドレス帳の変更（例えば、２０）が２４時間以内に起こったと予想し得る。しかしながら、例えば、変更数が最大閾値より著しく大きい場合（例えば、１０００のアドレス帳の連絡先の９００が過去２４時間内に変わった場合）、その場合はユーザ検証信号が同一のユーザを表していない可能性が非常に高い。
【００３９】
複数の実施形態において、システムは、デジタルフィンガープリントに用いられる同一符号化アルゴリズムを用いる代替符号化となるようユーザに関連付けられたユーザ識別データ（例えば、ユーザの電話番号、電子メールアドレス、社会保障番号のような個人情報、ログインユーザＩＤ、及びパスワードのうちの１つ又はそれらの組み合わせ）をマッピングする（２１５）。いくつかの実施形態において、デジタルフィンガープリントエンジン１１７は、最初の一組の生成されたデジタルフィンガープリントをフィンガープリントサービス１４０に移し、デジタルフィンガープリントが将来のフィンガープリント検証要求１３２を処理する際に用いられ得るように、フィンガープリントサービス１４０はフィンガープリントリポジトリ１４５に最初の一組の生成されたデジタルフィンガープリントを格納する。いくつかの実施形態において、フィンガープリントの符号化ユーザ識別データは、フィンガープリント検証要求１３２で受信されたデジタルフィンガープリントが同一のユーザに関連付けられて以前に格納されていることを判断するのに用いられ得る。
【００４０】
図３は、フィンガープリント検証要求を受信することに応えて一組のデジタルフィンガープリントを検証する例示的な方法３００のフロー図である。便宜上、方法３００は、１又は複数のコンピューティングデバイスを含み、方法３００を実行するシステムに関連して説明される。具体的には、方法３００は、デジタルフィンガープリント検証サービス１４０によって一組のデジタルフィンガープリントを検証することに関連して説明される。
【００４１】
複数の実施形態において、システムは、ユーザに関連付けられた符号化検証データを含むフィンガープリント検証要求を受信する（３０５）。いくつかの実施形態において、符号化検証データは、ユーザによってアクセスされているクライアントデバイス上でローカルに格納されたアウト・オブ・バンド・データ（例えば、１又は複数のパーソナルデータアイテム（例えば、連絡先、カレンダー、写真アイテム等）、デバイスシリアル番号、デバイスＵＵＩＤ番号、デバイス電話番号、及び同様のもの）から導出される一組のデジタルフィンガープリントだけでなく、ユーザ識別データ（例えば、ユーザの電話番号、電子メールアドレス、社会保障番号のような個人情報、ログインユーザＩＤ、及びパスワードのうちの１つ又はそれらの組み合わせ）を含み得る。
【００４２】
複数の実施形態において、システムは、受信された符号化検証データが検証されたユーザ群を表す少なくともいくつかの格納された符号化検証データ（例えば、フィンガープリントリポジトリ１４５に格納された符号化検証データ）とマッチングするかどうかを判断することによってフィンガープリントを検証する（３１０）。
【００４３】
いくつかの実施形態において、データの検証は、完全なマッチングを見つけることに依存せず、おおよそのマッチングで十分であり得る。ユーザのクライアントデバイス上で格納された連絡先リストに基づいてハッシュ化されたフィンガープリントの例を参照すると、フィンガープリント要求に含まれる符号化検証データは、最近リストに追加された連絡先からのデータを含み得る。したがって、検証されるデジタルフィンガープリントは、フィンガープリントリポジトリに格納されたデータと正確にマッチングしなくてもよい（例えば、９割の連絡先がマッチングする）。いくつかの実施形態において、システムは、フィンガープリント要求内に含まれる符号化検証データが検証されたユーザを表す格納されたデータとマッチングする確率を表す検証スコアを算出する。いくつかの実施形態において、検証スコアは、検証スコアの閾値と比較され、システムは検証スコアが検証スコアの閾値を満たすかどうかに基づいて検証結果を算出する。
【００４４】
いくつかの実施形態において、デジタルフィンガープリント検証サービス１４０は、ブラックリストに登録されたユーザ群（例えば、不良債権、支払の滞り及び同様のもののような所望されない特性を有すると企業に知られているユーザ）を表す格納された一組の検証されたフィンガープリントデータを維持する。いくつかの実施形態において、フィンガープリント要求に含まれる符号化検証データは、ブラックリストに登録されたユーザ群を表すデータと比較され得、少なくとも高確率のマッチングと判断される場合、システムはフィンガープリントによって表されるユーザは検証されていないことを示す検証結果を返す。
【００４５】
図４は、本発明の一部を具体化することができるコンピュータシステム４００の代表図である。多くの他のハードウェア及びソフトウェアの構成が本発明での使用に好適であることは、当業者にとって容易に明らかだろう。例えば、コンピュータは、デスクトップ、ラップトップ、ポータブル、ラックマウント、スマートフォン、又はタブレットの構成であり得る。更に、コンピュータは、一連のネットワーク接続されたコンピュータであり得る。更に、他のマイクロプロセッサの使用は、例えばＰｅｎｔｉｕｍ（登録商標）又はＩｔａｎｉｕｍ（商標）マイクロプロセッサ、Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ  ＩｎｃからのＯｐｔｅｒｏｎ（商標）又はＡｔｈｌｏｎＸＰ（商標）マイクロプロセッサ、ＡＲＭ（登録商標）  Ｈｏｌｄｉｎｇｓ  ｐｌｃ．からライセンスを受けたＡＲＭ（登録商標）のような組み込みプロセッサ、及び同様のものが考えられる。更に、他のタイプのオペレーティングシステムは、例えばＭｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎからのＷｉｎｄｏｗｓ（登録商標）、ＷｉｎｄｏｗｓＸＰ（登録商標）、ＷｉｎｄｏｗｓＮＴ（登録商標）、ＷｉｎｄｏｗｓＲＴ（登録商標）、又は同様のもののようなオペレーティングシステム、Ｓｕｎ  ＭｉｃｒｏｓｙｓｔｅｍｓからのＳｏｌａｒｉｓ、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）、又はＧｏｏｇｌｅ  Ｉｎｃ．からのＡｎｄｒｏｉｄ（登録商標）、Ａｐｐｌｅ  Ｉｎｃ．からのｉＯＳ（登録商標）、Ｎｏｋｉａ  Ｃｏｒｐ．からのＳｙｍｂｉｏｎ（登録商標）、及び同様のもののようなモバイルオペレーティングシステムが考えられる。更に他の実施形態では、上記の技術は、チップ又は補助処理基板上で実装され得る。
【００４６】
様々な本発明の実施形態は、ソフトウェア又はハードウェアのロジック又は両方の組合せの形態で実装され得る。ロジックは、本発明の複数の実施形態において開示される一組の段階を実行するようコンピュータシステムのプロセッサを指示するよう適合される一組の命令としてコンピュータ可読又は機械可読非一時的記憶媒体に格納され得る。ロジックは、本発明の複数の実施形態において開示される一組の段階を実行するよう情報処理デバイスを指示するよう適合されるコンピュータプログラム製品の一部を形成し得る。本明細書で提供される開示及び教示に基づいて、当業者は本発明を実装する他の手段及び／又は方法を認識するだろう。
【００４７】
本発明の上記の複数の実施形態は、例示的なものであり、限定的なものではない。本発明の上記の複数の実施形態は、様々な代替物及び均等物が可能であるので、１又は複数の組合せで組み合わされ得る。本発明はモバイルデバイスを参照して説明されているが、本発明はデバイスのタイプによって限定されないことが理解される。  本発明は例として特定の無線通信インタフェースを参照して説明されているが、本発明は無線装置、無線又は有線の通信インタフェースのタイプによって限定されないことが理解される。本発明は例として特定のオペレーティングシステムを参照して説明されているが、本発明はオペレーティングシステムのタイプによって限定されないことが理解される。他の追加、削除又は修正が本開示を考慮して明らかであり、添付の請求項の範囲内に含まれることが意図される。
【００４８】
本発明の複数の実施形態は、方法、装置、システム及びコンピュータプログラム製品のブロック図及びフローチャート図を参照して上記の説明がされた。回路図及びプロセスフローチャートのそれぞれのブロック及び回路図及びプロセスフローチャートのブロックの組合せは、コンピュータプログラム命令を含む様々な手段によってそれぞれ実装され得ることが理解される。これらコンピュータプログラム命令は、機械を生成するよう汎用コンピュータ、専用コンピュータ、又は他のプログラム可能なデータ処理装置上にロードされ得、コンピュータプログラム製品はコンピュータ又は他のプログラミング可能なデータ処理装置上で実行される場合、フローチャートブロック又は複数のブロックで特定される機能を実装する手段を作成する命令を含む。
【００４９】
これらコンピュータプログラム命令はまた、特定の態様で機能するようコンピュータ又は他のプログラミング可能なデータ処理装置を指示し得るコンピュータ可読記憶デバイスに格納され得、コンピュータ可読記憶デバイスに格納される命令が本明細書で説明される機能を実装するコンピュータ可読命令を含む製造品を生成する。コンピュータプログラム命令はまた、コンピュータ実装処理を生成するようコンピュータ又は他のプログラム可能な装置上で一連の動作段階を実行させるようコンピュータ又は他のプログラミング可能なデータ処理装置上にロードされ得、コンピュータ又は他のプログラム可能な装置上で実行される命令が本明細書で説明される機能を実装する段階を提供する。
【００５０】
したがって、ブロック図及びフローチャート図のブロックは、特定の機能を実行する手段の組合せ、特定の機能を実行する段階の組合せ、及び特定の機能を実行するプログラム命令手段をサポートする。回路図及び処理フローチャートのそれぞれのブロック及び回路図及び処理フローチャートのブロックの組合せは、特定の機能又は段階を実行する専用ハードウェアベースのコンピュータシステム又は専用ハードウェア及びコンピュータ命令の組合せによって実装され得ることもまた理解されるだろう。
【００５１】
本明細書に明記される本発明の多くの修正及び他の実施形態は、前述の記載及び関連図面において提示された教示の利益を有するこれら発明に関連する当業者には思い浮かぶだろう。例えば、本及びマルチメディアアプリケーションを含む例が本明細書で説明されているが、いくつかの実施形態は、媒体の任意の好適なタイプを注釈し、及び／又はそうでなければ再度まとめて共有するように構成され得る。したがって、本発明は開示された特定の実施形態に限定されないこと及び修正及び他の実施形態は添付の請求項の範囲内に含まれることが意図されていることが理解される。本明細書で特定の用語が使用されるが、それらは一般的にかつ意味の説明のみに用いられ、限定ために用いられていない。
【図１】
2017532707.tif 000003
【図２】
2017532707.tif 000004
【図３】
2017532707.tif 000005
【図４】
2017532707.tif 000006
【国際調査報告】
2017532707.tif 000007