(57)【要約】  ジオロケーションプロバイダステーションは、モバイルデバイスにより提供されたジオロケーションデータ及び以前の署名に署名し、モバイルデバイスに新たな署名を送り返す。モバイルデバイスは、別のジオロケーションプロバイダステーションから署名が要求されたときに、新たな署名を用いる。モバイルデバイスは、複数のジオロケーションプロバイダステーションにより提供されたジオロケーションデータ及び複数の署名を格納する。格納されたジオロケーションデータは、要求に応じて、格納された署名データを用いることにより検証されてよい。
2017508379.tif 000002
【特許請求の範囲】
【請求項１】
実行されるときに、プログラマブルデバイスに、
前記プログラマブルデバイスの位置に対応するジオロケーションデータを取得させ、
前記ジオロケーションデータ及び第１の署名データをジオロケーションステーションに送信させ、
前記ジオロケーションステーションから、前記ジオロケーションデータ及び前記第１の署名データに対応する第２の署名データを受信させ、
前記第２の署名データを格納させる
複数の命令を備える、複数の命令を格納する機械可読媒体。
【請求項２】
実行されるときに、前記プログラマブルデバイスに、前記ジオロケーションデータを送信させる前記複数の命令は、実行されるときに、前記プログラマブルデバイスに、前記プログラマブルデバイスに対応するジオロケーションデータのコレクション及び前記第１の署名データを前記ジオロケーションステーションに送信させる複数の命令を含む、請求項１に記載の機械可読媒体。
【請求項３】
実行されるときに、前記プログラマブルデバイスに前記ジオロケーションデータを送信させる前記複数の命令は、実行されるときに、前記プログラマブルデバイスに、前記プログラマブルデバイスに対応する識別データを前記ジオロケーションステーションに送信させる複数の命令を更に含む、請求項１に記載の機械可読媒体。
【請求項４】
前記第１の署名データは、前記ジオロケーションデータが初期のジオロケーションデータを有することを示す予め定められた値である、請求項１に記載の機械可読媒体。
【請求項５】
前記複数の命令は、実行されるときに、前記プログラマブルデバイスに、前記ジオロケーションデータの検証のために、前記ジオロケーションデータ、前記第１の署名データ、及び前記第２の署名データを送信させる複数の命令を更に含む、請求項１に記載の機械可読媒体。
【請求項６】
前記第２の署名データは、前記ジオロケーションステーションの暗号化キーを用いて前記ジオロケーションステーションにより署名される、請求項１から５のいずれかに記載の機械可読媒体。
【請求項７】
実行されるときに、前記プログラマブルデバイスに、前記第２の署名データを格納させる前記複数の命令は、実行されるときに、前記プログラマブルデバイスに、前記第１の署名データを含む署名データのコレクションに前記第２の署名データを格納させる複数の命令を含む、請求項１から５のいずれかに記載の機械可読媒体。
【請求項８】
実行されるときに、前記プログラマブルデバイスに、前記プログラマブルデバイスの前記位置に対応するジオロケーションデータを取得させる前記複数の命令は、実行されるときに、前記プログラマブルデバイスに、前記ジオロケーションステーションから前記ジオロケーションデータを要求させる複数の命令を含む、請求項１から５のいずれかに記載の機械可読媒体。
【請求項９】
実行されるときに、前記プログラマブルデバイスに、前記ジオロケーションデータ及び前記第１の署名データをジオロケーションステーションに送信させる前記複数の命令は、実行されるときに、前記プログラマブルデバイスに、
前記ジオロケーションデータ及び前記第１の署名データに対応するハッシュ値を算出させと、
前記ハッシュ値を前記ジオロケーションステーションに送信させる複数の命令と
を含む、請求項１から５のいずれかに記載の機械可読媒体。
【請求項１０】
処理要素と、
前記処理要素に結合されるメモリと
を備え、
前記メモリは、
実行されるときに、前記処理要素に、
モバイルデバイス識別子、モバイルデバイスに対応するジオロケーションデータ及び第１の署名を有する前記モバイルデバイスからデータを受信させ、
前記モバイルデバイス識別子、前記ジオロケーションデータ及び前記第１の署名の第２の署名を算出させ、
前記第２の署名を前記モバイルデバイスに送信させる
複数の命令を格納する、ジオロケーションデータプロバイダステーション。
【請求項１１】
前記複数の命令は、実行されるときに、前記処理要素に、
前記モバイルデバイスに対応するジオロケーションデータを算出させ、
前記ジオロケーションデータを前記モバイルデバイスに送信させる
複数の命令を更に含む、請求項１０に記載のジオロケーションデータプロバイダステーション。
【請求項１２】
実行されるときに、前記処理要素に前記第２の署名を算出させる前記複数の命令は、実行されるときに、処理要素に、公開暗号化キーに対応するプライベート暗号化キーを用いて前記第２の署名を算出させる複数の命令を含む、請求項１０に記載のジオロケーションデータプロバイダステーション。
【請求項１３】
前記モバイルデバイスから受信した前記データは、ハッシュを含み、前記ハッシュは、前記モバイルデバイス識別子、前記モバイルデバイスに対応する前記ジオロケーションデータ及び前記第１の署名から生成される、請求項１０から１２のいずれかに記載のジオロケーションデータプロバイダステーション。
【請求項１４】
モバイルデバイスに対応する第１のジオロケーションデータを検証する要求を受信する段階と、
前記第１のジオロケーションデータに対応する第１の署名を受信する段階と、
前記第１の署名を検証し、署名済みのジオロケーションデータ、及び第２の署名を前記第１の署名から抽出する段階であって、前記第２の署名は、前記モバイルデバイスに対応する第２のジオロケーションデータに対応する、段階と、
前記署名済みのジオロケーションデータを前記第１のジオロケーションデータと比較する段階と
を備える方法。
【請求項１５】
前記第２の署名が予め定められた初期の署名を含むまで、前記検証する段階及び比較する段階を繰り返す段階を更に備える、請求項１４に記載の方法。
【請求項１６】
前記署名済みのジオロケーションデータが前記第１のジオロケーションデータと一致しないことのインジケーションを提供する段階を更に備える、請求項１４に記載の方法。
【請求項１７】
前記方法は、前記モバイルデバイスにより実行される、請求項１４から１６のいずれかに記載の方法。
【請求項１８】
前記方法は、前記第１のジオロケーションデータ及び前記第１の署名へのアクセスを有するリモートサーバにより実行される、請求項１４から１６のいずれかに記載の方法。
【請求項１９】
前記署名済みのジオロケーションデータは、前記モバイルデバイスに対応する識別子を含む、請求項１４から１６のいずれかに記載の方法。
【請求項２０】
前記署名済みのジオロケーションデータは、前記モバイルデバイスのジオロケーションデータ及びジオロケーションプロバイダステーションのジオロケーションデータを含む、請求項１４から１６のいずれかに記載の方法。
【請求項２１】
ジオロケーションデータ及び第１の署名データをジオロケーションステーションに送信する手段と、
前記ジオロケーションデータと前記第１の署名データとの署名を含む第２の署名データを前記ジオロケーションステーションから受信する手段と、
前記第２の署名データを格納する手段と
を備えるモバイルデバイス。
【請求項２２】
前記ジオロケーションデータの検証のために、前記ジオロケーションデータ、前記第１の署名データ、及び前記第２の署名データを送信する手段を更に備える、請求項２１に記載のモバイルデバイス。
【請求項２３】
前記ジオロケーションデータ及び前記第１の署名データに対応するハッシュ値を算出し、前記ハッシュ値を前記ジオロケーションステーションに送信する手段を更に備える、請求項２１に記載のモバイルデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で説明される実施形態は、概してジオロケーションに関し、特に、チェーン署名を用いてジオロケーションデータの検証を提供する技術に関する。
【背景技術】
【０００２】
ジオロケーションは、モバイルデバイスのような、オブジェクトの地理的な位置を識別することを指す。ジオロケーションサービスは、スマートフォン、タブレット及びウルトラブック（登録商標）のような最新のモバイルデバイス上で利用可能である。これらのサービスは、ローカルアプリケーション又はリモートソフトウェアに提供され、ジオロケーションは、ユーザ体験を向上させる。ジオロケーションは、セキュリティを強化するために用いることもできる。例えば、機密性が要求される銀行取引では、デバイスがあるべき場所に位置している場合にのみ制限され、かつ、その場合にのみ許可され得る。ジオロケーションデータは、衛星ベースのシステム、モバイル三角測量、Ｗｉ−Ｆｉ（登録商標）アクセスポイントの位置、位置を知っている他のデバイスに対するプロキシミティ（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）又はＮＦＣを介して確立される）、加速度計等、多くの方法（及びこれらの組み合わせ）によって作成される。衛星ベースのシステムは、米国のグローバルポジショニング衛星（ＧＰＳ）システム及びロシアのグローバルナビゲーション衛星システム（ＧＬＯＮＡＳＳ）を含み、欧州連合のガリレオシステム、インドの地域航法衛星システム（ＩＲＮＳＳ）及び中国の北斗２又はコンパスシステムを含む他の衛星ベースのシステムが構築中である。多くの場合、２次元（ｘ，ｙ）座標を提供すると考えられるが、ジオロケーションデータは、３次元（ｘ，ｙ，ｚ）座標を含んでよく、また、多くの場合、３次元（ｘ，ｙ，ｚ）座標を含んでおり、ほとんどの場合にタイムスタンプが付与される。
【０００３】
残念ながら、既知のジオロケーション方法は、位置データの精度について保証していない。これらの方法は、多くの場合、衛星伝送、携帯電話システムタワー、無線ネットワーク（Ｗｉ−Ｆｉ（登録商標））アクセスポイント又は他の外部デバイス等の外部サービスに依存する。外部サービスの過失又は故意の改ざんによって不正なジオロケーションデータがもたらされる可能性が常にある。例えば、保護された拡張認証プロトコルＰＥＡＰを介した事前共有証明書を用いることなくアクセスポイントに接続したときの中間者攻撃は、誤ったジオロケーションデータをもたらす可能性がある。更に、モバイルデバイスにおいてデータが受信され、格納された後に、本物の位置データが破損される恐れがある。そのような破損は、マルウェアにより、又は、デバイス所有者によってでさえも実行される恐れがある。
【０００４】
不正確なジオロケーションは、その後、デバイスの位置を用いる精度の高い計算で利用されるかもしれない。そのような精度の高い計算の例は、以下の事項を含み得る。
【０００５】
１）機密性が要求される金融取引における検証ステップ
【０００６】
２）緊急電話をかけること、又は、ＳＯＳ／遭難信号を送信すること
【０００７】
３）盗まれたデバイスの位置を突き止めること
【０００８】
４）ある人が裁判所の命令に従うとき（例えば、別の人から５０ｍより遠く離れろとの命令）
【０００９】
全体的な、ジオロケーションの一般的な信頼の欠如の問題は、位置データに対する最高の信頼が求められるときに、その使用を著しく限定することである。利用可能な適切な解決策がない。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に係る、証明可能なジオロケーションサービスが実装されるインフラストラクチャを示すブロック図である。
【００１１】
【図２】一実施形態に係る、署名済みのジオロケーションデータのチェーンを生成するための技術を示すブロック図である。
【００１２】
【図３】一実施形態に係る、更新された署名済みのジオロケーションデータを提供することを外部プロバイダステーションに要求するための技術を示すフローチャートである。
【００１３】
【図４】別の実施形態に係る、ジオロケーションデータの署名チェーンを更新するための技術を示すフローチャートである。
【００１４】
【図５】一実施形態に係る、ジオロケーションデータの署名チェーンを検証するための技術を示すフローチャートである。
【００１５】
【図６】一実施形態に係る、本明細書で説明される複数の技術とともに用いるためのプログラマブルデバイスを示すブロック図である。
【００１６】
【図７】別の実施形態に係る、本明細書で説明される複数の技術とともに用いるためのプログラマブルデバイスを示すブロック図である。
【発明を実施するための形態】
【００１７】
以下の説明において、説明の目的のために、多数の具体的な詳細が、本発明の十分な理解をもたらすべく説明される。しかしながら、本発明がこれら具体的な詳細がなくても実施され得ることは、当業者にとって明らかであろう。他の例において、構造及びデバイスは、本発明が曖昧になることを避けるべくブロック図の形式で示される。下付き文字又は添え字のない数字への言及は、言及された数字に対応する下付き文字及び添え字の全ての例に言及するものと理解される。更に、本開示で用いられる言語は、読みやすさ及び教授の目的で主に選択されており、発明の主題を詳述又は制限するべく選択されていない可能性があり、特許請求の範囲がそのような発明の主題を決定するのに必要であることを採用し得る。本明細書における「一実施形態」又は「実施形態」への言及は、それらの実施形態と関連して説明される特定の機能、構造、又は特性が、本発明の少なくとも１つの実施形態に含まれることを意味し、「一実施形態」又は「実施形態」への複数の言及は、必ずしも全てが同一の実施形態に言及するものとして理解されるべきではない。
【００１８】
本明細書で用いられるように、用語「コンピュータシステム」は、コンピュータシステム上で実行され又はコンピュータシステムの近くで実行されるものとして説明される機能を実行するべく一緒に動作する単一のコンピュータ又は複数のコンピュータを指すことができる。同様に、機械可読媒体は、それに格納された、指示情報を合わせて含み得る単一の物理媒体又は複数の媒体を指すことができる。プロセッサは、単一の処理要素又は複数の処理要素を指すことができ、単一のチップ上又は複数の処理チップ上のいずれかに実装される。
【００１９】
図１を参照すると、以下に説明される複数の技術が実装され得る例示的なインフラストラクチャ１００が図式的に示される。インフラストラクチャ１００は、複数のコンピュータネットワーク１０２を含む。複数のコンピュータネットワーク１０２は、インターネット、企業ネットワーク又はローカルエリアネットワーク（ＬＡＮ）のような、現在利用可能な様々なタイプのコンピュータネットワークを含んでよい。これらのネットワークのそれぞれは、複数の有線又は無線プログラマブルデバイスを含むことができ、任意の数のネットワークプロトコル（例えば、ＴＣＰ／ＩＰ）を用いて動作できる。複数のネットワーク１０２は複数のゲートウェイ及び複数のルータ、（１０８によって表される）、複数のエンドユーザコンピュータ１０６並びに複数のコンピュータサーバ１０４に接続されてよい。インフラストラクチャ１００は、複数のモバイル通信デバイスと共に使用するためのセルラーネットワーク１０３も含む。複数のモバイルセルラーネットワークは、複数の携帯電話及び多くの他のタイプのデバイスをサポートする。インフラストラクチャ１００における複数のモバイルデバイスは、複数の携帯電話１１０、複数のラップトップ１１２及び複数のタブレット１１４として示される。携帯電話１１０のようなモバイルデバイスは、モバイルデバイスが移動するときに、１又は複数のモバイルプロバイダネットワークとインタラクトしてよく、そのようなモバイルデバイスは、セルラーネットワーク１０３に接続するために、複数のモバイルネットワークタワー１２０、１３０及び１４０と通常インタラクトする。モバイルネットワークタワー１２０、１３０及び１４０は、ジオロケーションデータを算出し、これをモバイルデバイス１１０、１１２及び１１４に提供してよい。図１においてセルラーネットワークと称されるが、モバイルデバイスは、１より多いプロバイダネットワークの複数のタワー及び複数の無線アクセスポイント及び複数のルータ１０８のような複数の非セルラーデバイスとインタラクトしてよい。モバイルデバイスは、ジオロケーション衛星（不図示）からジオロケーションデータを取得してもよい。更に、モバイルデバイス１１０、１１２及び１１４は、複数の所望のサービスのために、コンピュータ１０４及び１０６のような複数の非モバイルデバイスとインタラクトしてよく、モバイルデバイス１１０、１１２及び１１４は、検証可能なジオロケーションデータをこれら非モバイルデバイスに提供することを含んでよい。以下の考察において、モバイルデバイス１１０は、全てのモバイルデバイスの代表として用いられる。
【００２０】
以下では、ジオロケーションデータのチェーン署名を用いるシステムを開示する。モバイルデバイス１１０が外部のサードパーティプロバイダ（３Ｇ、Ｗｉ−Ｆｉ（登録商標）等）に接続するたびに、モバイルデバイス１１０は、「スタンプ」（暗号化署名）するために、以前の複数の位置の履歴（チェーン）を提供する。以下で説明されるように、複数のプロバイダは、「複数のステーション」と称され、ステーション１２０（図１におけるモバイルネットワークタワー）が全てのステーションの代表として用いられる。複数のステーションは、スタティックである必要はなく、複数のステーションは、例えば、グーグルが提案したＷｉ−Ｆｉ（登録商標）搭載のバルーンのように移動することが可能である。複数のステーションはそれぞれ、位置データを「スタンプ」するための暗号化署名サービスをサポートする。更に、複数のステーション及び複数のデバイスの両方は、以下でより詳細に説明されるように、チェーン署名済みのジオロケーションデータを処理するための複数のプロトコル及び複数のＡＰＩを採用してよい。様々な実施形態は、暗号化署名及び暗号化の組み合わせを採用してよい。
【００２１】
従来のモバイルデバイスシステムにおいて見られるように、モバイルデバイス１１０は、そのジオロケーションのログを保持しており、ログは、任意の便利な又は所望の方法で格納される。この情報は、複数のステーションから取得され、様々な位置ベースのサービスに用いられてよい。いくつかの実施形態において、モバイルデバイス１１０は、モバイルデバイス１１０がインタラクトする複数のステーションから取得されたステーションのジオロケーションデータのログも保持する。モバイルデバイス１１０は、モバイルデバイス１１０を識別するデバイスＩＤデータも格納する。
【００２２】
簡単に言うと、チェーン署名及び検証は、以下のように行われる。
【００２３】
１）モバイルデバイス１１０は、データ構造内のそのデバイスＩＤ、現在のジオロケーションデータ及び以前の署名をステーション１２０に提出する。いくつかの実施形態において、過去に使われたジオロケーションデータのコレクションは、現在のジオロケーションデータに加えて提供される。
【００２４】
２）ステーション１２０は、データ構造を受信する。ステーション１２０は、次に、データ構造に署名して、新たな署名をモバイルデバイス１１０に送り返す。いくつかの実施形態において、ステーション１２０は、現在のステーションのジオロケーションデータを含めるべく、署名する前にデータ構造を更新してよい。
【００２５】
３）モバイルデバイス１１０は、新たな署名を受信し、将来の利用のためにステーション１２０から受信した新たな署名を格納して、将来の利用のために格納される署名チェーンＲ１、Ｒ２、Ｒｉ−１、Ｒｉに署名Ｒｉを追加する。
【００２６】
４）デバイスが移動するとき、又は、以前の署名から予め定められた期間が経過したときのように、モバイルデバイス１１０が新たな位置を記録するときに、モバイルデバイス１１０は、現在のデバイスの位置及びステーション１２０から受信した直近の署名を含むようにデータ構造を更新し、次に、ステップ１を繰り返す。
【００２７】
ジオロケーションデータを証明するための要求が受信されたとき、複数の署名のチェーンは、複数の署名のチェーンのそれぞれを検証する従来の暗号化技術を用いて、検証され得る。
【００２８】
一実施形態において、モバイルデバイス１１０により保持され、各ステーションに提供されたデータ構造は、例えば以下のようなタプルである。
【００２９】
Ｄｉ＝｛デバイスＩＤ、デバイスロケーション、Ｒｉ−１｝
【００３０】
但し、以下のとおりである。
【００３１】
デバイスＩＤは、モバイルデバイス１１０のＩＤである。
【００３２】
デバイスロケーションは、モバイルデバイス１１０の現在のジオロケーションである。
【００３３】
Ｒｉ−１は、ステーション１２０から送り返された直近の署名である。
【００３４】
タプルの複数のメンバーは、任意の所望の順番で並べられてよく、複数の他のタプルメンバーは、所望の通りに含まれてよい。現在のデバイス又はステーションのジオロケーションとして説明してきたが、デバイスロケーションは、モバイルデバイス１１０に対して過去に使われたジオロケーションデータのデバイスのロケーション履歴コレクションであってよく、過去に使われたジオロケーションデータは、現在のジオロケーションデータを含む。いくつかの実施形態におけるデバイスのロケーション履歴コレクションは、アレイであるが、記録されたジオロケーションデータのログを格納するための任意の便利なデータ構造であってよい。
【００３５】
各ジオロケーションデータは、任意の所望の座標系における、２次元｛ｘ，ｙ｝座標又は３次元｛ｘ，ｙ，ｚ｝座標のいずれかとして与えられてよく、好ましくは、ジオロケーションデータがモバイルデバイス１１０に提供されたときを示すタイムスタンプを含む。しかしながら、明確にするために、ジオロケーションデータは、２次元座標に関して以下で説明される。ジオロケーションデータは、平文の座標により表されてよく、又は、そのような座標のハッシュとして表されてよい。単方向暗号化ハッシュは、多くの場合、プライバシーに対する懸念を減らす、元のデータの信頼の高い表現として用いられる。
【００３６】
一実施形態において、ステーションにより生成され、モバイルデバイスに送り返される署名を以下のように記述することができる。
【００３７】
Ｒｉ＝署名（Ｄｉ，ステーションロケーション）
【００３８】
但し、以下のとおりである。
【００３９】
ステーションロケーションは、ステーション１２０の現在のジオロケーションである。
【００４０】
各署名は、好ましくはタイムスタンプを含む。タイムスタンプは、自己署名であってよく、又は、ベリサイン社のような標準的な外部信頼タイムサービスプロバイダにより提供されてよい。各ステーションは、異なる署名技術を用いてよい。複数の署名技術が実施形態でサポートされている場合、各署名は、署名技術についての情報を伝え得る。署名は、通常、ルート認証局を起点とする信頼の階層構造において、信頼の証明書に基づいてステーション１２０に対するプライベートキーを用いた公開／プライベート暗号化技術を用いて生成され、ステーション１２０に対する公開キーを用いた署名の検証を可能にする。しかしながら、複数の他の暗号化技術が所望の通りに複数の署名を生成するのに用いられてよい。いくつかの実施形態において、署名は、ジオロケーションの履歴の少なくとも一部を含む署名されたデータの暗号化ハッシュを含んでよい。（ＳＨＡ−２ファミリー及びＳＨＡ−３のような）現代のハッシュアルゴリズムは、ハッシュの衝突に対して良好な暗号化耐性を有し、ハッシュベースの署名の一意性をもたらす。
【００４１】
いくつかの実施形態において、ステーション１２０は、署名の一部として、ステーションＩＤ値も含んでよく、ステーションＩＤは、ステーション１２０を識別する。いくつかの実施形態において、ステーションのロケーションデータは、署名に含まれない。
【００４２】
ステーション１２０は、任意の所望の暗号化署名技術を用いてよく、各ステーション１２０は、異なる署名技術を用いてよい。例えば、ステーション１２０は、そのステーション１２０に割り当てられ、標準的な公開鍵基盤（ＰＫＩ）技術における信頼のいくつかのルートから導出される証明書を採用してよい。署名は、好ましくは、自己署名されたタイムスタンプ又はベリサインのような標準的な外部信頼タイムサービスを介して提供されたタイムスタンプのいずれかを含み、標準的な外部信頼タイムサービスは、モバイルデバイス１１０又はステーション１２０により提供された複数のタイムスタンプより高い信頼のレベルを有する複数のタイムスタンプを提供する。いくつかの実施形態において、ステーション１２０は、署名の一部として、ステーションＩＤ値も含んでよく、ステーションＩＤは、ステーション１２０を識別する。
【００４３】
全てのステーション１２０がデータ構造Ｄｉに署名することを求められるわけではなく、そのよう状況において、モバイルデバイス１１０は、データ構造Ｄｉがその繰り返しにおいて署名されなかったことを示すべく、ゼロのような特別な値を署名チェーンに設けてよい。例えば、モバイルデバイス１１０は、データ構造Ｄｉに署名すること又はデータ構造Ｄｉを処理することができないいくつかのステーション１２０、データ構造Ｄｉに署名することができるが署名することを拒むこともできるいくつかのステーション１２０、及び、本明細書に開示される複数の技術に従って署名するいくつかのステーション１２０とインタラクトしてよい。たとえこれらの署名されていないインスタンスが、署名されたインスタンスよりも証明可能でないとしても、モバイルデバイス１１０は、デバイスのロケーション履歴データコレクション並びにデバイス及びステーションのジオロケーションデータの署名チェーンを更新することを続行してよい。
【００４４】
図２は、３つの異なる時点１５０、１５２及び１５４で、ステーション１２０、１３０及び１４０にアクセスするモバイルデバイス１１０を示すグラフである。時点１５０において、モバイルデバイス１１０は、データ構造Ｄ１をステーション１２０に送信し、ステーション１２０は、署名Ｒ１で応答する。
【００４５】
モバイルデバイス１１０が時点１５２で移動し、ステーション１３０とインタラクトするときに、更新されたデータ構造Ｄ１は、データ構造Ｄ２となり、データ構造Ｄ２は、ステーション１３０に渡される。ステーション１３０は、データ構造に署名して署名Ｒ２を送り返す。同様に、更新されたデータ構造Ｄ２は、署名Ｒ２を組み込んだデータ構造Ｄ３となって、データ構造Ｄ３は、時点１５４でステーション１４０に渡される。ステーション１４０は、次に、署名Ｒ３を送り返す。
【００４６】
いくつかの実施形態において、平文データ構造Ｄｉが将来の検証利用のためにローカルに保持され得るが、完全なデータ構造Ｄｉを送信する代わりに、モバイルデバイス１１０は、構造Ｄｉのハッシュ又は他の機能的に簡略化したものを送信してよい。データ構造Ｄｉは、好ましくは、モバイルデバイス１１０上に保持されるが、いくつかの実施形態では、モバイルデバイス１１０がデータ構造Ｄｉ及び署名Ｒｉを遠隔で格納することを可能としてよく、モバイルデバイス１１０は、データ構造Ｄｉを別のステーションに送信する必要がある、又は、ジオロケーションデータを検証する必要があるときのいずれかであるときにはいつでもそれらにアクセスする。
【００４７】
図２は、１つのステーションのみが、各時点でモバイルデバイス１１０に対して視認可能な状況を示すが、実際には、モバイルデバイス１１０は、任意の所定の時点で複数のステーション１２０と連絡を取ってよい。そのような状況において、たとえ１つのステーション１２０のみが複数の通信サービスをモバイルデバイス１１０に提供するために用いられていたとしても、モバイルデバイス１１０は、複数のステーション１２０から複数の署名を取得してよく、当該複数の署名データを署名チェーンに格納する。
【００４８】
以前の署名Ｒｉ−１をＤｉ構造に含めることで、以前の署名チェーン全体が次のステーションにより署名されることができるようにする。第１の署名インタラクションについて、データ構造Ｄｉ内の初期の署名Ｒ０は、ゼロ又は署名チェーンの検証を可能にするように確実に判断され得るその他の所望のソルト値に設定されることができる。一実施形態においてＲ０値は、モバイルデバイスの国際移動体装置識別番号（ＩＭＥＩ）に基づいてよい。いくつかの実施形態において、Ｒ０値は、ヌル又はエンプティであってよい。
【００４９】
従って、図２に示される例において、複数の動作のシーケンスは、以下のようであってよい。上記に示されるように、ステーションのジオロケーションデータがこの例において示されるが、ステーションのジオロケーションデータは、選択的であり、省略されてよい。この例では、ステーション１２０がモバイルデバイス１１０とインタラクトする第１のステーションであり、ゆえに、以前の署名の代わりに、初期の署名Ｒ０がデータ構造Ｄｉに提供されるものと仮定する。｛ｘｉ，ｙｉ｝への言及は、デバイスの位置座標について触れ、｛ｓｘｉ，ｓｙｉ｝への言及は、ステーションの座標について触れる。
【００５０】
１．ステーション１２０とのインタラクション。
【表１】
2017508379.tif 000003
【００５１】
２．ステーション１３０とのインタラクション。
【表２】
2017508379.tif 000004
【００５２】
３．ステーション１４０とのインタラクション。
【表３】
2017508379.tif 000005
【００５３】
各署名Ｒｉが移動局１２０により受信されたときに、署名は、複数のアドレスを検証するときの使用のために、複数の署名のコレクション又はチェーンに格納される。署名チェーンは、任意の所望の手法で格納されてよい。上記から理解され得るように、各署名Ｒｉは、このように、以前の署名Ｒｉ−１を含めることにより、現在のジオロケーションデータ及び全ての以前のジオロケーションデータを組み込む。例えば、上記の署名Ｒ３は、位置{ｘ３，ｙ３}及び署名Ｒ２を組み込む。署名Ｒ３を復号することにより、｛ｘ３，ｙ３｝の位置データは、署名Ｒ２とともに取得され得る。更に、署名Ｒ２を復号することにより、｛ｘ２，ｙ２｝の位置データ等が取得され得る。更なる実施形態において、ステーションは、モバイルデバイスの位置（例えば、三角測量又は信号の強度に基づいてよい）についてそれ自身のデータを署名に置換又は追加してよい。
【００５４】
従って、複数の署名Ｒｉのチェーンは、モバイルデバイス１１０がインタラクトする全てのステーション１２０からの複数の位置及び複数の署名（内部に複数のステーションＩＤ及び複数のタイムスタンプを有し得る）を増やし、かつ、これらを含める。各後続のステーション「スタンプ」は、履歴に追加し、以前の署名に署名しており、これにより、ロケーションシーケンスの耐タンパー性を高め、ジオロケーションデータに対する検証可能な履歴を作成する。
【００５５】
図３は、モバイルデバイス１１０の観点から、一実施形態に従ってジオロケーションデータの署名チェーンを取得するための技術３００を概して示すフローチャートである。ブロック３１０において、モバイルデバイス１１０は、モバイルデバイス１１０に対する現在のデバイスのジオロケーションデータを用いてモバイルデバイスのデータ構造を更新する。更に、データ構造Ｄｉは、以前の署名要素Ｒｉ−１を含めるように更新される。いくつかの実施形態において、データ構造Ｄｉ+１の次のインスタンスは、デバイスのジオロケーションデータが更新される前又は後を含む、Ｒｉ署名の受信後の任意の時点においてＲｉ値で作成されてよい。ブロック３２０において、モバイルデバイスは、データ構造Ｄｉに署名する要求とともに、更新されたデータ構造Ｄｉをステーション１２０に送信してよい。
【００５６】
ブロック３３０において、モバイルデバイス１１０は、署名Ｒｉを受信する。
【００５７】
最後に、ブロック３４０において、モバイルデバイス１１０は、更新されたデバイス及びステーションのジオロケーションデータと、新たな署名Ｒｉとをそれらの各チェーン又は各コレクションに格納してよい。いくつかの実施形態において、モバイルデバイスは、タプルの複数の要素を独立したコレクションとして別個に格納するよりも、むしろ、データ構造Ｄｉの各インスタンスを全体として格納してよい。一実施形態において、モバイルデバイス１１０は、次に、次回、ジオロケーションデータが更新されるときの使用のために、署名Ｒｉを含むデータ構造Ｄｉ＋１の新たなインスタンスを作成してよく、他の実施形態において、モバイルデバイス１１０は、次のジオロケーションの更新イベントが発生するまでインスタンスＤｉ＋１を作成するのを遅らせてよい。モバイルデバイス１１０は、複数のデータ構造Ｄ又はＲをローカルに格納してよく、又は、任意の利用可能な接続を用いて、リモートコピーを（例えば、「クラウド」に）保持してよい。
【００５８】
図４は、ステーション１２０によりモバイルデバイス１１０から受信したデータ構造Ｄｉに署名するための技術４００を示すフローチャートである。ブロック４１０において、ステーション１２０は、モバイルデバイス１１０からデータ構造Ｄｉを受信する。上記に示されるように、いくつかの実施形態において、ステーション１２０は、完全なデータ構造Ｄｉを受信してよいが、一方、他の実施形態において、ステーション１２０は、データ構造Ｄｉのハッシュのみを受信してよく、又は、Ｄｉは、データ構造Ｒｉ−１のハッシュを含んでよい。ブロック４２０において、ステーション１２０は、任意の所望の暗号化技術を用いて、データ構造Ｄｉに署名してよい。上記に示されるように、好ましくは、署名は、ステーションＩＤ及びタイムスタンプを含んでよく、タイムスタンプ自体は、好ましくは、検証可能なタイムスタンプである。次に、ブロック４３０において、ステーション１２０は、署名Ｒｉを送信してモバイルデバイス１１０に戻す。
【００５９】
「証明可能な」ジオロケーションの要求がデバイスにより受信されたとき、次に、ロケーションチェーン、Ｒ１，Ｒ２，...Ｒｉ，Ｒｉ＋１，...（又は、ロケーションチェーンの関連する最初の部分）は、検証のために、モバイルデバイス１１０により提供され得る。別の実施形態において、要求は、オフ−デバイスのロケーション履歴を保持する「クラウドストレージ」に送信されてよい。図５は、一実施形態に係るモバイルデバイス１１０に対するジオロケーションデータを検証するための技術５００を示すフローチャートである。
【００６０】
ブロック５１０において、ジオロケーションチェーンが受信される。検証は、ブロック５２０において、モバイルデバイス１１０上で実行されてよく、又は、モバイルデバイスからジオロケーションデータに対するローカル又はリモートアクセスを有するリモートデバイス上で実行されてよい。アプリケーションプログラミングインターフェース（ＡＰＩ）は、ジオロケーションの履歴を用いて処理することを可能にするべく提供され得る。ＡＰＩコールの一例は、特定の位置、特定の時間軸、又は、特定の数の位置に関するデータのような、完全な履歴又は部分的な履歴の取得を可能にする。他のＡＰＩコールは、デバイスのロケーション履歴データ及び関連する複数の署名タイムスタンプを任意の｛ｘ，ｙ，ｚ，ｔ｝タプルと比較して、その結果、いくつかの時点でモバイルデバイスの位置を決定することを提供し得る。一実施形態において、ＡＰＩからの応答は、（いくらかの誤差の許容範囲内の）所与の時点におけるデバイスの位置を承認又は拒否するブーリアン形式（真／偽）であってよい。
【００６１】
複数のステーションは、異なる信頼のレベルを有してよく、いくつかの実施形態において、異なる信頼のレベルは、ルート認証局で開始する信頼の階層、及び、１又は複数の層構造内の１又は複数の認証局に基づく。複数の署名ステーションにおける信頼のレベルに応じて、デバイスの位置に対する信頼のレベルが任意の所定の時点で算出され得る。例として、パブリックＷｉ−Ｆｉ（登録商標）アクセスポイントは、ステーションの機能をサービス供給してよいが、それに関連する信頼のレベルは低いかもしれない。
【００６２】
別のＡＰＩコールは、標準的なＰＫＩ技術を用いて、ステーションの複数の署名の検証を要求してよい。データ構造Ｄｉは、署名のシーケンシャルチェーンを用いて署名されるので、検証は、時間的なロケーション履歴の証拠としての機能を果たしてよく、署名されたデータ構造Ｄｉに含まれるデバイスのロケーション履歴情報又はステーションのロケーション履歴情報に対する申し入れを阻止する否認防止条件を提供し得る。
【００６３】
一実施形態において、検証は、リモートネットワークサーバ（例えば、ウェブサーバ）上で作動するソフトウェアにより提供されてよい。
【００６４】
検証の結果は、ブロック５３０でチェックされてよい。検証が成功した場合、次に、ブロック５５０において、モバイルデバイスの位置が所望の時点又は複数の時点の範囲内で判断されてよい。検証が失敗した場合、次に、ブロック５４０において、ジオロケーションチェーンが破損され、信頼できないというインジケーションが提供されてよい。
【００６５】
開示された技術はいくつかの利点をもたらす。各ステーションは、以前の署名全てに署名し、信頼を増す。例えば、Ｄ１データ構造が１つの署名のみを有する一方、Ｄ２データ構造が２つの署名を組み込んでおり、全ての後続のＤｉリストがｉ個の後続のステーションにより連続して署名される。ｉ番目のステーション１２０がデータ構造Ｄｉ-１に署名すると、攻撃者は、データ構造Ｄｉを修正するべく１つの証明書のみにアクセスする必要がある。しかしながら、署名Ｒｊだけを改ざんすると、署名Ｒｊ+１...Ｒｉを不正確にさせるので、いくつかの履歴Ｄｊ（ｊ＜ｉ）を改ざんするために、攻撃者は、複数の（ｉ−ｊ）の証明書を取得してロケーションチェーンのまさにその部分を偽造する必要がある。これは、チェーン署名に起因して改ざんに対する堅牢性を絶えず高めることをもたらす。
【００６６】
署名された複数の位置Ｒｉのチェーンは、署名Ｒｉの時点の前にインタラクトされた全てのステーション１２０からの（内部にステーションＩＤ及びタイムスタンプを含む）複数の位置及び複数の署名を増やし、かつ、複数の位置及び複数の署名を含む。各後続のステーション「スタンプ」を履歴に追加し、以前の署名に署名し、その結果、ロケーションシーケンスの耐タンパー性を高め、チェーンにおける最後の位置に対して検証可能な履歴を作成する。
【００６７】
例えば、モバイルデバイス１１０は、要求を（ＡＰＩコール等を通じて）受信して、時点１５４での位置（｛ｘ３，ｙ３｝）を証明した場合、モバイルデバイス１１０は、履歴Ｒ３、Ｒ２、Ｒ１を送り返すことができる。
【００６８】
履歴は、Ｒ３=署名（デバイス＿ＩＤ，｛ｘ３，ｙ３｝，Ｒ２）であり、Ｒ２を拡大した後の履歴は、以下の通りである。
【００６９】
Ｒ３＝署名（デバイス＿ＩＤ，｛ｘ３，ｙ３｝，署名（デバイス＿ＩＤ，｛ｘ２，ｙ２｝、Ｒ１））であり、Ｒ１を拡大した後の履歴は、以下の通りである。
【００７０】
Ｒ１＝署名（デバイス＿ＩＤ，｛ｘ３，ｙ３｝，署名（デバイス＿ＩＤ，｛ｘ２，ｙ２｝、署名（デバイス＿ＩＤ，｛ｘ２，ｙ２｝，署名（デバイス＿ＩＤ，｛ｘ１，ｙ１｝Ｒ０））））である。
【００７１】
従って、検証装置は、Ｒ１、Ｒ２、Ｒ３のシーケンスを受信し、（ＰＫＩタイプの署名と仮定して）各ステーション１２０、１３０、１４０の公開キーを順番に適用することで、データ構造を再帰的に「展開する（ｕｎ−ｒｏｌｌｉｎｇ）」ことにより、チェーン全体を検証することができる。
【００７２】
一実施形態において、署名するためにステーション１２０にデータ構造Ｄｉを送信する代わりに、モバイルデバイス１１０は、データ構造Ｒｉ−１のハッシュを生成し、複数のステーションによるプライバシー漏洩又は侵害のリスクを最小限に抑えるべく、データ構造Ｒｉ−１のハッシュのみを複数のステーションに送信してよい。そのような実施形態において、検証は、署名Ｒｉの有効性をチェックし、署名されたハッシュ値を生成し、データ構造Ｄｉ−１をハッシュした結果をハッシュ値と比較することになる。単方向ハッシュ関数が用いられると仮定して、２つのハッシュ値の比較は、データ構造Ｄｉにおける署名及びデータを十分に検証する。
【００７３】
更に、ロケーションチェーンの地理的−空間的な一貫性が検証され得る。  複数のモバイルデバイスの現実的な利用を仮定すると（例えば、車に取り付けられるＧＰＳシステムが車の最高速度より遅い速度で移動することが見込まれる）、ロケーションチェーンは、及びデバイスの種類及びその典型的な利用との一貫性について検査され得る。悪意を持って又は誤ってステーション又はデバイスそれ自体を動作させることは、不正確な位置をチェーンに追加する可能性があり得るが、異常なロケーションエントリーは無視され得、「偽の」ステーションの証明書が除外され又は破棄される。
【００７４】
署名チェーン及び根本的なジオロケーションデータの地理的−空間的な一貫性をチェックするべく、検証装置は、距離、タイムスタンプを検証し、ポイントＡ｛ｘ１，ｙ１｝とＢ｛ｘ２，ｙ２｝との間の移動速度を、予期される輸送方法（徒歩、ボート、バイク、車、電車、航空機等）及び／又は、当該方法の最高速度（旅客機、戦闘機）と比較することができる。向上したデバイスの移動速度は、空港又は高速鉄道の駅のような交通の中心に近づくモバイルデバイス１１０に関連付けられ、通常、履歴に記録される。そのため、いくつかのヒューリスティクスは、急速な輸送手段を提供する交通機関に対するプロキシミティに基づいて最大移動速度を推定することを用いて一貫性をチェックすることに適用されてよい。
【００７５】
一使用事例において、旅行者が海外へ行くときに、旅行者の銀行がモバイルデバイス１１０のロケーション履歴にアクセスした場合、銀行は、旅行者が空港へ移動して特定の国に上陸したことの高い確実性を知りたいので、銀行は、トランザクションを許可することができ、一連の携帯電話タワーが特定のＡＴＭ又は業者の近くの旅行者の位置を正確に示す。モバイルデバイス１１０は、例えば、「証明可能なジオロケーション」ＡＰＩにアクセスするように構成されるバンキングアプリケーションを介して、この履歴を提出できる。
【００７６】
別の使用事例において、ドライバの車がビルトインジオロケーション機能を有し、ドライバが、スピード違反の切符が模造されたナンバープレートを有する車に属することを証明したいときに、ドライバは、証明可能なロケーション履歴を用いて切符の除去について主張することができる。同様に、検索保証は、警察が容疑者のモバイルデバイス１１０から証明可能なロケーション履歴を取得することを可能とするべく、取得されることができ、検索保証は、関心のある特定の時点でのモバイルデバイス１１０の位置の否認防止可能な形跡として用いられることができる。
【００７７】
提案されたシステムの一つの可能性のある攻撃シナリオは、一方のデバイスから他方のデバイスへカバート外部チャネルを編成する。第１のデバイスが第２のデバイスに対する全てのジオロケーション要求を代理できる場合、次に、第１のデバイスの代わりに第２のデバイスにロケーションチェーンを反映させる。我々のシステムに対するそのような「中間者」攻撃は、特定のデバイスにデバイス＿ＩＤを結びつけることにより、一実施形態において、不可能にすることができ、トラステッドプラットフォームモジュール、Ａｐｐｌｅ  Ｓｅｃｕｒｅ  Ｅｎｃｌａｖｅ、インテルソフトウェアガードエクステンション（ＳＧＸ）、ＡＲＭ  ＴｒｕｓｔＺｏｎｅ（登録商標）、セキュアエレメント等のような信頼できる実行環境におけるデータ構造Ｄｉの署名、及び、そのような署名に用いられる複数のキーの適切なプロビジョニングにより、実現され得る。シークレット（例えば、キー又はデバイス＿ＩＤ）は、前述した信頼できる実行環境内で保護され得るので、従って、「中間者」に対して利用可能でない。
【００７８】
図６を参照すると、ブロック図は、一実施形態に従って、上記で説明された複数のジオロケーション技術を採用し得るプログラマブルデバイス６００を示す。図６に示されるプログラマブルデバイスは、第１の処理要素６７０及び第２の処理要素６８０を含むマルチプロセッサプログラマブルデバイス６００である。２つの処理要素６７０及び６８０を示す一方、プログラマブルデバイス６００の実施形態は、そのような１つの処理要素のみを含んでもよい。
【００７９】
プログラマブルデバイス６００は、ポイントツーポイントインターコネクトシステムとして示され、当該システムにおいて、第１の処理要素６７０及び第２の処理要素６８０がポイントツーポイントインターコネクト６５０を介して結合される。図６に示される任意の又は全てのインターコネクトは、複数のポイントツーポイントインターコネクトではなく、むしろ、マルチドロップバスとして実装されてよい。
【００８０】
図６に示されるように、処理要素６７０及び６８０のそれぞれは、第１及び第２のプロセッサコア（すなわち、プロセッサコア６７４ａ及び６７４ｂ、並びに、プロセッサコア６８４ａ及び６８４ｂ）を含むマルチコアプロセッサであってよい。そのようなコア６７４ａ、６７４ｂ、６８４ａ、６８４ｂは、上記で説明される複数の技術を実装するべく、命令コードを実行するように構成されてよい。しかしながら、他の実施形態は、所望のように、複数の単一コアプロセッサである複数の処理要素を用いてよい。複数の処理要素６７０、６８０を有する複数の実施形態において、各処理要素は、所望のように、異なる数のコアとともに実装されてよい。
【００８１】
各処理要素６７０、６８０は、少なくとも１つの共有キャッシュ６４６を含んでよい。共有キャッシュ６４６ａ、６４６ｂは、コア６７４ａ、６７４ｂ及び６８４ａ、６８４ｂのそれぞれのような処理要素の１又は複数のコンポーネントにより使用されるデータ（例えば、複数の命令）を格納してよい。例えば、共有キャッシュは、処理要素６７０、６８０の複数のコンポーネントによって、より高速にアクセスするために、メモリ６３２、６３４に格納されるデータをローカルにキャッシュしてよい。１又は複数の実施形態において、共有キャッシュ６４６ａ、６４６ｂは、レベル２（Ｌ２）、レベル３（Ｌ３）、レベル４（Ｌ４）又は複数の他のレベルのキャッシュ、最後のレベルキャッシュ（ＬＬＣ）又はそれらの組み合わせのような、１又は複数の中間レベルキャッシュを含んでよい。
【００８２】
図６は、図面の明確性のために２つの処理要素６７０、６８０を有するプログラマブルデバイスを示す一方、本発明の範囲は、これに限定されるものではなく、任意の数の処理要素が存在してよい。代替的に、処理要素６７０、６８０のうちの１又は複数は、グラフィックスプロセッシングユニット（ＧＰＵ）、デジタル信号処理（ＤＳＰ）ユニット、フィールドプログラマブルゲートアレイ又はその他のプログラマブル処理要素のような、プロセッサとは異なる要素であってよい。処理要素６８０は、処理要素６７０に対して異種又は非対称であってよい。アーキテクチャ、マイクロアーキテクチャ、熱的、電力消費特性等を含む利点のメトリクスのスペクトルに関して、処理要素６７０と処理要素６８０との間に様々な差異があり得る。これらの差異は、処理要素６７０、６８０の間に、非対称性及び異種性としてそれら自身に実質的に表れる。いくつかの実施形態において、様々な処理要素６７０、６８０は、同一のダイパッケージ内に存在してよい。
【００８３】
第１の処理要素６７０は、メモリコントローラ論理（ＭＣ）６７２及びポイントツーポイント（Ｐ−Ｐ）インターコネクト６７６及び６７８を更に含んでよい。同様に、第２の処理要素６８０は、ＭＣ６８２及びＰ−Ｐインターコネクト６８６及び６８８を含んでよい。図６に示されるように、ＭＣ６７２及び６８２は、処理要素６７０、６８０をそれぞれのメモリ、すなわち、メモリ６３２及びメモリ６３４に結合し、これらのメモリは、それぞれのプロセッサに対してローカルに取り付けられるメインメモリの一部であってよい。ＭＣ論理６７２及び６８２は、処理要素６７０、６８０に統合されるように示される一方、いくつかの実施形態において、ＭＣ論理は、内部に統合されるよりも、むしろ、処理要素６７０、６８０の外部のディスクリート論理であってよい。
【００８４】
処理要素６７０及び処理要素６８０は、それぞれ、Ｐ−Ｐインターコネクト６７６、６８６及び６８４を介してＩ／Ｏサブシステム６９０に結合されてよい。図６に示されるように、Ｉ／Ｏサブシステム６９０は、Ｐ−Ｐインターコネクト６９４及び６９８を含む。更に、Ｉ／Ｏサブシステム６９０は、Ｉ／Ｏサブシステム６９０を高性能グラフィックスエンジン６３８に結合するインターフェース６９２を含む。一実施形態において、バス６３９は、グラフィクスエンジン６３８をＩ／Ｏサブシステム６９０に結合するために用いられてよい。代替的に、ポイントツーポイントインターコネクト６３９がこれらのコンポーネントを結合してよい。
【００８５】
同様にして、Ｉ／Ｏサブシステム６９０は、インターフェース６９６を介して第１のリンク６１６に結合されてよい。一実施形態において、第１のリンク６１６は、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バス、又は、ＰＣＩエクスプレスバス若しくは別のＩ／Ｏインターコネクトバスのようなバスであってよいが、本発明の範囲は、これに限定されない。
【００８６】
図６に示されるように、様々なＩ／Ｏデバイス６１４が、第１のリンク６１６を第２のリンク６１０に結合し得るブリッジ６１８とともに第１のリンク６１６に結合されてよい。一実施形態において、第２のリンク６１０は、ローピンカウント（ＬＰＣ）バスであってよい。一実施形態において、様々なデバイスは、例えば、キーボード／マウス６１２、（順番にコンピュータネットワーク６０３と通信し得る）（複数の）通信デバイス６２６、及び、コード６３０を含み得るディスクドライブ又は他の大容量ストレージデバイスのようなデータストレージユニット６２８を含む第２のリンク６１０に結合されてよい。コード６３０は、上記で説明した複数の技術の複数の実施形態のうちの１又は複数を実行するための複数の命令を含んでよい。更に、オーディオＩ／Ｏ６２４が第２のリンク６１０に結合されてよい。更に、トラステッドプラットフォームモジュール６４５は、プログラマブルデバイス６００に対してセキュアな暗号化環境を提供するべく、第２のリンク６１０に接続されてよい。
【００８７】
他の実施形態が企図されることに留意されたい。例えば、図６のポイントツーポイントアーキテクチャの代わりに、システムは、マルチドロップバス又は別のそのような通信トポロジーを実装してよい。リンク６１６及び６１０が複数のバスとして図６に示されるが、任意の所望のタイプのリンクが用いられてよい。また、図６の複数の要素は、図６に示されるよりも、多くの又は少ない複数の統合チップを用いて、代替的に分割されてよい。
【００８８】
図７を参照すると、ブロック図は、別の実施形態に係るプログラマブルデバイス７００を示す。図６の特定の態様が、図７の他の態様を曖昧にすることを避けるべく、図７から省略されている。
【００８９】
図７は、処理要素７７０、７８０が統合メモリ及びＩ／Ｏ制御論理（「ＣＬ」）７７２及び７８２をそれぞれ含み得ることを示す。いくつかの実施形態において、ＣＬ７７２、７８２は、図６と関連して上記で説明されたようなメモリ制御論理（ＭＣ）を含んでよい。更に、ＣＬ７７２、７８２は、Ｉ／Ｏ制御論理も含んでよい。図７は、メモリ７３２、７３４がＣＬ７７２、７８２に結合され得ることだけでなく、Ｉ／Ｏデバイス７１４も制御論理７７２、７８２に結合され得ることを示す。レガシーＩ／Ｏデバイス７１５は、Ｉ／Ｏサブシステム７９０に結合されてよい。
【００９０】
図６及び図７に示す複数のプログラマブルデバイスは、本明細書で検討される様々な実施形態を実装するべく使用され得る複数のプログラマブルデバイスの複数の実施形態の概略図である。図６及び図７に示される複数のプログラマブルデバイスの様々なコンポーネントがシステムオンチップ（ＳｏＣ）アーキテクチャに組み合わせられ得ることが理解されるだろう。
【００９１】
これら図６及び図７に示されるようなプログラマブルデバイスは、モバイルデバイス１１０又はステーション１２０を実装するために用いられ、プログラマブルデバイスは、モバイルデバイス１１０又はステーション１２０と無線通信を行う目的の、及び、ステーション１２０の場合、複数のモバイルデバイス１１０と通信するためのタワー又はアンテナを取り付けるための他の構造と無線通信を行う目的の送信機及び受信機を含んでよく、又は、これらに接続されてよい。そのような複数の送信機、複数の受信機及び複数のタワーは、当技術分野において周知であり、本明細書における更なる説明は、当業者にとって必要ではない。
【００９２】
複数のプログラム命令は、図６及び７に示されるもののような、汎用又は特殊用途の処理システムに実行させるべく用いられてよく、そのような処理システムは、本明細書で説明される複数のオペレーションを実行するための複数の命令を用いてプログラミングされる。代替的に、複数のオペレーションは、当該複数のオペレーションを実行するためのハードワイヤード論理を含む特定のハードウェア構成要素により、又は、複数のプログラミングされたコンピュータコンポーネント及び複数のカスタムハードウェアコンポーネントの任意の組み合わせにより実行されてよい。本明細書で説明される複数の方法は、実行されるときに、処理システム又は他の電子デバイスに当該複数の方法を実行させる複数の命令をそれに格納した機械可読媒体を含むコンピュータプログラム製品として提供され得る。本明細書で用いられる用語「機械可読媒体」は、機械による実行のための複数の命令のシーケンスを格納すること又は複数の命令のシーケンスを符号化することを可能とし、かつ、当該機械に対して本明細書で説明する複数の方法のうちのいずれか１つを実行させる任意の媒体を含むものとする。更に、「機械可読媒体」は、１又は複数の物理オブジェクトとして実装されてよい。用語「機械可読媒体」は、複数のソリッドステートメモリ、光及び磁気ディスクのような複数の有形の、非一時的なメモリを状況に応じて含むものとするが、これに限定されるものではない。更に、行動を起こす又は結果をもたらすように、１つの形態又は別の形態（例えば、プログラム、プロシージャ、プロセス、アプリケーション、モジュール、論理等）で、ソフトウェアを述べることは、当技術分野において一般的なことである。そのような表現は、処理システムによるソフトウェアの実行がプロセッサに動作を実行させ又は結果を生成させることを述べることを単に簡潔に表現している過ぎない。
【００９３】
以下の複数の実施例は、更なる複数の実施形態に関する。
【００９４】
実施例１は、複数の命令が格納される機械可読媒体であり、機械可読媒体は、実行されるときに、プログラマブルデバイスに、プログラマブルデバイスの位置に対応するジオロケーションデータを取得させ、ジオロケーションデータ及び第１の署名データをジオロケーションステーションに送信させ、ジオロケーションデータ及び第１の署名データに対応する第２の署名データを、ジオロケーションステーションから受信させ、第２の署名データを格納させる複数の命令を備える。
【００９５】
実施例２は、実施例１の主題を含み、実行されるときに、プログラマブルデバイスに、ジオロケーションデータを送信させる複数の命令は、実行されるときに、プログラマブルデバイスに、プログラマブルデバイスに対応するジオロケーションデータのコレクション及び第１の署名データをジオロケーションステーションに送信させる複数の命令を含む。
【００９６】
実施例３は、実施例１〜２のいずれかの主題を含み、実行されるときに、プログラマブルデバイスにジオロケーションデータを送信させる複数の命令は、更に、実行されるときに、プログラマブルデバイスに、プログラマブルデバイスに対応する識別データをジオロケーションステーションに送信させる複数の命令を含む。
【００９７】
実施例４は、実施例１〜３のいずれかの主題を含み、第１の署名データは、ジオロケーションデータが初期のジオロケーションデータを含むことを示す予め定められた値である。
【００９８】
実施例５は、実施例１〜４のいずれかの主題を含み、複数の命令は、更に、実行されるときに、プログラマブルデバイスに、ジオロケーションデータの検証のために、ジオロケーションデータ、第１の署名データ及び第２の署名データを送信させる複数の命令を含む。
【００９９】
実施例６は、実施例１〜５のいずれかの主題を含み、第２の署名データは、ジオロケーションステーションの暗号化キーを用いてジオロケーションステーションにより署名される。
【０１００】
実施例７は、実施例１〜６のいずれかの主題を含み、実行されるときに、プログラマブルデバイスに、第２の署名データを格納させる複数の命令は、実行されるときに、プログラマブルデバイスに、第１の署名データを含む署名データのコレクションに第２の署名データを格納させる複数の命令を含む。
【０１０１】
実施例８は、実施例１〜７のいずれかの主題を含み、実行されるときに、プログラマブルデバイスに、プログラマブルデバイスの位置に対応するジオロケーションデータを取得させる複数の命令は、実行されるときに、プログラマブルデバイスに、ジオロケーションステーションからジオロケーションデータを要求させる複数の命令を含む。
【０１０２】
実施例９は、実施例１〜８のいずれかの主題を含み、実行されるときに、プログラマブルデバイスに、ジオロケーションデータ及び第１の署名データをジオロケーションステーションに送信させる複数の命令は、実行されるときに、プログラマブルデバイスに、ジオロケーションデータ及び第１の署名データに対応するハッシュ値を算出させ、ハッシュ値をジオロケーションステーションに送信させる複数の命令を含む。
【０１０３】
実施例１０は、ジオロケーションデータプロバイダステーションであり、ジオロケーションデータプロバイダステーションは、処理要素と、処理要素に結合されるメモリとを備え、メモリには、実行されるときに、処理要素に、モバイルデバイス識別子、モバイルデバイスに対応するジオロケーションデータ及び第１の署名を有するデータをモバイルデバイスから受信させ、モバイルデバイス識別子、ジオロケーションデータ及び第１の署名の第２の署名を算出させ、第２の署名をモバイルデバイスに送信させる複数の命令が格納される。
【０１０４】
実施例１１は、実施例１０の主題を含み、複数の命令は、実行されるときに、処理要素に、モバイルデバイスに対応するジオロケーションデータを算出させ、ジオロケーションデータをモバイルデバイスに送信させる複数の命令を更に含む。
【０１０５】
実施例１２は、実施例１０〜１１のいずれかの主題を含み、実行されるときに、処理要素に、第２の署名を算出させる複数の命令は、実行されるときに、処理要素に、公開暗号化キーに対応するプライベート暗号化キーを用いて、第２の署名を算出させる複数の命令を含む。
【０１０６】
実施例１３は、実施例１０〜１２のいずれかの主題を含み、モバイルデバイスから受信したデータは、ハッシュを含み、ハッシュは、モバイルデバイス識別子、モバイルデバイスに対応するジオロケーションデータ及び第１の署名から生成される。
【０１０７】
実施例１４は、方法であり、方法は、モバイルデバイスに対応する第１のジオロケーションデータを検証するための要求を受信する段階と、第１のジオロケーションデータに対応する第１の署名を受信する段階と、第１の署名を検証する段階と、署名済みのジオロケーションデータ及び第２の署名を第１の署名から抽出する段階であって、第２の署名は、モバイルデバイスに対応する第２のジオロケーションデータに対応する、段階と、署名済みのジオロケーションデータを第１のジオロケーションデータと比較する段階とを備える。
【０１０８】
実施例１５は、実施例１４の主題を含み、第２の署名が予め定められた初期の署名を有するまで、検証する段階及び比較する段階を繰り返す段階を更に備える。
【０１０９】
実施例１６は、実施例１４〜１５のいずれかの主題を含み、署名済みのジオロケーションデータが第１のジオロケーションデータと一致しないことのインジケーションを提供する段階を更に備える。
【０１１０】
実施例１７は、実施例１４〜１６のいずれかの主題を含み、方法は、モバイルデバイスにより実行される。
【０１１１】
実施例１８は、実施例１４〜１７のいずれかの主題を含み、方法は、第１のジオロケーションデータ及び第１の署名へのアクセスを有するリモートサーバにより実行される。
【０１１２】
実施例１９は、実施例１４〜１８のいずれかの主題を含み、署名済みのジオロケーションデータは、モバイルデバイスに対応する識別子を含む。
【０１１３】
実施例２０は、実施例１４〜１９のいずれかの主題を含み、署名済みのジオロケーションデータは、モバイルデバイスのジオロケーションデータ及びジオロケーションプロバイダステーションのジオロケーションデータを含む。
【０１１４】
実施例２１は、モバイルデバイスであり、モバイルデバイスは、ジオロケーションデータ及び第１の署名データをジオロケーションステーションに送信する手段と、ジオロケーションステーションから第２の署名データを受信する手段であって、第２の署名データは、ジオロケーションデータと第１の署名データとの署名を含む、手段と、第２の署名データを格納する手段とを備える。
【０１１５】
実施例２２は、実施例２１の主題を含み、ジオロケーションデータの検証のために、ジオロケーションデータ、第１の署名データ及び第２の署名データを送信する手段を更に備える。
【０１１６】
実施例２３は、実施例２１〜２２のいずれかの主題を含み、ジオロケーションデータ及び第１の署名データに対応するハッシュ値を算出し、当該ハッシュ値をジオロケーションステーションに送信する手段を更に備える。
【０１１７】
実施例２４は、モバイルデバイスであり、モバイルデバイスは、処理要素と、処理要素に結合されるメモリとを備え、メモリには、実行されるときに、処理要素に、モバイルデバイスの位置に対応するジオロケーションデータを取得させ、ジオロケーションデータ及び第１の署名データをジオロケーションステーションに送信させ、ジオロケーションデータ及び第１の署名データに対応する第２の署名データをジオロケーションステーションから受信させ、第２の署名データを格納させる複数の命令が格納される。
【０１１８】
実施例２５は、実施例２４の主題を含み、実行されるときに、処理要素に、ジオロケーションデータを送信させる複数の命令は、実行されるときに、処理要素に、処理要素及び第１の署名データに対応するジオロケーションデータのコレクションをジオロケーションステーションに送信させる複数の命令を含む。
【０１１９】
実施例２６は、実施例２４〜２５のいずれかの主題を含み、実行されるときに、処理要素に、ジオロケーションデータを送信させる複数の命令は、実行されるときに、処理要素に、処理要素に対応する識別データをジオロケーションステーションに送信させる複数の命令を更に含む。
【０１２０】
実施例２７は、実施例２４〜２６のいずれかの主題を含み、第１の署名データは、ジオロケーションデータが初期のジオロケーションデータを含むことを示す予め定められた値である。
【０１２１】
実施例２８は、実施例２４〜２７のいずれかの主題を含み、複数の命令は、実行されるときに、処理要素に、ジオロケーションデータの検証のために、ジオロケーションデータ、第１の署名データ及び第２の署名データを送信させる複数の命令を更に含む。
【０１２２】
実施例２９は、実施例２４〜２８のいずれかの主題を含み、第２の署名データは、ジオロケーションステーションの暗号化キーを用いて、ジオロケーションステーションにより署名される。
【０１２３】
実施例３０は、実施例２４〜２９のいずれかの主題を含み、実行されるときに、処理要素に、第２の署名データを格納させる複数の命令は、実行されるときに、処理要素に、第１の署名データを含む署名データのコレクションに第２の署名データを格納させる複数の命令を含む。
【０１２４】
実施例３１は、実施例２４〜３０のいずれかの主題を含み、実行されるときに、処理要素に、処理要素の位置に対応するジオロケーションデータを取得させる複数の命令は、実行されるときに，処理要素に、ジオロケーションステーションからジオロケーションデータを要求させる複数の命令を含む。
【０１２５】
実施例３２は、実施例２４〜３１のいずれかの主題を含み、実行されるときに、処理要素に、ジオロケーションデータ及び第１の署名データをジオロケーションステーションに送信させる複数の命令は、実行されるときに、処理要素に、ジオロケーションデータ及び第１の署名データに対応するハッシュ値を算出させ、当該ハッシュ値をジオロケーションステーションに送信させる複数の命令を含む。
【０１２６】
上記の説明は例示的であり、かつ、限定的でないことが意図されることが理解されるべきである。例えば、上述した複数の実施形態は、互いに組み合わせて用いられてよい。多くの他の実施形態は、上記の説明を検討すると、当業者に明らかとなるであろう。従って、本発明の範囲は、添付の特許請求の範囲が権利を与えられる等価物の全ての範囲とともに、そのような特許請求の範囲を参照しつつ判断されるべきである。
【図１】
2017508379.tif 000006
【図２】
2017508379.tif 000007
【図３】
2017508379.tif 000008
【図４】
2017508379.tif 000009
【図５】
2017508379.tif 000010
【図６】
2017508379.tif 000011
【図７】
2017508379.tif 000012
【手続補正書】
【提出日】平成28年9月13日(2016.9.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラマブルデバイスに、
前記プログラマブルデバイスの位置に対応するジオロケーションデータを取得する手順と、
前記ジオロケーションデータ及び第１の署名データをジオロケーションステーションに送信する手順と、
前記ジオロケーションステーションから、前記ジオロケーションデータ及び前記第１の署名データに対応する第２の署名データを受信する手順と、
前記第２の署名データを格納する手順と
を実行させるためのコンピュータプログラム。
【請求項２】
前記ジオロケーションデータ及び前記第１の署名データを送信する手順は、前記プログラマブルデバイスに対応するジオロケーションデータのコレクション及び前記第１の署名データを前記ジオロケーションステーションに送信する手順を含む、請求項１に記載のコンピュータプログラム。
【請求項３】
前記ジオロケーションデータ及び前記第１の署名データを送信する手順は、前記プログラマブルデバイスに対応する識別データを前記ジオロケーションステーションに送信する手順を更に含む、請求項１に記載のコンピュータプログラム。
【請求項４】
前記第１の署名データは、前記ジオロケーションデータが初期のジオロケーションデータを有することを示す予め定められた値である、請求項１に記載のコンピュータプログラム。
【請求項５】
前記プログラマブルデバイスに、前記ジオロケーションデータの検証のために、前記ジオロケーションデータ、前記第１の署名データ、及び前記第２の署名データを送信する手順を更に実行させるための、請求項１に記載のコンピュータプログラム。
【請求項６】
前記第２の署名データは、前記ジオロケーションステーションの暗号化キーを用いて前記ジオロケーションステーションにより署名される、請求項１から５のいずれか１項に記載のコンピュータプログラム。
【請求項７】
前記第２の署名データを格納する手順は、前記第１の署名データを含む署名データのコレクションに前記第２の署名データを格納する手順を含む、請求項１から５のいずれか１項に記載のコンピュータプログラム。
【請求項８】
前記プログラマブルデバイスの前記位置に対応するジオロケーションデータを取得する手順は、前記ジオロケーションステーションから前記ジオロケーションデータを要求する手順を含む、請求項１から５のいずれか１項に記載のコンピュータプログラム。
【請求項９】
前記ジオロケーションデータ及び前記第１の署名データをジオロケーションステーションに送信する手順は、
前記ジオロケーションデータ及び前記第１の署名データに対応するハッシュ値を算出する手順と、
前記ハッシュ値を前記ジオロケーションステーションに送信する手順と
を含む、請求項１から５のいずれか１項に記載のコンピュータプログラム。
【請求項１０】
請求項１から９のいずれか１項に記載のコンピュータプログラムを格納するコンピュータ可読記録媒体。
【請求項１１】
処理要素と、
前記処理要素に結合されるメモリと
を備え、
前記メモリは、
実行されるときに、前記処理要素に、
モバイルデバイス識別子、モバイルデバイスに対応するジオロケーションデータ及び第１の署名を有する前記モバイルデバイスからデータを受信させ、
前記モバイルデバイス識別子、前記ジオロケーションデータ及び前記第１の署名の第２の署名を算出させ、
前記第２の署名を前記モバイルデバイスに送信させる
複数の命令を格納する、ジオロケーションデータプロバイダステーション。
【請求項１２】
前記複数の命令は、実行されるときに、前記処理要素に、
前記モバイルデバイスに対応するジオロケーションデータを算出させ、
前記ジオロケーションデータを前記モバイルデバイスに送信させる
複数の命令を更に含む、請求項１１に記載のジオロケーションデータプロバイダステーション。
【請求項１３】
実行されるときに、前記処理要素に前記第２の署名を算出させる前記複数の命令は、実行されるときに、前記処理要素に、公開暗号化キーに対応するプライベート暗号化キーを用いて前記第２の署名を算出させる複数の命令を含む、請求項１１に記載のジオロケーションデータプロバイダステーション。
【請求項１４】
前記モバイルデバイスから受信した前記データは、ハッシュを含み、前記ハッシュは、前記モバイルデバイス識別子、前記モバイルデバイスに対応する前記ジオロケーションデータ及び前記第１の署名から生成される、請求項１１から１３のいずれか１項に記載のジオロケーションデータプロバイダステーション。
【請求項１５】
モバイルデバイスに対応する第１のジオロケーションデータを検証する要求を受信する段階と、
前記第１のジオロケーションデータに対応する第１の署名を受信する段階と、
前記第１の署名を検証し、署名済みのジオロケーションデータ、及び第２の署名を前記第１の署名から抽出する段階であって、前記第２の署名は、前記モバイルデバイスに対応する第２のジオロケーションデータに対応する、段階と、
前記署名済みのジオロケーションデータを前記第１のジオロケーションデータと比較する段階と
を備える方法。
【請求項１６】
前記第２の署名が予め定められた初期の署名を含むまで、前記検証する段階及び比較する段階を繰り返す段階を更に備える、請求項１５に記載の方法。
【請求項１７】
前記署名済みのジオロケーションデータが前記第１のジオロケーションデータと一致しないことのインジケーションを提供する段階を更に備える、請求項１５に記載の方法。
【請求項１８】
前記方法は、前記モバイルデバイスにより実行される、請求項１５から１７のいずれか１項に記載の方法。
【請求項１９】
前記方法は、前記第１のジオロケーションデータ及び前記第１の署名へのアクセスを有するリモートサーバにより実行される、請求項１５から１７のいずれか１項に記載の方法。
【請求項２０】
前記署名済みのジオロケーションデータは、前記モバイルデバイスに対応する識別子を含む、請求項１５から１７のいずれか１項に記載の方法。
【請求項２１】
前記署名済みのジオロケーションデータは、前記モバイルデバイスのジオロケーションデータ及びジオロケーションプロバイダステーションのジオロケーションデータを含む、請求項１５から１７のいずれか１項に記載の方法。
【請求項２２】
ジオロケーションデータ及び第１の署名データをジオロケーションステーションに送信する手段と、
前記ジオロケーションデータと前記第１の署名データとの署名を含む第２の署名データを前記ジオロケーションステーションから受信する手段と、
前記第２の署名データを格納する手段と
を備えるモバイルデバイス。
【請求項２３】
前記ジオロケーションデータの検証のために、前記ジオロケーションデータ、前記第１の署名データ、及び前記第２の署名データを送信する手段を更に備える、請求項２２に記載のモバイルデバイス。
【請求項２４】
前記ジオロケーションデータ及び前記第１の署名データに対応するハッシュ値を算出し、前記ハッシュ値を前記ジオロケーションステーションに送信する手段を更に備える、請求項２２に記載のモバイルデバイス。
【国際調査報告】
2017508379.tif 000013
2017508379.tif 000014