(57)【特許請求の範囲】
【請求項１】
モバイルデバイスであって、
少なくとも1つのプロセッサと、
命令を記憶するメモリとを備え、前記命令が、前記少なくとも1つのプロセッサによって実行されるときに前記モバイルデバイスに
モバイルアプリケーションによってレンダリングされたコンテンツを特定することであって、前記コンテンツが、スクリーンキャプチャイベントのセッション中にレンダリングされる、特定すること、
前記コンテンツから特徴ベクトルを生成すること、
前記特徴ベクトルが分類モデルに合致しないと判定すること、および
前記特徴ベクトルが前記分類モデルに合致しないという判定に応じて、前記モバイルデバイスのユーザを認証するように構成されたチャレンジを提供することを行わせる、モバイルデバイス。
【請求項２】
前記セッションが、スクリーンキャプチャイベントの第1のセッションであり、前記チャレンジが、前記第1のセッションと異なるスクリーンキャプチャイベントの以前のセッションに基づき、前記以前のセッションが、前記分類モデルに合致した特徴ベクトルを含む、請求項1に記載のモバイルデバイス。
【請求項３】
前記セッションが、スクリーンキャプチャイベントの第1のセッションであり、前記チャレンジが、前記第1のセッションと異なるスクリーンキャプチャイベントの以前のセッションに基づき、前記以前のセッションが、信頼できる場所を使用して確認された特徴ベクトルを含む、請求項1に記載のモバイルデバイス。
【請求項４】
前記セッションが、スクリーンキャプチャイベントの第1のセッションであり、前記チャレンジが、前記第1のセッションと異なるスクリーンキャプチャイベントの以前のセッションに基づき、前記以前のセッションが、以前のチャレンジによって確認された特徴ベクトルを含む、請求項1に記載のモバイルデバイス。
【請求項５】
前記チャレンジが、前記分類モデルに合致した特徴ベクトルを含んでいたスクリーンキャプチャイベントの以前のセッション内で前記モバイルデバイスによって表示されたスクリーンから欠けた情報を補って完成させるように前記ユーザを促すように構成される、請求項1に記載のモバイルデバイス。
【請求項６】
前記チャレンジを提供することが、
前記分類モデルに合致する特徴ベクトルを含んでいたスクリーンキャプチャイベントの以前のセッション内で前記モバイルデバイスによって表示されたスクリーンから情報を抽出することと、
抽出された情報に基づいて多肢選択式の質問を生成することとを含む、請求項1に記載のモバイルデバイス。
【請求項７】
前記メモリが、前記少なくとも1つのプロセッサによって実行されるときに前記モバイルデバイスに
前記チャレンジに対する応答を受信させ、
前記応答が前記チャレンジに失敗するときに前記モバイルデバイスをロックさせる命令をさらに記憶する、請求項1に記載のモバイルデバイス。
【請求項８】
前記チャレンジが、一連のサブチャレンジを含む、請求項1に記載のモバイルデバイス。
【請求項９】
モバイルデバイスが信頼できる場所に位置していると判定するステップと、
スクリーンキャプチャイベントのセッションから情報をキャプチャするステップであって、前記情報が、前記セッション中に前記モバイルデバイス上で実行されているモバイルアプリケーションによってレンダリングされたコンテンツに由来する、ステップと、
前記セッションに関する特徴ベクトルを生成するステップと、
訓練基準が満たされるまでキャプチャする前記ステップおよび判定する前記ステップを繰り返すステップと、
前記特徴ベクトルの少なくとも一部を使用して分類モデルを訓練するステップと、
訓練された分類モデルを使用して前記モバイルデバイスのユーザを認証するステップとを含む、方法。
【請求項１０】
前記訓練基準が、最低限の量のセッションまたは最低限の分類精度を含む、請求項9に記載の方法。
【請求項１１】
前記訓練された分類モデルを使用して前記ユーザを認証するステップが、
前記セッション中にモバイルアプリケーションによってレンダリングされたコンテンツに基づいてスクリーンキャプチャイベントの現在のセッションを決定することと、
前記現在のセッションに関する特徴ベクトルを生成することと、
前記特徴ベクトルが前記分類モデルに合致しないと判定することに応じて、前記モバイルデバイスのユーザを認証するように構成されたチャレンジを提供することとを含む、請求項9に記載の方法。
【請求項１２】
前記モバイルデバイスが信頼できる場所に位置していると判定するステップが、
信頼できる場所を決定するために前記モバイルデバイスに関連するユーザプロファイルにアクセスするステップと、
前記モバイルデバイスが前記信頼できる場所に現在位置していると判定するステップとを含む、請求項9に記載の方法。
【請求項１３】
前記信頼できる場所が、全地球測位システム(GPS)座標によって表され、前記モバイルデバイスが、現在のGPS座標を使用して、前記モバイルデバイスが前記信頼できる場所に現在あるかどうかを判定する、請求項12に記載の方法。
【請求項１４】
前記信頼できる場所が、ワイヤレスネットワーク識別子によって表され、前記モバイルデバイスが、前記モバイルデバイスが接続されるワイヤレスネットワークが前記ワイヤレスネットワーク識別子に合致するかどうかを判定する、請求項12に記載の方法。
【請求項１５】
モバイルデバイスであって、
少なくとも1つのプロセッサと、
命令を記憶するメモリとを備え、前記命令が、前記少なくとも1つのプロセッサによって実行されるときにモバイルデバイスに
モバイルアプリケーションによってレンダリングされたコンテンツを特定することであって、前記コンテンツが、スクリーンキャプチャイベントのセッション中にレンダリングされる、特定すること、
前記コンテンツから特徴ベクトルを生成すること、
前記特徴ベクトルに分類モデルを適用すること、
前記分類モデルの適用に基づいて前記特徴ベクトルが第1のユーザプロファイルに合致するかどうかを判定することであって、前記第1のユーザプロファイルが、第2のユーザプロファイルと異なり、前記モバイルデバイスが、前記第2のユーザプロファイルに現在関連付けられている、判定すること、および
前記特徴ベクトルが前記第1のユーザプロファイルに合致すると判定することに応じてプロファイルの切り替えを開始することを行わせる、モバイルデバイス。
【請求項１６】
前記メモリが、前記少なくとも1つのプロセッサによって実行されるときに前記モバイルデバイスに
前記特徴ベクトルがユーザプロファイルに合致しないと判定することと、
前記モバイルデバイスのユーザを認証するように構成されたチャレンジを提供することとを行わせる命令をさらに記憶する、請求項15に記載のモバイルデバイス。
【請求項１７】
前記チャレンジが、前記第2のユーザプロファイルに関連する以前のセッション中にレンダリングされた第2のコンテンツに基づき、前記第2のコンテンツが、前記分類モデルによって前記第2のユーザプロファイルに一致する特徴ベクトルに関連付けられる、請求項16に記載のモバイルデバイス。
【請求項１８】
前記チャレンジが、前記特徴ベクトルに関して前記第1のユーザプロファイルが前記第2のユーザプロファイルよりも高い信頼性のスコアを有すると前記分類モデルが判定するとき、前記第1のユーザプロファイルに関連する以前のセッション中にレンダリングされた第2のコンテンツに基づく、請求項16に記載のモバイルデバイス。
【請求項１９】
前記メモリが、前記少なくとも1つのプロセッサによって実行されるときに前記モバイルデバイスに
モバイルデバイスが前記第2のユーザプロファイルに関連する信頼できる環境内に位置していると判定することと、
前記モバイルデバイス上で実行されているモバイルアプリケーションによってレンダリングされたコンテンツを認識することであって、前記コンテンツが、スクリーンキャプチャイベントのセッション中にレンダリングされる、認識することと、
前記コンテンツに関する特徴ベクトルを生成することと、
少なくとも最低限の量のセッションに関して前記認識することおよび前記生成することを繰り返すことと、
前記特徴ベクトルを肯定的な例として使用して前記分類モデルを訓練することであって、前記肯定的な例が、前記第2のユーザプロファイルに関連付けられる、訓練することとによって前記分類モデルを訓練させる命令をさらに記憶する、請求項15に記載のモバイルデバイス。
【請求項２０】
前記第1のユーザプロファイルに関連する肯定的な例が、前記分類モデルを訓練する際に前記第2のユーザプロファイルに関する否定的な例として使用される、請求項19に記載のモバイルデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、SCREEN-ANALYSIS BASED DEVICE SECURITYと題した2015年6月15日に出願した米国特許出願第14/739,107号の優先権を主張するものである。
【背景技術】
【０００２】
スマートフォン、ウェアラブルデバイス、タブレット、ラップトップなどのモバイルデバイスの使用が増えてきた。これらのモバイルデバイスは、ユーザが個人的または私的であると考える情報を記憶する可能性がある。悪人の手に渡るモバイルデバイスは、無法者がその情報にアクセスすることができる結果となる可能性がある。バイオメトリクスおよびパスワードなどのセキュリティ対策がモバイルデバイスへのアクセスを保護するために利用可能であるが、そのような対策は、1日を通じて頻繁にモバイルデバイスを使用するユーザにとって煩わしいと見なされる可能性があり、無効にされる可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００３】
実施形態は、デバイスの所有者の行動および好みを学習し、これらの信号を使用して異常な活動を検出する。言い換えれば、モバイルデバイスは、分類モデル(たとえば、機械学習アルゴリズム)を使用して、所有者に典型的でないアクションを検出することができる。初めに、モバイルデバイスは、信頼できる環境内で発生するセッション中にスクリーン上に表示されたコンテンツから特徴を抽出することによってモデルを訓練する。信頼できる環境は、デバイスがユーザの家もしくは職場などの安全な場所に位置しているとき、またはユーザが1つのパスワードもしくは一連のパスワードを入力した後に存在する可能性がある。セッションは、モバイルデバイスの使用によってレンダリングされた1つのスクリーンまたは一連のスクリーンである可能性がある。したがって、セッションは、デバイス上でユーザによって使用されるモバイルアプリケーションによってレンダリングされたコンテンツをキャプチャする。分類モデルの最初の訓練の後、デバイスは、モデルを使用して、現在のセッション、たとえば、現在の活動を分析し得る。これは、推定段階である。デバイスが安全なまたは信頼できる環境内にあるとき、さらなる訓練が行われる可能性があるが、最初の訓練の後、デバイスは、推定段階に入ることができる。推定段階の間に、セッションに関するコンテンツが信頼性のレベルを満たさないとき、デバイスは、チャレンジ(challenge)を発し得る。言い換えれば、デバイスの使用中に、分類モデルは、現在の活動(または一連の活動)が異常な活動を表すと判定する可能性がある。チャレンジは、ユーザを認証するように設計され得る。チャレンジは、パスコードベースである可能性があり、または所有者の過去の認証されたセッションに基づく可能性がある。たとえば、チャレンジは、特定の時間に所有者がどの人と話したかを訪ねる可能性があり、またはたとえばモデルに一致したセッション中に最近見られたスクリーン内の不明瞭にされた情報を補って完成させるように所有者に求める可能性がある。チャレンジが満たされる場合、つまり、ユーザが正しく答える場合、デバイスは、チャレンジされたセッションからのコンテンツによって分類モデルを更新する可能性がある。たとえば、チャレンジされたセッションから生成された特徴が、分類器をさらに訓練するための肯定的な例として使用される可能性がある。チャレンジが満たされない場合、デバイスは、ロックモードになる可能性がある。
【０００４】
1つの総合的な態様においては、モバイルデバイスが、少なくとも1つのプロセッサと、少なくとも1つのプロセッサによって実行されるときにモバイルデバイスに動作を実行させる命令を記憶するメモリとを含む。この動作には、モバイルアプリケーションによってレンダリングされたコンテンツを特定することであって、コンテンツが、セッション中にレンダリングされる、特定することと、コンテンツから特徴ベクトルを生成することと、特徴ベクトルが分類モデルに合致しないと判定することとが含まれる。動作にはさらに、特徴ベクトルが分類モデルに合致しないという判定に応じて、モバイルデバイスのユーザを認証するように構成されたチャレンジを提供することが含まれる。
【０００５】
別の総合的な態様においては、方法が、モバイルデバイスが信頼できる場所に位置していると判定するステップと、セッションから情報をキャプチャするステップであって、情報が、セッション中にモバイルデバイス上で実行されているモバイルアプリケーションによってレンダリングされたコンテンツに由来する、ステップと、セッションに関する特徴ベクトルを生成するステップとを含み得る。方法は、訓練基準が満たされるまでキャプチャするステップおよび判定するステップを繰り返すステップと、訓練された分類モデルを使用してモバイルデバイスのユーザを認証するステップとをさらに含む。
【０００６】
その他の総合的な態様においては、モバイルデバイスが、少なくとも1つのプロセッサと、少なくとも1つのプロセッサによって実行されるときにモバイルデバイスに動作を実行させる命令を記憶するメモリとを含む。この動作には、モバイルアプリケーションによってレンダリングされたコンテンツを特定することであって、コンテンツが、セッション中にレンダリングされる、特定することと、コンテンツから特徴ベクトルを生成することとが含まれ得る。動作にはさらに、特徴ベクトルに分類モデルを適用することと、分類モデルの適用に基づいて特徴ベクトルが第1のユーザプロファイルに合致するかどうかを判定することであって、第1のユーザプロファイルが、第2のユーザプロファイルと異なり、モバイルデバイスが、第2のユーザプロファイルに現在関連付けられている、判定することと、特徴ベクトルが第1のユーザプロファイルに合致すると判定することに応じてプロファイルの切り替えを開始することとが含まれ得る。
【０００７】
1つの総合的な態様においては、コンピュータ可読ストレージデバイス上に具現化されたコンピュータプログラム製品が、基板内に形成された少なくとも1つのプロセッサによって実行されるときにコンピューティングデバイスに開示された方法、動作、またはプロセスのいずれかを実行させる命令を含む。別の総合的な態様は、実質的に、図面のうちの少なくとも1つに示されおよび/または図面のうちの少なくとも1つに関連して説明され、請求項により完全に記載されているように、ユーザがコンピューティングデバイスを使用するときにアプリケーションによってレンダリングされたコンテンツから生成された特徴を使用して分類モデルを訓練し、典型的でない使用が認識されるときに分類モデルを使用してチャレンジを渡すためのシステムおよび/または方法を含む。
【０００８】
本明細書において説明される対象の実施形態のうちの1つまたは複数は、以下の利点のうちの1つまたは複数を実現するように実施され得る。一例として、デバイスは、たとえ所有者がパスワードを設定しなかったとしても、またはパスワードが漏洩したとしても、所有者以外の何者かによる連続したアクセスから保護され得る。別の例として、保護は、邪魔にならない。これは、保護がユーザの指示なしに概ねバックグラウンドで行われ、ユーザに対して最小限のオーバーヘッドを生じることを意味する。別の例として、実施形態は、複数のユーザによって共有されるデバイス上でユーザプロファイルを切り替える邪魔にならない方法を提供する。コンテンツベースセキュリティシステムは、スクリーン上のコンテンツの提示に基づき、したがって、本明細書において説明される機能のいずれかを提供するためにコンテンツをレンダリングするアプリケーションに頼らない。言い換えれば、システムは、モバイルデバイス上で実行されるすべてのアプリケーションおよびひいてはすべての活動のために機能する。
【０００９】
1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。その他の特徴は、説明および図面から、ならびに請求項から明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】開示される対象による例示的なシステムを示すブロック図である。
【図２】開示される対象による別の例示的なシステムを示すブロック図である。
【図３】開示される実施形態による、スクリーン分析を使用してデバイスのセキュリティを高めるための例示的なプロセスの流れ図である。
【図４】低レベルのコンテンツベースのチャレンジを用いるモバイルコンピューティングデバイスの例示的な表示の図である。
【図５】高レベルのコンテンツベースのチャレンジを用いるモバイルコンピューティングデバイスの例示的な表示の図である。
【図６】開示される実施形態による、プロファイル分類モデルを訓練するための例示的なプロセスの流れ図である。
【図７】開示される実施形態による、スクリーン分析を使用してマルチユーザ環境におけるデバイスのセキュリティを高めるための例示的なプロセスの流れ図である。
【図８】説明される技術を実施するために使用され得るコンピュータデバイスの例を示す図である。
【図９】説明される技術を実施するために使用され得る分散型のコンピュータデバイスの例を示す図である。
【発明を実施するための形態】
【００１１】
様々な図面における同様の参照符号は、同様の要素を示す。
【００１２】
図1は、例示的な実施形態によるコンテンツベースセキュリティシステムのブロック図である。システム100は、モバイルデバイス上で実行された普通でないまたは異常な活動を検出し、そのような活動を検出した後にチャレンジを与えるために使用され得る。異常な活動は、信頼できる環境内でデバイスが使用される間にレンダリングされたコンテンツを使用して訓練された分類モデルに基づいて判定され得る。チャレンジは、モバイルデバイス上に表示するためにレンダリングされたコンテンツに基づく可能性もある。コンテンツベースセキュリティシステムは、バックグラウンドで実行されるのでユーザに関して最小限のオーバーヘッドを生じる可能性があり、パスワードを使用するまたは使用しないモバイルデバイスにセキュリティを提供することができる。図1のシステム100は、一部のデータ処理またはデータストレージがサーバ170において行われるクライアント-サーバシステムによるものである可能性がある。しかし、その他の構成およびアプリケーションが、使用される可能性がある。たとえば、データ処理およびデータストレージが、モバイルデバイス110上でのみ行われる可能性がある。一部の実施形態において、モバイルデバイス110のユーザは、処理の一部がサーバ170において実行されることを示す可能性がある。したがって、実施形態は、示された厳密な構成に限定されない。
【００１３】
モバイルコンテンツベースセキュリティシステム100は、モバイルデバイス110を含み得る。モバイルデバイス110は、通常の開かれたウェブベースの環境ではなく閉じられたモバイル環境内で動作するスマートフォンまたはその他のハンドヘルドコンピューティングデバイス、タブレット、ウェアラブルコンピューティングデバイスなどの任意のモバイルパーソナルコンピューティングデバイスである可能性がある。モバイルデバイス110は、ラップトップまたはネットベースコンピュータなどのその他の種類の電子コンピューティングデバイスである可能性もある。モバイルデバイス110は、図8に示されるコンピュータデバイス800の例である可能性がある。モバイルデバイス110は、単一のユーザによって使用されるモバイルコンピューティングデバイスである可能性があり、または複数のユーザによって共有されるモバイルデバイスである可能性がある。
【００１４】
モバイルデバイス110は、1つまたは複数の機械が実行可能な命令またはソフトウェア、ファームウェア、もしくはこれらの組合せを実行するように構成された基板内に形成された1つまたは複数のプロセッサを含み得る。プロセッサは、半導体に基づく可能性がある-つまり、プロセッサは、デジタル論理を実行することができる半導体材料を含む可能性がある。モバイルデバイス110は、したがって、一時的にか、永続的にか、準永続的にか、またはこれらの組合せでかのいずれかで1つまたは複数のデータを記憶するように構成された1つまたは複数のコンピュータメモリを含む可能性がある。モバイルデバイス110は、したがって、ソフトウェア、ファームウェア、またはこれらの組合せの形態で機械が実行可能な命令を表すアプリケーション120を含む可能性がある。アプリケーション120内で特定される構成要素は、オペレーティングシステムの一部である可能性があり、またはオペレーティングシステムを使用して実行されるように作成されたアプリケーションである可能性がある。一部の実施形態において、アプリケーション120は、モバイルアプリケーションである可能性がある。通常、モバイルアプリケーションは、閉じられた環境内で動作し、つまり、ユーザは、ウェブベースのブラウザ環境内で通常実行される活動を実行するために別々のアプリケーションを使用する。たとえば、ホテルを予約するためにbookit.comを訪れるのではなく、モバイルデバイス110のユーザは、bookit.comによって提供されたアプリケーション120のモバイルアプリケーションを使用する可能性がある。アプリケーション120は、たとえば、モバイルアプリケーションと同じまたは同様のコンテンツを提供する、モバイルアプリケーションとそっくりである可能性があるウェブアプリケーションを含む可能性もある。一部の実施形態において、アプリケーション120は、モバイルデバイス110のオペレーティングシステムによって実行される機能を含む可能性がある。
【００１５】
アプリケーション120は、スクリーンキャプチャエンジン126、スクリーン分析エンジン122、およびスクリーンベースセキュリティエンジン124を含み得る。一部の実施形態において、これらのアプリケーションのうちの1つまたは複数は、モバイルデバイス110のオペレーティングシステムによって提供される可能性がある。一部の実施形態において、これらのアプリケーションのうちの1つまたは複数は、ユーザによってダウンロードされ、インストールされる可能性がある。
【００１６】
スクリーンキャプチャエンジン126は、様々な機能を含み得る。一部の実施形態において、スクリーンキャプチャエンジン126は、アプリケーションプログラムインターフェース(API)からスクリーン上に表されたテキスト情報を得るように構成される可能性がある。一部の実施形態において、スクリーンキャプチャエンジン126は、オペレーティングシステムに組み込まれる可能性があり、現在のスクリーン上に表示されたテキストフィールドのコンテンツを判定することができる。テキスト情報は、スクリーンキャプチャされたコンテンツであると考えられる可能性があり、APIに対するそれぞれの呼び出し、またはテキストフィールドのコンテンツが判定されるそれぞれの時間が、スクリーンキャプチャであると考えられる可能性がある。一部の実施形態において、スクリーンキャプチャエンジン126は、デバイスのフレームバッファのコンテンツをコピーするかまたは読むことによってスクリーンをキャプチャするように構成される可能性がある。したがって、キャプチャされたスクリーンは、画像である可能性があり、キャプチャされた画像と呼ばれる可能性がある。スクリーンキャプチャエンジン126は、間隔をおいてスクリーンをキャプチャする可能性がある。間隔は小さく、たとえば、0.5秒毎または毎秒である可能性がある。一部の実施形態において、スクリーンキャプチャエンジン126は、タッチイベントが発生する度に(たとえば、ユーザがスクロール、ズーム、リンクのクリックなどをするためにスクリーンにタッチする度に)、明示的なユーザの要求もしくコマンドに応答して、またはデバイスがあるモバイルアプリケーションから別のモバイルアプリケーションに遷移するときにスクリーンをキャプチャするように構成される可能性がある。一部の実施形態において、スクリーンキャプチャエンジン126は、スクリーンが変化しないときにスクリーンキャプチャが発生する間隔を広くする可能性がある。言い換えれば、スクリーンが変化しないとき、スクリーンキャプチャエンジン126は、より少ない頻度で画像をキャプチャする可能性がある。スクリーンキャプチャエンジン126は、キャプチャされたコンテンツまたはスクリーン画像およびメタデータを、スクリーンキャプチャエンジン126の一部であり、モバイルデバイス110またはサーバ170などのサーバに位置している可能性がある認識エンジンに提供し得る。スクリーンキャプチャ画像が認識エンジンに提供されると、認識エンジンは、スクリーンキャプチャ画像のコンテンツ内の単語、エンティティ(entity)、ロゴなどを特定し得る。したがって、認識エンジンは、単語および画像からのものである可能性がある認識されたコンテンツを生成し得る。メタデータは、タイムスタンプ、モバイルデバイスの種類、モバイルデバイスの識別子、コンテンツがキャプチャされたときに実行されていたモバイルアプリケーション、たとえば、スクリーン上に表示されたコンテンツをレンダリングしたアプリケーションなどを含み得る。一部の実施形態において、メタデータは、どのアプリケーションがアクティブであるのか、デバイスの場所、環境光、デバイスの動きなども含み得る。システムは、この追加的なデバイスの情報を使用して、コンテンツの分析(たとえば、エンティティの��昧性の除去)、特徴の生成(たとえば、どのコンテンツが最も関連性があるかを判断すること)などを支援し得る。したがって、認識エンジンは、通常のまたは今後開発される技術を使用して文字認識、画像認識、ロゴ認識などの様々な種類の認識を実行するように構成される可能性がある。
【００１７】
モバイルデバイス110は、スクリーン分析エンジン122も含み得る。スクリーン分析エンジン122は、セッションを決定し、セッション内で特定されたコンテンツに基づいて特徴を生成するように構成される可能性がある。セッションは、1つまたは複数のスクリーンキャプチャコンテンツイベント(screen capture content event)である。言い換えれば、セッションは、1つのスクリーンキャプチャ画像または一連の関連するスクリーンキャプチャ画像(たとえば、指定された時間の窓(window of time)の間にキャプチャされた画像、アクションの実行中にキャプチャされた画像、特定のユーザインターフェースの要素が使用される間にキャプチャされた画像、特定のアプリケーションの使用中にキャプチャされた画像、特定のタスクの間にキャプチャされた画像など)からのキャプチャされたコンテンツである可能性がある。同様に、セッションは、1回のAPI呼び出しまたは一連のAPI呼び出しからのコンテンツなどである可能性もある。スクリーン分析エンジン122は、セッションに関する特徴ベクトルを生成し得る。特徴は、セッションに含まれるキャプチャされたコンテンツおよびキャプチャされたコンテンツに関するメタデータ内でスクリーンキャプチャエンジン126によって特定されたデータアイテムを含む。たとえば、特徴は、コンテンツ内で特定されたエンティティ、単語、または画像、ピクセル、もしくは画像の特徴、コンテンツをレンダリングしたアプリケーション、日付/時間、デバイスが(たとえば、自動車内で)移動していたかどうかなどを含む可能性がある。1つの特徴についての情報が、特徴ベクトル内で組み合わされる可能性があり、多くの特徴ベクトルが、セッション毎の集約特徴ベクトルへと連結される可能性がある。スクリーン分析エンジン122は、集約特徴ベクトル、または言い換えれば、様々な個々の特徴ベクトルを、訓練の目的でかまたは分析の目的でかのどちらかで分類モデルに提供し得る。
【００１８】
予測分類器(prediction classifier)134などの分類モデルは、(1人のユーザを有するデバイスのための)2クラス分類器かまたは(複数のユーザを有するデバイスのための)多クラス分類器かのどちらかである、長短期記憶(LSTM: long short-term memory)ニューラルネットワーク、順伝播型(feed-forward)ニューラルネットワーク、サポートベクターマシン(SVM)分類器などの任意の種類の機械学習分類器である。分類モデルは、2つのモード、訓練モードおよび推定モードを有する。訓練モードにおいて、スクリーン分析エンジン122は、キャプチャされたコンテンツ(たとえば、モバイルデバイス上に表示されたコンテンツ)から生成された特徴ベクトルを分類モデルのための肯定的な訓練例として使用する。十分な訓練データが収集されたとき、スクリーン分析エンジン122は、一般的な否定的な例を取得する可能性があり、または肯定的な例を賢く変更して否定的な例を生成する可能性がある。たとえば、スクリーン分析エンジン122は、キャプチャされたコンテンツ内の単語/エンティティの一部を似た単語/エンティティによって置き換える可能性がある。一例として、場所または人が、別の場所または人によって置き換えられる可能性がある。モデルが多クラス分類器であるとき、システムは、あるユーザのための肯定的な例を別のユーザのための否定的な例として使用する可能性がある。一部の実施形態において、スクリーン分析エンジン122は、否定的な例なしにモデルを訓練する可能性がある。そして、スクリーン分析エンジン122は、(否定的な例が使用される場合)肯定的な例および否定的な例を使用して分類モデルを訓練する可能性がある。分類モデルを訓練することは、予測分類器134を生成し、そのとき、予測分類器134は、推定モードで使用される可能性がある。スクリーン分析エンジン122は、モデルを洗練するために、たとえば、さらなる肯定的な例を用いて分類モデルの訓練を続ける可能性がある。
【００１９】
一部の実施形態において、システムは、複数の分類モデルを訓練する可能性がある。たとえば、1つのモデルが、特定のアプリケーションまたは特定のアプリケーションのカテゴリによってレンダリングされたコンテンツのために使用される可能性がある。たとえば、1つのモデルが、ゲームのために使用される可能性があり、別のモデルが、ニュースアプリケーションのために使用される可能性がある。したがって、予測分類器134は、2つ以上の訓練された分類器を表す可能性がある。
【００２０】
一部の実施形態において、スクリーンキャプチャエンジン126は、キャプチャされたコンテンツをインデックス付けするように構成されたインデックス付けエンジンを含み得る。また、インデックスは、スクリーンキャプチャ画像を画像内で特定されたテキスト、エンティティ、画像、ロゴなどに関連付ける可能性がある。したがって、たとえば、インデックス付けエンジンは、キャプチャされた画像およびキャプチャされたコンテンツに関する(たとえば、スクリーンキャプチャインデックス146に記憶される)インデックスエントリを生成し得る。一部の実施形態において、インデックス付けエンジンは、サーバ170などのサーバ上にある可能性があり、スクリーンキャプチャエンジン126は、キャプチャされた画像およびキャプチャされたコンテンツをサーバに提供し得る。インデックスは、キー値(たとえば、単語、語句、エンティティ、画像、ロゴなど)がキー値を含む画像のリスト(たとえば、キャプチャされたスクリーン画像のコピー)に関連付けられる転置インデックスである可能性がある。インデックスは、リスト内のそれぞれのキャプチャされた画像に関連付けられたメタデータ(たとえば、キー値がキャプチャ画像上のどこに表れるか、画像に関するキー値のランクなど)を含む可能性がある。一部の実施形態において、インデックスは、タイムスタンプによってインデックス付けされたキャプチャされた画像のリストを含む可能性もある。インデックス付けエンジンは、インデックスをメモリに、たとえば、スクリーンキャプチャインデックス146に記憶する可能性がある。当然ながら、一部の実施形態において、システムは、モバイルデバイス110上だけでなくまたはモバイルデバイス110上ではなくサーバ上のユーザアカウントにインデックスを記憶する可能性がある。モバイルデバイス110のユーザは、スクリーンキャプチャエンジン126がいつアクティブであるかを制御し得る。たとえば、ユーザは、その他の指定されたモバイルアプリケーション120が実行されているときにのみ(たとえば、ソーシャルメディアモバイルアプリケーション内にいるときにのみ)スクリーンキャプチャエンジン126がアクティブであると指定する可能性がある。ユーザは、たとえば、設定アプリケーションによってスクリーンキャプチャエンジン126を手動でオンおよびオフにする可能性もある。一部の実施形態において、ユーザは、ジェスチャまたはアクションによってスクリーンキャプチャエンジン126を呼び出す可能性がある。また、スクリーンキャプチャエンジン126を無効にすることは、本明細書において説明されるスクリーンベースセキュリティ対策を無効にする可能性がある。
【００２１】
アプリケーション120が、スクリーンベースセキュリティエンジン124を含む可能性もある。スクリーンベースセキュリティエンジン124。スクリーンベースセキュリティエンジン124は、推定モードの予測分類器134を使用して、モバイルデバイス110に邪魔にならないセキュリティを提供し得る。スクリーンベースセキュリティエンジン124は、スクリーン分析エンジン122およびスクリーンキャプチャエンジン126からセッションベースの特徴を受け取り、特徴を予測分類器134にかける可能性がある。予測分類器134が特徴が異常値である(たとえば、十分な信頼性のレベルでモデルに当てはまらない)ことを示す場合、スクリーンベースセキュリティエンジン124は、ユーザにチャレンジを与える可能性がある。チャレンジは、パスワードベースである(たとえば、ユーザがパスワードを入力することを要求する)かまたはコンテンツベースである(たとえば、スクリーンキャプチャインデックス146もしくはセッションの特徴132内で見つかった情報に基づく)可能性がある。
【００２２】
コンテンツベースのチャレンジは、ユーザのパスワードをハッキングしたまたは盗んだ無法者を特定するために使用され得るので有用である。セッションの特徴132内の情報は、信頼できる場所において生成されたコンテンツおよび/または予測分類器134の信頼性のレベルから外れなかった過去のセッションのために生成されたコンテンツから抽出された特徴を含む。言い換えれば、セッションの特徴132内の情報は、たとえば、信頼できる場所に合致するかまたは分類モデルに合致する検証されたセッションからの情報を表し、モバイルデバイス110のユーザにとって典型的であり、異常な活動ではない。スクリーンキャプチャインデックス146は、既にキャプチャされたスクリーンのコピーと、キャプチャされたコンテンツ内で特定された単語、エンティティ、または写真などのキーアイテムとを含み得る。
【００２３】
スクリーンベースセキュリティエンジン124は、セッション情報の特徴132および/またはスクリーンキャプチャインデックス146からの情報を使用して、コンテンツベースのチャレンジを生成し得る。たとえば、スクリーンベースセキュリティエンジン124は、(たとえば、スクリーンキャプチャインデックス146からの)既にキャプチャされたスクリーンを1つまたは複数のキーアイテムが不明瞭にされるようにして提示し、ユーザが不明瞭にされた情報を提供することを要求する可能性がある。別の例として、スクリーンベースセキュリティエンジン124は、セッションの特徴132またはスクリーンキャプチャインデックス146から高レベルの情報を抽出し得る。たとえば、スクリーンベースセキュリティエンジン124は、どの人とユーザが昨夜話したかまたはテキストメッセージを送ったか、どのエンティティをユーザが2日前に検索したか、どのレストランにユーザが最も頻繁に行くのか、どのアプリケーションをユーザがタスクのために(たとえば、電子メールを読むためにまたはレストランを予約するために)通常使用するかなどを訪ねる可能性がある。コンテンツベースのチャレンジは、パスワードのないデバイスまたはパスワードが盗まれたかもしくはハッキングされたデバイスを保護するセキュリティのさらなるレイヤを提供する。
【００２４】
モバイルデバイス110は、モバイルデバイス110のメモリに記憶され、アプリケーション120によって使用されるデータストア130を含み得る。一部の実施形態において、データストア130は、スクリーンキャプチャ画像内で特定されたアイテムを含むスクリーンキャプチャインデックス146、およびデータグラフ144を含む可能性がある。データグラフ144は、演繹的推論を提供する形態でデータおよびデータについての知識を示す規則を記憶するグラフベースのデータストアである可能性がある。たとえば、知識ベース内に、エンティティについての情報が、その他のエンティティとの関係の形態で記憶される可能性がある。エンティティは、人、場所、アイテム、考え、話題、単語、語句、抽象概念、具体的要素、その他の好適なもの、またはこれらの任意の組合せである可能性がある。エンティティは、関係を表すラベル付けされた辺によって互いに関連付けられる可能性がある。ラベル付けされた辺は、有向または無向である可能性がある。たとえば、the National Football Leagueを表すエンティティが、「has team」関係によってJaguarエンティティに関連付けられる可能性がある。データグラフ144は、特に、大きな知識ベースが数百万のエンティティおよび数十億の関係を含む場合、サーバ170に位置しているより大きな知識ベース内のエンティティおよび関係のサブセットである可能性がある。たとえば、データグラフ144内のエンティティおよび関係は、知識ベースからの最も人気のあるエンティティおよび関係を表す可能性があり、またはユーザの好みに基づいて選択される可能性がある。たとえば、ユーザがプロファイルを有する場合、エンティティおよび関係は、プロファイルに基づいて、またはスクリーンキャプチャ画像のコンテンツ内で頻繁に特定されるエンティティの種類に基づいてデータグラフ144に含めるために選択される可能性がある。一部の実施形態において、データグラフ144は、スクリーンキャプチャ画像のコンテンツ内で頻繁に認識されるエンティティを含む可能性がある。そのようなエンティティは、パーソナルエンティティ、すなわち、ユーザが頻繁にインタラクションするが、概して一般の人々にあまり知られていないエンティティであると考えられる可能性がある。したがって、データグラフ144は、大きな公開の知識ベース内に必ずしも見られないエンティティを含み得る。そのようなパーソナルエンティティは、ユーザがよくインタラクションする人および電話番号、住所、都市などを含む可能性がある。
【００２５】
データストア130は、セッションの特徴132を含む可能性もある。セッションの特徴132は、肯定的な例、たとえば、信頼できる環境内で生成されたコンテンツから特定された特徴を表す可能性がある。信頼できる環境は、モバイルデバイス110のユーザによって信頼されていると特定された場所、またはユーザがパスワードを入力した後に存在する環境、またはこれらの組合せである可能性がある。セッションの特徴132は、予測分類器134を訓練するおよび/またはチャレンジ内で使用される情報を提供するために使用され得る。セッションの特徴132は、分類モデルがユーザの活動と一致していると判定したセッション中に生成された特徴を含む可能性もある。一部の実施形態において、システムは、セッションがプロファイルと一致しているかどうかを判定するために使用される閾値よりも高い閾値をこれらの特徴を記憶することに関して有する可能性がある。言い換えれば、セッションの特徴132に含まれるためには、信頼性のレベルが、特徴がユーザにとって典型的であると考えられるための信頼性のレベルよりも高くなければならない。
【００２６】
データストア130は、プロファイルデータ142を含む可能性もある。プロファイルデータ142は、モバイルデバイスのユーザについての情報を含み得る。たとえば、プロファイルデータ142は、信頼できると考えられる場所(たとえば、ユーザの職場または家)、パスワードデータ、好み、およびユーザアカウントまたはプロファイルに典型的なその他のデータを含み得る。一部の実施形態において、スクリーンキャプチャインデックス146、データグラフ144、およびプロファイルデータ142は、サーバ170上に、たとえば、モバイルデバイス110のユーザに関連するアカウントに存在する可能性もある。一部の実施形態において、スクリーンキャプチャインデックス146、データグラフ144、およびプロファイルデータ142は、サーバ170上、またはユーザによって指定された別の場所に記憶されたデータのコピーまたはサブセットである可能性がある。データストア130は、任意の非一時的メモリに記憶され得る。
【００２７】
共有された家庭のタブレットまたはラップトップなどの、数人のユーザを有するモバイルデバイス110においては、各ユーザが、それぞれのデータストア130を有する可能性がある。言い換えれば、各ユーザが、スクリーンキャプチャインデックス146、プロファイルデータ142、およびセッションの特徴132の個人のコピーを有する可能性がある。そのような実施形態において、予測分類器134は、現在のセッションに関するキャプチャされたコンテンツを分析し、2つ以上のプロファイルのうちの1つに当てはまるかまたはプロファイルのいずれにも当てはまらない(たとえば、異常な活動)ものとしてコンテンツを分類することができる多クラス分類器である可能性がある。そのような実施形態において、各ユーザは、スクリーン分析エンジン122によって予測分類器134に関する訓練セッションを開始し得る。
【００２８】
モバイルコンテンツベースセキュリティシステム100は、いくつかの異なるデバイス、たとえば、標準的なサーバ、そのようなサーバのグループ、またはラックサーバシステムの形態をとる1つのコンピューティングデバイスまたは複数のコンピューティングデバイスである可能性があるサーバ170を含み得る。たとえば、サーバ170は、複数のコンピューティングデバイスに分散して実装される可能性がある。加えて、サーバ170は、パーソナルコンピュータ、たとえば、ラップトップコンピュータに実装される可能性がある。サーバ170は、図8に示されるコンピュータデバイス800または図9に示されるコンピュータデバイス900の例である可能性がある。サーバ170は、1つまたは複数の機械が実行可能な命令またはソフトウェア、ファームウェア、もしくはこれらの組合せを実行するように構成された基板内に形成された1つまたは複数のプロセッサを含み得る。プロセッサは、半導体に基づく可能性がある-つまり、プロセッサは、デジタル論理を実行することができる半導体材料を含む可能性がある。
【００２９】
サーバ170は、1つまたは複数のコンピュータメモリも含む可能性がある。メモリ、たとえば、メインメモリは、一時的にか、永続的にか、準永続的にか、またはこれらの組合せでかのいずれかで1つまたは複数のデータを記憶するように構成される可能性がある。メモリは、1つまたは複数のプロセッサによって読み取られ得るおよび/または実行され得るフォーマットで情報を記憶する任意の種類のストレージデバイスを含む可能性がある。メモリは、揮発性メモリ、不揮発性メモリ、またはこれらの組合せを含み、1つまたは複数のプロセッサによって実行されるときに特定の動作を実行するモジュールまたはエンジンを記憶し得る。一部の実施形態において、モジュールは、外部ストレージデバイスに記憶され、サーバ170のメモリにロードされる可能性がある。一部の実施形態において、サーバ170は、情報ファイルのうちの1つもしくは複数のバックアップコピーをデータストア130に記憶する可能性があり、データストア130内の情報ファイルのうちの1つもしくは複数に関するソースデータを提供する可能性があり、および/またはスクリーンコンテンツエンジンの機能を機能のうちの1つもしくは複数を実行する可能性がある。
【００３０】
図2は、開示される対象による例示的なシステムを示すブロック図である。図2は、スクリーンコンテンツエンジン250の機能のうちの1つまたは複数がサーバ170において行われるシステム100の実施形態を示す。たとえば、スクリーンコンテンツエンジン250は、モバイルデバイス110上のスクリーンキャプチャエンジン126からスクリーンキャプチャ画像を受け取る可能性があり、画像内のキーアイテムを特定するための認識を実行する可能性があり、キーアイテムを用いて画像をインデックス付けする可能性がある。一部の実施形態において、スクリーンコンテンツエンジン250は、1枚の画像または一連の画像に関する特徴ベクトルを生成する可能性がある。言い換えれば、スクリーンコンテンツエンジン250は、上述のように、セッションに関する特徴ベクトルを生成する可能性がある。
【００３１】
サーバ170は、知識ベース210を記憶する可能性がある。知識ベース210は、演繹的推論を提供する形態でデータおよびデータについての知識を示す規則を記憶する大きなグラフベースのデータストアである可能性がある。大量のエンティティと、さらには限られた数の関係とを有する知識ベースは、数十億の接続を有する可能性がある。一部の実施形態において、知識ベース210は、サーバ170および/またはモバイルデバイス110からアクセスされ得る外部ストレージデバイスに記憶される可能性がある。一部の実施形態において、知識ベース210は、複数のストレージデバイスおよび/または複数のコンピューティングデバイス、たとえば、複数のサーバに分散される可能性がある。知識ベース210内のエンティティおよび関係は、たとえば、インデックスによって検索され得る可能性がある。たとえば、インデックスは、エンティティが参照されたテキストを含む可能性がある。したがって、知識ベース210への参照は、テキストの等価物を使用してエンティティを見つけることを容易にするインデックスを含むと理解され得る。
【００３２】
スクリーンコンテンツエンジン250は、スクリーンキャプチャ画像内のスクリーンコンテンツを分析し、スクリーンコンテンツ内の単語、エンティティ、ロゴなどのキーアイテムを特定するための構成要素を含む可能性がある。特定されるエンティティは、知識ベース210内にあるエンティティである可能性がある。したがって、スクリーンコンテンツエンジン250は、通常のまたは今後開発される技術を使用して文字認識、画像認識、ロゴ認識などの様々な種類の認識を実行するように構成される可能性がある。スクリーンコンテンツエンジン250は、特定されたアイテム(たとえば、テキスト、画像、ロゴ)を知識ベース210内のエンティティとマッチングし得る。一部の実施形態において、スクリーンコンテンツエンジン250は、上で検討されたように、キーアイテムをインデックス付けし、転置インデックスをスクリーンキャプチャインデックス215に記憶する可能性がある。スクリーンキャプチャインデックス215は、モバイルデバイス110のユーザに関連付けられる。一部の実施形態において、スクリーンコンテンツエンジン250は、さらに、図1のセッションの特徴132と同様のセッションの特徴225を生成する可能性がある。一部の実施形態において、セッションの特徴225は、モバイルデバイス110からサーバ170に送信される可能性がある。言い換えれば、スクリーン分析エンジン122は、特徴を生成する可能性があり、特徴をサーバ170に送信する可能性があり、サーバ170において、特徴は、ユーザに関する肯定的な例として記憶される。一部の実施形態において、スクリーンコンテンツエンジン250は、モデルを訓練するために十分な量の肯定的な例が存在するときを判定する可能性がある。一部の実施形態において、スクリーンコンテンツエンジン250は、大量の肯定的な例を取っておき、例に対してモデルを評価する可能性がある。そのような実施形態において、スクリーンコンテンツエンジン250は、モデルが十分な分類誤差(たとえば、95%の精度または99%の精度など)を有するときを判定する可能性がある。一部の実施形態において、サーバ170は、ユーザプロファイル220を記憶する可能性がある。ユーザプロファイルは、プロファイルデータ142と同様の情報を含む可能性がある。
【００３３】
図1に戻ると、モバイルデバイス110は、ネットワーク160を介してサーバ170およびその他のモバイルデバイスと通信し得る。ネットワーク160は、たとえば、インターネットである可能性があり、またはたとえばゲートウェイデバイス、ブリッジ、スイッチなどを使用して実施された有線もしくはワイヤレスローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)などである可能性がある。ネットワーク160は、セルラー通信ネットワークを表す可能性もある。ネットワーク160を介して、サーバ170は、モバイルデバイス110と通信し、モバイルデバイス110に/からデータを送信する可能性があり、モバイルデバイス110は、その他のモバイルデバイス(図示せず)と通信する可能性がある。
【００３４】
モバイルコンテンツベースセキュリティシステム100は、1つの例示的な構成を表し、実施形態は、その他の構成を組み込む可能性がある。たとえば、一部の実施形態は、スクリーンキャプチャエンジン126、スクリーン分析エンジン122、またはスクリーンベースセキュリティエンジン124の構成要素のうちの1つまたは複数を単一のモジュールまたはエンジンへと組み合わせる可能性がある。同様に、一部の実施形態は、スクリーンキャプチャエンジン126、スクリーン分析エンジン122、およびスクリーンベースセキュリティエンジン124のうちの1つまたは複数を単一のモジュールまたはアプリケーションへと組み合わせる可能性がある。さらに、スクリーンキャプチャエンジン126、スクリーン分析エンジン122、またはスクリーンベースセキュリティエンジン124の構成要素のうちの1つまたは複数は、サーバ170において実行される可能性がある。別の例として、スクリーンキャプチャインデックス146、データグラフ144、プロファイルデータ142、およびセッションの特徴132などのデータストア、もしくは予測分類器134のうちの1つまたは複数が、単一のデータストアへと組み合わされる可能性があり、または複数のコンピューティングデバイスに分散される可能性があり、またはサーバ170もしくはユーザによって指定された別の場所に記憶される可能性がある。
【００３５】
モバイルコンテンツベースセキュリティシステム100がユーザに固有のデータを収集し、記憶するかまたは個人情報を利用し得る限りにおいて、ユーザは、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルな行為もしくは活動、ユーザの好み、またはユーザの現在の位置についての情報)を収集するのかどうかを制御するため、あるいはスクリーンキャプチャ画像およびコンテンツを記憶するべきかどうかならびに/またはスクリーンキャプチャ画像およびコンテンツをどのようにして記憶するべきかを制御するための機会を与えられ得る。たとえば、システムは、バンキングアプリケーション、ヘルスアプリケーション、またはその他の同様のアプリケーションなどの特定のアプリケーションに関するコンテンツをキャプチャすることがサービス利用規約に違反する場合、そのようなコンテンツをキャプチャすることを控える可能性がある。加えて、ユーザは、特定のアプリケーションまたはアプリケーションのカテゴリに関してスクリーンコンテンツをキャプチャすることを無効にする機会を与えられる可能性がある。さらに、特定のデータが、個人を特定できる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で処理される可能性がある。たとえば、ユーザの識別情報が、個人を特定できる情報がユーザに関して決定され得ないか、または位置情報が取得される場合にユーザの地理的な位置が(都市、郵便番号、もしくは州のレベルまでになど)一般化される可能性があり、したがって、ユーザの特定の位置が決定され得ないように処理される可能性がある。したがって、ユーザは、どのようにして情報がユーザについて収集され、モバイルコンテンツベースセキュリティシステムによって使用されるのかを制御することができる可能性がある。
【００３６】
図3は、開示される実施形態による、スクリーン分析を使用してデバイスのセキュリティを高めるための例示的なプロセスの流れ図を示す。プロセス300は、図1または図2のシステム100などのモバイルコンテンツベースセキュリティシステムによって実行され得る。プロセス300は、モバイル環境において邪魔にならないセキュリティまたはバックアップセキュリティを提供するために使用され、無法者がモバイルデバイスにアクセスし続けることができないことを保証し得る。プロセス300は、モバイルデバイス上でキャプチャされたセッション情報によって予測分類器を訓練することから開始し得る(305)。これは、デバイスの訓練モードであり、図4に関連してより詳細に説明されるように、デバイスが信頼できる環境内にあるときに行われ得る。
【００３７】
分類モデルが訓練されると、システムは、分類モデルを使用して推定モードになる可能性がある。推定モードは、ユーザが推定モードを止める命令を与えるまでまたはデバイスがロックモードになるまで実行される可能性がある。したがって、推定モードは、デバイスがパスワードによってロックされないときでさえもデバイスを保護する可能性があり、つまり、スリープまたは非アクティブモードからデバイスをアクティブ化するためにパスワードが必要とされない。デバイスがパスワードによって保護されるときでさえも、推定モードは、パスワードが漏洩するかまたは盗まれる場合にデバイスのコンテンツを保護する。
【００３８】
推定モードにおいて、システムは、分類モデルを使用して現在のセッションを分類し得る(310)。セッションは、1つのスクリーンまたは一連の関連するスクリーンである可能性がある。したがって、セッションは、モバイルアプリケーションによってレンダリングされ、モバイルデバイス上に表示されたコンテンツを表す。現在のセッションを分類するために、システムは、セッションを構成するキャプチャされたスクリーン画像に対して認識を実行して、スクリーンキャプチャ画像内に表示されたコンテンツ(たとえば、キーアイテム)を特定し得る。システムは、テキストベースであるのかまたは画像から認識されるのかに関わらず、キャプチャされたコンテンツ内のエンティティを認識する可能性もある。システムは、キャプチャされたコンテンツから特徴ベクトルを生成し、特徴ベクトルを、たとえば集約された特徴ベクトルの形態で分類モデルに提供する可能性がある。分類モデルは、特徴が訓練されたモデルにどれだけよく当てはまるかを判定し得る(315)。言い換えれば、分類モデルは、特徴ベクトルを取得し、特徴がモデルにどれだけよく当てはまるのかを反映する信頼性のスコアを決定する。システムは、現在のセッションのみに基づいて、または時間の窓の間に発生するセッションに関する信頼性のスコアの平均に基づいてセッションが低い信頼性を有するかどうかを判定し得る。信頼性のスコアまたは平均の信頼性のスコアが閾値を満たすかまたは超える場合(315、No)、特徴は、モデルに一致し、システムは、セッションの分類を継続し得る(310)。現在のセッションに関する信頼性のスコアまたは現在のセッションの窓の間の平均の信頼性のスコアが閾値を満たさない場合(315、Yes)、システムは、活動が異常であると判定する可能性があり、認可されていないユーザの活動を表し得る。
【００３９】
したがって、システムは、ユーザにチャレンジを提示し得る(320)。一部の実施形態において、チャレンジは、予め設定されたパスワードを入力することである可能性がある。その他の実施形態において、チャレンジは、信頼性の閾値を満たした以前のセッションに関連するキャプチャされたコンテンツに基づく可能性がある(320)。一部の実施形態において、チャレンジは、パスワードと、以前のセッションに関連するキャプチャされたコンテンツに基づくチャレンジの質問との組合せを含む可能性がある。以前のセッションは、現在のセッションの数時間前であるが、ただし、好ましくは現在のセッションの数日よりも前ではないときに発生したセッションであるべきである。これは、正規ユーザが以前のセッションにおいて何が起こったかを思い出すことができるが、セッションが認可されていないユーザがそのセッションを見るのに十分なほど最近行われていないことを保証する。
【００４０】
チャレンジは、1つの質問または一連の質問である可能性がある。言い換えれば、まぐれ当たりを防ぐために、システムは、一連の質問をチャレンジとして提示し、ユーザがチャレンジを満足するために少なくとも大半の(たとえば、2/3の)正解を答えることを必要とする可能性がある。チャレンジの質問は、以前のセッションに関連するコンテンツから形成される可能性がある。一部の実施形態において、一連の質問は、パスワードベースのチャレンジと1つまたは複数のキャプチャされたコンテンツベースのチャレンジとの組合せである可能性がある。
【００４１】
図4は、低レベルのコンテンツベースのチャレンジを用いるモバイルコンピューティングデバイスの例示的な表示400である。表示400は、以前見られたスクリーンキャプチャ画像に基づくチャレンジの例である。以前見られたスクリーンは、たとえば、キャプチャされたスクリーンのインデックス、たとえば、図1のスクリーンキャプチャインデックス146もしくは図2のスクリーンキャプチャインデックス215の一部として、または図1のセッションの特徴132もしくは図2のセッションの特徴225などのセッション情報の一部として記憶される可能性がある。以前見られたスクリーン画像は、分類モデルに一致したおよび/または信頼できる環境内で発生したセッションまたはセッションの窓の間にキャプチャされた可能性がある。一部の実施形態において、以前見られたスクリーンは、少なくとも過去の最低限の時間数であるタイムスタンプを有する可能性がある。最低限度は、画像がデバイスの以前の使用期間からのものであることを保証するのに十分なだけ長い。使用期間は、たとえば、デバイスが非アクティブ状態になる間の期間として定義される可能性がある。デバイスは、ユーザが予め定義された時間の期間のうちにデバイスとインタラクションしないときに非アクティブ状態になる。通常、ユーザは、デバイスを再びアクティブ化するためにタッチスクリーンをタップまたはスワイプしなければならない。
【００４２】
チャレンジを生成するために、システムは、以前見られたスクリーン画像の一部分405を不明瞭にする可能性がある。たとえば、一部分405aおよび405bの下の単語が、不明瞭にされる。一部分405は、以前見られたスクリーンキャプチャ画像内に表れる非常に話題になった(topical)エンティティであるように選択される可能性がある。システムは、通常のエンティティ検出および言語分析技術を使用して非常に話題になったエンティティを決定し得る。システムは、どのようにしてチャレンジを満たすべきかをユーザに知らせる指示ウィンドウ410を提供する可能性がある。たとえば、指示ウィンドウ410は、ユーザが不明瞭にされた一部分に対応するテキストを与えることを要求する可能性がある。表示400の例において、システムは、一部分405aおよび405bに対応するテキストをユーザに与えるためのテキストボックスを提供する。しかし、システムは、ユーザが与えられた選択肢のうちの1つを選択することを可能にする多肢選択式の質問を与える可能性もある。加えて、曖昧にされる一部分は、必ずしもテキストであるとは限らない。システムは、不明瞭にする画像を選択し、ユーザが選択するための複数の画像を与える可能性がある。ユーザは、それぞれの不明瞭にされた一部分405に関する応答を与えたとき、たとえば、指示ウィンドウ410内に設けられたコントロールを選択するかまたはアクティブ化して、チャレンジに対する応答を送る可能性がある。
【００４３】
図5は、高レベルのコンテンツベースのチャレンジを用いるモバイルコンピューティングデバイスの例示的な表示である。表示500は、必ずしも単一の以前見られたスクリーンキャプチャ画像ではない以前の活動に基づくチャレンジの例である。高レベルのコンテンツベースのチャレンジに関して、システムは、分類モデルに一致したおよび/または信頼できる環境内で発生した以前のセッションからの情報にアクセスし得る。情報は、たとえば、以前のセッション中に抽出されたセッションの特徴から得られる可能性がある。低レベルのコンテンツベースのチャレンジと同様に、セッションは、少なくとも過去の最低限の時間数であるタイムスタンプに関連付けられる可能性がある。したがって、高レベルのコンテンツベースのチャレンジは、スクリーンキャプチャ画像の過去の分析に基づく可能性がある。システムは、過去のセッションから事実を抽出し、事実に基づく質問に正しく答えるように現在のユーザに求める可能性がある。表示500の例において、システムは、昨晩の午後6:17にユーザがメッセージを送った相手を示すようにユーザに求める。表示500の例は、多肢選択式のチャレンジを含むが、テキストボックス型の応答を使用する可能性もある。過去のセッションから組み立てられ得るその他の種類の事実の質問は、「金曜日に予約したのはどのレストランですか?」および「一番最近ソーシャルメディアで共有したのはどの画像ですか?」を含む。その他の種類の高レベルのコンテンツベースのチャレンジが、集約された使用データから導出される可能性がある。たとえば、システムは、ユーザが最も頻繁にメッセージを送るのはどの連絡先か、ユーザが最も頻繁に予約するのはどの場所かなどを決定する可能性がある。サブチャレンジ(sub-challenge)を生成する際、システムは、アプリケーション間でおよびエンティティの種類の点で多様なチャレンジを含む可能性がある。言い換えれば、システムは、サブチャレンジがユーザにとって典型的と考えられる様々なアプリケーションおよび/またはエンティティを表すことを保証し得る。
【００４４】
図3に戻ると、システムは、提示されたチャレンジが満たされるかどうかを判定し得る(325)。上に示されたように、チャレンジは、実施形態に応じて複数のサブチャレンジを含む可能性がある。チャレンジが満たされない場合(325、No)、システムは、別のチャレンジを提示すべきかどうかを判定し得る(335)。たとえば、システムは、第1のチャレンジに失敗したユーザに新しいチャレンジによる別の機会を与える可能性がある(335、Yes)が、第3の機会は与えない可能性がある(335、No)。一部の実施形態において、特に、チャレンジが既にサブチャレンジを含んでいたとき、システムは、別のチャレンジを満たすためのいかなる追加的な機会も与えない可能性がある(335、No)。その他のチャレンジの機会がないとき(335、No)、デバイスは、ロックモードになる可能性がある(340)。ロックモードにおいて、デバイスは、ほとんどのアプリケーションおよびアクティブティへのアクセスをさせない可能性がある。たとえば、デバイスは、緊急電話のみを可能にし、すべてのその他のアクセスを無効にする可能性がある。別の例において、デバイスは、デバイスがロックモードになった場所を示す通信を、デバイスに関連するユーザの電子メールアドレスまたはその他のユーザ識別子に送信する可能性がある。一部の実施形態において、デバイスは、デバイスが信頼できる場所に位置し、ユーザがパスワードを与えるときにロック解除される可能性がある。たとえば、ユーザプロファイルは、ユーザの家または職場などの信頼できる場所を含む可能性がある。(たとえば、全地球測位座標に基づいて)ユーザが家または職場にいるとき、デバイスは、デバイスをロック解除するためにユーザがパスワードを入力することを可能にする可能性がある。これは、デバイスをうっかりしてロックしてしまった正規ユーザがカスタマーサポートに連絡する必要なしにデバイスをロック解除することを可能にし得る。一部の実施形態において、デバイスをロック解除することは、たとえば、カスタマーサポートに電話することによる識別情報の確認を必要とする可能性がある。一部の実施形態において、デバイスをロック解除することは、パスワードの入力のみを必要とする可能性がある。一度ロックされたデバイスをロック解除するその他の方法も、使用され得る。
【００４５】
チャレンジが満たされる場合(325、Yes)、システムは、現在のセッションから特徴を抽出し、特徴(たとえば、特徴に関する特徴ベクトル)を分類モデルを更新するための肯定的な例として使用し得る(330)。言い換えれば、チャレンジが成功裏に完了すると、システムは、現在の活動をユーザの行動に一致するものとして認識するように分類モデルを訓練し得る。システムは、ユーザが推定モードを停止するまでまたはデバイスがロックされるまでセッションを分析および分類し続ける可能性がある。
【００４６】
図6は、開示される実施形態による、分類モデルを訓練するための例示的なプロセス600の流れ図を示す。プロセス600は、システム100などのモバイルコンテンツベースセキュリティシステムによって実行され得る。プロセス600は、デバイスが信頼できる環境内で使用されている間に情報を収集し、情報を使用して、ユーザプロファイルに一致するアクティビティを認識するように分類モデルを訓練し得る。分類モデルは、キャプチャされたコンテンツ、たとえば、特定のスクリーンキャプチャ画像またはそのような画像のシーケンスに関する情報がデバイスの所有者の活動に一致するかどうかを示す2クラス分類器である可能性がある。その他の実施形態において、分類モデルは、特定のスクリーンキャプチャ画像または画像のシーケンスが、もしあるとすれば複数のプロファイルのうちのどのユーザプロファイルに最もよく一致するのかを判定するように訓練された多クラス分類器である可能性がある。多クラス分類器、モデルが、各ユーザプロファイルにつき1つずつ複数の訓練セッションを使用して訓練される場合、モデルは、認識するように訓練される。したがって、示されるプロセス600は、2クラス分類器のためのものであるが、多クラス分類器のモデルを訓練するためにモバイルデバイスのそれぞれの異なるユーザに関して実行される可能性がある。
【００４７】
プロセス600は、デバイスが信頼できる環境内にあるかどうかの判定から始まる(605)。信頼できる環境は、デバイスのユーザが真のデバイスの所有者である信頼性が高い環境である。環境が信頼できる環境であるかどうかを判定することは、いくつかの要因のいずれかまたは組合せに依存する可能性がある。たとえば、ユーザは、訓練モードを有効化するパスワードを与える可能性がある。別の例として、ユーザプロファイルが、ユーザの家または職場などの信頼できる場所を含む可能性がある。デバイスは、GPS座標またはワイヤレスネットワーク識別子を使用して、現在の場所が信頼できる場所のうちの1つに合致するかどうかを判定することができる。一部の実施形態において、信頼できる環境は、成功裏のパスワードロック解除(たとえば、デバイスをスリープまたは非アクティブモードから覚ますこと)および信頼できる場所の合致を必要とする可能性がある。デバイスが信頼できる場所内にない場合(605、No)、訓練データは保持されない。デバイスが信頼できる環境内にあると(605、Yes)、システムは、スクリーンコンテンツのキャプチャを開始し得る(610)。上に示されたように、スクリーンコンテンツのキャプチャは、一定間隔、ユーザがデバイスとインタラクションする度、ユーザからの明示的なコマンド等々で行われる可能性がある。したがって、スクリーン情報は、デバイス上で実行されるアプリケーションによってレンダリングされた情報を表す。システムは、セッションが完了する(615、Yes)までコンテンツのキャプチャを継続し得る(615、No)。セッションは、単一のスクリーンキャプチャイベント(API呼び出しまたはスクリーンキャプチャ画像)として定義される可能性がある。したがって、1つのスクリーンキャプチャ画像が、セッションが完了する結果を生じる可能性がある。別の例として、セッションは、一連のスクリーンキャプチャイベントとして定義される可能性がある。たとえば、指定された窓内で発生するスクリーンキャプチャイベント、特定の活動中に発生するイベント、単一のアプリケーションにおいて発生するイベント、または単一のインターフェースの使用中に発生するイベントなどである。セッションが完了するとき(615、Yes)、システムは、セッションの特徴を抽出し、アノテーションし得る。特徴は、セッションに関連するコンテンツおよびコンテンツについてのメタデータ内で認識された任意のものである可能性がある。たとえば、特徴は、コンテンツをレンダリングしたプログラム、モバイルデバイスの位置、モバイルデバイスの動き、コンテンツ内で認識された単語、写真、およびロゴ、コンテンツ内で特定された(たとえば、知識ベースからの)エンティティなどを含み得る。特定の特徴についての情報は、対応する特徴ベクトルによって表される可能性があり、特徴ベクトルは、単一のスクリーンまたはセッションに関する集約された特徴ベクトル内で組み合わされる(連結される)可能性がある。特徴ベクトルは、ユーザに関する活動の肯定的な例であると考えられる可能性がある。言い換えれば、スクリーンは、解析され、ユーザに典型的な活動の種類の肯定的な訓練例としてアノテーションされる可能性がある。
【００４８】
システムは、分類器を訓練するための十分な肯定的な例が存在するかどうかを判定し得る(625)。たとえば、システムは、有用な分類モデルを保証するために十分な行動を信頼できる環境内で観察するために最低限の量の時間(たとえば、数週間、最低限の時間数)を必要とする可能性がある。別の例として、システムは、訓練モードにおいて、最低限の数の肯定的な例、または最低限の数の肯定的な例と最低限の量の時間との何らかの組合せを必要とする可能性がある。最低限の基準が満たされるまで(625、No)、システムは、デバイスが信頼できる環境内にあるときに情報(特徴)を収集し続ける。最低限の基準が満たされると(625、Yes)、システムは、否定的な例を取得し得る。否定的な例は、否定的な例の一般的な組である可能性があり、または肯定的な例を無作為であるが現実的に変更することによって生成される可能性がある(630)。肯定的な例を変更することは、キャプチャされたコンテンツ内の単語/エンティティの一部を似た単語/エンティティによって置き換えることを含み得る。一例として、場所または人が、別の場所または人によって置き換えられる可能性がある。多クラス分類器のモデルにおいて、肯定的な例を変更することは、あるユーザのための肯定的な例を別のユーザのための否定的な例として使用することを含む。そのとき、システムは、肯定的な例および否定的な例を使用して分類器を訓練し得る(635)。一部の実施形態において、システムは、いかなる否定的な例もなしに分類器を訓練する可能性がある。システムは、訓練基準が満たされるかどうかを判定し得る。訓練基準は、たとえば、最低限の量の時間、上述の最低限の数の肯定的な例、または最低限の分類精度である可能性がある。たとえば、システムは、いくつかの例を使用してモデルを訓練し、それから、その他の例(または、同じ例)に対してモデルを実行して、モデルが知られている例をどれだけ上手く分類するかを判定し得る。一部の実施形態において、最低限の数の例が、分類器を訓練するために使用される可能性があり、それから、もう一度最低限の量が収集され、モデルを評価するために使用される可能性がある。一部の実施形態は、最低限の時間の期間と、最低限の数の例と、最低限の分類精度との組合せを訓練基準として使用する可能性がある。訓練基準が満たされるまで(640、No)、システムは、デバイスが信頼できる環境内にあるときに情報(特徴)を収集し続ける。訓練基準が満たされると(640、Yes)、プロセス600は、プロセス600が終了し、モデルは推定モードにおいて使用する準備ができている。しかし、システムは、新しい肯定的な例を使用して分類モデルを訓練し続ける可能性がある。一部の実施形態において、訓練は、(信頼できる環境内にあるときに)最低限の時間の期間の間、絶えず継続する可能性があり、またはシステムは、ユーザがチャレンジを引き起こしたセッション情報によってチャレンジを成功裏に満たすときにモデルを訓練する可能性がある。加えて、システムは、デバイスが信頼できる環境内にあるときに特定の間隔で訓練モードになる可能性がある。したがって、システムは、ユーザが新しい活動に従事するときに、モデルを洗練し、最新に保つ可能性がある。
【００４９】
図7は、開示される実施形態による、スクリーン分析を使用してマルチユーザ環境におけるデバイスのセキュリティを高めるための例示的なプロセス700の流れ図を示す。プロセス700は、図1または図2のシステム100などのモバイルコンテンツベースセキュリティシステムによって実行され得る。プロセス700は、マルチユーザ環境内でプロファイルの切り替えを(たとえば、特定の命令なしに)自動的に開始するだけでなく、モバイル環境において邪魔にならないセキュリティまたはバックアップセキュリティを提供するために使用され得る。プロセス700は、複数の異なるプロファイルを特定し、分類するようにプロファイル分類モデルを訓練することによって始まり得る(705)。訓練は、図6に関連して上で説明されたように、デバイスが信頼できる環境内にあるときにスクリーン内で認識されたコンテンツを使用して達成される。プロファイル分類モデルにおいて、各訓練セッションと、ひいては生成された肯定的な例とは、特定のユーザに関連付けられる。したがって、モデルは、各ユーザに典型的な活動を学習することができる。故に、プロファイル分類モデルは、任意の種類の多クラス分類器である可能性がある。
【００５０】
2つ以上のプロファイルが十分に訓練されると、システムは、推定モードになる可能性がある。推定モードにおいて、システムは、1つのスクリーンまたは一連のスクリーン内、言い換えればセッション内のコンテンツを観察し、訓練されたモデルを使用してセッションを分類し得る(710)。コンテンツを観察する際に、システムは、アプリケーション、たとえば、モバイルアプリケーション、ウェブベースアプリケーション、もしくは別の種類のアプリケーションによってレンダリングされたスクリーンキャプチャ画像に対して、またはキャプチャされたテキストに対して様々な種類の認識を実行する可能性がある。それから、システムは、コンテンツの特徴ベクトルを決定し、特徴ベクトルを分類モデルに提供する可能性がある。分類モデルは、(たとえば、特徴ベクトルによって表される)特徴がプロファイルに合致するか否かの判定を提供する。判定は、モデルが入力(特徴ベクトル)が特定のプロファイルに一致することをどれだけ確実視しているかを表す信頼性のレベルを含む可能性がある。したがって、たとえば、判定は、入力が70%の信頼性のスコアで第1のユーザプロファイルに合致し、50%の信頼性のスコアで第2のユーザプロファイルに合致することを示す可能性がある。
【００５１】
システムは、モデルがサインオンしたユーザに関して低い信頼性を返すかどうかを判定し得る(715)。低い信頼性は、閾値と比較され、たとえば、閾値を満たさない可能性がある。低い信頼性は、現在の活動がサインオンしたユーザと一致しないことを示す可能性がある。信頼性が低くない場合(715、No)、システムは、アクションの分類を継続し得る(710)。信頼性が低い場合(715、Yes)、システムは、現在の活動が別のユーザに関するプロファイルに合致するかどうかを判定し得る(720)。活動、たとえば、スクリーン上に表示されたコンテンツから生成された特徴ベクトルがプロファイルに一致するかどうかは、特定のプロファイルの信頼性のスコアが閾値を満たすかまたは超えることに依存する。システムは、(たとえば、サインインしたユーザとは異なる)別のユーザプロファイルに関する少なくとも1つの信頼性のスコアが閾値を満たさないかまたは超えると判定する場合、プロファイルが合致すると判定し得る(720、Yes)。そのとき、システムは、プロファイルの切り替えを開始し得る(725)。
【００５２】
一部の実施形態において、プロファイルの切り替えを開始することは、自動である。言い換えれば、システムは、現在のユーザをサインアウトさせ、別のユーザをサインオンさせる可能性があり、それは、異なるユーザプロファイルデータを使用する結果となる。自動的なプロファイルの切り替えは、モバイルデバイスのユーザによって明示的に選択される選択肢である可能性がある。一部の実施形態において、プロファイルの切り替えを開始することは、ユーザプロファイルを切り替える許可を要求するプロンプトを提供することを含む可能性がある。たとえば、システムは、デバイスがプロファイルを切り替えるべきかどうかを尋ねるウィンドウを提供し、どのプロファイルが選択されるのかをユーザに知らせる可能性がある。一部の実施形態において、プロファイルの切り替えを開始することは、現在のユーザをサインオフさせ、たとえば、ユーザがプロファイルを選択し、パスワードを入力するように要求されるサインインインターフェースにデバイスを導く可能性がある。一部の実施形態において、システムは、デフォルトプロファイル(たとえば、信頼性のスコアが最も高いプロファイル)を選択し、パスワードの入力を促す可能性がある。言い換えれば、システムは、現在のプロファイルから自動的にログアウトする可能性があり、それは、ユーザが別のプロファイルを用いて明示的に再びサインインすることを要求する。プロファイルの切り替えを開始することは、プロセス700を終了する可能性がある。切り替えが成功した(たとえば、ユーザが成功裏にサインインした)後、システムは、訓練フェーズ(たとえば、ステップ705)に入る可能性があり、またはステップ710において現在の活動を新しいユーザプロファイルと比較し続ける可能性がある。
【００５３】
現在の活動が別のプロファイルに合致しない場合(720、No)、システムは、図3のステップ320に関連して上で説明されたように、ユーザにチャレンジを提示し得る(730)。チャレンジは、現在ログインしているユーザのプロファイルかまたはステップ710からの最も高い信頼性のスコアを有していたプロファイルかのどちらかに一致していた(たとえば、信頼性の閾値を満たしたまたは超えた)以前アクセスされたコンテンツに基づく可能性がある。たとえば、マルチユーザ環境において、各ユーザは、個々のスクリーンキャプチャインデックス、セッションの特徴、プロファイルデータなどを有する可能性がある。したがって、デバイスは、上で検討されたようにチャレンジを組み立てるために、サインインしたユーザに関連する図1のセッションの特徴132などのセッションの特徴または図1のインデックス146などのスクリーンキャプチャインデックスから情報を選択することができる。システムは、サインインしたユーザではなく最も高い信頼性のレベルを受け取ったプロファイルに関連するセッションの特徴および/またはスクリーンキャプチャインデックスを使用する可能性もある。システムは、プロファイルに関する信頼性のスコアが閾値に近づくが、閾値を満たすのに十分なだけ高くないとき、最も高い信頼性のレベルを有するプロファイルを選択する可能性がある。したがって、チャレンジは、サインインしたユーザではなく最も見込みのあるユーザに合わせて仕立てられる可能性がある。上に示されたように、チャレンジは、一連のサブチャレンジである可能性があり、以前見られたスクリーン内で認識されたコンテンツに基づく可能性がある。一部の実施形態においては、チャレンジを提示するのではなく、システムは、現在のユーザをログオフさせる可能性がある。
【００５４】
チャレンジが提示され、満たされる場合(735、Yes)、システムは、セッションに関して生成された特徴ベクトルを肯定的な訓練例として使用し得る(740)。チャレンジが現在サインインしているユーザに関連するコンテンツに基づいていた場合、例は、現在サインインしているユーザに関連付けられる可能性がある。チャレンジが別のユーザに関連するコンテンツに基づく場合、例は、別のユーザに関連付けられる可能性があり、デバイスは、上述のように、プロファイルの切り替えを開始する可能性がある。新しい訓練例は、分類モデルを訓練/洗練するために使用され得る。そして、プロセス700は、現在サインインしているユーザに関して推定モードで継続する。
【００５５】
チャレンジが満たされない場合(735、No)、システムは、別のチャレンジを発するべきかどうかを判定し得る(745)。図3に関連して上で説明されたように、これは、実施形態と、チャレンジがサブチャレンジを含むかどうかと、ユーザがいずれかの以前のサブチャレンジを成功裏に満たしたかどうかとに依存する可能性がある。満たされるべきその他のチャレンジが存在しない場合(745、No)、システムは、図3のステップ340に関連して上で説明されたように、モバイルデバイスをロックし得る(750)。
【００５６】
図8は、本明細書に記載の技術で使用され得る、図1のサーバ170および/またはデバイス110として動作させられ得る汎用的なコンピュータデバイス800の例を示す。コンピューティングデバイス800は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、セルラー電話、スマートフォン、タブレット、サーバ、およびウェアラブルデバイスを含むその他のコンピューティングデバイスなどの様々な例示的な形態のコンピューティングデバイスを表すように意図される。本明細書において示される構成要素、それらの構成要素の接続および関係、ならびにそれらの構成要素の機能は、単に例であるように意図されており、本明細書において説明および/または特許請求される本発明の実施形態を限定するように意図されていない。
【００５７】
コンピューティングデバイス800は、インターフェース808を介して接続されたプロセッサ802、メモリ804、ストレージデバイス806、および拡張ポート810を含む。一部の実施形態において、コンピューティングデバイス800は、構成要素の中でもとりわけ、インターフェース808を介して接続されたトランシーバ846、通信インターフェース844、およびGPS(全地球測位システム)受信機モジュール848を含む可能性がある。デバイス800は、必要に応じてデジタル信号処理回路を含む可能性がある通信インターフェース844を通じて無線で通信し得る。構成要素802、804、806、808、810、840、844、846、および848の各々は、共通のマザーボードに搭載されるか、または適宜その他の方法で搭載される可能性がある。
【００５８】
プロセッサ802は、ディスプレイ816などの外部入力/出力デバイス上でGUIのためのグラフィカルな情報を表示するための、メモリ804またはストレージデバイス806に記憶された命令を含む、コンピューティングデバイス800内で実行するための命令を処理することができる。ディスプレイ816は、モニタまたはフラットタッチスクリーンディスプレイである可能性がある。一部の実施形態においては、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数の種類のメモリとともに適宜使用され得る。また、複数のコンピューティングデバイス800が、各デバイスが必要な動作の一部を行うようにして(たとえば、サーババンク、一群のブレードサーバ、またはマルチプロセッサシステムとして)接続される可能性がある。
【００５９】
メモリ804は、コンピューティングデバイス800内で情報を記憶する。1つの実施形態において、メモリ804は、1つの揮発性メモリユニットまたは複数の揮発性メモリユニットである。別の実施形態において、メモリ804は、1つの不揮発性メモリユニットまたは複数の不揮発性メモリユニットである。メモリ804は、磁気または光ディスクなどの別の形態のコンピュータ可読媒体である可能性もある。一部の実施形態において、メモリ804は、拡張インターフェースを通じて提供される拡張メモリを含む可能性がある。
【００６０】
ストレージデバイス806は、コンピューティングデバイス800に大容量記憶を提供することができる。1つの実施形態において、ストレージデバイス806は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくはその他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくはその他の構成内のデバイスを含むデバイスのアレーなどのコンピュータ可読媒体であるか、またはそのようなコンピュータ可読媒体を含む可能性がある。コンピュータプログラム製品は、そのようなコンピュータ可読媒体内に有形で具現化され得る。コンピュータプログラム製品は、実行されるときに上述の方法などの1つまたは複数の方法を実行する命令を含む可能性もある。コンピュータ可読媒体または機械可読媒体は、メモリ804、ストレージデバイス806、またはプロセッサ802上のメモリなどのストレージデバイスである。
【００６１】
インターフェース808は、コンピューティングデバイス800に関する帯域を大量に消費する動作を管理する高速なコントローラ、または帯域をそれほど消費しない動作を管理する低速なコントローラ、またはそのようなコントローラの組合せである可能性がある。デバイス800とその他のデバイスとの近距離通信を可能にするために、外部インターフェース840が設けられる可能性がある。一部の実施形態において、コントローラ808は、ストレージデバイス806および拡張ポート814に結合され得る。様々な通信ポート(たとえば、USB、Bluetooth（登録商標）、イーサネット（登録商標）、ワイヤレスイーサネット（登録商標）)を含み得る拡張ポートは、キーボード、ポインティングデバイス、スキャナなどの1つもしくは複数の入力/出力デバイスと結合され得るか、またはたとえばネットワークアダプタを介してスイッチもしくはルータなどのネットワーキングデバイスと結合され得る。
【００６２】
コンピューティングデバイス800は、図に示されるように、多くの異なる形態で実施され得る。たとえば、コンピューティングデバイス800は、1つの標準的なサーバ830として実施されるか、または一群のそのようなサーバ内で複数回実施される可能性がある。コンピューティングデバイス800は、ラックサーバシステムの一部として実施される可能性もある。加えて、コンピューティングデバイス800は、ラップトップコンピュータ832、パーソナルコンピュータ834、またはタブレット/スマートフォン836などのコンピューティングデバイスに実装される可能性がある。システム全体が、互いに通信する複数のコンピューティングデバイス800によって構成される可能性がある。その他の構成が、あり得る。
【００６３】
図9は、本明細書に記載の技術で使用され得る、図1のサーバ170である可能性がある汎用的なコンピュータデバイス900の例を示す。コンピューティングデバイス900は、サーバ、ブレードサーバ、データセンター、メインフレーム、およびその他の大規模なコンピューティングデバイスなどの大規模なデータ処理デバイスの様々な例示的な形態を表すように意図される。コンピューティングデバイス900は、1つまたは複数の通信ネットワークによって相互に接続される、おそらくはネットワーク接続ストレージノードを含む、複数のプロセッサを有する分散型のシステムである可能性がある。本明細書において示される構成要素、それらの構成要素の接続および関係、ならびにそれらの構成要素の機能は、単に例であるように意図されており、本明細書において説明および/または特許請求される本発明の実施形態を限定するように意図されていない。
【００６４】
分散型のコンピューティングシステム900は、任意の数のコンピューティングデバイス980を含む可能性がある。コンピューティングデバイス980は、ローカルまたは広域ネットワーク、専用の光リンク、モデム、ブリッジ、ルータ、スイッチ、有線またはワイヤレスネットワークなどを介して通信するサーバまたはラックサーバ、メインフレームなどを含み得る。
【００６５】
一部の実施形態において、各コンピューティングデバイスは、複数のラックを含む可能性がある。たとえば、コンピューティングデバイス980aは、複数のラック958a〜958nを含む。各ラックは、プロセッサ952a〜952nおよび962a〜962nなどの1つまたは複数のプロセッサを含み得る。プロセッサは、データプロセッサ、ネットワーク接続ストレージデバイス、およびその他のコンピュータによって制御されるデバイスを含む可能性がある。一部の実施形態において、1つのプロセッサは、マスタプロセッサとして動作し、スケジューリングおよびデータ配信タスクを制御する可能性がある。プロセッサは、1つまたは複数のラックスイッチ958を通じて相互に接続される可能性があり、1つまたは複数のラックは、スイッチ978を通じて接続される可能性がある。スイッチ978は、複数の接続されたコンピューティングデバイス900の間の通信を扱い得る。
【００６６】
各ラックは、メモリ954およびメモリ964などのメモリならびに956および966などのストレージを含み得る。ストレージ956および966は、大容量ストレージを提供する可能性があり、ネットワーク接続ディスク、フロッピーディスク、ハードディスク、光ディスク、テープ、フラッシュメモリもしくはその他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくはその他の構成内のデバイスを含むデバイスのアレーなどの揮発性または不揮発性ストレージを含む可能性がある。ストレージ956または966は、複数のプロセッサ、複数のラック、または複数のコンピューティングデバイスの間で共有される可能性があり、プロセッサのうちの1つまたは複数によって実行され得る命令を記憶するコンピュータ可読媒体を含む可能性がある。メモリ954および964は、たとえば、1つの揮発性メモリユニットもしくは複数の揮発性メモリユニット、1つの不揮発性メモリユニットもしくは複数の不揮発性メモリユニット、および/または磁気もしくは光ディスク、フラッシュメモリ、キャッシュ、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、およびこれらの組合せなどのその他の形態のコンピュータ可読媒体を含み得る。メモリ954などのメモリは、プロセッサ952a〜952nの間でやはり共有される可能性がある。インデックスなどのデータ構造は、たとえば、ストレージ956およびメモリ954にまたがって記憶される可能性がある。コンピューティングデバイス900は、コントローラ、バス、入力/出力デバイス、通信モジュールなどの図示されていないその他の構成要素を含む可能性がある。
【００６７】
システム100などのシステム全体が、互いに通信する複数のコンピューティングデバイス900によって構成される可能性がある。たとえば、デバイス980aは、デバイス980b、980c、および980dと通信する可能性があり、これらは、集合的にシステム100として知られる可能性がある。別の例として、図1のシステム100は、1つまたは複数のコンピューティングデバイス900を含む可能性がある。コンピューティングデバイスの一部は、地理的に互いに近くに位置している可能性があり、その他は、地理的に離れて位置している可能性がある。システム900のレイアウトは、単なる例であり、システムは、その他のレイアウトまたは構成を持つ可能性がある。
【００６８】
本開示の特定の態様によれば、モバイルデバイスが、少なくとも1つのプロセッサと、少なくとも1つのプロセッサによって実行されるときにモバイルデバイスに動作を実行させる命令を記憶するメモリとを含む。この動作には、モバイルアプリケーションによってレンダリングされたコンテンツを特定することであって、コンテンツが、セッション中にレンダリングされる、特定することと、コンテンツから特徴ベクトルを生成することと、特徴ベクトルが分類モデルに合致しないと判定することとが含まれる。動作には、特徴ベクトルが分類モデルに合致しないという判定に応じて、モバイルデバイスのユーザを認証するように構成されたチャレンジを提供することも含まれる。
【００６９】
このおよびその他の態様は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、セッションは、第1のセッションである可能性があり、チャレンジは、第1のセッションとは異なる以前のセッションに基づく。そのような実施形態において、以前のセッションは、分類モデルに合致する特徴ベクトル、または信頼できる場所を使用して確認された特徴ベクトル、または以前のチャレンジによって確認された特徴ベクトルを含む可能性がある。別の例として、チャレンジは、分類モデルに合致する特徴ベクトルを含んでいた以前のセッション内でモバイルデバイスによって表示されたスクリーンから欠けた情報を補って完成させるようにユーザを促すように構成される可能性がある。別の例として、チャレンジを提供することは、分類モデルに合致する特徴ベクトルを含んでいた以前のセッション内でモバイルデバイスによって表示されたスクリーンから情報を抽出することと、抽出された情報に基づいて多肢選択式の質問を生成することとを含み得る。
【００７０】
別の例として、メモリは、少なくとも1つのプロセッサによって実行されるときに、チャレンジに対する応答をモバイルデバイスに受信させ、応答がチャレンジに失敗するときにモバイルデバイスをロックする命令をさらに記憶する可能性がある。別の例として、チャレンジは、一連のサブチャレンジを含む可能性がある。別の例として、分類モデルは、信頼できる場所において発生するセッションによって訓練される。セッションは、モバイルデバイス上でキャプチャされた単一のスクリーン、モバイルアプリケーションの特定のユーザインターフェースの使用中にキャプチャされたスクリーン、時間の窓の間にキャプチャされたスクリーン、またはモバイルアプリケーションの使用中にキャプチャされたスクリーンを含む可能性がある。
【００７１】
本開示の特定の態様によれば、方法が、モバイルデバイスが信頼できる場所に位置していると判定することと、セッションから情報をキャプチャすることであって、情報が、セッション中にモバイルデバイス上で実行されているモバイルアプリケーションによってレンダリングされたコンテンツに由来する、キャプチャすることと、セッションに関する特徴ベクトルを生成することとを含み得る。方法は、訓練基準が満たされるまでキャプチャすることおよび判定することを繰り返すことと、訓練された分類モデルを使用してモバイルデバイスのユーザを認証することとをさらに含む。
【００７２】
このおよびその他の態様は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、訓練基準は、最低限の量のセッションまたは最低限の分類精度を含む可能性がある。別の例として、訓練された分類モデルを使用してユーザを認証することは、モバイルアプリケーションによってレンダリングされたコンテンツに基づいて現在のセッションを決定することと、セッションに関する特徴ベクトルを生成することと、特徴ベクトルが分類モデルに合致しないと判定することに応じて、モバイルデバイスのユーザを認証するように構成されたチャレンジを提供することとを含み得る。一部のそのような実施形態において、特徴ベクトルは、分類モデルを用いて特徴ベクトルを評価することによって生成された信頼性のスコアが閾値を満たさないとき、分類モデルに合致しない可能性がある。別の例として、モバイルデバイスが信頼できる場所に位置していると判定することは、信頼できる場所を決定するためにモバイルデバイスに関連するユーザプロファイルにアクセスすることと、モバイルデバイスが信頼できる場所に現在位置していると判定することとを含み得る。一部のそのような実施形態において、信頼できる場所は、全地球測位システム(GPS)座標によって表される可能性があり、モバイルデバイスは、現在のGPS座標を使用して、モバイルデバイスが信頼できる場所に現在あるかどうかを判定するか、または信頼できる場所は、ワイヤレスネットワーク識別子によって表され、モバイルデバイスは、モバイルデバイスが接続されるワイヤレスネットワークがワイヤレスネットワーク識別子に合致するかどうかを判定する。
【００７３】
本開示の特定の態様によれば、モバイルデバイスが、少なくとも1つのプロセッサと、少なくとも1つのプロセッサによって実行されるときにモバイルデバイスに動作を実行させる命令を記憶するメモリとを含む。この動作には、モバイルアプリケーションによってレンダリングされたコンテンツを特定することであって、コンテンツが、セッション中にレンダリングされる、特定することと、コンテンツから特徴ベクトルを生成することとが含まれ得る。動作にはさらに、特徴ベクトルに分類モデルを適用することと、分類モデルの適用に基づいて特徴ベクトルが第1のユーザプロファイルに合致するかどうかを判定することであって、第1のユーザプロファイルが、第2のユーザプロファイルと異なり、モバイルデバイスが、第2のユーザプロファイルに現在関連付けられている、判定することと、特徴ベクトルが第1のユーザプロファイルに合致すると判定することに応じてプロファイルの切り替えを開始することとが含まれ得る。
【００７４】
このおよびその他の態様は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、動作は、特徴ベクトルがユーザプロファイルに合致しないと判定することと、チャレンジを提供することであって、チャレンジが、モバイルデバイスのユーザを認証するように構成される、提供することとをさらに含み得る。別の例として、チャレンジは、第2のユーザプロファイルに関連する以前のセッション中にレンダリングされた第2のコンテンツに基づく可能性があり、第2のコンテンツは、分類モデルによって第2のユーザプロファイルに一致する特徴ベクトルに関連付けられる。別の例として、チャレンジは、特徴ベクトルに関して第1のユーザプロファイルが第2のユーザプロファイルよりも高い信頼性のスコアを有すると分類モデルが判定するとき、第1のユーザプロファイルに関連する以前のセッション中にレンダリングされた第2のコンテンツに基づく。別の例として、特徴ベクトルが第1のユーザプロファイルに合致するかどうかを判定することは、特徴ベクトルが第2のユーザプロファイルに合致しないと判定した後に行われる。
【００７５】
別の例として、動作は、モバイルデバイスが第2のユーザプロファイルに関連する信頼できる環境内に位置している判定することと、モバイルデバイス上で実行されているモバイルアプリケーションによってレンダリングされたコンテンツを認識することであって、コンテンツが、コンテンツに関する特徴ベクトルを生成するセッションに関連付けられる、認識することと、少なくとも最低限の量のセッションに関して認識することおよび生成することを繰り返すことと、特徴ベクトルを肯定的な例として使用して分類モデルを訓練することであって、肯定的な例が、第2のユーザプロファイルに関連付けられる、訓練することとによって分類モデルを訓練することをさらに含み得る。一部のそのような実施形態においては、第1のユーザプロファイルに関連する肯定的な例が、分類モデルを訓練する際に第2のユーザプロファイルに関する否定的な例として使用される。動作は、最低限の分類精度が達せられるまで分類モデルを訓練することをさらに含み得る。
【００７６】
様々な実施形態は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、それらにデータおよび命令を送信するために結合された、専用または汎用である可能性がある少なくとも1つのプログラミング可能なプロセッサを含むプログラミング可能なシステム上の、実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムへの実装を含み得る。
【００７７】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラミング可能なプロセッサ用の機械命令を含み、高級手続き型プログラミング言語および/もしくはオブジェクト指向プログラミング言語、ならびに/またはアセンブリ/機械言語で実施され得る。本明細書において使用されるとき、用語「機械可読媒体」、「コンピュータ可読媒体」は、プログラミング可能なプロセッサに機械命令および/またはデータを提供するために使用される任意の非一時的コンピュータプログラム製品、装置、ならびに/またはデバイス(たとえば、磁気ディスク、光ディスク、(読み出しアクセスメモリ(Read Access Memory)を含む)メモリ、プログラマブルロジックデバイス(PLD))を指す。
【００７８】
本明細書に記載のシステムおよび技術は、バックエンド構成要素を(たとえば、データサーバとして)含むか、またはミドルウェア構成要素(たとえば、アプリケーションサーバ)を含むか、またはフロントエンド構成要素(たとえば、ユーザが本明細書に記載のシステムおよび技術の実施形態とインタラクションすることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータ)を含むか、またはそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムに実装され得る。システムの構成要素は、デジタルデータ通信の任意の形態または媒体(たとえば、通信ネットワーク)によって相互に接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、およびインターネットを含む。
【００７９】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。
【００８０】
いくつかの実施形態が、説明された。しかしながら、様々な修正が、本発明の精神および範囲から逸脱することなしになされ得る。加えて、図面に示された論理フローは、所望の結果を達成するために、示された特定の順序または逐次的順序である必要はない。さらに、その他のステップが設けられる可能性があり、またはステップが説明されたフローから削除される可能性があり、その他の構成要素が説明されたシステムに追加されるか、もしくは説明されたシステムから削除される可能性がある。したがって、その他の実施形態は、添付の請求項の範囲内にある。
【符号の説明】
【００８１】
100  システム
110  モバイルデバイス
120  アプリケーション
122  スクリーン分析エンジン
124  スクリーンベースセキュリティエンジン
126  スクリーンキャプチャエンジン
130  データストア
132  セッションの特徴
134  予測分類器
142  プロファイルデータ
144  データグラフ
146  スクリーンキャプチャインデックス
160  ネットワーク
170  サーバ
210  知識ベース
215  スクリーンキャプチャインデックス
220  ユーザプロファイル
225  セッションの特徴
250  スクリーンコンテンツエンジン
300  プロセス
400  表示
405  一部分
410  指示ウィンドウ
500  表示
600  プロセス
700  プロセス
800  コンピュータデバイス
802  プロセッサ
804  メモリ
806  ストレージデバイス
808  インターフェース
810  拡張ポート
814  拡張ポート
816  ディスプレイ
830  標準的なサーバ
832  ラップトップコンピュータ
834  パーソナルコンピュータ
836  タブレット/スマートフォン
840  外部インターフェース
844  通信インターフェース
846  トランシーバ
848  GPS受信機モジュール
900  コンピュータデバイス
952a〜952n  プロセッサ
954  メモリ
956  ストレージ
958  ラックスイッチ
958a〜958n  ラック
962a〜962n  プロセッサ
964  メモリ
966  ストレージ
978  スイッチ
980  コンピューティングデバイス
980a  コンピューティングデバイス
980b  デバイス
980c  デバイス
980d  デバイス
【図１】
0006441502.tif 000002
【図２】
0006441502.tif 000003
【図３】
0006441502.tif 000004
【図４】
0006441502.tif 000005
【図５】
0006441502.tif 000006
【図６】
0006441502.tif 000007
【図７】
0006441502.tif 000008
【図８】
0006441502.tif 000009
【図９】
0006441502.tif 000010