(57)【特許請求の範囲】
【請求項１】
サーバによってクライアントを認証する方法であって、前記方法は、
実行可能命令とともに構成される１または複数のコンピュータシステムの制御下で、
前記クライアントからセキュア情報へのアクセス要求を受信することであって、前記要求は、前記クライアントおよび前記サーバにアクセス可能な認証シードに少なくとも部分的に基づいて生成される応答コードを少なくとも含み、前記応答コードは前記認証シードとは異なる、ことと、
前記要求を受信した時に、１組の命令を前記クライアントに送ることであって、前記１組の命令は、前記クライアントによって実行される、ことと、
前記クライアントのセキュリティ設定が１組のセキュリティポリシーを遵守するかどうかを判定するために、前記クライアントから１組のセキュリティパラメータ値を受信することであって、前記１組のセキュリティパラメータ値は、前記サーバが前記判定を行うことを可能にする、前記１組の命令の実行による出力を含む、ことと、
前記１組のセキュリティパラメータ値を受信したことに応答して、前記１組のセキュリティパラメータ値が、前記クライアントが前記１組のセキュリティポリシーを遵守することを示すかどうかを判定することであって、前記１組のセキュリティパラメータ値に含まれる前記出力は、前記クライアントが前記１組のセキュリティポリシーを遵守することを示す肯定応答値である、ことと、
前記クライアントが前記１組のセキュリティポリシーを遵守すると判定した時に、前記クライアントがセキュア情報にアクセスすることを可能にすることと、
を備える方法。
【請求項２】
前記要求を受信した時に、前記クライアントに前記１組のセキュリティパラメータ値を要求することであって、前記１組のセキュリティパラメータ値は、前記サーバによって課される前記１組のセキュリティポリシーに対応する、ことをさらに備える、請求項１の方法。
【請求項３】
前記応答コードの前記生成はさらに、ユーザ名、パスワード、現在の時間、カウンタ、以前の認証コード、または前記要求の少なくとも１つに基づく、請求項１の方法。
【請求項４】
前記判定することは、前記１組のセキュリティパラメータ値が対応する１組のポリシーを遵守することを証明するために、ポリシー施行エージェントとリアルタイムで通信することを備える、請求項１の方法。
【請求項５】
前記１組のセキュリティパラメータ値は、前記クライアントの現在位置の識別子を含み、前記識別子は、対応するセキュリティポリシーによって指定される許容領域内にある、請求項１の方法。
【請求項６】
前記要求はさらに、ユーザ名およびパスワードを含み、前記クライアントの情報へのアクセスは、前記ユーザ名および前記パスワードを検証した時点で可能になる、請求項１の方法。
【請求項７】
前記１組のセキュリティポリシーは、前記クライアントと、前記判定を行う認証パーティによって選択される場所との間の最大許容距離を含む、請求項１の方法。
【請求項８】
セキュリティポリシーを遵守することを通してセキュア情報へのアクセスを取得するように構成されたコンピュータシステムであって、
命令を含むメモリに連結される、少なくとも１つのプロセッサを備え、前記命令は、実行時に、前記コンピュータシステムに、
セキュア情報へのアクセスを提供するアプリケーションを起動することと、
シード値に少なくとも部分的に基づいて認証コードをクライアント上で生成することであって、前記認証コードは前記シード値とは異なる、ことと、
セキュア情報へのアクセス要求をサーバに送信することであって、前記要求は、少なくとも前記認証コードを含む、ことと、
前記アクセス要求に応答して前記サーバによって送信された１組の命令を実行することと、
１組のパラメータ値を、前記クライアントが１組のセキュリティポリシーを遵守するかどうかを判定するように構成される前記サーバに提供することであって、前記１組のパラメータ値は、前記サーバが前記判定を行うことを可能にする、前記１組の命令の実行による出力を含み、前記出力は、前記クライアントが前記１組のセキュリティポリシーを遵守することを示す肯定応答値である、ことと、
前記クライアントが前記１組のセキュリティポリシーを遵守すると判定されたときに、前記セキュア情報へのアクセスを取得することと、
を実行させる、コンピュータシステム。
【請求項９】
前記メモリはさらに、実行時に、前記コンピュータシステムに、
前記１組のセキュリティポリシーに関連する前記１組のパラメータ値の要求を受信することを実行させる命令を含む、請求項８のコンピュータシステム。
【請求項１０】
前記認証コードは、前記クライアントへブートストラップされる、認証シードを含むアプリケーションを使用して生成される、請求項８のコンピュータシステム。
【請求項１１】
前記メモリはさらに、実行時に、前記コンピュータシステムに、
前記クライアントの場所判定要素を使用して、現在位置を判定することであって、前記サーバに送信される前記１組のパラメータ値の１つは、前記判定された場所に基づく、ことを実行させる命令を含む、請求項８のコンピュータシステム。
【請求項１２】
前記メモリはさらに、実行時に、前記コンピュータシステムに、
前記１組のセキュリティポリシーの更新バージョンを要求することと、
前記１組のセキュリティポリシーの前記更新バージョンを使用して、前記クライアントが遵守するかどうかを判定することと
を実行させる命令を含む、請求項８のコンピュータシステム。
【請求項１３】
前記更新バージョンは、クライアントが更新されたセキュリティポリシーを遵守することを確実にするために、セキュア情報への前記アクセス要求が行われる度に取り出される、請求項１２のコンピュータシステム。
【請求項１４】
前記クライアントが、リモートワイプ能力を可能にすること、および最小ピン長という要件のうちの少なくとも１つを含むときに、前記クライアントは、前記１組のセキュリティポリシーの１つを遵守する、請求項８のコンピュータシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
人々は、電子メールの確認、会社情報へのアクセス、および企業連絡先の管理等の種々の異なるタスクについて、ますますコンピューティングデバイスを利用している。コンピューティングデバイスを通してアクセスされている情報量が増加するにつれて、コンピューティングデバイスに記憶される、またはそれによってアクセス可能な情報を保護することに対する必要性も絶えず増加している。種々のコンピューティングリソースへのアクセスを制御するために、およびコンピューティングデバイスを通してアクセス可能な情報を保護するために、ポリシーが適用され得る。
【０００２】
ポリシー施行は、しばしば、１つ以上のコンピューティングリソースへのアクセスを獲得するために、ユーザが、種々のプロセスを通して、ユーザの識別情報を確認する、ユーザ認証を含む。種々の理由から、ユーザは、機密またはセキュア情報を含む種々のタイプの情報へのアクセスを取得することを望み得、それは、ユーザに、ユーザのコンピューティングデバイスにそのような情報へのアクセスを提供することが望ましくなり得る。こうした事例のいくつかでは、しばしば、ユーザアクセスを付与する前に、より信頼性のある認証（多要素認証等）を必要とすることが望ましい。信頼性のある認証を達成するための従来の手法は、煩雑になる可能性があり、多くの場合、不必要なリスクを伴い得る。
【図面の簡単な説明】
【０００３】
以下、本開示に従う種々の実施態様を、図面を参照して説明する。
【０００４】
【図１】一実施形態に従って使用することができる、ネットワーク構成の実施例を示す図である。
【図２】いくつかの実施形態に従う認証コードの生成時に、クライアントが一連のセキュリティポリシーを遵守することを検証するための、操作フローの実施例を示す図である。
【図３】いくつかの実施形態に従って、クライアントのセキュア情報へのアクセスを可能にする前に、クライアントが一連のセキュリティポリシーを遵守することを検査するための、例示的な操作フローを示す図である。
【図４】一実施形態に従ってクライアントが多要素認証サーバによって施行される１組のセキュリティポリシーを遵守することを検証するための、例示的なプロセスを示す図である。
【図５】いくつかの実施形態に従って１組のセキュリティポリシーを遵守することを通してセキュア情報へのアクセスを取得するための、例示的なプロセスを示す図である。
【図６】いくつかの実施形態に従ってサーバによってクライアントを認証するための、例示的なプロセスを示す図である。
【図７】いくつかの実施形態に従ってセキュリティポリシーを遵守することを通してセキュア情報へのアクセスを取得するための、例示的なプロセスを示す図である。
【図８】いくつかの実施形態に従って使用することができる、例示的な携帯型コンピューティングデバイスの正面図および背面図を示す図である。
【図９】図８に関して説明されるデバイス等の、電子コンピューティングデバイスの１組の基本構成要素を示す図である。
【図１０】種々の実施形態が実現することができる環境を示す図である。
【発明を実施するための形態】
【０００５】
本開示の種々の実施形態に従うシステムおよび方法は、電子環境において機密情報および／またはリソースへのアクセスを管理するために従来の手法で経験する、上述のおよび他の欠陥の１つ以上を解決し得る。具体的には、いくつかの実施形態は、電子デバイスのユーザが機密情報および／またはリソースにアクセスすることを可能にする前に、電子デバイスがいくつかのセキュリティポリシーを遵守することを必要とし得る。例えば、いくつかの実施形態は、最小長のパスワードを必要とすること、数回の試行失敗後の自動セルフワイプを必要とすること（すなわち、デバイスがメモリから全てのデータを削除することを必要とすること）、記憶装置の暗号化を必要とすること、リモートワイプ能力を必要とすること（すなわち、デバイスが、デバイスの管理者またはユーザがメモリの中のデータを遠隔に削除する能力を有することを可能にすることを必要とすること）、デバイスが特定の領域内に位置することを必要とすること、デバイスがある高度または温度範囲内にあることを必要とすること、等の、いくつかのセキュリティ特徴がデバイスで施行されると判定されるときにだけ、電子デバイスが、機密もしくはセキュア情報および／またはリソースへのアクセスを取得することを可能にする。
【０００６】
いくつかの実施形態は、認証シードまたは共有秘密鍵等のランダム鍵を使用して、認証コードまたは検証コードを生成することができる、認証コード生成アプリケーションを提供する。ランダム鍵は、少なくとも２つのパーティ（例えば、クライアントデバイスおよびサーバ）によって共有することができ、パーティ間の認証を可能にする。このアプリケーションをクライアントデバイスで起動させると、例えば、クライアントデバイス（またはいくつかの実施形態のモバイルコンピューティングデバイス）は、デバイスコンプライアンスを確認するために、要求をサーバに自動的に送ることができる。
【０００７】
いくつかの実施形態において、要求は、ユーザの信用情報（例えば、ユーザ名、パスワード）を含む。いくつかの事例において、クライアントデバイスはまた、クライアントデバイスに関する情報（例えば、ユーザがデバイスのコンテンツへのアクセスを獲得する前にクライアントデバイスに必要とされるピン長、デバイスの場所情報、デバイスがあるセキュリティ要件を遵守するかどうか（すなわち、確認肯定応答）、等）を含む、１組のセキュリティパラメータ値も提供し得る。いくつかの実施形態のサーバは、クライアントデバイスが、（例えば、第三者のポリシー施行エージェントに判定を行うことを要求することによって、プログラムコードを実行用のクライアントデバイスに伝送することによって、クライアントデバイスに、判定を行うクライアントデバイスにインストールされたプログラムを実行させることによって）、課される規則およびポリシーを遵守するかどうかを判定する。
【０００８】
クライアントデバイスが課されたセキュリティポリシーを遵守すると判定した時点で、サーバは、この実施形態において、クライアントデバイスに認証シードを発行する。いくつかの実施形態において、クライアントデバイスのアプリケーションは、認証シードを使用して、ユーザが機密情報へのアクセスを取得するために必要な認証コードを生成する。いくつかの実施形態は、有効なユーザ名、パスワード、および認証コードを受け取った時点で、セキュア情報へのアクセスを提供する。例えば、クライアントデバイスの同じまたは異なるアプリケーションは、ユーザが有効なユーザ名、パスワード、および認証コードを入力した時点で、企業データへのユーザアクセスを提供し得る。
【０００９】
いくつかの実施形態において、認証コード生成アプリケーションは、起動された時点で、認証コードを生成する。初期シーケンスまたは共有秘密は、アプリケーションがデバイスに記憶または予めロードされた共有秘密を使用して認証コードを生成し得るように、クライアントデバイスでブートストラップされ得る。認証コードは、共有秘密に加えて、ユーザの信用情報（例えば、ユーザ名、パスワード）、現在のタイムスタンプ、および／またはイベント（例えば、選択可能なユーザインターフェースアイテムのユーザ選択時）に基づいて生成され得る。いくつかの実施形態において、デバイスは、一連のデータ文字のユーザ入力を通して、認証コードがその中に埋め込まれ得るクイックレスポンス（ＱＲ）コードを走査することを通して、共有秘密を取得し得る。
【００１０】
アプリケーションでの認証コードの生成時に、いくつかの実施形態のクライアントデバイスは、サーバが、クライアントデバイスがセキュリティポリシーを遵守するかどうかを判定するために、要求をサーバ（例えば、プロビジョニングサーバ）に自動的に送る。いくつかの実施形態において、サーバは、第三者のポリシー施行エージェントが、クライアントデバイスが現在セキュリティポリシーを遵守しているかどうかを判定することを可能にする。いくつかの実施形態は、サーバが、クライアントデバイスが遵守するかどうかを判定する際に実行するためのプログラムコードを、クライアントデバイスに送ることを可能にする。いくつかの実施形態のサーバは、クライアントデバイスに、判定を行うためにクライアントデバイスにインストールされるプログラムを実行させる。
【００１１】
クライアントデバイスが、セキュリティポリシーを遵守することを検証した時点で、サーバは、機密情報および／またはリソースへのクライアントデバイスアクセスを付与する。いくつかの実施形態において、機密情報は、企業電子メール、企業連絡先、および／またはカレンダー情報であり得る。セキュア情報へのアクセスを可能にする前に、クライアントデバイスでの一連のセキュリティポリシー（例えば、企業ポリシー）を遵守することを必要とすることによって、関心のパーティ（例えば、企業）は、セキュア情報が十分に保護されていることを相当に保証することができる。セキュリティポリシーはまた、クライアントデバイスがそれに応じてそのセキュリティ設定を調整するように、その時々に応じても更新され得る。いくつかの実施形態において、ポリシーチェックは、定期的に行われるが、いくつかの実施形態は、検証の試行が行われる度に（例えば、ユーザが企業の電子メールアカウントへのログインを試みるときに）、ポリシーチェックを行う。
【００１２】
種々の他のアプリケーション、機能、および利点は、種々の実施形態に関して下で提示される。説明および図面は、いくつかの実施例を提供するが、種々の実施形態の範囲内で可能な代替例および変形例が、完全に説明されないことを理解されたい。しかしながら、代替例および変形例は、本明細書に含まれる教示および提案に照らして当業者に明らかになるであろう。
【００１３】
図１は、一実施形態に従って使用することができる、ネットワーク構成の実施例を図示する。この実施例において、エンドユーザデバイスまたはクライアントデバイス１０２は、ネットワーク１０４を通して、少なくとも１つのホストまたはサーバ１０６にアクセスするように接続することができる。クライアントは、１つ以上の共有秘密鍵または認証シードを記憶するための少なくとも１つの共有秘密データリポジトリ１１２へのアクセスを有し得る。サーバは、ユーザデバイス１０２からの要求を提供する際に使用するための少なくとも１つのデータリポジトリ１０８、および１つ以上の共有秘密鍵または認証シードを記憶するための１つの共有秘密データリポジトリ１１４へのアクセス有し得る。サーバおよびユーザデバイスは、認証のための１つ以上の認証シードを共有し得る。上で述ベられたように、いくつかの実施形態において、ユーザデバイスの認証シードは、ユーザがユーザデバイスを受け取る前に、ユーザデバイスへとブートストラップされる初期シーケンスであり得る。ユーザデバイスのユーザは、バーコードまたはＱＲコード（登録商標）を走査すること、一連の文字を入力すること、電子メールからそれを抜き出すこと等によって、取得した認証シードを有し得る。いくつかの実施形態において、記憶装置１０８および１１４に記憶されるデータは、１つの物理記憶装置（例えば、ハードディスク、ＲＡＭ等）に記憶される。他の実施形態では、種々のデータが別々の物理記憶装置（例えば、異なるタイプの記憶装置、異なるディスク等）に記憶されるか、または１つを超えるタイプのデータが１つの物理記憶装置に記憶される一方で、他のデータが異なる物理記憶装置に記憶される。加えて、データセットの１つ以上が、複数の物理記憶装置にわたって分散され得る。
【００１４】
ユーザデバイス１０２およびサーバ１０６またはデータベース１０８に関して使用されるいくつかのタイプのセキュリティおよび管理ポリシーがあり得、これらは、サーバ、ホスト、および任意の関連する構成要素のセキュリティポリシーコンプライアンスを構成し、管理することができるセキュリティ管理者デバイス１１０によって制御され得る。例えば、ユーザは、サーバ１０６にユーザデバイス１０２のポリシーチェックを行わせる、認証コード生成アプリケーションを起動させ得る。別の実施例において、サーバは、サーバによって提供されるサービスまたは機能へのアクセスを提供するために、ユーザデバイス１０２のセキュア認証を必要とし得、また、データリポジトリ１０８にアクセスし、および／またはデータをそこに記憶するために、異なるセキュリティ基準を必要とし得る。ユーザデバイスの認証が行われているときに、共有秘密データリポジトリ１１２および１１４のそれぞれにおいて１つ以上の共有秘密鍵が使用され得る。ユーザデバイスは、その共有秘密データリポジトリ１１２において１つ以上の共有秘密鍵を使用して、認証コードを生成し得る一方で、サーバは、その共有秘密データリポジトリ１１４において１つ以上の共有秘密鍵を使用して、ユーザデバイスを認証し得る。種々の他のタイプのセキュリティを、本明細書の他の場所で論じられ、提案されるように利用することができる。
【００１５】
図２は、いくつかの実施形態に従う認証コードの生成時に、クライアントが一連のセキュリティポリシーを遵守することを検証するための、操作フロー２００の実施例を図示する。この実施例では、認証コードを生成するためのアプリケーション（例えば、ソフトトークン生成器）が、クライアントデバイス２０２にインストールされる。いくつかの実施形態では、ユーザがアプリケーションを起動させた時点で、またはユーザが有効なユーザ名および／またはパスワードをアプリケーションに入力した時点で、認証コードが生成される。いくつかの実施形態のアプリケーションは、デバイスにインポートされる共有秘密値または認証シードに加えて、特定のイベント（例えば、ボタンのユーザ選択、６０秒毎、アプリケーションの起動毎）および／または現在の時間値に基づいて、認証コードを生成する。
【００１６】
いくつかの実施形態において、認証シードまたは初期シーケンスは、デバイスへとブートストラップされ得る。いくつかの実施形態は、後でデバイスにインポートされた認証シードを使用して、認証コードを生成する。例えば、デバイスは、認証シードが埋め込まれたバーコードの写真を撮ること、認証シードを含む着信テキストメッセージを受け取ること、ユーザが長い一連のデータを入力すること等によって認証シードを取得し得る。
【００１７】
この実施例では、２０８で、要求がサーバ２０４に送られ、セキュア情報へのアクセスを要求する。要求は、ユーザのユーザ名、パスワード、および／またはデバイスにインポートされた認証シードを使用して生成される認証コードを含み得る。いくつかの実施形態では、ユーザが、内部ウェブサイトまたはデバイスのアプリケーションおよびユーザの信用情報の検証を通して、セキュア情報（例えば、企業の電子メール）へのアクセスを要求することに応じて、要求がサーバに送られる。クライアントデバイスは、いくつかの実施形態において、ユーザの信用情報（例えば、ユーザ名およびパスワード）を受け取ることに応じて、および生成された認証コードを受け取った時点で、要求をサーバに送る。いくつかの実施形態は、認証コードの生成時に、サーバに要求を自動的に送る。
【００１８】
いくつかの実施形態において、クライアントデバイスが１組のセキュリティポリシーを遵守することを検証するために、サーバは、クライアントデバイスによって現在課されているセキュリティポリシーを判定するために一連の問い合わせを行う。この実施例において、２１０で、サーバは、１組のセキュリティポリシーに対応する１組のパラメータ値（例えば、クライアントデバイスに関する構成情報、コンプライアンスの確認等）をクライアントに要求し、この１組のパラメータ値は、サーバが判定を行うために必要である。いくつかの実施形態において、１組のセキュリティポリシーは、管理者によって指定される。いくつかの実施形態において、管理者は、ユーザアクセスを付与する条件としてセキュリティポリシーコンプライアンスを指定した、企業のセキュリティ担当者であり得る。１組のセキュリティポリシーは、クライアントデバイスの現在の場所が、閾値領域内、および／または閾値温度範囲内、および／または閾値高度範囲内にあるという要件、クライアントデバイスのピン長が、少なくとも閾値長であるという要件、デバイスが、リモートワイプを可能にしているという要件、デバイスが、特定の１組の無線／有線ネットワークに接続しているという要件、認証パーティ（例えば、クライアントデバイス）および認証者（例えば、サーバ、データセンター）、または認証者によって選択された場所（例えば、本社）が互いの閾値距離内にあるという要件、等を含み得る。
【００１９】
２１２で、クライアントデバイスは、サーバの要求時にサーバによって要求される１組のパラメータ値を送る。いくつかの実施形態において、クライアントデバイスは、サーバが１組のパラメータ値を要求することなく、１組のセキュリティポリシーに対応する１組のパラメータ値を送る。クライアントデバイスは、ユーザのセキュア情報への最初のアクセス要求とともに、１組のパラメータ値を送り得る。いくつかの実施形態において、デバイスが最初の要求を送る前に１組のパラメータ値が判定されるように、クライアントデバイスは、１組のセキュリティポリシーのコピーを有する。いくつかの実施形態は、クライアントデバイスが、更新されたセキュリティポリシーに対応する１組のパラメータ値を判定し得るように、クライアントデバイスが、１組のセキュリティポリシーの更新されたコピーを要求することを可能にする。
【００２０】
いくつかの実施形態において、サーバは、クライアントデバイスが１組のセキュリティポリシーを遵守するかどうかに関して判定を行う。いくつかの実施形態は、２１４で、サーバが、クライアントデバイスから受け取った１組のパラメータ値を第三者ポリシー施行エージェント２０６に送って、コンプライアンスの判定を行うことを可能にする。次いで、いくつかの実施形態において、ポリシー施行エージェントは、クライアントデバイスが１組のポリシーを遵守するかどうかを判定する。いくつかの実施形態において、クライアントデバイスは、サーバから１組のセキュリティポリシーの更新バージョンを取得することによって、ポリシーチェックを行い得る。次いで、クライアントデバイスは、判定を行った時点で、クライアントデバイスが遵守するかどうかをサーバに通知し得る。
【００２１】
この実施例において、２１６で、ポリシー施行エージェントは、判定を行った時点で、クライアントデバイスが１組のセキュリティポリシーを遵守するかどうかに関してサーバに通知する。次いで、２１８で、サーバは、クライアントデバイスが１組のセキュリティポリシーを遵守すると判定した時点で、クライアントデバイスがセキュア情報へのアクセスを取得することを可能にする。ポリシー施行エージェントが、クライアントデバイスが１組のセキュリティポリシーを遵守していないと判定した場合、クライアントデバイスは、セキュア情報へのアクセスを有し得ない。クライアントデバイスは、いくつかの実施形態において、そのセキュリティ設定を調整し、再度アクセスを獲得しようと試み得る。
【００２２】
いくつかの実施形態において、２１０で、サーバは、１組のセキュリティポリシーに対応する１組のセキュリティパラメータ値を要求する代わりに、（例えば、エージェントをクライアントデバイスに送ることによって）クライアントデバイスでプログラムコードを実行することをクライアントデバイスに要求し得るか、またはプログラムコードをクライアントデバイスに実行させ得る。いくつかの実施形態において、エージェントまたはプログラムコードは、更新されたプログラムコードが、例えばなりすましコードを検出することによって、クライアントコンプライアンスを確実にし得るように、クライアントデバイスによる修正から独立して更新することができる。プログラムを実行させた時点で、出力がサーバに伝送され得、よって、サーバは、クライアントデバイスがセキュリティポリシーを遵守するかどうかを判定し得る。いくつかの実施形態において、サーバは、クライアントデバイスの最初のセキュア情報へのアクセス要求を受け取った時点で、実行可能なコードまたはプログラムコードをクライアントデバイスに送る。プログラムコードをクライアントデバイスに送る代わりに、いくつかの実施形態のサーバは、クライアントデバイスの最初の要求を受け取った時点で、クライアントデバイスに、クライアントデバイスのダウンロードしたプログラムまたはエージェント２２０を実行させ得る。
【００２３】
このような実施形態において、クライアントデバイスは、２１２で、コードを実行し、出力をサーバに送る。出力は、クライアントデバイスが１組のセキュリティポリシーを遵守することを示す、一連の肯定応答であり得る。いくつかの実施形態において、出力は、サーバが、クライアントデバイスがセキュリティポリシーを遵守するかどうかに関してさらなる判定を行うことを可能にする、１組の値であり得る。いくつかの実施形態において、２１８で、次いで、サーバは、受け取った値または実行したプログラムコードからの出力を使用して、クライアントデバイスがセキュリティポリシーを遵守するかどうかに関して判定を行い、クライアントデバイスが遵守すると判定した時点で、セキュア情報へのアクセスを提供する。
【００２４】
図３は、いくつかの実施形態に従って、セキュア情報へのアクセスを可能にする前に、クライアントが一連のセキュリティポリシーを遵守することを検査するための、例示的な操作フロー３００を示す図である。この実施例では、１つ以上の共有秘密鍵を使用して認証コードを生成するためのアプリケーションが、クライアントデバイス３０２にインストールされる。いくつかの実施形態において、３０８で、クライアントデバイスは、クライアントデバイスでの認証コード生成アプリケーションの起動時に、認証シードまたは共有秘密の要求をサーバ３０４に送る。いくつかの実施形態は、アプリケーションを起動し、クライアントデバイスのユーザから信用情報（例えば、ユーザ名および／またはピン）を受け取った時点で、要求をサーバに送り得る。いくつかの実施形態において、クライアントデバイスは、認証シードを要求するときに、１組のセキュリティポリシーに対応する１組のパラメータ値を判定し、（例えば、クライアントデバイスの認証シードの最初の要求とともに）判定された１組の値をサーバに送り得る。
【００２５】
サーバは、認証シードをクライアントデバイスに発行する前に、クライアントデバイスが１組のセキュリティポリシーを遵守するかどうかを判定する。この実施例において、３１０で、クライアントが１組のセキュリティポリシーを遵守するかどうかを判定するために、サーバは、クライアントデバイスから１組のパラメータ値を要求する。上で述べられたように、１組のセキュリティポリシーは、デバイスがセキュア情報へのアクセスを取得することを可能にする前に、いくつかのセキュリティ機構がデバイスに実装されることを必要とする、管理者によって課されるポリシーであり得る。セキュリティポリシーは、デバイスのユーザがログインする際に閾値数を超える試行を行った後に、デバイスがセルフワイプを行うという要件、最小ピン長の要件、デバイスが、可能なリモートワイプを有するという要件、デバイスが、特定の高度範囲内に位置するという要件、デバイスが、特定のコンピュータネットワークに接続しているという要件、等を含み得る。
【００２６】
この実施例において、３１２で、サーバの１組のパラメータ値の要求に応じて、クライアントデバイスは、１組のパラメータ値を判定し、サーバに送る。この実施例において、サーバは、１組のパラメータ値の要求をクライアントデバイスに送るが、いくつかの実施形態において、クライアントデバイスは、サーバの要求に関わらず、１組のパラメータ値を判定し、送る。サーバは、次いで、１組のパラメータ値を使用して、ポリシーコンプライアンスの判定を行い得る。いくつかの実施形態において、３１４で、サーバは、第三者ポリシー施行エージェント３０６に判定を行うことを要求する。次いで、ポリシー施行エージェントは、クライアントデバイスが１組のセキュリティポリシーを遵守するかどうかを判定する。いくつかの実施形態において、ポリシー施行エージェントは、サーバからセキュリティポリシーの更新されたコピーを定期的に取得する。いくつかの実施形態は、サーバがポリシー施行エージェントに判定を行うことを要求するときに、ポリシー施行エージェントが、サーバからセキュリティポリシーの更新されたコピーを取得することを可能にする。３１６で、クライアントデバイスが遵守するかどうかを判定した時点で、ポリシー施行エージェントは、クライアントデバイスが遵守するかどうかをサーバに通知する。
【００２７】
いくつかの実施形態において、３１８で、ポリシー施行エージェントが、クライアントが遵守すると判定すると、サーバは、認証シードを生成し、（例えば、セキュア接続を通して）認証シードをクライアントデバイスに送る。認証シードを受け取った後に、クライアントデバイスは、認証シードを使用して、認証コードを生成し得る。いくつかの実施形態において、アプリケーションは、認証シードを受け取り、それをメモリに記憶する。いくつかの実施形態において、アプリケーションは、次いで、デバイスのユーザがアプリケーションを起動させる度に、認証シードを使用して新しい認証コードを生成し得る。いくつかの実施形態において、クライアントデバイスは、アプリケーションが起動され、認証コードが要求される度に、デバイスが遵守することを検証するために要求を送る。
【００２８】
説明されるように、３１０で、サーバは、１組のセキュリティパラメータ値（例えば、デバイスに関する１組の値、デバイスが遵守するかどうかを示す１組の値（すなわち、はい、いいえ））を要求する代わりに、コンプライアンスの判定を行うために、クライアントデバイスの１組の命令またはプログラムコードを実行することをクライアントデバイスに要求し得るか、またはプログラムコードをクライアントデバイスに実行させ得る。クライアントデバイスは、次いで、１組の命令を実行することによって、クライアントデバイスがセキュリティポリシーを遵守するかどうかに関して、セキュリティポリシーチェックを行い得る。いくつかの実施形態において、サーバは、クライアントデバイスの認証シードの最初の要求を受け取った時点で、実行可能なプログラムコードをクライアントデバイスに伝送する。プログラムコードをクライアントデバイスに送る代わりに、いくつかの実施形態のサーバは、クライアントデバイスの最初の要求を受け取った時点で、クライアントデバイスに、クライアントデバイスの予めダウンロードしたプログラムまたはエージェント３２０を実行させ得る。
【００２９】
このような実施形態において、３１２で、クライアントデバイスは、コードを実行し、出力をサーバに送る。出力は、クライアントデバイスが１組のセキュリティポリシーを遵守することを示す、肯定応答値であり得る。いくつかの実施形態において、出力は、サーバが、クライアントデバイスがセキュリティポリシーを遵守するかどうかに関して判定を行うことを可能にする、１組の値であり得る。いくつかの実施形態において、３１８で、次いで、サーバは、受け取った値または実行したプログラムコードからの出力を使用して、クライアントデバイスがセキュリティポリシーを遵守するかどうかに関して判定を行い、クライアントデバイスが遵守すると判定した時点で、認証シードまたは共有秘密鍵値を提供する。
【００３０】
図４は、一実施形態に従ってクライアントが多要素認証サーバによって施行される１組のセキュリティポリシーを遵守することを検証するためのプロセス４００の実施例を示す図である。しかしながら、本明細書で説明される任意のプロセスについて、種々の実施形態の範囲内で、別途指示がない限り、類似もしくは代替の順序で、または並行して行われる、さらなる、より少ない、または代替のステップがあり得ることを理解されたい。この実施例において、４０２で、クライアントデバイスから認証シードの要求が受け取られる。説明されるように、認証シードは、認証シードを保有する２つのパーティが互いに認証することを可能にするためのセキュリティ情報を含む、共有秘密鍵である。いくつかの実施形態において、クライアントは、サーバから認証シードを要求し、認証シードをクライアントデバイスに発行する前に、サーバに、クライアントデバイスでセキュリティポリシーチェックを行うようにプロンプトする。認証シードは、サーバを通して（例えば、システム管理者を通して）、またはクライアントを通して（例えば、クライアントデバイスのユーザが、いくつかの文字データを手動で入力するとき、またはシードが埋め込まれたバーコードを走査するときに）変更され得る。
【００３１】
上で述ベられたように、いくつかの実施形態において、サーバは、認証コード生成アプリケーションの起動時に、認証シードの要求を受け取り得る。いくつかの実施形態は、クライアントデバイスのユーザが有効なユーザ名および／またはパスワードを入力するときに要求を受け取る。４０４で、クライアントデバイスからの認証シードの要求に応じて、１組のセキュリティポリシーに対応する１組のパラメータ値の要求がクライアントデバイスに送られる。いくつかの実施形態において、クライアントがサーバによって課される１組のセキュリティポリシーを遵守するかどうかを判定するために、サーバは、１組のパラメータ値の要求をクライアントに送る。１組のセキュリティポリシーは、クライアントの場所が特定の領域内にあるという要件、クライアントデバイスのコンテンツへのアクセスに対するパスワード要件、デバイスでリモートワイプを可能にするという要件、クライアントにインストールされる最新のパッチレベルの要件、暗号化された記憶装置の要件、複数回の間違ったパスワード入力時の自動セルフワイプの要件、等を含み得る。異なる実施形態は、クライアントがセキュアまたは機密情報にアクセスすることを可能にする前に、クライアントが遵守することを必要とする、異なる組または異なる組み合わせの要件またはセキュリティポリシーを課し得る。
【００３２】
いくつかの実施形態では、１組のセキュリティポリシーに対応する１組のパラメータ値を要求する代わりに、サーバは、クライアントが遵守するかどうかを尋ねる要求をクライアントに送る。課されたまたは更新されたポリシーのコピーは、要求とともにサーバによって送られ得るか、または要求を受け取った時点で、クライアントによって取り出され得る。いくつかの実施形態において、クライアントは、そのキャッシュされたコピーが古過ぎる場合、更新されたポリシーのコピーを取り出し得る。クライアントはまた、作成されたときにプロビジョニングされたポリシーのコピーも使用し得る。いくつかの実施形態において、クライアントは、次いで、判定を行い、その後に、クライアントが遵守するかどうかをサーバに通知し得る。
【００３３】
４０６で、次いで、１組のパラメータ値が、クライアントデバイスから受け取られる。４０８で、１組のパラメータ値が、クライアントデバイスが１組のセキュリティポリシーを遵守することを示すかどうかを判定する。いくつかの実施形態において、パラメータ値のそれぞれは、その対応するセキュリティポリシーを遵守するかどうかに関して判定される。ある場合において、モバイルデバイスに関する６桁のピンの要件は、最小で４桁のピンを必要とするセキュリティポリシーを遵守すると判定される。別の場合において、有効な３回の間違ったピンの入力時の自動セルフワイプ能力は、最高で５回試行した後に自動セルフワイプを必要とすることを課すセキュリティポリシーの１つを遵守すると判定される。いくつかの実施形態において、セキュリティポリシーは、一方のセキュリティパラメータは満たされるが、もう一方は満たされないときに遵守され得る。例えば、いくつかの実施形態は、クライアントデバイスが、リモートワイプ能力を可能にするか、または最小ピン長要件（例えば少なくとも４桁のピンを必要とする）を実現するときに、クライアントがセキュリティポリシー要件の１つを遵守すると判定し得る。
【００３４】
いくつかの実施形態は、サーバがこのポリシーチェックを行うことを可能にするが、いくつかの実施形態は、第三者ポリシー施行エージェントがポリシーチェックを行うことを可能にする。次いで、サーバは、１組のパラメータ値をポリシー施行エージェントに送って、１組のパラメータ値が、クライアントがセキュリティポリシーを遵守することを示すかどうかを判定し得る。説明されるように、いくつかの実施形態は、クライアントデバイスが（例えば、クライアントデバイスの、またはサーバから受け取ったプログラムコードを実行することによって）ポリシーチェックを行うことを可能にする。
【００３５】
４１０で、１組のパラメータ値が、クライアントデバイスが１組のセキュリティポリシーを遵守することを示すときに、認証シードがクライアントデバイスに送られる。いくつかの実施形態のクライアントは、次いで、認証シードを使用して、認証コードを生成する。いくつかの実施形態において、認証コードは、現在の時間および認証シードに基づいて生成することができる。いくつかの実施形態は、現在の時刻、認証シード、およびユーザのユーザ名および／またはパスワード等の他のさらなる因子を使用して、認証コードを生成する。いくつかの実施形態において、次いで、クライアントは、認証コードならびに／またはユーザ名およびパスワードを使用して、機密情報へのアクセスを取得し得る。
【００３６】
４１２で、１組のパラメータ値が、クライアントデバイスが１組のセキュリティポリシーを遵守しないことを示すときに、エラーメッセージがクライアントデバイスに送られる。エラーメッセージは、デバイスの構成がセキュリティポリシーを遵守しないことをユーザに通知するために、クライアントデバイスの表示要素上に表示され得る。機密情報へのアクセスを取得するために、デバイスの構成またはセキュリティ設定は、セキュリティポリシーを遵守するように修正され得る。
【００３７】
図５は、いくつかの実施形態に従って１組のセキュリティポリシーを遵守することを通してセキュア情報へのアクセスを取得するための、例示的なプロセス５００を図示する。この実施例では、５０２で、認証シードの要求がサーバに送られる。いくつかの実施形態において、クライアントデバイスは、デバイスのユーザがセキュア情報へのアクセスを取得することを試みることに応じて、要求を送る。５０４で、サーバによって指定される１組のセキュリティポリシーに対応する１組のセキュリティパラメータ値の要求が、サーバから受け取られる。論じられるように、いくつかのセキュリティポリシーは、クライアントデバイスが、機密情報にアクセスできるようになる前に、セキュリティポリシーを遵守することを確実にするように指定され得る。
【００３８】
５０６で、クライアントが１組のセキュリティポリシーを遵守するかどうかを判定するために、１組のセキュリティパラメータ値がサーバに送られる。いくつかの実施形態において、サーバは、判定を行うために、１組のセキュリティパラメータ値を外部システムまたはポリシー施行エージェントに送る。いくつかのそのような実施形態において、ポリシー施行エージェントは、１組のセキュリティパラメータ値を使用して、セキュリティポリシーのコピーを取得し、クライアントがセキュリティポリシーのそれぞれを遵守するかどうかを判定する。いくつかの実施形態は、サーバが、クライアントデバイスから取得される１組のセキュリティパラメータ値を使用してクライアントデバイスが１組のセキュリティポリシーを遵守するかどうかに関して判定を行うことを可能にする。
【００３９】
５０８で、クライアントが１組のセキュリティポリシーを遵守しないと判定されると、エラーメッセージが受け取られる。クライアントが１組のセキュリティポリシーを遵守しないと判定されるとき、サーバは、エラーメッセージをクライアントに送る。いくつかの実施形態において、クライアントは、認証シードまたは共有秘密鍵を取得することなく、機密情報へのアクセスを取得し得ない。５１０で、クライアントが１組のセキュリティポリシーを遵守すると判定されると、認証シードが受け取られる。いくつかの実施形態において、サーバは、クライアントが認証シードを使用して認証コードを生成し得るように、認証シードをクライアントに送る。いくつかの実施形態は、認証シードに加えて、ユーザのユーザ名および／またはパスワードを使用して認証コードを生成する。いくつかの実施形態において、クライアントは、次いで、認証コードおよび／またはユーザ名およびパスワードを使用して、セキュアまたは機密情報へのアクセスを取得することができる。
【００４０】
図６は、いくつかの実施形態に従ってサーバによってクライアントを認証するための、例示的なプロセス６００を図示する。この実施例では、６０２で、セキュア情報へのアクセス要求が、クライアントから受け取られる。いくつかの実施形態において、要求は、ユーザ名、パスワード、および認証シードまたはクライアントデバイスの共有秘密を使用して生成される応答コードを含む。いくつかの実施形態において、応答コードは、認証シード、ならびにクライアントデバイスのユーザのユーザ名および／またはパスワードを使用して生成され得る。いくつかの実施形態では、ユーザが、機密情報にアクセスするためのクライアントのアプリケーション（例えば、企業カレンダー、連絡先、および電子メールへのアクセスを提供するアプリケーション）を起動させ、ユーザ名、パスワード、および応答コードを入力して、情報へのアクセスを取得しようと試みた時点で、クライアントから要求が受け取られる。
【００４１】
６０４で、要求に応じて、１組のセキュリティポリシーに対応する１組のパラメータ値の要求がクライアントデバイスに送られる。いくつかの実施形態のサーバは、クライアントデバイスが１組のセキュリティポリシーを遵守するかどうかを判定するために、１組のパラメータ値の要求をクライアントデバイスに送る。いくつかの実施形態では、６０６で、クライアントから１組のパラメータ値が受け取られる。６０８で、１組のセキュリティパラメータ値が、クライアントが１組のセキュリティポリシーを遵守することを示すかどうかが判定される。上で述べられたように、サーバは、判定を行い得るか、またはサーバは、外部のポリシー施行エージェントに判定を行うことを要求し得る。クライアントの１組のセキュリティパラメータ値は、セキュリティパラメータ値のそれぞれが１組のセキュリティポリシーのそれぞれによって示される値の許容範囲内に含まれる場合に、クライアントが１組のセキュリティポリシーを遵守することを示し得る。
【００４２】
６１０で、１組のセキュリティパラメータ値が、クライアントが１組のセキュリティポリシーを遵守することを示すと判定した時点で、クライアントは、セキュア情報にアクセスすることが可能になる。いくつかの実施形態において、クライアントがセキュリティポリシーを遵守すると判定した時点で、サーバは、クライアントに機密情報へのアクセスを付与する。６１２で、クライアントが１組のセキュリティポリシーを遵守しないと判定されると、エラーメッセージがクライアントに送られ得る。エラーメッセージは、クライアントデバイスのユーザインターフェースを通してクライアントデバイスのユーザに表示され得る。
【００４３】
図７は、いくつかの実施形態に従ってセキュリティポリシーを遵守することを通してセキュア情報へのアクセスを取得するための、例示的なプロセス７００を図示する。この実施例において、７０２で、セキュア情報へのアクセスを可能にするアプリケーションが起動される。いくつかの実施形態において、アプリケーションは、認証コード生成アプリケーションである。いくつかの実施形態において、アプリケーションは、セキュア情報へのアクセスを提供する一方で、認証コードの生成を提供し得る。７０４で、現在の時間値およびシード値に基づいて、認証コードが生成される。いくつかの実施形態において、シード値は、（例えば、電子メールを通して、ＳＭＳを通して、バーコードを走査することによって、等で）クライアントデバイスによって取得された、共有シードまたは認証シードである。いくつかの実施形態は、現在の時間およびシード値を使用して認証コードを生成するが、いくつかの実施形態は、デバイスのユーザのユーザ名および／またはパスワード等のさらなる値を使用して、認証コードを生成し得る。
【００４４】
７０６で、セキュア情報へのアクセス要求がサーバに送られる。いくつかの実施形態において、送られる要求は、認証コードを含む。７０８で、１組のセキュリティポリシーに関する１組のパラメータ値の要求が受け取られる。クライアントがセキュア情報へのアクセスを要求することに応じて、サーバは、１組のセキュリティポリシーに関連する１組のパラメータ値を送ることをクライアントに要求し得る。７１０で、クライアントが１組のセキュリティポリシーを遵守するかどうかを判定するために、１組のパラメータ値がサーバに送られる。７１２で、クライアントが１組のセキュリティポリシーを遵守すると判定されると、セキュア情報へのアクセスが取得される。いくつかの実施形態において、サーバは、クライアントが１組のセキュリティポリシーを遵守するかどうかに関して判定を行う。いくつかの実施形態は、判定を行うために、サーバが、１組のパラメータ値を外部システムまたはポリシー施行エージェントに送ることを可能にする。サーバが、クライアントが１組のセキュリティポリシーを遵守すると判定すると、クライアントは、セキュア情報へのアクセスを取得し得る。
【００４５】
本開示の種々の例示的な実施形態は、以下の付記を考慮して説明することができる。
【００４６】
付記１．セキュアデータへのアクセスを付与するために、クライアントが１組のセキュリティポリシーを遵守することを検証する方法であって、
実行可能命令とともに構成される１つ以上のコンピュータシステムの制御下で、
モバイルデバイスから、認証コードが導き出され得るセキュリティ情報を含む認証シードの要求を受け取ることと、
要求に応じて、モバイルデバイスが１組のセキュリティポリシーを遵守するかどうかを判定するために、１組のセキュリティポリシーに対応する１組のパラメータ値の要求をモバイルデバイスに送ることと、
モバイルデバイスから１組のパラメータ値を受け取ることと、
１組のパラメータ値が、モバイルデバイスが１組のセキュリティポリシーを遵守することを示すかどうかを判定することと、
１組のパラメータ値が、モバイルデバイスが１組のセキュリティポリシーを遵守することを示すときに、モバイルデバイスが認証コードを生成することを可能にするために、認証シードをモバイルデバイスに送信することであって、認証コードは、認証シードに少なくとも部分的に基づいて生成することができる、送信することと、
を含む、方法。
【００４７】
付記２．認証コードの生成はさらに、現在の時間値、カウンタ、以前の認証コード、要求、またはサーバによって提供されるチャレンジのうちの少なくとも１つに基づく、付記１に記載の方法。
【００４８】
付記３．１組のパラメータ値が、モバイルデバイスが１組のセキュリティポリシーを遵守しないことを示すときに、エラーメッセージをモバイルデバイスに送ることをさらに含む、付記１に記載の方法。
【００４９】
付記４．１組のセキュリティポリシーは、ピンの最小長さ、リモートワイプを可能にすること、最新のパッチレベル、暗号化された記憶装置、間違った入力／試行の最大回数に応じて自動セルフワイプを可能にすること、モバイルデバイスが企業電子メールシステムと関連付けられること、モバイルデバイスが特定の高度範囲内にあること、モバイルデバイスが特定の温度範囲内にあること、モバイルデバイスが特定の無線ネットワークに接続していること、またはモバイルデバイスが場所範囲内にあること、のうちの少なくとも１つを含む、付記１に記載の方法。
【００５０】
付記５．１組のパラメータ値が、モバイルデバイスが遵守することを示すかどうかを判定することは、１組のパラメータ値が１組のセキュリティポリシーを遵守することを証明するために、ポリシー施行エージェントとリアルタイムで通信することを含む、付記１に記載の方法。
【００５１】
付記６．１組のパラメータ値が、モバイルデバイスが遵守することを示すかどうかを判定することは、モバイルデバイスで実行するためのソフトウェアをモバイルデバイスに伝送することを含み、モバイルデバイスから受け取られる１組のパラメータ値は、ソフトウェアの実行による出力を含む、付記１に記載の方法。
【００５２】
付記７．モバイルデバイスに、１組のポリシーの少なくとも１つをモバイルデバイスに課すように指示することをさらに含む、付記１に記載の方法。
【００５３】
付記８．認証シードの要求は、サインイン時にモバイルデバイスのユーザからユーザ名およびパスワードを受け取った時点で行われる、付記１に記載の方法。
【００５４】
付記９．認証シードの要求は、認証コードを生成するアプリケーションの起動時に行われる、付記１に記載の方法。
【００５５】
付記１０．１組のセキュリティポリシーは、モバイルデバイスに知られていない、付記１に記載の方法。
【００５６】
付記１１．サーバによってクライアントを認証する方法であって、
実行可能命令によって構成される１つ以上のコンピュータシステムの制御下で、
クライアントから、セキュア情報へのアクセス要求を受け取ることであって、該要求は、クライアントおよびサーバにアクセス可能な認証シードに少なくとも部分的に基づいて生成される、少なくとも応答コードを含む、受け取ることと、
クライアントのセキュリティ設定が１組のセキュリティポリシーを遵守するかどうかを判定するために、クライアントから１組のセキュリティパラメータ値を受け取ることと、
１組のセキュリティパラメータ値が、クライアントが１組のセキュリティポリシーを遵守することを示すかどうかを判定することと、
クライアントが１組のセキュリティポリシーを遵守すると判定した時点で、クライアントがセキュア情報にアクセスすることを可能にすることと、
を含む、方法。
【００５７】
付記１２．要求を受け取った時点で、クライアントから１組のセキュリティパラメータ値を要求することをさらに含み、１組のセキュリティパラメータ値は、サーバによって課される１組のセキュリティポリシーに対応する、付記１１に記載の方法。
【００５８】
付記１３．応答コードの生成はさらに、ユーザ名、パスワード、現在の時間、カウンタ、以前の認証コード、要求、またはサーバによって提供されるチャレンジのうちの少なくとも１つに基づく、付記１１に記載の方法。
【００５９】
付記１４．判定することは、１組のセキュリティパラメータ値が対応する１組のポリシーを遵守することを証明するために、ポリシー施行エージェントとリアルタイムで通信することを含む、付記１１に記載の方法。
【００６０】
付記１５．要求を受け取った時点で、１組の命令をクライアントに送ることと、
クライアントが、１組の命令を実行して、クライアントが１組のセキュリティポリシーを遵守するかどうかを判定することを可能にすることと、をさらに含み、１組のセキュリティパラメータ値は、１組の命令の実行による出力を含む、付記１１に記載の方法。
【００６１】
付記１６．１組のセキュリティパラメータ値は、クライアントの現在位置の識別子を含み、識別子は、対応するセキュリティポリシーによって指定される許容領域内にある、付記１１に記載の方法。
【００６２】
付記１７．要求はさらに、ユーザ名およびパスワードを含み、クライアントの情報へのアクセスは、ユーザ名およびパスワードを検証した時点で可能になる、付記１１に記載の方法。
【００６３】
付記１８．１組のセキュリティポリシーは、クライアントと、判定を行う認証パーティによって選択される場所との間の最大許容距離を含む、付記１１に記載の方法。
【００６４】
付記１９．クライアントと認証パーティとの間の信号の往復時間が閾値期間を超えるときに、クライアントと認証パーティによって選択される場所との間の距離が最大許容距離を超える、付記１８に記載の方法。
【００６５】
付記２０．セキュリティポリシーコンプライアンスを通してセキュア情報へのアクセスを取得する方法であって、
実行可能命令とともに構成される１つ以上のコンピュータシステムの制御下で、
セキュア情報へのアクセスを提供するアプリケーションを起動させることと、
シード値に少なくとも部分的に基づいて認証コードを生成することと、
セキュア情報へのアクセス要求をサーバに送ることであって、該要求は、少なくとも認証コードを含む、送ることと、
１組のパラメータ値を、クライアントが１組のセキュリティポリシーを遵守するかどうかを判定するように構成されるサーバに提供することと、
クライアントが１組のセキュリティポリシーを遵守すると判定されるときに、セキュア情報へのアクセスを取得することと、
を含む、方法。
【００６６】
付記２１．１組のセキュリティポリシーに関連する１組のパラメータ値の要求を受け取ることをさらに含む、付記２０に記載の方法。
【００６７】
付記２２．認証コードは、クライアントへとブートストラップされる、認証シードを含むアプリケーションを使用して生成される、付記２０に記載の方法。
【００６８】
付記２３．クライアントで場所判定要素を使用して、現在位置を判定することをさらに含み、サーバに送られる１組のパラメータ値の１つは、判定された場所に基づく、付記２０に記載の方法。
【００６９】
付記２４．１組のセキュリティポリシーの更新バージョンを要求することと、
１組のセキュリティポリシーの更新バージョンを使用して、クライアントが遵守するかどうかを判定することと、をさらに含む、付記２０に記載の方法。
【００７０】
付記２５．更新バージョンは、クライアントが更新されたセキュリティポリシーを遵守することを確実にするために、セキュア情報へのアクセス要求の度に取り出される、付記２４に記載の方法。
【００７１】
付記２６．クライアントが、リモートワイプ能力を可能にすること、および最小ピン長という要件のうちの少なくとも１つを含むときに、クライアントは、１組のセキュリティポリシーの１つを遵守する、付記２０に記載の方法。
【００７２】
付記２７．少なくとも認証コードを使用してセキュア情報へのアクセスを取得するための命令を含む、非一時的なコンピュータ読み出し可能な記憶媒体であって、該命令は、コンピューティングシステムの少なくとも１つのプロセッサによって実行されたときに、コンピューティングシステムに、
認証シードの要求をサーバに送らせ、
１組の値を、該１組の値を使用してクライアントデバイスが１組のセキュリティポリシーを遵守するかどうかを判定するように構成されるサーバに提供させ、
クライアントデバイスが１組のセキュリティポリシーを遵守しないと判定されるときに、エラーメッセージを受け取らせ、そして、
クライアントデバイスが１組のセキュリティポリシーを遵守すると判定されるときに、認証シードを受け取らせ、
クライアントデバイスは、認証シードを使用して生成される認証コードを使用して、セキュア情報へのアクセスを取得することができる、
非一時的なコンピュータ読み出し可能な記憶媒体。
【００７３】
付記２８．命令は、実行されたときにさらに、コンピューティングシステムに、
プログラムコードを受け取らせ、
プログラムコードを実行するために要求を受け取らせ、そして、
プログラムコードを実行させ、１組の値は、プログラムコードの実行による１組の出力値である、付記２７に記載の非一時的なコンピュータ読み出し可能な記憶媒体。
【００７４】
付記２９．命令は、実行されたときにさらに、コンピューティングシステムに、
認証エージェントをクライアントデバイスにインストールさせ、そして、
１組のセキュリティポリシーを受け取らせ、認証エージェントは、クライアントデバイスが１組のセキュリティポリシーを遵守するかどうかを判定する、付記２７に記載の非一時的なコンピュータ読み出し可能な記憶媒体。
【００７５】
付記３０．命令は、実行されたときにさらに、コンピューティングシステムに、
サーバから、１組のセキュリティポリシーに対応する１組のセキュリティパラメータ値の要求を受け取らせ、該１組の値は、１組のセキュリティパラメータ値であり、サーバは、１組のセキュリティパラメータ値が１組のセキュリティポリシーを遵守するかどうかを判定することによって、クライアントデバイスが１組のセキュリティポリシーを遵守するかどうかを判定する、付記２７に記載の非一時的なコンピュータ読み出し可能な記憶媒体。
【００７６】
付記３１．サーバは、クライアントデバイスがセキュリティポリシーを遵守するかどうかに関して判定を行うために、１組のセキュリティパラメータ値をポリシー施行エージェントに送る、付記３０に記載の非一時的なコンピュータ読み出し可能な記憶媒体。
【００７７】
付記３２．命令は、実行されたときにさらに、コンピューティングシステムに、認証コードを提供することができるアプリケーションを起動させる、付記２７に記載の非一時的なコンピュータ読み出し可能な記憶媒体。
【００７８】
付記３３．要求は、クライアントデバイスのユーザのユーザ名およびパスワードを含む企業の信用情報に少なくとも部分的に基づく、付記２７に記載の非一時的なコンピュータ読み出し可能な記憶媒体。
【００７９】
付記３４．命令は、実行されたときにさらに、コンピューティングシステムに、
認証シードを使用して認証コードを生成させ、そして、
サーバが、クライアントデバイスのユーザのユーザ名およびパスワードが有効であると判定したときに、認証コードを使用して、セキュア情報へのアクセスを取得させる、付記２７に記載の非一時的なコンピュータ読み出し可能な記憶媒体。
【００８０】
付記３５．１組のセキュリティポリシーは、クライアントデバイスの場所要件を含む、付記２７に記載の非一時的なコンピュータ読み出し可能な記憶媒体。
【００８１】
付記３６．クライアントデバイスの場所は、クライアントデバイスの場所判定要素、またはクライアントデバイスのネットワーク場所のうちの少なくとも１つに基づいて判定される、付記３５に記載の非一時的なコンピュータ読み出し可能な記憶媒体。
【００８２】
付記３７．セキュアデータへのクライアントアクセスを付与するために、クライアントが１組のセキュリティポリシーを遵守することを検証するためのシステムであって、
プロセッサと、
命令を含むメモリデバイスと、を備え、該命令は、プロセッサによって実行されたときに、システムに、
認証シードの要求を受け取らせ、
１組のセキュリティポリシーに対応する応答の要求をクライアントに送信させ、
クライアントから応答を受け取らせ、
応答が、クライアントが１組のセキュリティポリシーを遵守することを示すかどうかを判定させ、
応答が、クライアントが１組のセキュリティポリシーを遵守することを示すと判定した時点で、認証シードをクライアントに送らせ、そして、
認証シードに少なくとも部分的に基づいて認証コードを生成させ、
クライアントは、少なくとも認証コードを使用して、機密情報へのアクセスを取得することができる、
システム。
【００８３】
付記３８．応答は、サーバによって要求される１組のパラメータ値であり、該１組のパラメータ値は、クライアントの構成情報、または肯定応答のうちの少なくとも１つを含む、付記３７に記載のシステム。
【００８４】
付記３９．命令は、実行されたときにさらに、システムに、
クライアントで実行するための１組の命令を含むコンピュータプログラムを送らせ、受け取られる応答は、コンピュータプログラムの出力である、付記３７に記載のシステム。
【００８５】
図８は、種々の実施形態に従って使用することができる、例示的な携帯型コンピューティングデバイス８００の正面図および背面図を図示する。１つのタイプの携帯型コンピューティングデバイス（例えば、スマートフォン、電子ブックリーダー、またはタブレットコンピュータ）が示されているが、本明細書で論じられる種々の実施形態に従って、入力を判定し、処理し、そして提供することができる種々の他のタイプの電子デバイスを、使用することができることを理解されたい。デバイスとしては、例えば、数ある中でも、ノートブックコンピュータ、携帯情報端末、携帯電話、ビデオゲーミングコンソールもしくはコントローラ、および携帯型メディアプレーヤーが挙げられる。
【００８６】
この実施例において、携帯型コンピューティングデバイス８００は、画像コンテンツを１人以上のデバイスのユーザまたは視聴者に表示するように操作可能な、表示画面８０２（例えば、液晶ディスプレイ（ＬＣＤ）要素）を有する。少なくともいくつかの実施形態において、表示画面は、例えば、容量性または抵抗性のタッチ技術を使用する、タッチまたはスワイプに基づく入力を提供する。そのような表示要素は、例えば、ユーザが、マウスの右または左ボタン、タッチポイント等の、ボタンの画像に対応する表示領域を押圧することによって入力を提供することを可能にするために使用することができる。
【００８７】
例示的な携帯型コンピューティングデバイスは、従来の画像および／または映像取り込み等の目的で、１つ以上の画像取り込み要素を含むことができる。コンピューティングデバイスは、この実施例において、デバイスの「正面」の１つの画像取り込み要素８０４と、デバイスの「背面」の１つの画像取り込み要素８１２とを含むが、画像取り込み要素はまた、または代替として、デバイスの側部または隅部に配置することができること、および類似するまたは異なるタイプの任意の適切な数の取り込み要素があり得ることを理解されたい。各画像取り込み要素は、例えば、カメラ、電荷結合素子（ＣＣＤ）、行動検出センサ、もしくは赤外線センサであり得、または別の画像取り込み技術を利用することができる。コンピューティングデバイスはまた、ある実施形態において位置の変化を判定するために、またはユーザ入力を受け取るため等に使用され得る、音声データを取り込むことができる、少なくとも１つのマイクロホン８０６または他の音声取り込み要素も含むことができる。いくつかのデバイスでは、マイクロホンが１つだけであり得るが、他のデバイスでは、デバイスの両側および／もしくは隅部に、または他の適切な場所に少なくとも１つのマイクロホンがあり得る。
【００８８】
デバイス８００はまた、この実施例において、デバイスの位置、方向、運動、または方位等の情報を提供するように操作可能な、少なくとも１つの場所判定要素８０８も含む。これらの要素としては、例えば、加速度計、慣性センサ、電子ジャイロスコープ、電子コンパス、およびＧＰＳ要素が挙げられる。種々のタイプの運動または方位の変化は、別のデバイスの少なくとも１つの制御信号を起動することができるデバイスに入力を提供するために使用することができる。例示的なデバイスはまた、少なくとも１つの通信機構８１４も含み、１つ以上の電子デバイスと通信するように操作可能な、少なくとも１つの有線または無線の構成要素等が挙げられる。デバイスはまた、電力システム８１６も含み、従来のプラグイン手法を通して、または電力マットもしくは他のそのようなデバイスに近接することによる容量性充電等の他の手法を通して再充電されるように操作可能な電池等が挙げられる。種々の他の要素および／または組み合わせもまた、種々の実施形態の範囲内で可能である。
【００８９】
図９は、図８に関して説明されるデバイス８００等の、電子コンピューティングデバイス９００の１組の基本構成要素を図示する。この実施例において、デバイスは、メモリデバイスまたは要素９０４に記憶することができる命令を実行するための、少なくとも１つの処理ユニット９０２を含む。当業者には明らかなように、デバイスは、処理ユニット（複数可）９０２によって実行するためのプログラム命令のための第１のデータ記憶装置等の、数多くのタイプのメモリ、データ記憶装置、またはコンピュータ読み出し可能な媒体を含むことができ、同じまたは別個の記憶装置を画像またはデータに使用することができ、他のデバイスと情報を共有するためにリムーバブルメモリを利用することができ、また、他のデバイスと共有するために任意の数の通信手法を利用することができる。
【００９０】
デバイスは、一般的に、タッチ画面、電子インク（ｅインク）、有機発光ダイオード（ＯＬＥＤ）、または液晶ディスプレイ（ＬＣＤ）等の、いくつかのタイプの表示要素９０６を含むが、携帯型メディアプレーヤー等のデバイスは、音声スピーカーを通す等の、他の手段を介して情報を伝達し得る。
【００９１】
いくつかの実施形態において、デバイスは、ユーザから従来の入力を受け取ることができる、少なくとも１つの追加入力デバイス９０８を含むことができる。この従来の入力としては、例えば、押しボタン、タッチパッド、タッチ画面、ホイール、ジョイスティック、キーボード、マウス、キーパッド、または、それによってユーザがコマンドをデバイスに入力することができる任意の他のそのようなデバイスもしくは要素が挙げられる。いくつかの実施形態において、これらのＩ／Ｏデバイスは、無線赤外線もしくはＢｌｕｅｔｏｏｔｈ（登録商標）、または他のリンクによってもまた接続することができる。いくつかのデバイスとしてはまた、声または他の音声コマンドを受け付ける、マイクロホンまたは他の音声取り込み要素も挙げられる。例えば、デバイスは、全くボタンを含まずとも良く、ユーザがデバイスと接触することを必要とせずにデバイスを制御することができるような、視覚および音声コマンドの組み合わせだけを通して制御され得る。
【００９２】
デバイスはまた、種々の電力構成要素９１０を含み、従来のプラグイン手法を通して、または電力パッドもしくは他のそのようなデバイスに近接することによる容量性充電等の他の手法を通して再充電されるように操作可能な電池等が挙げられる。種々の他の要素および／または組み合わせもまた、種々の実施形態の範囲内で可能である。
【００９３】
論じられるように、デバイスは、数多くの実施形態において、デバイス（またはデバイスのユーザ）の場所を判定するための、少なくとも場所判定要素９１２を含む。場所判定要素は、デバイスの位置の相対座標を判定するように操作可能な、ＧＰＳまたは類似する構成要素を含むことができる。上で述べられるように、位置決定要素は、デバイスの場所を判定するために場所情報を放送し得るか、または信号の三角測量を可能にし得る、無線アクセスポイント、基地局等を含み得る。他の位置決定要素としては、ＱＲコード（登録商標）、バーコード、ＲＦＩＤタグ、ＮＦＣタグ等が挙げられるが、それらは、デバイスが（例えば、識別子を対応する場所にマップすることによって）場所情報を取得することを可能にする場所情報または識別子を、デバイスが検出し、受け取ることを可能にする。種々の実施形態は、任意の適切な組み合わせで１つ以上のそのような要素を含むことができる。
【００９４】
例示的なデバイスはまた、セルラーネットワーク構成要素、無線インターネット構成要素、Ｂｌｕｅｔｏｏｔｈ（登録商標）機構、ＷＬＡＮコネクタ等の、１つ以上のネットワーク構成要素９１４も含む。そのような構成要素は、デバイスが、少なくとも１つのネットワークを通じてデバイス、システム、またはサービスと通話することを可能にすることができ、また、いくつかの実施形態では、他のコンピューティングデバイスおよび／またはアクセサリと直接通信することを可能にすることができる。無線インターネット構成要素は、特定の無線チャネルの通信範囲内で１つ以上の電子デバイスと通信するように操作可能である。無線チャネルは、Ｂｌｕｅｔｏｏｔｈ（登録商標）、セルラー、またはＷｉ−Ｆｉチャネル等の、デバイスが無線で通信することを可能にするために使用される、任意の適切なチャネルとすることができる。デバイスは、当技術分野で知られている１つ以上の従来の有線通信接続を有することができることを理解されたい。
【００９５】
論じられるように、説明される実施形態に従って、異なる手法を種々の環境で実現することができる。例えば、図１０は、種々の実施形態に従って態様を実現するための、環境１０００の実施例を図示する。認識されるように、説明の目的でウェブに基づく環境が使用されるが、種々の実施形態を実現するために、必要に応じて、異なる環境が使用され得る。システムは、電子クライアントデバイス１００２を含み、該デバイスとしては、適切なネットワーク１００４を通じて要求、メッセージ、または情報を送信および受信し、情報をデバイスのユーザに搬送するように操作可能な、任意の適切なデバイスが挙げられる。そのようなクライアントデバイスの例としては、パーソナルコンピュータ、携帯電話、ハンドヘルドメッセージングデバイス、ラップトップコンピュータ、セットトップボックス、携帯情報端末、電子ブックリーダー等が挙げられる。ネットワークとしては、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、もしくは任意の他のそのようなネットワーク、またはそれらの組み合わせを含む、任意の適切なネットワークが挙げられる。そのようなシステムに使用される構成要素は、選択されたネットワークおよび／または選択環境のタイプに少なくとも部分的に依存し得る。そのようなネットワークを介して通信するためのプロトコルおよび構成要素はよく知られており、本明細書では詳細に論じない。ネットワークを通じた通信は、有線接続または無線接続、およびそれらの組み合わせを介して可能にすることができる。この実施例では、当業者には明らかなように、要求を受け取り、それに応じてコンテンツを提供するためのウェブサーバ１００６を環境が含むので、このネットワークは、インターネットを含むが、他のネットワークの場合、類似の目的を提供する代替のデバイスを使用することができる。
【００９６】
実例となる環境は、少なくとも１つのアプリケーションサーバ１００８と、データストア１０１０とを含む。連鎖され得るまたは別様には構成され得る、適切なデータストアからデータを取得する等の作業を行うように相互作用することができる、いくつかのアプリケーションサーバ、層もしくは他の要素、過程、または構成要素があり得ることを理解されたい。本明細書で使用される「データストア」という用語は、データを記憶し、それにアクセスし、それを取り出すことができる任意のデバイスまたはデバイスの組み合わせを指し、任意の数のデータサーバ、データベース、データ記憶デバイス、データ記憶媒体、およびそれらの任意の組み合わせを、任意の標準型、分散型、またはクラスタ型の環境において含み得る。アプリケーションサーバ１００８は、クライアントデバイスのための１つ以上のアプリケーションの態様を実行するために、必要に応じて、データストア１０１０と統合するための、およびアプリケーションのためのデータアクセスおよびビジネスロジックの大部分を取り扱うための、任意の適切なハードウェアおよびソフトウェアを含むことができる。アプリケーションサーバは、データストアと連携してアクセス制御サービスを提供し、また、この実施例においてＨＴＭＬ、ＸＭＬ、または別の適切な構造化言語の形態でウェブサーバ１００６によってユーザに提供され得る、ユーザに転送されるテキスト、グラフィックス、オーディオ、および／またはビデオ等のコンテンツを生成することができる。全ての要求および応答、ならびにクライアントデバイス１００２とアプリケーションサーバ１００８との間のコンテンツの送達は、ウェブサーバ１００６によって取り扱うことができる。本明細書で論じられる構造化コードは、本明細書で他の場所で論じられるように、任意の適切なデバイスまたはホストマシン上で実行することができるので、ウェブサーバおよびアプリケーションサーバは必要とされず、これらは単に例示的な構成要素に過ぎないことを理解されたい。
【００９７】
データストア１０１０は、いくつかの別個のデータテーブル、データベース、または他のデータ記憶機構と、特定の態様に関連するデータを記憶するための媒体を含むことができる。例えば、例示されるデータストアは、製品側のコンテンツを提供するために使用することができる、コンテンツ（例えば、製品データ）１０１２およびユーザ情報１０１６を記憶するための機構を含む。データストアはまた、ログデータまたはセッションデータ１０１４を記憶するための機構も含むように示される。ページ画像情報およびアクセス権利情報等の、データストアに記憶する必要があり得る、数多くの他の態様があり得、必要に応じて上で列記した機構のいずれかに、またはデータストア１０１０の付加的な機構に記憶することができることを理解されたい。データストア１０１０は、アプリケーションサーバ１００８から命令を受け取って、それに応じてデータを取得する、更新する、または別様には処理するために、それと関連する論理を通して操作可能である。一例において、ユーザは、特定のタイプのアイテムの検索要求を提出し得る。この場合、データストアは、ユーザの識別情報を照合するためにユーザ情報にアクセスし得、また、そのタイプのアイテムに関する情報を取得するために、カタログの詳細情報にアクセスすることができる。情報は、次いで、ユーザがユーザデバイス１００２上のブラウザを介して視聴することができる、ウェブページ上の結果リスト等で、ユーザに返すことができる。関心の特定のアイテムの情報は、ブラウザの専用ページまたはウィンドウで視聴することができる。
【００９８】
各サーバは、一般的に、そのサーバの一般管理および操作のための実行可能プログラム命令を提供するオペレーティングシステムを含み、また一般的に、サーバのプロセッサによって実行されたときに、サーバがその意図する機能を行うことを可能にする命令を記憶する、コンピュータ読み出し可能な媒体を含む。オペレーティングシステムおよびサーバの一般機能の好適な実現例は、既知であるか、または商業的に入手可能であり、また、特に本明細書の開示に照らして、当業者によって容易に実現される。
【００９９】
一実施形態における環境は、１つ以上のコンピュータネットワークまたは直接接続を使用して、通信リンクを介して相互接続される複数のコンピュータシステムおよび構成要素を利用する、分散コンピューティング環境である。しかしながら、そのようなシステムは、図１０で例示されるよりも少ない数または多い数の構成要素を有するシステムで十分同等に動作できることが、当業者に認識されるであろう。したがって、図１０のシステム１０００の描写は、事実上、実例となるものであり、本開示の範囲を限定するものとみなすべきではない。
【０１００】
種々の実施形態はさらに、多種多様な操作環境で実現することができ、一部の場合において、いくつかのアプリケーションのいずれかを操作するために使用することができる、１つ以上のユーザコンピュータまたはコンピューティングデバイスを含むことができる。ユーザまたはクライアントデバイスとしては、標準的なオペレーティングシステムを実行するデスクトップまたはラップトップコンピュータ等の、数多くの汎用パーソナルコンピュータ、ならびに、モバイルソフトウェアを実行し、かついくつかのネットワークおよびメッセージングプロトコルをサポートすることができる、セルラーデバイス、無線デバイス、およびハンドヘルドデバイスのいずれかが挙げられる。そのようなシステムとしてはまた、開発およびデータベース管理等の目的で、種々の市販のオペレーティングシステムおよび他の既知のアプリケーションのいずれかを実行する、数多くのワークステーションも挙げられる。これらのデバイスとしてはまた、ネットワークを介して通信することができる、ダミー端末、シンクライアント、ゲームシステム、および他のデバイス等の、他の電子デバイスも挙げられる。
【０１０１】
大部分の実施形態は、ＴＣＰ／ＩＰ、ＯＳＩ、ＦＴＰ、ＵＰｎＰ、ＮＦＳ、ＣＩＦＳ、およびＡｐｐｌｅＴａｌｋ等の、種々の市販のプロトコルのいずれかを使用して通信をサポートするための、当業者が精通している少なくとも１つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、およびそれらの任意の組み合わせとすることができる。
【０１０２】
ウェブサーバを利用する実施形態において、ウェブサーバは、ＨＴＴＰサーバ、ＦＴＰサーバ、ＣＧＩサーバ、データサーバ、Ｊａｖａ（登録商標）サーバ、およびビジネスアプリケーションサーバを含む、種々のサーバまたは中間層アプリケーションのいずれかを動作させることができる。サーバ（複数可）はまた、ユーザデバイスからの要求に応じて、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃、もしくはＣ＋＋等の任意のプログラミング言語、またはＰｅｒｌ、Ｐｙｔｈｏｎ、もしくはＴＣＬ等の任意のスクリプト言語、ならびにそれらの組み合わせで書かれた１つ以上のスクリプトまたはプログラムとして実現され得る１つ以上のウェブアプリケーションを実行すること等によって、プログラムまたはスクリプトを実行することも可能であり得る。サーバ（複数可）としてはまた、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）、およびＩＢＭ（登録商標）から市販されているものが挙げられるがそれらに限定されない、データベースサーバも挙げられる。
【０１０３】
環境は、上で論じたように、種々のデータストア、ならびに他のメモリおよび記憶媒体を含むことができる。これらは、１つ以上のコンピュータに対してローカルな（および／またはその中に存在する）、またはネットワーク全体にわたるコンピュータのいずれかまたは全てからリモートな記憶媒体上等の、種々の場所に存在することができる。特定の１組の実施形態において、情報は、当業者が精通しているストレージエリアネットワーク（「ＳＡＮ」）の中に存在し得る。同様に、必要に応じて、コンピュータ、サーバ、または他のネットワークデバイスに起因する機能を行うための任意の必要なファイルが、ローカルおよび／またはリモートで記憶され得る。システムがコンピュータ制御のデバイスを含む場合、そのような各デバイスは、バスを介して電気的に連結され得るハードウェア要素を含むことができ、該要素は、例えば、少なくとも１つの中央処理ユニット（ＣＰＵ）と、少なくとも１つの入力デバイス（例えば、マウス、キーボード、コントローラ、タッチセンサ式表示要素、またはキーパッド）と、少なくとも１つの出力デバイス（例えば、表示デバイス、プリンタ、またはスピーカー）とを含む。そのようなシステムはまた、ディスクドライブ、光記憶デバイス、およびランダムアクセスメモリ（ＲＡＭ）またはリードオンリーメモリ（ＲＯＭ）等の固体記憶デバイス、ならびにリムーバブル媒体デバイス、メモリカード、フラッシュカード等の、１つ以上の記憶デバイスも含み得る。
【０１０４】
そのようなデバイスとしてはまた、上で説明したように、コンピュータ読み出し可能な記憶媒体リーダー、通信デバイス（例えば、モデム、ネットワークカード（無線または有線）、赤外線通信デバイス）、および作業メモリも挙げられる。コンピュータ読み出し可能な記憶媒体リーダーは、リモート、ローカル、固定の、および／またはリムーバブルな記憶デバイスを表すコンピュータ読み出し可能な記憶媒体、ならびにコンピュータ読み出し可能な情報を一時的におよび／またはより恒久的に含む、記憶する、伝送する、および取り出すための記憶媒体と接続することができる、またはそれを受け取るように構成することができる。システムおよび種々のデバイスはまた、一般的に、オペレーティングシステム、およびクライアントアプリケーションまたはウェブブラウザ等のアプリケーションプログラムを含む、少なくとも１つのワーキングメモリデバイス内に位置する、数多くのソフトウェアアプリケーション、モジュール、サービス、または他の要素も含む。代替の実施形態は、上で説明した数多くの変形例を有し得ることを理解されたい。例えば、カスタマイズされたハードウェアも使用され得、および／または特定の要素が、ハードウェア、ソフトウェア（アプレット等のポータブルソフトウェアを含む）、または双方で実現され得る。さらに、ネットワーク入力／出力デバイス等の他のコンピューティングデバイスへの接続が利用され得る。
【０１０５】
コードまたはコードの部分を収容するための記憶媒体およびコンピュータ読み出し可能な媒体としては、コンピュータ読み出し可能な命令、データ構造、プログラムモジュール、または他のデータ等の情報を記憶および／または伝送するための任意の方法または技術で実装される揮発性および不揮発性で、取り外し可能および取り外し不可能な媒体等が挙げられるが、それらに限定されない、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶デバイス、または所望の情報を記憶するために使用することができ、システムデバイスによってアクセスすることができる、任意の他の媒体を含む、記憶媒体および通信媒体を含む、当技術分野において知られているまたは使用される、任意の適切な媒体が挙げられる。本明細書で提供される開示および教示に基づいて、当業者は、種々の実施形態を実現するための他の様式および／または方法を認識するであろう。
【０１０６】
したがって、本明細書および図面は、限定的な意味ではなく、例示的な意味であるとみなされるべきである。しかしながら、特許請求の範囲に記載された本発明のより広い趣旨および範囲から逸脱することなく、種々の修正および変更が行われ得ることが明らかであろう。
【図１】
0005978307.tif 000002
【図２】
0005978307.tif 000003
【図３】
0005978307.tif 000004
【図４】
0005978307.tif 000005
【図５】
0005978307.tif 000006
【図６】
0005978307.tif 000007
【図７】
0005978307.tif 000008
【図８】
0005978307.tif 000009
【図９】
0005978307.tif 000010
【図１０】
0005978307.tif 000011