(57)【要約】【課題】無線による距離検証システムにおける中継端末攻撃（Relay attack）を防ぐ。【解決手段】距離検証システムは、位置サーバと耐タンパー性の位置モジュールとからなる。位置サーバは、位置モジュールからの応答の遅延時間を検知できる精度の時間計測機能を有し、位置モジュールまでの距離を検証して認証する。位置モジュールは、ユーザ認証手段を有し、ユーザ認証に成功した場合のみ、位置サーバからのチャレンジ情報を自己の秘密鍵により処理してレスポンス情報を生成する。位置サーバは、位置モジュールからの応答の遅延時間を利用して距離検証を行う際に、相手認証のための処理時間を距離検証のための計測時間の範囲に含めて、相手認証と距離検証を同時に実施する。【選択図】図１
2006197458.tif 000002
【特許請求の範囲】
【請求項１】
距離検証手段と距離証明手段とからなり、前記距離検証手段は、応答遅延時間を検知可能な精度の時間計測機能と、前記距離証明手段までの距離を検証して認証する機能を有し、前記距離証明手段は、前記距離検証手段からのチャレンジ情報を処理してレスポンス情報を生成する機能を有する距離検証システムにおける距離検証方法であって、前記距離検証手段が、前記距離証明手段からの応答の遅延時間を利用して距離検証を行う際に、鍵の処理のための処理時間を距離検証のための計測時間の範囲に含めることを特徴とする距離検証方法。
【請求項２】
前記距離検証手段は、毎回異なるチャレンジ情報を生成して送信し、前記距離証明手段は、受信したチャレンジ情報を自己の秘密鍵により処理してレスポンス情報を生成することを特徴とする請求項１記載の距離検証方法。
【請求項３】
前記距離検証手段は、遅延時間が想定遅延時間範囲に入らない場合に距離検証に失敗したと見なすことを特徴とする請求項１記載の距離検証方法。
【請求項４】
前記距離検証手段は、前記距離証明手段の演算能力に基づいて前記チャレンジ情報と前記想定遅延時間を決定することを特徴とする請求項３記載の距離検証方法。
【請求項５】
前記距離検証手段は、距離検証のための時間計測外に、メッセージ検証に関する情報の送信とメッセージの検証とを行うことを特徴とする請求項１記載の距離検証方法。
【請求項６】
距離検証手段と距離証明手段とからなる距離検証システムであって、前記距離検証手段は、前記距離証明手段からの応答遅延時間を検知可能な精度の時間計測手段と、鍵の処理のための処理時間を距離検証のための計測時間の範囲に含めて距離検証を行う手段とを有し、前記距離証明手段は、前記距離検証手段からのチャレンジ情報を処理してレスポンス情報を生成する手段を有することを特徴とする距離検証システム。
【請求項７】
前記距離検証手段は、毎回異なるチャレンジ情報を生成して送信する手段を有し、前記距離証明手段は、受信したチャレンジ情報を自己の秘密鍵により処理してレスポンス情報を生成する手段を有することを特徴とする請求項６記載の距離検証システム。
【請求項８】
前記鍵の処理において前記距離証明手段の秘密鍵を不使用とする選択が可能であることを特徴とする請求項１記載の距離検証方法。
【請求項９】
前記鍵の処理のための情報を、前記距離検証手段に対して匿名とする選択を可能とすることを特徴とする請求項１記載の距離検証方法。
【請求項１０】
前記距離検証手段を複数備えて、領域検証を可能とすることを特徴とする請求項１記載の距離検証方法。
【請求項１１】
前記距離検証手段を複数備えて、点位置検証を可能とすることを特徴とする請求項１記載の距離検証方法。
【請求項１２】
前記距離検証手段を複数備えて、複数の距離検証手段からの情報に基づいて距離検証の結果を判断することを特徴とする請求項１記載の距離検証方法。
【請求項１３】
前記距離検証装置が、自身の距離を取得可能なモバイルノードであることを特徴とする請求項１記載の距離検証方法。
【請求項１４】
前記モバイルノードが、前記距離証明手段と前記距離検証手段とを備えることを特徴とする請求項１３記載の距離検証方法。
【請求項１５】
前記鍵の処理において、前記距離証明手段の秘密鍵を不使用とする選択が可能であり、前記鍵の処理のための情報を、前記距離検証手段に対して匿名とする選択が可能であることを特徴とする請求項１記載の距離検証方法。
【請求項１６】
前記チャレンジ情報全体のみから前記レスポンス情報を生成でき、前記チャレンジ情報の一部からは前記レスポンス情報のいかなる部分も生成できないというデータ構造を有するチャレンジ情報を用いることを特徴とする請求項１記載の距離検証方法。
【請求項１７】
前記チャレンジ情報は、複数の暗号文からなり、ひとつの暗号文を解くと次の暗号文を解く鍵が得られる構成であり、前記暗号文のうち、最初に解かなくてはならない暗号文を最後に送信することを特徴とする請求項１６記載の距離検証方法。
【請求項１８】
前記距離検証手段を複数備えて、経路検証を可能とすることを特徴とする請求項１記載の距離検証方法。
【請求項１９】
前記距離検証手段が第２の距離証明手段を備え、前記距離証明手段が第２の距離検証手段を備え、相互に距離検証を行うことを特徴とする請求項１記載の距離検証方法。
【請求項２０】
前記距離証明手段が、距離検証の実行前に、前記距離検証手段の相手検証を実行することを特徴とする請求項１記載の距離検証方法。
【請求項２１】
前記距離検証手段が距離検証に成功した場合に、距離情報と時刻と前記距離証明手段の識別情報とを含み、前記距離証明手段の署名が付加された距離証明書を、前記距離証明手段に発行することを特徴とする請求項１記載の距離検証方法。
【請求項２２】
前記距離情報が、前記距離検証手段の識別情報と、遅延時間とを含むことを特徴とする請求項２１記載の距離検証方法。
【請求項２３】
前記距離証明手段は、常に演算時間が一定になるように、最大演算時間より演算時間が少ない場合は、その差分時間だけ他の演算を行うことを特徴とする請求項１〜５、８〜２１のいずれかに記載の距離検証方法。
【請求項２４】
前記距離証明手段は、常に演算時間が一定になるように、最大演算時間より演算時間が少ない場合は、その差分時間だけ他の演算を行うことを特徴とする請求項６または７に記載の距離検証システム。
【請求項２５】
距離検証手段（Ｖ）と少なくとも２つの距離証明手段（Ｐ1、Ｐ2）とからなり、前記距離検証手段（Ｖ）は、応答遅延時間を検知可能な精度の時間計測機能と、前記距離証明手段（Ｐ1、Ｐ2）までの距離を検証して認証する機能を有し、前記距離証明手段（Ｐ1、Ｐ2）は、前記距離検証手段（Ｖ）からのチャレンジ情報を処理してレスポンス情報を生成する機能を有する距離検証システムにおける２点間距離検証方法であって、前記距離証明手段Ｐ2を距離検証する際に、前記距離証明手段Ｐ1にチャレンジ情報を中継させ、前記距離証明手段P1はチャレンジ情報を中継する際にチャレンジ情報にコミットし、前記距離証明手段Ｐ2はレスポンス情報を返す際にレスポンス情報にコミットし、前記距離証明手段Ｐ2はレスポンス情報を前記距離検証手段Ｖに直接返し、前記距離証明手段Ｐ2を距離検証した結果と前記距離証明手段Ｐ1を単独で距離検証した結果から前記距離証明手段Ｐ1と前記距離証明手段Ｐ2との間の距離を算出することを特徴とする２点間距離検証方法。
【請求項２６】
距離検証手段（Ｖ）と少なくとも２つの距離証明手段（Ｐ1、Ｐ2）とからなり、前記距離検証手段（Ｖ）は、応答遅延時間を検知可能な精度の時間計測機能と、前記距離証明手段（Ｐ1、Ｐ2）までの距離を検証して認証する機能を有し、前記距離証明手段（Ｐ1、Ｐ2）は、前記距離検証手段（Ｖ）からのチャレンジ情報を処理してレスポンス情報を生成する機能を有する距離検証システムにおける２点間距離検証方法であって、前記距離証明手段P2を距離検証する際に、前記距離証明手段P1にチャレンジ情報を中継させ、前記距離証明手段P1はチャレンジ情報を中継する際にチャレンジ情報にコミットし、前記距離証明手段P2はレスポンス情報を返す際にレスポンス情報にコミットし、前記距離証明手段P2はレスポンス情報を前記距離証明手段P1に中継させ、前記距離証明手段P1はレスポンス情報を中継する際にレスポンス情報にコミットし、前記距離証明手段Ｐ2を距離検証した結果と前記距離証明手段P1を距離検証した結果から前記距離証明手段P1と前記距離証明手段P2との間の距離を算出することを特徴とする２点間距離検証方法。
【請求項２７】
距離検証手段（Ｖ）と少なくとも２つの距離証明手段（Ｐ1、Ｐ2）とからなり、前記距離検証手段（Ｖ）は、応答遅延時間を検知可能な精度の時間計測機能と、前記距離証明手段（Ｐ1、Ｐ2）までの距離を検証して認証する機能を有し、前記距離証明手段（Ｐ1、Ｐ2）は、前記距離検証手段（Ｖ）からのチャレンジ情報を処理してレスポンス情報を生成する機能を有する距離検証システムにおける２点間距離検証方法であって、前記距離証明手段P2を距離検証する際に、前記距離証明手段P1にチャレンジ情報を中継させ、前記距離証明手段P1はチャレンジ情報を中継する際にチャレンジ情報にコミットし、前記距離証明手段P2はレスポンス情報を返す際にレスポンス情報にコミットし、前記距離証明手段P2はレスポンス情報を前記距離検証手段Ｖに直接返し、前記距離証明手段Ｐ2を距離検証した結果と前記距離証明手段P1を単独で距離検証した結果から前記距離証明手段P1と前記距離証明手段P2との間の距離を算出し、前記距離証明手段P1を距離検証する際に、前記距離証明手段P2にチャレンジ情報を中継させ、前記距離証明手段P2はチャレンジ情報を中継する際にチャレンジ情報にコミットし、前記距離証明手段P1はレスポンス情報を返す際にレスポンス情報にコミットし、前記距離証明手段P1はレスポンス情報を前記距離検証手段Ｖに直接返し、前記距離証明手段Ｐ2を単独で距離検証した結果と前記距離証明手段P1を距離検証した結果から前記距離証明手段P1と前記距離証明手段P2との間の距離を算出し、結果の差が一定値以内であれば検証成功とすることを特徴とする２点間距離検証方法。
【請求項２８】
距離検証手段（Ｖ）と少なくとも２つの距離証明手段（Ｐ1、Ｐ2）とからなり、前記距離検証手段（Ｖ）は、応答遅延時間を検知可能な精度の時間計測機能と、前記距離証明手段（Ｐ1、Ｐ2）までの距離を検証して認証する機能を有し、前記距離証明手段（Ｐ1、Ｐ2）は、前記距離検証手段（Ｖ）からのチャレンジ情報を処理してレスポンス情報を生成する機能を有する距離検証システムにおける２点間距離検証方法であって、前記距離証明手段P2を距離検証する際に、前記距離証明手段P1にチャレンジ情報を中継させ、前記距離証明手段P1はチャレンジ情報を中継する際にチャレンジ情報にコミットし、前記距離証明手段P2はレスポンス情報を返す際にレスポンス情報にコミットし、前記距離証明手段P2はレスポンス情報を前記距離証明手段P1に中継させ、前記距離証明手段P1はレスポンス情報を中継する際にレスポンス情報にコミットし、前記距離証明手段Ｐ2を距離検証した結果と前記距離証明手段P1を単独で距離検証した結果から前記距離証明手段P1と前記距離証明手段P2との間の距離を算出し、前記距離証明手段P1を距離検証する際に、前記距離証明手段P2にチャレンジ情報を中継させ、前記距離証明手段P2はチャレンジ情報を中継する際にチャレンジ情報にコミットし、前記距離証明手段P1はレスポンス情報を返す際にレスポンス情報にコミットし、前記距離証明手段P1はレスポンス情報を前記距離証明手段P2に中継させ、前記距離証明手段P2はレスポンス情報を中継する際にレスポンス情報にコミットし、前記距離証明手段Ｐ2を単独で距離検証した結果と前記距離証明手段P1を距離検証した結果から前記距離証明手段P1と前記距離証明手段P2との間の距離を算出し、結果の差が一定値以内であれば検証成功とすることを特徴とする２点間距離検証方法。
【請求項２９】
前記距離検証手段は、前記距離証明手段の演算能力に基づいて前記チャレンジ情報と想定遅延時間を決定し、遅延時間が前記想定遅延時間範囲に入らない場合に距離検証に失敗したと見なすことを特徴とする請求項２５〜２８のいずれかに記載の２点間距離検証方法。
【請求項３０】
前記距離証明手段を単独で距離検証した際のチャレンジ情報またはレスポンス情報に依存させて、距離検証の際のチャレンジ情報を生成し、それに対するレスポンス情報は、単独検証の際のチャレンジ情報またはレスポンス情報なしには生成できないというデータ構造を有するチャレンジ情報を用いることを特徴とする請求項２５〜２８のいずれかに記載の２点間距離検証方法。
【請求項３１】
前記距離証明手段を３個以上とし、前記距離証明手段は、チャレンジ情報を中継する際に同報し、前記距離証明手段のうちの２つの組み合わせすべてについて距離検証を行うことを特徴とする請求項２５〜２８のいずれかに記載の２点間距離検証方法。
【請求項３２】
前記距離検証手段がチャレンジ情報を同報することを特徴とする請求項３１記載の２点間距離検証方法。
【請求項３３】
前記距離検証手段が検証結果に署名して距離証明書を発行する際に、当該距離検証手段の識別情報又は距離情報を含めないことを特徴とする請求項２５〜３２のいずれかに記載の２点間距離検証方法。
【請求項３４】
前記距離証明手段を３個以上とし、複数の距離証明手段により、チャレンジ情報とレスポンス情報を順次中継することを特徴とする請求項２５〜２８のいずれかに記載の２点間距離検証方法。
【請求項３５】
前記距離証明手段を３個以上とし、中継する距離証明手段を常に特定の距離証明手段とすることを特徴とする請求項２５〜２８のいずれかに記載の２点間距離検証方法。
【請求項３６】
相互に通信可能な複数の距離検証手段を設け、ある距離検証手段が送ったチャレンジに対するレスポンス情報を他の距離検証手段が受信し、距離検証手段間通信を行い、それぞれの結果を集めて距離検証することを特徴とする請求項２５〜２８のいずれかに記載の２点間距離検証方法。
【請求項３７】
前記距離検証手段は、事前に生成可能な情報を事前に生成しておくことを特徴とする請求項２５〜３６のいずれかに記載の２点間距離検証方法。
【請求項３８】
前記距離証明手段は、常に演算時間が一定になるように、最大演算時間より演算時間が少ない場合は、その差分時間だけ他の演算を行うことを特徴とする請求項２５〜３６のいずれかに記載の２点間距離検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、距離および相手認証方法に関し、特に、中継攻撃を防ぐことができ、複数の証明者間の距離を検証可能な距離および相手認証方法に関する。
【背景技術】
【０００２】
最近、いつでもどこでもシームレスに情報取得可能であり、計算機能力利用も可能なユビキタスネットワークが盛んに研究されている。ユビキタスネットワークでは、RFID（無線タグ）、GPS（Global Positioning System）のような実環境と情報空間を結びつける技術を利用して、LBS（Location Based Service）に代表される実環境に依存したサービスの提供が検討されている。LBSは、サービスを要求するクライアントの、または他のエンティティの物理的な位置に依存するサービスである。例えば、携帯電話の存在する近辺の店舗や天気の情報を配信するサービスや、携帯電話の位置を追跡するサービスや、鉄道での非接触ICカードを利用した改札管理などがあげられる。今後、さらにリッチなサービスの出現も予想される。また、携帯電話におけるLBSのデファクト標準技術として、OMAや3GPPにおいて標準化が行われている。
【０００３】
非特許文献11や非特許文献21に紹介されているように、携帯電話などのモバイルノードに対する測位技術としては、GPS、E-OTD(Enhanced Observed Time Difference)、TDOA(Time Difference Of Arrival)、無線LANを利用した室内測位システム等が知られている。また、RFIDや簡易なセンサノードを利用した方式[非特許文献23]も盛んに研究されている。いずれも複数の電波の送受信時刻の差を利用して位置を決定する方法と言える。ユビキタスネットワークにおいては、ノードは常に移動しているため、位置トラッキングシステムが重要なインフラとして必要となる。
【０００４】
これらの測位技術では、モバイルノードやセンサノードが偽の位置情報を提供する可能性があるため、必ずしも安全と言えない。これを位置検証問題と呼ぶ。つまり、「位置検証手段Ｖは位置証明手段Ｐが時刻Ｔに位置Ｌに存在したことを検証できるか？」という問題である。安全なLBSを実現するため、位置検証問題を解決することが重要である。非特許文献９において指摘されているように、位置証明手段Ｐが移動体である場合は、時刻Ｔも位置情報を構成する要素として必須である。位置認証問題において特に重要なことは、攻撃者によって位置証明手段Ｐが実際に存在している位置Ｌではなく、位置検証手段Ｖが偽の位置Ｌ'を信じるようにできてしまうことが無いことである。特に、今後出現が予想されるリッチなサービスや入退室管理などのセキュリティが重視されるLBSでは、この問題は必ず解決されなければならない。
【０００５】
本明細書において、位置（Location）は、距離（Distance）、領域（Region）、点位置（Position）、経路（Route）の総称として扱う。距離は、位置証明手段Ｐと位置検証手段Ｖの相対的な距離を意味し、領域は、位置検証手段Ｖが検証可能なある範囲内に位置証明手段Ｐが存在することを意味する。点位置は、位置検証手段Ｖからみたある相対的な位置（距離、方角）に位置証明手段Ｐが存在することを意味する。さらに、本明細書では、位置として、時空的な観点から経路も扱う。経路は、時系列に複数の位置情報を並べた情報である。
【０００６】
位置検証問題を解決するため、GPSやRFIDといった既存の測位技術をベースとした位置認証技術がある。非特許文献６や非特許文献12には、位置証明手段ＰにGPSレシーバーやRFIDタグを設置し、かつ耐タンパー性を仮定することで、位置検証手段Ｖが位置証明手段Ｐから位置に関する情報を取得する方式が開示されている。しかしながら、耐タンパー性を仮定しても、これらの方法は位置検証手段Ｖが取得する位置を操作できる可能性がある。例えばGPSレシーバーへの入力であるGPS信号は、偽装・再送・ジャミングすることにより、位置検証手段Ｖが取得する位置情報を操作できる可能性がある。また、RFIDは、リーダーで読み取ることができるため、クローンを作成することや、中継器をRFIDタグとリーダーの間に設けることで距離を延長して、位置検証手段Ｖが取得する位置を操作できる可能性がある。
【０００７】
非特許文献２、非特許文献４、非特許文献15、非特許文献18には、電波が光速であることを利用し、位置検証手段Ｖが無線経由で位置証明手段Ｐにチャレンジを送信してから、位置検証手段Ｖが無線経由で位置証明手段Ｐから送られたレスポンスを受信するまでの時間を計測することで、位置証明手段Ｐと位置検証手段Ｖの相対距離を測定する技術が開示されている。位置検証手段ＶがチャレンジをＰに送った時刻TCと位置検証手段Ｖが対応するレスポンスを位置証明手段Ｐから受信した時刻TRの差を計測することで、位置検証手段Ｖと位置証明手段Ｐの相対距離を決定する（これを位置検証方式と呼ぶ）。電波が光速であることから、位置証明手段Ｐはレスポンスを光の速度より早く位置検証手段Ｖに送ることができないことを安全性の根拠としている。逆に位置証明手段Ｐはレスポンスを遅らせることは容易に可能であるため、位置証明手段Ｐと位置検証手段Ｖの距離の上限のみを決定できる技術である。さらに、一つの位置証明手段Ｐを複数の位置検証手段Ｖで測位することにより、領域認証や点位置認証に拡張することができる。非特許文献２、非特許文献18では、位置証明手段Ｐは信頼できるという前提のもと、第三者による攻撃を防ぐことを目標としている。
【０００８】
非特許文献15の方式は、位置証明手段Ｐの演算時間を考慮した設計であること、及び位置検証手段Ｖ-位置証明手段Ｐ間通信を中継する中継器を想定した中継攻撃に耐性を持つことから、実用性が高い。また、非特許文献15の方式は、位置検証の対象となる位置証明手段Ｐのアイデンティティ(ID)を認証しない方式である。一方、非特許文献２、非特許文献４、非特許文献18の方式は、位置検証の対象であるエンティティのIDを検証可能な方式である。これは、「位置検証手段Ｖが位置証明手段Ｐの位置を検証したとき、位置証明手段ＰのIDを認証できるか？」という問題である。
【０００９】
非特許文献４、非特許文献15では、位置証明手段Ｐも信頼できないという前提のもと、第三者および不正な位置証明手段Ｐによる攻撃を防ぐことを目標としている。非特許文献２では、元々相手認証において、中継攻撃（Mafia FraudsすなわちMan in the middle attack）を防ぐために位置認証を併用することを提案している。位置認証を利用して中継攻撃に類する攻撃を防ぐことを提案している文献としては、非特許文献３と非特許文献５（Wormhole attack）と、非特許文献７（Rushing attack）が存在する。これらは、いずれも送信手段（Sender）と受信手段（Receiver）の間に不正な転送ノードが存在可能なアドホックネットワークに対する攻撃である。位置認証自体に対する攻撃としては、非特許文献15と非特許文献４では、位置証明手段Ｐが実際とは異なる位置を詐称することを想定しているし、非特許文献18においては、位置証明手段Ｐと位置検証手段Ｖの間に第三者である攻撃者が中継器（Proxy）を設置して、位置証明手段Ｐの位置を改ざんする中継器攻撃（Proxy attack）と、それに耐性を持つ位置認証方式が提案されている。
【００１０】
ところで、非特許文献２、非特許文献４では、位置認証の対象となるエンティティの相手認証を同時に行う方法が検討されている。これは、位置検証手段Ｖが位置証明手段Ｐの位置を検証する際に、位置証明手段Ｐが誰であるかも同時に検証する問題である。本明細書では、このような相手認証は、単に認証（Authentication）と呼ぶ。逆に、非特許文献15のように、位置証明手段Ｐの相手認証を行わないような場合は、無認証（No authentication）と呼ぶ。ここで、図９（ａ）に示すように、非特許文献２、非特許文献４ではいずれも、位置認証と相手認証の依存性を少なく設計している。これは、相手認証の処理時間を時間計測に含めてしまうと、位置認証の誤差が増加してしまうことを防ぐためである。
【００１１】
逆に、非特許文献15では、位置証明手段Ｐの演算時間の上界を事前に規定することで、位置認証の誤差を考慮した方法を提案している。非特許文献18のものは、位置検証手段Ｖに対しては匿名で位置認証を行い、事前に位置証明手段Ｐが決めた第三者には、位置検証手段Ｖの署名が行われた位置証明手段ＰのIDと位置情報を開示できる機能を有している。これは、位置証明手段Ｐが自身の位置情報を開示する相手を選択ができることを意味し、位置証明手段Ｐは自身のプライバシを守ることができる。本明細書では、このような相手認証方式を、匿名認証（Authentication with anonymity）と呼ぶ。
【００１２】
相手位置認証に関係する特許文献としては、以下のものがある。特許文献１に開示された「セキュリティ用の無線端末および無線セキュリティシステム」は、セキュリティのチェック対象に取付けられた無線端末と無線基地局との間で無線信号を送受信することで、チェック対象が、無線基地局がカバーしている無線伝搬エリアから不正に移動したことをチェックするものである。セキュリティのチェック対象物に取付けられた無線端末は、自身が存在する無線伝搬エリアをカバーしている無線基地局に対して、無線伝搬エリアに存在し続ける旨を示す駐在登録要求を送信する。その後、無線基地局から送信されてくる在圏チェック信号の受信レベルが、予め定めた閾値より低くなった場合には、無線伝搬エリアから離れたものとみなし、無線基地局に対して、駐在登録要求の送信時の無線出力レベルより高い無線出力レベルでアラーム信号を送信する。
【００１３】
特許文献２に開示された「携帯型情報端末および携帯型情報端末を使用したネットワークサービスシステム」は、携帯型情報端末の位置情報に基づいた携帯型情報端末がエリア内にいるか否かの判定により携帯型情報端末からの発信を制御したり、特定の情報を受けたりするなどのように、利用者の利用形態に応じた細かいサービスを提供し得る携帯型情報端末および携帯型情報端末を使用したネットワークサービスシステムである。基準ポイントの位置情報を、予め基準ポイント格納部に格納する。携帯型情報端末の位置を、GPS処理部で測定する。携帯型情報端末の位置から基準ポイントまでの距離を、距離データ演算部で演算して所定の閾値と比較する。所定の閾値内にある場合には、発信制御部の制御により、携帯型情報端末からの発信を許可する。閾値を越えている場合には、発信を不許可にする。
【００１４】
特許文献３に開示された「アクセス制御システム、情報格納装置、位置情報管理装置および移動端末」は、鍵情報を利用した所定の演算処理による認証を行うアクセス制御システムにおいて、正規ユーザのみが所望の演算結果を得るようにするものである。このアクセス制御システムは、移動端末と、移動端末によりアクセスされる情報を格納する情報格納手段と、移動端末の位置情報を有する位置情報管理手段を有する。情報格納手段は、移動端末からのアクセス要求に応答して、所定の鍵を用いた演算結果を導出するメッセージ信号を、移動端末に送信する。移動端末が所定の領域内に位置する場合に、位置情報管理手段は、所定の鍵を利用した演算処理を移動端末から受信したメッセージ信号に施すことによって、演算結果を作成する。情報格納手段は、演算結果に基づいて、移動端末の前記情報へのアクセスの許否を判定する。
【００１５】
ところで、今後、LBS関係のサービスが多様化するにつれ、複数の位置証明手段Ｐの位置関係の証明を要求するLBSが出現すると予想される。例えば、複数人でないと入店できない店舗における入退室管理や、法的な理由から複数の人物が実際に会ったことを証明するサービスが考えられる。これは、「位置検証手段Ｖは位置証明手段Ｐ1と位置証明手段Ｐ2が時刻Ｔに距離Ｄ以内に近づいていたことを検証できるか？」という問題である（これを２点間距離検証と呼ぶ）。また、位置証明手段Ｐ1と位置証明手段Ｐ2を区別する必要があるため、それぞれのIDについて認証する必要もある。しかしながら、従来方式では、複数の位置検証手段Ｖを想定することで、検証精度を高めることや検証範囲を拡大することは考慮しているが、複数の位置証明手段の位置関係については考慮していない。
【００１６】
一方、複数のエンティティが同時に存在したことを証明する技術として、二つのICタグを同時にリーダーが読み取ったことを証明する"yoking-proof"が提案されている[非特許文献20]。これは、リーダーを介して２つのICタグが１つの署名を生成する方式である。例えば、薬と処方箋といった必ず同時に出荷されなければならない製品を出荷したことの証明に用いることができる。また、非特許文献20の方式の再送攻撃に対する耐性を強化し、複数のICタグが同時にリーダーに読み取られたことを証明する方式[非特許文献22]も提案されている。これらの方式は、セッションを開始してから一定時間経っても完了しない場合に、プロトコルを終了するタイムアウト仮定をおいている。この時間計測は、多くのリーダーが元々そのように実装されていることがあり、安全性の向上を目的に行われている。
【００１７】
ユビキタスネットワークでは、いつでもどこでも攻撃を受ける可能性があり、十分なセキュリティを確保することが必須である。携帯電話のLBSの標準規格であるMP（非特許文献13参照）、LCS（非特許文献１参照）においても、サーバとクライアント間の認証や通信路の暗号化、位置情報の公開に関するプライバシに関して検討がされている。位置情報は重要なプライバシ情報であるため、そのアクセスコントロールが欠かせない。端末は自分の位置を自分が許可したエンティティのみに公開することが基本となる。そのようなプライバシを考慮した位置トラッキングシステムが、非特許文献19や非特許文献10で提案されている。
【００１８】
【特許文献１】特開平10-84570号公報
【特許文献２】特開2001-224064号公報
【特許文献３】特開2003-324769号公報
【非特許文献１】3rd Generation Partnership Project, 3GPP TS 22.071 V3.4.0, 3GPP TS 23.171 V3.10.0, 3GPP TS 24.030 V3.3.0.
【非特許文献２】S. Brands, D. Chaum, "Distance-Bounding Protocols," Proceeding of Eurocrypto '93, Springer-Verlag, pp.344-359.
【非特許文献３】S. Capkun, L. Buttyan, and J. P. Hubaux, "SECTOR: Secure Tracking of Node Encounters in Multi-hop Wireless Networks,"
【非特許文献４】S. Capkun, J. P. Hubaux, "Securing position and distance verification in wireless networks," Technical report EPFL/IC/200443, submitted to ACM MobiCom 2004, Philadelphia, 26 Sep - 1 Oct 2004.
【非特許文献５】S. Capkun, J. P. Hubaux, and M. Jakobsson, "Secure and Privacy-Preserving Communication in Hybrid Ad Hoc Networks,"
【非特許文献６】E. Gabber and A. Wool, "How to prove where you are: Tracking the location of customer equipment," In Proc. 5th ACM Conf. Computer and Communications Security (CCS), pages 142-149, San Francisco, November 1998.
【非特許文献７】Y. C. Hu, A. Perrig, D. B. Johnson, "Rushing Attacks and Defense in Wireless Ad Hoc Network Routing Protocols," In Proc. of 2nd ACM Workshop on Wireless Security (WiSe'03), San Diego, CA, Sep, 2003.
【非特許文献８】S. Haber, W. S. Stornetta, "How to Time-Stamp a Digital Document," Journal of Cryptology: the Journal of the International Association for Cryptologic Research 3, 2 (1991), 99-111.
【非特許文献９】ITS Info communications, POIX_EX(ITS FORUM RC-001) Version 2.0.
【非特許文献１０】M. Izumi, S. Takeuchi, Y. Watanabe, K. Uehara, H. Sunahara, J. Murai, "A Proposal on a Privacy Control Method for Geographical Location Information Systems," Proc. of INET'2000, Jul 2000. http://www.csl.sony.co.jp/person/sohgo/GLI/inet2000/
【００１９】
【非特許文献１１】T. Kitasuka, T. Nakanishi, and A. Fukuda, "Indoor Location Sensing Technique using Wireless Network," In Proc. of CS2002 pp. 83-90, 2002.
【非特許文献１２】K. Nakanishi, J. Nakazawa, and H. Tokuda, "LEXP: Preserving User Privacy and Certifying the Location Information," 2nd Workshop on Security in Ubiquitous Computing Ubicomp 2003, Seattle, Washington, USA October 12, 2003.
【非特許文献１３】Location Inter-operability Forum (LIF), "Mobile Location Protocol," LIF TS 101 Specification Version 3.0.0.
【非特許文献１４】A. Freier, P. Karlton, and P. Kocher, "The SSL Protocol Version 3.0," Transport Layer Security Working Group, INTERNET-DRAFT, 1996.
【非特許文献１５】N. Sastry, U. Shankar, and D. Wagner, "Secure Verification of Location Claims," Report No. UCB//CDS-03-1245, University of California, Berkeley.
【非特許文献１６】T. Dierks, C. Allen, "The TLS Protocol Version 1.0," Request for Comments: 2246, 1999.
【非特許文献１７】Yih-Chun Hu, A. Perring, and D. B. Johnson, "Packet Leashes: A Defense against Wormhole Attacks in Wireless Networks," In INFOCOM, 2003.
【非特許文献１８】B. R. Waters, E. W. Felten, "Secure, Private Proofs of Location," Princeton University Computer Science Technical Reports, TR-667-03, 2003.
【非特許文献１９】Y. Watanabe, S. Takeuchi, F. Teraoka, K. Uehara, and J. Murai, "The Geographical Location Information System with Privacy Protection," IPSJ Journal, Vol.37, No.6, 1996.
【非特許文献２０】A. Juels, "Yoking-Proofs" for RFID tags, First International Workshop on Pervasive Computing and Communication Security, IEEE Press, 2004.
【００２０】
【非特許文献２１】T. Kitasuka, T. Nakanishi, and A.. Fukuda, "Indoor Location Sensing Techinique using Wireless Network," In Proc. of Computer System Symposium'02 pp. 83-90, 2002.
【非特許文献２２】齊藤純一郎, 櫻井幸一, "RFIDタグにおけるグループ証明方式の提案," 2004年コンピュータセキュリティシンポジウム(CSS2004) 予稿集, 2B-1, 2004.
【非特許文献２３】A. Vora, M. Nesterenko, "Secure Location Verification Using Radio Broadcast," In Proc. of OPODIS 2004: 8th International Conference on Principles of Distributed Systems, 2004.
【発明の開示】
【発明が解決しようとする課題】
【００２１】
しかし、従来の位置認証方法では、位置を詐称する不正を防止できないという問題がある。本発明者らは、非特許文献２、非特許文献18、非特許文献４に開示された位置認証と相手認証を同時に行う方式が、攻撃者として不正な位置証明手段Ｐと、その位置証明手段Ｐが操作する中継器攻撃（Proxy attack）の中継器（Proxy）に類似の中継端末RS（Relay Station）を想定することで位置を詐称できることを発見した。これを中継端末攻撃（Relay attack）と呼ぶ。非特許文献２、非特許文献18、非特許文献４に開示された方法では、プロトコルの序盤で位置認証のための情報（Challenge）と応答（Response１）の間の時間計測を行い、終盤で相手認証のために位置証明手段Ｐの秘密鍵Ｋの処理を必要とする認証情報（Response２）のやり取り等を行う。
【００２２】
図９（ｂ）に示すように、中継端末攻撃では、位置検証手段Ｖの無線通信範囲外に位置証明手段Ｐが存在し、位置検証手段Ｖの無線通信範囲内に中継端末RSの存在を想定する。中継端末攻撃では、序盤の位置認証のための情報と応答は、中継端末RSが単独で位置検証手段Ｖとやり取りを行い、終盤の秘密鍵Ｋの必要な認証情報は、位置証明手段Ｐが中継端末RSを経由して位置検証手段Ｖに送る。序盤は秘密鍵の処理は要求していないため、秘密鍵を持たない中継端末RSでも正常な応答が可能である。一方、終盤は秘密鍵Ｋの処理を要求するために、位置証明手段Ｐが応答する必要があるが、時間計測はしていないために、中継して遅延が発生しても問題なく正常な応答が可能となる。
【００２３】
以上により、位置検証手段Ｖに対して位置証明手段Ｐの存在する位置Ｌではなく、中継端末RSの存在する位置Ｌ'を位置証明手段Ｐの位置としてアクセプトさせることが可能となる。なお、非特許文献18の場合は、位置証明手段ＰがIDを開示する第三者に対して位置Ｌ'をアクセプトさせることが可能となる。非特許文献２、非特許文献18、非特許文献４において、中継端末攻撃が可能となる原因は、位置認証と秘密鍵Ｋを用いた処理の依存度が低いことにある。
【００２４】
一方、２点間距離検証問題については、"yoking-proof"では、位置検証方式のように厳密な検証を行っているわけではないため、リーダーから複数のICタグの距離や位置関係を証明することは難しい。例えば、中継攻撃により、リーダー‐ICタグ間の通信を中継することで、本来のリーダーの通信距離を超えた位置に存在するICタグについても証明の対象となってしまう可能性がある。また、従来の位置検証方式では、２つの位置証明手段間の距離を扱えない。
【００２５】
本発明の目的は、上記従来の問題を解決して、距離検証方法において、中継端末攻撃を防ぐことである。また、２つの距離証明手段間の距離を検証できるようにすることである。
【課題を解決するための手段】
【００２６】
上記の課題を解決するために、本発明では、距離検証手段と距離証明手段とからなり、距離検証手段は、応答遅延時間を検知可能な精度の時間計測機能と、距離証明手段までの距離を検証して認証する機能を有し、距離証明手段は、距離検証手段からのチャレンジ情報を処理してレスポンス情報を生成する機能を有する距離検証システムにおける距離検証方法を、距離検証手段が、距離証明手段からの応答の遅延時間を利用して距離検証を行う際に、鍵の処理のための処理時間を距離検証のための計測時間の範囲に含める方法とした。
【００２７】
すなわち、距離証明手段の秘密鍵に依存した処理を、距離検証と結合することにより、距離検証に対する中継端末攻撃に耐性を持たせる。また、中継端末攻撃の検出率を高めるために、認証情報の構造を、中継時の遅延が増加する形式にする。さらに、秘密鍵および秘密鍵に関する処理を変更することで、さまざまな暗号方式の適用が容易な構造にする。認証に関しては、共通鍵ベースの方法と公開鍵ベースの方法の両方がある。
【００２８】
また、２点間距離検証の課題を解決するために、本発明では、１つの距離検証手段（Ｖ）と２つの距離証明手段（Ｐ1、Ｐ2）とからなり、距離検証手段は、応答遅延時間を検知可能な精度の時間計測機能と、距離証明手段までの距離を検証して認証する機能を有し、距離証明手段は、距離検証手段からのチャレンジ情報を処理してレスポンス情報を生成する機能を有する距離検証システムにおける距離検証方法を、Ｐ2を距離検証する際に、Ｐ1にチャレンジを中継させ、Ｐ1はチャレンジを中継する際にチャレンジにコミットし、Ｐ2はレスポンスを返す際にレスポンスにコミットし、Ｐ2はレスポンスをＶに直接返し、Ｐ2を距離検証した結果とＰ1を単独で距離検証した結果からＰ1-Ｐ2間距離を算出する方法とした。すなわち、複数の証明者間の位置関係を検証するために、チャレンジやレスポンスを意図的に証明者により中継させる。例えば、証明者Ｐ1とＰ2を検証する場合、Ｐ1に中継させてＰ2の距離検証を行い、その結果とＰ1単体で行った距離検証の結果との差分から、Ｐ1-Ｐ2間距離を算出する。
【発明の効果】
【００２９】
上記のように構成したことにより、特別なハードウエアの追加なしに、中継端末攻撃を検知して防ぐことができ、距離検証の安全性を高めることができる。また、距離証明手段が、相手認証のレベル、例えば、無認証、認証、匿名認証のいずれかを選択できる。さらに、距離証明手段による他の距離証明手段へのチャレンジ情報の中継により、距離検証手段‐距離証明手段間の距離に加え、２つの距離証明手段間の距離も検証できる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明を実施するための最良の形態について、図１〜図８を参照しながら詳細に説明する。
【実施例１】
【００３１】
本発明の実施例１は、距離検証手段である位置サーバと、耐タンパー性の距離証明手段である位置モジュールとからなる距離検証システムにおいて、位置モジュールは、位置サーバから受信したチャレンジ情報を自己の秘密鍵により処理してレスポンス情報を生成し、位置サーバは、位置モジュールからの応答遅延時間を利用して距離検証を行い、相手認証のための処理時間を距離検証のための計測時間の範囲に含めて、相手認証と距離検証を同時に実施する距離検証方法である。
【００３２】
図１は、本発明の実施例１における距離検証方法の概念図である。図２は、距離検証方法に対する攻撃の種別を説明する図である。図３は、距離検証方法の手順を説明する図である。図４は、距離検証方法の種別を説明する図である。図５は、本発明の距離検証方法と従来例を比較した表である。図１〜図５において、距離検証手段Ｖは、位置サーバである。距離証明手段Ｐは、位置モジュールである。中継端末RSは、位置サーバと位置モジュールとの間の無線通信を中継する攻撃手段の中継装置である。位置サーバＳは、位置モジュールまでの距離を検証する手段である。位置モジュールＭは、位置サーバからのチャレンジ情報を処理してレスポンス情報を生成する耐タンパー性モジュールである。鍵Ｋは、位置モジュールが秘密に保持する位置モジュール固有の鍵である。
【００３３】
最初に、図１を参照しながら、本発明の実施例１における距離検証方法とそれを実行する距離検証システムの概要を説明する。図１に示すように、距離検証システムは、距離検証手段（位置サーバ）と、距離証明手段（位置モジュール）とからなる。距離検証手段は、応答遅延時間を検知可能な精度の時間計測機能と、距離証明手段までの距離を検証して認証する機能を有する。距離証明手段は、距離検証手段からのチャレンジ情報を処理してレスポンス情報を生成する機能を有し、耐タンパー性である。距離検証手段が、距離証明手段からの応答の遅延時間を利用して距離検証を行う際に、相手認証のための処理時間を距離検証のための計測時間の範囲に含めて、相手認証と距離検証を同時に実施する。
【００３４】
距離検証手段は、毎回異なるチャレンジ情報を生成して送信する。距離証明手段は、受信したチャレンジ情報を自己の秘密鍵により処理してレスポンス情報を生成する。距離検証手段は、遅延時間が想定遅延時間を超えていた場合に距離検証に失敗したと見なす。距離検証手段は、距離証明手段の演算能力に基づいてチャレンジ情報と想定遅延時間を決定する。距離検証手段の相手認証またはメッセージ認証は、距離検証のための時間計測外に送信し、検証する。距離検証と相手認証の組を繰り返し行う。相手認証のための情報に、公開鍵暗号または共通鍵暗号を使うか、それらの両方を併用する。相手認証を不使用とする選択が可能である。相手認証のための情報を、距離検証手段に対して匿名性を有するようにできる。
【００３５】
距離検証手段を複数備えることで、領域認証を可能とする。距離検証手段を複数備えることで、点位置検証を可能とする。距離検証手段を複数備える場合は、複数の距離検証手段からの情報に基づいて、距離検証または相手認証の結果を判断する。距離検証装置は、自身の位置を取得可能なモバイルノードであってもよい。距離証明装置はユーザ認証手段を有し、ユーザ認証に成功した場合のみ、チャレンジ情報と秘密鍵からレスポンス情報を生成可能である。モバイルノードが、距離証明手段と距離検証手段とを備えるものでもよい。相手認証のための情報を、距離検証手段に対して匿名性を有するようにできる。
【００３６】
次に、本発明の実施例における距離検証方法の具体例を説明する。距離検証方法におけるエンティティは、位置サーバと、ユーザと、位置モジュールと、中継装置である。位置サーバＳ（Location Server）は、ユーザまたは位置モジュールまでの距離を検証する。位置サーバＳの無線送受信範囲内に存在する位置モジュールＭiを介して、位置モジュールＭiと同位置に存在するユーザＵiを認証する。ｉは、ユーザ番号である。位置サーバＳは、応答遅延時間を検知可能な精度の時間計測機能を有する。位置サーバＳは、安全に自己の位置を取得できる。または、位置サーバＳの位置は常に固定であり、位置サーバＳの移動を検知できる。位置サーバＳは、位置モジュールＭを認証する機能を有する。全てのエンティティが、位置サーバＳを信頼する。以上の要件を満たすため、耐タンパー性を仮定する。位置サーバＳは複数存在する場合もあるが、ここでは、説明を簡単化するために、一台の場合を説明する。
【００３７】
ユーザＵiは、位置サーバに対して、自己の位置を証明しようとする利用者である。自身に対応した位置モジュールを有する。位置を詐称しようとする場合がある。転送困難な手段によりユーザＵiを認証する機能を有する。ユーザＵiの認証に成功した場合のみ、秘密鍵Ｘiにアクセス可能となる。位置モジュールＭi（Location Module）は、ユーザＵiの認証に成功した場合、位置サーバＳのチャレンジに対して自身が安全に保持する秘密鍵Ｘiにより処理したレスポンスを生成する。処理能力Ｗiは変更されないか、またはその変更を検知できる。以上の要件を満たすため、耐タンパー性を仮定する。中継端末RSiは、ユーザＵiが中継攻撃のために使用する中継装置である。
【００３８】
距離検証方法が満たすべき要件をまとめる。ここでは位置（Location）として距離（Distance）を扱い、距離検証（Distance Verification）を拡張することで領域認証（Region Verification）および点位置検証（Position Verification）を実現する。距離検証可能性（Distance Verifiability）とは、距離検証者Ｖが、時刻Ｔに観測を開始し、時刻（Ｔ＋ΔＴ）までの間に応答を受け取ったとき、
［命題］時刻Ｔから時刻（Ｔ＋ΔＴ）の間に、距離検証者Ｖから距離ｄ内において鍵Ｋを用いた処理が実行されたこと
の真偽が判定できることである。なお、鍵Ｋを用いたエンティティ認証を行う際は、耐タンパー性の仮定等による、鍵Ｋと、鍵Ｋを処理するエンティティの関連付けが必要である。ここで、距離検証者Ｖは鍵Ｋに関する情報を、監視の実施前に保持しないとした場合、非特許文献15において実現されているようなエンティティ認証を行わない位置検証と等しい。不正証明者耐性（Dishonest prover-resistance）とは、不正な距離証明者Ｐに対して距離検証可能性を満たすことである。拡張性（Extendibility）とは、鍵Ｋに関して、暗号方式の適用が容易な構造であることである。
【００３９】
第３に、図２を参照しながら、攻撃例について説明する。攻撃の目的（Purpose of Attack）は、位置サーバＳに対して、ユーザまたはその存在する位置を偽ることである。攻撃者（Attacker）は、ユーザまたは第三者とする。図２に示すように、攻撃の種類は、エンティティに対するものと、通信路に対するものに分類される。エンティティ（位置サーバＳや位置モジュールＭ）への攻撃としては、直接解析（Tampering）と、入出力から秘密を推測する方法（Black box attack）と、ユーザＵiの位置モジュールＭiを第三者に貸与する方法（Loan attack）と、成りすまし（Impersonation）と、位置詐称（Location fraud）がある。通信路に対する攻撃としては、通信路の情報を改ざんする方法（Message forgery）と、通信路の情報を再送する方法（Message replay）と、位置モジュールＭiと位置サーバＳとの間の通信を中継する方法（Relay attack）がある。
【００４０】
第４に、記号の定義を説明する。
A_Enc(ｐ,ｍ)は、公開鍵ｐにより平文ｍを暗号化する公開鍵暗号関数である。その暗号文は、公開鍵ｐに対応する秘密鍵により復号できる。
S_Enc(ｋ,ｍ)は、共通鍵ｋにより平文ｐを暗号化する安全な共通鍵暗号関数である。その暗号文は、共通鍵ｋにより復号できる。
A_Sig(ks,ｍ)は、秘密鍵ksにより平文ｍにディジタル署名を行う安全な署名関数である。その署名文は、秘密鍵ksに対応する公開鍵ｐにより検証できる。添付型および回復型のどちらの署名方式でも構わないが、表記を簡単にするため以降の説明では回復型として扱う。
S_Sig(ｋ,ｍ)は、共通鍵ｋにより平文ｍから認証情報を生成する安全な鍵付き一方向性ハッシュ関数である。
Ｈ(ｍ)は、平文ｍからハッシュ値を生成する安全な一方向性ハッシュ関数である。
Chaiは、位置サーバＳが位置モジュールＭiに対して生成するリクエスト情報Reqiに対応したチャレンジ情報であり、質問Ｑiを含む。
Resiは、位置モジュールＭiが生成するチャレンジ情報Chaiに対応したレスポンス情報であり、回答Ａiを含む。
【００４１】
ReqGは、リクエスト情報を生成する関数である。
ChaG_Cは、チャレンジ情報およびチャレンジ情報に含まれる質問Ｑiに対応する回答Ａiを生成する関数である。クラスＣは、α（認証なし）、β（公開鍵ベースの方法による相手認証あり）、γ（共通鍵ベースの方法による相手認証あり）、ε（匿名性を有する相手認証あり）のいずれかを意味する。
ResG_Cは、レスポンス情報を生成する関数である。クラスＣは、ChaG_Cと同様である。
VeriF_Cは、入力値を検証し、正当な場合はOK＝１、その他の場合はOK＝０の値を出力する検証関数である。クラスＣは、ChaG_Cと同様である。
ＭY(Ｒ,Ｙ)は、公開鍵Ｙを乱数Ｒによりマスクする関数である。乱数Ｒ無しにマスク値MaskY(Ｒ,Ｙ)から公開鍵Ｙを得ることは困難である。
MaskX(Ｒ,Ｘ)は、秘密鍵Ｘを乱数Ｒによりマスクする関数である。乱数Ｒ無しにマスク値MaskX(Ｒ,Ｘ)から秘密鍵Ｘを得ることは困難である。
ｒは、位置サーバＳと通信可能な無線の有効距離である。
ｓは通信媒体の信号伝達速度である。
【００４２】
第５に、図３に示す流れ図を参照しながら、距離検証方法の処理手順を説明する。ステップ１において、位置モジュールＭiは、次式によりリクエスト情報を生成し、位置サーバＳへ送信する。
Reqi＝ReqG(Ｚi)
このとき、無認証（No authentication）の場合(Case１)は、乱数Ｒiを生成して、ユーザ番号ｉと乱数Ｒiの連接データ（ｉ‖Ｒi）を引数Ｚiとする。対称鍵利用認証（Symmetric Key Based Authentication）の場合(Case２)は、ID番号ｉを引数Ｚiとする。非対称鍵利用認証（Asymmetric Key Based Authentication）の場合(Case３)は、公開鍵Ｙiを引数Ｚiとする。匿名認証（Authentication with anonymity）の場合(Case４)は、公開鍵Ｙiを乱数Ｒiでマスクしたマスク値MaskY(Ｒi,Ｙi)を引数Ｚiとする。
【００４３】
ステップ２において、位置サーバＳは、リクエスト情報Reqiを受信し、引数Ｚiを取得する。位置サーバＳは、引数Ｚiから、位置モジュールＭiが要求する相手認証の方法を判断する。要求を受け入れない場合は拒否（Reject）を位置モジュールＭiへ送信し、プロトコルを中止する。この考え方は、非特許文献16や非特許文献14のCipher Suite方式に近い。
【００４４】
ステップ３において、位置サーバＳは、乱数ＲSを生成する。位置サーバＳは、次式によりチャレンジ情報および回答を生成して、チャレンジ情報を位置モジュールＭiへ送信し、Chaiの送信時刻をTChaとする。位置サーバＳは、Chaiの上位から順に位置モジュールＭiへ送信する。
{Chai,Ａi}＝ChaG_C(Ｒs,zi)
このとき、Ｚi＝(ｉ‖Ｒi)の場合(Case１)は、乱数Ｒiをziとする。Ｚi＝ｉの場合(Case２)は、ｉから対応する共通鍵Ｋiを選択して、共通鍵Ｋiをziとする。Ｚi＝Ｙiの場合(Case３)は、公開鍵Ｙiをziとする。Ｚi＝MaskY(Ｒi,Ｙi)の場合(Case４)は、マスク値MaskY(Ｒi,Ｙi)をziとする。
【００４５】
ステップ４において、位置モジュールＭiは、チャレンジ情報Chaiを受信し、次式によりレスポンス情報を生成して位置サーバＳへ送信する。
Resi＝ResG_C(Chai,ζi)
このとき、Ｚi＝(ｉ‖Ｒi)の場合(Case１)は、乱数Ｒiをζiとする。Ｚi＝ｉの場合(Case２)は、ｉから対応する共通鍵Ｋiを選択して、共通鍵Ｋiをζiとする。Ｚi＝Ｙiの場合(Case３)は、秘密鍵Ｘiをziとする。Ｚi＝MaskY(Ｒi,Ｙi)の場合(Case４)は、マスク値MaskX(Ｒi,Ｘi)をζiとする。
【００４６】
ステップ５において、位置サーバＳは、応答Resiを受信し、応答Resiの受信時刻をＴResとする。次式により、応答Resiの検証を行う。
OK＝VeriF_C（Ａi,Resi,ｚi,ｒ,ｓ,ＴDelay,ＴCha,ＴRes）
ただし、VeriF_Cは、検証関数であり、検証成功の場合は１を返し、それ以外では０を返す関数である。OKの値が１の場合は認証成功とし、OKの値が０の場合は認証失敗と判断する。認証成功時は、ｄ(＝(ΔＴ−ＴDelay)／ｓ)を求めて、アクセプトする。
【００４７】
第６に、各関数と生成器の要件および詳細を説明する。リクエスト生成関数（Request Generator）ReqG_Cは、Ｚiを含み、位置サーバＳがＺiを取得できることとする。チャレンジ生成関数（Challenge Generator）ChaG_Cは、以下の要件を満たすチャレンジChaiを生成可能である。質問Ｑi全体からのみ回答Ａiを得ることができる。ziに対応したζiからのみ回答Ａi（またはSigned Ａi）を計算することができる。回答Ａiおよびその要素である回答要素Ａi_jは、全数探索に耐えうるサイズである。チャレンジ情報とリクエスト情報の通信時間の合計をTComとし、Chaiが中継された場合に、
{(TCom＋TRelay−TDelay)／ｓ}＞ｒ
を満たす中継遅延TDelayが発生するようにChaiのサイズCSiを決定する。位置モジュールＭiが回答Ａi（またはSigned Ａi）を計算するのに要する時間TMは、TM≦TDelayを満たす。質問Ｑの全体を得るまで、回答Ａiを算出するのに必要な、いかなる処理も困難である。
【００４８】
ChaG_β1（非対称鍵利用認証１）
Chai＝Ｑi
＝(Ｑi_n‖Ｑi_n-1‖Ｑi_n-2‖・・・‖Ｑi_j‖・・・‖Ｑi_3‖Ｑi_2‖Ｑi_1)
質問の構成は、
Ｑi_1＝A_Enc(Ｙi,Ａi_1)
Ｑi_j＝S_Enc(Ａi_j-1,Ａi_j) (ｊ≧２),
または
Ｑi_j＝A_Enc(Ｙi_j-1,Ａi_j)
(ｊ≧２、Ａi_jとＹi_jはそれぞれ秘密鍵と公開鍵の組となっている)とする。
回答は、
Ａi＝(Ａi_n‖Ａi_n-1‖Ａi_n-2‖・・・‖Ａi_j‖・・・‖Ａi_3‖Ａi_2‖Ａi_1)
である。Ｑiは２≦ｎのとき、多重構造を有する。ｎ＝１の場合は単純な構造となる。
【００４９】
ChaG_β2（非対称鍵利用認証２）
Chai＝Ｑi
＝(Ｑi_n‖Ｑi_n-1‖Ｑi_n-2‖・・・‖Ｑi_j‖・・・‖Ｑi_2‖Ｑi_1‖Ｑi_0)
Ｑi_0＝Ωi
｛Ωi｜１からｎまでの整数をランダムに並べた系列、ｎ＝１の場合は、Ｑi_0はＱiに含まれない｝
例：Ωi＝(２‖５‖ｎ‖・‖９‖ｎ−３)
｛Ａi｜Ωに従ってＱiを並べた系列｝
例：Ｑi'＝(Ｑi_2‖Ｑi_5‖Ｑi_n‖・‖Ｑi_9‖Ｑi_n-3)
回答は、Signed Ａi＝A_Sig(Ｘi,Ｈ(Ｑi'))である。Ｑiは２≦ｎのとき、Ｑi'への置換が必要となる。ｎ＝１の場合はＱi'＝Ｑiの単純な構造となる。
【００５０】
ChaG_γ1（対称鍵利用認証１）：Chaiと回答は、ChaG_β1と同じ。質問の構成は、
Ｑi_1＝S_Enc(Ｋi,Ａi_1)
Ｑi_j＝S_Enc(Ａi_j-1,Ａi_j) (ｊ≧２)
となる。
【００５１】
ChaG_γ2（対称鍵利用認証２）：Chaiと質問はChaG_β2と同じ。回答は、
Signed Ａi'＝S_Sig(Ｋi,Ｑi)
である。
【００５２】
ChaG_α（無認証）：対称鍵利用認証１、２と同様の処理を、乱数Ｒiを鍵Ｋiの代わりとして行う。乱数Ｒiを毎回変更する場合は、位置サーバＳが位置モジュールＭiを特定する情報を無くすことができる。一方、乱数Ｒiを毎回同じとする場合は、位置サーバＳは位置モジュールＭiが誰であるかは分からないが、他のエンティティと区別することが可能となる。
【００５３】
ChaG_ε（匿名認証）：ChaG_β2に適用可能なDSA等のDLPをベースとする方法を示す。なお、同様の考えによりECDSA等の楕円曲線暗号を利用することも可能である。ｐとｑを素数、ｇを、(ｑ−１)/ｐを位数とする元、乱数Ｒiと秘密鍵Ｘiを１からｑ−１までの整数、
Ｙi＝ｇXi modｐ
とする。このとき、マスク関数はそれぞれ次のように表される。
MaskY(Ｒi,Ｙi)＝ＹiRi modｐ＝ｇXi×Ri modｐ
MaskX(Ｒi,Ｘi)＝Ｒi×Ｘi modｑ
【００５４】
図のステップ１においては、これらのマスク関数を用いて、ChaG_β2を実行する。ステップ２において認証に成功した場合、位置サーバＳは、自身の公開鍵ＹSに対応する秘密鍵ＸSを用いて、位置証明書InfoLi(＝A_Sig(ＸS,IDS‖TCha‖TRes‖MaskY(Ｒi,Ｙi)))を、位置モジュールＭiへ送る。ステップ３において、位置モジュールＭiはInfoLiを受信し、位置を証明した第三者TPに、InfoLiと乱数Ｒi'とＹiの公開鍵証明書CertiとＹSの公開鍵証明書CertSを開示する。ステップ４において、TPはCertS、InfoLi、Certiの署名を検証し、正しい場合にはInfoLiからMaskY(Ｒi,Ｙi)をCertiから公開鍵Ｙi'を取得し、次式
MaskY(Ｒi,Ｙi)＝MaskY(Ｒi',Ｙi')
が成立するか否かを検証する。成立する場合は、(IDS‖TCha‖TRes)を受け入れる。
【００５５】
応答生成関数（Response Generator）ResG_Cは、Chaiとζiを入力として、時間ＴMにおいてＡi'を含むResiを生成できる関数である。
【００５６】
認証関数（Verification Function）VeriF_Cは、入力Ａi，Resi，ｚi，ｒ，Tdelay，Tcha，TResが正しい場合に、OK＝１を出力し、それ以外の場合にはNG（OK＝０）を出力する関数である。入力が正しいとは、
ΔＴ＝TRes−TCha
ｄ＝(ΔＴ−TDelay)／ｓ
のとき、
ｒ≧ｄ＞０
かつ次の条件を満たす場合を意味する。
ChaG_β1およびChaG_γ1の場合は、入力Ａiと入力Resiから取得したＡi'が等しい。
ChaG_β2の場合は、入力Ａiと入力Resiから取得したＡi'が等しい、かつSigned Ａ'をｚi（＝Ｙi）により検証した結果が、成功である。
ChaG_γ2の場合は、入力Ａiと入力Resiから取得したＡi'が等しい、かつSigned Ａ'をｚi（＝Ｋi）により検証した結果が、成功である。
ChaG_αの場合は、乱数ＲiをＫiとして、ChaG_γ1またはChaG_γ2と同様の検証を行う。
ChaG_εの場合は、ChaG_β2と同様の検証を行う。
【００５７】
第７に、機能拡張方法について説明する。中継端末攻撃（Relay attack）を防ぐために、中継が行われた場合には、通信範囲外であるかのように検出されるように設定する。すなわち、位置サーバＳと位置モジュールＭの距離ｄを、中継が行われた場合の通信時間から求めると、位置サーバＳが無線通信できる有効距離ｒを超えるように設計する。そのため、本実施例では、距離検証に加えて相手認証も含めて通信・演算時間を計測すると共に、認証情報を中継する場合には遅延が増加するように工夫する。ここで、通信の中継には必ず遅延が発生し、中継データサイズの増加、中継回数の増加、中継距離の増加があった場合に、遅延は増加すると仮定する。
【００５８】
中継データサイズが増加するように、認証のチャレンジ情報のサイズを大きくとる。ただし、中継端末RSが分割して中継し、位置モジュールＭが処理して中継端末RSに返すことをパイプラインのように繰り返されると、サイズを大きくした効果が少なくなる。そのため、チャレンジ全体を保持しない場合には処理が実行できないように、チャレンジ情報を構成する。中継回数が増加するように、認証を複数回繰り返すようにする。ただし、演算量が増加するため、距離検証の誤差が増加する。そのため、実装時に、そのシステムに適した認証回数を評価して、最適認証回数を設定する。攻撃者は、位置を詐称することを望むわけであるが、多くの場合は、詐称する位置と実際の位置の差が大きいほど、攻撃者に都合が良いと予想される。したがって、中継距離の増加は特に考慮しなくても、多くの場合は増加する傾向にあると考えられる。
【００５９】
繰り返しによる拡張方法を説明する。図３のステップ３〜５をＢ回繰り返すことにより、繰り返し認証型に変換可能である。Ｂは、転送遅延を決定するセキュリティパラメータである。中継端末RSの中継遅延TRelayに、中継量に依存しない固定的な時間が含まれる場合、チャレンジ情報のサイズ当たりの中継遅延増加率は繰り返し認証型の方が高くなる。つまり、繰り返し認証型におけるｈ（１≦ｈ≦Ｂ）回目のチャレンジ情報Chai_hのサイズをCSi_hとしたとき、総通信量Ｂ×CSjを通常のチャレンジChaiのサイズCSiより小さくできる可能性がある。その反面、リクエスト情報の生成に必要な演算オーバヘッドによる距離検証誤差が増加する可能性がある。
【００６０】
特別のデータ構造を有するチャレンジ情報について説明する。チャレンジ情報全体のみからレスポンス情報を生成でき、チャレンジ情報の一部からはレスポンス情報のいかなる部分も生成できないというデータ構造を有するチャレンジ情報を用いる。具体的には、チャレンジが複数の質問（暗号文）から構成され、ひとつの暗号文を解くと、次の暗号文を解く鍵が得られる構成である。チャレンジの暗号文列のうち、最初に解かなくてはならない暗号文を最後に送信する。
【００６１】
図４を参照しながら、領域検証、点位置検証、経路検証に拡張する方法を説明する。非特許文献15と同様に、位置サーバＳを複数配置し、それらの位置サーバの距離検証結果を集計することにより、複数の位置サーバＳの距離検証範囲を合わせたより大きな領域（Region）における距離検証が可能となる。非特許文献４と同様に、位置サーバＳを複数配置し、３台の位置サーバＳを頂点とするほぼ三角形の範囲内に位置モジュールＭが存在する場合、それらの位置サーバＳの距離検証結果を集計することにより、位置モジュールＭの二次元での点位置（Position）が距離検証可能となる。さらに４台の位置サーバＳを頂点とするほぼ４面体ピラミッドの範囲内に位置モジュールＭが存在する場合、それらの位置サーバＳの距離検証結果を集計することにより、位置モジュールＭの三次元での点位置（Position）が距離検証可能となる。
【００６２】
経路認証（Route Verification）について説明する。経路認証は、位置モジュールＭの移動経路を、位置サーバＳまたは第三者が検証できるようにする方法である。具体的には、位置サーバＳを複数配置し、それらの位置サーバＳの距離検証結果を時系列に集計することにより、位置モジュールＭの移動経路を検証することが可能となる。
【００６３】
相互認証と相互距離検証について説明する。位置モジュールＭが位置サーバＳにリクエスト情報を送る前に、位置サーバＳの相手認証を行うことで、正しい位置サーバＳであることを確認してから、位置に関する情報を位置サーバＳに送ることができる。位置モジュールＭが位置サーバＳと同様に距離検証機能を有している場合、位置モジュールＭが位置サーバＳの距離検証も行うことで、相互距離検証が可能である。
【００６４】
位置サーバＳの実装形態を説明する。特定の場所に固定され、不正に移動されたことを検知可能とする固定式と、位置サーバＳが安全な方法により自身の位置を取得可能であり、かつ移動することができる移動式がある。固定式には、独立型（位置サーバＳはスタンドアローンで動作する）と集権型（複数の位置サーバＳの情報をセンター位置サーバが管理する）がある。移動式には、独立型（位置サーバＳはスタンドアローンで動作する）と、内蔵型（位置モジュールＭ内にスタンドアローンで動作する位置サーバＳが内蔵されている）と、兼用型（位置モジュールＭが位置サーバＳを兼ねる）と、集権型（複数の位置サーバＳの情報をセンター位置サーバが管理する）がある。
【００６５】
使い捨て鍵を利用して、処理遅延を短縮する方法を説明する。対称鍵利用認証１と２において、対称鍵として使い捨て鍵（One Time Key）を利用することで、演算コスト(即ち、処理時間 Processing Delay)を最小限に抑える方法を示す。S_Enc関数およびS_Sig関数を、入力値同士の単純な演算(例、XOR)、また通信に先立ち位置サーバＳと位置モジュールＭiで、暗号学的に安全な擬似乱数生成器PRGおよびマスター鍵Ｋiを共有しておく。位置モジュールＭiはS_EncおよびS_Sigに使用するｗ回目の使い捨て鍵であるＫi_wを、PRGによりリクエスト情報を送信する前に生成し、安全に保存しておく。また、質問Ｑiはｎ＝１で構成する。以上の条件下において、対称鍵利用認証１と２を実施することで、演算コストを最小限に抑えた距離検証が可能となる。
【００６６】
位置に基づくアクセス制御について説明する。距離検証に成功した場合、位置サーバＳは、位置モジュールＭiに対して、距離検証に使用した鍵Ｋiを用いて何らかのアクセス権を与えることができる。例えば、位置サーバＳは、ゲートを開ける、位置サーバＳは何らかの情報を位置モジュールＭiへ送る、位置サーバＳは位置モジュールＭiのネットワークへの接続を許可する、などである。
【００６７】
メッセージ認証について説明する。通信路上での攻撃を防ぐため、通信情報にMAC（Message Authentication Code）およびタイムスタンプを付加することが有効である。これにより、改ざん・再送攻撃を検出できる。ただし、これらの付加情報の通信時間や演算時間がΔＴに含まれると距離検証の精度が低下するため、チャレンジに対するMACはチャレンジの前に送信し、レスポンスに対するMACはレスポンスの後に送信する。また、MACやタイムスタンプの検証は、位置モジュールＭの場合はレスポンス送信後、位置サーバＳの場合はレスポンス受信後に行う。
【００６８】
ユーザ認証について説明する。本実施例は、位置モジュールＭiの位置を認証するものである。ここでは、本実施例を、人間の距離検証に応用する方法を説明する。ユーザＵiを、位置モジュールＭiの所有者とする。位置モジュールＭiはユーザＵiの認証に成功した場合に、位置サーバＳのチャレンジに対して、自身が安全に保持する秘密鍵Ｘiにより処理したレスポンスを生成する。つまり、ユーザＵiの認証に成功した場合のみ、秘密鍵Ｋiを使用可能となる。このとき、ユーザＵiを認証する機能は、ユーザＵiが位置モジュールＭiとほぼ同位置に存在することを保証する必要がある。これを満たす認証方式としては、指紋認証や虹彩認証等がある。逆に、パスワードや声紋認証等は、リモートからの認証が可能となるため、条件を満たさない。
【００６９】
位置スタンプ（Location Stamp）について説明する。位置スタンプとは、誰が、いつ、何処にいたかを証明し、それらの情報に対して証明者の署名が付加されたものである。本実施例では、位置サーバＳの署名を付加する。つまり、匿名性を有する相手認証の位置証明書InfoLiは、位置スタンプと言える。通常の相手認証の場合にも、位置・相手認証に成功した位置モジュールＭに対して、位置サーバＳが位置スタンプを発行することが可能である。位置スタンプは、発行対象がモバイルノードである場合、時刻情報が必須となる。したがって、位置スタンプはタイムスタンプ（非特許文献８参照）の一種であるとも考えられる。タイムスタンプは時刻情報のみを扱うため、TSA（Time Stamp Authority）はネットワーク経由でどこからでもグローバルに利用することが可能である。一方、位置スタンプの場合は、モバイルノードの物理的な位置情報を扱う必要があるため、モバイルノードの存在する近傍のエリアに位置サーバが存在しなくてはならない。
【００７０】
第８に、安全性の評価などについて説明する。本実施例の距離検証方法は、電波の速度および位置モジュールＭiの耐タンパー性に依存する安全性に帰着するので、距離検証可能性（Distance verifiability）および不正証明者耐性（Dishonest prover-resistance）を満たす。本実施例の距離検証方法における安全性の前提とする４つの仮定を示す。
仮定１：位置モジュールＭiが回答ＡiまたはSigned Ａiを計算するために要する時間と、通信時間を除く通信処理に要する時間の合計である許容可能な遅延時間TDelayを、位置サーバＳは知っており、かつ攻撃者は、TDelayを変更することが困難である。この仮定は、位置モジュールＭiに耐タンパー性を要求することにより満足される。
仮定２：攻撃者は、速度ｓより速くは送信できない。この仮定は、速度ｓが真空中の光速度ｃにほぼ等しい場合には妥当である。
【００７１】
仮定３：もし、位置サーバＳと位置モジュールＭiの通信が中継されると、中継遅延時間TRelay(＞０)が発生し、かつTRelayは次の不等式を満たす。
((TCom＋TRelay−TDelay)／s)＞ｒ
チャレンジとレスポンスを、この仮定を満たすように設計する。
仮定４：暗号方式(A_Enc(Ｙ,ｍ),S_Enc(Ｋ,ｍ),A_Sig(Ｘ,ｍ),S_Sig(ｋ,ｍ),Ｈ(ｍ))は、暗号学的に安全である。VeriF_Cの出力が「OK」の場合、位置モジュールＭiが、位置サーバＳから距離ｄ(＝(ΔＴ−TDelay)／ｓ)以内に存在すると判別する。ここで、ｄは、不等式ｒ≧ｄ＞０を満たす。仮定１より、TDelayは、攻撃者により変更できない。仮定２より、TComは、攻撃者により低減できない。仮定３より、中継が行われた場合は、不等式((TCom＋TRelay)／ｓ)＞ｒが満たされる。そして、仮定１、２、３、４より、VeriF_Cは安全である。ゆえに、VeriF_Cの出力が「OK」ならば、位置モジュールＭiは、位置サーバＳから距離ｄ以内に存在する。
【００７２】
本実施例では、Resiの検証に成功し、かつ
ｄ＝(ΔＴ−TDelay)／ｓ
のときに、次式を満たす場合に、位置サーバＳから距離ｄ以内に位置モジュールＭiが存在すると判断する。
ｒ≧ｄ＞０
このとき、仮定１および２より、TDelayは攻撃者により変更することが困難であり、かつ仮定３より攻撃者が通信時間（ΔＴ−TDelay）を減少することは困難であり、かつ仮定４より、中継が行われた場合は
｛（ΔＴ−TDelay）／ｓ｝＞ｒ
となる。ゆえに
ｒ≧ｄ＞０
を満たすとき、位置モジュールＭiが位置サーバＳから距離ｄ以内に存在する。
【００７３】
セキュリティパラメータについて説明する。チャレンジ情報ChaiのサイズCSは、中継遅延を決定するセキュリティパラメータである。実際には、中継器RSの中継速度と通信時間について考慮する必要がある。ここで、CSiは、Chaiのサイズを意味する。Ｅi[bit/sec]は、通信速度、Ｆi[bit/sec]は、RSiの中継速度である。ＥiとＦiを用いて、ＴComとＴRelayを、次のように表す。
TCom＝CSi／Ｅi
TRelay＝CSi／Ｆi
また、上式より、次のように記述できる。
((CSi／Ｆi＋CSi／Ｅi−TDelay)／s)＞ｒ
つまり、Ｆiを予想することで、CSiを決定できる。回答Ａiと対応する要素Ａi_jのサイズは、全数探索攻撃に耐えうるサイズとする。例えば、少なくとも80bitsである。
【００７４】
匿名認証の安全性について説明する。もし、暗号方式(MaskY(Ｒ,Ｙ),MaskX(Ｒ,Ｘ),A_Sig(Ｘ,ｍ))が安全で、DLPを解くことが計算量的に困難であれば、位置サーバＳは、位置モジュールＭiの公開鍵を知らないため、位置モジュールＭiを特定できない。一方、位置モジュールＭiによって選ばれた第三者は、乱数Ｒを使って公開鍵を得ることができる。
【００７５】
個別の攻撃に対する耐性について説明する。エンティティに対する攻撃のうち、直接解析（Tampering）については、耐タンパー性を仮定しているため、位置サーバＳおよび位置モジュールＭ共に、直接解析に対して耐性を有する。したがって、位置モジュールＭのクローニングも実施困難であるため、中継端末RSは位置モジュールＭのクローンではないと仮定できる。中継端末RSが位置モジュールＭのクローンである場合、中継端末攻撃耐性（Relay attack resistance）を満たさない。成りすまし攻撃が想定されるが、位置モジュールＭに対する相手認証を実施し、その認証には暗号学的に安全な方式を利用しているため、成りすましは困難である。
【００７６】
位置モジュールＭの秘密鍵はレスポンス情報に含まれる。そのため、チャレンジとして与える情報を変更することで秘密鍵を得ようとするブラックボックス攻撃が想定できる。しかし、位置モジュールＭがレスポンス情報の生成に利用する暗号方式は、OAEP RSAやPSS等の暗号学的に安全な方式を使用すると仮定するため、レスポンス情報から秘密鍵を得ることは困難である。
【００７７】
通信に対する攻撃について説明する。メッセージ改ざん攻撃があるが、メッセージに対する改ざん耐性を持たせるため、通信路上のメッセージの改ざんを検知するMACを導入する。メッセージ再送攻撃があるが、通信路上のメッセージを記憶しておき、後から再送する再送攻撃に対する耐性を持たせるため、再送攻撃を検知するタイムスタンプを導入する。中継端末攻撃があるが、既に述べたように、中継端末攻撃に対して耐性を有する。
【００７８】
最後に、図５を参照しながら、本実施例を従来方法と比較する。図５に示すように、本実施例は、全ての要求を満たしている。本実施例は、距離検証可能性を満たしている。不正証明者耐性も満たしている。拡張性についても、複数の認証方式が適用可能であるので満たしている。特に、不正証明者耐性を満たす方法は、本発明のみである。不正証明者耐性は、安全性の基本要求であるため、距離検証方式は必ず満たすべきである。拡張性は、システムによっては要求されない場合もあるが、近年でのユーザプライバシ保護要求の高まりなどに応じて、今後は種々の拡張が必要になると考えられる。
【００７９】
実施例１では、位置モジュールＭの処理遅延を固定するため、耐タンパー性を仮定している。従来方法は、位置モジュールＭの秘密鍵Ｋの処理を距離検証の時間計測の範囲外とすることで、秘密鍵Ｋに関する処理遅延を無視できるものとして、耐タンパー性を仮定していない。しかしながら、現実には、無線通信プロトコルは、変復調・エラー訂正等の処理を必要とするため、これらに関する処理遅延を無視することはできない。したがって、結局は、処理遅延を固定するために、耐タンパー性を仮定する必要がある。以上より、実施例１は、現実的な仮定の下での方法のうちで、最も優れた方法であると言える。
【００８０】
上記のように、本発明の実施例１では、距離検証方法を、距離検証手段である位置サーバと、耐タンパー性の距離証明手段である位置モジュールとからなる距離検証システムにおいて、位置モジュールは、位置サーバから受信したチャレンジ情報を自己の秘密鍵により処理してレスポンス情報を生成し、位置サーバは、位置モジュールからの応答遅延時間を利用して距離検証を行い、相手認証のための処理時間を距離検証のための計測時間の範囲に含めて、相手認証と距離検証を同時に実施する方法としたので、中継端末攻撃を検知でき位置詐称を防ぐことができる。また、位置モジュールの秘密鍵の処理を汎用的に設計することにより、位置モジュールが、複数の認証方法のうちから任意の方法を選択可能にできるので、プライバシの保護も可能である。
【実施例２】
【００８１】
本発明の実施例２は、距離証明手段Ｐ2を距離検証する際に、距離証明手段Ｐ1にチャレンジを中継させ、距離証明手段Ｐ1はチャレンジを中継する際にチャレンジにコミットし、距離証明手段Ｐ2はレスポンスを返す際にレスポンスにコミットし、距離証明手段Ｐ2はレスポンスを距離検証手段Ｖに直接、または、距離証明手段Ｐ1経由で返し、距離証明手段Ｐ2を距離検証した結果と距離証明手段Ｐ1を単独で距離検証した結果から距離証明手段Ｐ1‐距離証明手段Ｐ2間距離を算出する２点間距離検証方法である。
【００８２】
図６は、本発明の実施例２における２点間距離検証方法の種別を示す概念図である。図６において、距離検証手段Ｖ（位置サーバＳ）は、距離証明手段までの距離を検証する手段である。距離証明手段Ｐ1、Ｐ2、Ｐ3（位置モジュール）は、距離証明手段のチャレンジ情報を処理してレスポンス情報を生成するとともに、チャレンジとレスポンスを中継する機能を有する耐タンパー性モジュールである。
【００８３】
図６（ａ）は、２個の距離証明手段Ｐ1、Ｐ2を個別に距離検証する方法を示す図である。図６（ｂ）は、２個の距離証明手段Ｐ1、Ｐ2間の距離を、ターン型中継法により検証する方法を示す図である。図６（ｃ）は、２個の距離証明手段Ｐ1、Ｐ2間の距離を、ループ型中継法により検証する方法を示す図である。図６（ｄ）は、２個の距離証明手段Ｐ1、Ｐ2間の距離を、ターン型中継法により検証する場合の、チャレンジとレスポンスの中継方法を示す図である。図６（ｅ）は、３個の距離証明手段Ｐ1、Ｐ2、Ｐ3を個別に距離検証する方法を示す図である。図６（ｆ）は、３個の距離証明手段Ｐ1、Ｐ2、Ｐ3間の距離を、ターン型中継法により検証する方法を示す図である。図６（ｇ）は、３個の距離証明手段Ｐ1、Ｐ2、Ｐ3間の距離を、ループ型中継法により検証する方法を示す図である。
【００８４】
図７は、２点間距離検証方法で用いる位置サーバと位置モジュールの概念図である。実施例２における２点間距離検証方法で用いる位置モジュールと位置サーバの基本的な構成は、実施例１の図１に示したものと同じである。ただし、位置モジュールに、コミット関数により署名を施して中継する機能を有する点が異なる。中継機能は、応答生成関数の機能と類似のものである。図８は、２点間距離検証方法の処理手順の一部を示す流れ図である。
【００８５】
本発明の実施例２における２点間距離検証方法の処理手順を、図６〜図８を参照しながら説明する。最初に、定義を説明する。位置は「距離、範囲、場所、経路」を意味する。また、距離検証を拡張することで、範囲検証、場所検証、経路検証を実現できるので、ここでは距離検証のみを説明する。
【００８６】
位置サーバＳは、秘密鍵Ｋiが演算された位置Ｌiを検証する距離検証手段である。位置サーバＳはRF(Radio Frequency)を用いて距離ｒ以内のエンティティと通信でき、精密にその時間を計測できる。位置サーバＳは位置Ｌsに固定され、移動されたことを検知できる。全エンティティは位置サーバＳが不正を行わないことを信じるものとする。この条件を満たすため、位置サーバＳに耐タンパー性を仮定する。
【００８７】
位置モジュールＭiは、位置サーバＳに対して自身の位置Ｌiを証明する距離証明手段である。位置モジュールＭiは、秘密鍵Ｋi（共通鍵暗号）又はＸi（公開鍵暗号：対応する公開鍵をＹiとする）を安全に保管する。iは、位置モジュールのIDである。１≦ｉ≦ｎ，２≦ｎ，ｎはユーザ数である。IDがｉである位置モジュールをＭiと表す。IDがｊである位置モジュールをＭjと表す。位置モジュールＭiが保持する秘密鍵をＫiと表す。その他のものも同様である。
【００８８】
位置モジュールＭiは、位置サーバＳにより生成されたチャレンジに対応するレスポンスを秘密鍵Ｋi又はＸiを用いて生成する。また、他の位置モジュールに対するチャレンジやレスポンスを中継することができる。ここで、位置モジュールＭiの演算時間や中継時間を変更することは困難とする。この条件を満たすため、位置モジュールＭiに耐タンパー性を仮定する。また、位置モジュールＭiは検証中に移動しないものとする。
【００８９】
中継端末RSiは、不正な位置モジュールＭiに操作されて、位置サーバＳと位置モジュールＭiの通信を中継する。中継端末RSiは、秘密鍵Ｋi又はＸiを持たないとする。
【００９０】
２点間及びｎ点間距離検証方法の要件を説明する。２点間距離検証方法と、２点間距離検証方法を複数の証明者に拡張したｎ点間距離検証方法とのそれぞれに共通の要件を説明する。
【００９１】
２点間距離検証性について説明する。
［命題１］「時刻Ｔから時刻（Ｔ＋ΔＴ）の間に、検証者Ｖから距離ｄi以内で秘密鍵Ｋiが、検証者Ｖから距離ｄj以内で秘密鍵Ｋjが、かつ秘密鍵Ｋiと秘密鍵Ｋjが距離ｄij以内で計算された。」（距離ｄiは、秘密鍵Ｋiに対応する距離、距離ｄjは、秘密鍵Ｋjに対応する距離、距離ｄijは、秘密鍵Ｋiと秘密鍵Ｋjとの組に対応する距離）
【００９２】
もし、検証者Ｖが時刻Ｔに観察を開始してから時刻（Ｔ＋ΔＴ）までに全レスポンスを受けたなら、検証者Ｖは命題１の成否を判定できる。２点間距離検証に相手認証機能を付加するため、位置モジュールＭi以外は秘密鍵を知らない（共通鍵暗号の場合は検証者Ｖにも既知）と仮定し、秘密鍵と位置モジュールＭiは分離できないものとする。
【００９３】
ｎ点間距離検証性について説明する。
［命題２］「時刻Ｔから時刻（Ｔ＋ΔＴ）の間に、検証者Ｖから距離ｄ1以内で秘密鍵Ｋ1が、検証者Ｖから距離ｄ2以内で秘密鍵Ｋ2が、・・・検証者Ｖから距離ｄn以内で秘密鍵Ｋnが、かつ、秘密鍵のうちの２個の全ての組み合わせに対して、秘密鍵の組（秘密鍵Ｋi，秘密鍵Ｋj）が距離ｄ{j,i}以内で計算された。」
【００９４】
もし、検証者Ｖが時刻Ｔに観察を開始してから時刻（Ｔ＋ΔＴ）までに全レスポンスを受けたなら、検証者Ｖは命題２の成否を判定できる。ここで、距離ｄ{j,i}はｎ個から２個を選ぶ全秘密鍵の組み合わせにおける、秘密鍵Ｋiと秘密鍵Ｋjの秘密鍵間距離を意味する。なお、相手認証機能の付加については、２点間距離検証と同様である。
【００９５】
中継攻撃耐性とは、中継攻撃に耐性を持つことを意味する。適応性とは、実際のシステムに適応できることを意味する。モジュール性とは、秘密鍵に依存した複数相手認証方法を入れ替えられるフレームワークを持つことを意味する。
【００９６】
攻撃モデルについて説明する。位置モジュールＭiの所有者又は第三者である攻撃者の目的は、位置モジュールＭiの偽の位置Ｌ'を検証者Ｖに信じさせることと仮定する。攻撃を、エンティティと通信に対するものに分類する。
【００９７】
エンティティに対する攻撃は、次のものである。タンパー攻撃は、直接、位置モジュールＭi又は位置サーバＳを改ざんし解析することである。一方、ブラックボックス攻撃は、様々な入力に対する位置モジュールＭi又は位置サーバＳの出力から、秘密情報を推測することである。また、成りすまし攻撃は、位置モジュールＭi又は位置サーバＳに対して成りすましを行うことである。
【００９８】
通信に対する攻撃は、次のものである。メッセージ改ざん攻撃は、通信路上のメッセージを改ざんすることである。一方、再送攻撃は、通信路上のメッセージを再送することである。中継攻撃は、中継端末RSiが、位置モジュールＭiと位置サーバＳの通信や、位置モジュールＭiと位置モジュールＭj（ｉ≠ｊ）の通信を中継することである。
【００９９】
ベースとなる方法は、実施例１のフレームワークと複数の相手認証のモジュールから成る。このフレームワークを拡張し、相手認証のモジュールは変更せずにそのまま利用する。そのため、相手認証モジュールについての詳細は説明しない。２個の位置モジュールＭ1とＭ2を検証可能な２点間距離検証方法と、ｎ（ｎ＞１）個の位置モジュールＭ1、Ｍ2、・・・、Ｍnを検証可能なｎ点間距離検証方法に分類できる。また、実現方法として、それぞれレスポンスを中継してから検証者に戻すターン型と、レスポンスを直接検証者に返すループ型が存在する。
【０１００】
記号を説明する。
A_Sig(Ｘ,ｍ)は、秘密鍵Ｘにより平文ｍに署名する安全な署名関数である。対応する公開鍵Ｙで署名を検証できる。
S_Sig(Ｋ,ｍ)は、共通鍵Ｋにより平文ｍのMAC(Message Authentication Code)を生成する安全な関数である。例えば、HMACである。共通鍵ＫでMACを検証できる。
Ｈ(ｍ)は、平文ｍのハッシュ値を生成する安全な一方向性ハッシュ関数である。
MaskY(Ｒ，Ｙ)は、乱数Ｒにより公開鍵Ｙをマスクする公開鍵マスク関数である。Ｒが無い場合は、マスクされた公開鍵Ｙ'からＹを得ることは困難である。
MaskX(Ｒ,Ｘ)は、乱数Ｒにより秘密鍵Ｘをマスクする秘密鍵マスク関数である。乱数Ｒが無い場合は、マスクされた秘密鍵Ｘ'から秘密鍵Ｘを得ることは困難である。
【０１０１】
(Ｑi,Ａi)は、位置モジュールＭiに対応する質問と回答の組である。
Reqiは、位置モジュールＭiにより生成されたリクエストである。
Chaiは、位置モジュールＭiのために位置サーバＳが生成したチャレンジである。
Resiは、位置モジュールＭiにより生成されたレスポンスである。
ReqGは、相手認証方法のタイプを入力として、リクエストReqiを出力するリクエスト生成関数である。
ChaG_Cは、乱数とリクエストReqiを入力として、チャレンジChaiを出力する関数である。Ｃは、相手認証方法タイプを意味する。相手認証方法タイプは、
α＝"No authentication"
β＝公開鍵ベース"Authentication"
γ＝共通鍵ベース"Authentication"
ε＝"Authentication with anonymity"
のいずれかである。
ResG_Cは、チャレンジChaiと位置モジュールＭiの秘密鍵を入力として、レスポンスResiを出力する関数である。Ｃは、相手認証方法タイプである。
【０１０２】
VeriF_Cは、入力を検証し、正しければ"OK"を出力し、不正なら他の値を出力する検証関数である。Ｃは、相手認証方法タイプである。
VeriFrelay_Cは、入力を検証し、正しければ"OK"を出力し、不正なら他の値を出力する検証関数である。VeriF_Cと異なり、中継の正当性を検証できる。Ｃは相手認証方法タイプである。
ComF_Cは、位置モジュールＭiの秘密鍵とメッセージを入力として、A_Sig(Ｘ,ｍ)又はA_Sig(Ｘ,ｍ)により署名した値を出力するコミット関数である。Ｃは、相手認証方法タイプである。
TCha_iは、位置サーバＳがチャレンジChaiを送信した時刻である。
TCha_ijは、位置サーバＳがチャレンジChajを位置モジュールＭiに送信した時刻である。
TRes_iは、位置サーバＳがレスポンスResiを受信した時刻である。
TRes_ijは、位置サーバＳがレスポンスResjを、位置モジュールＭiから受信した時刻である。
【０１０３】
TRelayは、中継遅延時間である。チャレンジChaiが未中継ならば、Trelay＝０である。
TRelay_iは、位置サーバＳが事前に承認した位置モジュールＭiの中継時間（中継時に位置モジュールＭiが実施するコミット処理を含む全ての演算時間）である。
TDelay_iは、位置サーバＳが事前に承認した位置モジュールＭiのレスポンス演算時間（通信に関わる演算やコミットを含む全ての時間）である。
TCom_iは、位置サーバＳ-位置モジュールＭi間の通信時間である。
TCom_ijは、位置モジュールＭiを経由した位置サーバＳ-位置モジュールＭj間の通信時間（中継時間及び演算時間は含まない）である。
TPermitは、位置サーバＳが許容する距離検証の誤差時間である。
ΔＴは、監視を開始してから全レスポンスを受けるまでの時間（ΔＴ＝TRes_ij−TCha_i）である。
ΔＴi＝TRes_i−TCha_i
である。
ｓは、RFの速度である。
ｒは、位置サーバＳの有効なRF距離である。
【０１０４】
ターン型２点間距離検証方法のフレームワークを説明する。位置モジュールＭiとＭj（ｉ≠ｊ）を、位置サーバＳが検証する場合について説明する。
Step１：位置モジュールＭiは、リクエストReqi（＝ReqG(Ｚi)）を生成し、位置サーバＳに送る。相手認証方法タイプＺiを以下のように選択する。
Case１  "No authentication"：Ｚi←ｉ‖Ｒi。「‖」は、データの連接、Ｂ←Ａは、ＡのＢへの代入を意味する。
Case２  共通鍵ベース"Authentication"：Ｚi←ｉ。
Case３  公開鍵ベース"Authentication"：Ｚi←Ｙi。
Case４  "Authentication with anonymity"：Ｚi←Ｙi'(MaskY(Ｒi,Ｙi)の出力)。
【０１０５】
Step２：位置サーバＳは、リクエストReqiを受信し、リクエストReqiから位置モジュールＭiが要求する相手認証方法タイプＺiを得る。位置サーバＳは、相手認証方法タイプＺiに対応しない場合は、"Reject"を位置モジュールＭiへ送り、プロトコルを終了する。
【０１０６】
Step３：位置サーバＳは、乱数Rsiを選択し、チャレンジと対応する回答の組｛Chai,Ａi｝（＝ChaG_C(Rsi,ｚi)）を生成する。以下のようにｚiを選択する。
Case１  Ｚi＝ｉ‖Rsiならば、ｚi←Rsiとする。
Case２  Ｚi＝ｉならば、位置サーバＳは、ｉから対応するＫiを選択し、ｚi←Ｋiとする。
Case３  Ｚi＝Ｙiならば、ｚi←Ｙiとする。
Case４  Ｚi＝Ｙi'ならば、ｚi←Ｙi'とする。
次に、位置サーバＳは、チャレンジChaiを位置モジュールＭiへ送り、TCha_iに、その時刻を代入する。なお、位置サーバＳは、最上位から順番にチャレンジChaiを位置モジュールＭiへ送る。
【０１０７】
Step４：位置モジュールＭiは、チャレンジChaiを受信し、レスポンスResi（＝ResG_C(Chai,ζi)）を生成する。以下のようにζiを選択する。
Case１  Ｚi＝ｉ‖Rsiならばζi←Rsiとする。
Case２  Ｚi＝ｉならばζi←Ｋiとする。
Case３  Ｚi＝Ｙiならばζi←Ｘiとする。
Case４  Ｚi＝Ｙ'ならばζi←Ｘi'(MaskX(Ｒi,Ｘi)の出力)とする。
最後に、位置モジュールＭiは、Resiを位置サーバＳに送る。
【０１０８】
Step５：位置サーバＳは、Resiを受信し、TRes_iにその時刻を代入する。
Step６：位置サーバＳは、位置モジュールＭjに対して、同様に、Step１からStep５を実行し、TCha_jとTRes_jを得る。ここまでの手順は、実施例１と同じである。（Step１からStep５までの流れは、実施例１の図３と同じである）
Step７：位置サーバＳは、乱数Rsjiを選択し、チャレンジと対応する回答の組｛Chaji,Aji｝（＝ChaG_C(Rsji,ｚi)）を生成する。なお、ｚiは、Step３と同じものを利用する。次に、位置サーバＳは、チャレンジChajiを位置モジュールＭjへ送り、TCha_jiに、その時刻を代入する。
Step８：位置モジュールＭjは、Chajiを受信し、コミットメントComtj1（＝ComF_C(Chaji,ζi)）を生成する。なお、ζiは、Step４と同じものを利用する。次に、位置モジュールＭiに、（Chaji‖Comtj1）を送る。
【０１０９】
Step９：位置モジュールＭiは、（Chaji‖Comtj1）を受信し、レスポンス
Resji（＝ResG_C(Chaji,ζi)）
とコミットメント
Comti1（＝ComF_C(Resji‖Chaji‖Comtj1,ζi)）
を生成する。位置モジュールＭiは、（Resji‖Chaji‖Comtj1‖Comti1）を、位置モジュールＭjに送る。
Step10：位置モジュールＭjは、（Resji‖Chaji‖Comtj1‖Comti1）を受信し、コミットメント
Comtj2（＝ComF_C(Resji‖Chaji‖Comtj1‖Comti1,ζi)）
を生成する。位置サーバＳに、（Resji‖Chaji‖Comtj1‖Comti1‖Comtj2）を送る。
Step11：位置サーバＳは、（Resji‖Chaji‖Comtj1‖Comti1‖Comtj2）を受信し、TRes_jiに、その時刻を代入する。
Step12：位置サーバＳは、位置モジュールＭjに対して、同様に、Step７からStep11を実行し、TCha_ijとTRes_ijを得る。（Step７からStep10までの流れを、図８に示す）
【０１１０】
Step13：位置サーバＳは、以下の様に、個々のΔＴとTComを計算する。
ΔＴi＝TRes_i−TCha_i
ΔＴj＝TRes_j−TCha_j
TCom_ji＝(TRes_ji−TCha_ji)−(２×TRelay_j＋TDelay_i)
TCom_ij＝(TRes_ij−TCha_ij)−(２×TRelay_i＋TDelay_j)
【０１１１】
以下の式(１)(２)(３)(４)(５)
|TCom_ji−TCom_ij|≦TPermit                                (１)
"OK"＝VeriF_C(Ａi,Resi,ｚi,ｒ,ｓ,TDelay_i,ΔＴi)            (２)
"OK"＝VeriF_C(Ａj,Resj,ｚj,ｒ,ｓ,TDelay_j,ΔＴj)            (３)
"OK"＝VeriFrelay_C
(Ａji,Resji‖Chaji‖Comtj1‖Comti1‖Comtj2,ｚj,ｚi,ｒ,ｓ,TCom_ji)  (４)
"OK"＝VeriFrelay_C
(Ａij,Resij‖Chaij‖Comti1‖Comtj1‖Comti2,ｚj,ｚj,ｒ,ｓ,TCom_ij)  (５)
が全て満たされる場合、
ｄi(＝Δｔi−TDelay_i／ｓ)
ｄj(＝Δｔi−TDelay_j／ｓ)
ｄ{i,j}(＝((TCom_ji＋Tcom_ij)／ｓ−ｄj−ｄi)／２)
を計算する。
【０１１２】
ループ型２点間距離検証方法のフレームワークを説明する。ループ型２点間距離検証方法は、ターン型２点間距離検証方法のフレームワークのStep９において位置モジュールＭiが直接、位置サーバＳに（Resji‖Chaji‖Comtj1‖Comti1）を送る点、Step10の処理が省略される点が異なる。ゆえに、TCom_jiとTCom_ijは、以下の様に計算される。（図６（ｃ）にループ型の流れを示す）
TCom_ji＝(TRes_ji−TCha_ji)−(TRelay_j＋TDelay_i)
TCom_ij＝(TRes_ij−TCha_ij)−(TRelay_i＋TDelay_j)
【０１１３】
ｎ点間距離検証フレームワークを説明する。ｎ点間距離検証方法は、単純にｎ個の位置モジュールの秘密鍵から２個を選ぶ全組み合わせに対し、２点間距離検証方法を実行するものである。また、ターン型及びループ型の差についても２点間距離検証方法に準じる。
【０１１４】
関数の要件を説明する。
VeriFrelay_Cは、入力値
（Ａji,Chaji‖Resji‖Comtj1‖Comti1‖Comti2,ｚj,ｚi,ｒ,ｓ,TCom_ji）
が正しければ"OK"を出力し、それ以外の場合は"OK"以外を出力できる。正しいとは、不等式
２×ｒ≧ｄ{j,i}(＝TCom_ji／ｓ)＞０
と、以下の条件を満たすことを意味する。
‐Ａi又はSigned Ａiの検証方法については、実施例１の距離検証方法のVeriF_C関数と同様である。
‐署名文（コミットメント）Comtj1を、チャレンジの平文Chajiとzjにより検証し、結果が正しい。このとき、チャレンジChajiは、位置サーバＳが生成したチャレンジと等しいこと。
‐署名文（コミットメント）Comti1を平文（Resji‖Chaji‖Comtj1）とｚiにより検証し、結果が正しい。
‐署名文（コミットメント）Comtj2を平文（Resji‖Chaji‖Comtj1‖Comti1）とｚjにより検証し、結果が正しい。
【０１１５】
適応性については、検証者Ｖにとって証明者Ｐの演算遅延が既知であると仮定し、距離検証する際に演算遅延を考慮するため、適応性を満たす。モジュール性については、位置モジュールＭiが複数の相手認証方法から一つを選択できるため、モジュール性を満たす。
【０１１６】
基本的な安全性について説明する。距離ｄi及びｄjについては、実施例１の距離検証方法と同様の安全性である。以下、距離ｄjiの安全性について説明する。
仮定１：位置サーバＳにとって、位置モジュールＭiの中継時間TRelay_i及び演算時間TDelay_iは既知であり、かつ、攻撃者は、TRelay_i及びTDelay_iを変更することが困難である。TDelay_iは、位置モジュールＭiがＡi（又はsigned Ａi）を計算するための秘密鍵演算時間と、位置モジュールＭiの通信に関わる演算時間から成る。仮定１を満たすために、耐タンパー性を要求する。位置モジュールＭjも同様に仮定する。
【０１１７】
仮定２：攻撃者は速度ｓより速くデータを送信できない。ｓが真空中の光速度に等しいなら、仮定は妥当である。
【０１１８】
仮定３：位置サーバＳ‐位置モジュールＭi間、位置モジュールＭi‐位置モジュールＭj間、位置モジュールＭj‐位置サーバＳ間のいずれかの通信が中継された場合、中継遅延TRelay(＞０)が発生し、
(((TRelay＋TCom_ji＋TCom_ij)／ｓ−ｄj−ｄi)／２)＞(２×ｒ)
を満たす。ベースとなる距離検証方法（実施例１）のチャレンジとレスポンスは、中継遅延を検出可能な大きさに増加するように設計設計されている。ここで、予め想定する位置モジュールによる中継時間は、既にTCom_ji及びTCom_ijに含まれている。
【０１１９】
仮定４：中継端末RSiと第三者は、位置モジュールＭiの秘密鍵を知ることはできない。この仮定を満たすために、A_Enc(Ｙ,ｍ)，S_Enc(Ｋ,ｍ)，A_Sig(Ｘ,ｍ)，S_Sig(Ｋ,ｍ)，Ｈ(ｍ)は安全であるとし、位置モジュールＭiは、耐タンパーモジュールとする。位置モジュールＭjも同様であると仮定する。VeriFrelay_Cの出力が"OK"であれば、位置モジュールＭiとＭj間の距離は、
ｄji(＝((Trelay＋TCom_ji＋TCom_ij)／ｓ−ｄj−ｄi)／２)
以内であると判定する。ここで、ｄjiは不等式
(２×ｒ)≧ｄji＞０
を満たし、
TCom_ji＝(TRes_ji−TCha_ji)−(２×TRelay_j＋TDelay_i)
TCom_ij＝(TRes_ij−TCha_ij)−(２×TRelay_i＋TDelay_j)
である。仮定１より、TDelay_i，TDelay_j，TRelay_i，TRelay_jは、攻撃者により変更されない。仮定２より、TCom_ji及びTCom_ijは、攻撃者により削減されない。仮定３より、通信が中継されると、TRelayは不等式
(((Trelay＋TCom_ji＋TCom_ij)／ｓ−ｄj−ｄi)／２)＞(２×ｒ)
を満たす。仮定４より、位置モジュールＭiのみがＡi(又はsinged Ａi)を計算できる（位置モジュールＭjも同様である）。ゆえに、VeriFrelay_Cは安全であり、出力が"OK"ならば、位置モジュールＭiとＭj間の距離はｄji以内である。
【０１２０】
"Authentication with anonymity"の安全性：実施例１の距離検証方法と同様である。攻撃モデルにおいて述べたいくつかの攻撃に対する安全性についても、実施例１の距離検証方法と同様である。
【０１２１】
位置モジュール信頼性による安全性の違いについて説明する。実施例１の距離検証方法と同様に、レスポンスを遅らせることにより、位置モジュールは自身の位置を遠くに見せかけることが可能である。位置モジュールＭi経由と位置モジュールＭj経由の２方向から通信時間を測定するが、仮に一方が不正な位置モジュールであれば、ある程度の能力は要求されるものの、２方向の測定に矛盾しないように通信を遅らせることが可能である。また、両方の位置モジュールとも不正な場合は、両方とも自身の位置を遠くに見せかけることができる。ただし、いずれの場合においても、仮定１から４を満たす場合、近くに見せかけることは困難である。
【０１２２】
許容誤差に関する安全性について説明する。前述のように、攻撃者の能力が高い場合は、式(１)を満たすことが可能である。したがって、式(１)は、能力の低い攻撃者の検出や、位置モジュールが何らかの理由により移動したことを検出する目的にのみ利用できる。
【０１２３】
本発明の実施例２の拡張について説明する。連続する検証を依存させる方法について説明する。Step５又はStep11において受信したレスポンス１に依存させて、以降のStep６又はStep12に利用するチャレンジ２を生成することが可能である。また、単に依存させるだけでなく、Step１〜Step５又はStep７〜Step11において生成したチャレンジ１又はレスポンス１を用いなければ、以降のStep６又はStep12におけるレスポンス２を生成できないような構造のチャレンジ２を生成することも可能である。このような構造にすることで、検証の連続性を保証することが可能となり、安全性が向上する。
【０１２４】
同報通信の利用について説明する。位置サーバＳがチャレンジを同報通信することで、通信コストを削減することが可能となる。ただし、レスポンスが同時に複数の位置モジュールＭから位置サーバＳに送られる可能性があるため、複数同時受信及び並列処理可能な位置サーバＳであることが前提となる。また、ｎ点間距離検証方法において、位置モジュールＭがチャレンジ又はレスポンスの中継を同報通信で行うことにより、プロトコル全体の時間を削減することが可能となる。ただし、同様に並列処理可能な位置モジュールＭであることが前提となる。
【０１２５】
匿名性及び位置秘匿性について説明する。実施例１の距離検証方法と同様に、"Authentication with anonymity"を用いることで、位置モジュールＭは、位置サーバＳに対して匿名性を得ることができる。このとき、位置モジュールＭiとＭjの生成する乱数は、必ず異なるとする。同じ場合は、位置サーバＳは、位置モジュールＭiとＭjを区別することが困難となり、正常にプロトコルが動作しない。また、実施例１と同様に、位置サーバＳが検証結果に対して位置証明書（位置サーバＳが発行する位置モジュールＭの位置情報と時刻とIDと位置サーバＳのID又は位置情報に署名をした証明書）を生成して提供することが可能である。このとき、位置サーバＳのID又は位置情報を位置証明書に含めないことで、位置モジュールＭjとＭiがある時刻にある距離以内に近づいていたことのみが証明可能となり、どの位置に存在したのかを第三者は特定できない。これを位置秘匿性と呼ぶ。
【０１２６】
複数検証者を用いた拡張について説明する。位置サーバを複数個用意し、それらの位置サーバは情報を共有できるものとする。このとき、位置サーバＡが送ったチャレンジを位置モジュール１が中継し、位置モジュール２が対応するレスポンスを位置サーバＢに送る。このとき、位置サーバＡとＢが情報を共有することで、検証可能な範囲を拡張することや、範囲検証、場所検証、経路検証への拡張が可能となる。
【０１２７】
中継証明者の固定について説明する。ｎ点間距離検証方法において、中継を行う位置モジュールＭiを固定的に決定することで、位置モジュールＭiから半径ｒi以内に他の位置モジュールが存在するという証明が可能となる。ただし、位置モジュールＭiが不正な場合、全ての位置モジュールの距離を簡単に遠くに見せかけることが可能となるため、位置モジュールＭiが信頼できる場合にのみ用いるべきである。
【０１２８】
中継位置モジュールの複数化について説明する。これまでは、一つのチャレンジ・レスポンスの組に対しては１個の位置モジュールＭしか中継を行わないものとした。複数の位置モジュールＭを経由することで、より詳細に複数の位置モジュールＭ間の位置関係を検証できる。ただし、検証手順の煩雑化や中継回数の増加により検証精度が低下することがある。
【０１２９】
位置モジュールの演算時間の一定化について説明する。この例では、位置モジュールＭの演算時間は、位置サーバＳにとって既知であるという仮定をおいている。しかしながら、位置モジュールＭへの入力であるチャレンジの内容により演算時間が変化することが予想される。そこで、電力攻撃やタイミング攻撃等のサイドチャネル攻撃に対する対策として提案されている、入力に依存せずに常に演算時間を一定化する技術を用いる。このような技術を用いて位置モジュールＭの演算部を実装することで、常に位置モジュールＭの演算時間を一定に保ち、検証精度を向上できる。
【産業上の利用可能性】
【０１３０】
本発明の距離検証方法は、ユビキタスネットワーク等における位置依存サービスにおいて、中継攻撃を防ぐための最適な方法である。この距離検証方法は、改札・ゲートでの電子チケット検証や、入退室管理システムや、位置でアクセス制御可能なログインシステムや、位置と時間でアクセス制御可能なICカードや、位置に依存した情報配信サービスなどにおいて、安全性を高めるために利用できる。また、本発明の２点間距離検証方法は、複数人でないと入店できない店舗における入退室管理や、法的な理由から複数の人物が実際に会ったことを証明するサービスなどのための検証方法として最適である。
【図面の簡単な説明】
【０１３１】
【図１】本発明の実施例１における距離検証方法の概念図
【図２】本発明の実施例１における距離検証方法に対する攻撃の種別を説明する図
【図３】本発明の実施例１における距離検証方法の手順を説明する図
【図４】本発明の実施例１における距離検証方法の種別を説明する図
【図５】本発明の実施例１における距離検証方法と従来例を比較した表
【図６】本発明の実施例２における２点間距離検証方法の種別を説明する図
【図７】本発明の実施例２における２点間距離検証方法の概念図
【図８】本発明の実施例２における２点間距離検証方法の手順を説明する図
【図９】従来の距離検証方法の概念図
【符号の説明】
【０１３２】
Ｖ  距離検証手段（検証者）
Ｐ  距離証明手段（証明者）
RS  中継端末
Ｓ  位置サーバ
Ｍ  位置モジュール
Ｋ  鍵
【図１】
2006197458.tif 000003
【図２】
2006197458.tif 000004
【図３】
2006197458.tif 000005
【図４】
2006197458.tif 000006
【図５】
2006197458.tif 000007
【図６】
2006197458.tif 000008
【図７】
2006197458.tif 000009
【図８】
2006197458.tif 000010
【図９】
2006197458.tif 000011