(57)【特許請求の範囲】
【請求項１】
モバイル装置のインターネット接続性を検証するために受動的ネットワーク検出を実行するためのコンピュータ実行方法において、
モバイル装置により、タイムアウト変数を現在時間と等しい値に設定することと、
前記モバイル装置により、ＷｉＦｉサービスのアクセスポイントからのビーコンフレームを受信することと、
前記モバイル装置により、前記ビーコンフレームがサーバの署名されたタイミング情報を含み且つタイムアウト変数の値が最大時間未満であると判定することと、
前記署名されたタイミング情報から抽出された暗号化された時間値を復号するために、前記サーバの公開鍵を使用することによって復号された時間値を判定することと、
復号された時間値が前記署名されたタイミング情報から抽出された時間値と等しく且つ時間値が前記現在時間から時間ウィンドウを減算したものよりも大きいと判定することと、
前記モバイル装置により、ＷｉＦｉサービスのインターネット接続性検証が成功したと判定することとを備える、方法。
【請求項２】
前記アクセスポイントが、前記サーバから前記署名されたタイミング情報を取得し、ビーコンフレームにおいて前記署名されたタイミング情報をブロードキャストする、請求項１に記載の方法。
【請求項３】
前記モバイル装置により、タイムアウト変数を前記現在時間と等しい値に設定することと、
前記モバイル装置により、記憶されたサーバのリストからサーバのサブセットを選択することと、
前記モバイル装置により、前記サーバのサブセットの各サーバの公開鍵を使用して暗号化された数値を含むプローブリクエストフレームを使用して前記アクセスポイントに対してチャレンジリクエストを送信することと、
前記アクセスポイントにより、前記サーバのサブセットに対して前記チャレンジリクエストを転送することであって、前記サーバのサブセットの各サーバが前記アクセスポイントに返送された結果メッセージに含まれるべき暗号化された値を生成するように前記チャレンジリクエストにおいて示される数値に対して前記チャレンジリクエストに示される関数を適用する、転送することと、
前記アクセスポイントにより、前記各サーバから前記結果メッセージを受信した後に前記モバイル装置に対して前記結果メッセージを転送することと、
前記モバイル装置により、前記結果メッセージにおける前記暗号化された値に基づいて、インターネット接続が成功裏に検証されたことを判定すること
という動作を実行することによってチャレンジレスポンス検出を実行することをさらに備える、請求項１に記載の方法。
【請求項４】
前記アクセスポイントが、前記チャレンジリクエストからユーザエージェント情報を削除する、請求項３に記載の方法。
【請求項５】
コンピュータによって実行されたときに前記コンピュータにモバイル装置のインターネット接続性を検証するために受動的ネットワーク検出のための方法を実行させる命令を記憶する持続性コンピュータ読み取り可能な記憶媒体において、前記方法が、
モバイル装置により、タイムアウト変数を現在時間と等しい値に設定することと、
前記モバイル装置により、ＷｉＦｉサービスのアクセスポイントからのビーコンフレームを受信することと、
前記モバイル装置により、前記ビーコンフレームがサーバの署名されたタイミング情報を含み且つタイムアウト変数の値が最大時間未満であると判定することと、
前記署名されたタイミング情報から抽出された暗号化された時間値を復号するために、前記サーバの公開鍵を使用することによって復号された時間値を判定することと、
復号された時間値が前記署名されたタイミング情報から抽出された時間値と等しく且つ時間値が前記現在時間から時間ウィンドウを減算したものよりも大きいと判定することと、
前記モバイル装置により、ＷｉＦｉサービスのインターネット接続性検証が成功したと判定することとを備える、記憶媒体。
【請求項６】
前記アクセスポイントが、前記サーバから前記署名されたタイミング情報を取得し、ビーコンフレームにおいて前記署名されたタイミング情報をブロードキャストする、請求項５に記載の記憶媒体。
【請求項７】
前記方法が、
前記モバイル装置により、タイムアウト変数を前記現在時間と等しい値に設定することと、
前記モバイル装置により、記憶されたサーバのリストからサーバのサブセットを選択することと、
前記モバイル装置により、前記サーバのサブセットの各サーバの公開鍵を使用して暗号化された数値を含むプローブリクエストフレームを使用して前記アクセスポイントに対してチャレンジリクエストを送信することと、
前記アクセスポイントにより、前記サーバのサブセットに対して前記チャレンジリクエストを転送することであって、前記サーバのサブセットの各サーバが前記アクセスポイントに返送された結果メッセージに含まれるべき暗号化された値を生成するように前記チャレンジリクエストにおいて示される数値に対して前記チャレンジリクエストに示される関数を適用する、転送することと、
前記アクセスポイントにより、前記各サーバから前記結果メッセージを受信した後に前記モバイル装置に対して前記結果メッセージを転送することと、
前記モバイル装置により、前記結果メッセージにおける前記暗号化された値に基づいて、インターネット接続が成功裏に検証されたことを判定すること
という動作を実行することによってチャレンジレスポンス検出を実行することをさらに備える、請求項５に記載の記憶媒体。
【請求項８】
コンピューティングシステムにおいて、
１つ以上のプロセッサと、
メモリと、
前記１つ以上のプロセッサによって実行されたときに前記コンピューティングシステムに方法を実行させる命令を記憶する前記１つ以上のプロセッサに接続された非一時的コンピュータ読み取り可能な媒体とを備え、前記方法が、
モバイル装置により、タイムアウト変数を現在時間と等しい値に設定することと、
前記モバイル装置により、ＷｉＦｉサービスのアクセスポイントからのビーコンフレームを受信することと、
前記モバイル装置により、前記ビーコンフレームがサーバの署名されたタイミング情報を含み且つタイムアウト変数の値が最大時間未満であると判定することと、
前記署名されたタイミング情報から抽出された暗号化された時間値を復号するために、前記サーバの公開鍵を使用することによって復号された時間値を判定することと、
復号された時間値が前記署名されたタイミング情報から抽出された時間値と等しく且つ時間値が前記現在時間から時間ウィンドウを減算したものよりも大きいと判定することと、
前記モバイル装置により、ＷｉＦｉサービスのインターネット接続性検証が成功したと判定することとを備える、コンピューティングシステム。
【請求項９】
前記アクセスポイントが、前記サーバから前記署名されたタイミング情報を取得し、ビーコンフレームにおいて前記署名されたタイミング情報をブロードキャストする、請求項８に記載のコンピューティングシステム。
【請求項１０】
前記方法が、
前記モバイル装置により、タイムアウト変数を前記現在時間と等しい値に設定することと、
前記モバイル装置により、記憶されたサーバのリストからサーバのサブセットを選択することと、
前記モバイル装置により、前記サーバのサブセットの各サーバの公開鍵を使用して暗号化された数値を含むプローブリクエストフレームを使用して前記アクセスポイントに対してチャレンジリクエストを送信することと、
前記アクセスポイントにより、前記サーバのサブセットに対して前記チャレンジリクエストを転送することであって、前記サーバのサブセットの各サーバが前記アクセスポイントに返送された結果メッセージに含まれるべき暗号化された値を生成するように前記チャレンジリクエストにおいて示される数値に対して前記チャレンジリクエストに示される関数を適用する、転送することと、
前記アクセスポイントにより、前記各サーバから前記結果メッセージを受信した後に前記モバイル装置に対して前記結果メッセージを転送することと、
前記モバイル装置により、前記結果メッセージにおける前記暗号化された値に基づいて、インターネット接続が成功裏に検証されたことを判定すること
という動作を実行することによってチャレンジレスポンス検出を実行することをさらに備える、請求項８に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、インターネット接続検出に関する。より具体的には、本開示は、高速、安全且つプライバシーフレンドリーな方法でインターネット接続性を判定する方法及びシステムに関する。
【背景技術】
【０００２】
モバイル装置のユーザは、ＷｉＦｉアクセスポイントに接続しようとすると、ユーザは、以下のような多くの疑問に直面する：１）ＷｉＦｉアクセスポイントがインターネットに適切に接続されているか？、２）ＷｉＦｉアクセスポイントがキャプティブポータルであるか？（例えば、サービス利用規約（ＴｏＳ）の受け入れを要求する）、３）このＷｉＦｉアクセスポイントを使用するためにユーザが料金を支払う必要があるか？現在、ユーザは、これらの疑問に対する回答を得るために、アクセスポイントに対してモバイル装置を最初に接続しなければならない。これは、厄介なアプローチであるばかりでなく、モバイル装置はまた、プロセスにおいて第三者サーバにも情報を明らかにする。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
課題を解決するための手段
本発明の１つの実施形態は、モバイル装置のインターネット接続性を検証するために受動的ネットワーク検出を実行するための方法を提供する。動作中において、システム（例えば、モバイル装置）は、タイムアウト変数を現在時間と等しい値に設定する。そして、システムは、ＷｉＦｉサービスのアクセスポイントからのビーコンフレームを受信する。システムは、ビーコンフレームがサーバの署名されたタイミング情報を含み且つタイムアウト変数の値が最大時間未満であると判定する。そして、システムは、署名されたタイミング情報から抽出された暗号化された時間値を復号するためにサーバの公開鍵を使用することによって復号された時間値を判定することができる。システムは、復号された時間値が署名されたタイミング情報から抽出された時間値と等しいと判定し、時間値が現在時間から時間ウィンドウを減算したものよりも大きいと判定し、それにより、ＷｉＦｉサービスのインターネット接続性検証が成功したと判定することができる。
【０００４】
この実施形態の１つの変形例において、アクセスポイントは、サーバから署名されたタイミング情報を取得し、ビーコンフレームにおいて署名されたタイミング情報をブロードキャストする。
【０００５】
この実施形態の１つの変形例において、システムは、チャレンジレスポンス検出を実行することができる。システムは、タイムアウト変数を現在時間と等しい値に設定する。そして、システムは、記憶されたサーバのリストからサーバのサブセットを選択する。システムは、プローブリクエストフレームを使用してアクセスポイントに対してチャレンジリクエストを送信することができる。プローブリクエストフレームは、サーバのサブセットのそれぞれのサーバの公開鍵を使用して暗号化された数値を含む。アクセスポイントは、サーバのサブセットに対してチャレンジリクエストを転送することができる。サーバのサブセットのそれぞれのサーバは、アクセスポイントに返送された結果メッセージに含まれる暗号化された値を生成するように、チャレンジリクエストに示された数値に対してチャレンジリクエストに示された関数を適用することができる。アクセスポイントは、各サーバから結果メッセージを受信した後、結果メッセージをモバイル装置に対して転送することができる。システムは、結果メッセージにおける暗号化された値に基づいて、インターネット接続が成功裏に検証されたことを判定することができる。
【０００６】
さらなる変形例において、アクセスポイントは、チャレンジリクエストからユーザエージェント情報を除去する。
【０００７】
この実施形態の変形例において、システムは、チャレンジレスポンス検出を実行する。システム（例えば、モバイル装置）は、ＤＮＳ検索を実行するために、アクセスポイントを介してＤＮＳサーバに対してリクエストを送信することができる。リクエストは、ＤＮＳサーバの公開鍵を使用して暗号化されたドメイン名を含む。アクセスポイントは、ＤＮＳサーバに対してリクエストを転送することができる。ＤＮＳサーバは、暗号化されたドメイン名を復号し、ドメイン名に対応する数値ＩＰアドレスを判定し、モバイル装置に対して転送するために数値ＩＰアドレスをアクセスポイントに対して送信する。モバイル装置は、数値ＩＰアドレスの受信に基づいて、インターネット接続が成功裏に検証されたことを判定することができる。
【０００８】
この実施形態の変形例において、システムは、能動的検出を実行する。システム（例えば、モバイル装置）は、タイムアウト変数を現在時間と等しい値に設定することができる。システムは、複数のサーバからサーバのサブセットをランダムに選択することができる。システムは、アクセスポイントを介してランダムに選択されたサーバのサブセットの各サーバに対してユーザエージェントを含まずにＨＴＴＰ  ＧＥＴリクエストを送信する。アクセスポイントは、ランダムに選択されたサーバのサブセットの各サーバに対してＨＴＴＰ  ＧＥＴリクエストを転送することができる。各サーバは、ＨＴＴＰ  ＲＥＰＬＹをアクセスポイントに対して送信することができ、アクセスポイントは、ＨＴＴＰ  ＲＥＰＬＹをモバイル装置に対して転送することができる。システムは、ＨＴＴＰ  ＲＥＰＬＹの受信及びタイムアウトの値が最大時間未満であることに基づいて、インターネット接続性検証が成功したことを判定することができる。
【０００９】
この実施形態の変形例において、ビーコンフレームは、サーバの署名されたタイミング情報、サービス利用規約及び支払いウェブサイトのユニフォームリソースロケータ（ＵＲＬ）を含む。
【００１０】
この実施形態の変形例において、サーバは、定期的な間隔で署名されたタイミング情報を発行する。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の実施形態にかかる、例示的なインターネット接続性検証システムを示す図である。
【図２】図２は、本発明の実施形態にかかる、能動的及び受動的技術の組み合わせを使用してインターネット接続性を検証するための例示的なプロセスを示すフローチャートである。
【図３Ａ】図３Ａは、本発明の実施形態にかかる、受動的ネットワーク検出のための例示的なプロセスを示すフローチャートである。
【図３Ｂ】図３Ｂは、ヘッダ及びペイロードを有する例示的なビーコンフレームを示している。
【図４】図４は、ヘッダ及びペイロードを有する例示的なプローブリクエストフレームを示している。
【図５Ａ】図５Ａは、本発明の実施形態にかかる、チャレンジレスポンス検出のための例示的なプロセスを示すフローチャートである。
【図５Ｂ】図５Ｂは、本発明の実施形態にかかる、チャレンジレスポンス検出のための例示的なプロセスを示すフローチャートである。
【図６】図６は、本発明の実施形態にかかる、セットダイバーシティによる能動的検出のための例示的なプロセスを示すフローチャートである。
【図７】図７は、本発明の実施形態にかかる、インターネット接続性検証システムにおける例示的なモバイル装置を示している。
【図８】図８は、本発明の実施形態にかかる、インターネット接続性検証システムにおける例示的なアクセスポイントを示している。
【図９】図９は、本発明の実施形態にかかる、インターネット接続性検証システムにおける例示的なサーバを示している。
【発明を実施するための形態】
【００１２】
図面において、同様の参照符号は、同じ図要素を指している。
【００１３】
以下の説明は、当業者が本発明を作製して使用するのを可能とするために提示され、特定の用途及びその要件の文脈において提供される。開示された実施形態に対する様々な変更は、当業者にとって容易に明らかであり、本願明細書において定義される一般的な原理は、本発明の精神及び範囲から逸脱することなく、他の実施形態及び用途に適用されることができる。それゆえに、本発明は、示された実施形態に限定されるものではなく、本願明細書に開示された原理及び特徴と一致する最も広い範囲が与えられるべきである。
【００１４】
この詳細な説明に記載されたデータ構造及びコードは、通常、コンピュータシステムによって使用するためにコード及び／又はデータを記憶することができる任意の装置又は媒体とすることができるコンピュータ読み取り可能な記憶媒体に記憶される。コンピュータ読み取り可能な記憶媒体は、限定されるものではないが、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多用途ディスク又はディジタルビデオディスク）などの磁気及び光記憶装置、又は、現在知られているか若しくは後に開発されるコンピュータ読み取り可能な媒体を記憶することができる他の媒体を含む。
【００１５】
概説
本発明の実施形態は、高速、安全且つプライバシーフレンドリーな方法でインターネット接続性を判定するためにモバイル装置についての複数の技術を提供することによってアクセスポイントにおけるインターネット接続性を検証するという問題を解決する。インターネット接続性検証システムは、モバイル装置、アクセスポイント、及び、インターネット接続性を検証するための様々な技術をサポートするように構成された１つ以上のサーバを含むことができる。本開示は、受動的ネットワーク検出、チャレンジレスポンス検出及びセットダイバーシティによる能動的検出を含む、インターネット接続性を検証するためのこれらの複数の技術を記載する。
【００１６】
受動的ネットワーク検出は、モバイル装置がメッセージを送信することなくインターネット接続性を検証するのを可能とする。サーバは、暗号化された時間値を含む定期的な間隔で署名されたタイミング情報を発行することができる。アクセスポイントは、署名されたタイミング情報とともに、サービス利用規約及び支払いウェブサイトへのリンクを含むようにＷｉＦｉビーコンフレームをオーバーロードする。モバイル装置は、ビーコンフレームを受信し、サーバの公開鍵を使用して暗号化された時間値を復号することができる。復号が成功し且つ時間値が十分に新しい場合、インターネット検証は成功である。
【００１７】
チャレンジレスポンス検出は、モバイル装置が、インターネット接続を確立する前に、アクセスポイント及び／又はサーバにチャレンジしてインターネット接続性を証明するためにＷｉＦｉプローブリクエストを使用するのを可能とする。アクセスポイントは、チャレンジリクエストを１つ以上のサーバに対して転送する。サーバは、チャレンジを実行し、その結果をアクセスポイントに対して送信することができ、アクセスポイントは、サービス利用規約及び支払いウェブサイトデータを有するチャレンジ結果をモバイル装置に対して返送する。モバイル装置は、サーバがチャレンジを成功裏に実行し、それによってインターネット接続性を検証したことを確認する。
【００１８】
能動的検出は、モバイル装置が、インターネット接続性サーバのクラウドソースプールからの複数のランダムに選択されたサーバに対してＨＴＴＰ  ＧＥＴリクエストを送信し、複数のサーバからＨＴＴＰ  ＲＥＰＬＹメッセージを受信してインターネット接続性を検証するのを可能とする。
【００１９】
インターネット接続性検出
現在、モバイル装置は、ＷｉＦｉアクセスポイントに接続し、ＨＴＴＰ  ＧＥＴリクエストを使用してインターネット上の静的サーバから既知のコンテンツを取得するように試みることができる。このリクエストの目的は、インターネット接続性を検証することである。この方法は、モバイルオペレーティングシステム（例えば、ｉＯＳ及びＡｎｄｒｏｉｄ）並びにコンピュータオペレーティングシステム（例えば、Ｗｉｎｄｏｗｓ、Ｍａｃ  ＯＳ  Ｘ）で使用される。
【００２０】
アクセスポイントがキャプティブポータルである場合、アクセスポイントは、リクエストをインターセプトし、ＴｏＳ及び任意の支払い詳細を記載するウェブページを提供するウェブサーバにモバイル装置をリダイレクトする。実際には、アクセスポイントは、ＨＴＴＰ  ＧＥＴクエリをインターセプトしてリダイレクトサーバに対して転送するファイアウォールとして動作する。このリダイレクトサーバは、クライアントをキャプティブポータルにリダイレクトするためのＨＴＴＰステータスコード３０２を含む通常のＨＴＴＰレスポンスによって応答する。ポータルは、通常、会社のイントラネットに存在する。クライアントにとって、このプロセスは完全に透過的である。
【００２１】
アクセスポイントは、ユーザがＴｏＳを受け入れておそらくサービスに登録した後においてのみ、元のＨＴＴＰ  ＧＥＴリクエストを静的サーバに対して送信することができ、モバイル装置は、応答を受信することができる。応答が予想されるコンテンツと一致する場合、モバイル装置は、ネットワーク接続性が利用可能であると仮定することができる。
【００２２】
Ａｐｐｌｅ社、Ｇｏｏｇｌｅ社、Ｍｉｃｒｏｓｏｆｔ社などの第三者は、これらの静的サーバを操作する。モバイル装置がネットワーク接続性を確認するたびに、モバイル装置は、そのＩＰアドレス、接続時間及び時にはユーザエージェントをこれらの静的サーバにリークする。例えば、Ａｎｄｒｏｉｄ装置がネットワークに参加するたびに、装置は、７４．１２５．２３９．９９又は７４．１２５．２３９．１００に対してＨＴＴＰ  ＧＥＴリクエストを送信する。ＩＰｖ４を逆引き検索し、これらのＩＰアドレスの双方ともＧｏｏｇｌｅに解決される。
【００２３】
以下は、Ａｎｄｒｏｉｄ  ４．２．２の携帯電話からの発信ＨＴＴＰ  ＧＥＴリクエストの例である：
−−−−ＨＴＴＰ−リクエスト−開始−−−−
ＧＥＴ  ／ｇｅｎｅｒａｔｅ＿２０４  ＨＴＴＰ／１．１
ユーザエージェント：Ｄａｌｖｉｋ／１．６．０  （Ｌｉｎｕｘ（登録商標）；Ｕ；Ａｎｄｒｏｉｄ  ４．２．２；Ｎｅｘｕｓ  Ｓ  Ｂｕｉｌｄ／ＪＤＱ３９Ｅ）
ホスト：７４．１２５．２３９．９９
接続：キープアライブ
許容符号化：ｇｚｉｐ
−−−−−ＨＴＴＰ−リクエスト−終了−−−−−
応答例は、以下のとおりである：
−−−−ＨＴＴＰ−応答−開始−−−−
ＨＴＴＰ／１．１  ２０４  コンテンツなし
コンテンツ長：０
コンテンツ種類：テキスト／ｈｔｍｌ；ｃｈａｒｓｅｔ＝ＵＴＦ−８
日付：２０１３年８月２１日、水曜日、１８：２５：３１  ＧＭＴ
サーバ：ＧＦＥ／２．０
−−−−−ＨＴＴＰ−応答−終了−−−−−
【００２４】
ユーザがＷｉＦｉネットワークに参加したとき、Ｇｏｏｇｌｅは、ユーザに関する情報を学習することができる。モバイル装置は、そのＩＰアドレス、接続時間、及び、電話機のビルドバージョン、Ａｎｄｒｏｉｄバージョン及びモデル（例えば、「ユーザエージェント：Ｄａｌｖｉｋ／１．６．０（Ｌｉｎｕｘ（登録商標）；Ｕ；Ａｎｄｒｏｉｄ  ４．２．２；Ｎｅｘｕｓ  Ｓ  Ｂｕｉｌｄ／ＪＤＱ３９Ｅ）」）を含むそのユーザエージェントを明らかにすることができる。ユーザエージェントは、ウェブブラウザ及び他のアプリケーションがウェブサーバに自己を識別させるために送信する短い文字列である。クッキー情報は送信されず、ユーザエージェントは体系的に送信されないことに留意されたい。これは、携帯電話（例えば、ｉＰｈｏｎｅ（登録商標）、Ａｎｄｒｏｉｄ、Ｗｉｎｄｏｗｓ）、ラップトップ及びＷｉＦｉ機能を備えた他のパーソナルコンピュータなど、自動ネットワーク検出を使用するあらゆる装置に適用される。
【００２５】
ＩＰアドレスの逆引き地理位置情報検索を実行し、ＩＰアドレスに関連するおおよその位置、それゆえに、ＩＰアドレスの背後にあるユーザの位置を取得することができる。これらの逆引き検索は、ますます正確になり、通常は郵便番号レベル情報を与える。すなわち、ネットワーク接続性サーバがユーザの場所を詳細に学習することができる可能性がある。
【００２６】
要約すると、従来のインターネット接続性検出プロセスは、遅く、プライバシーに影響し、安全ではない。ユーザが接続性の詳細を検出する前に、ユーザがアクセスポイントに接続しなければならないことから、従来のプロセスは遅い。ユーザがプロセスにおいていくつかの情報を明らかにしなければならないことから、従来のプロセスはまた、プライバシーに影響し、全てのメッセージが平文で交換されることから、従来のプロセスは安全ではない。
【００２７】
以下の開示は、従来のプロセスにおいてみられる多くの欠点を解消するシステムを記載する。特に、図３Ａに示される受動的ネットワーク検出技術により、システム（例えば、モバイル装置）は、アクセスポイントとの関連付けに先立ってインターネット接続性を検証する完全受動的方法を採用することができる。図５Ａ−図５Ｂに示されるチャレンジレスポンス検出技術により、システムは、インターネット接続性証明を取得するためにＷｉＦｉプローブ要求においてチャレンジを含むことができる一方で、プライバシーを維持しながらインターネット接続性証明に関するセキュリティ保証を向上させることができる。図６に示されるセットダイバーシティ技術による能動的検出により、システムは、インターネット接続性検出において使用される静的インターネットサーバに関するエンドユーザのプライバシーを保護することができる。これらの技術により、エンドユーザは、インターネット接続性をより迅速且つ安全に、それらのプライバシーを漏らすことなく検証することができる。開示された技術は、自動化されることができ、モバイルハンドセット及びアクセスポイントにおけるＷｉＦｉ  ８０２．１１仕様を少し変更するのみでよい。さらに、リダイレクトの必要がないことから、キャプティブポータルを通知するための開示された技術は、悪意のあるクライアントによる回避をより困難にしている。
【００２８】
例示的なインターネット接続性検証システム
図１は、本発明の実施形態にかかる、例示的なインターネット接続性検証システム１００を示す図である。インターネット接続性検証システム１００は、ネットワーク１１０を介して１つ以上のサーバ１０６−１０８と通信するためにアクセスポイント１０４を使用する（例えば、通信する又はアクセスする）モバイル装置１０２を含むことができる。モバイル装置１０２は、携帯電話、ラップトップ、ビデオゲームコンソール、又は、インターネットに無線で接続するためのハードウェア及び／又はソフトウェアを備えた任意の他のコンピューティング装置などの任意のコンピューティング装置とすることができる。
【００２９】
アクセスポイント１０４は、ＩＥＥＥ  ８０２．１１などの無線規格を使用してインターネットなどのネットワークへの無線アクセスを提供する。アクセスポイントは、モバイル装置がＷｉＦｉ又は関連する規格を使用して有線ネットワークに接続するのを可能とするネットワークハードウェア装置とすることができる。アクセスポイントは、ルータに接続されたスタンドアロン装置とすることができ、又は、アクセスポイントはまた、ルータの一体要素とすることができる。
【００３０】
ユーザ１１２は、インターネットにアクセスしようとするためにモバイル装置１０２を操作することができる。モバイル装置１０２は、インターネット接続性を検証するためにサーバ１０６−１０８と通信することができる。インターネット接続性を検証するための動作を実行するために、モバイル装置１０２にインストールされた１つ以上の要素が存在してもよい。
【００３１】
サーバ１０６−１０８は、インターネット上でアクセス可能であり且つインターネット接続性を確認するのに役立つサーバのセットＳ＝｛Ｓ１、・・・、Ｓｎ｝を表すことができる。いくつかの実施形態において、サーバは、結託しない（例えば、互いに情報を共有しない）。サーバは、ＤＮＳサーバ、ウェブサーバ又は任意の他の種類のサーバとすることができる。例えば、Ｓ１は、Ｍｉｃｒｏｓｏｆｔネットワーク接続性ステータスインジケータ（ＮＣＳＩ）サーバとすることができる。個人も同様にサーバを操作することができる。モバイル装置は、Ｓのサブセットに関するデータを取得して記憶することができる。２つのサーバが図１に示されているものの、インターネット接続性を検証するのに役立つために利用可能な任意数のサーバが存在してもよい。
【００３２】
サーバは、クライアントからのＨＴＴＰリクエストを受け入れて応答するためにウェブサーバソフトウェアを含むことができる。サーバはまた、インターネット接続性を検証するために本願明細書に開示された様々な技術を容易とするソフトウェア、ハードウェア、及び／又は、ハードウェア及びソフトウェアの組み合わせを含むこともできる。例えば、サーバは、ディジタル署名されたタイミング情報を公開し、公開鍵インフラストラクチャに関連するサーバの公開鍵及び秘密鍵を管理し、及び／又は、チャレンジリクエストに応答するためのソフトウェア及び／又はハードウェア要素を含むことができる。
【００３３】
インターネット接続性の検証
図２は、本発明の実施形態にかかる、能動的及び受動的技術の組み合わせを使用してインターネット接続性を検証するための例示的なプロセスを示すフローチャートである。示されたプロセスは、図３−図６に提示された異なるスキームの利点を組み合わせた一般化されたプロトコルを表している。本発明の実施形態は、図２に示された動作に限定されるものではなく、いくつかの実施形態は、図２に示されたものとは異なる順序で又は異なる動作で図２の動作を実行することができる。
【００３４】
図２において示されるように、システムは、受動的ネットワーク検出を最初に実行することができる（動作２０２）。例えば、システムは、図３に示されるような受動的ネットワーク検出を実行することができる。システムは、受動的ネットワーク検出が成功したかどうかを判定することができる（動作２０４）。成功した場合、システムは、インターネット接続性を検証し、システムは、サービス利用規約及び支払情報を表示することができる（動作２０６）。そして、ユーザは、サービス利用規約に同意して支払いを行った後、オンラインサービスを利用することができる。
【００３５】
受動的ネットワーク検出が失敗した（例えば、互換性のない結果）場合、システムは、チャレンジレスポンス検出を実行することができる（動作２０８）。例えば、システムは、図５Ａ−図５Ｂに示されるようなチャレンジレスポンス検出を実行することができる。チャレンジレスポンス検出が成功したとシステムが判定した場合（動作２１０）、システムは、インターネット接続性を検証し、システムは、サービス利用規約及び支払情報を表示する（動作２１２）。ユーザは、利用規約に同意して支払いを行った後、オンラインサービスを利用することができる。
【００３６】
チャレンジレスポンス検出が失敗した（例えば、互換性のない結果）場合、システムは、能動的検出を実行することができる（動作２１４）。例えば、システムは、図５Ａ−図５Ｂに示されるような能動的検出を実行することができる。システムは、能動的検出が成功したかどうかを判定することができる（動作２１６）。成功した場合、システムは、インターネット接続性を成功裏に検証し、システムは、サービス利用規約及び支払情報を表示する（動作２１８）。ユーザは、利用規約に同意して支払いを行った後、オンラインソースを利用することができる。
【００３７】
能動的検出が失敗した（例えば、互換性がない）場合、システムは、モバイル装置がインターネットに接続されていないことを示す情報を表示し、ユーザ入力に応答してインターネットへの接続試行を終了又は再開する（動作２２０）。
【００３８】
図２の動作を表す擬似コードは、以下のとおりである：
入力：Ｓ、ｋ、ＴＭａｘ、ＴＷｉｎｄｏｗ、ｆ（）
出力：ＴｏＳ／支払情報又は接続されない
ｐａｓｓｉｖｅＤｉｓｃｏｖｅｒｙ（Ｓ、ｋ、ＴＭａｘ、ＴＷｉｎｄｏｗ）を以下のように切り替える：
ケース１：／／インターネットに接続されている
表示（ＴｏＳ／支払情報）
終了（）
ケース０：／／受動的検出と互換性がない
ｃｈａｌｌｅｎｇｅＲｅｓｐｏｎｓｅＤｉｓｃｏｖｅｒｙ（Ｓ、ｋ、ｆ（）、ＴＭａｘ）を以下のように切り替える：
ケース１：／／インターネットに接続されている
表示（ＴｏＳ／支払情報）
終了（）
ケース０：／／チャレンジレスポンス検出と互換性がない
ａｃｔｉｖｅＤｉｓｃｏｖｅｒｙ（Ｓ、ｋ、ＴＭａｘ）の場合、
／／インターネットに接続されている
表示（ＴｏＳ／支払情報）
表示（インターネットに接続されていない）
【００３９】
受動的ネットワーク検出
図３Ａは、本発明の実施形態にかかる、受動的ネットワーク検出のための例示的なプロセスを示すフローチャートである。本発明の実施形態は、図３Ａに示される動作に限定されるものではなく、いくつかの実施形態は、図３Ａに示されたものとは異なる順序で又は異なる動作で図３Ａの動作を実行することができる。
【００４０】
この技術は、ネットワーク状態についてユーザに通知するためにビーコンフレームなどのＩＥＥＥ  ８０２．１１管理フレームを使用する。図３Ｂは、ヘッダ及びペイロードを有する例示的なビーコンフレーム３００を示している。アクセスポイントは、それらの存在をモバイル装置に通知するために定期的な間隔（例えば、１００ｍｓ毎）にビーコンフレームを送信することができる。間隔が短いほど、モバイル装置とアクセスポイントとの間の関連付けの速度が速くなる。しかしながら、短い間隔はまた、利用可能な帯域幅がより小さくなることを意味し、システムは、ビーコンパケットのサイズを小さくする必要があることがある。結果として、本発明者らは、ビーコンフォーマットの大きなオーバーヘッドを発生させない解決策を模索している。
【００４１】
余分な情報によってビーコンをオーバーロードすることは可能である。例えば、システムは、追加のデータを共有するためにＳＳＩＤフィールド３０２の未使用バイト又は任意の情報要素フィールド３０４を使用することができる。システムは、約２８０バイトの情報を追加して全体的なオーバーヘッドを最小化するために利用可能なスペースを使用することができる。
【００４２】
受動的ネットワーク検出技術により、アクセスポイントからのメッセージは、インターネット接続性について暗黙的にユーザに通知する。アクセスポイントは、ＴｏＳ及び支払いウェブサイトへのリンクをＷｉＦｉビーコンフレームに追加することができる。換言すれば、モバイル装置は、アクセスポイントに接続する前に且つメッセージを送信することなく、情報に基づいた判定を行うことができる。
【００４３】
この技術への入力は、サーバのセットＳ、サーバｋ、最大タイムアウト時間ＴＭａｘ及び時間ウィンドウＴＷｉｎｄｏｗを含むことができる。この技術の出力は、成功を示す１、失敗を示す−１、又は、互換性のない結果を示す０を含むことができる。
【００４４】
図３Ａに示されるように、セットＳにおけるサーバｋ（例えば、ｓｅｒｖｅｒＵＲＬによって表される）は、定期的な間隔（例えば、ｔ秒毎）に署名されたタイミング情報を公開する（動作３０２）。署名されたタイミング情報は、ＴｓｅｒｖｅｒＵＲＬ＝＜ｓｅｒｖｅｒＵＲＬ、ｔ、Ｐｂ、Ｅｎｃ［ｔ］Ｐｒ＞とすることができる。ここで、ｓｅｒｖｅｒＵＲＬは、サーバ識別子として機能するＵＲＬであり、Ｐｂは、ｓｅｒｖｅｒＵＲＬの公開鍵であり、Ｐｒは、ｓｅｒｖｅｒＵＲＬの秘密鍵であり、Ｅｎｃ［ｔ］Ｐｒは、秘密鍵Ｐｒによる現在時間ｔの暗号化である。アクセスポイントは、ｓｅｒｖｅｒＵＲＬに関連付けられたサーバから署名された情報ＴｓｅｒｖｅｒＵＲＬを引き出す（例えば、取得する又は検索する）（動作３０４）。アクセスポイントは、ＴｏＳ、接続性の証明（例えば、ＴｓｅｒｖｅｒＵＲＬ）及び支払いウェブサイト（例えば、キャプティブポータル）へのリンクを含むようにＷｉＦｉビーコンフレームをオーバーロードすることによってＴｓｅｒｖｅｒＵＲＬをブロードキャストすることができる（動作３０６）。例えば、Ｂｅａｃｏｎ＝ＴｓｅｒｖｅｒＵＲＬ｜｜ＴｏＳ｜｜ｐａｙｍｅｎｔＵＲＬである。いくつかの実施形態においてはＴｏＳ及びｐａｙｍｅｎｔＵＲＬは任意であるものの、二重縦線は、ビーコンが、ＴｓｅｒｖｅｒＵＲＬ、ＴｏＳ及びｐａｙｍｅｎｔＵＲＬを含むことを示している。
【００４５】
そして、モバイル装置は、タイムアウト＝ｃｕｒｒｅｎｔＴｉｍｅを設定することができる（動作３０８）。シンボルｃｕｒｒｅｎｔＴｉｍｅは、動作を行った時点の現在時間を表すことに留意されたい。
【００４６】
モバイル装置は、ＷｉＦｉネットワーク上で傾聴することができる。モバイル装置がビーコンフレームを受信した場合（動作３１０）、モバイル装置は、以下のプロセスを実行する：
ｆｒａｍｅＳｔｕｆｆｅｄ（）及び（タイムアウト＜ＴＭａｘ）である場合
Ｄｅｃ［Ｅｎｃ［ｔ］Ｐｒ］Ｐｂ＝＝ｔ及びｃｕｒｒｅｎｔＴｉｍｅ−ＴＷｉｎｄｏｗ＜ｔ＜ｃｕｒｒｅｎｔＴｉｍｅである場合
１を返す／／成功
その他の場合
−１を返す／／失敗
その他（タイムアウト＞＝ＴＭａｘ）である場合
０を返す／／互換性がない
【００４７】
図３Ａに示されるように、モバイル装置がビーコンフレームを受信した場合、モバイル装置は、ｆｒａｍｅＳｔｕｆｆｅｄ（）が真値及びタイムアウト＜ＴＭａｘを返すかどうかを判定する（動作３１２）。いくつかの実施形態において、関数ｆｒａｍｅＳｔｕｆｆｅｄ（）は、ＷｉＦｉビーコンフレームが署名されたタイミング情報ＴｓｅｒｖｅｒＵＲＬを含む場合には真値を返すことができる。ｆｒａｍｅＳｔｕｆｆｅｄ（）が真値及びタイムアウト＜ＴＭａｘと評価された場合、モバイル装置は、Ｄｅｃ［Ｅｎｃ［ｔ］Ｐｒ］Ｐｂ＝＝ｔ及びｃｕｒｒｅｎｔＴｉｍｅ−ＴＷｉｎｄｏｗ＜ｔ＜ｃｕｒｒｅｎｔＴｉｍｅであるかどうかを判定する（動作３１４）。Ｄｅｃ［Ｅｎｃ［ｔ］Ｐｒ］Ｐｂは、暗号化された時間値を復号するためにサーバの公開鍵を使用したときに得られた値を表す。ここで、時間値は、サーバの対応する秘密鍵を使用してサーバによって暗号化される。すなわち、モバイル装置は、署名されたタイミング情報からサーバによって暗号化された時間値ｔを抽出し、暗号化された時間値を復号することができる。Ｄｅｃ［Ｅｎｃ［ｔ］Ｐｒ］Ｐｂ＝＝ｔ及びｃｕｒｒｅｎｔＴｉｍｅ−ＴＷｉｎｄｏｗ＜ｔ＜ｃｕｒｒｅｎｔＴｉｍｅである場合、インターネット接続性検証は成功し、いくつかの実施形態においては、方法（例えば、手順又は機能）は、成功を示すために値１を返すことができる（動作３１６）。時間ウィンドウによって示される所定の閾値内であるように時間値ｔが十分に最近である場合、ｃｕｒｒｅｎｔＴｉｍｅ−ＴＷｉｎｄｏｗ＜ｔ＜ｃｕｒｒｅｎｔＴｉｍｅが真であることに留意されたい。
【００４８】
そうでない場合、Ｄｅｃ［Ｅｎｃ［ｔ］Ｐｒ］Ｐｂ＝＝ｔ及びｃｕｒｒｅｎｔＴｉｍｅ−ＴＷｉｎｄｏｗ＜ｔ＜ｃｕｒｒｅｎｔＴｉｍｅが双方とも真でない場合、方法は失敗であり、いくつかの実施形態においては、方法（例えば、手順又は機能）は、失敗を示すために値−１を返すことができる（動作３１８）。
【００４９】
ｆｒａｍｅＳｔｕｆｆｅｄ（）及びタイムアウト＜ＴＭａｘが双方とも真でない場合、モバイル装置は、タイムアウト≧ＴＭａｘであるかどうかを判定する（動作３２０）。タイムアウト≧ＴＭａｘである場合、方法（例えば、手順又は機能）は、互換性のない結果を示すために値０を返すことができる（動作３２２）。
【００５０】
この技術により、サーバのタイミング情報の暗号化は、セキュリティを保証する。モバイル装置は、接続性情報を検証するために何らメッセージを送信する必要がないことから、ユーザのプライバシーは保証される。３つの技術のうち、受動的ネットワーク検出は、セキュリティ、プライバシー及び速度の最良のトレードオフを提供する。ＴＷｉｎｄｏｗは、配信された署名の鮮度（例えば、時間的近接度）に関してモバイル装置がどの程度許容されるかを示すパラメータである。例えば、より厳重なセキュリティポリシーを有する装置は、ＴＷｉｎｄｏｗを低い値に設定し、最後の５秒間からインターネット接続性の有効な証明を要求することができる。より緩和されたセキュリティポリシーを有する装置は、最後の１時間からの証明のみを要求することができる。いくつかの実施形態において、システムは、オーバーヘッド（例えば、２５６ビット）を低減するために、ＲＳＡ署名（例えば、２０４８ビット）又は楕円曲線ディジタル署名アルゴリズム（ＥＣＤＳＡ）を使用することができる。双方とも、ビーコンフレームの２５６Ｂ情報要素フィールドに適合する。
【００５１】
いくつかの実施形態において、システムは、鍵付きハッシュメッセージ認証コード（ＨＭＡＣ）を利用することができる。モバイル装置及びＳにおけるサーバｓが秘密鍵Ｋを共有していると仮定する。これは、モバイル装置とサーバｓとの間の従来の鍵確立技術（例えば、トランスポートレイヤセキュリティ（ＴＬＳ）プロトコルバージョン１．２におけるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎなど）を使用して行うことができる。例えば、Ｆａｃｅｂｏｏｋにログインしたユーザは、Ｆａｃｅｂｏｏｋとそのような秘密を共有することができる。そして、サーバは、＜サーバ、ＨＭＡＣ（ｔ）Ｋ＞を生成することができる。アクセスポイントは、そのビーコンフレームにおけるそのようなメッセージを転送する。秘密鍵Ｋを有するモバイル装置がＨＭＡＣを検証することができる場合、モバイル装置は、インターネット接続性があることを確認する。
【００５２】
いくつかの実施形態において、システムは、モバイル装置に対してＷｉＦｉパスワードを通信するためにＷｉＦｉビーコンのスタッフィングを利用することができる。そして、モバイル装置は、アクセスポイントと秘密鍵を確立して暗号化されたＷｉＦｉ保護アクセス（ＷＰＡ）ネットワークを取得するためにパスワードを使用することができる。これは、受動的な敵による盗聴を打ち負かす。
【００５３】
チャレンジレスポンス検出
図４は、システムがチャレンジレスポンス検出技術を実行するために使用するヘッダ及びペイロードを有する例示的なプローブリクエストフレーム４００を示している。プローブリクエストフレームは、サイズが２４バイトであるＭＡＣフィールドと、可変サイズのＳＳＩＤフィールド４０２と、可変サイズのレートフィールド４０４と、サイズが４バイトであるＦＣＳフィールドとを含むことができる。チャレンジレスポンス検出技術は、ネットワーク状態についてユーザに通知するためにＩＥＥＥ  ８０２．１１管理フレームを使用する。様々な管理フレームがあり、この技術は、プローブリクエストフレーム及びプローブ応答フレームを使用する。
【００５４】
モバイル装置は、それらの存在を通知し、アクセスポイントとの関連付けを探索するためにプローブリクエストを送信することができる。プローブ応答フレームは、ビーコンフレームとほぼ同じフォーマットを有し、アクセスポイントは、プローブリクエストに応答するためにプローブ応答フレームを使用することができる。システムは、ＳＳＩＤフィールド４０２の未使用バイト又はレートフィールド４０４を再生することによってプローブリクエストフレームをオーバーロードすることができる。例えば、システムは、約２８０バイトの情報を追加することができる。
【００５５】
図５Ａ−図５Ｂは、本発明の実施形態にかかる、チャレンジレスポンス検出のための例示的なプロセスを示すフローチャートである。本発明の実施形態は、図５Ａ−図５Ｂに示される動作に限定されるものではなく、いくつかの実施形態は、図５Ａ−図５Ｂに示されたものとは異なる順序で又は異なる動作で図５Ａ−図５Ｂの動作を実行することができる。
【００５６】
この技術により、モバイル装置は、完全なインターネット接続を確立する前に、インターネット接続性（及びおそらく他の情報）を証明するためにＷｉＦｉアクセスポイントにチャレンジするためにＷｉＦｉプローブリクエストを使用する。アクセスポイントは、それらのＷｉＦｉプローブ応答に情報を追加することによってチャレンジに応答することができる。モバイル装置は、インターネット接続性を検証する前にアクセスポイントに接続する必要はなく、アクセスポイントは、偽のインターネット接続性応答を偽装することはできない。
【００５７】
この技術のための入力は、サーバのセットＳ、記憶されたサーバＳのリストからランダムに選択するためのサーバの数を示す値ｋ、関数ｆ（）及び最大タイムアウト時間ＴＭａｘを含むことができる。この技術の出力は、インターネット接続性を検証する際に成功を示す１、インターネット接続性を検証する際に失敗を示す−１、又は、互換性のない結果を示す０とすることができる。
【００５８】
図５に示されるように、モバイル装置は、タイムアウトをｃｕｒｒｅｎｔＴｉｍｅの値に最初に設定する（動作５０２）。そして、モバイル装置は、サーバＳのローカルに記憶されているリスト（例えば、又は設定）からランダムにｋ個のサーバ｛ｓｅｒｖｅｒＵＲＬ｝ｋを選択する（動作５０４）。モバイル装置は、以下のようにプローブリクエストフレームを使用してアクセスポイントに対してチャレンジリクエストＣを送信することができる：Ｃ＝＜｛ｓｅｒｖｅｒＵＲＬ｝ｋ、ｆ（）、｛Ｅｎｃ［ＲＮＤ］Ｐｂｋ｝ｋ＞。ここで、｛ｓｅｒｖｅｒＵＲＬ｝ｋは、ｋ個のウェブサーバのＵＲＬを表す。Ｐｂｋは、ｓｅｒｖｅｒＵＲＬ  ｋの公開鍵（例えば、ｓｅｒｖｅｒＵＲＬ  ｋと関連付けられた各サーバの公開鍵）である。ＲＮＤは、乱数であり、｛Ｅｎｃ［ＲＮＤ］Ｐｂｋ｝ｋは、ｓｅｒｖｅｒＵＲＬ  ｋの公開鍵Ｐｂｋ（例えば、ｓｅｒｖｅｒＵＲＬ  ｋと関連付けられた各サーバの公開鍵）を使用したｋ個の非対称暗号化であり、ｆ（ｘ）は、例えばｆ（ｘ）＝ｘ＋１などの関数である（動作５０６）。
【００５９】
すなわち、モバイル装置は、各サーバの公開鍵を使用してランダム値を暗号化し、暗号化された値を復号して結果を得るためにその値によって計算を実行するようにサーバにチャレンジし、その結果を暗号化してモバイル装置に対して返送する。いくつかの実施形態において、モバイル装置は、各サーバについて異なる乱数を送信し、各乱数と各サーバを関連付けるデータを保持することができる。
【００６０】
アクセスポイントは、ｋ個のサーバ（例えば、ｓｅｒｖｅｒＵＲＬに関連付けられたサーバ）に対してチャレンジリクエストＣを転送することができる（動作５０８）。いくつかの実施形態において、アクセスポイントは、リクエストからＩＰアドレス及び／又はユーザエージェントデータ及び／又は他の情報を除去することができる。
【００６１】
各ｓｅｒｖｅｒＵＲＬ  ｋは、メッセージ（例えば、チャレンジリクエスト）を復号し、ＲＮＤを取得し、ｆ（ＲＮＤ）を計算し、ｆ（ＲＮＤ）を暗号化（例えば、Ｅｎｃ［ｆ（ＲＮＤ）］Ｐｂｋ）し、アクセスポイントに対して結果メッセージＲｋ＝＜ｓｅｒｖｅｒＵＲＬｋ、Ｅｎｃ［ｆ（ＲＮＤ）］Ｐｂｋ＞を返送する（動作５１０）。
【００６２】
アクセスポイントは、アクセスポイントが各サーバから受信するＲｋを（例えば、キャプティブポータルについての）ＴｏＳ及び支払いウェブサイトとともにプローブ応答フレームの内部においてモバイル装置に対して転送し、それゆえに、インターネット接続の証明は、以下のように能動的である：
ＰｒｏｂｅＲｅｓｐｏｎｓｅ＝Ｒｋ｜｜ＴｏＳ｜｜ｐａｙｍｅｎｔＵＲＬ（動作５１２）。
【００６３】
モバイル装置は、擬似コードで表現された以下の動作を実行する：
（モバイル装置が詰まったフレームを受信する）且つ（タイムアウト＜ＴＭａｘ）である場合
ｔｅｍｐ＝Ｅｎｃ［ｆ（ＲＮＤ）］Ｐｂｋ
Ｒｋ［Ｅｎｃ［ｆ（ＲＮＤ）］Ｐｂｋ］＝＝ｔｅｍｐである場合
１を返す／／成功
その他の場合
−１を返す／／失敗
その他（モバイル装置が詰まったフレームを受信しなかった）且つ（タイムアウト＜ＴＭａｘ）である場合
動作５０４に戻る
その他（タイムアウト≧ＴＭａｘ）である場合
０を返す／／互換性がない
すなわち、モバイル装置は、モバイル装置が詰まったフレームを受信し且つタイムアウト＜ＴＭａｘであるかどうかを判定する（動作５１４）。モバイル装置が詰まったフレームを受信し且つタイムアウト＜ＴＭａｘである場合、モバイル装置は、Ｅｎｃ［ｆ（ＲＮＤ）］Ｐｂｋとなるようにｔｅｍｐの値を設定する（動作５１６）。そして、モバイル装置は、Ｒｋ［Ｅｎｃ［ｆ（ＲＮＤ）］Ｐｂｋ］（例えば、ＲｋにおけるＥｎｃ［ｆ（ＲＮＤ）］Ｐｂｋの値）がｔｅｍｐと等しいかどうかを判定する（動作５１８）。Ｒｋ［Ｅｎｃ［ｆ（ＲＮＤ）］Ｐｂｋ］がｔｅｍｐと等しい場合、方法は成功し、いくつかの実施形態において、方法（例えば、手順又は機能）は、成功を示すために値１を返すことができる（動作５２０）。Ｒｋ［Ｅｎｃ［ｆ（ＲＮＤ）］Ｐｂｋ］がｔｅｍｐと等しくない場合、方法は成功せず、いくつかの実施形態において、方法（例えば、手順又は機能）は、失敗を示すために値−１を返すことができる（動作５２２）。
【００６４】
モバイル装置が詰まったフレームを受信せず且つタイムアウト＜ＴＭａｘである場合（動作５２４）、プロセスは、動作５０４に戻ることによって継続する（動作５２６）。モバイル装置がタイムアウト≧ＴＭａｘであると判定した場合（動作５２８）、方法はタイムアウトし、いくつかの実施形態において、方法（例えば、手順又は機能）は、互換性のない結果を示すために値０を返すことができる（動作５３０）。
【００６５】
セキュリティは、チャレンジレスポンスプロトコルによって保証される。ユーザプライバシーは、体系的に同じものの代わりに一連のサーバを接触させることによって保証される。多くの代替チャレンジレスポンスのアプローチがある。１つの実施形態において、モバイル装置は、ｆ（）＝「特定のサーバのＩＰアドレスが何であるか」によってＤＮＳ検索を実行するようにアクセスポイントにリクエストする。ここで、ＲＮＤは、ドメイン名を含み、復号するためにのみｓｅｒｖｅｒＵＲＬに関連付けられたサーバ（例えば、ＤＮＳサーバ）について暗号化される。モバイル装置が以前の検索からそのドメイン名のＩＰアドレスに関する情報を既に有していると仮定すると、アクセスポイントは、ＲＮＤを復号して正確なＩＰを取得するようにｓｅｒｖｅｒＵＲＬに関連付けられたサーバ（例えば、ＤＮＳサーバ）にリクエストする。
【００６６】
いくつかの実施形態において、サーバｋは、モバイルクライアントによって提供され且つメッセージＣ＝＜｛Ｐｂｋｍ、ｓｅｒｖｅｒＵＲＬ｝ｋ、ｆ（）、｛Ｅｎｃ［ＲＮＤ］Ｐｂｋ｝ｋ＞内のアクセスポイントによってサーバｋに対して転送された公開鍵を使用してｆ（ＲＮＤ）を暗号化する。検証のために、モバイル装置は、受信したｆ（ＲＮＤ）の値を単に復号し、それが正確に計算されているかどうかを確認する。この実施形態は、ランダム化された公開鍵暗号化がモバイルクライアント又はサーバ又はその双方のいずれかによって使用される場合、特に有用である。
【００６７】
いくつかの実施形態において、ｓｅｒｖｅｒＵＲＬ（例えば、複数のサーバのＵＲＬ）に関連付けられたサーバは、受動的に関与し得る。例えば、チャレンジは、Ｃ＝＜｛ｓｅｒｖｅｒＵＲＬ｝ｋ、ｆ（ＲＮＤ）、｛Ｅｎｃ［ＲＮＤ］Ｐｂ｝ｋ＞とすることができる。ここで、ＲＮＤは、アクセスポイントに通知され、予想される応答は、Ｒ＝＜Ｅｎｃ［ｆ（ＲＮＤ）］Ｐｂ＞である。この場合、アクセスポイントは、応答を計算するためにｓｅｒｖｅｒＵＲＬに関連付けられたサーバにリクエストする必要がなく、その代わりに、ｓｅｒｖｅｒＵＲＬに関連付けられたサーバから公開鍵Ｐｂを取得することによって応答を生成することができる。これは、ユーザプライバシーを向上させるが、アクセスポイントがこのシステムを欺くことができることから、セキュリティ上の懸念を提起する。
【００６８】
いくつかの実施形態において、チャレンジレスポンス検出技術は、価格情報又はＴｏＳの質を検証するために使用されることができる。この場合、ｆ（）＝「アクセスポイントのプライバシーのＴｏＳが意識的であるか」であり、ＲＮＤは、ＴｏＳのへのリンクである。
【００６９】
いくつかの実施形態において、暗号化機構は、対称鍵に基づくことができる。
【００７０】
セットダイバーシティによる能動的検出
図６は、本発明の実施形態にかかる、セットダイバーシティによる能動的検出のための例示的なプロセスを示すフローチャートである。本発明の実施形態は、図６に示される動作に限定されるものではなく、いくつかの実施形態は、図６に示されたものとは異なる順序で又は異なる動作で図６の動作を実行することができる。
【００７１】
この技術は、インターネット接続性を確認するのに役立つサーバのセットを判定（又は作成）するためにクラウドソーシングを使用することができる。換言すれば、モバイル装置は、何度も同じサーバを使用する代わりにネットワーク接続性サーバのプールと通信する。この技術は、サーバのクラウドソーシングプールを使用することから、一部のサーバは、ダウン（例えば、現在オンラインでない）していることがある。結果として、偽陰性の可能性を低減させるために、一度に（例えば、同時に又は短い所定期間内）ｋ個のサーバにコンタクトすることはモバイル装置にとって有利であり得る。
【００７２】
図６に示されるように、モバイル装置は、現在時間（例えば、設定されたタイムアウト＝ｃｕｒｒｅｎｔＴｉｍｅ）の値を設定する（動作６０２）。そして、モバイル装置は、アクセスポイントに関連付ける（動作６０４）。モバイル装置は、サーバのセットＳからランダムにｋ個のサーバを選択することができる（動作６０６）。モバイル装置は、ユーザエージェントを含むことなく、アクセスポイントを介してｋ個のサーバに対してＨＴＴＰ  ＧＥＴリクエストを送信することができる（動作６０８）。
【００７３】
そして、アクセスポイントは、ｋ個のサーバに対してＨＴＴＰ  ＧＥＴリクエストを転送する（動作６１０）。いくつかの実施形態において、アクセスポイントは、リクエストから、ユーザエージェントデータ（例えば、ユーザが使用しているブラウザを示す）、ＩＰアドレス及び他の情報を削除することができる。サーバが起動して動作している場合、サーバは、ＨＴＴＰ  ＲＥＰＬＹを送信することができ、アクセスポイントは、モバイル装置に対してＨＴＴＰ  ＲＥＰＬＹを転送することができる（動作６１２）。
【００７４】
そして、モバイル装置は、以下の擬似コードで表現される以下の動作を実行することができる：
（モバイル装置がＨＴＴＰ  ＲＥＰＬＹを受信する）且つ（タイムアウト＜ＴＭａｘ）である場合
１を返す／／成功
その他（モバイル装置がＨＴＴＰ  ＲＥＰＬＹを受信しなかった）且つ（タイムアウト＜ＴＭａｘ）である場合
動作６０４に戻る
その他（タイムアウト≧ＴＭａｘ）である場合
−１を返す／／失敗
【００７５】
すなわち、モバイル装置は、モバイル装置がサーバのいずれかからＨＴＴＰ  ＲＥＰＬＹを受信し且つタイムアウト＜ＴＭａｘであるかどうかを判定する（動作６１４）。モバイル装置がＨＴＴＰ  ＲＥＰＬＹを受信し且つタイムアウト＜ＴＭａｘである場合、プロセス（例えば、手順又は機能）は値１を返し、インターネット接続性検証は成功である（動作６１６）。
【００７６】
そうでない場合、モバイル装置は、モバイル装置がＨＴＴＰ  ＲＥＰＬＹを受信せず且つタイムアウト＜ＴＭａｘであるかどうかを判定する（動作６１８）。モバイル装置がＨＴＴＰ  ＲＥＰＬＹを受信せず且つタイムアウト＜ＴＭａｘである場合、プロセスは、動作６０４に戻ることによって継続する。そうでない場合、モバイル装置は、その後、タイムアウト≧ＴＭａｘであるかどうかを判定する（動作６２０）。タイムアウト≧ＴＭａｘである場合、プロセスは失敗結果によって終了し、プロセス（例えば、手順又は機能）は、値−１を返すことができる（動作６２２）。
【００７７】
この技術により、ユーザのＩＰアドレスは、いくつかのサーバに通知されるものの、サーバは、インターネット接続性を照会するユーザについてはるかに少なく個別に学習する。サーバ間での非共謀を仮定すると、このアプローチは、現在の装備よりも優れたプライバシーを提供する。最悪の場合、モバイル装置は、ＴＭａｘの時間内に可能な限り多くのサーバにコンタクトする。それゆえに、プライバシーのフットプリントを制限するためにＴＭａｘを調整することができる。あいにく、この技術は、おそらく既存のアプローチよりも速くないことから、この技術は、所望の情報を受信する前にアクセスポイントに対して最初に接続することをユーザに要求する。さらに、この技術により、アクセスポイントは、メッセージをさらにインターセプトすることができ、インターネット接続性のまわりにある（例えば、より安全ではない）。チャレンジレスポンス検出及び受動的ネットワーク検出技術は、優れたセキュリティ、プライバシー及び速度を提供することができる。
【００７８】
システムはまた、ランダムの代わりに順次サーバを選択することができる。例えば、ｋ＝１は、順次サーバにコンタクトするモバイル装置に対応し、ｋ＞１は、並列に複数のサーバにコンタクトするモバイル装置に対応する。
【００７９】
例示的なモバイル装置
図７は、本発明の実施形態にかかる、インターネット接続性検証システムにおける例示的なモバイル装置を示している。図７において、モバイル装置７００は、プロセッサ７０２と、メモリ７０４と、記憶装置７０６とを含む。記憶装置７０６は、プロセッサ７０２によって実行されることになるプログラムを記憶する。具体的には、記憶装置７０６は、能動的検出モジュール７０８と、チャレンジレスポンス検出モジュール７１０と、受動的ネットワーク検出モジュール７１２と、インターネット接続性検証部７１４とともに、アプリケーション７１６及び７１８などの他のアプリケーションを記憶する。モバイル装置７００は、任意のコンピューティング装置とすることができ、ディスプレイ７２０及び任意のキーボード及びポインティングデバイスに接続されることができる。
【００８０】
能動的検出モジュール７０８は、能動的検出技術によって複数のサーバをコンタクトさせることによってインターネット接続性を検証することができる。チャレンジレスポンス検出モジュール７１０は、チャレンジレスポンス検出技術を使用することによってインターネット接続性を検証することができる。受動的ネットワーク検出モジュール７１２は、受動的ネットワーク検出技術を使用することによってインターネット接続性を検証することができる。インターネット及び接続性検証部７１４は、異なるモジュール及び技術の組み合わせを使用することによってインターネット接続性を検証することができる。
【００８１】
例示的なアクセスポイント
図８は、本発明の実施形態にかかる、インターネット接続性検証システムにおける例示的なアクセスポイントを示している。無線アクセスポイントは、無線装置がＷｉＦｉ又は関連規格を使用して有線ネットワークに接続するのを可能とするネットワークハードウェア装置とすることができる。アクセスポイントは、ルータに接続されたスタンドアロン装置とすることができ、アクセスポイントはまた、ルータの一体要素とすることができる。
【００８２】
図８において、アクセスポイント８００は、プロセッサ８０２、メモリ８０４と、記憶装置８０６とを含むことができる。記憶装置８０６は、プロセッサ８０２によって実行されることになるプログラムを記憶する。具体的には、記憶装置８０６は、能動的検出モジュール８０８と、チャレンジレスポンス検出モジュール８１０と、受動的ネットワーク検出モジュール８１２とともに、アプリケーション８１４及び８１６などの他のアプリケーションを記憶する。アクセスポイント８００はまた、無線信号をブロードキャストするためにアンテナ８１８を含むことができる。
【００８３】
アクセスポイント８００のモジュール及び他の要素は、これらに限定されるものではないが、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）及び他のプログラマブル論理デバイスを含むハードウェアモジュールとして実装されることができる。さらに、いくつかのアクセスポイントの実装は、示されているモジュールと同じ機能を実行するためにモジュールの任意の組み合わせを含むことができる。いくつかの実施形態において、プロセッサ、メモリ及び記憶装置を含む外部制御装置は、１つ以上のアクセスポイントを制御することができる。
【００８４】
能動的検出モジュール８０８は、クライアントモバイル装置から複数のサーバに対して通信を転送し且つサーバから能動的検出技術にかかるモバイル装置に対して応答を転送することにより、インターネット接続性検証を容易とすることができる。
【００８５】
チャレンジレスポンス検出モジュール８１０は、チャレンジレスポンス検出技術によってインターネット接続性検証を容易とすることができる。チャレンジレスポンス検出モジュール８１０は、複数のサーバに対してチャレンジリクエストを転送し、複数のサーバからモバイル装置に対して受信したレスポンスを転送することができる。
【００８６】
受動的ネットワーク検出モジュール８１２は、受動的ネットワーク検出技術によってインターネット接続性検証を容易とすることができる。受動的ネットワーク検出モジュール８１２は、サーバから署名されたタイミング情報を取得し、署名されたタイミング情報を含むようにＷｉＦｉビーコンフレームをオーバーロードすることができる。
【００８７】
例示的なサーバ
図９は、本発明の実施形態にかかる、インターネット接続性検証システムにおける例示的なサーバ９００を示している。図９において、サーバ９００は、プロセッサ９０２と、メモリ９０４と、記憶装置９０６とを含む。記憶装置９０６は、プロセッサ９０２によって実行されることになるプログラムを記憶する。具体的には、記憶装置９０６は、能動的検出モジュール９０８と、チャレンジレスポンス検出モジュール９１０と、受動的ネットワーク検出モジュール９１２とともに、アプリケーション９１４及び９１６などの他のアプリケーションを記憶することができる。サーバ９００は、任意のディスプレイ９１８、キーボード９２０及びポインティングデバイス９２２に接続されることができる。
【００８８】
能動的検出モジュール９０８は、能動的検出技術にしたがって動作を行うことにより、インターネット接続性検証を容易とすることができる。例えば、能動的検出モジュール９０８は、ＨＴＴＰ  ＧＥＴリクエストを受信し、ＨＴＴＰ  ＲＥＰＬＹによって応答する。
【００８９】
チャレンジレスポンス検出モジュール９１０は、チャレンジレスポンス検出技術にしたがって動作を行うことによってインターネット接続性検証を容易とすることができる。例えば、チャレンジレスポンス検出モジュール９１０は、モバイル装置からのチャレンジリクエストに応答し、モバイル装置に対してチャレンジリクエストに対する応答を有するメッセージを返送することができる。
【００９０】
受動的ネットワーク検出モジュール９１２は、受動的ネットワーク検出技術にしたがって動作を行うことによってインターネット接続性検証を容易とすることができる。例えば、受動的ネットワーク検出モジュール９１２は、署名されたタイミング情報を公開し及び／又はＨＭＡＣを有するメッセージを生成することができる。
【００９１】
詳細な説明のセクションに記載された方法及びプロセスは、上述したように、コンピュータ読み取り可能な記憶媒体に記憶されることができるコード及び／又はデータとして具現化されることができる。コンピュータシステムがコンピュータ読み取り可能な記憶媒体に記憶されたコード及び／又はデータを読み取って実行すると、コンピュータシステムは、データ構造及びコードとして具現化され且つコンピュータ読み取り可能な記憶媒体内に記憶された方法及びプロセスを実行する。
【００９２】
さらにまた、以下に記載される方法及びプロセスは、ハードウェアモジュールに含めることができる。例えば、ハードウェアモジュールは、限定されるものではないが、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）及び現在知られている又は後に開発される他のプログラマブル論理デバイスを含むことができる。ハードウェアモジュールが起動されると、ハードウェアモジュールは、ハードウェアモジュール内に含まれる方法及びプロセスを実行する。
【図１】
0006704863.tif 000002
【図２】
0006704863.tif 000003
【図３Ａ】
0006704863.tif 000004
【図３Ｂ】
0006704863.tif 000005
【図４】
0006704863.tif 000006
【図５Ａ】
0006704863.tif 000007
【図５Ｂ】
0006704863.tif 000008
【図６】
0006704863.tif 000009
【図７】
0006704863.tif 000010
【図８】
0006704863.tif 000011
【図９】
0006704863.tif 000012