説明

暗号署名されたコマンドを提供する方法

本発明は、暗号署名されたコマンドを提供する方法を提供する。コマンドは、コマンド名及び少なくとも1つのコマンド引数を含む。方法は、コマンド名の暗号署名を生成すること(501)と、コマンド名、署名及び少なくとも1つのコマンド引数を使用して暗号署名されたコマンドを構成すること(503)とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特にモバイルナビゲーションの分野における情報技術に関する。
【背景技術】
【0002】
モバイルナビゲーション装置に対する増加し続ける要求により、例えばナビゲーションコンテンツ(ルート情報、交通情報、地図情報等のナビテーション項目)の管理、ナビゲーション装置へのユーザ別ナビゲーションコンテンツ等の提供、ナビゲーション装置の操作又はナビゲーション装置等にインストールされた実行可能なプログラムの管理に関係するいくつかの制約が加えられる。
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、より複雑なナビゲーション装置及び情報に対する増加し続ける要求は、特定のコンピュータコマンドが信用あるエンティティ(entity)により提供されたかの検証に関係する問題に影響を与える。
【0004】
本発明の目的は、オーバヘッドが減少されたコンピュータコマンド等の暗号化検証可能なコマンドを提供することである。
【課題を解決するための手段】
【0005】
この目的は、独立請求項の特徴により達成される。
【0006】
本発明は、コンピュータコマンド(例えば、実行可能な)がコマンド名(command name)及び1つ以上のコマンド引数(例えば、コマンド引数のリスト)を含む場合、例えば自動的にコマンド名を署名し、(署名した)コマンド名及び追加の引数としてその暗号署名を使用して検証可能なコンピュータコマンドを構成する時に、オーバヘッドが減少された暗号化検証可能なコンピュータコマンドが取得され得るという発見に基づくものである。
【0007】
一実施形態は、暗号署名されたコマンドを提供する方法を提供する。コマンドは、コマンド名及び少なくとも1つのコマンド引数を含む。方法は、コマンド名の暗号署名を生成することと、コマンド名と、署名と、少なくとも1つのコマンド引数とを使用して暗号署名されたコマンドを構成することとを含む。
【0008】
更なる一実施形態によると、方法は、暗号署名されたコマンドを構成するために、コマンド名と、コマンド名の暗号署名と、少なくとも1つのコマンド引数とを連結することを含む。
【0009】
更なる一実施形態によると、方法は、非対称暗号化アルゴリズム、特にRSA(Rivest-Shamir-Adleman)アルゴリズムに基づくか又はデジタル署名アルゴリズムに基づいてコマンド名の暗号署名を生成することを含む。
【0010】
更なる一実施形態によると、コマンド名は、少なくとも1つのコマンド引数により判定される目的地までのナビゲーションルートを判定することを示し、且つ/又は少なくとも1つのコマンド引数により示されるアドレスデータにより判定されるナビゲーション地図を提供することか又は少なくとも1つのコマンド引数を含むコンピュータプログラムを実行することを示す。
【0011】
別の実施形態は、暗号署名されたコマンドに基づいて暗号化検証されたコマンドを提供する方法を提供する。暗号署名されたコマンドは、コマンド名、コマンド名の暗号署名及び少なくとも1つのコマンド引数を含む。方法は、暗号署名を復号化して第1の暗号化値を取得することと、コマンド名を処理して第2の暗号化値を取得することと、第1の暗号化値及び第2の暗号化値を比較して比較結果を取得することと、比較結果に依存してコマンド名及び少なくとも1つのコマンド引数を暗号化検証されたコマンドとして提供又は実行することとを含む。
【0012】
更なる一実施形態によると、第1の暗号化値は暗号署名のハッシュ値を含み、第2の暗号化値はコマンド名のハッシュ値を含む。
【0013】
更なる一実施形態によると、方法は、第1の暗号化値及び第2の暗号化値が等しい場合に暗号化検証されたコマンドを提供又は実行することを含む。例えば、方法はハッシュ値を比較することを更に含む。
【0014】
別の実施形態は、暗号署名されたコマンドを提供する装置を提供する。コマンドは、コマンド名及び少なくとも1つのコマンド引数を含む。装置は、コマンド名の暗号署名を生成する生成器と、コマンド名、署名及び少なくとも1つのコマンド引数を使用して暗号署名されたコマンドを構成(例えば、連結)する構成器とを具備する。
【0015】
装置(又はその要素)は、暗号署名されたコマンドを提供するために上述の方法ステップを実行するように構成されるのが好ましい。
【0016】
別の実施形態は、暗号署名されたコマンドに基づいて暗号化検証されたコマンドを提供する装置を提供する。暗号署名されたコマンドは、コマンド名、コマンド名の暗号署名及び少なくとも1つのコマンド引数を含む。装置は、暗号署名を復号化して第1の暗号化値を取得する復号器と、コマンド名を処理して第2の暗号化値を取得するプロセッサと、第1の暗号化値及び第2の暗号化値を比較して比較結果を取得する比較器と、比較結果に依存してコマンド名及び少なくとも1つのコマンド引数を暗号化検証されたコマンドとして提供又は実行する提供器とを具備する。装置(又はその要素)は、暗号化検証されたコマンドを提供するために上述の方法ステップを実行するように構成されるのが好ましい。
【0017】
別の面によると、プログラム可能に構成されたエンティティは、プログラム可能に構成された更なるエンティティを制御するための特定のコマンドを存在しないネットワークアドレス、すなわちダミーのネットワークアドレスに送信することにより又は送信することを要求することにより更なるエンティティを制御できる。送信又は送信の要求は、プログラム可能に構成された更なるエンティティに特定のコマンドを提供するプログラム可能に構成された追加の(例えば、制御)エンティティにより阻止されてもよい。従って、コマンドは間接的に配信され、付加的な複雑さを軽減する。この点に関して、用語「プログラム可能に構成されたエンティティ」は、プログラム可能に構成された手段又はコンピュータ上で実行可能なコンピュータプログラムを示してもよい。
【0018】
一実施形態は、プログラム可能に構成された第1の手段、プログラム可能に構成された第2の手段及びプログラム可能に構成された第3の手段を有する通信装置を提供する。プログラム可能に構成された第1の手段は、ダミーアドレス等のような存在しないネットワークアドレスに特定のコマンドを送信することをプログラム可能に構成された第2の手段に要求するように構成されてもよい。プログラム可能に構成された第2の手段は、その特定のコマンドを送信するための要求に関してプログラム可能に構成された第3の手段に通知するように構成されてもよい。要求を示す情報に応答して、プログラム可能に構成された第3の手段はその特定のコマンドを実行してもよい。従って、プログラム可能に構成された第1の手段がプログラム可能に構成された第3の手段と直接対話できない場合でも、プログラム可能に構成された第1の手段はプログラム可能に構成された第3の手段を間接的に制御できる。
【0019】
更なる一実施形態によると、プログラム可能に構成された第2の手段は、別のプログラムに対してホスト又は環境等を提供する仮想マシンを提供する第2のコンピュータプログラムを実行してもよい。プログラム可能に構成された第1の手段は、その仮想マシン上で第1のコンピュータプログラムを実行してもよい。従って、第1のコンピュータプログラムは第2のコンピュータプログラムにより提供される仮想マシン上で実行するため、第2のコンピュータプログラムは第1のコンピュータプログラムを監視し、例えば要求を取り込むことができる。
【0020】
更なる一実施形態によると、第1のコンピュータプログラムは実行不可能なスクリプトを含む。更に、第2のコンピュータプログラムは、実行された時にウェブブラウザ等のネットワークブラウジング機能性を提供してもよい。また、第3のコンピュータプログラムは、実行された時にユーザ環境(例えば、ホームアプリケーション)等のユーザアプリケーションを提供し得る。
【0021】
別の実施形態は、第1のコンピュータプログラム、第2のコンピュータプログラム及び第3のコンピュータプログラムを実行するように構成される通信装置を提供する。第1のコンピュータプログラムは、特定のコマンドを存在しないネットワークアドレスに送信するように第2のコンピュータプログラムに要求する。第2のコンピュータプログラムは、その特定のコマンドを送信するための要求に関して第3のコンピュータプログラムに通知する。第3のコンピュータプログラムは、要求を示す情報に応答してその特定のコマンドを実行する。従って、例えば第1のコンピュータプログラムが第3のコンピュータプログラムと直接対話するための実行可能なルーチンを含まない場合でも、第1のコンピュータプログラムは、実行された時に第3のコンピュータプログラムを間接的に制御できる。
【0022】
更なる一実施形態によると、第2のコンピュータプログラムは実行された時に仮想マシンを提供してもよく、この場合、第1のコンピュータプログラムは第2のコンピュータプログラムにより提供される仮想マシン上で実行してもよい。第1のコンピュータプログラムは、例えばコンピュータ上で実行された時、第1のコンピュータプログラムを監視し、要求を取り込み且つ特定のコマンドを間接的に取り込むことを可能にする環境をその仮想マシンにより提供する。
【0023】
更なる一実施形態によると、第1のコンピュータプログラムは実行不可能なスクリプトを提供してもよく、第2のコンピュータプログラムはウェブブラウザ等のネットワークブラウジング機能性を提供してもよく、第3のコンピュータプログラムはユーザ環境等のユーザアプリケーションを提供してもよい。
【0024】
例えば、特定のコマンドは、第3のコンピュータプログラムにより通信ネットワークを介してリモートネットワークエンティティに対するネットワーク接続を確立することを指示する。
【0025】
別の実施形態は、存在しないネットワークアドレスに特定のコマンドを送信するように第2のコンピュータプログラムにより第1のコンピュータプログラムに要求することと、その要求を示す情報を第3のコンピュータプログラムに提供することと、特定のコマンドを送信するための要求を示す情報に応答して第3のコンピュータプログラムにより特定のコマンドを実行することとから成る通信方法を提供する。
【0026】
別の実施形態は、第1のコンピュータプログラム、第2のコンピュータプログラム及び第3のコンピュータプログラムを含むコンピュータプログラムを提供する。第1のコンピュータプログラムは、コンピュータ上で実行された時に存在しないネットワークアドレスに特定のコマンドを送信するように第2のコンピュータプログラムに要求する。第2のコンピュータプログラムは、コンピュータ上で実行された時にその特定のコマンドを送信するための要求に関して第3のコンピュータプログラムに通知する。第3のコンピュータプログラムは、コンピュータ上で実行された時に要求に関する情報に応答して特定のコマンドを実行する。
【0027】
別の面によると、種々のプログラム又はプログラム可能に構成されたエンティティにより提供される標準の統一資源識別子フィールド(URI)は、例えばコンピュータプログラム又はプログラム可能に構成されたエンティティと間接的に対話するためのインタフェースを形成してもよい。これにより、既存のリソースは効率的に利用される。
【0028】
一実施形態は、統一資源識別子を表す文字列の特定のコンピュータコマンドを検出する処理装置を提供する。特定のコマンドは事前定義済みコマンドヘッダを含み、複数の事前定義済みコマンド名のうち1つのコマンド名がコマンドヘッダに後続する。処理装置は、文字列が事前定義済みコマンドヘッダを含むかを判定する判定器を具備し、判定器は、文字列が事前定義済みコマンドヘッダを含む場合にコマンドヘッダに後続する文字部分列がコマンド名を含むかを更に判定し得る。処理装置は、コマンドヘッダがコマンド名を含む場合に事前定義済みコマンドヘッダ及びコマンド名を特定のコンピュータコマンドとして提供する提供器を更に具備する。事前定義済みコマンドヘッダ及びコマンドヘッダに後続するコマンド名を含むコマンド構造は、複雑さが低いURIの特定のコマンドの識別を可能にする。
【0029】
更なる一実施形態によると、判定器は、コマンドヘッダに後続する文字部分列がコマンド名を含む場合にコマンド名に後続する更なる文字部分列が少なくとも1つのコマンド引数を含むかを判定してもよい。更に判定器は、少なくとも1つのコマンド引数が特定のコマンドの所定のパラメータに対応するかを判定してもよい。提供器は、少なくとも1つのコマンド引数が所定のパラメータに対応する場合に事前定義済みコマンドヘッダ、コマンド名及び少なくとも1つのコマンド引数を特定のコンピュータコマンドとして提供してもよい。従って、特定のコンピュータコマンドは、URIの検出されたコマンド部分に基づいて構成され、例えばプロセッサ等により実行され得る。
【0030】
更なる一実施形態によると、処理装置は、特定のコマンドを実行するプログラム可能に構成されたプロセッサ等を具備してもよい。
【0031】
別の実施形態は、統一資源識別子を表す文字列の特定のコンピュータコマンドを検出する方法を提供する。特定のコマンドは事前定義済みコマンドヘッダを含み、複数の事前定義済みコマンド名のうち1つのコマンド名がコマンドヘッダに後続する。方法は、文字列が事前定義済みコマンドヘッダを含むかを判定することと、文字列が事前定義済みコマンドヘッダを含む場合にコマンドヘッダに後続する文字部分列がコマンド名を含むかを判定することと、コマンドヘッダがコマンド名を含む場合に事前定義済みコマンドヘッダ及びコマンド名を特定のコンピュータコマンドとして提供することとから成る。
【0032】
更なる一実施形態によると、1つ以上のコマンド引数がコマンド名に後続し、方法は、コマンドヘッダに後続する文字部分列がコマンド名を含む場合にコマンド名に後続する更なる文字部分列が少なくとも1つのコマンド引数を含むかを判定することと、コマンド名に後続する更なる文字部分列が少なくとも1つのコマンド引数を含む場合に事前定義済みコマンドヘッダ、コマンド名及び少なくとも1つのコマンド引数を特定のコンピュータコマンドとして提供することとを含む。
【0033】
更なる一実施形態によると、方法は、コマンドヘッダに後続する文字部分列がコマンド名を含む場合にコマンド名に後続する更なる文字部分列が少なくとも1つのコマンド引数を含むかを判定することと、少なくとも1つのコマンド引数が特定のコマンドの所定のパラメータに対応するかを判定することと、少なくとも1つのコマンド引数が所定のパラメータに対応する場合に事前定義済みコマンドヘッダ、コマンド名及び少なくとも1つのコマンド引数を特定のコンピュータコマンドとして提供することとを含む。
【0034】
更なる一実施形態によると、所定のパラメータは、コマンド名と更なるコマンド引数とを区切り、方法は、事前定義済みコマンドヘッダ、コマンド名、並びに少なくとも1つのコマンド引数及び更なるコマンド引数を特定のコンピュータコマンドとして提供することを更に含む。
【0035】
更なる一実施形態によると、特定のコマンドは、ユーザ別情報を取得するために通信ネットワークを介してリモートネットワークエンティティへのネットワーク接続を確立することを指示する。
【0036】
更なる一実施形態によると、方法は特定のコンピュータプログラムをプログラム可能に実行することを含む。
【0037】
別の面によると、別のプログラムがナビゲーション装置にインストールされた装置ファームウェアをエミュレートするという条件の下、ナビゲーション装置の挙動はその別のプログラムを使用してエミュレートされてもよい。別のプログラムは、別の装置に内蔵エミュレータ等としてインストールされ、ナビゲーション装置をエミュレートするために実行されてもよい。しかし、ナビゲーション装置をエミュレートする前に、別のプログラムが装置ファームウェアに対応すること、例えば別のプログラムのソースコードが装置ファームウェアのソースコードのソースコードに対応することが保証される必要がある。こうして、ナビゲーション装置の電源が切れている場合でも、ユーザはエミュレートプログラムを使用してナビゲーション装置を操作できる。
【0038】
一実施形態は、ナビゲーション装置にインストールされた装置ファームウェアプログラムの実行に応答してナビゲーション装置の挙動をエミュレートする通信装置を提供する。通信装置は、装置ファームウェアプログラムに関する情報を提供する提供器と、通信装置にインストールされた現在のファームウェアプログラムがナビゲーション装置にインストールされた装置ファームウェアプログラムに対応するかを判定する判定器と、現在のファームウェアプログラムが装置ファームウェアに対応する場合にナビゲーション装置の挙動をエミュレートするために通信装置上で現在のファームウェアプログラムを実行するプロセッサとを具備するのが好ましい。
【0039】
更なる一実施形態によると、プロセッサは、現在のファームウェアプログラムが装置ファームウェアプログラムに対応しない場合、現在のファームウェアプログラムの更新バージョンを取得するために通信ネットワークを介してリモートネットワークエンティティに対するネットワーク接続を確立し得る。更にプロセッサは、ナビゲーション装置の挙動をエミュレートするために現在のファームウェアプログラムの更新バージョンを実行してもよい。
【0040】
更なる一実施形態によると、提供器は、装置ファームウェアプログラムを示す情報を検索するためにナビゲーション装置に接続され得る。
【0041】
更なる一実施形態によると、判定器は、装置ファームウェアプログラムを示す情報を含むコンテンツファイルのテーブル又は現在のファームウェアプログラムを示す情報を含むコンテンツファイルのテーブルに基づいて、通信装置にインストールされた現在のファームウェアプログラムが装置ファームウェアに対応するかを判定し得る。
【0042】
更なる一実施形態によると、プロセッサは、ナビゲーション装置の挙動のエミュレーションに基づいてナビゲーション装置を制御し得る。
【0043】
別の実施形態は、ナビゲーション装置にインストールされた装置ファームウェアプログラムの実行に応答してナビゲーション装置の挙動をエミュレートする方法を提供する。方法は、ナビゲーション装置から装置ファームウェアプログラムに関する情報を提供することと、現在のファームウェアプログラムがナビゲーション装置にインストールされた装置ファームウェアに対応するかを判定することと、現在のファームウェアプログラムが装置ファームウェアに対応する場合にナビゲーション装置の挙動をエミュレートするために通信装置上で現在のファームウェアプログラムを実行することとを含む。
【0044】
別の実施形態によると、方法は、現在のファームウェアプログラムが装置ファームウェアプログラムに対応しない場合に現在のファームウェアプログラムの更新バージョンを取得するために通信ネットワークを介してリモートネットワークエンティティに対するネットワーク接続を確立することと、ナビゲーション装置の挙動をエミュレートするために現在のファームウェアプログラムの更新バージョンを実行することとを含む。
【0045】
別の実施形態によると、方法は、装置ファームウェアプログラムを示す情報を検索するためにナビゲーション装置に接続することを含む。
【0046】
別の実施形態によると、方法は、装置ファームウェアプログラムを示す情報を含むコンテンツファイルのテーブル又は現在のファームウェアプログラムを示す情報を含むコンテンツファイルのテーブルに基づいて、現在のファームウェアプログラムが装置ファームウェアプログラムに対応するかを判定することを含む。
【0047】
別の実施形態は、ナビゲーション装置にインストールされた装置ファームウェアプログラムの実行に応答してナビゲーション装置の挙動をエミュレートするプログラム可能に構成された通信装置を提供する。プログラム可能に構成された通信装置は、装置ファームウェアプログラムに関する情報を提供するために第1のコンピュータプログラムを実行し、プログラム可能に構成された通信装置が利用可能な現在のファームウェアプログラムがナビゲーション装置にインストールされた装置ファームウェアプログラムに対応するかを判定するために第2のコンピュータプログラムを実行し、現在のファームウェアプログラムが装置ファームウェアプログラムに対応する場合にナビゲーション装置の挙動をエミュレートするために通信装置上で現在のファームウェアプログラムを実行してもよい。
【0048】
プログラム可能に構成された通信装置は、上述の方法のステップを実行するように構成されるのが好ましい。
【0049】
別の面によると、リモートサーバに提供される特定の情報に対する要求に応答して、その特定の情報を送信する代わりに、その特定の情報を取得するためにリモートサーバに再度接続する時点を示す時間情報が提供される場合、特定の情報が時宜を得て提供される。従って、ユーザ等による旧情報の管理又は評価に関する問題は回避される。
【0050】
一実施形態は、更なるネットワークエンティティ(例えば、ネットワークサーバ)からネットワークエンティティ(例えば、通信装置)に特定の情報を提供する方法を提供する。方法は、通信ネットワークを介してネットワークエンティティから更なるネットワークエンティティに特定の情報に対する要求を送信することと、通信ネットワークを介して更なるネットワークエンティティからネットワークエンティティに時間情報を送信することとを含む。時間情報は、特定の情報を取得するために更なるネットワークエンティティに接続する特定の時点を示す。
【0051】
更なる一実施形態によると、方法は、特定の時点においてネットワークエンティティと更なるネットワークエンティティとの間にネットワーク接続を確立することと、通信ネットワークを介して更なるネットワークエンティティからネットワークエンティティに特定の情報を送信することとを含む。
【0052】
更なる一実施形態によると、方法は、特定の時点においてネットワークエンティティと更なるネットワークエンティティとの間に接続を確立することと、通信ネットワークを介して更なる第2のネットワークエンティティからネットワークエンティティに特定の情報を送信することと、ネットワークエンティティにより特定の情報を表示することとを含む。
【0053】
更なる一実施形態によると、方法は、特定の情報に対する要求をネットワークエンティティにより受信することを含む。
【0054】
更なる一実施形態によると、特定の情報は、ユーザ別ナビゲーションルートに関する交通情報を含む。
【0055】
更なる一実施形態によると、方法は、更なるネットワークエンティティに要求を格納することを含む。
【0056】
別の実施形態は、通信ネットワークを介して更なるネットワークエンティティから特定の情報を取得するネットワークエンティティを提供する。ネットワークエンティティは、特定の情報に対する要求を通信ネットワークを介して更なるネットワークエンティティに送信し、通信ネットワークを介して更なるネットワークエンティティから時間情報を受信してもよい。時間情報は、特定の情報を取得するために更なるネットワークエンティティに接続する特定の時点を示す。
【0057】
更なる一実施形態によると、ネットワークエンティティは、特定の情報を取得するために特定の時点において更なるネットワークエンティティに接続してもよい。
【0058】
別の実施形態は、通信ネットワークを介して更なる通信エンティティにより送信される特定の情報に対する要求に応答して、通信ネットワークを介して更なるネットワークエンティティに特定の情報を提供するネットワークエンティティを提供する。ネットワークエンティティは、通信ネットワークを介して時間情報を送信するように構成され、時点は、特定の情報を取得するためにネットワークエンティティに接続する時点を示す。
【0059】
更なる一実施形態によると、更なるネットワークエンティティがネットワークエンティティに対するネットワーク接続を確立した場合、ネットワークエンティティは特定の時点における特定の情報を更なるネットワークエンティティに送信してもよい。
【0060】
別の面によると、ナビゲーションコンテンツ(ユーザ別であってもよい)は、通信ネットワークを介してアクセス可能なリモートサーバ上で効率的に管理される。リモートサーバは、ナビゲーション装置に現在インストールされているナビゲーションコンテンツ、ユーザ又は装置の権限、あるいは他のパラメータに依存してナビゲーションコンテンツを提供するのが好ましい。従って、更新されたナビゲーションコンテンツはリモートサーバにおいて個々の要望に応じて変更されてもよく、ナビゲーション装置又はナビゲーション装置を管理するコンピュータプログラムの複雑さを軽減する。
【0061】
一実施形態は、ナビゲーション装置に格納された現在のナビゲーションコンテンツを更新する通信装置を提供する。通信装置は、現在のナビゲーションコンテンツを示す情報をナビゲーション装置から検索する検索エレメント(retrieving element)と、現在のナビゲーションコンテンツを示す情報を通信ネットワークを介してリモートネットワーク装置に送信する送信機と、更新されたナビゲーションコンテンツをリモート通信装置から受信する受信機と、更新されたナビゲーションコンテンツに関する情報を表示するか又は更新されたナビゲーションコンテンツをナビゲーション装置にインストールするプロセッサとを具備する。
【0062】
更なる一実施形態によると、検索エレメントは、装置ID又はユーザIDを示す情報をナビゲーション装置から検索し得る。ここで、送信機はユーザIDの装置をリモート通信装置に送信することができる。
【0063】
更なる一実施形態によると、送信機は、現在のナビゲーションコンテンツを示す情報をメタデータとして又はコンテンツファイルのテーブルとして送信してもよい。
【0064】
更なる一実施形態によると、検索エレメントは、現在のナビゲーションコンテンツをナビゲーション装置から取得するためにナビゲーション装置に接続され得る。例えば、検索エレメント又は通信装置はナビゲーション装置に無線接続してもよい。別の実施形態によると、ナビゲーション装置又は通信装置は検索エレメントに有線接続可能であってもよいため、検索エレメントはナビゲーション装置に対する有線接続を開始してもよい(あるいは、その逆も可能である)。
【0065】
別の実施形態は、ナビゲーション装置に格納された現在のナビゲーションコンテンツを更新する方法を提供する。方法は、現在のナビゲーションコンテンツを示す情報をナビゲーション装置から検索することと、現在のナビゲーションコンテンツを示す情報を通信ネットワークを介してリモートネットワーク装置に送信することと、リモート通信装置から更新されたナビゲーションコンテンツを受信することと、更新されたナビゲーションコンテンツに関する情報を表示するか又は更新されたナビゲーションコンテンツをナビゲーション装置にインストールすることとを含むのが好ましい。
【0066】
別の実施形態によると、方法は、装置ID又はユーザIDを示す情報をナビゲーション装置から検索すること、あるいはユーザIDの装置をリモート通信装置に送信することを含む。
【0067】
別の実施形態によると、方法は、現在のナビゲーションコンテンツを示す情報をメタデータとして又はコンテンツファイルのテーブルとして送信することを含む。
【0068】
別の実施形態によると、方法は、ナビゲーション装置と関係付けられるユーザの権限を検証すること又は特定の更新されたナビゲーションコンテンツを取得するためにナビゲーション装置の権限を検証することを含む。
【0069】
別の実施形態によると、ナビゲーションコンテンツ又は更新されたナビゲーションコンテンツは、ルート情報、あるいは更新されたファームウェア又は地図情報を示す情報を含む。
【0070】
別の実施形態によると、更新されたナビゲーションコンテンツを示す情報は、特定のナビゲーションコンテンツが別のナビゲーションコンテンツより高い優先順位を有することを示す優先順位情報を含む。
【0071】
別の実施形態は、コンピュータ上で実行される場合に本発明の方法のうち少なくとも1つの方法を実行するコンピュータプログラムを提供する。
【発明を実施するための最良の形態】
【0072】
以下の図面に関して、本発明の更なる実施形態を説明する。
【0073】
図1は、プログラム可能に構成された第1の手段101と、プログラム可能に構成された第1の手段101に接続されるプログラム可能に構成された第2の手段103と、プログラム可能に構成された第1の手段105に接続されるプログラム可能に構成された第3の手段105とを具備する通信装置を示すブロック図である。
【0074】
プログラム可能に構成された第1の手段101は、存在しないネットワークアドレス、すなわち存在しないHTTPアドレスに特定のコマンドを送信するよう、プログラム可能に構成された第2の手段に要求する。これに応答して、プログラム可能に構成された第2の手段103は、特定のコマンドを送信するための要求に関してプログラム可能に構成された第3の手段105に通知する。要求を示す情報に応答して、プログラム可能に構成された第3の手段105は要求を示す情報に応答して特定のコマンドを実行する。
【0075】
例えば、プログラム可能に構成された第1の手段101は、プログラム可能に構成された第2の手段103により実行可能な第2のコンピュータプログラム(例えば、ウェブブラウザ)により提供される環境内で、Java(登録商標)スクリプト等の実行不可能なスクリプトを含む第1のプログラムを実行してもよい。
【0076】
第1のコンピュータプログラムが自身の代わりにコマンドを送出するために実行される環境(ウェブブラウザ及び推移的にユーザアプリケーション)を要求するため、プログラム可能に構成された第3の手段103は、コマンドを受信するユーザアプリケーション(ホームアプリケーション)等の第3のコンピュータプログラムを実行するのが好ましい。Java(登録商標)スクリプトがウェブページ上に存在し、第3のコンピュータプログラムと直接通信できないため、ウェブブラウザ(第2のコンピュータプログラム)は提供される。
【0077】
例えば上記概念は、ルート情報又はルート地図等のナビゲーションコンテンツを管理するために採用されてもよい。例えば第1のコンピュータプログラムは、リモートサーバ(アクティブページ等を含む)と第3のコンピュータプログラム(ホームクライアントアプリケーションを提供する)との間で通信を開始してもよい。例えばホームアプリケーション(又はリモートサーバ)は、音声、地図等を売るオンライン(ウェブ)ショップを含む。このウェブショップは、組み込みウェブブラウザを使用して実現されるのが好ましい。組み込みブラウザは、そのショップを表すウェブページをダウンロードするようにホームアプリケーションにより命令される。更に、ウェブショップのページはJava(登録商標)スクリプトを含んでもよいため、ダウンロードされたページはいわゆるAJAX技術等を使用してリモートサーバと通信できる。しかし、特定の時に、ページ上のJava(登録商標)スクリプトは特定のコマンドをホームアプリケーションクライアントに与える必要がある。コマンドの一例は、ユーザがウェブショップで音声を購入した後の「download this voice」である。Java(登録商標)スクリプトはクレジットカード処理を実現できるが、ナビゲーション装置等への実際のダウンロード及びインストールはできないため、コマンドを送出するか又はコマンドを送出するように要求を送出する。
【0078】
コマンドは、まず特別な要求を作成し(例えば、ショップのウェブページ上にJava(登録商標)スクリプトで)、その要求を存在しないアドレス(例えば、http://ttds)に送出することにより、ホームアプリケーションクライアントに送出される。ウェブブラウザ(例えば、組み込みウェブブラウザ)は、そのブラウザのホストであるホームクライアントアプリケーションに対して要求に関する通知を行なう。ホームクライアントは、http://ttds等のアドレスが存在しないことを認識しているため、例えばコマンドを抽出して実行する。更なる処理を高速化するために、http://ttdsへのダミーの要求は取り消されてもよい。
【0079】
地図及び音声のようなナビゲーションコンテンツ等をダウンロードすることに加え、ホームクライアント(第3のコンピュータプログラムにより提供される)は、例として、より多くのウェブページ(例えば、第2のショップのページ)を開くか又は閉じ、ポップアップメッセージを示し、ホームアプリケーション内の特定のウィンドウ(例えば、音声をダウンロードした後に有用なInstall-To-Device)に切り替え、新しいホームアプリケーションバージョンをチェックし、装置ファームウェアへの更新をチェックし、ナビゲーションコンテンツへの更新をチェックし、ナビゲーション装置をエミュレートするエミュレータへの更新をチェックし、あるいはユーザ証明を要求及び送出するように指示される。
【0080】
図2は、統一資源識別子(URI)を表す文字列の中の特定のコンピュータコマンドを検出する処理装置を示すブロック図である。特定のコマンドは事前定義済みコマンドヘッダを含んでもよく、複数の事前定義済みコマンド名のうち1つのコマンド名及びオプションとして1つ以上のコマンド引数がそのコマンドヘッダの後に続く。処理装置は、文字列が事前定義済みコマンドヘッダを含むかを判定する判定部201と、判定部201に接続される提供部203とを具備する。判定部は、文字列が事前定義済みコマンドヘッダを含む場合に、コマンドヘッダに後続する部分文字列がコマンド名を含むかを判定するように更に構成される。提供部203は、コマンドヘッダが特定のコンピュータコマンドとしてコマンド名を含む場合に、事前定義済みコマンドヘッダ及びコマンド名を提供する。
【0081】
一例として、図2に示される概念はコンピュータプログラム(実行可能な)を使用して実現されてもよい。更に、URIに関する説明はURL(統一資源識別子)にも当てはまる。
【0082】
URIに関して、同一のURIは、ウェブページ上又は電子メールにおけるハイパーリンクの「対象」としても使用される。この場合、URIは例えばそのようなハイパーリンクをクリックすることにより起動されてもよい。更に、ウェブページに埋め込まれたJava(登録商標)スクリプトプログラムからURIを使用することが可能である。しかし、コンピュータ等にローカルにインストールされた他のプログラムもそのようなURIを使用できる。例えば、電子メールアドレス帳プラグインはこのURIを使用して、電子メールプログラムからPC等にインストールされているホームアプリケーションにアドレスを送出できる。
【0083】
例えば、ホームアプリケーション(例えば、ナビゲーションコンテンツを管理する)はアプリケーション自体のUIを提供する。しかし、更なるコンテンツはホームアプリケーション外に格納されるナビゲーションの目的で使用される。例えば、電子メールプログラムはワールドワイドウェブのような複数のアドレスを含むアドレス帳を含む。ホームクライアントがそれらを利用する場合、電子メールプログラムは有用である。他のユーザは、そのようなアクセスを可能にする要望に合わせた〈header〉:///URI方式を実現できるホームアプリケーションによるインストールを可能にする形式でワールドワイドウェブ上にナビゲーションコンテンツを提供することに興味を持つ可能性がある。
【0084】
RFC3986により規定されるURI方式は、複数のプロトコルが実現可能なフレームワークを規定する。現在のオペレ−ティングシステムにより、アプリケーションは所定のプロトコルを使用してURIに対する設計されたハンドラとして自身を登録できる。例えば上述の第3のコンピュータプログラムにより提供されるホームアプリケーション(ホームクライアント)は、〈header〉:///で開始するURIに対するハンドラとして自身を登録する。
【0085】
URIの残りの部分は、ホームクライアントにおいてcommand-listとして使用される。この方法を使用すると、「Amsterdam, Rembrandtplein 35」のようなアドレスは、例えば〈header〉:///Address?Amsterdam&Rembrandtplein&35に符号化される。
【0086】
ここで、文字「?」及び「&」はオプションであり、他の事前定義済みの文字又は文字列に置換できる。
【0087】
URIをサポートするホームクライアント以外の任意のアプリケーションは、URIに遭遇すると、URIを解決するようにオペレーティングシステム(OS)に要求してもよい。次にOSは、ユーザが「Address?Amsterdam&Rembrandtplein&35」を使用しようとしていることをホームクライアントに通知する。その後、ホームクライアントはアドレスを使用して行なうことに関する選択肢のリストをユーザに提供する。しかし、アドレスが使用できるナビゲーションタスクは複数存在する。
【0088】
同一の方法を使用し、「http://shop.〈ウェブアドレス〉/voices/dutch/bram.toc」がオランダ語の音声であると仮定すると、以下のURIを作成できる:
〈header〉:///Install?http%3a%2f%2fshop.〈ウェブアドレス〉%2fvoices%2fdutch%2fbram.toc
【0089】
そのようなURIがウェブページ上に現れ、ユーザがそれをクリックした場合、ウェブブラウザはそれを転送するようにOSに要求してもよい。OSは、Install?http%3a%2f%2fshop.〈ウェブアドレス〉%2fvoices%2fdutch%2fbram.tocにより表される動作を行なうようにホームクライアントに要求する。この場合、その動作は所定のアドレスからbram.toc(コンテンツのテーブル)をダウンロードすることである。
【0090】
以下において、コマンドの形式の仕様を説明する。
【0091】
一般的なURL形式(RFC3986に準拠してもよい)を参照すると、コマンドは以下の構造を有してもよい:
〈header〉:///command-list
ここで、
command-list = command['#'command]+
command = command-name '?' argument-list
command-name = (サポートされるコマンド名、以下を参照)
argument-list = UrlEncode(argument)['&'argument-list]+
argument = UTF8-string
である。
【0092】
従来のURL形式を参照すると、コマンドは以下の構造を有してもよい:
〈header〉://legacy-command-list
ここで、
legacy-command-list = legacy-command['&'legacy-command]+
legacy-command = command-name'('legacy-argument-list')'
legacy-argument-list = UrlEncode(argument)[','legacy-argument-list]+
である。
【0093】
従来のURLは文字「?」を含むことができないが、独持のURL(proper URLs)は常にこれを含む。これにより、URLを区別することが可能になる。尚、それらURLはRFCに準拠していない。多くのURL処理エンティティは、処理中にURLを変更する。特に、多くのウィンドウズ(登録商標)ウェブブラウザはURLを適合させようとする際に余分な「/」を追加する。ウェブブラウザの中にはそれらURLを全くサポートしないものもある。ホームアプリケーションは、広範囲のURL対応アプリケーションに対処するために不完全なURLを解釈しようとするが、従来のURL形式を使用することにより、その方法は更に複雑になる。
コマンドは、以下の構造及び引数を有してもよい:
構造:EMailContact?folder-ID&entry-ID
引数:電子メール連絡先ID
【0094】
ホームアプリケーションは、電子メールプログラムから連絡先データを検索し、そのデータを使用して行なうこと(地図上に表示、ナビゲーション、お気に入りとして追加等)をユーザに問い合わせる。
【0095】
構造:Address?city&street&number
引数:アドレスデータ
【0096】
ホームアプリケーションは、そのアドレスを使用して行なうこと(地図上に表示、ナビゲーション、お気に入りとして追加等)をユーザに問い合わせる。
【0097】
構造:ShowOnMap?city&street&number
引数:アドレスデータ
【0098】
city及びstreetの少なくとも一方は空であってはならない。
【0099】
構造:NavigateTo?city&street&number
引数:アドレスデータ
【0100】
city及びstreetの少なくとも一方は空であってはならない。
【0101】
構造:AddFavourite?favourite-name&city&street&number
引数:お気に入りの名前及びアドレスデータ
【0102】
city及びstreetの少なくとも一方は空であってはならない。
【0103】
Install?URL
引数:装置が接続される場合にダウンロード及びインストールする項目に対するTOC記述のHTTP URL
【0104】
URLにより示されるリソースはMIME型の「text/xml」を有する。
【0105】
TOC(コンテンツのテーブル)形式は、ファイル「TOC format.xsd」においてXML方式等により特定されてもよい。
【0106】
以下の種類の項目はユーザ(例えば、第三者)によりインストールされる:POI(地点情報)データセット、音声、配色。
【0107】
構造:Execute?URL
引数:実際のcommand-listを含むテキストファイルのHTTP URL
【0108】
URLにより示されるリソースはMIME型の「text/plain」を有する。
【0109】
このコマンドは、例えばコマンドをURLの一部として渡すことによりURLが長くなりすぎる場合に使用される。
【0110】
Execute() command-nameがlegacy-commandにおいて使用される場合、URLはそれに応答してlegacy-command-listを提供してもよい。
【0111】
構造:SwitchTab?Tabname
引数:サーバが作成したタブ名
【0112】
ホームアプリケーションは、そのタブが存在する場合はそのタブに切り替える。存在しない場合、ホームアプリケーションはその名前を記憶し、サーバがタブを作成するとそのタブに切り替える。ホームアプリケーションは1つの名前のみを記憶する。すなわち、第2のSwitchTabコマンドは第1のコマンドと置換される。
【0113】
構造:〈ユーザ又はホスト名〉Page?Tabname&hostname&URL-path&anchor
引数:新しく作成されたタブのタブ名、ホスト名、パス(ホスト名に対する)及びURLアンカー
【0114】
ホームアプリケーションは、所定のタブ名を有するタブが存在するかをまずチェックするか、又はタブを作成する。このタブは、http://hostname.〈ウェブアドレス〉/URL-path#anchorに設定されたURLを有する。
【0115】
ホームアプリケーションは、英数字でない文字を有するホスト名を拒否してもよく、それにより名前の挿入を防止する。例えば、ホスト名「badguys.com/ignore」は、「.」及び「/」が無効であるため拒否されてもよい。
【0116】
以下に対処されるように、コマンドはコマンドの検証を可能にする暗号署名を提供されてもよい。例えば、以下のコマンド構造が使用できる:
構造:〈PublicKeyIdentifier〉?command-list&signature
引数:command-list及び署名
【0117】
このコマンドは、ユーザによってのみ実行されるコマンドのリストを実行するために使用される。署名は、command-listの信憑性を確認する。
signature = Sign〈PrivateKey〉(command-list)
尚、任意のユーザが署名を検証できる(公開鍵を使用して)。
【0118】
Sign〈PrivateKey〉(command-list)は以下のように実現されてもよい:
コマンドリストは、UTF8文字列であるため、バイトシーケンスとして表現可能である。コマンドリストは、Sign〈PrivateKey〉の入力として使用される場合にURL符号化されない。
【0119】
符号化方式を参照すると、このバイトシーケンスのSHA−256ハッシュHが計算される(256ビット)。更に秘密鍵(Q, M)を使用して、署名値(QH modulo M)が計算される。署名は、バイトのBase64符号化リトルエンディアンシーケンスとして格納される(パディングは要求も追加もされず、URLを短く保持する)。全ての引数と同様に、command-list及び署名引数はURL符号化される。〈PublicKeyIdentifier〉()command-nameがlegacy-commandにおいて使用される場合、第1の引数はlegacy-command-listであるのが好ましい。
【0120】
暗号復号は逆の処理である。すなわち、ホームアプリケーションは公開鍵(P, M)を保持する。command-listのSHA−256ハッシュH(URL復号化の後)が計算される(256ビット)。公開鍵(P, M)を使用して、カウンタ署名(PH modulo M)が計算される。署名は、(QH modulo M)を得るためにBase64復号され、積(PH×QH) modulo Mが計算される。署名は、カウンタ署名に一致した場合に受け入れられ、これは(PH×QH) modulo M = 1であることを意味する。
【0121】
上記概念は、コマンド引数が存在しない場合にも適用可能である。更に、コマンド名はセマンティックを引数に割り当てる複数のパラメータを含んでもよい。例えば、位置表記法及び名前表記法と呼ばれる2つの可能な方法で全ての引数をパラメータと一致させてもよく、これはプログラミング言語の機能呼出し構文に類似する。
【0122】
位置構文を参照すると、コマンド名が例えば3つのパラメータを有し、3つの引数が提供される場合、第1のパラメータを第1の引数と一致させる。例えば、アドレスコマンドが3つのパラメータ、City、Street及びHouseNumberを有する。実際のURLは3つの引数を含み、第1の引数はCityの名前と解釈される。
【0123】
あるいは、以下の構文がサポートされてもよい:
Address?Street = RembrandtPlein&City = Amsterdam
この場合、全ての引数はパラメータ名を含む。従って、それら引数は「名前付き」引数として周知である。
【0124】
更に、上記パラメータは必須のパラメータとして指定される。これは、一致する引数が必ず存在することを意味する。例えば「?」の代わりに他のパラメータが使用され、コマンド名とコマンド引数との間の区切りを示してもよい。更に、固定長のコマンド名を要求するような他の機構(その位置の後の第1の文字が第1のコマンド引数を開始することを示す)が採用されてもよい。
【0125】
一般に、〈header〉:///URIは1つ以上のコマンドを含んでもよい。従って、文字「#」(又は「and」等の任意の他の文字)がコマンドを連結するために使用されてもよい。
【0126】
図3は、ナビゲーション装置にインストールされた装置ファームウェアプログラムの実行に応答してナビゲーション装置の挙動をエミュレートする通信装置を示すブロック図である。通信装置は、装置ファームウェアプログラムに関する情報を提供する提供部(provider)301と、通信装置にインストールされた現在のファームウェアプログラムがナビゲーション装置にインストールされた装置ファームウェアプログラムに対応するかを判定し且つ提供部301に接続される判定部303と、現在のファームウェアプログラムが装置ファームウェアに対応する場合にナビゲーション装置の挙動をエミュレートするために通信装置上で現在のファームウェアプログラムを実行し且つ判定部303に接続されるプロセッサ305とを具備する。
【0127】
通信装置は、プログラム可能に構成され、エミュレート処理を制御できる上記ホームアプリケーションを実行するように構成される。
【0128】
エミュレートの概念は、ナビゲーション装置の有用性及び可搬性を更にサポートする。通常、(ポータブル)ナビゲーション装置は、入力としての役割も果たす小さな画面等を有する。これに対して、例えば(デスクトップ)コンピュータ(例えば、PC)は、非常に大きな画面及びより高度な入力方法を有する。従って、ナビゲーション装置が例えばナビゲーション装置に接続可能なコンピュータにより制御される場合、ナビゲーション装置上で実行される多くのタスクはより容易に行なわれる。更に、コンピュータのプロセッサ(例えば、CPU)はより高速でもある。
【0129】
また、コンピュータ(通信装置の一実施形態を表す)等がより有能なコンピュータリソースを使用してナビゲーション装置を制御することを効果的に可能にするために、エミュレートの概念は、プログラム可能に実現され且つ例えばホームアプリケーションに組み込まれてもよい。
【0130】
ナビゲーション装置がホームクライアント(又は通信装置)に接続される場合、ナビゲーション装置にインストールされたファームウェアバージョンが判定される。ホームクライアントがコンピュータと等価のファームウェアバージョンを有する場合、そのファームウェアが開始される。等価のバージョンが利用可能でないがネットワーク接続(例えば、インターネット接続)が利用可能である場合、ホームクライアントは、等価のバージョンが何であるか及びどこでそれをダウンロードできるかをホームサーバに問い合わせてもよい。
【0131】
図4は、更なるネットワークエンティティから、ネットワークエンティティに特定の情報を提供する方法を示す。方法は、通信ネットワークを介してネットワークエンティティから更なるネットワークエンティティに特定の情報に対する要求を送信すること(401)と、通信ネットワークを介して更なるネットワークエンティティからネットワークエンティティに時間情報を送信すること(403)とを含む。時間情報は、特定の情報を取得するために更なるネットワークエンティティに接続する特定の時点を示す。方法は、例えば実行されると方法ステップを実行するソフトウェアで(例えば、ホームアプリケーションとして)実現されてもよい。
【0132】
例えば、ユーザは、特定の道路における交通日報(特定のユーザ別情報)をホームアプリケーションに要求できる。ホームアプリケーションは、毎日要求された時間に要求された道路における交通渋滞及び事故に関するレポートを示す。交通レポート要求がホームクライアントにおいて行なわれる場合、例えばクライアントは要求をサーバに即時に転送する。要求データは、所定のユーザのためにサーバに格納される。要求に応答して、サーバは、ホームクライアントがホームサーバをポーリングすべき時間を送出し返す。また、同一のユーザが再びログインした時、ホームサーバはサーバをポーリングする時間をホームクライアントに必ず知らせる。実際の交通レポートは、ポーリングレポートに反応してサーバにより送出される。ホームアプリケーションは、例えば表示する目的で交通レポートを形成する。その結果、全てのデータはサーバ側に格納されるが、接続はクライアントにより開始される。これにより、ホームクライアントは、コンピュータ上でソフトウェアプログラムとして実行される場合、ファイアウォール又はポップアップブロッカーがあるにも関わらず交通警告を示すことができる。
【0133】
ユーザ別情報等を取得するためにユーザ情報を判定する場合、ユーザにより手入力されるログイン証明が利用されてもよい。あるいは、ホームクライアントはそれら証明を事前に格納しておいてもよい。いずれにしても、ホームクライアントは、ログイン証明を有する場合、ソフトウェアプログラムにより提供されるホームクライアントが実行されると必ず自動的にそれら証明を送出してもよい。ホームクライアントが証明をまだ有していない場合、ユーザは手動でログインを開始できる。その場合、ホームクライアントは証明の入力を要求し、それらをリモートサーバに即時に送出し、後で使用するために格納する。
【0134】
図5は、コマンド名及び少なくとも1つのコマンド引数を含む暗号署名されたコマンドを提供する方法を示す。方法は、コマンド名の暗号署名を生成すること(501)と、コマンド名、署名及び少なくとも1つのコマンド引数を使用して暗号署名されたコマンドを構成(例えば、連結)すること(503)とを含む。
【0135】
例えば、図2の実施形態と関連して説明した暗号化方式及び復号方式は、デジタル署名を提供及び検証するために採用される。
【0136】
例えば、認証URIは、2つの引数を含むコマンドを含んでもよい。第1の引数は、コマンドである文字列である。第2の引数は、第1の引数の「デジタル署名」である。デジタル署名を提供する秘密鍵を使用して第1の引数に署名するために、標準の公開鍵暗号化が採用されるのが好ましい。例えば、一致する公開鍵を有するホームクライアントは、第1の引数にカウンタ署名してもよい。鍵が等しい場合、署名及びカウンタ署名は相補的である。鍵が等しい場合、ホームクライアントは第1のコマンドを信用し、第1の引数のコマンドが危険と考えられる場合でもそのコマンドを実行する。
【0137】
上述の認証URI機構は、ナビゲーション装置のファームウェアを更新するために使用されてもよい。この機構は、警告なしでコマンドをコピー又は更新することを許可されるが好ましい。従って、例えば不適切なファームウェアでナビゲーション装置を更新することは、ナビゲーション装置に修復不可能な害を与える原因になる可能性がある。
【0138】
一実施形態によると、署名されたコマンドは別のコマンド(暗号署名されたコマンド)の第1の引数として使用され、例えば署名は第2の引数として使用される。暗号署名されたコマンドの構造は、以下の通りであってもよい:
verify_command(commandname1(argument1, argument2, argument3), signature)
【0139】
認証されるべきコマンドに秘密鍵(private key, secret key)等を適用することにより、署名(外部コマンドに対する第2の引数)が生成され得る。すなわち:
commandname1(argument1, argument2, argument3) + private_key = signature
【0140】
カウンタ署名を生成するために、同様のアルゴリズムが使用されてもよい:
commandname1(argument1, argument2, argument3) + public_key = countersignature
【0141】
署名及びカウンタ署名が互いに対応する場合、コマンドは検証される。RSA又はDSAアルゴリズム等の標準の公開鍵暗号化方法が署名の目的で採用されるのが好ましい。
【0142】
例えば、以下のコマンドが考慮される:
〈header〉:///〈PublicKeyIdentifier〉?Install%3fhttp%3a%2f%2fintranet%2fplus%2fdocuments%2ftemp%2fnavcore_6.522.7709.go510-go710.toc&JYrSIQ
ここで、〈PublicKeyIdentifier〉は、ユーザにより認証されるコマンドに対して使用される実際のcommand-nameである。また、第1の引数は以下の通りである:
Install%3fhttp%3a%2f%2fintranet%2fplus%2fdocuments%2ftemp%2fnavcore_6.522.7709.go510-go710.toc
【0143】
これは埋め込まれたコマンドである。実際のコマンド名はinstallであり、「?」は%3fに符号化され、残りはinstallコマンドの引数である。ユーザは秘密鍵を使用してinstallコマンドに署名し、得られた署名はJYrSIQであった。コマンドを検証するために、カウンタ署名が生成されてもよい。コマンドが正確に署名された場合、カウンタ署名は一致する。
【0144】
別のユーザが〈header〉:///〈PublicKeyIdentifier〉?Install%3fhttp%3a%2f%evil.com%2fnavcore_6.522.7709.go510-go710.toc&JYrSIQ等のコマンドを編集しようとする場合、異なるカウンタ署名が計算され、それは署名と一致しない。evil.comからのコンテンツのインストールは拒否される。
【0145】
図6は、ナビゲーション装置に格納された現在のナビゲーションコンテンツを更新する通信装置を示す。通信装置は、現在のナビゲーションコンテンツを示す情報をナビゲーション装置から検索する検索部(retrieving element)601と、現在のナビゲーションコンテンツを示す情報を通信ネットワークを介してリモートネットワーク装置に送信し且つ検索部に接続される送信部603と、リモート通信装置から更新されたナビゲーションコンテンツを受信する受信部605と、更新されたナビゲーションコンテンツに関する情報を表示するか又はナビゲーション装置に更新されたナビゲーションコンテンツをインストールするプロセッサ607とを具備する。
【0146】
現在のナビゲーションコンテンツ又は更新されたナビゲーションコンテンツを示す情報は、コンテンツの種類、コンテンツ名、コンテンツの大きさ又はコンテンツのバージョン等を示すコンテンツファイルのテーブルとして送信されてもよい。更に、装置ID又はユーザIDに関する情報が送信されてもよい。
【0147】
リモート通信装置(例えば、サーバ)は、利用可能なナビゲーション項目(例えば、地図、ルート情報、GPSの位置等)のリスト等を格納するデータベースを具備してもよい。更にリモートサーバは、更新コンテンツを送信する前に、加入状況等によるユーザの権限又は装置ID等によるナビゲーション装置の権限をチェックしてもよい。
【0148】
上述のように、コンテンツ情報は、TOCファイル(コンテンツのテーブル)に集約されてもよい。TOCファイルの例を以下に記述する:
〈Program〉
〈Id〉13214〈/Id〉
〈Version〉1.2〈/Version〉
〈Target〉target〈/Target〉
〈Name〉NameOfItem〈/Name〉
〈Preview〉http://download.〈download_address〉/somepreview.exe〈/Preview〉
〈Location〉http://download.〈ウェブアドレス〉/someitem.cab〈/Location〉
〈Size〉546484〈/Size〉
〈/Program〉
〈Map〉
〈Id〉8977〈/Id〉
〈Version〉1.2〈/Version〉
〈Target〉Thistarget〈/Target〉
〈Name〉Benelux〈/Name〉〈Category〉Category〈/Category〉
〈Preview〉http://download.〈download_address〉/mappreview.png〈/Preview〉
〈Location〉http://download.〈download_address〉/mapdownload.cab〈/Location〉
〈Icon〉http://download.〈download_address〉/mapicon.png〈/Icon〉
〈Size〉46464987〈/Size〉
〈InstallRestrictions DeviceId=“35265252”/〉
〈/Map〉
〈Voice language=“en” gender=“male”〉
〈Id〉4657〈/Id〉
〈Version〉1.1〈/Version〉
〈Name〉user_name〈/Name〉
〈Preview〉http://download.〈download_address〉/voicepreview.mp3〈/Preview〉
〈Location〉http://download.〈download_address〉/voicedownload.cab〈/Location〉
〈Size〉468797946231〈/Size〉
〈Picture〉http://〈download_address〉/voicepicture.png〈/Picture〉
〈Icon〉http://〈download_address〉/voiceicon.png〈/Icon〉
〈/Voice〉
〈Colorscheme〉
〈Id〉98797〈/Id〉
〈Version〉1.1〈/Version〉
〈Name〉Bright Black〈/Name〉
〈Location〉http://download.〈download_address〉/colordownload.cab〈/Location〉
〈Size〉6464〈/Size〉
〈/Colorscheme〉
〈Poi〉
〈Id〉65446〈/Id〉
〈Version〉1.3〈/Version〉
〈Name〉Wifi Hotspots〈/Name〉
〈Category〉Connectivity〈/Category〉
〈Location〉http://download.〈download_address〉/poidownload.cab〈/Location〉
〈Size〉54567〈/Size〉
〈/Poi〉
〈/Toc〉
【0149】
フィールド〈InstallRestrictions DeviceId=“35265252”/〉は、この項目のインストール可能性(〈Target〉要素とは別)に対する制約を特定する。これは、コンテンツを有さない。オプションの属性は、項目がその装置IDを有する装置にのみインストール可能であることを示すdeviceid(string)と、インストールされる項目に対してインストールされる必要のあるナビゲーションプログラムの最小バージョンを示すminNavigatorVersion(string)とである。
【0150】
図7は、コンピュータ等で実行する実行可能なアプリケーションプログラム701(スイートアプリケーション、ホームアプリケーション)との通信例を示すブロック図である。コンピュータは、図7に示すように情報を交換するために通信ネットワーク703を介してリモートサーバ705と通信する。サーバ707は、アプリケーションプログラム701により提供される要素をバルーンメッセージ707又はブラウザにおいて示すメッセージを提供してもよい。
【0151】
上述の実施形態における要素及び特徴の特定の組合せは単に例示である。それら教示を本発明/本出願及び参考として取り入れられている発明/出願における他の教示と交換及び置換することが明らかに考慮されている。当業者には認識されるように、本明細書で説明された例の変形、変更及び他の実現例は、請求される本発明の趣旨の範囲から逸脱せずに当業者により行なわれる。従って、上述の説明は単なる例であり、制限することを意図していない。本発明の範囲は、以下の請求の範囲及びそれらの等価物で規定される。更に、本明細書で使用される図中符号及び請求の範囲は、請求されるような本発明の範囲を制限するものではない。
【図面の簡単な説明】
【0152】
【図1】通信装置を示すブロック図である。
【図2】処理装置を示すブロック図である。
【図3】通信装置を示すブロック図である。
【図4】特定の情報を提供する方法を示すフローチャートである。
【図5】暗号署名されたコマンドを提供する方法を示すフローチャートである。
【図6】ナビゲーションコンテンツを更新する通信装置を示すブロック図である。
【図7】通信例を示すブロック図である。

【特許請求の範囲】
【請求項1】
コマンド名及び少なくとも1つのコマンド引数を含む暗号署名されたコマンドを提供する方法であって、
前記コマンド名の暗号署名を生成し(501)、
前記コマンド名、前記暗号署名及び前記少なくとも1つのコマンド引数を使用して前記暗号署名されたコマンドを構成する(503)ことを有する方法。
【請求項2】
前記暗号署名されたコマンドを構成する(503)ために、前記コマンド名、前記コマンド名の前記暗号署名及び前記少なくとも1つのコマンド引数を連結することを含む請求項1に記載の方法。
【請求項3】
非対称暗号化アルゴリズム、特にRSAアルゴリズムに基づくか又はデジタル署名アルゴリズムに基づいて前記コマンド名の前記暗号署名を生成すること(503)を含む請求項1又は2に記載の方法。
【請求項4】
前記コマンド名は、前記少なくとも1つのコマンド引数により判定される目的地までのナビゲーションルートを判定することか、あるいは前記少なくとも1つのコマンド引数により示されるアドレスデータにより判定されるナビゲーション地図を提供することか又は前記少なくとも1つのコマンド引数を含むコンピュータプログラムを実行することを示す請求項1から3のいずれか1項に記載の方法。
【請求項5】
コマンド名、前記コマンド名の暗号署名及び少なくとも1つのコマンド引数を含む暗号署名されたコマンドに基づいて暗号化検証されたコマンドを提供する方法であって、
前記暗号署名を復号化して第1の暗号化値を取得し、
前記コマンド名を処理して第2の暗号化値を取得し、
前記第1の暗号化値及び第2の暗号化値を比較して比較結果を取得し、
前記比較結果に依存して前記コマンド名及び前記少なくとも1つのコマンド引数を前記暗号化検証されたコマンドとして提供又は実行することを有する方法。
【請求項6】
前記第1の暗号化値は前記暗号署名のハッシュ値を含み、前記第2の暗号化値は前記コマンド名のハッシュ値を含む請求項5に記載の方法。
【請求項7】
前記第1の暗号化値及び前記第2の暗号化値が等しい場合に前記暗号化検証されたコマンドを提供又は実行することを含む請求項5又は6に記載の方法。
【請求項8】
コマンド名及び少なくとも1つのコマンド引数を含む暗号署名されたコマンドを提供する装置であって、
前記コマンド名の暗号署名を生成する生成器と、
前記コマンド名、前記暗号署名及び前記少なくとも1つのコマンド引数を使用して前記暗号署名されたコマンドを構成する構成器とを具備する装置。
【請求項9】
コマンド名、前記コマンド名の暗号署名及び少なくとも1つのコマンド引数を含む暗号署名されたコマンドに基づいて暗号化検証されたコマンドを提供する装置であって、
前記暗号署名を復号化して第1の暗号化値を取得する復号器と、
前記コマンド名を処理して第2の暗号化値を取得するプロセッサと、
前記第1の暗号化値及び前記第2の暗号化値を比較して比較結果を取得する比較器と、
前記比較結果に依存して前記コマンド名及び前記少なくとも1つのコマンド引数を前記暗号化検証されたコマンドとして提供又は実行する提供器とを具備する装置。
【請求項10】
請求項1から7のいずれか1項に記載の方法を実行するように構成されるプログラム可能に構成された装置。
【請求項11】
コンピュータ上で実行される場合に請求項1から7のいずれか1項に記載の方法を実行するコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2009−529817(P2009−529817A)
【公表日】平成21年8月20日(2009.8.20)
【国際特許分類】
【出願番号】特願2008−557675(P2008−557675)
【出願日】平成19年3月8日(2007.3.8)
【国際出願番号】PCT/EP2007/002078
【国際公開番号】WO2007/101701
【国際公開日】平成19年9月13日(2007.9.13)
【出願人】(307043223)トムトム インターナショナル ベスローテン フエンノートシャップ (144)
【Fターム(参考)】