(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-12
(45)【発行日】2022-12-20
(54)【発明の名称】位置決定のための方法、プログラム及びコンピュータシステム
(51)【国際特許分類】
G01S 5/02 20100101AFI20221213BHJP
G06F 21/35 20130101ALI20221213BHJP
【FI】
G01S5/02 Z
G06F21/35
(21)【出願番号】P 2018070866
(22)【出願日】2018-04-02
【審査請求日】2021-03-19
(32)【優先日】2017-05-02
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】ジェイコブ ビール
(72)【発明者】
【氏名】アダム ジョセフ リー
(72)【発明者】
【氏名】ジェラルド フィルビー
【審査官】山下 雅人
(56)【参考文献】
【文献】米国特許出願公開第2017/0034191(US,A1)
【文献】特開2017-004485(JP,A)
【文献】特表2016-514253(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01S 5/00- 5/14
H04W 4/00-99/00
H04B 7/24-7/26
G06F21/35
(57)【特許請求の範囲】
【請求項1】
中央処理装置、位置決定信号受信機、及びメモリを備えるコンピュータシステムが実行する方法であって、
a.前記位置決定信号受信機を用いて少なくとも1つの位置決定信号を受信することと、
b.受信した前記位置決定信号の強度を測定することと、
c.前記コンピュータシステムがアンカー装置と同じ場所に配置されているかどうかを判定することと、
d.前記コンピュータシステムが前記アンカー装置と同じ場所に配置されていると判定される場合、前記受信した位置決定信号の測定された前記強度に少なくとも基づいて前記コンピュータシステムの位置を判定することと、
を含み、
前記コンピュータシステムの位置を判定することはサーバにより支援され、
前記サーバは、
前記アンカー装置を物理的位置に固定する固定処理中に取得された前記アンカー装置の位置証明を前記アンカー装置から取得し、前記コンピュータシステムの位置証明を生成する前に、前記アンカー装置の位置証明の有効性を検証し、前記アンカー装置の位置証明が有効である場合に、前記受信した位置決定信号の前記測定された強度に少なくとも基づいて前記コンピュータシステムの位置を判定し、前記コンピュータシステムの位置証明を前記コンピュータシステムに送信するように構成され、
前記アンカー装置を固定することは、
前記アンカー装置で少なくとも1つの第2の位置決定信号を受信することと、
受信した前記第2の位置決定信号の強度を測定することと、
前記サーバにより前記受信した第2の位置決定信号の測定された前記強度に少なくとも基づいて前記アンカー装置の位置を判定し、前記アンカー装置に位置証明を送信することと、
前記アンカー装置の動きを検出することと、
検出した前記動きに基づいて前記アンカー装置の前記位置証明を無効にすることと、を含む、
方法。
【請求項2】
前記コンピュータシステムが前記アンカー装置と同じ場所に配置されているかどうかを判定することは、前記アンカー装置から鍵を含む第1のメッセージを受信することと、少なくとも受信した前記鍵を含む第2のメッセージを前記アンカー装置に送信することと、前記アンカー装置で、前記第2のメッセージのタイミングとの関連で前記第1のメッセージのタイミングを分析することとを含む、請求項1に記載の方法。
【請求項3】
前記コンピュータシステムは、前記第1のメッセージと前記第2のメッセージとの間に経過した時間が所定の閾値を超えない場合、前記アンカー装置と同じ場所に配置されていると判定される、請求項2に記載の方法。
【請求項4】
前記鍵は、ランダムに生成されるノンスである、請求項2に記載の方法。
【請求項5】
前記第2のメッセージは、前記コンピュータシステムに関連付けられた秘密暗号鍵を用いて署名され、前記アンカー装置は前記コンピュータシステムに関連付けられた公開鍵を用いて前記第2のメッセージを検証する、請求項2に記載の方法。
【請求項6】
前記第1のメッセージを受信することと、前記第2のメッセージを送信することとは、近距離無線通信(NFC)プロトコルを介して行われる、請求項2に記載の方法。
【請求項7】
前記第2のメッセージは、前記受信した位置決定信号の前記測定された強度を更に含む、請求項2に記載の方法。
【請求項8】
前記アンカー装置は、第3のメッセージをサーバに送信し、前記第3のメッセージは少なくとも前記第2のメッセージと前記アンカー装置の位置証明とを含む、請求項2に記載の方法。
【請求項9】
前記第3のメッセージは、前記アンカー装置に関連付けられた秘密暗号鍵を用いて署名され、前記サーバは前記アンカー装置に関連付けられた公開鍵を用いて第3のメッセージを検証する、請求項8に記載の方法。
【請求項10】
前記鍵は一意的である、請求項2に記載の方法。
【請求項11】
前記受信した位置決定信号は、建物の部屋に配設されたビーコンによって提供される、請求項1に記載の方法。
【請求項12】
前記アンカー装置は、信頼された実行環境を含む信頼された装置である、請求項1に記載の方法。
【請求項13】
前記コンピュータシステムの位置証明は、前記アンカー装置を介して前記コンピュータシステムに送信される、請求項1に記載の方法。
【請求項14】
前記コンピュータシステムは、ユーザアプリケーションを実行し、前記コンピュータシステムの位置証明は前記ユーザアプリケーションに提供される、請求項1に記載の方法。
【請求項15】
前記アンカー装置は、加速度計を含み、前記アンカー装置の前記動きは前記加速度計を用いて検出される、請求項1に記載の方法。
【請求項16】
前記アンカー装置の前記位置証明は、前記検出した動きが所定の閾値を超える場合に無効にされる、請求項15に記載の方法。
【請求項17】
前記コンピュータシステムが前記アンカー装置と同じ場所に配置されているかどうかを判定することは、定期的に実行される、請求項1に記載の方法。
【請求項18】
中央処理装置、位置決定信号受信機、表示装置、及びメモリを備えるコンピュータシステムに、
a.前記位置決定信号受信機を用いて少なくとも1つの位置決定信号を受信することと、
b.受信した前記位置決定信号の強度を測定することと、
c.前記コンピュータシステムがアンカー装置と同じ場所に配置されているかどうかを判定することと、
d.前記コンピュータシステムが前記アンカー装置と同じ場所に配置されていると判定される場合、前記受信した位置決定信号の測定された前記強度に少なくとも基づいて前記コンピュータシステムの位置を判定することと、
を含む、方法を実行させる、プログラムであって、
前記コンピュータシステムの位置を判定することはサーバにより支援され、
前記サーバは、
前記アンカー装置を物理的位置に固定する固定処理中に取得された前記アンカー装置の位置証明を前記アンカー装置から取得し、前記コンピュータシステムの位置証明を生成する前に、前記アンカー装置の位置証明の有効性を検証し、前記アンカー装置の位置証明が有効である場合に、前記受信した位置決定信号の前記測定された強度に少なくとも基づいて前記コンピュータシステムの位置を判定し、前記コンピュータシステムの位置証明を前記コンピュータシステムに送信するように構成され、
前記アンカー装置を固定することは、
前記アンカー装置で少なくとも1つの第2の位置決定信号を受信することと、
受信した前記第2の位置決定信号の強度を測定することと、
前記サーバにより前記受信した第2の位置決定信号の測定された前記強度に少なくとも基づいて前記アンカー装置の位置を判定し、前記アンカー装置に位置証明を送信することと、
前記アンカー装置の動きを検出することと、
検出した前記動きに基づいて前記アンカー装置の前記位置証明を無効にすることと、を含む、
プログラム。
【請求項19】
中央処理装置、位置決定信号受信機、及びメモリを備えるコンピュータシステムであって、前記メモリが、前記コンピュータシステムに、
a.前記位置決定信号受信機を用いて少なくとも1つの位置決定信号を受信することと、
b.受信した前記位置決定信号の強度を測定することと、
c.前記コンピュータシステムがアンカー装置と同じ場所に配置されているかどうかを判定することと、
d.前記コンピュータシステムが前記アンカー装置と同じ場所に配置されていると判定される場合、前記受信した位置決定信号の測定された前記強度に少なくとも基づいて前記コンピュータシステムの位置を判定することと、
を含む、方法を実行させるためのプログラムを記憶し、
前記コンピュータシステムの位置を判定することはサーバにより支援され、
前記サーバは、
前記アンカー装置を物理的位置に固定する固定処理中に取得された前記アンカー装置の位置証明を前記アンカー装置から取得し、前記コンピュータシステムの位置証明を生成する前に、前記アンカー装置の位置証明の有効性を検証し、前記アンカー装置の位置証明が有効である場合に、前記受信した位置決定信号の前記測定された強度に少なくとも基づいて前記コンピュータシステムの位置を判定し、前記コンピュータシステムの位置証明を前記コンピュータシステムに送信するように構成され、
前記アンカー装置を固定することは、
前記アンカー装置で少なくとも1つの第2の位置決定信号を受信することと、
受信した前記第2の位置決定信号の強度を測定することと、
前記サーバにより前記受信した第2の位置決定信号の測定された前記強度に少なくとも基づいて前記アンカー装置の位置を判定し、前記アンカー装置に位置証明を送信することと、
前記アンカー装置の動きを検出することと、
検出した前記動きに基づいて前記アンカー装置の前記位置証明を無効にすることと、を含む、
コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施形態は、概して、測位システムに関し、より詳細には、高信頼性の屋内での近接度及び位置決定のための方法、プログラム及びコンピュータシステムに関する。
【背景技術】
【0002】
当該技術分野において長年の問題は、屋内での位置の高速かつ正確な判定である。様々なハードウェア及びソフトウェア技術が作り出されており、特に近年では、信頼性が高く、かつ配備が容易な解決策が提案されている。これらの技術の多くにより、スマートフォン及びタブレットなどの毎日使用する装置は屋内での位置を判定することが可能となっている。実際に、AppleのiBeacon(登録商標)フレームワークなどの技術は、大規模な採用、配備及び使用が分かってきている。結果として、屋内での位置決定に対応したアプリケーションの急増のために技術的基盤が敷かれている。
【0003】
幅広い種類のアプリケーションに対して、正確な位置情報は、ユーザの体験を支援又は向上させる状況を提供する。これらのアプリケーションとしては、関心地点アプリケーション、地図作成ツール、及びソーシャルプレゼンス共有アプリケーションが挙げられる。不正確又は操作された位置がこれらのアプリケーションの有用性に影響を及ぼすが、サービス提供者の観点から害はないであろう。しかし、位置の精度及び信頼性がアプリケーション自体に不可欠である多くの他のアプリケーションがある。これらのアプリケーションは、部屋への出入り、在庫管理、及び文書アクセスソリューションを含んでおり、物理的対象又は仮想物体へのアクセスを許可又は拒否するこれらの決定はユーザの物理的位置を含む状況的側面を有する。
【0004】
信頼された位置決定に焦点を当てた研究及び開発がこれまでかなりなされてきた。しかし、この作業の多くは、点の解決策を探求してきた。例えば、匿名だが位置ベースのサービスの検証可能な位置チェックイン、既存の基盤に便乗する共存のコンテキストベースの証明、並びに複数の利害関係者のWiFi又はセルラー環境で(粗い)位置の安全な証明を作成及び検証するためのシステムを提供するために、解決策が開発されてきた。参照により本明細書に組み込まれる下記特許文献1には、位置及び時間情報をブルートゥース(登録商標)低エネルギー(Bluetooth(登録商標) Low Energy、BLE)ビーコンベースの位置フレームワークに符号化する新規なプロトコルを用いて、ある程度の位置信頼性を保証できる解決策が記載されている。このプロトコルは、リプレイ攻撃を防ぐが、2人以上のユーザがあるユーザのためにそのユーザの物理的位置とは異なる位置証明を生成するように共謀する攻撃の影響を依然として受けやすい。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【文献】Freund,Y.、Schapire,R.、“A decision-theoretic generalization of on-line learning and an application to boosting”、Journal of Computer and System Sciences、1997年、第55巻第1号、p.119-139
【文献】Hastie,T.、Tibshirani,R.、Friedman,J.、“The Elements of Statistical Learning”、(米国)、Springer、2001年
【文献】Bolliger,P.、“Redpin-adaptive,zero-configuration indoor localization through user collaboration”、Proceedings of the ACM international workshop on Mobile entity lokalization and tracking in GPS-less environments(MELT 2008)、2008年、p.55-60
【文献】Biehl,J.T.、Cooper,M.、Filby,G.、Kratz,S.、“LoCo:A Ready-to-Deploy Framework for Efficient Room Localization using Wi-Fi”、Proceedings of the ACM Conference on Ubiquitous Computing(Ubicomp 2014)、2014年
【文献】Bogdan Carbunar、Radu Sion、Rahul Potharaju、Moussa Ehsan、“Private badges in geosocial networks”、Applied Cryptography and Network Security(ACNS)、2012年
【文献】Yih-Chun Hu、Adrian Perrig、David B.Johnson、“Packet Leashes:A Defense against Wormhole Attacks in Wireless Networks”、INFOCOM 2003、2003年
【文献】Iasonas Polakis、Stamatis Volanis、Elias Athanasopoulos、Evangelos P.Markatos、“The man who was there:Validating check-ins in location-based services”、Proceedings of the 29th Annual Computer Security Applications Conference、ACSAC’13、2013年
【文献】Jacob T.Biehl、Adam J. Lee、Gerry Filby、Matthew Cooper、“You’re where? Prove it!:towards trusted indoor location estimation of mobile devices”、Proceedings of the 2015 ACM International Joint Conference on Pervasive and Ubiquitous Computing”、ACM、(米国)、2015年、p.909-919
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、位置決定信号位置決定信号位置決定信号コンピュータシステムの位置決定信号受信機が受信した位置決定信号の測定された強度に基づいて位置を判定することを含む方法、プログラム及びコンピュータシステムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本明細書に記載の発明概念の一態様によれば、中央処理装置、位置決定信号受信機、及びメモリを備えるコンピュータシステムが実行する方法であって、位置決定信号受信機を用いて少なくとも1つの位置決定信号を受信することと、受信した位置決定信号の強度を測定することと、コンピュータシステムがアンカー装置と同じ場所に配置されているかどうかを判定することと、コンピュータシステムがアンカー装置と同じ場所に配置されていると判定される場合、受信した位置決定信号の測定された強度に少なくとも基づいて位置を判定することとを含む、方法が提供される。
【0009】
1又は複数の実施形態では、コンピュータシステムがアンカー装置と同じ場所に配置されているかどうかを判定することは、アンカー装置から鍵を含む第1のメッセージを受信することと、少なくとも受信した鍵を含む第2のメッセージをアンカー装置に送信することと、アンカー装置で、第2のメッセージのタイミングとの関連で第1のメッセージのタイミングを分析することとを含む。
【0010】
1又は複数の実施形態では、コンピュータシステムは、第1のメッセージと第2のメッセージとの間に経過した時間が所定の閾値を超えない場合、アンカー装置と同じ場所に配置されていると判定される。
【0011】
1又は複数の実施形態では、鍵は、ランダムに生成されるノンスである。
【0012】
1又は複数の実施形態では、第2のメッセージは、コンピュータシステムに関連付けられた秘密暗号鍵を用いて署名され、アンカー装置はコンピュータシステムに関連付けられた公開鍵を用いて第2のメッセージを検証する。
【0013】
1又は複数の実施形態では、第1のメッセージを受信することと、第2のメッセージを送信することとは、近距離無線通信(NFC)プロトコルを介して行われる。
【0014】
1又は複数の実施形態では、第2のメッセージは、受信した位置決定信号の測定された強度を更に含む。
【0015】
1又は複数の実施形態では、アンカー装置は、第3のメッセージをサーバに送信し、第3のメッセージは少なくとも第2のメッセージとアンカー装置の位置証明とを含む。
【0016】
1又は複数の実施形態では、第3のメッセージは、アンカー装置に関連付けられた秘密暗号鍵を用いて署名され、サーバはアンカー装置に関連付けられた公開鍵を用いて第3のメッセージを検証する。
【0017】
1又は複数の実施形態では、鍵は一意的である。
【0018】
1又は複数の実施形態では、受信した位置決定信号は、建物の部屋に配設されたビーコンによって提供される。
【0019】
1又は複数の実施形態では、アンカー装置は、信頼された実行環境を含む信頼された装置である。
【0020】
1又は複数の実施形態では、受信した位置決定信号の測定された強度に少なくとも基づいて位置を判定することは、サーバ上で行われ、サーバは位置証明をコンピュータシステムに送信するように構成される。
【0021】
1又は複数の実施形態では、位置証明は、アンカー装置を介してコンピュータシステムに送信される。
【0022】
1又は複数の実施形態では、コンピュータシステムは、ユーザアプリケーションを実行し、位置証明はユーザアプリケーションに提供される。
【0023】
1又は複数の実施形態では、本方法は、アンカー装置を固定することを更に含む。
【0024】
1又は複数の実施形態では、アンカー装置を固定することは、アンカー装置で少なくとも1つの第2の位置決定信号を受信することと、受信した第2の位置決定信号の強度を測定することと、受信した第2の位置決定信号の測定された強度に少なくとも基づいてアンカー装置の位置を判定することとを含む。
【0025】
1又は複数の実施形態では、受信した第2の位置決定信号の測定された強度に少なくとも基づいてアンカー装置の位置を判定することは、サーバ上で行われ、サーバはアンカー装置に位置証明を送信するように構成される。
【0026】
1又は複数の実施形態では、本方法は、アンカー装置の動きを検出することと、検出した動きに基づいてアンカー装置の位置証明を無効にすることとを更に含む。
【0027】
1又は複数の実施形態では、アンカー装置は、加速度計を含み、アンカー装置の動きは加速度計を用いて検出される。
【0028】
1又は複数の実施形態では、アンカー装置の位置証明は、検出した動きが所定の閾値を超える場合に無効にされる。
【0029】
1又は複数の実施形態では、コンピュータシステムがアンカー装置と同じ場所に配置されているかどうかを判定することは、定期的に行われる。
【0030】
本明細書に記載の発明概念の別の態様によれば、中央処理装置、位置決定信号受信機、ディスプレイ、及びメモリを備えるコンピュータシステムに、位置決定信号受信機を用いて少なくとも1つの位置決定信号を受信することと、受信した位置決定信号の強度を測定することと、コンピュータシステムがアンカー装置と同じ場所に配置されているかどうかを判定することと、コンピュータシステムがアンカー装置と同じ場所に配置されていると判定される場合、受信した位置決定信号の測定された強度に少なくとも基づいて位置を判定することとを含む、方法を実行させる、プログラムが提供される。
【0031】
本明細書に記載の発明概念の更に別の態様によれば、中央処理装置、位置決定信号受信機、及びメモリを備えるコンピュータシステムであって、このメモリがこのコンピュータシステムに、位置決定信号受信機を用いて少なくとも1つの位置決定信号を受信することと、受信した位置決定信号の強度を測定することと、コンピュータシステムがアンカー装置と同じ場所に配置されているかどうかを判定することと、コンピュータシステムがアンカー装置と同じ場所に配置されていると判定される場合、受信した位置決定信号の測定された強度に少なくとも基づいて位置を判定することとを含む、方法を実行させるためのプログラムを記憶する、コンピュータシステムが提供される。
【0032】
本発明と関連した更なる態様は、一部は以下の説明に記載され、一部は該説明から明らかであるか、又は本発明の実践によって知ることができる。本発明の態様は、要素及び様々な要素の組み合わせ、並びに以下の発明を実施するための形態及び添付の特許請求の範囲で特に指摘する態様によって実現及び達成することができる。
【0033】
前述及び以下の説明は、例示的かつ説明的であるものにすぎず、いかなる形においても特許請求した発明又はこの適用を限定するものではないことが理解されるべきである。
【0034】
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本発明の実施形態を例示しており、その説明とともに、発明概念の原理を説明及び例示するのに役立つ。
【発明の効果】
【0035】
本発明によれば、コンピュータシステムの位置決定信号受信機が受信した位置決定信号の測定された強度に基づいて位置を判定することを含む方法、プログラム、及びコンピュータシステムが提供される。
【図面の簡単な説明】
【0036】
【
図1】本明細書に記載の高信頼性位置決定システムの一実施形態の例示的論理図を示す。
【
図3】アンカー装置と安全なサーバとの間に位置証明を確立するための例示的制御フローを示す。
【
図4】高信頼性の位置証明を確立するための例示的制御フロー全体を示す。
【
図5】クライアント装置に確認する(任意の)BLE近接度の例示的制御フローを示す。
【
図6】
図1に示した位置決定システムに関連したクライアント装置又はアンカー装置として使用され得るコンピュータ移動体システムの例示的実施形態を示す。
【
図7】
図1に示した位置決定システムの中央サーバとして使用され得るコンピュータサーバシステムの例示的実施形態を示す。
【発明を実施するための形態】
【0037】
以下の詳細な説明では、同一の機能的要素が同じ番号を付す添付図面に言及する。前述の添付図面は、例示のために、限定するものではなく、本発明の原理と一致する特定の実施形態及び実装形態を示す。これらの実装形態は、当業者が本発明を実践することを可能にするのに十分詳細に記載され、他の実装形態が利用されてもよく、かつ様々な要素の構造変化及び/又は置換が本発明の範囲及び趣旨から逸脱することなく行われ得ることが理解されるべきである。したがって、以下の詳細な説明は、限定的に解釈すべきではない。加えて、記載されるような本発明の様々な実施形態は、汎用コンピュータで動作するソフトウェアの形態で、専用ハードウェアの形態で、又はソフトウェアとハードウェアとの組み合わせで実施することができる。
【0038】
下記の説明は、安全な位置ベースのアプリケーションを作成するための技術的枠組みを提供することに焦点を当てる。従来技術に関連付けられた上記及び他の問題に対処するために、本明細書に記載の1又は複数の実施形態は、以前に提案された方法と比較して極めて低い基盤負担を必要とする高信頼性の近接度及び位置決定の証明を実行するための方法、プログラム及びコンピュータシステムを実施する。1又は複数の実施形態では、高信頼性の近接度及び位置決定の証明を実行する前述の目的を達成するために、装置又は複数の装置の組が特定の屋内の位置にありその位置に滞在していることを判断するために、新しい暗号技術を伴う安全な位置決定技術を活用するプロトコルの組及び専用のハードウェア装置が提供される。様々な実施形態では、この技術は、安全な文書アクセスなど、いくつかの安全な位置アプリケーションを支持するために使用することができる。
【0039】
1又は複数の実施形態では、ユーザが大きな基盤負担なしに一般的商品の計算装置(例えば、タブレット及びスマートフォン)上で安全な情報にアクセスすることを可能にし得る技術的解決策が提供される。様々な実施形態では、記載した技術は、エンドユーザ装置で動作するソフトウェアサービス、ネットワークアクセス可能なサーバ(例えばクラウド)上のサービス、及び耐タンパ性の信頼される計算プラットホーム上に高信頼性位置サービスを提供する専用装置の集合からなる。
【0040】
記載した技術の必要性を示すために、位置ベースの文書アクセスの単純な事例を考慮されたい。例えば、視聴装置が特定の物理的空間(例えば、オフィスビル内の特定の会議室)にあるときにのみ電子文書が視聴可能であるように指定する事例が挙げられる。このアプリケーションは、適切な部屋で装置を位置決定する正確さ及び精度を有する基礎的な位置決定技術を活用しなければならず、その判定において信頼できなければならない。一般的な商品の市販の装置では、これを実現することは難しい。装置自体は、信頼された計算プラットホームではなく、位置判定を行うために使用された情報を取り込んで送信するために使用されるセンサ及び/又はネットワークでもない。
【0041】
本明細書に記載の実施形態は、位置推定における信頼性を増大し、この推定を検知、計算、及び再生するために使用される計算基盤を提供する。高信頼性装置位置決定に対する基盤中心の解決策があるが(例えば、以前の発明に記載されるように)、記載した技術は、広範な高信頼性アプリケーションを支持することができる、この問題に対する軽快かつ柔軟な解決策を提供する。
【0042】
高信頼性位置決定システムアーキテクチャ
図1は、本明細書に記載の高信頼性位置決定システム100の一実施形態の例示的論理図を示す。例示的な一実施形態では、高信頼性位置決定システム100は、複数のクラウド接続されたビーコン101の配備、クラウドビーコンエージェント(CBA)105、中央サーバ104、中央サーバ104で実行する位置分類エンジン(LCE)112、及びクライアント装置102を含む、いくつかの構成要素を含む。クライアント装置102は、クライアント位置サービス103及びクライアントアンカーサービス106の両方を動作させる。最終的に、高信頼性位置決定システム100は、アンカー装置107と呼ばれる専用装置を含む。アンカー装置107は、位置サービス108、アンカーサービス109、及び環境サービス110を実行する。高信頼性位置決定システム100の上記構成要素の各々を詳細に後述する。1又は複数の実施形態では、クライアント装置102は、クライアントアプリケーション111を更に実行することができる。
【0043】
クラウド接続された安全なビーコン101
本明細書に記載の高信頼性位置決定システムの1又は複数の実施形態では、位置推定は、
図1に示す複数の固定されたビーコン装置101からの信号強度測定値の収集によって判定される。様々な無線機からの測定値が使用されるが、記載したシステム100の一実施形態は、幅広い既存の装置にわたって互換性を維持する、当業者に周知のブルートゥース(登録商標)低エネルギー装置に依存する。しかし、他の種類のビーコン装置101が位置推定を容易にするために使用されてもよく、したがって記載したシステムはある特定の種類又は複数の種類のビーコン装置に限定されないことに留意されたい。
【0044】
図2は、ブルートゥース(登録商標)低エネルギー(BLE)無線機201及びWiFi対応システムオンチップ(SoC)202という2つのハードウェア構成要素を含む安全なビーコン101の例示的実施形態を示す。1又は複数の実施形態では、SoC202は、そのソフトウェア及び機能性を一定の間隔で更新させるクラウドベースのランタイムエンジン(クラウドビーコンエージェント(CBA)105(
図1))と安全に通信する。SoC202装置はまた、ICTバス接続を通じてブルートゥース(登録商標)低エネルギー無線機201の状態を制御する。例示的な一実施形態では、ビーコン装置101は、3V出力に電力調整された4つのAA 1.5V単3電池によって動力を供給される。これにより、通常の使用で少なくとも1年間、ビーコンに電力が供給される。
【0045】
本明細書に記載の位置決定システム100の1又は複数の実施形態では、クラウドビーコン101は、ビーコンモード及び更新モードという2つのモードで動作する。ビーコンモードでは、システムオンチップ202はスリープ状態にされ、ブルートゥース(登録商標)低エネルギー無線機201は、定期的(例えば2000msごと)に起動してiBeacon(登録商標)互換性の広告を送信するようにプログラミングされる。一実施形態では、この広告は、装置を特定のサービス又は能力と関連付けるUUID、主ID(Major ID)、及び副ID(Minor ID)という3つの主要セグメントを含む。UUIDは、ビーコン101を位置決定システム100のビーコンとして識別するために使用される。主IDは、各ビーコン101を一意に識別するために使用される。このIDは、ビーコン101の受信信号強度とともに、位置分類エンジン112によって装置の位置を判定するために使用される。一実施形態では、分類エンジン112は、ビーコンの主IDを使用して、装置の部屋レベルの位置を分類する。
【0046】
最後に、副IDは、更に詳細に後述する位置権限によって使用される暗号材料を提供するために使用される。接続されたビーコンの主要機能は、副ID値を設定及び制御して、位置権限によって使用される暗号鍵を正確に送信することができることである。分類エンジン112は、ビーコンの副IDを使用して、リプレイを又はスプーフィング攻撃を防ぐように広告の鮮度を確保する。
【0047】
1又は複数の実施形態では、一定間隔だが設定可能な間隔で生じる更新モードで、WIFIシステムオンチップ(SoC)202はCBA105に接続して新しいビーコン割当をダウンロードする。これらの割当は、新しい暗号鍵に基づいた副ID割当、又は位置基盤全体を無効にして再構成する新しいUUID/主ID割当を含む。この状態で、iBeacon(登録商標)広告のすべてのパラメータが更新され得る。ビーコン101が配備されると、この動作は、位置権限によって提供された新しい一意の鍵である新しい副IDを正常に構成する。
【0048】
位置分類エンジン(LCE)
一実施形態では、LCEは、当該技術分野において周知であるランドマークに基づく位置分類を提供する。別の実施形態では、LCEは、(位置コンテキストではなく距離に基づいたヒューリスティクスを用いて、又はランドマーク位置を判定するための地図オントロジー上への座標位置の投射を介して)座標に基づく位置(X、Y、e)を提供する位置推定技術を実装する。
【0049】
1又は複数の実施形態では、記載したシステムに利用される位置分類技術は、例えば、上記非特許文献1及び非特許文献2に記載されるブースティングのアンサンブル学習法に基づいている。上記非特許文献3に記載される方法などのより一般的な整合法とは対照的に、ブースティングは、訓練セットのサイズとともに増大するサーチデータ構造の記憶を必要とせずに類似の分類精度を提供する。さらに、ブースティングは、オフライン訓練での計算のほとんどを行い、大きさ順の分類ランタイム性能を整合法と比較して速くすることが可能である。例えば、上記非特許文献4を参照されたい。
【0050】
1又は複数の実施形態では、位置分類エンジン112は、分離空間量子化、又はより一般的には部屋(例えば、パーソナルオフィス)若しくは対象の位置(例えば、大空間内のランドマークの近く)に対する位置を提供する。1又は複数の実施形態では、各分離位置では、RSSIスキャンベクトルSがその部屋/位置で観察された確率を表す得点を出力するバイナリ分類器が構築される。
【0051】
Froom(S)=Σmαmhm(S)
【0052】
1又は複数の実施形態では、各部屋ごとの分類器は、スカラー重みαmに従って「弱学習器(weak learners)」hmを結合する。弱学習器は、スカラー特徴を閾値θmと比較する決定株である。
【0053】
【0054】
訓練では、閾値θmは、誤差が最小となるように調整される。特徴ベクトルは、要素Xmからなるように定義され、下記の各RSSIベクトルSから計算される。
【0055】
1又は複数の実施形態では、観察されたRSSIベクトルが与えられると、ベクトルの要素間の一意の対の差(マージン)の組が計算される。総計B個のビーコンの環境では、得られるマージンの特徴ベクトルは、0.5・B・(B-1)のサイズを有する。直感的に、これらの特徴は、ビーコン対の粗いオーダーの情報を表す。RSSIベクトルS∈RBは、以下の要素を有するマージン特徴ベクトルに変換される。
【0056】
Xm=S(am)-S(bm)
【0057】
ここで、am,bm∈{1,・・・,B}である。訓練セットで特定のビーコンに対するRSSI値が欠けている場合、モバイルクライアント106に対して可視ではなかったことを示すために公称値Rminに設定される。したがって、特定のビーコン101が特定の位置で可視ではないという事実が特徴に組み込まれる。
【0058】
1又は複数の実施形態では、訓練スキャンから計算されたマージン特徴は、分類器訓練への入力を形成する。各スカラーマージン特徴は、任意の部屋ごとの分類器Froom(S)に含まれるために利用可能な弱学習器(hm)に対応する。訓練手順は、その位置とすべての他のものを最良に区別する弱学習器の位置固有のセットを識別する。弱学習器及び各位置ごとの分類器に対する相対的な重み(上記式のαm)は、例えば、上記非特許文献2に記載されるように、訓練データにわたるサンプルごとの重みを用いて誤差を最適化する貪欲な反復手順で学習される。
【0059】
1又は複数の実施形態では、位置判定に関して、1対全体の式が使用される。推定された部屋は単純に、試験スキャンStestに適用されるとき、部屋ごとの分類器の組の間での最大得点の部屋である。
【0060】
【0061】
1又は複数の実施形態では、分類器訓練で選択されたRSSI差の必要な組だけが計算される。これらの差は、閾値(θm)と比較され、次に線形結合される。
【0062】
中央サーバ及びクラウドビーコンエージェント
1又は複数の実施形態では、中央サーバ104は、ビーコン101とクラウドビーコンエージェント(複数可)105とクライアント装置(複数可)102とアンカー装置(複数可)107との間で基本的な調整活動を行う。1又は複数の実施形態では、中央サーバ104の重要な役割は、暗号鍵の組を生成及び維持することである。これらの鍵は、詳細に後述する位置セキュリティプロトコルの証明の一部として使用される。例示的な一実施形態では、規定の間隔で、新しい16ビットの暗号鍵が中央サーバ104によって各ビーコン101のために生成される。前述の暗号鍵は、中央サーバ104によってクラウドビーコンエージェント105に配布され、この鍵は次に、16ビットの暗号鍵を広告の副IDフィールド内に符号化する各ビーコン101のために新しい広告プロファイルを生成する。これらの新しい広告プロファイルは次に、更新のために起動するときに個々のビーコン101にプッシュ送信される。中央サーバ104は、ビーコン101に配布された現在の鍵及び最近の鍵のリストを保持する。中央サーバ104はまた、位置証明権限としての役割を果たす。クライアントが中央サーバ104にスキャン記録を提供すると、そのサーバは、LCEを用いて位置決定を行うと共に、暗号鍵を埋め込んだ副IDを比較することができる。1又は複数の実施形態では、サードパーティAPIもまた、中央サーバ104によって提供される。一意のAPIアクセス鍵を用いて、外部ウェブアプリケーションは、ユーザ装置102の位置に対してREST型の要求をすることができる。
【0063】
1又は複数の実施形態では、高信頼性位置推定の基本的方法は次のように行われる。最初に、スキャンデータがクライアント装置102及び/又はアンカー装置107によって収集され、中央サーバ104に渡される。スキャンは、対応するハードウェアIDを有するビーコン101からの受信信号強度(RSSI)測定値を含み、これらのIDはクラウドビーコンエージェント105によってビーコン101に以前に配布されたビーコンごとの暗号鍵を含む。このスキャンデータは、中央サーバ104にも利用可能なクライアントごとの暗号鍵での暗号化を用いて中央サーバ104に送信される。中央サーバ104は、受信した情報に基づいてユーザ装置102の位置を判定し、いずれの場合でも対応する位置情報を用いて位置チケット(証明)を返す。上述した構成は、ビーコンのハードウェアに対する修正を必要とせず、またいかなる追加のクライアント側処理も必要としない。
【0064】
クライアント装置サービス
1又は複数の実施形態では、クライアント装置102は、エンドユーザアプリケーション111に加えて、2つの追加のサービスとしてクライアントアンカーサービス106及びクライアント位置サービス103を実行する。一実施形態では、エンドユーザアプリケーション111は、ユーザ装置の位置に基づいて文書へのアクセスを許可又は拒否するように構成された安全な文書ビューアであり得る。別の実施形態では、エンドユーザアプリケーション111は、ユーザ装置の位置に基づいてドアロックを開けるように構成された安全な入室制御アプリケーションであり得る。
【0065】
一実施形態では、クライアント位置サービス103は、システムレベルの位置推定活動に関与する。クライアント位置サービス103は、受信信号強度(RSSI)の測定値とともにUUID、主ID、及び副IDを含む近くの位置の広告を定期的に捕捉する。スキャン記録の組が収集されると、クライアント位置サービス103は、この情報を位置分類エンジン(LCE)に提供する。様々な実施形態では、LCEは、クライアント装置102でローカルに分類を行うか、又はスキャン情報をLCE112のサーバベースのインスタンスに送信することができる。
【0066】
1又は複数の実施形態では、クライアントアンカーサービス106は、アンカー装置107との対話を処理する。主に、この通信は、高信頼性位置証明を有効にするように設計される。一実施形態では、これは、クライアント装置102が近距離無線通信チャネル(例えば大部分の装置に対するNFC)を用いてアンカー装置107との接続を開始することを含む。このチャネル上で、アンカー装置107は、所定の時間窓内で応答されなければならないチャレンジ(後述する、このやり取りのプロトコル)をクライアント装置102に発行する。いくつかの実施形態では、暗号化の小さいペイロード(上述したように)を伴う連続測距(BLEを用いた)は、位置サービス103との併用で、クライアント装置102がアンカー装置107の近接位置に残っていることについてのより高い信頼度を提供するために使用される。
【0067】
アンカー装置及びサービス
1又は複数の実施形態では、アンカー装置107は、専用の携帯型計算装置である。例示的な一実施形態では、この装置は、当該技術分野において周知で市販のRaspberry Pi又はDragonBoardなどのARMベースのコンピュータ、WiFi、BLE、NFC通信ハードウェア、simple I/O(LEDライト及びLEDディスプレイ)、及び環境センサ(加速度計)を含む。詳細に後述するように、アンカー装置107は、3つの主要サービスにわたって実装される多くの異なる機能を提供する。クライアント装置102と同様に、アンカー装置107の位置サービス108は、アンカー装置107の位置を監視することに関与する。したがって、アンカー装置107の位置サービス108は、BLEスキャン情報を収集し、アンカー装置107の位置を推定し(ローカルで行われる場合)、その情報(暗号化の小さな値を含む)を中央サーバ104に送信する。アンカーサービス109は、他のアンカー装置107と直接通信し、かつ、いくつかの実施形態では、それ自体に対するそれらの他のアンカー装置107の近接度を監視するために、BLEプロトコル上でのローカル通信サービスを提供する。対応するプロトコルを詳細に後述する。最後に、1又は複数の実施形態では、環境サービス110は、アンカー装置107上の環境センサを使用して、アンカー装置107がいつ移動したかを監視及び判定する。例えば、いくつかの使用事例では、このような動きを検出すること(「アンカーの固定状態を壊すこと」)は、アンカー装置107によって提供された位置信頼性が取り消されることをもたらす。
【0068】
信頼された装置管理
1又は複数の実施形態では、アンカー装置107の信頼性を高めるために、アンカー装置107を実装する際に使用される上述のARMベースのプラットホームの種類に存在する既存のセキュリティ特徴が活用される。具体的に、一実施形態では、アンカー装置107は、ARMのTrustZoneによって有効にされる信頼された実行環境(TEE)を使用する。代替的実施形態では、アンカー装置107は、DragonBoardで利用可能である、適切なファームウェアを使用する。更に別の実施形態では、アンカー装置107は、Raspberry Piで利用可能な分離TPMを使用して、暗号鍵のプラットホーム完全性及び安全な記憶を確保する。これらの技術により、アンカー装置107に必要な暗号鍵の安全な生成、記憶、及び使用が可能となり、それによりアンカー装置107からの暗号材料の引き出しを防ぐ。それらの技術により、プラットホームで実行するコードの完全性を確保するための暗号機構を提供する信頼されたブートの使用が更に可能となる。アンカー装置107の場合、これは、アンカー装置107に対して行われる改ざん攻撃の影響を限定するように、アンカー装置107の未修正のソフトウェアイメージのみがアンカー装置107のメモリに読み込まれ得るという信頼性を可能にする。
【0069】
プロトコル
上述の
図1は、本明細書に記載の高信頼性位置決定システム100のすべての構成要素間の通信路を更に示す。具体的に、この図では、使用されるプロトコルは、使用される通信方法を含む線で示され、これらの線は異なる線種で表される。
図1の凡例に記すように、4つの異なる通信プロトコルが使用される。これらのプロトコルは、ブルートゥース(登録商標)低エネルギー(BLE)、個々の装置でのプロセス間通信(IPC)、近距離無線通信(NFC)、及びWiFi上のトランスポート層セキュリティ(TLS)である。次に、これらのシステム構成要素の互いの相互作用を詳述する。
【0070】
アンカー装置107を固定することは、アンカー装置107間の相互作用、及び中央サーバ104によって実装される安全な屋内での位置決定サービスを含む。一実施形態では、アンカー装置107を物理的位置に結び付けるために、ユーザは、アンカー装置107を平面に配置し、装置上のアンカーボタンを押すだけである。
【0071】
図3は、アンカー装置107と安全なサーバ104との間の位置証明を確立するための例示的制御フロー300を示す。最初に、工程301では、アンカー装置107は、中央サーバ104によって管理されたBLEビーコン基盤からRSSIスキャンデータセットを収集することによってその物理的位置を判定する。このスキャンデータセットは次に、アンカー装置107によってデジタル署名され、TLSプロトコルを用いて保護されたWiFi上で中央サーバ104に渡される(工程302参照)。中央サーバ104は、RSSIスキャンデータセット上のデジタル署名を検証し、BLEビーコン基盤によってブロードキャストされた、循環している暗号コードが現在のものであることを確認し、アンカー装置107の位置を分類し、タイムスタンプ、使用されたRSSIスキャンデータセット、分類した位置、及びアンカー装置107のIDを含む、デジタル署名された位置証明を生成する(工程303参照)。得られた証明は次に、既存のTLSトンネルを介してアンカー装置107に返される(工程304参照)。この時点で、装置側での小さいLED読み出しは、位置証明内に符号化された位置を表示する。この位置を容認するために、ユーザは、アンカーボタンを再度押し、それによりアンカー装置107をこの物理的位置に固定する。
【0072】
この時点で、アンカー装置107は、高信頼性の位置証明の構築に関わる準備ができている。アンカー装置107はまた、アンカー装置107が移動したかどうかを判定する付属の加速度計を活用する環境監視処理をバックグラウンドで開始する。環境監視手順がアンカー装置107の動きを検出する場合、アンカー装置107は、それ自体の固定状態を解除し、現在の位置証明を無効にする。この状態で、アンカー装置107は再度固定されるまで高信頼性位置証明を作成する助けとなることができない。1又は複数の実施形態では、アンカー装置107は、検出した動きパラメータ(複数可)が記憶した閾値(複数可)を超えた場合、現在の位置証明が無効にされなければならないかどうかを判定するために、適切な動き閾値(複数可)を記憶する。
【0073】
高信頼性の位置証明の初期構築を次に記載する。
図4は、高信頼性位置証明を確立するための例示的制御フロー400の全体を示す。1又は複数の実施形態では、高信頼性承認証明を作成するために、移動装置102は、最初にその位置サービスフレームワークを活用して、BLEビーコン101からRSSIスキャンデータセットを収集することができる(工程401参照)。この装置102は次に、固定されたアンカー装置107上に配置され、前述の2つの装置間のNFC通信が可能となる。アンカー装置107内のアンカーサービスモジュール109は、乱数(n)(サーバノンス)を生成し、NFCを介してそれを移動装置102のアンカーサービスモジュール106に転送する(工程402参照)。移動装置102は次に、装置の一意の識別子(ID
D)、RSSIスキャンデータセット(R)、及びサーバノンス(n)を含むデジタル署名されたメッセージを作成する。このメッセージは次に、NFCを介してアンカー装置107に返される(工程403参照)。
【0074】
高信頼性証明の構築処理を完了するために、アンカー装置107は、最初に工程404でタイミングチェックを行って、工程402での乱数(n)の送信から工程403での前述のデジタル署名されたメッセージの受信までの経過時間が、スプーフィングを防ぐための所定の閾値を超えないかを検証する。加えて、前述のデジタル署名されたメッセージ内の移動装置102から受信されたノンス(n)は検証され得る。タイミングチェックが成功した場合、アンカー装置107はその後、その一意識別子(IDA)、固定処理中に取得した位置証明(pfA)、及びクライアント装置102によって生成されたデジタル署名されたメッセージ([IDD,R,n]KD
-1)を含むメッセージをデジタル署名する。このメッセージは次に、TLSを介して中央サーバ104に転送される(工程405参照)。移動装置102の位置証明を生成する前に、中央サーバ104は、pfAが依然として有効であるかを検証し、移動装置102及びアンカー装置107のデジタル署名が正しいかを検証し、RSSIデータセットから装置位置を分類し、この分類された位置がpfAでの位置に整合することを確実にする(工程406参照)。加えて、前述のデジタル署名されたメッセージ内の移動装置102から受信されたノンス(n)は検証され得る。これらのチェックのすべてが成功した場合、中央サーバ104は、移動装置102に対する位置証明(pfD)を発行する。この位置証明(pfD)は、TLSを介してアンカー装置107に返され(工程407参照)、続いて、アンカー装置107によってNFCを介して移動装置102に転送される。
【0075】
当業者に理解されるように、NFCの近接場の性質は、移動装置102がその承認証明を構築するときにアンカー装置107と共在することを確実にする。複数の当事者が現場外の攻撃者に対する位置証明を生成するように共謀する攻撃の脅威を軽減するために、アンカー装置107は、
図4における第1のメッセージ交換に対する厳しいタイミング制約を実施する(工程404参照)。WiFi又はBLEを介してノンスnを共謀当事者に転送することと、署名を含む応答を待つこととは、これらのタイミング制約に違反し、不当な遅延を検出する際に、アンカー装置107にプロトコルを停止させる。さらに、プロトコルの第3のメッセージでのクライアント装置102及びアンカー装置107の署名により、中央サーバ104はクライアント装置102及びアンカー装置107がこの証明の構築で積極的に協力していることを確実にすることができる。具体的には、第2のメッセージ(クライアント装置102によって署名される)は、第3のメッセージ(アンカー装置107によって署名される)に埋め込まれ、これらのメッセージをプロトコルの単一の実行に結び付ける。最終的に、スキャンデータセット内の暗号コード、アンカー装置107のノンスn、及びpf
Aでのタイムスタンプにより、処理自体の鮮度のチェックが可能となり、リプレイ型の攻撃を防ぐ。
【0076】
1又は複数の実施形態では、任意に、アンカー装置107の支援で作成された位置証明は、2つの手法のうちの1つで連続的な監視を受ける可能性がある。第一に、クライアント装置102又は他のクラウドサービスで実行する位置対応アプリケーションは、移動装置102がその高信頼性証明pfDで特定された位置からそれるときに通知されるコールバック(TLSを介する)を中央サーバ104に登録することができる。
【0077】
第二に、アンカー装置107自体は、近くの移動装置102の位置を監視するのに積極的な役割を果たすことができる。
図5は、クライアント装置102に確認する(任意の)BLE近接度のための例示的制御フロー500を示す。
図5に示すように、BLEチャネルは、低電力信号を用いて移動装置102をポーリングして、その装置がアンカー装置107に近接位置に残っていることを確実にするために使用することができる(その中でハードウェアが制御され、信頼され、かつ特別に構成される)。特定の送信電力を確実にするために、別個のBLEドーターボードが、低電力(例えば-20dBm、約1メートルの受信距離が-115dBm信号に制限される)で送信するためにファームウェア及び/又は物理的アンテナ制限とともに使用されてもよい。設定可能な時間間隔で、アンカー装置107は、特定の装置を識別すると共にその装置にランダムチャレンジを提供するメッセージを送信するためにBLEを使用する(
図5の工程501参照)。移動装置102は次に、BLEを介してそのチャレンジに対してデジタル署名で応答し、移動装置102がチャレンジを受信するのに十分に近接していたことを認める(工程502参照)。これらのチャレンジに応答することができない場合、アンカー装置107は中央サーバ104と連絡を取って、応答しない移動装置102の高信頼性位置証明を取り消させる。同様に、アンカー装置107が移動していることをアンカー装置107に取り付けられた加速度計が検出した場合、アンカー装置107が固定されたときから発行されたすべての高信頼性位置証明を取り消すように構成することができる。
【0078】
1又は複数の実施形態では、アンカー装置107によって発行されたランダムチャレンジに対するデジタル署名された応答502は、いくつかの移動装置102が範囲限定のBLE送信を受け取るのにアンカー装置107に十分に近かったことを確実にする。上述のNFCプロトコルと同様に、この応答を受信するための往復時間に対する制約は、不正な移動装置102がそのチャレンジを範囲外の当事者に転送して署名を生成し得る可能性を軽減する。
【0079】
1又は複数の実施形態では、高信頼性の位置証明は、定期的又はイベントに基づくトリガを用いて更に支援されてもよい。環境監視が十分ではない状況では、アプリケーション111は、ユーザ装置102が定期的又はイベント駆動型で明示的に高信頼性位置証明を更新することを要求することができる。アプリケーション111は、証明が更新される必要があると判定すると、移動装置102の位置サービスモジュール103から新しい高信頼性証明を要求することができる。これは、移動装置102に警告を出し、
図4に示されるプロトコルでアンカー装置107と関わるようユーザに求める。1又は複数の実施形態では、このプロトコルの正常終了により、更新された高信頼性位置証明が生成され、この証明は移動装置102上の位置サービス103に返され、要求しているアプリケーション111による消費のために利用可能にされる。
【0080】
例示的使用事例及び応用
以下の説明は、上述のシステム100が特定の使用シナリオを支持するエンドユーザによってどのように使用されるかについてのいくつかの実施例を提供する。記載のシナリオの各々は、アンカー装置107を物理的位置に固定することから始まり、次のように行われる。具体的には、アンカー装置107を物理的位置に結び付けるために、ユーザは、アンカー装置107を平面に配置し、アンカー装置107上のアンカーボタンを押すだけである。最初に、この装置は、上述のように、その物理的位置を判定する。一実施形態では、アンカー装置107側での小さいLED読み出しは、その後、位置決定サービス108によって判定された位置を表示する。この位置を容認するために、ユーザは、アンカーボタンを再度押し、それによりアンカー装置107をこの物理的位置に固定する。この時点で、アンカー装置107は、高信頼性の位置証明の構築に関わる準備ができている。
【0081】
シナリオ1:初期位置決定のみ。高信頼性位置証明が位置認識コンピュータ処理セッションの開始時にのみ要求され(例えば、高機密性のリソースへのアクセスを可能にするために)、より低い信頼性の位置証明は連続的な位置追跡のために使用されて、装置が高信頼性証明の位置から離れることが見いだされる場合にアクセスを取り消す。この状況では、管理者がアンカー装置107を導入して作業セッションを開始し、装置が固定され、ユーザが装置を活用して高信頼性位置証明をブートストラップすることもある。この時点で、管理者は、アンカー装置107とともに離れ、ユーザは、その位置を離れるまで作業を続けることができる。
【0082】
シナリオ2:継続的監視。アンカー装置107はまた、初期の高信頼性証明が作成された後、その環境を厳重に監視することによってユーザの位置を監視することにより積極的な役割を果たすことができる。いずれかの装置がアンカー装置107から数メートル以上移動する場合、それらの高信頼性証明は、アンカー装置107及び中央サーバ104によって取られた協働的動作によって取り消され得る。さらに、アンカー装置107がそれ自体、移動していると判定する場合、アンカー装置107は、最後に固定されたとき以来自らが作成に関与したすべての高信頼性証明を取り消すことができる。
【0083】
シナリオ3:定期的又はイベントに基づくトリガ。アプリケーションが移動装置102をアンカー装置107上に配置し、かつ位置決定プロトコルを再実行することによって、高信頼性位置証明を更新することをユーザに要求するときもある。様々な実施形態では、これは、クラウドサービスAPIを介した、移動装置102で動作するアプリケーション111とアンカー装置107との間の調整によって可能にすることができ、これらのトリガは、定期的に(例えば、1時間に1回)又はイベント駆動型で(例えば、高機密性リソース要求に応じて)設定されてもよい。
【0084】
シナリオ4:デジタル公証機能。中央サーバ104、及び拡大解釈してアンカー装置107は、上述のように、信頼される位置及びタイムスタンプが作成され得る機構を提供する。この目的のために、様々な実施形態では、アンカー装置107は、複数のユーザの移動装置102と、物理的位置と、時間と、文書などのいくつかのコンテンツの項目との間の結合の作成を調整するために使用することができる。これは効果的に、様々なアプリケーションによって使用され得る高信頼性のデジタル公証機能を提供することができる。
【0085】
計算プラットホーム
図6は、
図1に示される位置決定システムに100関連して携帯クライアント装置102として使用され得るコンピュータ移動体システム600の例示的実施形態を示す。1又は複数の実施形態では、コンピュータ移動体システム600は、スマートフォン、携帯情報端末(PDA)、タブレットコンピュータ、又はスマートウォッチなどの移動計算装置のフォームファクタ内に実装することができ、これらの装置は広く市販されており、当業者に周知である。
【0086】
コンピュータシステム600は、データバス604、又は移動コンピュータシステム600の様々なハードウェア構成要素間で情報を通信するための他の相互接続若しくは通信機構と、情報を処理し、かつ他の計算タスク及び制御タスクを実施するためにデータバス604と結合した中央処理装置(CPU又は単純にプロセッサ)601と、を含むことができる。コンピュータシステム600はまた、ランダムアクセスメモリ(RAM)などのメモリ612、又はプロセッサ601によって実行される様々な情報並びに命令を記憶するためにデータバス604に結合した他の動的記憶装置を含む。メモリ612はまた、磁気ディスク、光ディスク、固体フラッシュメモリ装置、又は他の不揮発性固体記憶装置などの永続的記憶装置を含むことができる。
【0087】
1又は複数の実施形態では、メモリ612はまた、プロセッサ601による命令の実行中に一時変数又は他の中間情報を記憶するために使用されてもよい。任意に、コンピュータシステム600は、読み出し専用メモリ(ROM又はEPROM)602、又はコンピュータシステム600の操作に必要なファームウェア、基本入出力システム(BIOS)、並びにコンピュータシステム600の様々な構成パラメータなど、プロセッサ601の静的情報及び命令を記憶するためのデータバス604に結合された他の静的記憶装置を更に含むことができる。
【0088】
1又は複数の実施形態では、コンピュータシステム600は、表示装置609を組み込むことができ、この装置はまた、様々な情報をコンピュータシステム600のユーザに表示するためにデータバス604に結合することができる。代替的実施形態では、表示装置609は、グラフィックスコントローラ及び/又はグラフィックスプロセッサ(図示せず)に関連付けられてもよい。表示装置609は、例えば、薄膜トランジスタ(TFT)技術又は有機発光ダイオード(OLED)技術を用いて製造された結晶ディスプレイ(LCD)として実装されてもよく、これらの技術は当業者に周知である。様々な実施形態では、表示装置609は、コンピュータシステム600の残りの構成要素とともに同じ一般的な筐体に組み込まれてもよい。代替的実施形態では、表示装置609は、このような筐体の外側に位置決めされてもよい。
【0089】
1又は複数の実施形態では、コンピュータシステム600は、データバス604に接続され、かつ上述したように建物内の1又は複数のNFC装置と通信するように構成された近距離無線通信(NFC)インタフェース625を更に組み込むことができる。
【0090】
1又は複数の実施形態では、コンピュータシステム600は、触覚コマンドを受信するためのタッチスクリーンインタフェース610、ユーザの顔又は部屋の周囲などの様々な物体の静止画及び映像を取得するためのカメラ611、並びにキーボード606など、1又は複数の入力装置を組み込むことができ、これらの装置はすべて、これらに限定されないが、画像及び映像、並びにプロセッサ601へのユーザコマンド選択などの情報を通信するための前述のデータバス604に結合することができる。代替的実施形態では、入力装置は、ユーザの眼球の動きを追跡するためのシステム(図示せず)を含んでもよく、ユーザによるコマンド選択をコンピュータシステム600に示すために使用されてもよい。
【0091】
1又は複数の実施形態では、コンピュータシステム600は、ビーコン101に対するスキャンを行い、かつデータバス604を介して上述のスキャンデータをプロセッサ601に供給するように構成された位置信号受信機603を更に含むことができる。
【0092】
1又は複数の実施形態では、コンピュータシステム600は、データバス604に結合されたネットワークインタフェース605などの通信インタフェースを更に含むことができる。ネットワークインタフェース605は、WIFIインタフェース607及びセルラーネットワーク(GSM(登録商標)又はCDMA)アダプタ608の少なくとも1つを用いて、コンピュータシステム600とインターネット624との間の接続を確立するように構成することができる。ネットワークインタフェース605は、コンピュータシステム600とインターネット624との間の双方向データ通信を提供するように構成することができる。WIFIインタフェース607は、当業者に周知の802.11a、802.11b、802.11g及び/又は802.11nプロトコル並びにBluetooth(登録商標)プロトコルに準拠して動作することができる。例示的実装形態では、WIFIインタフェース607及びセルラーネットワーク(GSM(登録商標)又はCDMA)アダプタ608は、様々な種類の情報を表すデジタルデータ流を伝送する電気信号又は電磁信号を送受信する。例えば、前述のネットワーク構成要素は、コンピュータシステム600と、中央サーバ104及びサードパーティサービス/アプリケーション108などの位置決定システム100の他の構成要素との間のネットワークデータ接続を確立するために使用されてもよい。
【0093】
1又は複数の実施形態では、インターネット624は一般的に、1つ又は複数のサブネットワークを通じて他のネットワークリソースにデータ通信を提供する。したがって、コンピュータシステム600は、ウェブサーバ、他のコンテンツサーバ、並びに他のネットワークデータ記憶装置リソースなどのインターネット624上のあらゆる場所に配置された様々なネットワークリソースにアクセスすることができる。1又は複数の実施形態では、コンピュータシステム600は、ネットワークインタフェース605によってインターネット624を含む様々なネットワーク(複数可)を通じて、メッセージ、媒体及びアプリケーションプログラムコードを含む他のデータを送受信するように構成される。インターネットの例では、コンピュータシステム600がネットワーククライアントとして役割を果たすとき、このシステムは、コンピュータシステム600で実行するアプリケーションプログラムに対するコード又はデータを要求することができる。同様に、このシステムは、様々なデータ又はコンピュータコードを他のネットワークリソースに送信することができる。
【0094】
1又は複数の実施形態では、コンピュータシステム600は、ネットワークインタフェース605を使用して、インターネット624を介して、HTTPリクエストなどのリクエスト(複数可)を中央サーバ104に送信し、これらに限定されないが、そこから前述の位置情報及びタイムスタンプを含む様々な情報を受信する。
【0095】
1又は複数の実施形態では、本明細書に記載の機能性は、メモリ612に含まれた1又は複数の命令の1又は複数のシーケンスを実行するプロセッサ601に応答してコンピュータシステム600によって実施される。このような命令は、別のコンピュータ可読媒体からメモリ612に読み込まれてもよい。メモリ612に含まれた命令のシーケンスの実行により、プロセッサ601に本明細書に記載の様々な処理工程を行わせる。代替的実施形態では、有線回路は、ソフトウェア命令の代わり又はその命令との併用で、本発明の実施形態を実施するために使用されてもよい。したがって、本発明の実施形態は、ハードウェア回路及びソフトウェアの任意の特定の組み合わせに限定されない。
【0096】
本明細書に使用されるとき、「コンピュータ可読媒体」という用語は、実行するためにプロセッサ601に命令を提供することに関わるあらゆる媒体を指す。コンピュータ可読媒体は、機械可読媒体のほんの一例にすぎず、本明細書に記載の方法及び/又は技術のいずれかを実施するための命令を実行することができる。このような媒体は、これらに限定されないが、不揮発性媒体及び揮発性媒体など、多くの形態をとることができる。
【0097】
非一時的コンピュータ可読媒体の一般的な形態としては、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、若しくは任意の他の磁気媒体、CD-ROM、任意の他の光媒体、パンチカード、紙テープ、孔のパターンを有する任意の他の物理媒体、RAM、PROM、EPROM、フラッシュEPROM、フラッシュドライブ、メモリカード、任意の他のメモリチップ若しくはメモリカートリッジ、又はコンピュータが読み出すことができる任意の他の媒体が挙げられる。様々な形態のコンピュータ可読媒体は、実行するために1又は複数の命令の1又は複数のシーケンスをプロセッサ601に送ることに関わることができる。例えば、命令は最初に、遠隔コンピュータから磁気ディスクで送られてもよい。あるいは、遠隔コンピュータは、命令をその動的メモリに読み込み、インターネット624上で命令を送信することができる。具体的には、コンピュータ命令は、当業者に周知の様々なネットワークデータ通信プロトコルを用いて、インターネット624を介して前述の遠隔コンピュータからコンピュータシステム600のメモリ612にダウンロードすることができる。
【0098】
1又は複数の実施形態では、コンピュータシステム600のメモリ612は、以下のソフトウェアプログラム、アプリケーション又はモジュールのいずれかを記憶することができる。
【0099】
1.基本的なシステムサービスを実装し、コンピュータシステム600の様々なハードウェア構成要素を管理するための移動オペレーティングシステムであり得る、オペレーティングシステム(OS)613。オペレーティングシステム613の例示的実施形態は、当業者に周知であり、あらゆる現時点で既知又は後に開発される移動オペレーティングシステムを含むことができる。
【0100】
2.モバイルアプリケーション614は、例えば、コンピュータシステム600のプロセッサ601によって実行されるソフトウェアアプリケーションの組を含むことができ、このアプリケーションは上述したようにビーコン信号を受信するなど、コンピュータ移動システム600にある所定の機能を行わせる。1又は複数の実施形態では、モバイルアプリケーション614は、例えば、位置サービス103、アンカーサービス615(アンカーサービス109又は106のいずれかであり得る)、環境モニタ110、並びに1つ以上のクライアントアプリケーション111を含むことができる(
図1参照)。
【0101】
3.データ記憶装置616は、例えば、コンピュータ移動体システム600のビーコンスキャンデータ617並びに位置データ618を記憶するために使用することができる。
【0102】
図7は、例えば、
図1に示した位置決定システム100の中央サーバ104として使用され得るコンピュータサーバシステム700の例示的実施形態を示す。これに限定されないがクラウドビーコンエージェント105を含む、位置決定システム100の他の構成要素もまた、コンピュータサーバシステム700に基づいて配備され得ることに留意されたい。
【0103】
1又は複数の実施形態では、コンピュータサーバシステム700は、データバス704を含むことができ、データバス704は、
図6に示したコンピュータシステム600のデータバス604と実質的に類似であり、実質的に類似の機能を行い得る。様々な実施形態では、データバス704は、データバス604と同じ若しくは異なる相互接続及び/又は通信プロトコルを使用することができる。コンピュータサーバシステム700の1又は複数のプロセッサ(CPU)701、ネットワークアダプタ705、EPROM/ファームウェア記憶装置702、表示装置709、及びキーボード706は同様に、このシステムの構成要素がサーバプラットホーム構成で配備されることを除いて、コンピュータシステム600のそれぞれプロセッサ601、ネットワークインタフェース605、EPROM/ファームウェア記憶装置602、表示装置609、及びキーボード606に実質的に類似であってもよい。様々な実装形態では、1又は複数のプロセッサ701は、プロセッサ601と比較して、実質的に増加した処理能力を有することができる。
【0104】
入力装置706(キーボード)に加えて、コンピュータサーバシステム700は、マウス、トラックボール、又はプロセッサ701への方向情報及びコマンド選択を通信し、かつ表示装置709でのカーソール移動を制御するためのカーソール方向キーなど、カーソール制御装置710を更に含むことができる。この入力装置は一般的に、装置が平面で位置を特定することを可能にする第1の軸(例えば、x)及び第2の軸(例えば、y)の2つの軸における2つの自由度を有する。
【0105】
コンピュータサーバシステム700のLAN/ISDNアダプタ707は、例えば、電話回線の対応する種類にデータ通信接続を提供するサービス総合デジタル網(ISDN)カード又はモデムを用いて実装することができ、これはインターネットサービスプロバイダのハードウェア(図示せず)を用いてインターネット624とインタフェース接続される。別の例として、LAN/ISDNアダプタ707は、互換性のあるLAN及びインターネット624にデータ通信接続を提供するローカルエリアネットワークインタフェースカード(LAN NIC)であってもよい。様々なメディアファイルを記憶するために、コンピュータサーバシステム700には、記憶装置コントローラ703によってユーザに表示される様々なコンテンツを記憶するために文書記憶装置708が提供されてもよい。カメラ711は、様々な物体の画像及び/又は映像を取得するために使用することができる。
【0106】
1又は複数の実施形態では、コンピュータシステム700のメモリ712は、以下のソフトウェアプログラム、アプリケーション、モジュール及び/又はデータのいずれかを記憶することができる。
【0107】
1.基本的なシステムサービスを実装し、コンピュータサーバシステム700の様々なハードウェア構成要素を管理するためのオペレーティングシステムであり得る、サーバオペレーティングシステム(OS)713。サーバオペレーティングシステム713の例示的実施形態は、当業者に周知であり、あらゆる現時点で既知又は後に開発されるオペレーティングシステムを含むことができる。
【0108】
2.ネットワーク通信モジュール714は、例えば、1又は複数のネットワークプロトコルスタックを含むことができ、このプロトコルスタックはLAN/ISDNアダプタ707とともに動作するネットワークアダプタ705を用いて、コンピュータサーバシステム700とコンピュータ移動体システム600などのインターネット624の様々なネットワークエンティティとの間のネットワーク接続を確立するために使用される。
【0109】
3.サーバアプリケーション715は、例えば、コンピュータサーバシステム700の1又は複数のプロセッサ701によって実行されるソフトウェアアプリケーションの組を含むことができ、このアプリケーションはコンピュータサーバシステム700にある所定の機能又はタスクを実行させる。1又は複数の実施形態では、サーバアプリケーション715は、位置分類エンジン112を含むことができる。
【0110】
4.データ記憶装置719は、例えば、上述の位置データ720を記憶するために使用することができ、これはデータベース表の形態で記憶することができる。
【0111】
最後に、本明細書に記載の処理及び技術は、任意の特定の装置に本質的に関連しておらず、構成要素の任意の好適な組み合わせによって実施され得ることが理解されるべきである。さらに、様々な種類の汎用装置が本明細書に記載の教示に従って使用され得る。本明細書に記載の方法の工程を行う専用装置を構築することが有利であることも分かり得る。本発明は、特定の実施例との関連で説明しており、あらゆる点で限定的ではなく例示的であることを意図する。ハードウェア、ソフトウェア、及びファームウェアの多くの異なる組み合わせが本発明を実践するのに適していることを当業者は理解する。例えば、記載したソフトウェアは、アセンブラ、C/C++、Objective-C、perl、シェル、PHP、Java(登録商標)などの多種多様なプログラミング又はスクリプト言語、並びにあらゆる現時点で既知若しくは後に開発されるプログラミング又はスクリプト言語で実装されてもよい。
【0112】
さらに、本明細書に開示した本発明の明細書及び実践を考慮することにより、本発明の他の実装形態は当業者に明らかである。記載した実施形態の様々な態様及び/又は構成要素は、様々な位置決定方法、プログラム及びコンピュータシステムに単独又は任意の組み合わせで使用することができる。本明細書及び実施例は単に例示と見なされ、本発明の真の範囲及び趣旨は特許請求の範囲で示されるものとする。