(57)【特許請求の範囲】
【請求項１】
ユーザを受動的に認証するためにコンピューティングシステムによって実行される方法であって、
第１のアクションのアトリビュートを検出するステップと、
前記第１のアクションの検出されたアトリビュートと、類似する第１のアクションの以前にストアされたアトリビュートと、の間の第１の差異レベルを決定するステップと、
前記第１の差異レベルが第１の認証レベルの範囲内にあるかどうかを判断するステップと、
前記第１の差異レベルが前記第１の認証レベルの範囲内にある場合、ユーザに能動的に認証させることなくユーザを受動的に認証するステップと、
を含み、
前記ユーザーの前記認証は、前記第１の差異レベル又は前記第１のアクションに基づいた信頼性レベルに従ったものであり、
前記ユーザーが利用可能なアクセスレベルは、前記信頼性レベルに基づき
さらに、
第２のアクションのアトリビュートを検出するステップと、
前記第２のアクションの検出されたアトリビュートと、類似する第２のアクションの以前にストアされたアトリビュートと、の間の第２の差異レベルを決定するステップと、
前記第２の差異レベル又は前記第２のアクションの前記アトリビュートに基づいて、前記信頼性レベルを増やすか減らすかを判断するステップと、
を、含み、
それに応じて、前記ユーザーが利用可能な前記アクセスレベルを調整する、
ことを特徴とする方法。
【請求項２】
アクションは、コンピューティングデバイスによって識別可能であるロケーションにコンピューティングシステムを移動することであることを特徴とする請求項１に記載の方法。
【請求項３】
検出するステップは、カメラを使用して周囲のイメージをキャプチャすること、ロケーション情報を受信すること、データ通信ネットワークの名前を特定すること、およびデータ通信ネットワーク内のデバイスを特定することのうち少なくとも１つを含むことを特徴とする請求項２に記載の方法。
【請求項４】
受動的認証を初期に禁止し、アクションのアトリビュートをストアしたあと受動的認証を可能にすることを、さらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
受動的認証が禁止されている場合、ユーザによって要求されたトランザクションを完了する前にユーザに能動的に認証することを要求することを含むことを特徴とする請求項４に記載の方法。
【請求項６】
アトリビュートは、電話コールが行なわれる先の電話番号であり、以前にストアされたアトリビュートは連絡先リストにストアされた電話番号であることを特徴とする請求項１に記載の方法。
【請求項７】
アクションは、温度を検出することであることを特徴とする請求項１に記載の方法。
【請求項８】
アクションは、別のデバイスの共存を検出することであることを特徴とする請求項１に記載の方法。
【請求項９】
アクションは顔を認識することであることを特徴とする請求項１に記載の方法。
【請求項１０】
アクションのアトリビュートの２またはそれ以上の比較に基づいて信頼性レベルを設定し、前記信頼性レベルが指定した信頼性レベルのしきい値を超えているときユーザを能動的に認証することを、さらに含むことを特徴とする請求項１に記載の方法。
【請求項１１】
その実行時にユーザを受動的に認証する方法を実行するコンピュータ実行可能命令をストアしているコンピュータ可読記憶媒体であって、前記方法は、
信頼性レベルをデフォルト値に設定するステップと、
第１の信頼性係数のセットを特定するステップと、
前記第１の信頼性係数のセット内の特定した各信頼性係数について、
第１の信頼性を計算するステップと、
計算した前記第１の信頼性に基づいて前記信頼性レベルを変更するステップと、
前記変更した信頼性レベルが指定したしきい値を超えている場合、ユーザに能動的に認証することを要求することなくユーザを第１のアクセスレベルに受動的に認証するステップと、
を含み、
さらに、
第２の信頼性係数のセットを特定するステップと、
前記第２の信頼性係数のセット内の特定した各信頼性係数について、
第２の信頼性を計算するステップと、
計算した前記第２の信頼性に基づいて前記信頼性レベルを増加または減少するステップと、
増加または減少された前記信頼性レベルが指定したしきい値を超えている場合、ユーザを第１のアクセスレベルより高い第２のアクセスレベルに受動的に認証するステップと、
増加または減少された前記信頼性レベルが指定したしきい値より低い場合、ユーザを第１のアクセスレベルより低い第３のアクセスレベルに受動的に認証するステップと、
を含む、
ことを特徴とするコンピュータ可読記憶媒体。
【請求項１２】
特定した各信頼性レベルについてウェイトを設定し、信頼性を計算するとき前記ウェイトを組み入れることを、さらに含むことを特徴とする請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１３】
ユーザを受動的に認証するシステムであって、
第１のアクセスリクエストを受け取り、前記第１のアクセスリクエストを実行するにはアクセスレベルを要するコンポーネントと、
コンパレータコンポーネントであり、
プロンプトでユーザに入力を提供することを求めることなく、第１の入力を検出し、
前記検出された第１の入力と、以前にストアされた第１の入力と、の間の第１の差異レベルを決定し、
前記第１の差異レベルが、前記アクセスレベルに対応する認証レベルの範囲内にないと判断した場合、それに応じて、前記第１のアクセスリクエストは実行しない、
コンパレータコンポーネントと、
第２のアクセスリクエストを受け取り、前記第２のアクセスリクエストを実行するにはアクセスレベルを要するコンポーネントと、を備え、
前記コンパレータコンポーネントは、さらに、
プロンプトで前記ユーザに入力を提供することを求めることなく、第２の入力を検出し、
前記検出された第２の入力と、以前にストアされた第２の入力と、の間の第２の差異レベルを決定し、
前記第２の差異レベルが、前記アクセスレベルに対応する認証レベルの範囲内にあると判断した場合、それに応じて、前記ユーザーを受動的に認証し、前記第２のアクセスリクエストの実行を許可する、
ことを特徴とするシステム。
【請求項１４】
前記コンパレータコンポーネントは、さらに、
前記第１の差異レベルが認証レベルの範囲内にないと判断し、前記第１のアクセスリクエストを実行しないこと、に応じて、
プロンプトでユーザに認証資格証明書を要求させて、前記第１のアクセスリクエストを実行するのに要するアクセスレベルまで、前記ユーザが能動的に認証されるようにすることを特徴とする請求項１３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、ユーザを受動的に認証する方法およびシステムに関する。
【背景技術】
【０００２】
多くのコンピューティングシステムはセキュリティを強化するために様々な特徴を提供している。セキュリティの強化には、認証(authentication)と許可(authorization)を評価し、強化することが含まれている。コンピューティングデバイスは、ユーザをセキュアに特定するために認証を使用している。コンピューティングデバイスは、ユーザが誰であるか、そのユーザが本当にユーザであることを主張している人であるかを判断するために認証を使用しているのが一般的である。認証に関係する概念が許可である。コンピューティングシステムは、認証したユーザのアクセスレベルを判断するために許可を使用している。例えば、コンピューティングシステムは、認証したユーザにどの特徴またはリソースへのアクセス（例えば、アクセス、追加、作成、削除、変更などのために）を与えるかを判断するために許可ルール(authorization rule)を評価することもあり得る。コンピューティングシステムがユーザを認証したあと、コンピューティングシステムはユーザの許可に基づいて様々な特徴をユーザに与えることもある。コンピューティングシステムは、例えば、許可ルールを強化することによって適切な許可レベルを判断するために許可コンポーネントを使用することができる。
【０００３】
従来、コンピューティングシステムはセキュリティを能動的に強化している。能動的認証には、認証しようとするユーザから直接に認証情報を受信することが含まれている。例として、ユーザはログイン資格証明書(login credential)（例：ユーザＩＤおよび／またはパスワード）を提供し、カードキーまたは他のデバイスをユーザに近接して置き、または自身を特定および／または認証するために他のなんらかの能動的ステップをとることがある。従って、能動的認証では、ユーザとコンピューティングシステムの間で共有される「秘密(secret)」を検証したり、チャレンジに対するユーザのレスポンスを有効性検査したりするのが一般的である。能動的許可には、認証に基づいてルールを強化することが含まれている。
【０００４】
しかし、コンピューティングシステムによって提供されるある種の特徴またはトランザクションが他の特徴とは異なる「レベル」の認証を必要とするときは、時には、認証が許可の邪魔になることがある。１つの例として、コンピューティングシステムがモバイル電話であるとき、ユーザはローカル電話コールを出すために第１のレベルの認証を必要とすることもあれば、長距離電話コールを出したり、エレクトロニックコマーストランザクションを行なったりするために第２の異なるレベルの認証を必要とすることもある。別の例として、ユーザは公共インターネットのＷｅｂサイトをブラウズするために第３のレベルの認証を必要とすることがあるが、電子メールを送受信するために第４の異なるレベルの認証を必要とすることもある。
【０００５】
コンピューティングシステムによって提供される特徴は異なるカテゴリに分割することができるが、このような分割は、例えば、ユーザがまだ認証されていないときやユーザを能動的に認証することが不要であるとき、または認証されたユーザに提供できるレベルとは異なるレベルの許可をある特徴が要求するときは非効率である。
【発明の概要】
【０００６】
コンピューティングシステムにおいて受動的セキュリティ強化(passive security enforcement)を可能にするテクノロジが説明されている（本テクノロジ）。コンピューティングシステムのコンポーネントは、コンピューティングシステムとのユーザのやりとりの観察に基づいてユーザを受動的に認証または許可することができる。これらの観察は、例えば、ユーザのやりとりの物理的観察、ユーザによるコンピューティングシステムの使用状況の行動観察などを含むことができる。本テクノロジは、これらの観察に基づいて認証レベルまたは許可レベルを増減することがある。このレベルは、ユーザにどのレベルのアクセスが許与されるかを示すことができる。ユーザまたはコンピューティングデバイスのコンポーネントがリクエストを開始するとき、アプリケーションまたはサービスは、レベルがそのリクエストを満足するのに十分であるかどうかを判断することができる。レベルが不十分である場合は、アプリケーションまたはサービスはプロンプトでユーザに資格証明書を要求して、ユーザが能動的に認証されるようにするこができる。レベルは、例えば、観察されたユーザのアクションに基づいて時間と共に変化することがある。
【０００７】
本テクノロジによると、コンピューティングシステムは、２つの近接デバイスが認証レベルを共有できるように認証を「信用」することが可能になる。コンピューティングデバイスがそのユーザも認証していた別のコンピューティングデバイスの近くに置かれているときは、一方または両方のデバイスにいるユーザの認証レベルが増加することもある。
【０００８】
種々の実施形態において、物理的観察は他のデバイスの近接を含むことが可能であるので、例えば、モバイルコンピューティングシステムは、組み込みエレクトロニクスと共に組み込まれたユーザがカーイグニッションキー（キーポケット(key fob)とも呼ばれる）のような、別のデバイスを携帯している場合より高い認証レベルを提供することがある。以前に認識されたキーポケットが最早コンピューティングシステムに近接していないときは、コンピューティングシステムは受動的に提供した認証レベルを減少することもある。
【０００９】
この簡単な説明は、以下に「詳細な説明」の中で詳しく記載されている概念（コンセプト）を選んで簡略に紹介するためのものである。この簡単な説明は請求項に記載の主題のキーとなる特徴または基本的な特徴を特定するものでも、請求項に記載の主題の範囲を判断する際の援助として使用されるものでもない。
【図面の簡単な説明】
【００１０】
【図１】種々の実施形態において本テクノロジによって使用されるコンポーネントを示すブロック図である。
【図２】トランザクションを完了するためにクライアントからリクエストを受信したときサービスによって実行されるルーチンを示すフロー図である。
【図３】信頼性係数を観察するためにコンピューティングシステムによって実行されるルーチンを示すフロー図である。
【図４】信頼性レベルを計算するためにコンピューティングシステムによって実行されるルーチンを示すフロー図である。
【図５】信頼性レベルを提供するためにコンピューティングシステムによって実行されるルーチンを示すフロー図である。
【図６】信頼性係数を提供するためにコンピューティングシステムによって実行されるルーチンを示すフロー図である。
【図７Ａ】選択された信頼性係数をチェックするためにコンピューティングシステムによって実行されるルーチンを示すブロック図である。
【図７Ｂ】選択された信頼性係数をチェックするためにコンピューティングシステムによって実行されるルーチンを示すブロック図である。
【図８】種々の実施形態において本テクノロジよって使用されるコンポーネントを示すブロック図である。
【発明を実施するための形態】
【００１１】
コンピューティングシステム、例えば、モバイルコンピューティングデバイスにおいて受動的セキュリティ強化を可能にするテクノロジが記載されている（本テクノロジ）。コンピューティングシステムのコンポーネントは、コンピューティングシステムとのユーザのやりとりの観察に基づいてユーザを受動的に認証または許可することができる。これらの観察は、例えば、ユーザのやりとりの物理的観察、ユーザによるコンピューティングシステムの使用状況の行動観察などを含むことができる。例として、物理的観察は、例えば、熱または温度センサ、圧力／タッチセンサ、動きセンサ／加速度計、他のデバイスの近接などを含むことができる。行動観察は、例えば、ユーザが以前にストアされた連絡先リスト内の人に電話しているかどうか、ユーザが以前に所在していると観察されたエリアにユーザが所在しているかどうか、などの観察を含むことができる。ユーザの物理的観察および／または行動観察が以前のパターンと一致している場合は、ユーザは観察された認証「レベル」で受動的に認証されることがある。いくつかの観察が以前のパターンと一致している場合は、そのレベルが増加することがある。他方、少数の観察だけが以前のパターンと一致している場合またはいくつかの観察が以前のパターンと一致していない場合は、そのレベルが減少することがある。本テクノロジによれば、種々のハードウェアおよびソフトウェアコンポーネントを使用して、コンピューティングシステムに行なわれる種々の入力に対する変更を検出することによって観察が行なわれる。
【００１２】
ユーザがある特徴にアクセスしたり、あるトランザクションを要求したりするとき、関連のアプリケーションまたはサービスは、どのレベルの認証を本テクノロジが受動的に観察したかを、（例えば、コンピューティングシステム上で実行されているオペレーティングシステムによって提供されるアプリケーションプログラムインタフェース（ＡＰＩ）にアクセスすることによって）コンピューティングシステムから判断することがある。認証レベルが十分に高ければ（例えば、指定したしきい値レベルを超えている）、アプリケーションまたはサービスはそのリクエストを完了することがある。１つの例として、連絡先リストにない電話番号にユーザがローカル電話コールを行なうときは、コンピューティングシステムはそのコールを開始することがある。別の例として、ユーザが公共Ｗｅｂサイトをブラウズするときは、コンピューティングシステムは、ＷｅｂブラウザにそのリクエストをＷｅｂサーバに対して出させることがある。
【００１３】
これらの許可は、これらの特徴／トランザクションが現在の認証レベルで実行される可能性あるとユーザ、システムアドミニストレータ、アプリケーション、または他のエンティティが判断したために行なわれることがある。１つの例として、ローカル電話コールは「フリー」であることがあるが、長距離電話コールはユーザに料金を負担させることがある。別の例として、公共Ｗｅｂサイトをブラウズすることが「フリー」で、許容し得るリスクであることがあるが、銀行残高をチェックしたり、あるアイテムをオンラインで購入したりすることは、現在の認証レベルでは許容し得ないリスクが伴うことがある。
【００１４】
認証が要求した特徴またはトランザクションには十分に高くない場合は、アプリケーションまたはサービスは、エラーを戻してくるか、あるいは能動的認証を要求することがある。ユーザを能動的に認証するために、オペレーティングシステムは、ユーザの認証資格証明書を提供することをユーザに要求することがある。１つの例として、ユーザが長距離電話コールを行なうとき、コンピューティングシステムは電話コールを行なわないことがあり、その代わりに、プロンプトでユーザにユーザのログイン資格証明書を求めることがある。このログイン資格証明書を能動的に検証したあと、コンピューティングシステムはそのコールを行なうことがある。別の例として、ユーザがブラウザを使用してあるサービスに対して財務トランザクションを要求したときは、そのサービスは高い認証レベルを要求することがある。現在の認証レベルがサービスが指定したしきい値より低いと判断すると、コンピューティングシステムは、プロンプトでユーザにユーザのログイン資格証明書を求めることがある。ユーザが提供したログイン資格証明書を検証したあと、コンピューティングシステムは、ユーザの認証レベルがトランザクションを完了するのに十分に高いことをサービスに通知することがある。あるいは、サービスは、要求したトランザクションが完了できることを、ユーザが提供した資格証明書に基づいて判断することがある。種々の実施形態において、ＡＰＩは照会するサービスに対して認証レベルを示すこともあれば、ユーザの認証レベルが指定したしきい値を超えているか否かをサービスに通知するだけのこともあれば、サービスに資格証明書を伝えることさえもある。１つの例として、トランザクションを完了するリクエストを受信すると、サービスは最初にリクエストをユーザのコンピューティングシステムに送信して、そのサービスが指定した認証レベルを要求していることを知らせることがある。ユーザの現在の認証レベルが低すぎるとユーザのコンピューティングシステムが判断した場合は、プロンプトでユーザに１つまたは２つ以上の資格証明書を求めることもあれば、認証レベルが低すぎることをサービスに通知することもある。後者のケースでは、サービスは、サービスがユーザを許可できるようにプロンプトでユーザに資格証明書の提供を求めることがある。
【００１５】
コンピューティングシステムは、例えば、受動的認証に関して上述したものと類似の手法を使用することによってユーザを受動的に許可することもある。１つの例として、ユーザが受動的に認証されたあと、ユーザはより強いレベルの認証を必要とするトランザクションを要求することがある。許可コンポーネントは、ユーザがトランザクションを要求することを許可されているか否かを受動的に判断している可能性がある。ユーザがトランザクションを要求することを許可されていなければ、トランザクションは完了されない。種々の実施形態において、コンピューティングシステムはそのリクエストをキャンセルすることもあれば、そのリスクエストを満足するサービスまたはアプリケーションがそのトランザクションを完了させるか否かを判断できるように関連情報を提供することもある。
【００１６】
認証と許可は時間期間が異なることがある。１つの例として、コンピューティングシステムは、ある「セッション」期間（例：ある時間期間）にユーザを認証することがあるが、各トランザクションは別々に許可することもある。
【００１７】
種々の実施形態において、本テクノロジはコンピューティングシステムが認証を「信用(trust)」することを可能にすることがある。１つの例として、コンピューティングシステムは、認証情報を相互に通信するために近距離無線通信(near-field communication)テクノロジを採用していることがある。どちらかのコンピューティングシステムにいるユーザの認証レベルが高い場合、両方のコンピューティングシステムがその高い認証レベルを認識することがある。１つの例として、モバイル電話のユーザが受動的に認証されているが、「サーフェイス(surface)」コンピューティングシステム上でまだ認証されていないでサーフェイスコンピューティングシステム上にモバイル電話を置いているときは、サーフェイスコンピューティングシステムは、例えば、その電話のユーザの写真がサーフェイスコンピューティングシステムから表示されるようにユーザを自動的に認証することがある。あるいは、ユーザが一方のコンピューティングシステム上ですでに能動的に認証していた場合は、別の近接コンピューティングシステムは、最初にプロンプトでユーザに能動的認証情報を求めることなく、その前に許可しなかったであろうアクティビティをユーザが実行するのを可能にすることがある。
【００１８】
認証レベルは時間と共に変化することがある。１つの例として、ユーザがユーザの連絡先リストにないユーザに電話するのを開始する場合には、認証レベルが減少することがある。認証レベルが指定されたしきい値よりの低く減少する場合は、ユーザがプロンプトで認証資格証明書を求められて（能動的に）に認証されるまでそのユーザは電話コールが行なえなくなることがある。
【００１９】
種々の実施形態において、物理的観察は他のデバイスの近接を含むことができる。１つの例として、モバイルコンピューティングシステムは、ユーザがキーポケット(key fob)のような別のデバイスを携帯している場合はより高い認証レベルを提供することがある。以前に認証されたキーポケットがコンピューティングシステムに最早近接していない場合は、コンピューティングシステムは受動的に提供した認証レベルを減少することがある。
【００２０】
種々の実施形態において、本テクノロジは、地理的位置情報（例えば、無線三角測量、衛星全地球測位システム情報などに基づいた）を使用して、ユーザを能動的に認証または許可するかを判断することを可能にしている。例えば、このことは、ユーザが通常に訪ねるエリアの外にそのユーザがいることを位置情報が示しているとき行なわれることがある。
【００２１】
種々の実施形態において、本テクノロジでは、アクションのアトリビュートをまだ観察してストアしていないために受動的認証または許可が初期に与えられないことがある。１つの例として、ユーザがモバイルコンピューティングデバイスを始めて購入するときは、モバイルコンピューティングシステムは能動的認証および許可だけを与えることがある。このようなケースでは、ユーザは、ある特徴にアクセスするか、またはあるトランザクションを要求する前に能動的に認証する必要が起ることがある。時間の経過と共に、本テクノロジが使用状況パターン(usage pattern)を観察し、ストアするとき（例えば、ユーザがそのデバイスを使用する１つまたは２つ以上のインスタンスのあと）、本テクノロジは受動的認証および／または受動的許可を可能にすることがある。
【００２２】
種々の実施形態において、本テクノロジはデフォルト値をストアし、そのあと観察に基づいてそのデフォルト値を更新することがある。これらの実施形態において、限定セットの特徴またはトランザクションがユーザに即時に使用可能になることもあれば、例えば、アクションのアトリビュートを検出し、ストアすることによって本テクノロジがユーザを受動的に認証することを「学習」するのに伴って、より多くの特徴またはトランザクションが使用可能になることもある（例えば、「ロックが解除される」）。
【００２３】
種々の実施形態において、本テクノロジによれは、ユーザは受動的および／または能動的認証／許可を可能にするかどうか／いつ可能にするかを構成できることができる。１つの例として、ユーザは、受動的認証と共にどのトランザクションまたは特徴を使用可能にするかを指定できることもある。
【００２４】
前記に示したように、本テクノロジによれば、コンピューティングシステムに行なわれる種々の入力に変更を種々のハードウェアおよびソフトウェアコンポーネントを使用して検出することによって観察が行なわれることがある。従って、検出と観察は同義語であるものと意図している。
【００２５】
以下では、図面を参照して機能のいくつかの実施形態が詳しく説明されている。本明細書に記載した本テクノロジが実現されることのあるコンピューティングシステムは、１または２以上の中央処理ユニット、メモリ、入力デバイス（例：キーボードおよびポインティングデバイス）、出力デバイス（例：ディスプレイデバイス）、ストレージデバイス（例：ディスクデバイス）、およびネットワークデバイス（例：ネットワークインタフェース）を含むことが可能である。メモリとストレージデバイスは本テクノロジを実現する命令をストアすることが可能なコンピュータ可読媒体である。さらに、データ構造およびメッセージ構造は、通信リンク上の信号のようなデータ伝送媒体を介してストアまたは伝送されることがある。インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、またはポイントツーポイントダイヤルアップコネクションのように、種々の通信リンクが使用されることもある。
【００２６】
図１は、種々の実施形態における本テクノロジによって使用されるコンポーネントを示すブロック図である。本テクノロジが動作する環境１００は、１または２以上のサーバ１０２ａ−１０２ｎ、ネットワーク１０４（例：イントラネットまたはインターネット）、およびモバイルコンピューティングデバイス１０６ａ−１０６ｍのような１または２以上のコンピューティングデバイスを含むことができる。その他の種々のコンピューティングデバイスが使用されることも可能である。モバイルコンピューティングデバイスは、モバイル電話のようなハンドヘルドデバイスであることがある。モバイルコンピューティングデバイスは、例えば、アンテナ１０８を通して音声、ビデオ、または他の情報を通信するように、他のデバイスとワイヤレスで通信することもある。アンテナ１０８は、モバイルコンピューティングデバイスに関連の対応するアンテナ（図示せず）と無線周波数または他の信号をやりとりすることができる。
【００２７】
図２は、あるトランザクションを完了するためにクライアントからリクエストを受信したときサービスによって実行されるルーチンを示すフロー図である。ルーチン２００はブロック２０２から開始する。ブロック２０４において、ルーチンは、モバイルコンピューティングデバイスからのようにトランザクションリクエストを受信する。このトランザクションリクエストは、ユーザまたはなんらかの他のエンティティがトランザクションを開始するときモバイルコンピューティングデバイスによって生成されることがある。種々の実施形態において、トランザクションはモバイルコンピューティングデバイスで完全に実行されることもあれば、サービスとの情報のやりとりを要求することもある。１つの例として、ルーチンは、モバイルコンピューティングデバイスがあるアプリケーションを実行するリクエストを受信したときモバイルコンピューティングデバイスによって起動されることがある。別の例として、ルーチンは、あるサービスが財務トランザクションを完了するリクエストを受信したときそのサービスによって起動されることがある。ブロック２０６において、ルーチンは、トランザクションを完了するために要求される信頼性レベル(confidence level)を判断する。ブロック２０８において、ルーチンは特定した信頼性レベルを求めるリクエストを、そのトランザクションリクエストを送信したコンポーネントに送信する。信頼性レベルは、ユーザが能動的に認証されることなくトランザクションが自動的に許可されるために要求される信頼性レベルのしきい値であることがある。あるいは、ルーチンはトランザクションリクエストを送信したコンポーネントに１または２以上の信頼性係数(confidence factor)の指示を送信することがある。信頼性係数は、指紋(fingerprint)、虹彩スキャン(iris scan)、シグネーチャ（署名）などのように、許容し得る特定の係数であることがある。ブロック２０９において、ルーチンは、検証された信頼性レベルまたは信頼性係数の指示を提供するレスポンスを、トランザクションリクエストを送信したコンポーネントから受信する。判定ブロック２１０において、ルーチンは受信した信頼性レベルまたは信頼性係数が許容し得るかどうか（例えば、指定したしきい値を超えているかどうか）を判断する。信頼性レベルまたは信頼性係数が許容し得るものであれば、ルーチンはブロック２１２から継続する。そうでなければ、ルーチンはブロック２１４から継続する。ブロック２１２において、ルーチンはトランザクションを完了する。そのあと、ルーチンはブロック２１６からリターンする。ブロック２１４において、ルーチンはトランザクションを拒否し、トランザクションリクエストを送信したコンポーネントにエラーを返すことがある。そのあと、ルーチンはブロック２１６からリターンする。
【００２８】
当業者ならば理解されるように、図２に示し、上述したロジックは、以下に説明するフロー図の各々において、種々の方法で変更されることもあり得る。例えば、ロジックの順序は並べ替えられることも、サブステップが並行に実行されることも、図示のロジックが省かれることも、他のロジックが含まれることもある。さらに、ロジックまたはサブステップの一部または全部は、指定したデバイス以外の１または２以上のデバイスによって実行されることも１つの例えば、サブステップはモバイルコンピューティングデバイス上でも、クライアントコンピューティングデバイス上でも、サーバコンピューティングデバイス上などでも実行されることがある。
【００２９】
図３は、信頼性係数を観察するためにコンピューティングデバイスによって実行されるルーチンを示すフロー図である。ルーチン３００はブロック３０２から開始する。ブロック３０４において、ルーチンは信頼性係数に関するイベントを受信する。例として、ルーチンは、ユーザがモバイル電話をピックアップし、ユーザがモバイル電話を回転したことを示すイベント、モバイル電話の種々の個所における現在の温度、コンピューティングデバイス上のユーザの使用状況パターンなどを受信することがある。ブロック３０６において、ルーチンは信頼性係数を観察する。１つの例として、ルーチンは各種のセンサ、加速度計、キーボード、スタイラスまたはその他の入力デバイスにおける値を観察することがある。ブロック３０８において、ルーチンは探索信頼性係数を、例えば、メモリにストアされたデータ構造内にストアする。ブロック３１０において、ルーチンはリターンする。
【００３０】
図４は、信頼性レベルを計算するためにコンピューティングシステムによって実行されるルーチンを示すフロー図である。ルーチン４００は、サービスまたはアプリケーションによってプロンプトが出されたときのように、信頼性レベルを計算するために起動されることが可能である。ルーチンはブロック４０２から開始する。ブロック４０４において、ルーチンは、信頼性レベルをデフォルトレベルのような初期レベルに設定する。ブロック４０６−４１２のループにおいて、ルーチンは各信頼性係数に基づいて信頼性レベルを変更する。ブロック４０６において、ルーチンは、観察した信頼性係数のリストからのように信頼性係数を選択する。ブロック４０８において、ルーチンは、例えば、サブルーチンを起動し、選択した信頼性係数をサブルーチンに提供することによって、選択した信頼性係数をチェックする。選択した信頼性係数をチェックするサブルーチンは図７を参照して以下に詳しく説明されている。ブロック４１０において、ルーチンは、選択した信頼性係数をチェックするためにサブルーチンによって戻された値に基づいて信頼性レベルを変更する。１つの例として、ルーチンは、コンピューティングデバイスが接続されているネットワークの地理的ロケーションまたは名前であると係数が示されている場合には、信頼性レベルを増加することがある。ルーチンはブロック４１２において別の信頼性係数を選択する。ブロック４１４において、ルーチンはリターンする。
【００３１】
図５は、信頼性レベルを提供するためにコンピューティングシステムによって実行されるルーチンを示すフロー図である。ルーチン５００は信頼性レベルを提供するために起動されることがある。ルーチンはブロック５０２から開始する。ブロック５０４において、ルーチンは信頼性レベルを求めるリクエストを受信する。ブロック５０６において、ルーチンは、例えば、サブルーチンを起動することによって信頼性レベルを計算またはリトリーブする。１つの例として、ルーチンは図４を参照して上述したルーチンを起動することもあれば、図６を参照して以下に説明するルーチンを起動することもある。ブロック５０８において、ルーチンは計算またはリトリーブした信頼性レベルを返す。
【００３２】
図６は、信頼性係数を提供するためにコンピューティングシステムによって実行されるルーチンを示すフロー図である。ルーチン６００は信頼性係数と関連観察のリストを提供するために起動されることがある。ルーチンはブロック６０２から開始する。ブロック６０４において、ルーチンは信頼性係数を求めるリクエストを受信する。ブロック６０６において、ルーチンは信頼性係数をリトリーブする。種々の実施形態において、ルーチンは、ルーチンがリトリーブして提供しようとする信頼性係数のリストを受信することがある。種々の実施形態において、ルーチンは信頼性係数の完全リストを提供することがある。ブロック６０８において、ルーチンは信頼性係数を提供する。ブロック６１０において、ルーチンはリターンする。
【００３３】
図７Ａおよび図７Ｂは、選択した信頼性係数をチャックするためにコンピューティングシステムによって実行されるルーチンを示すフロー図である。ルーチンは現在観察したアクションのアトリビュートを以前にストアした類似のアクションのアトリビュートと比較することがある。アトリビュートには、例えば、加速度計の入力、タッチ／圧力センサの入力、温度の入力、全地球測位システム（ＧＰＳ）の入力などの入力をコンピューティングシステムに提供するコンポーネントから観察した入力を含むことが可能である。現在観察したアトリビュートは、その差異が無視できるときは以前にストアしたアトリビュートとほぼ等しいとすることができる。１つの例として、指と指の間に温度差があるとしても、指全体は以前に測定された温度に類似する温度を示している。これらの入力はグループとして考慮されることも（例：すべての指の温度）、個別的に（例えば、各々の指の温度）考慮されることもある。
【００３４】
ルーチン７００はブロック７０２から開始する。図７ＡはコネクタＡとＢを示している。これらのコネクタは、ルーチンのフローをそれぞれが図７Ｂに図示されたコネクタＡとＢに接続している。ブロック７０４において、ルーチンは信頼性係数の指示を受信する。
【００３５】
判定ブロック７０６において、ルーチンは、指示された信頼性係数が電話番号であって、その電話番号が、以前に定期的にまたは数回入力された連絡先または電話番号のリスト内のように、電話番号のリスト内にあるかどうかを判断する。そうであれば、ルーチンはブロック７２２から継続する。そうでなければ、ルーチンは判定ブロック７０８から継続する。
【００３６】
判定ブロック７０８において、ルーチンは、指示された信頼性係数が熱（または温度）であって、ユーザによって現在加えられているその観察熱がユーザによって加えられたヒストリカルに観察された熱に相当しているかどうかを判断する。この熱はコンピューティングシステムに接続されることが可能である熱センサをチェックすることにより観察されることがある。１つの例として、モバイル電話は、各々がユーザの手によって加えられた熱を測定する１または２以上の熱センサを備えていることがある。観察した熱がヒストリカルに観察された熱に相当していれば、ルーチンはブロック７２２から継続する。そうでなければ、ルーチンは判定ブロック７１０から継続する。
【００３７】
判定ブロック７１０において、ルーチンは、指示された信頼性係数が物理的使用であって、コンピューティングシステムに関連する１または２以上の加速度計がその速度計によって指示されたヒストリカルな物理的使用に相当する入力を提供しているかどうかを判断する。加速度計は、コンピューティングデバイスをピックアップしたり、それを置いたりするときのように、ユーザがコンピューティングデバイスとどのようにやりとりするかを測定することもある。観察された使用がヒストリカルに観察された使用と一致していれば、ルーチンはブロック７２２から継続する。そうでなければ、ルーチンは判定ブロック７１２から継続する。
【００３８】
判定ブロック７１２において、ルーチンは、指示された信頼性係数がタッチであって、タッチ入力がそのタッチ入力からのヒストリカルに観察された情報に相当する情報を現在提供しているかどうかを判断する。タッチ入力はコンピューティングデバイスに関連するタッチ感知センサから受信されることがある。観察されたテキスト入力がヒストリカルに観察されたタッチ入力に一致していれば、ルーチンはブロック７２２から継続する。そうでなければ、ルーチンは判定ブロック７１４（図７Ｂに図示）から継続する。
【００３９】
次に図７Ｂを参照して説明すると、判定ブロック７１４において、ルーチンは、指示された信頼性係数がロケーションであって、ユーザが以前にコンピューティングシステムを操作していたエリアにそのコンピューティングシステムが現在位置していることをＧＰＳ信号が示しているかどうかを判断する。１つの例として、ユーザが以前にコンピューティングシステムを使用したことのないエリアにコンピューティングシステムがあるときは、以前に知られたユーザが現在コンピューティングシステムを使用しているとの信頼性レベルが低いことがある。ユーザが以前にコンピューティングシステムを使用していたエリアにそのロケーションがあれば、ルーチンはブロック７２２から継続する。そうでなければ、ルーチンは判定ブロック７１６から継続する。例えば、使用可能なワイヤレスローカルエリアネットワークまたはそこに接続されたデバイスを特定し、カメラを使用して周囲を認識するなどよって、他のロケーションに関係の入力が（またはその代わりに）適用されることもある。
【００４０】
判定ブロック７１６において、ルーチンは、指示された信頼性係数が共存であって、別のデバイスがコンピューティングシステムに近接しているかどうかを判断する。１つの例として、ユーザがあるポケットにモバイルデバイスを持ち、別のポケットにカーキー（以前にモバイルデバイスと共に登録されている）を持っているとき、そのユーザはモバイルデバイスの既知の所有者である可能性がある。このカーキーは、無線周波数識別チップのように、モバイルデバイスがカーキー（または登録されたいずれかの他の共存デバイス）を特定するのを可能にする埋め込みコンポーネントを備えていることがある。登録された共存デバイスが近接していれば、ルーチンはブロック７２２から継続する。そうでなければ、ルーチンは判定ブロック７１８から継続する。
【００４１】
判定ブロック７１８において、ルーチンは、特定された信頼性係数がビジョン(vision)であって、そのイメージ比較が許容し得るかどうかを判断する。１つの例として、ルーチンはユーザの顔が認識可能であるかどうか、周囲が認識可能であるかどうか、などを判断することがある。コンピューティングシステムは、接続されたカメラを使用してこのビジュアル観察を行うための接続カメラを使用していることがある。イメージ比較が許容し得るものであれば、ルーチンはブロック７２２から継続する。そうでなければ、ルーチンはブロック７２０から継続する。
【００４２】
ブロック７２０において、ルーチンは、指示された信頼性係数のどれもが許容し得なかったために信頼性レベルを減少する。そのあと、ルーチンはブロック７２６において信頼性レベルを返す。
【００４３】
ブロック７２２において、ルーチンは許容し得える係数に基づいてウェイトを設定する。ブロック７２４において、ルーチンは信頼性レベルを増加する。一部の実施形態において、ルーチンは信頼性係数の各々（および１つだけでない信頼性係数）についてウェイトを使用し、ウェイトをかけた信頼性係数全体を計算する。そのあと、ルーチンはブロック７２６においてコンピュータの信頼性レベルを返す。
【００４４】
ルーチンによって使用されるヒストリカル情報はコンピューティングデバイスまたは他の場所にストアされていることがある。他の場所にストアされる場合は、コンピューティングデバイスはネットワークコネクションを通してヒストリカル情報にアクセスすることがある。
【００４５】
図８は、種々の実施形態において本テクノロジによって使用されるコンポーネントを示すブロック図である。モバイルコンピューティングデバイスのようなコンピューティングシステム８０２はプロセッサ８０４、メモリ８０６、オペレーティングシステム８０８、および１または２以上のアプリケーションを含むこともあり得る。アプリケーションはユーザの認証を要求することもあれば、ユーザの認証を要求するサービスにリクエストをネットワークコネクション（図示せず）経由で送信することもある。
【００４６】
コンピューティングシステムは、タッチ／圧力センサ８１２、熱センサ８１４、加速度計８１６、カメラ８１８、指紋リーダ８２０、および書き込みアナライザ８２２を含んでいることもある。タッチ／圧力センサは、コンピューティングシステムの本体の周囲のタッチまたは圧力個所を判断することがある。熱センサは、コンピューティングシステムの本体の周囲の１または２以上の個所の熱を送信することがある。加速度計は、コンピューティングシステムがユーザによってどのようにピックアップされ、移動などされたかを判断することがある。加速度計は加速度の力、例えば、静的な力または動的な力を測定する電気機械的デバイスにすることができる。カメラはユーザの顔、周囲などを観察することがある。指紋リーダはユーザの指紋を読み取ることがある。書き込みアナライザは、例えば、スタイラスの使用によってユーザがどのように書いたかを分析することがある。コンピューティングシステムはコンパレータ８２４を含んでいることもある。コンパレータは現在観察可能なアトリビュート（例：熱、圧力、動きなど）を以前にストアされたアトリビュートと比較するように構成されていることがある。これらのコンポーネントは複数で記載されているが、コンピューティングシステムは、各タイプのコンポーネントの１つを使用することもあれば、これらのコンポーネントのいくつかだけを使用することもある。
【００４７】
以下では、本テクノロジの種々の実施形態について説明する。これらの実施形態は独立に操作されることも、組み合わされることもある。
【００４８】
本テクノロジは、ユーザを受動的に認証するためにコンピューティングシステムによって実行される方法、すなわち、あるアクションのアトリビュートを観察するステップと、そのアクションの観察したアトリビュートを類似アクションの以前にストアされたアトリビュートと比較するステップと、観察したアトリビュートが類似アクションの以前にストアされたアトリビュートとほぼ同じであるかどうかを判断するステップと、ユーザが能動的に認証することなくユーザを受動的に認証するステップと、を含む方法を含むことができる。アクションは、コンピューティングシステムによって特定可能であるロケーションにコンピューティングシステムを移動することにできる。観察はカメラを使用して周囲のイメージをキャプチャすることを含むことができる。観察はＧＰＳロケーション情報を受信することを含むことができる。観察はワイヤレスローカルネットワークコネクションを特定することを含むことができる。アクションは電話コールを行なうことできる。電話コールを行なうときのアトリビュートは、電話コールが行なわれる先の電話番号にすることができ、以前にストアされたアトリビュートは連絡先リストにストアされた電話番号にすることができる。アクションは温度の検出にすることにできる。アクションは動きの検出にすることができる。アクションは圧力の検出にすることができる。アクションは別のデバイスの共存の検出にすることができる。アクションは顔の認識にすることができる。本方法は、アクションのアトリビュートの１または２以上の比較に基づいて信頼性レベルを設定し、信頼性レベルが指定した信頼性レベルのしきい値を超えたときユーザを受動的に認証することを含むことができる。
【００４９】
本テクノロジは、その実行時に、ユーザを受動的に認証する方法を実行するコンピュータ可読媒体を含むことができる。本方法は、信頼性レベルをデフォルト値に設定するステップと、信頼性係数のセットを特定するステップと、各特定した信頼性係数について、信頼性を計算するステップと、計算した信頼性に基づいて信頼性レベルを変更するステップとを含み、さらに、変更した信頼性レベルが指定したしきい値を超えている場合は、ユーザに能動的認証を要求することなくユーザを受動的に認証するステップを含むことができる。本方法は、各特定した信頼性係数についてウェイトを設定するステップを含むことができる。この変更はウェイトに基づくことができる。本方法はそのユーザも認証していた近接コンピューティングデバイスから信号を受信したとき信頼性レベルを増加するステップを含むことができる。
【００５０】
本テクノロジは、ユーザを受動的に認証するシステムであって、リクエストを開始するアプリケーションと、プロンプトでユーザに観察した入力を与えることを求めることなく、観察した入力を以前にストアされた入力と比較し、その比較がほぼ同等である場合、開始したリクエストが満足されるようにユーザを受動的に認証するように構成されたコンポーネントと、を備えたシステムを含むことができる。本システムは、リクエストを満足するサーバコンポーネントを含むことができる。アプリケーションは、ユーザが受動的に認証されていればリクエストを満足することがあり、ユーザが受動的に認証できなければ、ユーザが能動的に認証されるようにプロンプトでユーザに認証資格証明書を求めることができる。
【００５１】
多くの認証方式が「活動的」であるのは、パスワードのように、コンピューティングシステムと共有される秘密をユーザが提供することを要求しているからである。しかし、活動的認証は、企業のセキュリティポリシに従うようにロックされた「スマート」フォンを使用してローカルコールを行なうといった単純なタスクをモバイルコンピューティングシステムで完了する妨げとなっている。本テクノロジによると、ユーザの観察した行動に基づいてユーザを認証するために受動的認証を使用することができる。ユーザの認証レベルは、ユーザの観察した行動に基づいて時間の経過と共に増減すること可動であり、アプリケーション／サービスは、リクエストを満足するかどうか、あるいは現在の認証レベルに基づいてトランザクションを完了するかどうかを判断することができる。
【００５２】
信頼性レベルと認証レベルは種々の実施形態において同義にすることができる。受動的認証に関係する実施形態が説明されているが、これらの実施形態は受動的許可にも等しく適用することが可能である。
【００５３】
以上、構造上の特徴および／または方法上のアクトに特有の表現で主題を説明してきたが、当然に理解されるように、請求項に定義されている主題は、上述した特定の特徴またはアクトに必ずしも限定されない。むしろ、上述した特定の特徴およびアクトは、請求項を実現する形態例として開示されたものである。従って、本発明は請求項による以外は制限されない。
【図１】
0005539399.tif 000002
【図２】
0005539399.tif 000003
【図３】
0005539399.tif 000004
【図４】
0005539399.tif 000005
【図５】
0005539399.tif 000006
【図６】
0005539399.tif 000007
【図７Ａ】
0005539399.tif 000008
【図７Ｂ】
0005539399.tif 000009
【図８】
0005539399.tif 000010