(57)【特許請求の範囲】
【請求項１】
計算処理システムは、プロセッサ、位置検出信号受信手段及びメモリを含み、
前記プロセッサが、
前記位置検出信号受信手段を用いて少なくとも１つの位置検出信号を受信し、
受信した前記位置検出信号の強さを測定し、
受信した前記位置検出信号からキーを抽出し、
受信した前記位置検出信号の測定された前記強さに少なくとも基づいて位置を判定し、
抽出した前記キーを用いて判定した前記位置を検証する、
方法。
【請求項２】
前記キーはランダムに生成される、請求項１に記載の方法。
【請求項３】
前記キーはユニークである、請求項１に記載の方法。
【請求項４】
受信した前記位置検出信号は建物の部屋に配置されたビーコンによって提供され、
ランダムに生成された第２のキーが前記ビーコンに定期的に送信される、
請求項１〜３の何れか１項に記載の方法。
【請求項５】
判定された前記位置を検証することは、受信した前記位置検出信号から抽出した前記キーと前記ビーコンに予め送信されたランダムに生成される前記第２のキーとを比較することを含み、
判定された前記位置は、前記キーと前記第２のキーとが同一でない場合無効化される、
請求項４に記載の方法。
【請求項６】
サーバが、判定された前記位置を検証することを実行し、
前記サーバは、ランダムに生成された前記第２のキーが前記ビーコンに送信されるように、前記第２のキーをランダムに生成するように構成されている、
請求項５に記載の方法。
【請求項７】
ビーコンエージェントが、ランダムに生成された前記第２のキーを前記ビーコンに定期的に送信し、
前記ビーコンエージェントは通信可能に前記サーバに接続されている、
請求項６に記載の方法。
【請求項８】
判定された前記位置を検証することは、さらに、ＮＦＣデバイスによって発行されたチケットを検証することを含み、
判定された前記位置は、チケットが無効である場合、さらに無効化される、
請求項５に記載の方法。
【請求項９】
プライベートキーを用いて署名されたノンスを受信することに応じて、ＮＦＣデバイスが、前記チケットを発行する、請求項８に記載の方法。
【請求項１０】
前記ＮＦＣデバイスは、前記ノンスをランダムに生成して送信し、
前記ノンスを受信し、
受信した前記ノンスに前記プライベートキーを用いて署名する、
請求項９に記載の方法。
【請求項１１】
受信した前記位置検出信号は建物の部屋に配置されたビーコンによって提供され、
受信した前記位置検出信号は前記ビーコンをユニークに識別する識別子を含む、
請求項１〜請求項１０の何れか１項に記載の方法。
【請求項１２】
前記位置を判定し、検証することは、
前記ビーコンの識別子、受信した前記位置検出信号の計測された前記強さ及び抽出された前記キーを、中央サーバに送信し、
判定された位置を前記中央サーバから受信する、
ことを含む、
請求項１１に記載の方法。
【請求項１３】
前記計算処理システムの識別もしくは前記計算処理システムのユーザは中央サーバに提供されない、
請求項１２に記載の方法。
【請求項１４】
前記中央サーバから受信した判定された前記位置は前記中央サーバのプライベートキーで署名される、請求項１２に記載の方法。
【請求項１５】
判定された前記位置は現在のタイムスタンプと共に前記中央サーバから受信される、
請求項１２に記載の方法。
【請求項１６】
建物の部屋に配置されたビーコンが、受信した前記位置検出信号を提供し、
前記位置検出信号が、前記ビーコンをユニークに識別するメジャー識別及びマイナー識別を含み、
前記マイナー識別がランダムに生成された前記キーを含む、
請求項１に記載の方法。
【請求項１７】
前記位置は部屋レベルの正確さで判定される、請求項１〜請求項１６の何れか１項に記載の方法。
【請求項１８】
前記位置検出信号受信手段を用いて少なくとも１つの位置検出信号を受信することは、建物内に配置された複数のビーコンによって提供される複数の位置検出信号を受信する、ことを含み、
前記位置は受信した複数の位置検出信号に基づいて判定される、
請求項１〜請求項３の何れか１項に記載の方法。
【請求項１９】
位置検出信号手段を用いて少なくとも１つの位置検出信号を受信し、
受信した前記位置検出信号の強さを測定し、
受信した前記位置検出信号からキーを抽出し、
受信した前記位置検出信号の測定した強さに少なくとも基づいて位置を判定し、
抽出した前記キーを用いて判定された前記位置を検証する、
処理をプロセッサに実行させるためのプログラム。
【請求項２０】
プロセッサと、
位置検出信号受信手段と、
メモリと、
を含み、
前記メモリは、
前記位置検出信号受信手段を用いて少なくとも１つの位置検出信号を受信し、
受信した前記位置検出信号の強さを測定し、
受信した前記位置検出信号からキーを抽出し、
受信した前記位置検出信号の測定した前記強さに少なくとも基づいて位置を判定し、
抽出した前記キーを用いて判定した前記位置を検証する、
処理を前記プロセッサに実行させる命令を記憶する、
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置検証方法、プログラム、及びシステムに関する。
【背景技術】
【０００２】
屋内での迅速かつ正確な位置検出は、長い間解決されていない課題である。様々なハードウェア及びソフトウェア技術が生成され、特に最近では、信頼でき、かつ、展開が容易な解決が提案されてきている。これらの技術の多くは、屋内での位置を判定するために、スマートフォン、タブレットなどの毎日使用するデバイスを利用する。実際、アップルのｉＢｅａｃｏｎフレームワークなどの技術は、広く採用、展開、利用が行われ始めている。屋内検出を可能とするアプリケーションの拡散のために、基本技術が下敷きとされている。
【０００３】
正確な位置情報が、幅広いアプリケーションのユーザエクスペリエンスを支援もしくは向上させるためのコンテキストを提供する。これらは、関心点アプリケーション、マッピングツール、及びソーシャルプレゼンス共有アプリケーションを含む。不正確な、もしくは、マニュアルによる位置検出はこれらのアプリケーションの有用さに影響を与えるかもしれないが、サービスプロバイダの観点からは害はないだろう。しかしながら、位置検出の正確さ及び信頼の高さがアプリケーション自身に統合されている多くの他のアプリケーションがある。これらは、屋内でのアクセス、在庫管理、ドキュメントアクセスソリューションを含み、これらのアプリケーションは、ユーザの物理的位置を含むコンテキスト特性を含む物理的な、もしくは仮想的なオブジェクトへのアクセスを許可するか、拒絶するかを判定する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】フレウンド（Freund）ら、「オンライン学習の決定論生成及びブースティングへの適用（A decision-theoretic generalization of on-line learning and an application to boosting）」、コンピュータ及びシステムサイエンスジャーナル（Journal of Computer and System Sciences）、１９９７年、５５（１）、頁１１９〜１３９
【非特許文献２】ハスティ（Hastie）ら、「統計学習基礎（The Elements of Statistical Learning）」、ニューヨーク、スプリンガー、２００１年
【非特許文献３】ボリガー（Bolliger）、「ユーザ協働によるレッドピンアダプティブゼロ構成屋内位置検出（Redpin-adaptive, zero-configuration indoor localization through user collaboration）、ＧＰＳレス環境におけるモバイルエンティティ位置検出及び追跡に関するＡＣＭ国際ワークショップ（ACM international workshop on Mobile entity localization and tracking in GPS-less environments：ＭＥＬＴ）、２００８年、頁５５〜６０
【非特許文献４】ビール（Biehl）ら、「ＷｉＦｉを用いた効率的な部屋位置検出のための展開準備されたフレームワーク（A Ready-to-Deploy Framework for Efficient Room Localization using Wi-Fi）」、ユビキタスコンピューティングに関するＡＣＭ会議抄録（Proceedings of the ACM Conference on Ubiquitous Computing: Ubicomp）、２０１４年
【非特許文献５】リ(Li)ら、「屋内位置検出サービスにおけるデータ密度及び現場環境における多様性実験及び対処（Experiencing and handling the diversity in data density and environmental locality in an indoor positioning service）」、モバイルコンピューティング及びネットワーキングに関する第２０回年次国際会議抄録（Proceedings of the 20th annual international conference on Mobile computing and networking: MobiCom）、２０１４年、頁４５９〜４７０
【発明の概要】
【発明が解決しようとする課題】
【０００５】
信頼できる位置検出に焦点を当てた研究及び開発は過去に多く行われている。しかしながら、研究の多くは、探求済みのポイントソリューションである。例えば、ソリューションは、匿名で、位置ベースサービスの検証可能ロケーションチェックイン、既存のインフラに依存する共に存在することを証明するコンテキストベースのプルーフ、及び、複数の利害関係者のＷｉＦｉもしくは携帯電話環境で（粗い）位置のセキュアなプルーフを生成し検証するシステムを提供するために開発された。
【０００６】
位置ベースサービスのクライアント側の敵対する振る舞い及びクライアントの信頼に関する（調整可能な）様々な仮定をサポートする屋内位置検出の直接的なもしくは遡及的な新規で改良されたシステム及び方法が所望されている。
【課題を解決するための手段】
【０００７】
第１の態様の方法では、計算処理システムが、プロセッサ、位置検出信号受信手段及びメモリを含み、前記プロセッサが、前記位置検出信号受信手段を用いて少なくとも１つの位置検出信号を受信し、受信した前記位置検出信号の強さを測定し、受信した前記位置検出信号からキーを抽出し、受信した前記位置検出信号の測定された前記強さに少なくとも基づいて位置を判定し、抽出した前記キーを用いて判定した前記位置を検証する。
【０００８】
第２の態様は、第１の態様の方法であって、前記キーはランダムに生成される。
【０００９】
第３の態様は、第１の態様の方法であって、前記キーはユニークである。
【００１０】
第４の態様は、第１〜第３の何れかの態様の方法であって、受信した前記位置検出信号は建物の部屋に配置されたビーコンによって提供され、ランダムに生成された第２のキーが前記ビーコンに定期的に送信される。
【００１１】
第５の態様は、第４の態様の方法であって、判定された前記位置を検証することは、受信した前記位置検出信号から抽出した前記キーと前記ビーコンに予め送信されたランダムに生成される前記第２のキーとを比較することを含み、判定された前記位置は、前記キーと前記第２のキーとが同一でない場合無効化される。
【００１２】
第６の態様は、第５の態様の方法であって、サーバが、判定された前記位置を検証することを実行し、前記サーバは、ランダムに生成された前記第２のキーが前記ビーコンに送信されるように、前記第２のキーをランダムに生成するように構成されている。
【００１３】
第７の態様は、第６の態様の方法であって、ビーコンエージェントが、ランダムに生成された前記第２のキーを前記ビーコンに定期的に送信し、前記ビーコンエージェントは通信可能に前記サーバに接続されている。
【００１４】
第８の態様は、第５の態様の方法であって、判定された前記位置を検証することは、さらに、ＮＦＣデバイスによって発行されたチケットを検証することを含み、判定された前記位置は、チケットが無効である場合、さらに無効化される。
【００１５】
第９の態様は、第８の態様の方法であって、プライベートキーを用いて署名されたノンスを受信することに応じて、ＮＦＣデバイスが、前記チケットを発行する。
【００１６】
第１０の態様は、第９の態様の方法であって、前記ＮＦＣデバイスは、前記ノンスをランダムに生成して送信し、前記ノンスを受信し、受信した前記ノンスに前記プライベートキーを用いて署名する。
【００１７】
第１１の態様は、第１〜第１０の何れかの態様の方法であって、受信した前記位置検出信号は建物の部屋に配置されたビーコンによって提供され、受信した前記位置検出信号は前記ビーコンをユニークに識別する識別子を含む。
【００１８】
第１２の態様は、第１１の態様の方法であって、前記位置を判定し、検証することは、前記ビーコンの識別子、受信した前記位置検出信号の計測された前記強さ及び抽出された前記キーを、中央サーバに送信し、判定された位置を前記中央サーバから受信する、ことを含む。
【００１９】
第１３の態様は、第１２の態様の方法であって、前記計算処理システムの識別もしくは前記計算処理システムのユーザは中央サーバに提供されない。
【００２０】
第１４の態様は、第１２の態様の方法であって、前記中央サーバから受信した判定された前記位置は前記中央サーバのプライベートキーで署名される。
【００２１】
第１５の態様は、第１２の態様の方法であって、判定された前記位置は現在のタイムスタンプと共に前記中央サーバから受信される。
【００２２】
第１６の態様は、第１の態様の方法であって、建物の部屋に配置されたビーコンが、受信した前記位置検出信号を提供し、前記位置検出信号が、前記ビーコンをユニークに識別するメジャー識別及びマイナー識別を含み、前記マイナー識別がランダムに生成された前記キーを含む。
【００２３】
第１７の態様は、第１〜第１６の何れかの態様の方法であって、前記位置は部屋レベルの正確さで判定される。
【００２４】
第１８の態様は、第１〜第３の何れかの態様の方法であって、前記位置検出信号受信手段を用いて少なくとも１つの位置検出信号を受信することは、建物内に配置された複数のビーコンによって提供される複数の位置検出信号を受信する、ことを含み、前記位置は受信した複数の位置検出信号に基づいて判定される。
【００２５】
第１９の態様はプログラムであって、位置検出信号手段を用いて少なくとも１つの位置検出信号を受信し、受信した前記位置検出信号の強さを測定し、受信した前記位置検出信号からキーを抽出し、受信した前記位置検出信号の測定した強さに少なくとも基づいて位置を判定し、抽出した前記キーを用いて判定された前記位置を検証する、処理をプロセッサに実行させる。
【００２６】
第２０の態様のシステムは、プロセッサと、位置検出信号受信手段と、メモリと、を含み、前記メモリは、前記位置検出信号受信手段を用いて少なくとも１つの位置検出信号を受信し、受信した前記位置検出信号の強さを測定し、受信した前記位置検出信号からキーを抽出し、受信した前記位置検出信号の測定した前記強さに少なくとも基づいて位置を判定し、抽出した前記キーを用いて判定した前記位置を検証する、方法を前記プロセッサに実行させる命令を記憶する。
【発明の効果】
【００２７】
位置ベースサービスのクライアント側の敵対する振る舞い及びクライアントの信頼に関する（調整可能な）様々な仮定をサポートする屋内位置検出の直接的なもしくは遡及的なシステム及び方法を提供する。
【図面の簡単な説明】
【００２８】
【図１】位置検出システムの実施例の例示的な論理ブロック図を示す。
【図２】セキュアなビーコンの実施例を示す。
【図３】中央サーバによって、クライアントデバイスに位置情報を提供する例示的なプロトコルを示す。
【図４】中央サーバによって、クライアントデバイスに位置情報を提供する例示的な他のプロトコルを示す。
【図５】ＮＦＣ（near field communication）技術を使用してバインドを生成するプロトコルの実施例を示す。
【図６】オフィス環境におけるビーコンの例示的な展開を示す。
【図７】トレードオフを例示するために、位置分類エンジンが利用可能なビーコンの数の変動に対する三重クロス検証の正確さの変動を示す。
【図８】所定の位置における利用可能なビーコンの総数と可視ビーコンの数の相関を示す統計を例示する。
【図９】図１に例示する位置検出システムのクライアントデバイスとして使用できる計算処理モバイルシステムの実施例を示す。
【図１０】図１に例示する位置検出システムの、例えば、中央サーバとして使用できる計算処理サーバシステムの実施例を示す。
【発明を実施するための形態】
【００２９】
以下の詳細な説明において、図面を参照する。図面において、同様の機能を有する構成要素には同様の参照符号を付す。図面は例示のためであり、限定のためではなく、特定の実施例及び実装は本発明の原理と矛盾しない。これらの実装は、当業者が実行可能な程度に十分詳細に記載されており、他の実装も利用可能であり、本発明の範囲及び思想から逸脱することなく、構成の変更及び／もしくは様々な構成要素の置き換えが可能である。従って、以下の詳細な説明は、限定的に解釈されるべきではない。さらに、本発明の様々な実施形態は汎用目的コンピュータで稼動するソフトウェアの形態で実装されてもよいし、特定用途ハードウェアの形態で実装されてもよいし、ソフトウェア及びハードウェアの組み合わせによって実装されてもよい。
【００３０】
従来技術に関連する上記及び他の問題に対処するために、１つもしくは複数の実施例は、現行品と互換性を有するセキュリティ及びプライバシーアフォーダンスの広いセットを提供するシステム及び方法を実装する。
【００３１】
図１は、位置検出システム１００の実施例の論理ブロック図を例示する。実施例の一つにおいて、検出システム１００は、５つの主要な構成要素を含む。展開された複数のクラウド接続ビーコン１０１、クライアントデバイスサービス１０２、位置分類エンジン（ＬＣＥ）１０３、サーバ配置ＬＣＥ１０９を有する中央サーバ１０４、及びクラウドビーコンエージェント（ＣＢＡ）１０５を含む。実施例の一つにおいて、位置分類エンジン１０３はクライアント１０６に配置される。代替的な実施形態において、位置分類エンジン１０９は中央サーバ１０４に配置される。
「クラウド接続セキュアビーコン」
【００３２】
位置検出システムの一つもしくは複数の実施例において、位置推定は、図１に示される固定された複数のビーコンデバイス１０１による測定された信号セットの強さによって判定される。様々な無線デバイスによる測定値を利用することができるが、システム１００は、既存デバイスの広い範囲にわたって互換性を維持するために、ＢＬＥ（Bluetooth（登録商標） Low Energy）デバイスに依存する。しかしながら、他のタイプのビーコンデバイス１０１も位置推定を容易にするために利用可能であり、従って、システムは、特定のタイプのビーコンデバイスに限定されない。
【００３３】
図２は、２つのハードウェア構成要素、ＢＬＥ無線デバイス２０１及びＷｉＦｉイネーブルＳｏＣ（System on Chip）２０２を含むセキュアビーコン１０１の実施例を例示する。一つもしくは複数の実施例において、ＳｏＣ２０２は、ソフトウェア及び機能が更新されることを可能にするクラウドビーコンエージェント（ＣＢＡ）１０５（図１）とセキュアに通信する。ＳｏＣ２０２デバイスは、ＩＣＴバス接続を介して、Ｂｌｕｅｔｏｏｔｈ無線デバイス２０１の状態を制御する。例示的な実施例において、ビーコンデバイス１０１は、出力３Ｖに電力調整された４つの１．５Ｖ単３乾電池によって電力を供給される。一般的な使用において、少なくとも一年はビーコンに電力を供給することができる。
【００３４】
位置検出システム１００の一つもしくは複数の実施例において、クラウドビーコン１０１は２つのモード、即ち、ビーコンモード及び更新モード、で動作する。ビーコンモードにおいて、ＳｏＣ２０２はスリープ状態に置かれ、Ｂｌｕｅｔｏｏｔｈ無線デバイス２０１はｉＢｅａｃｏｎ互換情報を送信するために２０００ｍ秒ごとに起動するようにプログラムされる。実施例の一つにおいて、この情報は３つの主セグメント、特定のサービス又は機能とデバイスとを関連付けるＵＵＩＤ、メジャーＩＤ及びマイナーＩＤを含む。ＵＵＩＤは、位置検出システム１００のビーコンとしてビーコン１０１を識別するために使用される。メジャーＩＤはビーコン１０１の各々をユニークに識別するために使用される。このＩＤは、デバイスの位置を判定するために、ビーコン１０１の受信信号の強さと共に位置分類エンジン１０３によって使用される。最後に、マイナーＩＤは、以下で詳細に説明するように、位置検出手段によって使用される暗号マテリアルを提供するために使用される。
【００３５】
一つもしくは複数の実施例において、定期的に行われるが間隔を調整可能な更新モードで、ＳｏＣ２０２は、新しいビーコンの割り当てをダウンロードするためにＣＢＡ１０５に接続する。この状態において、ｉＢｅａｃｏｎ情報の全てのパラメータは更新され得る。ビーコン１０１が展開されると、位置検出手段によって提供される新しいユニークキーである新しいマイナーＩＤを、この動作は、通常、構成する。
「デバイスのためのクライアントサービス」
【００３６】
一つもしくは複数の実施例において、シンプルなサービスがＢＬＥ信号測定値を収集するクライアントデバイス１０６で稼動する。上記サービスは定期的に全ての近傍位置の情報を取得し記録する。これらの記録は、情報の受信した信号強度指示測定値（ＲＳＳＩ）と共に上記ＵＵＩＤ、メジャーＩＤ及びマイナーＩＤを含む。
【００３７】
一つの実施例において、ｉＯＳコンピューティングプラットフォーム１０６でクライアントデバイスサービス１０２が展開される。ｉＯＳは、処理のバックグランドでの実行が許容される場合、限定された使用をサポートする。ｉＢｅａｃｏｎ近接／範囲機能はそのような場合に使用される。ｉＯＳ８は、個別のＵＵＩＤもしくはＵＵＩＤのセットとして定義されるビーコン領域の既知のセットへの近さを連続的に監視する。ｉＯＳデバイスがＢＬＥを介してｉＢｅａｃｏｎ情報パケットを受信すると、領域内イベントが、通知のために予め登録されているクライアントデバイスサービス１０２に送信される。デバイスがビーコンの範囲内に入ると、クライアントデバイスサービス１０２は、アプリケーションがバックグランドで稼動していたとしても、ビーコンとの距離を連続的に測定する。距離測定は、可視ビーコンの各々のＲＳＳＩ、ＵＵＩＤ、メジャーＩＤ及びマイナーＩＤの値を含む。
【００３８】
他の実施例において、クライアントデバイスサービス１０２はアンドロイドコンピューティングプラットフォーム１０６に展開される。クライアントデバイスサービス１０２はバックグランドモードで実行するように構成され、既知のＵＵＩＤを定期的に操作するように設定される。検出すると、クライアントデバイスサービス１０２は、ビーコンのＲＳＳＩ、ＵＵＩＤ、メジャーＩＤ及びマイナーＩＤを記録する。一つもしくは複数の実施例において、クライアントデバイスサービス１０２は、走査の頻度を調整することができる。これにより、位置検出アプリケーションは、位置更新を提供する頻度を調整することが可能となる。
【００３９】
一つもしくは複数の実施例において、走査記録のセットが収集されると、クライアントデバイスサービス１０２は、位置分類エンジン（ＬＣＥ）１０３に、この情報を提供する。様々な実施例において、ＬＣＥ１０３は、クライアントデバイス（ローカル）１０６で分類を実行することができるか、もしくは、クライアント１０６はセントラルサーバ１０４に展開されたＬＣＥ１０９のサービスベースインスタンスに走査情報を送信することができる（図１）。以下に詳細を記載するように、クライアントオンリー実装（ＬＣＥ１０３）は、サードパーティにクライアントの位置を開示せずに（位置プライバシーを維持したまま）クライアントの位置を判定する機能を実装する。一方、クラウドベースＬＣＥ１０９は、複数のサービスにわたって計算処理をオフロードし分担することを可能とする。
「位置分類エンジン（ＬＣＥ）」
【００４０】
一つもしくは複数の実施例において、本システムによって利用される位置分類技術は、ブースティングのアンサンブル学習法に基づいている（例えば、非特許文献１及び非特許文献２）。非特許文献３などのより一般的なマッチング方法とは異なり、ブースティングは、訓練セットサイズと共に増大するサーチデータ構造を保存することなく、同様の分類精度を提供する。また、ブースティングは、大きさ順の分類ランタイム性能をマッチングアプローチと比較して速くすることが可能なオフライン訓練の計算処理のほとんどを実行する（例えば、非特許文献４）。
【００４１】
一つもしくは複数の実施例において、位置分類エンジン１０３及び／もしくは１０９は個別の空間的な定量化に関連した位置、もしくはより一般的な部屋（例えば、パーソナルオフィス）もしくは関心位置（例えば、大きな空間のランドマークの近く）を提供するために探索する。一つもしくは複数の実施例において、個別の位置の各々について、バイナリ分類子が構築される。バイナリ分類子はＲＳＳＩ走査ベクトルＳが部屋／位置で観察された確率を表すスコアを出力する。
【数１】
0006728610.tif 000002
【００４２】
一つもしくは複数の実施例において、部屋ごとの分類手段の各々は、「弱い学習器」であるスカラー重みαｍに応じたｈｍを結合する。弱い学習器は、閾値θｍとスカラー特徴とを比較する決定株である。
【数２】
0006728610.tif 000003
【００４３】
訓練において、閾値θｍは最小誤差に対して調整される。特徴ベクトルは、要素Ｘｍを含むように定義され、以下のＲＳＳＩベクトルＳの各々から計算される。
【００４４】
一つもしくは複数の実施例において、観察されたＲＳＳＩベクトルが与えられると、ベクトルのエレメント間のユニークな対の差（マージン）のセットが計算される。総計Ｂ個のビーコンが存在する環境において、結果として生じるマージンの特徴ベクトルは０．５・Ｂ・（Ｂ−１）のサイズを有する。直感的に、これらの特徴はビーコン対の粗いレベルの情報を表す。ＲＳＳＩベクトルＳは、以下の要素を含むマージン特徴ベクトルに変換される。
【数３】
0006728610.tif 000004
0006728610.tif 000005
【００４５】
訓練セットの特定のビーコンのＲＳＳＩ値が失われると、モバイルクライアント１０６に対して可視ではないことを示すために、微小値Ｒｍｉｎに設定される。従って、特定のビーコン１０１が特定の位置で可視ではないという事実が特徴に組み込まれる。
【００４６】
一つもしくは複数の実施例において、訓練走査から計算されるマージン特徴は分類訓練への入力を形成する。スカラーマージン特徴の各々は、任意の部屋毎の分類手段Ｆｒｏｏｍ（Ｓ）に含まれることが可能な弱い学習器（ｈｍ）に対応する。訓練プロシージャは、他の全てからの位置を最もよく区別する弱い学習器の位置特定セットを識別する。弱い学習器及び位置毎の分類手段の各々のための相対的な重み（上記式のαｍ）は、訓練データにわたるサンプル毎の重みを用いた誤差を最適化するグリーディ（greedy）反復プロシージャで学習される（非特許文献２）。
【００４７】
一つもしくは複数の実施例において、位置判定のために、一対多の式が使用される。推定された部屋は、単純に、試験走査Ｓｔｅｓｔに適用される場合、部屋毎の分類手段のセットの中で最大のスコアを有する部屋である。
【数４】
0006728610.tif 000006
【００４８】
一つもしくは複数の実施例において、分類手段訓練で選択されたＲＳＳＩ差の要求されたセットだけが計算される。これらの差は、閾値（θｍ）と比較され、線形に組み合わされる。
「中央サーバ及びクラウドビーコンエージェント」
【００４９】
一つもしくは複数の実施例において、中央サーバ１０４は、ビーコン１０１の状態を調整し、（位置分類エンジン１０３を用いてクライアントデバイス１０６で実行されない場合に、）位置分類エンジン１０９を用いて位置分類を実行し、位置のプルーフを検証し、位置情報を活用するためにＡＰＩをサードパーティアプリケーションに提供する責任を負う信頼されたエンティティである。
【００５０】
一つもしくは複数の実施例において、ビーコン１０１の状態（例えば、クライアント１０６に対してどんな情報が配信されるか）の各々は変更され得る。位置展開の各々について、中央サーバ１０４は、ビーコン１０１のＵＵＩＤ、メジャーＩＤ及びマイナーＩＤの値の各々を設定するために、クラウドビーコンエージェント（ＣＢＡ）に定期的にコールする。中央サーバ１０４は、ユニークなマイナーＩＤが展開位置の各々で、ビーコン１０１の各々について設定されることを保証する。以下で詳細に記述するように、一つもしくは複数の実施例において、循環するマイナーＩＤが位置プルーフプロトコルの部分として使用される。中央サーバ１０４は、現在のマイナー／メジャーＩＤ対のリストを生成し、維持し、位置判定によって、走査が位置検証に提出された場合、位置のプルーフの部分としてキーを比較する。
【００５１】
一つもしくは複数の実施例において、サードパーティＡＰＩはまた中央サーバ１０４によって提供される。ユニークなＡＰＩアクセスキーによって、外部ウェブ／クラウドサービス及びアプリケーション１０８は、クライアントデバイス１０６の位置について中央サーバ１０４に対するＲＥＳＴスタイルリクエストを生成することができる。
「位置のセキュアプルーフ」
【００５２】
セキュアな位置検出サービスに対する要求をその変動が変えるいくつかの様相について以下で説明する。これらの様相に添って多くの設定をアプリケーションがサポートすることを可能にするために、これらの設定において、偽造不可能な位置プルーフを構築するために開発されたプロトコルと共に特定の脅威モデルが記述される。
「位置検出の大きさ」
【００５３】
一般的なロケーションアウェアアプリケーションの必要性を考慮することによって、位置検出システムの開発を導いた安全な位置検出の以下の４つの様相が識別される。
●コンテキストベネファクター
いくつかのアプリケーション（例えば、ユーザの現在位置の近くのイベントを記述するアウェアネスアプリケーション）において、クライアントは、位置コンテキストの使用の唯一の期待されるベネファクターである。他のアプリケーション（例えば、物理的／デジタルアクセス制御システム）では、サービスはクライアントコンテキストの使用からも利益を得る場合がある。
【００５４】
●クライアント脅威モデル
システムを用いたクライアントにおいて、位置ベースサービスが信頼を置くことができるいくつかのレベルがある。クライアントは、正確に位置を報告することについて信頼され得る。これは、例えば、セキュリティがないことが暗示されるリクエストを処理するためにクライアントの位置を要求するＰＯＩアプリケーションにおいて、有用である。クライアントが完全には信用されていない場合、以前の場所にいるかのように見えるようにコンテキスト測定値をリプレーしようとする場合なども有用である。例えば、ユーザは、オンサイトリソースにアクセスすることを意図してオフィスにいるかのように見えるように家からアタックをリプレーする。最後に、クライアントは、位置ベースサービスによって信頼されないかもしれない。クライアントは、ワームホールアタックを実行することを意図して共謀するかもしれない。即ち、ある位置にいるデバイスもしくはユーザは、位置ベースプロテクションを打ち負かすために、他の位置にいるデバイスもしくはユーザにコンテキスト測定値を中継するかもしれない。
【００５５】
●プライバシーに関するクライアントの期待
ある場合、クライアントは、位置ベースサービスに対して識別可能なままであることに同意するかもしれない。例えば、ユーザのアカウンタビリティが要求される物理的アクセス制御システムでは一般的な仮定である。他の場合、クライアントは、サービスから識別を隠すことを望むかもしれない。例えば、ＰＯＩサービスはそのリクエストの識別を知る理由をほとんど有さない。
【００５６】
●プルーフ開示の時間
ほとんどの位置ベースアプリケーションについて、位置のプルーフはすぐに開示される。他の位置ベースアプリケーションについて、遡及的な位置のプルーフが要求される場合があるかもしれない。
【００５７】
この説明の残りの部分では、これらの様相からの選択の組み合わせを説明するために省略表記を用いる。例えば、パーソナルオフィスの物理的アクセス制御サービスは、Ｓ−Ｒ−Ｉ−Ｉ設定内で動作する。Ｓ−Ｒ−Ｉ−Ｉ設定は、サービスが主コンテキストベネファクターであること、クライアントはサービスに対して攻撃のリプレーを期待するかもしれないこと、クライアントはサービスに対して識別可能なままであることに同意すること、位置のプルーフは即時開示されること、を示す。
【表１】
0006728610.tif 000007
【００５８】
ここで、上記様相のいくつかに添って屋内位置検出アプリケーションをサポートする位置検出システム１００のいくつかの構成について説明する。表１において、「信頼する」列の全てのセル及び「信頼する」、「リプレー」、「信頼しない」列の最初の２行のセルは、主な関心の設定を示す。チェックマークはここで説明されるプロトコルが利用され得る設定を示す。以下の説明は、クライアントが位置サービスによって完全に信頼される場合（＊−Ｔ−＊−＊）もしくは、クライアントは信頼されないが識別可能である場合（Ｓ−Ｒ／Ｕ−Ｉ−＊）について主に焦点を当てる。これらは、職場の多数の関心位置ベースアプリケーションをパラメータ化する（例えば、物理的な又は仮想的なリソースへのアクセスの制御、位置ベースパーソナル化など）。
「脅威モデル」
【００５９】
脅威モデルは、位置検出システム１００の実施例の設計の基礎を形成し、これらの脅威に対抗するために開発された拡張プロトコルに関する詳細を提供する。
【００６０】
一つもしくは複数の実施例において、位置検出システム１００は、中央サーバ１０４、安全なビーコン１０１に接続されたクラウドネットワーク、これらのビーコン１０１を制御するために使用されるクラウドビーコンエージェント１０５、デバイスの位置を判定する位置分類エンジン１０３及び１０９、及びクライアントデバイスサービス１０２、の５個のキー（クラスの）エンティティを含む分散システムである。さらに、位置検出システム１００のアプリケーションプログラムインターフェイス（ＡＰＩ）によるサービスを受けるサードパーティ位置検出可能アプリケーション／サービスが存在する。上記エンティティの振る舞いについて詳細に説明する。
【００６１】
一つもしくは複数の実施例において、中央サーバ１０４はクライアントデバイスサービス１０２（走査を収集し、場合によっては、クライアントの位置検出を実行する）及びクラウドビーコンエージェント１０５（スマートビーコンのネットワークを管理する）の両方と定常的に通信を行う。一つもしくは複数の実施例において、中央サーバ１０４との全ての通信は、リプレー、リオーダー、変更及び観察攻撃に対してトラフィックが保護されることを保証するために、ＴＬＳ保護接続を介して、実行される。上記ＬＣＥ１０９を用いて、中央サーバ１０４が正確にクライアントの位置を分類すると仮定する。クライアント１０６は、中央サーバ１０４に対して識別を開示することを望むかもしれないし、望まないかもしれない。
【００６２】
一つもしくは複数の実施例において、クラウドビーコンエージェント１０５は、中央サーバ１０４の代わりに、スマートビーコン１０１のネットワークを非同期的に制御する責任を負う。サーバとエージェントとの通信はＴＬＳ保護の下で行われ、クラウドビーコンエージェント１０５は中央サーバ１０４からビーコン制御メッセージを受け取るだけである。
【００６３】
一つもしくは複数の実施例において、クラウド接続安全ビーコン１０１は、構成を更新するために、クラウドビーコンエージェント１０５との双方向通信を定期的に確立し、クライアントアプリケーション１０７によって観察されるｉＢｅａｃｏｎ互換情報を定期的にブロードキャストする。クラウドビーコンエージェント１０５及びビーコン１０１の各々で稼動するＳｏＣ２０２の間の全ての通信はＴＬＳ保護の下で行われ、ビーコン１０１はクラウドビーコンエージェント１０５からのみ制御メッセージを受け取るように構成されている。不適切な振る舞いは容易に検出可能であるが、ビーコン１０１は、クラウドビーコンエージェント１０５によって仲介された任意の構成変更を支持することが信頼されている。
【００６４】
一つもしくは複数の実施例において、クライアントデバイスサービス１０２は、位置を検出するためにＢＬＥ情報を（一方的に、もしくは、サーバの支援により）収集し、クライアントアプリケーション１０７が稼動するクライアントデバイス１０６で、もしくは、サードパーティ位置検出可能アプリケーション／サービス１０８と共に、判定された位置を利用することができる。中央サーバ１０４及び位置検出可能アプリケーション１０８がクライアント１０６を信頼する程度は、上記のように変動し得る。セキュリティを強化するために、一つもしくは複数の実施例において、クライアントデバイス１０６の各々は、ユニークなパブリック／プライベートキー対及びクライアント１０６の間で共有されないプライベートキーを有する。
【００６５】
一つもしくは複数の実施例において、位置検出可能アプリケーション１０８は、クライアントアプリケーション１０７にサービスを提供するために位置検出システム１００によって分類されたクライアントデバイス１０６の位置を利用することができる。クライアント１０６は、これらの位置検出可能アプリケーションに対して識別を開示することを望むかもしれないし、望まないかもしれない。また、アプリケーション１０８はクライアント１０６で変動する信頼レベルを有するかもしれない。ここで仮定された信頼のレベルは、位置検出システム１００の中央サーバ１０４と共に、クライアントアプリケーション１０７によって生成される位置検出プルーフのタイプをパラメータ化する。
「位置検出システムによってサポートされる位置ベースサービス」
【００６６】
上記したように、一つもしくは複数の実施例において、位置検出システム１００の位置検出は、中央サーバ１０４と密接に結び付いているビーコン１０１のネットワークによって送信されたＢＬＥ情報と関連付けられたＲＳＳＩ値に基づいている。部屋レベル位置を判定するために、クライアントアプリケーション１０７は＜ＵＵＩＤ、メジャーＩＤ、マイナーＩＤ、ＲＳＳＩ＞組のセットを含むレポートを生成する１５秒走査を実行する。これらの組は、次に、クライアント１０６の位置を判定するために分類手段に送られる。
【００６７】
一つもしくは複数の実施例において、クライアント１０６で位置分類エンジン１０３が稼動するイベントにおいて、位置検出システム１００は任意のＣ−＊−＊−＊設定でアプリケーションに位置サービスを提供することができる。クライアント１０６は自分自身の位置を分類するため、クライアント脅威モデル及びプライバシーのクライアント期待の規模を抑制し、クライアント１０６はローカルで分類された位置を即時利用することができるか、もしくは、遡及的に参照するために保存することができる。
【００６８】
位置分類エンジン１０９は中央サーバ１０４で稼動するイベントにおいて、位置検出システム１００は、図３のプロトコル３００に例示するように、Ｓ−Ｔ−Ｍ−＊設定の何れかでアプリケーションに位置検出サービスを提供するために構成されてもよい。図３を参照すると、ステップ３０１で、クライアント１０６はビーコン１０１のために走査を実行し、続いて、中央サーバ１０４に走査データを含むリクエスト３０２を送信する。ステップ３０３で、中央サーバ１０４の位置分類エンジン１０９はクライアント１０６から受信した走査データに基づいてクライアント１０６の位置を分類する。中央サーバ１０４はクライアント１０６にタイムスタンプ及び位置情報を返す（３０４）。
【００６９】
クライアントデバイス１０６はこの設定で中央サーバ１０４によって完全に信頼されるので、走査レポートは、中央サーバが隠されたクライアントの位置を分類することを可能とするように、即時もしくは遡及的に開示され得る。図４に示される登録されたユーザ識別に走査レポートをバインドするデジタル署名の追加によって、位置検出システム１００がＳ−Ｔ−Ｉ−＊設定でアプリケーションにサービスを提供することを可能とする。図４のプロトコル４００を参照すると、ステップ３０１で、クライアント１０６はビーコン１０１のための走査を実行し、走査データ及びクライアントのデジタル署名を含むリクエスト４０１を中央サーバ１０４に送信する。ステップ４０２で、中央サーバ１０４は、クライアントの署名を検証し、ステップ３０３で、クライアント位置分類を実行する。次に、クライアント識別、タイムスタンプ及び位置情報は、ステップ４０３で、クライアントに送り返される。
「追加保護」
【００７０】
走査レポートの相対的に静的な本質は、位置検出システム１００のベースライン変形が、Ｓ−Ｒ−＊−＊設定もしくはＳ−Ｕ−＊−＊設定ではアプリケーションに位置サービスを提供することができないことを暗示する。クライアント１０６は古いレポートを容易にリプレーすることができ、ワームホール攻撃を実行するために共謀することができるからである。この限定を解消することを狙う位置検出システム１００に対する２つの例示的な改善について説明する。
「リプレー攻撃の回避」
【００７１】
位置検出システム１００に対するリプレー攻撃は、時間にわたって、所定の位置で可視であるＢＬＥインフラストラクチャの相対的な安定によって、可能とされる。結果的に、位置レポートを含む＜ＵＵＩＤ、メジャーＩＤ、マイナーＩＤ、ＲＳＳＩ＞組は相対的に安定しており、現在の位置を偽造することを望む邪悪なユーザによって容易にリプレーされる。これらの攻撃と戦うために、リプレー及びコンテキスト推定攻撃の実行をより困難とするように、これらのレポートのエントロピーを増大させる必要がある。
【００７２】
上記の結果、一つもしくは複数の実施例において、位置検出システム１００は、ビーコン１０１によって送信されるＢＬＥ情報をランダムに攪拌するように構成されている。ビーコン１０１によって送信されるｉＢｅａｃｏｎ互換情報は、固定のｉＢｅａｃｏｎプレフィックス、１２８ビットＵＵＩＤ、１６ビットメジャーＩＤ及び１６ビットマイナーＩＤを含む。所定のビーコン１０１によって送信されたＵＵＩＤを変更することはｉＢｅａｃｏｎの機能を利用することを試みるモバイルアプリケーションを混乱させる効果を有するかもしれないし、位置分類エンジンはすでにマイナーＩＤを利用しているので、位置検出システム１００は、代わりに、情報の１６ビットマイナーＩＤを攪拌するように構成される。
【００７３】
上記に詳細に説明したように、一つもしくは複数の実施例において、中央サーバ１０４は、非同期で、変更可能なベースで（一般的には、一つの例示的な展開で２分毎に）更新を行う。この更新処理の部分として、位置検出システム１００は、ビーコン毎のベースでマイナーＩＤフィールドに配置されるランダム化された数字を、以下の式で計算する。
【数５】
0006728610.tif 000008
【００７４】
上記は、位置検出システム１００にだけ知られている１６０ビットマスターキーのＨＭＡＣダイジェスト、特定のビーコン１０１のＭＡＣアドレス、及び現在のタイムスタンプの出力の最初の１６ビットを抽出する。従って、ビーコン１０１の各々は、新しい、ユニークな、かつ、更新サイクル毎に暗号でランダム化されたマイナーＩＤを受信する。このランダム化されたマイナーＩＤによって与えられる保護の強さは更新の頻度及び所定の位置レポートに示されるビーコン１０１の数に依存するが、このシンプルな例示的メカニズムはＳ−Ｒ−＊−＊及びＳ−Ｕ−＊−＊設定の位置の偽造不能なプルーフを提供する際のキーパーツである。
「トンネリング及び共謀の回避」
【００７５】
上記ランダム化されたマイナーＩＤを用いた場合であっても、偽造位置プルーフを生成するために、オフサイトエンティティとオンサイトエンティティとが共謀することは可能である。オンサイトエンティティは、単に、位置レポートを生成し、オフサイトエンティティに位置レポートを送信し、オフサイトエンティティは、位置のプルーフを偽造するために中央サーバ１０４に位置レポートを送信することが可能である。このような偽造と戦うために、位置検出システム１００は位置プルーフを要求するデバイスと（細かい精度の）目標位置を含む物理的な空間とのバインドを生成しなければならない。
【００７６】
図５は、よく知られているＮＦＣ（near field communication）を用いて上記バインドを生成するプロトコル５００の例示的な実施例を示す。このプロトコルの使用を可能とするために、位置検出システム１００は、さらに、クライアントデバイス１０６の位置を検出するために使用され得る、ＮＦＣ装備ステーション５０１の建物内の領域への（粗い精度の）展開を含む。ＮＦＣステーション５０１は、まず、ランダムノンス５０２をクライアントデバイス１０６に送信する。クライアントデバイス１０６はノンスに署名し、ＮＦＣステーションにノンスを返す（５０３）。ＮＦＣステーション５０１は、次に、（ｉ）署名の有効性及び（ｉｉ）署名を生成するためにクライアントデバイス１０６によってとられた時間がオフサイト署名へのワームホール攻撃を排除する程度に十分短いこと（例えば、８ｍ秒より短いこと）、をチェックする。ＮＦＣステーションは、次に、ＮＦＣステーションの識別、クライアントデバイス１０６の識別、ランダムノンス及びチケットが生成されたときのタイムスタンプを含む、クライアントデバイス１０６のための粗い精度の位置チケット５０５を生成し、クライアントデバイス１０６に送信する。当該チケットは特定のタイムスタンプで示されたときにＮＦＣステーションの粗い精度の位置にクライアントデバイス１０６が存在したことを証明する。
【００７７】
一つもしくは複数の実施例において、クライアントデバイス１０６は位置チケット及び位置走査レポートを中央サーバ１０４に送信することができる（５０６）。中央サーバ１０４は、細かい精度の位置を分類するために使用される位置レポートに署名したクライアントデバイス１０６に適合するＮＦＣを経由して、クライアントデバイス１０６が存在する粗い位置が証明されたことをクライアントデバイス１０６に保証するために、チケットを検証することができる（５０７）。図５の残りのステップは前の２つの図のステップと同様であり、同様の番号が付されている。以下で詳細に説明されるように、上記メカニズム及びランダム化された対処スキームの組み合わせは、Ｓ−Ｕ−Ｉ−＊設定の偽造できない位置のプルーフの構築を成功させる。
【００７８】
上記ランダム化情報アプローチによって提供されるエントロピーのビーコン１０１の密度の影響及び上記プロトコルのセキュリティ保証について説明する。
「ビーコン密度分析」
【００７９】
上記したように、スキームの上記実施例によって提供される保護の強さは、位置において可視であるビーコン１０１の数に部分的に依存する。このパラメータをより適切に測定するために、一つの例示的な実施例において、３５個のＢＬＥビーコン１０１が、図６に描写されるオフィスの部分に、関心位置毎に１つずつ、展開される。図６において、ビーコン１０１の位置の各々はドット６０１によって示される。図６に例示されるビーコン展開は、２．５ｍ間隔で、３×３グリッドに分割されるオープンスペースのサブルーム位置を含む。この例は、合計２３個の部屋を含み、ほとんどの部屋は９平方ｍの正方形のオフィスである。廊下の幅は１．５ｍであり、展開は会議室６０２及びキッチン６０３（左上）も含む。
【００８０】
テストの一つにおいて、位置検出システム１００によって提供されるセキュリティ保護の強さを管理するグランドパラメータをより適切に設定するために、統計のいくつかのセットが収集される。構築されるデータセットは、アンドロイドウォードライブを用いて収集され、位置毎に２０個の走査を含み、合計６９５個の走査を含む。分類のためのＢＬＥビーコン１０１を用いて、９３％の正確さが、三重クロス検証実験で達成された。単純に、図６のマップを用いて、テスト走査の各々で最高のＲＳＳＩを有するＢＬＥビーコン１０１に対応する位置としてクライアントデバイス１０６の位置を推定すると、上記例示的な展開において５９％の正確さで分類を生成する。
【００８１】
上記ビーコンの構成において、平均で、２９．８１個のビーコン１０１が位置の各々からの走査において可視である（標準偏差３．１７、最小２３．２）。これらの数値は、セキュリティ分析のためのパラメータの参照セットを提供する。
【００８２】
利用されるビーコン１０１は低コストではあるが、データセットからビーコンを取り除き、分析を繰り返すことによってビーコンの空間密度をより低減して、他のテストが行われた。このテストのために、ビーコンは、位置の各々の重心と残りのビーコンの何れかとの間の平均距離が最小となるように、空間位置に基づいて、貪欲に取り除かれた。単純なアイディアは、ビーコン密度の範囲にわたって空間的送受信可能範囲を維持することである。図７は、ＬＣＥに利用可能なビーコンの数がトレードオフを例示するように変動することによる、三重クロス検証の正確さの変動を示す。
【００８３】
同一のシミュレーションアプローチを用いて、統計は、位置ごとの可視ビーコンの数について再計算される。ここで再び、走査毎及び位置毎の可視ビーコンの数は平均化される。次に、位置のセットにわたる最終的な統計が計算される。利用可能なビーコン１０１の数が変動する例の結果を図８に示す。最小値はバー８０１によって示され、平均値はバー８０２によって示される。標準偏差はバー８０３によって示される。
「セキュリティ分析」
【００８４】
ここで説明されるプロトコルがどのようにリプレー、コンテキスト推定、及びワームホール攻撃に対抗して保護することが可能であるか、上記で概要を説明した位置分類によるパラメータ化された設定において屋内位置の偽造できないプルーフを生成するために使用され得るプロトコルの組み合わせに対処することについて説明する。
「リプレー及びコンテキスト推定攻撃」
【００８５】
一つもしくは複数の実施例において、スマートビーコン１０１のネットワークによって情報が送信されるマイナーＩＤを暗号で変動することは、リプレー及びコンテキスト推定攻撃に対抗して保護を行うために十分なエントロピーを提供する。詳細には、位置検出システム１００によって使用される、基礎となる暗号ハッシュ関数（ＳＨＡ１）の耐衝突性特性は、全てのマイナーな数値が更新の各々で変更され、これにより、単に古い走査レポートをリプレーする単純な攻撃を回避する。
【００８６】
図７に示されるように、図６に示される建物内の位置検出システム１００で９０％を越える正確さを達成するためには、少なくとも２６個のスマートビーコン１０１のネットワークを必要とする。これらの環境下において、図８は、任意の位置で平均２１個（最小１５個）のビーコン１０１が可視である例について示す。これは、各ビーコンの更新でランダム化される平均３３６ビット（最小２４０ビット）を走査レポートが含むことを意味する。位置検出システム１００によって使用される基礎暗号ハッシュ関数のプレ画像抵抗特性は、ビーコン１０１によって送信されるマイナー数のシーケンスを観察することによって、マイナー数をランダム化するために使用されるマスターキーを発見することができないことを保証する。このマスターキーなしで、新しいマイナー数をシステマティックな手法で予測することはできない。結果として、コンテキスト推定攻撃は、平均確率１／２３３６（最小確率１／２２４０）で成功する。
「ワームホール攻撃」
【００８７】
一つもしくは複数の実施例において、ランダム化されたマイナー数とＮＦＣデバイス位置とのコンビネーションは、位置の偽造プルーフを生成するために、敵対するオフサイトと個々のオンサイトとが共謀するワームホール攻撃を回避するために十分である。クライアントデバイス１０６がプライベートキーを共有しないのであれば、（これらのキーが位置検出システム１００の外側で、例えば、購入発注への署名、などの目的で使用される場合、合理的な仮定である）、図５のプロトコルの最初の２つのメッセージはクライアントデバイス１０６及び（粗い）物理的空間の間のバインドを生成する。ノンスｎは予測不可能であり、クライアントデバイス１０６によって生成された署名はオフサイト送信による共謀を排除する時間窓の間に返されなければならない。ＮＦＣステーションによって返されたチケット（メッセージ３）は、次に、時間ｔｓでのＮＦＣステーションの粗い位置に対して識別されるクライアントデバイスとバインドされる。位置プルーフのクライアントデバイスリクエスト（メッセージ４）が行われている間、クライアントサーバ１０４は位置リクエストに署名するクライアントデバイス１０６がＮＦＣチケットのクライアントデバイス識別に適合することを保証することができる。チケットのタイムスタンプが最近のタイムスタンプであり、クライアントデバイス１０６によって生成された走査レポートが正確なマイナー数を有する場合、クライアントデバイスは粗くオンサイトであることを確認し、最近のＢＬＥ情報を観察することができ、従って、位置検出システム１００（メッセージ５）によって細かい精度の位置を分類し、返すことができる。
【表２】
0006728610.tif 000009
「シナリオ範囲」
【００８８】
表２は、位置検出システム１００が、ここで説明するプロトコルを用いて細かい精度で、屋内位置の偽造不可能なプルーフを生成することができる例示的なシナリオを要約している。このテーブルにおいて、Ｂは基本ビーコンプロトコル（ランダム化しない）を示し、Ｒはランダム化するビーコンプロトコルを示し、ＮはＮＦＣプロトコルを示し、Ｓは位置検出リクエストのクライアントデバイス署名を含むこれらのプロトコルの変形を示す。Ｓ−Ｔ−＊−＊設定において、クライアントデバイスはリプレー、コンテキスト推定、もしくは共謀をしないと信頼されているので、基本プロトコルは、クライアントデバイス１０６の位置を検出するために使用され得る。クライアントデバイスの識別可能性がリクエストされる場合、クライアントデバイス署名が使用されるべきである（図４）。さもなければ、これらは、クライアントデバイス１０６が隠されたままであることを許容するために省かれ得る（図３）。Ｓ−Ｒ−＊−＊設定において、ランダム化されたマイナーを追加することは、リプレー及びコンテキスト推定攻撃を上記のように回避し得ることを保証する。ここでも、クライアントの識別可能性がリクエストされる場合、署名を使用することができる。最後に、Ｓ−Ｕ−Ｉ−＊設定は、上記したように、ＮＦＣベースプロトコルと共にランダム化されたマイナーを使用することによって対処され得る。全ての設定において、位置プルーフは位置検出システム１００によって発行される時間を示す署名されたタイムスタンプを含む。これにより、位置プルーフは即時使用されてもよいし、遡及的に使用されてもよい。
【００８９】
様々な実施例において、表１及び表２に例示されるように、多くの異なる適用が位置検出システム１００によってサポートされ得る。職場の設定において、位置検出システム１００はデジタルドキュメントなどの仮想的な資産へのアクセス制御の多くの新しい形態を可能とする。位置検出システム１００を使用するドキュメント閲覧アプリケーションは、誰がドキュメントにアクセスするか、だけではなく、どこでドキュメントが閲覧され得るか、についても細かい制御を提供することができる。例えば、パーソナルドキュメントを閲覧することは、割り当てられたオフィスにいる人事部のスタッフに限定され得る。休憩室などのオープンスペースからのアクセスは回避され得る。モバイルフォン及びタブレットで、より多くのドキュメントが閲覧され、管理されるので、このような制御は重要であることを証明することができる。
【００９０】
一つもしくは複数の実施例において、仮想的なアクセスコントロールを越えて、位置検出システム１００は物理的アクセスコントロールのための新しいアプリケーションを可能とし得る。例えば、ネットワーク操作可能ドアロックと結合された場合、位置検出システム１００は、他の職員が物理的に存在する場合に職員がオフィスに入ることができることを保証する他の同僚へオフィスのオーナーがアクセスすることを可能とする。資産管理及び在庫管理のために位置検出システム１００を同様に適用することができる。
【００９１】
これらの適用は、位置検出システム１００によって可能とされる新しい機会を示すが、限界が存在することを指摘することも重要である。負担となる限定の一つは基本となる位置分類技術から生じる。正確さは高いが、展開は、システムが分類することを期待されている各部屋／位置からフィンガープリントを収集することを要求する。屋内位置検出研究コミュニティはこの負荷を軽減する方法をいくつか提案している。負荷を軽減する方法は、例えば、フィンガープリントをモデル化する方法（例えば、非特許文献５）及びグランドトルースのクラウドソース、インタラクティブラベリング方法（例えば、非特許文献３）を含む。
【００９２】
一つもしくは複数の実施例において、フィンガープリントは位置精度制限が緩和されることを回避し得る。詳細には、位置分類は単純にｎ個の要請されたビーコンから情報配信パケットを受信する機能であってよい。クライアントデバイス１０６が要求されたビーコン１０１の範囲内にある場合、上記位置プルーフプロトコルがまだ適用されている。しかしながら、位置は粗く、システムはゾーンまたは位置の部分（建物の特定のウィングもしくはフロア）へのアクセスを制限するだけである。
「コンピューティングプラットフォーム」
【００９３】
図９は、図１に例示される位置検出システム１００と接続されているクライアントデバイス１０６として使用され得る計算処理モバイルシステム９００の実施例を示す。一つもしくは複数の実施例において、計算処理モバイルシステム９００は、スマートフォン、ＰＤＡ（personal digital assistant）、タブレットコンピュータ、もしくはスマートウォッチなど、商業的に広く利用可能であり、よく知られているフォームファクターで実装され得る。
【００９４】
計算処理システム９００はデータバス９０４もしくは他の相互に接続されたもしくはモバイル計算処理システム９００をわたってもしくはモバイル計算処理システムの中で情報を伝達する通信機構、情報を処理し他の計算処理タスク及び制御タスクを実行するためにデータバス９０４に接続されている中央処理ユニット（ＣＰＵもしくは単にプロセッサ）９０１を含み得る。計算処理システム９００は、ランダムアクセスメモリ（ＲＡＭ）もしくは他のダイナミックストレージデバイスなど、様々な情報及びプロセッサ９０１で実行される命令を記憶するためのデータバス９０４に接続されているメモリ９１２を含む。メモリ９１２は、磁気ディスク、光ディスク、ソリッドステートフラッシュメモリデバイスもしくは他の不揮発性ソリッドステートストレージデバイスなどの永続的なストレージデバイスを含み得る。
【００９５】
一つもしくは複数の実施例において、メモリ９１２は、プロセッサ９０１で命令を実行する間の一時的な変数もしくは他の中間的な情報を記憶するために使用されてもよい。任意で、計算処理システム９００は、リードオンリーメモリ（ＲＯＭもしくはＥＰＲＯＭ）９０２もしくは、計算処理システム９００を動作させるために必要なファームウェア、ＢＩＯＳ（basic input-output system）、計算処理システム９００の様々な構成パラメータなどのプロセッサ９０１のための静的な情報及び命令を記憶するためにデータバス９０４に接続されている他のスタティックストレージデバイスをさらに含み得る。
【００９６】
一つもしくは複数の実施例において、計算処理システム９００は表示デバイス９０９を含み得る。表示デバイス９０９は、計算処理システム９００のユーザに対して様々な情報を表示するためにデータバス９０４に接続されてもよい。代替的な実施例において、表示デバイス９０９は（図示しない）グラフィックコントローラ及び／もしくはグラフィックプロセッサと関連付けられていてもよい。表示デバイス９０９は、よく知られているＴＦＴ（thin-film transistor）技術もしくはＯＬＥＤ（organic light emitting diode）技術、もしくはそれらの双方の技術を用いて製造されたＬＣＤ（liquid crystal display）として実装され得る。様々な実施例において、表示デバイス９０９は、計算処理システム９００の残りの構成要素と共に同一の汎用的な筐体に含められていてもよい。代替的な実施例において、表示デバイス９０９はこのような筐体の外側に配置されていてもよい。
【００９７】
一つもしくは複数の実施例において、計算処理システム９００はさらにデータバス９０４と接続され、上記建物の一つもしくは複数のＮＦＣデバイスと通信するように構成されている、ＮＦＣ（near field communication）インターフェイス９２５を含んでいてもよい。
【００９８】
一つもしくは複数の実施例において、計算処理システム９００は、画像、ビデオ、ユーザコマンド選択などの情報をプロセッサ９０１に伝達するためのデータバス９０４に接続されている、触覚コマンドを受信するためのタッチスクリーンインターフェイス９１０、ユーザの顔もしくは部屋の周辺にあるオブジェクトなどの様々なオブジェクトの静止画像及びビデオを取得するためのカメラ９１１、及びキーボード９０６などの一つもしくは複数の入力デバイスを含み得る。代替的な実施例において、入力デバイスは、（図示しない）ユーザの目の動きを追跡するシステムを含み得る。当該システムはユーザによるコマンド選択を計算処理システム９００に示すために使用され得る。
【００９９】
一つもしくは複数の実施例において、計算処理システム９００は、さらに、ビーコン１０１のための走査を実行し、データバス９０４を介してプロセッサ９０１に上記走査データを供給するように構成されている位置検出信号受信手段９０３を含み得る。
【０１００】
一つもしくは複数の実施例において、計算処理システム９００は、さらに、データバス９０４に接続されているネットワークインターフェイス９０５などの通信インターフェイスをさらに含んでいてもよい。ネットワークインターフェイス９０５は、ＷｉＦｉアダプタ９０７及び携帯電話ネットワーク（ＧＳＭ（登録商標）もしくはＣＤＭＡ）アダプタ９０８の少なくとも一方を用いて、計算処理システム９００及びインターネット９２４の間の接続を確立するように構成されていてもよい。ネットワークインターフェイス９０５は計算処理システム９００及びインターネット９２４の間の双方向データ通信を提供するように構成されていてもよい。ＷｉＦｉアダプタ９０７は、よく知られている８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇ及び／もしくは８０２．１１ｎプロトコル、及びＢｌｕｅｔｏｏｔｈプロトコルに準拠して動作する。例示的な実装において、ＷｉＦｉアダプタ９０７及び携帯電話ネットワーク（ＧＳＭもしくはＣＤＭＡ）アダプタ９０８は、様々なタイプの情報を表すデジタルデータストリームを搬送する電気信号もしくは電磁信号を送受信する。例えば、上記ネットワーク構成要素は、計算処理システム９００及び中央サーバ１０４及びサードパーティーサービス／アプリケーション１０８などの他の位置検出システムの構成要素の間のネットワークデータ接続を確立するために使用され得る。
【０１０１】
一つもしくは複数の実施例において、インターネット９２４は、一般的に、他のネットワークリソースへの一つもしくは複数のサブネットワークを介したデータ通信を提供する。即ち、計算処理システム９００は、インターネット９２４のどこかに配置されている、ウェブサーバ、他のコンテンツサーバ、及び他のネットワークデータストレージリソースなどの様々なネットワークリソースにアクセスすることができる。一つもしくは複数の実施例において、計算処理システム９００はメッセージ、メディア及びアプリケーションプログラムコードを含む他のデータを、インターネット９２４を含む様々なネットワークを介して、ネットワークインターフェイス９０５によって送受信するように構成されている。インターネットの例において、計算処理システム９００は、ネットワーククライアントとして動作する場合、計算処理システム９００で稼動するアプリケーションプログラムのコードもしくはデータを要求することができる。同様に、様々なデータもしくはコンピュータコードを他のネットワークリソースに送信してもよい。
【０１０２】
一つもしくは複数の実施例において、計算処理システム９００は、インターネット９２４を介して、ＨＴＴＰリクエストなどのリクエストを中央サーバ１０４に送信し、位置情報及びタイムスタンプなどの様々な情報を中央サーバ１０４から受信するためにネットワークインターフェイス９０５を使用する。
【０１０３】
一つもしくは複数の実施例において、ここで説明した機能は、メモリ９１２に含まれる一つもしくは複数の命令の一つもしくは複数のシーケンスを実行するプロセッサ９０１に応じて、計算処理システム９００によって実装される。このような命令は、他のコンピュータ可読媒体からメモリ９１２に読み込まれてもよい。メモリ９１２に含まれる命令のシーケンスを実行することによって、ここで説明された様々なプロセスステップがプロセッサ９０１で実行される。代替的な実施例において、ハードウェア回路、もしくはハードウェア回路とソフトウェア命令とのコンビネーションが、ソフトウェア命令の代わりに、本発明の実施例を実装するために使用されてもよい。従って、本発明の実施例はハードウェア回路及びソフトウェアの特定のコンビネーションに限定されるものではない。
【０１０４】
ここで使用される用語「コンピュータ可読媒体」は、実行のためにプロセッサ９０１に命令を提供することに関与する任意の媒体を指す。コンピュータ可読媒体は機械可読媒体の単なる一例であり、任意の方法及び／もしくは技術を実装する命令を搬送することができる。媒体は、不揮発性媒体、揮発性媒体などの多くの形態をとることができる。
【０１０５】
非一時的コンピュータ可読媒体の一般的な形態は、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、もしくは任意の他の磁気媒体、ＣＤ−ＲＯＭ、任意の他の光媒体、パンチカード、紙テープ、任意の他の孔パターンを有する物理的媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、フラッシュＥＰＲＯＭ、フラッシュドライブ、メモリカード、任意の他のメモリチップもしくはカートリッジ、もしくは、コンピュータが読むことが可能な任意の他の媒体を含む。コンピュータ可読媒体の様々な形態は、実行のためにプロセッサ９０１に一つもしくは複数の命令の一つもしくは複数のシーケンスを搬送する際に関与することができる。例えば、命令は、リモートコンピュータから磁気ディスクにまず搬送されてもよい。代替的に、リモートコンピュータはダイナミックメモリに命令をロードし、インターネット９２４を介して命令を送信してもよい。詳細には、コンピュータ命令は、当該技術分野でよく知られている様々なネットワークデータ通信プロトコルを用いて、インターネット９２４を介して、上記リモートコンピュータから計算処理システム９００のメモリ９１２にダウンロードされてもよい。
【０１０６】
一つもしくは複数の実施例において、計算処理システム９００のメモリ９１２は以下のソフトウェアプログラム、アプリケーション、もしくはモジュールの何れかを記憶していてもよい。
【０１０７】
１．オペレーティングシステム（ＯＳ）９１３。オペレーティングシステム９１３は、基本システムサービスを実行し、計算処理システム９００の様々なハードウェア構成要素を管理するモバイルオペレーティングシステムであってもよい。オペレーティングシステム９１３の実施例はよく知られており、現在既知であるか、もしくは今後開発されるモバイルオペレーティングシステムを含み得る。
【０１０８】
２．モバイルアプリケーション９１４。モバイルアプリケーション９１４は、例えば、計算処理システム９００のプロセッサ９０１によって実行され、上記ビーコン信号の受信などの所定の機能を計算処理モバイルシステム９００に実行させる、ソフトウェアアプリケーションのセットを含み得る。一つもしくは複数の実施例において、モバイルアプリケーション９１４は、例えば、クライアントデバイスサービス１０２及び一つもしくは複数のクライアントアプリケーション１０７を含み得る（図１）。
【０１０９】
３．データストレージ９１５。データストレージ９１５は、例えば、ビーコン走査データ９１６及び計算処理モバイルシステム９００の位置データ９１７を記憶するために使用され得る。
【０１１０】
図１０は、例えば、図１に示す位置検出システム１００の中央サーバ１０４として使用され得る計算処理サーバシステム１０００の実施例を示す。クラウドビーコンエージェント１０５を含む位置検出システム１００の他の構成要素は、計算処理サーバシステム１０００に基づいて展開されてもよい。
【０１１１】
一つもしくは複数の実施例において、計算処理サーバシステム１０００は、図９の計算処理システム９００のデータバス９０４と実質的に同様であり、実質的に同様の機能を実行するデータバス１００４を含む。様々な実施例において、データバス１００４は、データバス９０４と同一のもしくは異なる相互接続及び／もしくは通信プロトコルを使用し得る。計算処理サーバシステム１０００の一つもしくは複数のプロセッサ（ＣＰＵ）１００１、ネットワークアダプタ１００５、ＥＰＲＯＭ／ファームウェアストレージ１００２、表示デバイス１００９及びキーボード１００６は、サーバプラットフォーム構成で展開されることを除いて、計算処理システム９００のプロセッサ９０１、ネットワークインターフェイス９０５、ＥＰＲＯＭ／ファームウェアストレージ９０２、表示デバイス９０９及びキーボード９０６と実質的に同様である。様々な実装において、一つもしくは複数のプロセッサ１００１はプロセッサ９０１と比較して処理パワーが大きい。
【０１１２】
入力デバイス１００６（キーボード）に加えて、計算処理サーバシステム１０００は、さらに、プロセッサ１００１に方向情報及びコマンド選択を伝達し、表示デバイス１００９でのカーソルの動きを制御する、マウス、トラックボールもしくはカーソル方向キーなどのカーソル制御デバイス１０１０を含んでいてもよい。入力デバイスは、一般的に、第１の軸（例えば、ｘ）及び第２の軸（例えば、ｙ）の２軸の２つの自由度を有し、デバイスに平面上の位置を特定させることができる。
【０１１３】
計算処理サーバシステム１０００のＬＡＮ／ＩＳＤＮアダプタ１００７は、インターネットサービスプロバイダの（図示しない）ハードウェアを用いて、インターネット９２４とのインターフェイスをとる、対応するタイプの電話回線とのデータ通信接続を提供するために、例えば、ＩＳＤＮ（integrated services digital network）カードもしくは、モデムを用いて、実装されてもよい。他の例として、ＬＡＮ／ＩＳＤＮアダプタ１００７は、互換性を有するＬＡＮ及びインターネット９２４へのデータ通信接続を提供するローカルエリアネットワークインターフェイスカード（LAN NIC）であってよい。様々なメディアファイルを記憶するために、計算処理サーバシステム１０００は、ストレージコントローラ１００３によってユーザに対して提示される様々なコンテンツを記憶する、ドキュメントストレージ１００８を備えていてもよい。カメラ１０１１は、様々なオブジェクトの画像及び／もしくはビデオを取得するために使用され得る。
【０１１４】
一つもしくは複数の実施例において、計算処理サーバシステム１０００のメモリ１０１２は、以下のソフトウェアプログラム、アプリケーション、モジュール及び／もしくはデータの何れかを記憶していてもよい。
【０１１５】
１．サーバオペレーティングシステム（ＯＳ）１０１３。サーバオペレーティングシステム１０１３は、基本システムサービスを実装し、計算処理サーバシステム１０００の様々なハードウェア構成要素を管理するオペレーティングシステムであってよい。サーバオペレーティングシステム１０１３の実施例はよく知られており、現在既知であるか、もしくは今後開発されるオペレーティングシステムを含むことができる。
【０１１６】
２．ネットワーク通信モジュール１０１４。ネットワーク通信モジュール１０１４は、ＬＡＮ／ＩＳＤＮアダプタ１００７と共に動作するネットワークアダプタ１００５を用いて、例えば、計算処理サーバシステム１０００及び、計算処理モバイルシステム９００などのインターネット９２４の様々なネットワークエンティティの間のネットワーキング接続を確立するために使用される一つもしくは複数のネットワークプロトコルスタックを含み得る。
【０１１７】
３．サーバアプリケーション１０１５。サーバアプリケーション１０１５は、例えば、計算処理サーバシステムの一つもしくは複数のプロセッサ１００１によって実行され、計算処理サーバシステム１０００に所定の機能もしくはタスクを実行させる、ソフトウェアアプリケーションのセットを含み得る。一つもしくは複数の実施例において、サーバアプリケーション１０１５は位置分類エンジン１０９、キー発行手段１０１６、キー検証手段１０１７を含み得る。さらに、データベース管理システム１０１８が位置検出システム１００によって使用される暗号化されたキーを記憶するために提供されてもよい。
【０１１８】
４．データストレージ１０１９。データストレージ１０１９は、例えば、暗号化キー１０２０及び位置データ１０２１を記憶するために使用され得る。暗号化キー１０２０及び位置データ１０２１は、データベーステーブルの形態で記憶されてもよい。
【０１１９】
最後に、ここで説明された処理及び技術は特定の装置に固有に関連せず、構成要素の適切なコンビネーションによって実装され得る。さらに、様々なタイプの汎用目的デバイスが教示に従って使用され得る。ここで説明された方法を実行するために特殊用途装置を構築することも効果的である。本発明は、特定の例と関連して説明されているが、これは、限定ではなく例示を意図している。ハードウェア、ソフトウェア及びファームウェアの多くの異なるコンビネーションが本発明を実行するために適切であり得る。例えば、ソフトウェアは、アセンブラ、Ｃ／Ｃ＋＋、オブジェクティブ−Ｃ、ｐｅｒｌ、ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）などの様々なプログラミング言語もしくはスクリプト言語、現在既知のもしくは今後開発されるプログラミング言語もしくはスクリプト言語で実装され得る。
【０１２０】
さらに、ここで開示された本発明の詳細を検討し、実行することで、本発明の他の実装が可能である。実施例の様々な態様及び／もしくは構成要素は様々な位置検出システム及び方法において、単一でもしくは任意の組み合わせで使用され得る。
【符号の説明】
【０１２１】
９０１  プロセッサ
９０３  位置検出信号受信手段
９１２  メモリ
【図１】
0006728610.tif 000010
【図２】
0006728610.tif 000011
【図３】
0006728610.tif 000012
【図４】
0006728610.tif 000013
【図５】
0006728610.tif 000014
【図６】
0006728610.tif 000015
【図７】
0006728610.tif 000016
【図８】
0006728610.tif 000017
【図９】
0006728610.tif 000018
【図１０】
0006728610.tif 000019