(57)【要約】【課題】主通信系統と副通信系統との２系統の通信機能を備えた端末装置での通信管理を行う。【解決手段】携帯電話機などの端末装置２００に、電話回線などの主通信路αとＢｌｕｅｔｏｏｔｈ  などの規格に基づく副通信路βとを設ける。プログラム格納部１４０内のプログラムＡＰ１に、端末ＩＤに基づいて生成されたアプリケーションＩＤと、論理処理プログラムＬＧ１，ＬＧ２と、を埋め込んだ上で、これをアプリケーション格納部２４０へダウンロードし、その利用期限を示す期限情報とプログラムＬＧ１に基づいて生成された第１のキーＫＥＹ１とをアプリケーション認証部２２０へダウンロードする。アプリケーション実行部２３０でプログラムＡＰ１を起動する際には、第１のキーＫＥＹ１および起動回数のカウント値にプログラムＬＧ２を作用させて第２のキーＫＥＹ２を生成し、アプリケーション認証部２２０側で生成した第２のキーＫＥＹ２との一致照合を行う。【選択図】        図１
2004362401.tif 000002
【特許請求の範囲】
【請求項１】
主通信系統と副通信系統との少なくとも２系統の通信機能をもった複数の端末装置と、各端末装置に対して前記主通信系統を介して情報通信を行う機能をもった管理装置と、を備える通信システムであって、
前記管理装置には、
各端末装置を識別するための端末ＩＤを格納した端末ＩＤ格納部と、
端末装置に提供するための複数のアプリケーションプログラムと、第１のアルゴリズムに基づく所定の論理処理を施すことにより入力データに対して一義的に定まる出力データを生成する第１の論理処理プログラムと、第２のアルゴリズムに基づく所定の論理処理を施すことにより入力データに対して一義的に定まる出力データを生成する第２の論理処理プログラムと、を格納したプログラム格納部と、
特定の端末装置についての端末ＩＤを前記端末ＩＤ格納部から読み出し、読み出した端末ＩＤに基づいて、前記アプリケーションプログラムに埋め込むべきアプリケーションＩＤを生成するアプリケーションＩＤ生成部と、
アプリケーションプログラムの利用期限を示す期限情報を生成する期限情報生成部と、
前記アプリケーションＩＤ生成部で生成された所定のアプリケーションＩＤと、前記期限情報生成部で生成された所定の期限情報と、を入力データとして、前記第１の論理処理プログラムを実行することにより得られる出力データを、第１のキーとして生成する第１のキー生成部と、
前記プログラム格納部に格納されている特定のアプリケーションプログラムに、「特定の端末装置についての端末ＩＤを用いることにより前記アプリケーションＩＤ生成部によって生成された特定のアプリケーションＩＤ」と、「前記第１の論理処理プログラム」と、「前記第２の論理処理プログラム」と、を埋め込む埋込処理を実行することにより、前記特定の端末装置用の固有のアプリケーションプログラムを生成する埋込処理部と、
前記特定の端末装置に対して、「前記埋込処理済みのアプリケーションプログラム」と、「当該アプリケーションプログラムの有効期限を示す期限情報」と、「当該期限情報と当該アプリケーションプログラムに埋め込まれているアプリケーションＩＤとによって生成された第１のキー」と、を前記主通信系統を介して送信する対端末通信部と、
が設けられており、
各端末装置には、
前記管理装置の前記対端末通信部に対して、前記主通信系統を介して通信を行う主通信部と、
所定の外部機器に対して、前記副通信系統を介して通信を行う副通信部と、
前記管理装置から送信されてきたアプリケーションプログラムを格納するアプリケーション格納部と、
前記アプリケーション格納部に格納されているアプリケーションプログラムを実行するアプリケーション実行部と、
前記アプリケーション実行部の実行対象となるアプリケーションプログラムが、前記管理装置から送信されてきた正規かつ有効期限内のプログラムであることを認証する機能を有し、正しい認証が行われたアプリケーションプログラムについてのみ、前記副通信部による通信を許可する処理を行うアプリケーション認証部と、
が設けられており、
前記アプリケーション実行部には、
実行対象となるアプリケーションプログラムに埋め込まれていたアプリケーションＩＤ、前記第１の論理処理プログラム、前記第２の論理処理プログラム、をそれぞれ抽出する処理機能と、
抽出したアプリケーションＩＤと前記アプリケーション認証部から与えられた期限情報とを入力データとして、前記第１の論理処理プログラムを実行することにより得られる出力データを、第１のキーとして生成する処理機能と、
アプリケーションプログラムの実行のたびに異なる値を示す性質をもった所定のカウント値を逐次計数する処理機能と、
生成された第１のキーと計数されたカウント値とを入力データとして、前記第２の論理処理プログラムを実行することにより得られる出力データを、第２のキーとして生成し、これを前記アプリケーション認証部へ与える処理機能と、
が備わっており、
前記アプリケーション認証部には、
前記管理装置から送信されてきた期限情報を前記アプリケーション実行部に与える処理機能と、
前記カウント値を逐次計数する処理機能と、
前記管理装置から送信されてきた第１のキーと計数されたカウント値とを入力データとして、前記第２の論理処理プログラムを実行することにより得られる出力データを、第２のキーとして生成する処理機能と、
この生成した第２のキーと、前記アプリケーション実行部から与えられた第２のキーと、が一致し、かつ、前記期限情報によって示される期限がまだ経過していない場合に、正しい認証が行われたものと判断する処理機能と、
が備わっていることを特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムにおいて、
アプリケーション認証部に、端末装置内に格納されている端末ＩＤを認識する機能と、認識した端末ＩＤをアプリケーション実行部に与える機能とをもたせ、
アプリケーション実行部およびアプリケーション認証部において第２のキーを生成する際に、第１のキーおよびカウント値に加えて、更に、端末ＩＤを入力データとして、第２の論理処理プログラムを実行し、得られる出力データを第２のキーとすることを特徴とする通信システム。
【請求項３】
請求項１または２に記載の通信システムにおいて、
アプリケーションＩＤ生成部が、端末ＩＤと所定の秘密コードとを用いて、アプリケーションＩＤを生成することを特徴とする通信システム。
【請求項４】
請求項１〜３のいずれかに記載の通信システムにおいて、
第１のアルゴリズムおよび第２のアルゴリズムとして、入力データに基づいて出力データを求めることは可能であるが、逆に、出力データに基づいて入力データを求めることは不可能であるような一方向性関数を用いた演算を行うことを特徴とする通信システム。
【請求項５】
請求項１〜４のいずれかに記載の通信システムにおいて、
アプリケーションプログラムを実行することによりカウントアップする性質をもった所定のカウント値として、アプリケーションの起動回数に応じたカウント値を用いることを特徴とする通信システム。
【請求項６】
請求項１〜４のいずれかに記載の通信システムにおいて、
アプリケーションプログラムを実行することによりカウントアップする性質をもった所定のカウント値として、アプリケーションが副通信系統を介して行った通信の回数もしくはデータ量に応じたカウント値を用いることを特徴とする通信システム。
【請求項７】
請求項１〜６のいずれかに記載の通信システムにおいて、
主通信系統が端末装置と管理装置との間に確保された専用通信回線を用いた通信を行い、副通信系統が端末装置と外部機器との間でＢｌｕｅｔｏｏｔｈ規格を用いた通信を行う機能を有することを特徴とする通信システム。
【請求項８】
請求項１〜７のいずれかに記載の通信システムにおいて、
副通信系統を利用した通信機能をもつアプリケーションプログラムについては、アプリケーション認証部からの起動許可が与えられた場合にのみ起動するように構成したことを特徴とする通信システム。
【請求項９】
請求項８に記載の通信システムにおいて、
アプリケーション認証部が、副通信部の通信機能を制御する機能を有し、正しい認証が行われたアプリケーションプログラムが起動中のときにのみ、副通信部による通信が許可されるような制御を行うことを特徴とする通信システム。
【請求項１０】
請求項９に記載の通信システムにおいて、
副通信部の通信機能を制御する機能が、物理層より上で、アプリケーション層よりも下のネットワーク階層を利用して実行されることを特徴とする通信システム。
【請求項１１】
請求項１〜１０のいずれかに記載の通信システムにおいて、
埋込処理部が、アプリケーションＩＤおよび各論理処理プログラムをアプリケーションプログラムへ埋め込む処理を行う際に、埋込対象の露見を防ぐための隠蔽処理を実行することを特徴とする通信システム。
【請求項１２】
請求項１〜１１のいずれかに記載の通信システムにおいて、
アプリケーションプログラムによる副通信系統を利用した通信が、アプリケーション認証部を仲介して行われるように構成し、
アプリケーション認証部に、仲介した通信データを監視することにより、外部機器との間で行われた通信履歴を取得する機能を設け、
取得した通信履歴を記録する通信履歴記録部を、端末装置内に更に設けるようにしたことを特徴とする通信システム。
【請求項１３】
請求項１２に記載の通信システムにおいて、
通信履歴記録部に、個々のアプリケーションごとに、それぞれ通信データの量を示す通信履歴を記録するようにしたことを特徴とする通信システム。
【請求項１４】
請求項１〜１３のいずれかに記載の通信システムにおいて、
端末ＩＤとして、主通信系統を介して主通信部へのアクセスを行うためのアクセスコードもしくは副通信系統を介して副通信部へのアクセスを行うためのアクセスコードを用いることを特徴とする通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信システムに関し、特に、主通信系統と副通信系統との少なくとも２系統の通信機能をもった複数の端末装置と、各端末装置に対して主通信系統を介して情報通信を行う機能をもった管理装置と、を備える通信システムに関する。
【０００２】
【従来の技術】
通信用端末装置の機能向上により、主通信系統と副通信系統との２系統の通信機能をもった通信用端末装置が普及しつつある。たとえば、一般的な携帯電話は、従来、電話回線を介した主通信系統を用いた通信機能しか有していなかったが、今後は、Ｂｌｕｅｔｏｏｔｈ  などの近距離無線通信用の規格に基づいた副通信系統を用いた通信機能が付加された携帯電話の普及が予想されている。また、ＰＤＡやノート型パソコンなどの端末装置にも、電話回線を介した主通信系統を用いた通信機能と、Ｂｌｕｅｔｏｏｔｈ  などの副通信系統を用いた通信機能とが組み込まれることが予想される。
【０００３】
これらの通信用端末装置は、通常、複数のアプリケーションプログラムを格納する機能を有し、そのうちの所望のアプリケーションプログラムを起動して実行する機能を有している。ユーザは、この端末装置の通信機能を利用して、所定のサーバに接続し、所望のアプリケーションプログラムをダウンロードして利用することが可能である。もっとも、実用上は、アプリケーションプログラムに利用料などを課金する便宜上、ダウンロードしたアプリケーションプログラムを起動する際には、ユーザが当該プログラムを利用する正規の権限を有しているか否かを認証する認証処理が行われるのが一般的である。たとえば、下記の特許文献１には、ダウンロードしたアプリケーションプログラムを利用する際の認証を行う方法が開示されている。
【特許文献１】
特開２００１−３１２３２４号公報
【０００４】
【発明が解決しようとする課題】
上述したような主通信系統と副通信系統との２系統の通信機能をもった端末装置をユーザに所持させ、個々のユーザ間の通信サービスを提供する事業を行う場合、主通信系統を介したユーザ間の通信履歴は、容易に捕捉することができ、この通信履歴に基づいて、課金処理を行うことができるし、通信自体を制限することもできる。ところが、ユーザが副通信系統を介して何らかの通信を行った場合、何らかの手段を講じておかないと、通信履歴を捕捉することはできず、これを制限することもできなくなる。
【０００５】
たとえば、Ｂｌｕｅｔｏｏｔｈ  規格に基づく通信機能をもった携帯電話の場合、ユーザが、主通信系統となる電話回線を利用した通信を行うと、当該通信は、通信事業者の管理下にある基地局を経由することになるので、ユーザの通信履歴を捕捉することが可能であり、必要があれば当該通信を制限することも可能である。ところが、ユーザが、副通信系統となるＢｌｕｅｔｏｏｔｈ通信装置を利用した通信を行った場合、当該通信は、通信事業者の管理下にある基地局を経由しないので、ユーザの通信履歴を捕捉したり、当該通信を制限したりするためには、当該副通信系統を利用した通信機能をもつアプリケーションプログラム側に、何らかの手段を講じておく必要がある。
【０００６】
しかしながら、アプリケーションプログラムの認証を行う技術自体は、上記特許文献１に開示されているように、種々の方法が提案されているが、現在のところ、２系統の通信機能をもった端末装置において、副通信系統を利用した通信制御を効率的に行う方法は確立されていない。特に、従来のアプリケーションプログラムの認証手法では、副通信系統を利用する正規のアプリケーションプログラムを、ある特定のユーザだけに、ある特定の期間のみ利用させる、というような管理を効率的に行うことはできない。
【０００７】
そこで本発明は、主通信系統と副通信系統との少なくとも２系統の通信機能をもった端末装置に、副通信系統を利用する正規のアプリケーションプログラムを格納し、当該アプリケーションプログラムを、特定のユーザに対して、特定の期間のみ利用させるような管理を効率的に行うことができる通信システムを提供することを目的とする。
【０００８】
【課題を解決するための手段】
（１）    本発明の第１の態様は、主通信系統と副通信系統との少なくとも２系統の通信機能をもった複数の端末装置と、各端末装置に対して主通信系統を介して情報通信を行う機能をもった管理装置と、を備える通信システムにおいて、
管理装置に、
各端末装置を識別するための端末ＩＤを格納した端末ＩＤ格納部と、
端末装置に提供するための複数のアプリケーションプログラムと、第１のアルゴリズムに基づく所定の論理処理を施すことにより入力データに対して一義的に定まる出力データを生成する第１の論理処理プログラムと、第２のアルゴリズムに基づく所定の論理処理を施すことにより入力データに対して一義的に定まる出力データを生成する第２の論理処理プログラムと、を格納したプログラム格納部と、
特定の端末装置についての端末ＩＤを端末ＩＤ格納部から読み出し、読み出した端末ＩＤに基づいて、アプリケーションプログラムに埋め込むべきアプリケーションＩＤを生成するアプリケーションＩＤ生成部と、
アプリケーションプログラムの利用期限を示す期限情報を生成する期限情報生成部と、
アプリケーションＩＤ生成部で生成された所定のアプリケーションＩＤと、期限情報生成部で生成された所定の期限情報と、を入力データとして、第１の論理処理プログラムを実行することにより得られる出力データを、第１のキーとして生成する第１のキー生成部と、
プログラム格納部に格納されている特定のアプリケーションプログラムに、「特定の端末装置についての端末ＩＤを用いることによりアプリケーションＩＤ生成部によって生成された特定のアプリケーションＩＤ」と、「第１の論理処理プログラム」と、「第２の論理処理プログラム」と、を埋め込む埋込処理を実行することにより、特定の端末装置用の固有のアプリケーションプログラムを生成する埋込処理部と、
特定の端末装置に対して、「埋込処理済みのアプリケーションプログラム」と、「当該アプリケーションプログラムの有効期限を示す期限情報」と、「当該期限情報と当該アプリケーションプログラムに埋め込まれているアプリケーションＩＤとによって生成された第１のキー」と、を主通信系統を介して送信する対端末通信部と、
を設け、
各端末装置に、
管理装置の対端末通信部に対して、主通信系統を介して通信を行う主通信部と、
所定の外部機器に対して、副通信系統を介して通信を行う副通信部と、
管理装置から送信されてきたアプリケーションプログラムを格納するアプリケーション格納部と、
アプリケーション格納部に格納されているアプリケーションプログラムを実行するアプリケーション実行部と、
アプリケーション実行部の実行対象となるアプリケーションプログラムが、管理装置から送信されてきた正規かつ有効期限内のプログラムであることを認証する機能を有し、正しい認証が行われたアプリケーションプログラムについてのみ、副通信部による通信を許可する処理を行うアプリケーション認証部と、
を設け、
アプリケーション実行部に、
実行対象となるアプリケーションプログラムに埋め込まれていたアプリケーションＩＤ、第１の論理処理プログラム、第２の論理処理プログラム、をそれぞれ抽出する処理機能と、
抽出したアプリケーションＩＤとアプリケーション認証部から与えられた期限情報とを入力データとして、第１の論理処理プログラムを実行することにより得られる出力データを、第１のキーとして生成する処理機能と、
アプリケーションプログラムの実行のたびに異なる値を示す性質をもった所定のカウント値を逐次計数する処理機能と、
生成された第１のキーと計数されたカウント値とを入力データとして、第２の論理処理プログラムを実行することにより得られる出力データを、第２のキーとして生成し、これをアプリケーション認証部へ与える処理機能と、
をもたせ、
アプリケーション認証部に、
管理装置から送信されてきた期限情報をアプリケーション実行部に与える処理機能と、
上記カウント値を逐次計数する処理機能と、
管理装置から送信されてきた第１のキーと計数されたカウント値とを入力データとして、第２の論理処理プログラムを実行することにより得られる出力データを、第２のキーとして生成する処理機能と、
この生成した第２のキーと、アプリケーション実行部から与えられた第２のキーと、が一致し、かつ、期限情報によって示される期限がまだ経過していない場合に、正しい認証が行われたものと判断する処理機能と、
をもたせるようにしたものである。
【０００９】
（２）    本発明の第２の態様は、上述の第１の態様に係る通信システムにおいて、
アプリケーション認証部に、端末装置内に格納されている端末ＩＤを認識する機能と、認識した端末ＩＤをアプリケーション実行部に与える機能とをもたせ、
アプリケーション実行部およびアプリケーション認証部において第２のキーを生成する際に、第１のキーおよびカウント値に加えて、更に、端末ＩＤを入力データとして、第２の論理処理プログラムを実行し、得られる出力データを第２のキーとするようにしたものである。
【００１０】
（３）    本発明の第３の態様は、上述の第１または第２の態様に係る通信システムにおいて、
アプリケーションＩＤ生成部が、端末ＩＤと所定の秘密コードとを用いて、アプリケーションＩＤを生成するようにしたものである。
【００１１】
（４）    本発明の第４の態様は、上述の第１〜第３の態様に係る通信システムにおいて、
第１のアルゴリズムおよび第２のアルゴリズムとして、入力データに基づいて出力データを求めることは可能であるが、逆に、出力データに基づいて入力データを求めることは不可能であるような一方向性関数を用いた演算を行うようにしたものである。
【００１２】
（５）    本発明の第５の態様は、上述の第１〜第４の態様に係る通信システムにおいて、
アプリケーションプログラムを実行することによりカウントアップする性質をもった所定のカウント値として、アプリケーションの起動回数に応じたカウント値を用いるようにしたものである。
【００１３】
（６）    本発明の第６の態様は、上述の第１〜第４の態様に係る通信システムにおいて、
アプリケーションプログラムを実行することによりカウントアップする性質をもった所定のカウント値として、アプリケーションが副通信系統を介して行った通信の回数もしくはデータ量に応じたカウント値を用いるようにしたものである。
【００１４】
（７）    本発明の第７の態様は、上述の第１〜第６の態様に係る通信システムにおいて、
主通信系統が端末装置と管理装置との間に確保された専用通信回線を用いた通信を行い、副通信系統が端末装置と外部機器との間でＢｌｕｅｔｏｏｔｈ規格を用いた通信を行う機能を有するようにしたものである。
【００１５】
（８）    本発明の第８の態様は、上述の第１〜第７の態様に係る通信システムにおいて、
副通信系統を利用した通信機能をもつアプリケーションプログラムについては、アプリケーション認証部からの起動許可が与えられた場合にのみ起動するように構成したことを特徴とする通信システム。
【００１６】
（９）    本発明の第９の態様は、上述の第８の態様に係る通信システムにおいて、
アプリケーション認証部が、副通信部の通信機能を制御する機能を有し、正しい認証が行われたアプリケーションプログラムが起動中のときにのみ、副通信部による通信が許可されるような制御を行うようにしたものである。
【００１７】
（１０）  本発明の第１０の態様は、上述の第９の態様に係る通信システムにおいて、
副通信部の通信機能を制御する機能が、物理層より上で、アプリケーション層よりも下のネットワーク階層を利用して実行されるようにしたものである。
【００１８】
（１１）  本発明の第１１の態様は、上述の第１〜第１０の態様に係る通信システムにおいて、
埋込処理部が、アプリケーションＩＤおよび各論理処理プログラムをアプリケーションプログラムへ埋め込む処理を行う際に、埋込対象の露見を防ぐための隠蔽処理を実行するようにしたものである。
【００１９】
（１２）  本発明の第１２の態様は、上述の第１〜第１１の態様に係る通信システムにおいて、
アプリケーションプログラムによる副通信系統を利用した通信が、アプリケーション認証部を仲介して行われるように構成し、
アプリケーション認証部に、仲介した通信データを監視することにより、外部機器との間で行われた通信履歴を取得する機能を設け、
取得した通信履歴を記録する通信履歴記録部を、端末装置内に更に設けるようにしたものである。
【００２０】
（１３）  本発明の第１３の態様は、上述の第１２の態様に係る通信システムにおいて、
通信履歴記録部に、個々のアプリケーションごとに、それぞれ通信データの量を示す通信履歴を記録するようにしたものである。
【００２１】
（１４）  本発明の第１４の態様は、上述の第１〜第１３の態様に係る通信システムにおいて、
端末ＩＤとして、主通信系統を介して主通信部へのアクセスを行うためのアクセスコードもしくは副通信系統を介して副通信部へのアクセスを行うためのアクセスコードを用いるようにしたものである。
【００２２】
【発明の実施の形態】
以下、本発明を図示する実施形態に基づいて説明する。
【００２３】
＜＜＜  §１．本発明に係る通信システムの基本構成  ＞＞＞
図１は、本発明の一実施形態に係る通信システムの構成を示すブロック図である。図示のとおり、この通信システムは、管理装置１００と複数の端末装置２００とによって構成されている。図では、便宜上、１台の端末装置２００しか示されていないが、実際のシステムでは、複数台の端末装置２００が用いられる。各端末装置２００には、主通信系統と副通信系統との２系統の通信機能が備わっている。端末装置２００は、管理装置１００に対して、主通信系統を介して情報通信を行うことができ、また、外部機器３００に対して、副通信系統を介して情報通信を行うことができる。ここでは、主通信系統による端末装置２００と管理装置１００との間の通信路を主通信路αと呼び、副通信系統による端末装置２００と外部機器３００との間の通信路を副通信路βと呼ぶことにする。
【００２４】
主通信路αおよび副通信路βは、いずれも有線による通信路であってもよいし、無線による通信路であってもよい。ここに示す実施形態の場合は、いずれも無線による通信路によって構成している。より具体的に説明すれば、ここに示す実施形態では、端末装置２００は、Ｂｌｕｅｔｏｏｔｈ  の規格に基づく無線通信機能を備えた携帯電話機であり、主通信路αは、携帯電話用の基地局に設けられた管理装置１００との間に確保された専用通信回線（電話回線）によって構成されており、副通信路βは、Ｂｌｕｅｔｏｏｔｈ  の規格に基づく通信機能を備えた種々の外部機器２００との間に確保された無線通信路によって構成されている。個々の端末装置２００は、いずれも主通信路αを介して管理装置１００と通信する機能を有しているので、任意の端末装置２００間では、管理装置１００を介して電話通話を行うことができる。
【００２５】
管理装置１００は、実際には、基地局内に設けられたサーバ装置によって構成されている。図示のとおり、この管理装置１００には、端末ＩＤ格納部１１０、期限情報生成部１２０、アプリケーションＩＤ生成部１３０、プログラム格納部１４０、第１のキー生成部１５０、埋込処理部１６０、対端末通信部１７０なる構成要素が備わっている。
【００２６】
端末ＩＤ格納部１１０には、個々の端末装置２００を識別するための端末ＩＤが格納されている。たとえば、この通信システムに、合計Ｎ台の端末装置２００が用いられる場合であれば、各端末装置ごとにユニークな端末ＩＤが付与され、合計Ｎ通りの端末ＩＤが、端末ＩＤ格納部１１０内に格納されることになる。Ｎ通りの端末ＩＤとしては、Ｎ台の端末装置を相互に識別可能なコードであれば、どのようなコードを用いてもかまわないが、実用上は、主通信系統を介して端末装置２００へのアクセスを行うためのアクセスコード（たとえば、端末装置２００が携帯電話の場合は、電話番号）もしくは副通信系統を介して端末装置２００へのアクセスを行うためのアクセスコード（たとえば、端末装置２００がＢｌｕｅｔｏｏｔｈ  規格の副通信系統を有していた場合には、Ｂｌｕｅｔｏｏｔｈ  通信アダプタに固有の番号）を用いると便利である。
【００２７】
プログラム格納部１４０には、端末装置２００に提供するための複数のアプリケーションプログラムＡＰ１，ＡＰ２，ＡＰ３と、第１の論理処理プログラムＬＧ１と、第２の論理処理プログラムＬＧ２と、が格納されている。図では、説明の便宜上、３種類のアプリケーションプログラムＡＰ１，ＡＰ２，ＡＰ３が格納されている例が示されているが、実用上は、より多数のアプリケーションプログラムが用意されることになろう。各アプリケーションプログラムは、後述するように、端末装置２００にダウンロードされ、端末装置２００内にて実行されることになる。個々のアプリケーションプログラムの内容は、どのようなものであってもかまわないが、少なくとも一部のアプリケーションプログラムは、副通信系統を利用して外部機器３００と情報通信を行う機能を有している。
【００２８】
第１の論理処理プログラムＬＧ１は、第１のアルゴリズムに基づく所定の論理処理を施すことにより入力データに対して一義的に定まる出力データを生成するプログラムであり、第２の論理処理プログラムＬＧ２は、第２のアルゴリズムに基づく所定の論理処理を施すことにより入力データに対して一義的に定まる出力データを生成するプログラムである。たとえば、入力データＸが与えられたとすると、この入力データＸに、第１の論理処理プログラムＬＧ１による論理処理を施すと出力データＹが一義的に得られることになり、第２の論理処理プログラムＬＧ２による論理処理を施すと出力データＺが一義的に得られることになる。このような論理処理は、後述するように、キーを生成するために利用される。なお、第１のアルゴリズムと第２のアルゴリズムとは、全く同一のアルゴリズムにしてもかまわないが、セキュリティーを向上させる上では、それぞれ別個のアルゴリズムにするのが好ましい。
【００２９】
期限情報生成部１２０は、外部から与えられる指示に基づいて、プログラム格納部１４０内に格納されているアプリケーションプログラムの利用期限を示す期限情報を生成する構成要素である。たとえば、特定のアプリケーションプログラムについての利用期限を２００３年８月３１日に設定する旨の指示が外部から与えられた場合、期限情報生成部１２０は、「２００３０８３１」のような期限情報を生成する。もちろん、ここに示す期限情報のフォーマットは一例であり、実際には、どのようなフォーマットで利用期限を示すようにしてもかまわない。
【００３０】
アプリケーションＩＤ生成部１３０は、端末ＩＤ格納部１１０から、特定の端末装置についての端末ＩＤを読み出し、読み出した端末ＩＤと所定の秘密コードとを用いて、アプリケーションプログラムに埋め込むべきアプリケーションＩＤを生成する機能を有する。このアプリケーションＩＤは、特定のアプリケーションプログラムが、特定の端末装置専用の固有のプログラムであることを示すＩＤコードである。たとえば、端末ＩＤとして、個々の端末装置として用いられる携帯電話の電話番号を用いた場合、この電話番号と、所定の秘密コードとに基づいて、当該携帯電話専用のアプリケーションＩＤが生成される。端末ＩＤとともに所定の秘密コードを用いるようにしたのは、端末ＩＤとして電話番号などの公開された情報を利用した場合でも、生成されるアプリケーションＩＤを察知されないようにするための配慮である。
【００３１】
なお、本発明を実施する上では、アプリケーションＩＤの生成に必ずしも秘密コードを用いる必要はなく、端末ＩＤのみを用いてアプリケーションＩＤを生成するようにしてもかまわない。ただ、実用上は、上述したように、生成されるアプリケーションＩＤを察知されないようにするため、端末ＩＤと秘密コードとに基づいて、アプリケーションＩＤを生成するようにするのが好ましい。秘密コードは、第三者に認識されないようなコードであれば、どのようなコードであってもかまわないし、必要に応じて、複数通りの秘密コードを用いてもかまわない。実用上は、たとえば、乱数などを発生させ、これを秘密コードとして用いれば十分である。
【００３２】
第１のキー生成部１５０は、アプリケーションＩＤ生成部１３０で生成された所定のアプリケーションＩＤと、期限情報生成部１２０で生成された所定の期限情報と、を入力データとして、プログラム格納部１４０内に格納されている第１の論理処理プログラムＬＧ１を実行し、その結果として得られる出力データを、第１のキーＫＥＹ１として生成する機能を有する。前述したように、アプリケーションＩＤは、特定の端末装置についての端末ＩＤと所定の秘密コードとによって生成されるコードであるので、このアプリケーションＩＤと所定の期限情報とによって生成された第１のキーＫＥＹ１は、特定の端末装置に対して、特定のアプリケーションプログラムを、特定の期限まで利用させる権限を与える意味合いをもったキーになる。
【００３３】
埋込処理部１６０は、プログラム格納部１４０に格納されている特定のアプリケーションプログラムに、「特定の端末装置についての端末ＩＤを用いることによりアプリケーションＩＤ生成部１３０によって生成された特定のアプリケーションＩＤ」と、「第１の論理処理プログラム」と、「第２の論理処理プログラム」と、を埋め込む埋込処理を実行することにより、当該特定の端末装置用の固有のアプリケーションプログラムを生成する処理を行う。
【００３４】
図２は、この埋込処理の概念を示すブロック図である。図示の例では、アプリケーションプログラムＡＰ１に対する埋込処理が例示されている。すなわち、埋込処理部１６０は、アプリケーションプログラムＡＰ１内に、所定のアプリケーションＩＤと、第１の論理処理プログラムＬＧ１と、第２の論理処理プログラムＬＧ２とを埋め込む処理を実行し、その結果、埋込処理済みのアプリケーションプログラムＡＰ１＋が生成されることになる。この埋込処理済みのアプリケーションプログラムＡＰ１＋は、全体的には、一般のアプリケーションプログラムと同じ形式のプログラムの形態をとっているが、本来のアプリケーションプログラムＡＰ１のプログラムコードとは別に、アプリケーションＩＤに相当するコードと、各論理処理プログラムＬＧ１，ＬＧ２のプログラムコードとが埋め込まれている。
【００３５】
なお、セキュリティーを向上させる上では、この埋込処理部１６０が、アプリケーションＩＤおよび各論理処理プログラムＬＧ１，ＬＧ２を、アプリケーションプログラムＡＰ１へ埋め込む処理を行う際に、埋込対象の露見を防ぐための隠蔽処理を実行するようにするのが好ましい。このような隠蔽処理を伴う埋込処理の方法は、電子すかしなどの技術として公知であるので、ここでは詳しい説明は省略する。このような隠蔽処理を施しておくことにより、埋込処理済みのアプリケーションプログラムＡＰ１＋を通常の方法で解析しても、埋込対象となったアプリケーションＩＤや各論理処理プログラムＬＧ１，ＬＧ２を認識することはできなくなるので、不正行為により、これら埋込対象が露見する可能性を低減することができる。
【００３６】
前述したように、アプリケーションＩＤは、特定の端末装置に固有の端末ＩＤに基づいて生成されたコードであるので、埋込処理部１６０によって生成された埋込処理済みのアプリケーションプログラムＡＰ１＋は、当該端末ＩＤをもつ特定の端末装置での利用を前提とした固有のアプリケーションプログラムという意味合いをもつ。別言すれば、後述する認証処理を行うことにより、特定のアプリケーションＩＤが埋め込まれているアプリケーションプログラムＡＰ１＋は、特定の端末装置でしか利用することができなくなり、第１のユーザが所持する端末装置にダウンロードされたアプリケーションプログラムを、第２のユーザが所持する端末装置に組み込んで不正利用するようなことはできなくなる。
【００３７】
対端末通信部１７０は、当該特定の端末装置に対して、「埋込処理済みのアプリケーションプログラムＡＰ１＋」と、「当該アプリケーションプログラムＡＰ１＋の有効期限を示す期限情報」と、「当該期限情報と当該アプリケーションプログラムＡＰ１＋に埋め込まれているアプリケーションＩＤとによって生成された第１のキーＫＥＹ１」と、を主通信系統を介して送信する機能を有している。すなわち、端末装置２００に対しては、主通信路αを通じて、アプリケーションプログラムＡＰ１＋と、その期限情報と、ＫＥＹ１と、が送信されることになる。
【００３８】
一方、端末装置２００は、この実施形態の場合、Ｂｌｕｅｔｏｏｔｈ  規格に基づく通信機能を備えた携帯電話機であり、図示のとおり、主通信部２１０、アプリケーション認証部２２０、アプリケーション実行部２３０、アプリケーション格納部２４０、副通信部２５０なる各構成要素を有している。
【００３９】
ここで、主通信部２１０は、管理装置１００側の対端末通信部１７０に対して、主通信系統を介して通信を行う機能を有する構成要素であり、両者間の通信は、主通信路αを通じて行われる。前述したとおり、この実施形態の場合、主通信路αは、無線電話回線（専用通信回線）であり、主通信部２１０は、携帯電話機としての端末装置２００の本来の電話通信機能を司る構成要素ということができる。
【００４０】
これに対して、副通信部２５０は、外部機器３００に対して、副通信系統を介して通信を行う機能を有する構成要素であり、両者間の通信は、副通信路βを通じて行われる。前述したとおり、この実施形態の場合、副通信路βは、Ｂｌｕｅｔｏｏｔｈ  規格に基づく無線通信路であり、副通信部２５０は、実際には、携帯電話機に組み込まれたＢｌｕｅｔｏｏｔｈ  通信アダプタによって構成されることになる。図には、単一の外部機器３００しか描かれていないが、実際には、副通信部２５０は、Ｂｌｕｅｔｏｏｔｈ  規格に対応した多数の外部機器に対して通信が可能である。
【００４１】
アプリケーション格納部２４０は、管理装置１００側から主通信路αを介して送信されてきたアプリケーションプログラム（埋込処理済みのもの）を格納する構成要素である。図には、既に２組のアプリケーションプログラムＡＰ１＋，ＡＰ２＋が格納されている状態が示されている。端末装置２００を所持するユーザは、必要に応じて、管理装置１００側のプログラム格納部１４０から、所望のアプリケーションプログラムをダウンロードして、アプリケーション格納部２４０に格納することができる。このとき、ダウンロード対象となるアプリケーションプログラムに対しては、前述したとおり、埋込処理部１６０における埋込処理が実行され、また、期限情報と第１のキーＫＥＹ１とが同時にダウンロードされることになる。なお、ダウンロードされた期限情報と第１のキーＫＥＹ１は、アプリケーション認証部２２０に取り込まれることになる。
【００４２】
アプリケーション実行部２３０は、アプリケーション格納部２４０に格納されているアプリケーションプログラムを実行する機能をもった構成要素である。すなわち、ユーザが、アプリケーション格納部２４０内に格納されている特定のアプリケーションプログラムを選択して、その実行を指示すると、アプリケーション実行部２３０は、選択されたアプリケーションプログラムを起動し、これを実行することになる。たとえば、ユーザが、アプリケーションプログラムＡＰ１＋を選択した場合、アプリケーション実行部２３０は、これを起動し実行する。もちろん、実際に実行されるのは、埋込部分を除外したアプリケーションプログラムＡＰ１本来のプログラム部分である。
【００４３】
もちろん、アプリケーション実行部２３０が実行する実際の処理は、実行対象となるアプリケーションプログラムに応じて様々である。アプリケーションプログラムによっては、端末装置２００に備わっているディスプレイに何らかの情報を提示するだけのプログラムもあるであろうし、主通信部２１０に何らかの指示を与えて、主通信路αを介して管理装置１００と通信を行うようなプログラムもあるであろうし、副通信部２５０に何らかの指示を与えて、副通信路βを介して外部機器３００と通信を行うようなプログラムもあるであろう。
【００４４】
＜＜＜  §２．アプリケーションプログラムの認証方法  ＞＞＞
このように、端末装置２００に備わっている主通信系統と副通信系統との２系統の通信機能は、原理的には、アプリケーションプログラム側から自由に利用することが可能である。しかしながら、管理装置１００を管理運営して種々の通信サービスを提供する通信事業者の立場としては、主通信系統を介したユーザの通信については、その管理を行うことが可能であるが、副通信系統を介したユーザの通信については、何らかの手段を講じない限り、その管理を行うことができない。すなわち、主通信系統を介したユーザの通信は、必ず管理装置１００を仲介して行われるため、通信履歴を把握して課金処理を行ったり、通信自体を制御したりすることが可能であるのに対して、副通信系統を介したユーザの通信は、管理装置１００を介することなく勝手に行われることになるので、何らかの手段を講じない限り、通信事業者は、通信履歴の把握を行うことも、通信自体を制御することもできない。
【００４５】
本発明の目的は、正に、このような課題を解決することにあり、主通信系統と副通信系統との少なくとも２系統の通信機能をもった端末装置に、副通信系統を利用する正規のアプリケーションプログラムを格納し、当該アプリケーションプログラムを、特定のユーザに対して、特定の期間のみ利用させるような管理を効率的に行うことにある。そのために付加された構成要素が、アプリケーション認証部２２０である。
【００４６】
アプリケーション認証部２２０は、アプリケーション実行部２３０の実行対象となるアプリケーションプログラムが、管理装置１００から送信されてきた正規かつ有効期限内のプログラムであることを認証する機能を有し、正しい認証が行われたアプリケーションプログラムについてのみ、副通信部２５０による通信を許可する処理を行う機能を有する。この認証処理の機能は、基本的には、第２のキーＫＥＹ２の照合によって行われる。
【００４７】
図３は、本発明における第１のキーＫＥＹ１および第２のキーＫＥＹ２の生成原理を示すブロック図である。前述したとおり、アプリケーションＩＤは、管理装置１００側のアプリケーションＩＤ生成部１３０において、特定の端末装置２００の端末ＩＤと所定の秘密コードとに基づいて生成されるコードであり、第１のキーＫＥＹ１は、第１のキー生成部１５０において、アプリケーションＩＤと期限情報とに基づいて、第１の論理処理プログラムＬＧ１の機能により生成されるキーである。一方、第２のキーＫＥＹ２は、図３に示すとおり、第１のキーＫＥＹ１と所定のカウント値とに基づいて、第２の論理処理プログラムＬＧ２の機能により生成されるキーである。
【００４８】
この第２のキーＫＥＹ２を生成するために用いるカウント値は、アプリケーションプログラムを実行するたびに異なる値を示す性質をもった値であれば、どのような値を用いてもかまわない。但し、このカウント値は、アプリケーション認証部２２０およびアプリケーション実行部２３０のいずれにおいても計数可能なカウント値としておく必要がある。後述するように、本発明では、第１のキーＫＥＹ１とカウント値とに基づいて、第２のキーＫＥＹ２を生成する処理が、アプリケーション認証部２２０とアプリケーション実行部２３０との双方においてそれぞれ別個独立して行われ、双方で生成した第２のキーＫＥＹ２が一致した場合に、アプリケーション実行部２３０が実行しようとする特定のアプリケーションプログラムが正規のプログラムであると認証することになる。したがって、アプリケーション認証部２２０で計数されたカウント値と、アプリケーション実行部２３０で計数されたカウント値とは、常に一致している必要がある。
【００４９】
このようなカウント値としては、たとえば、アプリケーションの起動回数に応じたカウント値を用いることができる。具体的には、図１に示す例の場合、アプリケーション格納部２４０に格納されているアプリケーションプログラムＡＰ１＋，ＡＰ２＋のそれぞれについて、これまで実行対象として選択され起動された回数を、アプリケーション認証部２２０およびアプリケーション実行部２３０でそれぞれ計数しておくようにし、この計数値をそれぞれのアプリケーションプログラムについてのカウント値として記録しておくようにする。そして、たとえば、アプリケーションプログラムＡＰ１＋を再度起動しようとする時点での認証プロセスでは、このアプリケーションプログラムＡＰ１＋についての過去の起動回数を示す計数値をカウント値として用い、第２のキーＫＥＹ２の生成を行うようにすればよい。また、アプリケーションプログラムＡＰ２＋を再度起動しようとする時点での認証プロセスでは、アプリケーションプログラムＡＰ２＋についての過去の起動回数を示す計数値をカウント値として用い、第２のキーＫＥＹ２の生成を行うようにすればよい。
【００５０】
あるいは、各アプリケーションプログラムごとにそれぞれ別個に起動回数を計数する代わりに、全アプリケーションプログラムの合計起動回数を、共通のカウント値として用いるようにしてもかまわない。この場合は、どのアプリケーションプログラムの認証プロセスでも、この共通のカウント値を用いて、第２のキーＫＥＹ２の生成が行われることになる。
【００５１】
もちろん、第２のキーＫＥＹ２の生成に用いるカウント値は、アプリケーションプログラムの起動回数に限定されるものではなく、アプリケーションプログラムを実行することによりカウントアップする性質をもった計数値であれば、他の計数値でもかまわない。たとえば、アプリケーションが副通信系統を介して行った通信の回数もしくはデータ量に応じたカウント値を用いることも可能である。副通信系統を介して行った通信の回数やデータ量は、アプリケーションプログラムを実行することによりカウントアップする性質をもった計数値であり、副通信部２５０を監視する手段を設けておくことにより、アプリケーション認証部２２０によっても認識可能な計数値である。この通信の回数もしくはデータ量も、個々のアプリケーションプログラムごとに別個独立して計数し、各アプリケーションプログラムごとに別個のカウント値を用いるようにしてもよいし、全アプリケーションプログラムによる合計通信回数や合計通信データ量を共通のカウント値として用いるようにしてもよい。また、たとえば、現在の日時や時刻をカウント値として用いることも可能である。
【００５２】
続いて、アプリケーション認証部２２０およびアプリケーション実行部２３０において行われるアプリケーションプログラム認証処理の手順を、図４のブロック図を参照しながら説明する。ここでは、説明の便宜上、アプリケーション格納部２４０内に格納されているアプリケーションプログラムＡＰ１＋が実行対象として選択され、このプログラムを起動する際に行われる認証処理の手順を示すことにする。
【００５３】
まず、アプリケーション実行部２３０は、実行対象となるアプリケーションプログラムＡＰ１＋を起動する際に、ここに埋め込まれていたアプリケーションＩＤ、第１の論理処理プログラムＬＧ１、第２の論理処理プログラムＬＧ２、をそれぞれ抽出する処理を実行する。図４に示すアプリケーション実行部２３０のブロック内に示されているアプリケーションＩＤ、ＬＧ１，ＬＧ２は、こうして抽出されたデータやプログラムであり、ＡＰ１は、実行対象となる本来のアプリケーションプログラムである。
【００５４】
この実施形態では、管理装置１００側のプログラム格納部１４０に用意されている正規のアプリケーションプログラムは、いずれも、起動時に、アプリケーション認証部２２０からの実行許可を得るルーチンを含んでいる。このルーチンが実行されると、まず、アプリケーション認証部２２０に対して、実行対象となるアプリケーションプログラムについての期限情報が要求される。たとえば、アプリケーションプログラムＡＰ１＋が実行対象として選択された場合には、このプログラムＡＰ１＋についての期限情報が、アプリケーション認証部２２０からアプリケーション実行部２３０へと送られることになる（前述したとおり、対端末通信部１７０からダウンロードした期限情報と第１のキーＫＥＹ１は、アプリケーション認証部２２０に格納されている）。
【００５５】
さて、こうしてアプリケーション実行部２３０側に、期限情報が与えられると、アプリケーション実行部２３０は、アプリケーションプログラムＡＰ１＋から抽出したアプリケーションＩＤと、アプリケーション認証部２２０から与えられた期限情報と、を入力データとして、第１の論理処理プログラムＬＧ１を実行し、得られる出力データを、第１のキーＫＥＹ１として生成する処理を実行する。当然、このアプリケーション実行部２３０側で生成した第１のキーＫＥＹ１は、アプリケーション認証部２２０側に格納されている第１のキーＫＥＹ１（対端末通信部１７０からダウンロードしたもの）に一致する。続いて、アプリケーション実行部２３０は、生成した第１のキーＫＥＹ１と所定のカウント値とを入力データとして、第２の論理処理プログラムＬＧ２を実行し、得られる出力データを、第２のキーＫＥＹ２として生成する処理を実行し、この生成した第２のキーＫＥＹ２を、アプリケーション認証部２２０へと送る処理を実行する。
【００５６】
一方、アプリケーション認証部２２０は、管理装置１００から送信されてきた第１のキーＫＥＹ１と計数されたカウント値とを入力データとして、第２の論理処理プログラムＬＧ２（予め、アプリケーション認証部２２０内に組み込んでおく）を実行することにより得られる出力データを、第２のキーＫＥＹ２として生成する処理を実行する。そして、アプリケーション認証部２２０側で生成した第２のキーＫＥＹ２と、アプリケーション実行部２３０側から与えられた第２のキーＫＥＹ２と、が一致し、かつ、当該アプリケーションプログラムについての期限情報によって示される期限がまだ経過していない場合に、正しい認証が行われたものと判断する。
【００５７】
こうして、アプリケーション実行部２３０における実行対象となっているアプリケーションプログラムについて、アプリケーション認証部２２０側で正しい認証結果が得られると、アプリケーション認証部２２０は、アプリケーション実行部２３０に対して、当該アプリケーションプログラムの実行を許可する旨の通知を与えるとともに、副通信部２５０に対して、通信許可の通知を与える。その結果、アプリケーション実行部２３０は、実行対象となるアプリケーションプログラム（図示の例では、プログラムＡＰ１）を正常に起動することになり、副通信部２５０は、このアプリケーションプログラムの制御下で、外部機器３００に対するデータの送受信動作を実行する。
【００５８】
なお、アプリケーション認証部２２０およびアプリケーション実行部２３０において、第２のキーＫＥＹ２を生成するために用いられるカウント値は、前述したとおり、アプリケーションプログラムの起動回数や、副通信部２５０を介した通信回数、通信データ量などの値であり、アプリケーションプログラムを実行するとともにカウントアップしてゆくことになるが、アプリケーション認証部２２０側で認識しているカウント値と、アプリケーション実行部２３０側で認識しているカウント値とは、常に同一になる。
【００５９】
続いて、上述の認証処理の手順を、具体的なコードを例示しながら説明する。ここでは、「１２３４５６７８」なる電話番号をもった携帯電話機を端末装置２００として保持するユーザが、アプリケーションプログラムＡＰ１をダウンロードして利用する場合を想定して、各手順の説明を行うことにする。
【００６０】
まず、ユーザが、端末装置２００を用いて、管理装置１００から、所望のアプリケーションプログラムＡＰ１をダウンロードする指示を出すと、管理装置１００側では、要求のあった端末装置２００についての端末ＩＤと所定の秘密コードとに基づいて、アプリケーションＩＤを生成する処理が行われる。たとえば、端末装置２００の電話番号「１２３４５６７８」を端末ＩＤとして用い、乱数を用いて発生された「ＡｂｃｄＥｆＧ」なるコードを秘密コードとして用いることにすると、アプリケーションＩＤ生成部１３０により、所定の合成アルゴリズムを用いて、たとえば、「Ａｂｃｄ１２Ｅ３４ｆ５６７Ｇ８」といったアプリケーションＩＤが生成される。アプリケーションＩＤ生成部１３０に、予め所定のアルゴリズムで、端末ＩＤと秘密コードとを合成する処理機能をもたせておけば、このようなアプリケーションＩＤを一義的に決定することができる。このアプリケーションＩＤ「Ａｂｃｄ１２Ｅ３４ｆ５６７Ｇ８」には、端末ＩＤ「１２３４５６７８」の痕跡が残っており、特定の端末装置２００に固有のアプリケーションＩＤであることが確認できる。
【００６１】
なお、端末ＩＤとしては、主通信系統を介して主通信部へのアクセスを行うためのアクセスコード（たとえば、上述の例のような電話番号）を用いることもできるし、副通信系統を介して副通信部へのアクセスを行うためのアクセスコードを用いることもできる。後者の例としては、副通信部２５０を構成するＢｌｕｅｔｏｏｔｈ  通信アダプタのアドレスを用いればよい。
【００６２】
一方、期限情報生成部１２０は、ダウンロード要求のあったアプリケーションプログラムＡＰ１に対して、利用期限を示す期限情報を生成する。利用期限の長さは、管理装置１００を運営管理する通信事業者と、端末装置２００を所持するユーザとの間の契約などによって適宜決定される。具体的には、たとえば、個々のアプリケーションプログラムごとに１ヶ月単位の料金を設定しておき、ユーザが３ヶ月分の利用を申し込んだ場合には、３ヶ月分の利用料を課金するとともに、３ヶ月後の利用期限を示す期限情報を生成すればよい。ここでは、２００３年８月３１日までの利用期限の設定がなされ、期限情報生成部１２０によって、「２００３０８３１」なる期限情報が生成されたものとして、以下の説明を行うことにする。
【００６３】
第１のキー生成部１５０は、こうして生成された期限情報と、アプリケーションＩＤとに基づいて、第１のキーＫＥＹ１を生成する処理を実行する。この処理には、第１の論理処理プログラムＬＧ１に含まれている第１のアルゴリズムが用いられる。なお、セキュリティーを向上させる上では、第１のアルゴリズムとして、「入力データに基づいて出力データを求めることは可能であるが、逆に、出力データに基づいて入力データを求めることは不可能であるような一方向性関数」を用いた演算を行うようにするのが好ましい。具体的には、たとえば、期限情報を構成する文字列にアプリケーションＩＤを構成する文字列をつなげた文字列「２００３０８３１Ａｂｃｄ１２Ｅ３４ｆ５６７Ｇ８」を作成し、この文字列に対して、ＲＳＡ方式やＤＥＳ方式などの暗号処理に基づく一方向性関数（あるいは、ハッシュ関数などでもよい）を作用させて第１のキーＫＥＹ１を作成すればよい。そうすれば、第１のキーＫＥＹ１から、期限情報やアプリケーションＩＤを求めることはできないので、セキュリティーの向上が図れる。
【００６４】
また、埋込処理部１６０は、ダウンロード要求のあったアプリケーションプログラムＡＰ１に、アプリケーションＩＤ生成部１３０で生成されたアプリケーションＩＤ「Ａｂｃｄ１２Ｅ３４ｆ５６７Ｇ８」と、第１の論理処理プログラムＬＧ１と、第２の論理処理プログラムＬＧ２とを埋め込む処理を実行し、埋込済みのアプリケーションプログラムＡＰ１＋を生成する。その埋込処理には、電子すかしの技術などを利用した隠蔽処理を施した方が好ましい点は、既に述べたとおりである。
【００６５】
これで、ダウンロードの準備が完了したので、対端末通信部１７０から主通信部２１０に対して、ユーザが要求したアプリケーションプログラムＡＰ１のダウンロードが実行される。実際にダウンロードされるデータは、「埋込済みのアプリケーションプログラムＡＰ１＋」と、期限情報「２００３０８３１」と、第１のキーＫＥＹ１であり、このうち、プログラムＡＰ１＋は、アプリケーション格納部２４０内に格納され、期限情報「２００３０８３１」と第１のキーＫＥＹ１は、アプリケーション認証部２２０内に格納される。
【００６６】
さて、こうしてアプリケーション格納部２４０内にダウンロードしたアプリケーションプログラムＡＰ１＋に対して、ユーザから実行指示があった場合、前述したとおり、アプリケーション認証部２２０およびアプリケーション実行部２３０内では、図４に示すような認証手順処理が行われる。
【００６７】
まず、アプリケーション認証部２２０からアプリケーション実行部２３０に対して、期限情報「２００３０８３１」が送られる。一方、アプリケーション実行部２３０は、この期限情報「２００３０８３１」と、アプリケーションプログラムＡＰ１＋から抽出したアプリケーションＩＤ「Ａｂｃｄ１２Ｅ３４ｆ５６７Ｇ８」と、に対して、第１の論理処理プログラムＬＧ１を用いた処理を実行し、第１のキーＫＥＹ１を生成する。この第１のキーＫＥＹ１は、アプリケーション認証部２２０内に格納されている第１のキーＫＥＹ１と同一になる。
【００６８】
その後、アプリケーション認証部２２０およびアプリケーション実行部２３０は、それぞれカウント値と第１のキーＫＥＹ１に対して、第２の論理処理プログラムＬＧ２を用いた処理を施し、第２のキーＫＥＹ２を生成する。なお、この第２の論理処理プログラムＬＧ２に含まれる第２のアルゴリズムも、第１のアルゴリズムと同様に、「入力データに基づいて出力データを求めることは可能であるが、逆に、出力データに基づいて入力データを求めることは不可能であるような一方向性関数」を用いた演算にするのが好ましい。こうして、最終的に、両者で生成された第２のキーＫＥＹ２を照合した結果、それらが一致し、かつ、期限情報によって示される利用期限が未経過であった場合（上述の例の場合、２００３年８月３１日以前であった場合）、実行対象となるアプリケーションプログラムＡＰ１＋が、正規かつ有効期限内のプログラムである旨の認証がなされ、アプリケーション実行部２３０による正常な起動が行われることになる。
【００６９】
なお、本発明の主目的は、ユーザによる副通信系統の利用を管理することにあるので、実行対象となるアプリケーションプログラムＡＰ１＋が、正規かつ有効期限内のプログラムである旨の認証がなされた場合に、当該プログラムＡＰ１＋の制御下での副通信部２５０による通信を許可する処理が行われれば十分である。別言すれば、もし、実行対象となるアプリケーションプログラムが、正規のプログラムでなかったり、有効期限切れのプログラムである旨の認証がなされた場合には、当該プログラムの制御下での副通信部２５０による通信を阻止する手段が講じられていれば、一応、本発明の主目的を達成することができる。したがって、特定のアプリケーションプログラムについての認証が正しく行われなかった場合、必ずしも当該アプリケーションプログラムの起動自体を阻止する必要はない。ただ、実用上は、認証に失敗したアプリケーションプログラムについては、その起動自体を阻止するようにするのが、本発明の主目的を達成する上での直接的かつ確実な手段になる。
【００７０】
ここに示す実施形態の場合、特定のアプリケーションプログラムについての認証が正しく行われなかった場合、２通りの方法により、当該アプリケーションプログラムによる副通信部２５０の利用が阻止される構成を採っている。
【００７１】
第１の方法は、アプリケーション認証部２２０からアプリケーション実行部２３０に対して、当該アプリケーションプログラムに対する実行許可を与えないことにより、当該アプリケーションプログラムの起動を阻止する方法である。前述したように、管理装置１００からダウンロードする正規のアプリケーションプログラムには、アプリケーション認証部２２０から実行許可が与えられない限り、正常に起動することができないような起動ルーチンが組み込まれている。したがって、アプリケーション格納部２４０内に格納されているアプリケーションプログラムが、管理装置１００からダウンロードした正規のアプリケーションプログラムである限り、アプリケーション認証部２２０において正しい認証が行われることが、起動のための必須要件となる。これにより、有効期限切れのアプリケーションプログラムの起動を阻止することが可能になる。このように、副通信系統を利用した通信を管理する必要がある場合、副通信系統を利用した通信機能をもつアプリケーションプログラムについては、アプリケーション認証部２２０からの起動許可が与えられた場合にのみ起動するように構成しておけばよい。
【００７２】
第２の方法は、アプリケーション認証部２２０から副通信部２５０に対して、通信許可を与えないことにより、副通信部２５０の動作を阻止する方法である。すなわち、アプリケーション認証部２２０に、副通信部２５０の通信機能を制御する機能をもたせておき、正しい認証が行われたアプリケーションプログラムが起動中のときにのみ、副通信部２５０による通信が許可されるような制御を行うようにすればよい。
【００７３】
このように、アプリケーション認証部２２０に、副通信部２５０を直接制御する機能をもたせておくのは、アプリケーション格納部２４０内に正規でないアプリケーションプログラムが格納された場合に対処するためである。前述したとおり、管理装置１００側からダウンロードした正規のアプリケーションプログラムであれば、アプリケーション認証部２２０から実行許可が与えられない限り、正常に起動することはない。しかしながら、ユーザ自身が独自に開発したアプリケーションプログラムや、別ルートから入手したアプリケーションプログラムの場合、通常、起動条件を課すような措置が講じられていないため、アプリケーション認証部２２０からの実行許可なしに起動してしまうことになる。第２の方法による通信阻止は、このような場合に対処するためのものである。すなわち、アプリケーション格納部２４０内に格納されていた正規でないアプリケーションプログラムが、認証に失敗したのにもかかわらず起動した場合であっても、認証に失敗したアプリケーション認証部２２０からは、副通信部２５０に対して通信許可が出されないため、そのような正規でないアプリケーションプログラムによる副通信部２５０の利用は阻止されることになる。
【００７４】
なお、このような副通信部２５０に対する動作阻止は、物理層より上で、アプリケーション層よりも下のネットワーク階層（たとえば、ＯＳＩ参照モデルにおけるデータリンク層：ネットワーク接続装置においてＭＡＣ層やベースバンド回路と呼ばれている部分）を利用して行うのが好ましい。物理層より上の階層で制御する理由は、物理層で制御することにすると、副通信部２５０のハードウエア構成を変更するなどの措置が必要になるためである。また、アプリケーション層よりも下の階層で制御する理由は、ユーザがアプリケーションプログラムをいくら改変したとしても、副通信部２５０に対する動作阻止を免れないようにするためである。
【００７５】
このように、「アプリケーション層による起動阻止（第１の方法）」と、「物理層より上で、アプリケーション層よりも下の階層（たとえば、データリンク層）による通信阻止（第２の方法）」という２通りの方法により、副通信系統の利用を制御すれば、より確実な制御が可能になる。
【００７６】
また、本発明では、管理装置１００により発行された第１のキーＫＥＹ１を直接照合する形式を採らずに、第２のキーＫＥＹ２を照合する形式を採っているが、これはアプリケーション認証部２２０とアプリケーション実行部２３０との間の通信傍受に対しても、十分なセキュリティーを確保するための配慮である。
【００７７】
すなわち、図４のブロック図を参照すると、原理的には、アプリケーション実行部２３０側で第１のキーＫＥＹ１を生成し、これをアプリケーション認証部２２０側へ送るようにし、アプリケーション認証部２２０側では、管理装置１００からダウンロードして得られた第１のキーＫＥＹ１と、アプリケーション実行部２３０側から送られてきた第１のキーＫＥＹ１とを照合することにより、アプリケーション実行部２３０側で実行対象となっているアプリケーションプログラムの認証を行うことも可能である。しかしながら、そのような方法を採ると、アプリケーション実行部２３０とアプリケーション認証部２２０との間で、第１のキーＫＥＹ１の受け渡しが行われることになるので、両者間の通信傍受という不正手段を講じた場合、第１のキーＫＥＹ１の不正取得が行われるおそれがある。
【００７８】
もちろん、第１のキーＫＥＹ１は、主通信路αを介して管理装置１００側から送信されてくるので、この主通信路αに対する不正傍受により第１のキーＫＥＹ１が不正取得される可能性もあるが、主通信路αは管理装置１００と端末装置２００との間に確保された専用通信回線であるため、一般に不正傍受の攻撃を受ける可能性は低い（もっとも、実用上は、主通信路αを介した通信により、第１のキーＫＥＹ１やアプリケーションプログラムなどを送信する際には、何らかの暗号アルゴリズムを用いた秘匿通信路を形成するようにするのが好ましい）。これに対して、アプリケーション認証部２２０とアプリケーション実行部２３０との間の通信路は、不正傍受の攻撃を受けやすい。特に、端末装置２００として携帯電話機を用いる場合、従来の一般的な携帯電話機（通常、主通信部２１０、アプリケーション実行部２３０、アプリケーション格納部２４０が備わっている）に、Ｂｌｕｅｔｏｏｔｈ  通信アダプタからなる副通信部２５０と、本発明の実施のために開発された新たな部品としてのアプリケーション認証部２２０と、を組み込む構成を採ることになるので、アプリケーション認証部２２０とアプリケーション実行部２３０との間の通信傍受は比較的容易になる。
【００７９】
このように、第１のキーＫＥＹ１を直接照合する方法を採ると、通信傍受により第１のキーＫＥＹ１が不正取得されるおそれがあり、しかも第１のキーＫＥＹ１が不正取得されてしまうと、この第１のキーＫＥＹ１を擬似的に発生させる機能をもった不正なアプリケーションプログラムを、あたかも正規のアプリケーションプログラムとして利用することが可能になってしまう。たとえば、ユーザ自身が、不正なアプリケーションプログラムＡＰＸを作成し、このプログラム内に、不正取得した第１のキーＫＥＹ１をアプリケーション認証部２２０側へと送るルーチンを組み込んでおくようにすれば、アプリケーション実行部２３０からアプリケーション認証部２２０には、第１のキーＫＥＹ１が送られることになるので、アプリケーション認証部２２０は、この不正なアプリケーションプログラムＡＰＸを正規のプログラムとして認証してしまうことになる。
【００８０】
本発明において、第１のキーＫＥＹ１を直接照合する代わりに、第２のキーＫＥＹ２の照合を行うようにしているのは、上述のような不正を阻止するために他ならない。図４のブロック図を見ればわかるとおり、本発明の照合手法では、アプリケーション認証部２２０とアプリケーション実行部２３０との間で、第１のキーＫＥＹ１の直接のやりとりが行われることはない。両者間でやりとりされる情報は、期限情報と第２のキーＫＥＹ２だけである。したがって、第１のキーＫＥＹ１の不正取得の可能性は極めて低くなり、万一、第１のキーＫＥＹ１が不正取得されたとしても、直ちに不正利用が行われることはない。
【００８１】
もちろん、アプリケーション認証部２２０とアプリケーション実行部２３０との間の通信傍受により、第２のキーＫＥＹ２が不正取得される可能性はある。しかしながら、第２のキーＫＥＹ２には、カウント値という新たなパラメータが付加されているので、アプリケーションプログラムを起動するたびに、第２のキーＫＥＹ２の値は異なることになる。したがって、万一、第２のキーＫＥＹ２が不正取得されたとしても、当該第２のキーＫＥＹ２は、その時点の照合処理においてのみ有効なキーにすぎないので、アプリケーションプログラムを次回以降に起動する際には、無効となっており、実害が生じることはない。
【００８２】
また、本発明では、個々のアプリケーションＩＤを、特定の端末装置の端末ＩＤに基づいて生成させるようにしているため、全く同一のアプリケーションプログラムであっても、そこに埋め込まれるアプリケーションＩＤは、個々のユーザごとに異なることになる。また、同一のアプリケーションプログラムについて発行される第１のキーＫＥＹ１も、個々のユーザごとに異なることになる。したがって、前述したとおり、特定のアプリケーションＩＤが埋め込まれているアプリケーションプログラムは、特定の端末装置でしか利用することができなくなり、第１のユーザが所持する端末装置にダウンロードされたアプリケーションプログラムを、第２のユーザが所持する端末装置に組み込んで不正利用するようなことも防止できる。
【００８３】
更に、本発明では、個々のアプリケーションプログラムの利用期限を、個々のユーザごとに別個独立して厳密に管理することも可能になる。すなわち、第１のキーＫＥＹ１には、特定のアプリケーションプログラムについての期限情報も組み込まれているため、期限情報も含めた形で、正規のものか否かの認証が可能になる。
【００８４】
また、利用期限を延長するための処理も非常に容易になる。たとえば、上述の例では、アプリケーションプログラムＡＰ１について、２００３年８月３１日という利用期限を設定することにより、第１のキーＫＥＹ１とともに「２００３０８３１」なる期限情報がアプリケーション認証部２２０へ格納された例を示した。この場合、２００３年９月１日以降は、アプリケーション認証部２２０による正しい認証は行われなくなるので、ユーザは、アプリケーションプログラムＡＰ１を利用することができなくなり、継続利用を希望する場合には、何らかの期限延長のための処理が必要になる。
【００８５】
このような場合、本発明では、新たな期限情報と新たな第１のキーＫＥＹ１とを発行する処理を行うだけで足り、アプリケーションプログラム自身を再度ダウンロードする必要はない。たとえば、延長後の新たな利用期限として、２００３年１１月３１日を設定するのであれば、期限情報生成部１２０により「２００３１１３１」なる新たな期限情報を生成する。続いて、第１のキー生成部１５０によって、この新たな期限情報とアプリケーションＩＤ（前回と同じもの）とに基づいて、新たな第１のキーＫＥＹ１を生成する。そして、対端末通信部１７０から主通信部２１０を介して、アプリケーション認証部２２０内に、新たな期限情報と新たな第１のキーＫＥＹ１とをダウンロードする処理を行えばよい。認証時には、図４に示すように、アプリケーション認証部２２０からアプリケーション実行部２３０に対して、新たな期限情報が送られるため、アプリケーション実行部２３０側で生成される第１のキーＫＥＹ１も、新たな第１のキーＫＥＹ１になり、当然、第２のキーＫＥＹ２についての照合結果は一致することになる。
【００８６】
＜＜＜  §３．より実用的な実施形態  ＞＞＞
最後に、本発明のより実用的な実施形態を述べておく。図５は、第２のキーＫＥＹ２の生成処理アルゴリズムのより実用的な変形例を示すブロック図である。図３のブロック図に示した基本的な実施形態との相違は、第２のキーＫＥＹ２の生成プロセスである。すなわち、図３のブロック図に示す方法では、第２の論理処理プログラムＬＧ２に、第１のキーＫＥＹ１とカウント値とを入力することにより、第２のキーＫＥＹ２を生成していたが、図５のブロック図に示す方法では、第１のキーＫＥＹ１およびカウント値に加えて、更に、端末ＩＤを入力データとして、第２の論理処理プログラムＬＧ２を実行することにより、得られる出力データを第２のキーＫＥＹ２としている。
【００８７】
このように、第２のキーＫＥＹ２の生成に、更に端末ＩＤを用いるようにすると、得られる第２のキーＫＥＹ２のセキュリティをより高めることが可能になる。すなわち、端末ＩＤとしては、前述したとおり、携帯電話の番号やＢｌｕｅｔｏｏｔｈ  通信アダプタのアドレスなど、個々の端末装置２００ごとに固有のＩＤが用いられるので、第２のキーＫＥＹ２の生成プロセスにおいてこの端末ＩＤを組み込むことにより、第１のキーＫＥＹ１から第２のキーＫＥＹ２の生成アルゴリズムをより複雑化することが可能になり、不正な解析が行われる可能性をより低減させることができるようになる。
【００８８】
図６は、各キーの生成に、図５に示すアルゴリズムを用いる場合に、アプリケーション認証部２２０およびアプリケーション実行部２３０において行われるアプリケーションプログラム認証処理の手順を示すブロック図である。図４のブロック図との相違は、第２のキーＫＥＹ２の生成に、端末ＩＤを組み入れるようにした点だけである。この場合、アプリケーション認証部２２０には、端末装置２００内に格納されている端末ＩＤを認識する機能と、認識した端末ＩＤをアプリケーション実行部２３０に与える機能とをもたせておくようにする。そして、アプリケーション実行部２３０およびアプリケーション認証部２２０において第２のキーＫＥＹ２を生成する際に、第１のキーＫＥＹ１およびカウント値に加えて、更に、端末ＩＤを入力データとして、第２の論理処理プログラムＬＧ２を実行し、得られる出力データを第２のキーＫＥＹ２とすればよい。
【００８９】
最後に、もう１つ別な実施形態を述べておく。図７は、図１に示す基本的な実施形態に、更に、通信履歴記録部２６０を付加し、アプリケーションプログラムによる副通信系統を利用した通信が、アプリケーション認証部２２０を仲介して行われるように構成した実施形態を示すブロック図である。このような構成では、アプリケーション実行部２３０によって実行中のアプリケーションプログラムが、副通信部２５０を介して外部機器３００と通信する場合、通信データはすべてアプリケーション認証部２２０を仲介して送受されることになるので、アプリケーション認証部２２０に、仲介した通信データを監視させることができる。別言すれば、アプリケーション認証部２２０に、外部機器３００との間で行われた通信履歴を取得する機能を設けることができ、この取得した通信履歴を通信履歴記録部２６０に記録することができるようになる。
【００９０】
既に述べたとおり、Ｂｌｕｅｔｏｏｔｈ  規格の通信機能を副通信系統として有する携帯電話機などでは、通信事業者としては、ユーザが副通信系統を介して行った通信を管理することが困難であった。ところが、この図７に示す構成をとれば、ユーザによる副通信系統を介した通信履歴は、すべて通信履歴記録部２６０内に格納されることになる。したがって、ユーザが主通信系統を利用した通信を行った際に、必要に応じて、通信履歴記録部２６０に格納されている通信履歴を、主通信系統を介して管理装置１００側へと報告させるような仕組みを組み込んでおくようにすれば、通信事業者側は、ユーザが副通信系統を介して行った通信の履歴を収集することが可能になり、主通信系統を利用した通信だけでなく、副通信系統を利用した通信までも完全に管理することが可能になる。
【００９１】
実用上は、通信履歴記録部２６０には、個々のアプリケーションごとに、それぞれ通信データの量（たとえば、通信パケットの数）を示す通信履歴を記録するようにしておけばよい。そうすれば、通信事業者がユーザに対して、個々のアプリケーションごとに、主通信系統を介した通信の利用料とともに、副通信系統を介した通信の利用料を課金することも可能になる。
【００９２】
以上、本発明を図示する実施形態に基づいて説明したが、本発明はこれらの実施形態に限定されるものではなく、この他にも種々の形態で実施可能である。特に、上述の実施形態では、端末装置２００として、Ｂｌｕｅｔｏｏｔｈ  規格に基づく通信機能をもった携帯電話機を例にとって説明したが、本発明で用いる端末装置２００は、このような携帯電話機に限定されるものではなく、たとえば、携帯型パソコンやＰＤＡなどの機器であってもかまわない。また、副通信系統も、Ｂｌｕｅｔｏｏｔｈ  規格に基づく通信系統に限定されるものではなく、その他の規格に基づく通信系統であってもかまわない。
【００９３】
【発明の効果】
以上のとおり、本発明に係る通信システムによれば、主通信系統と副通信系統との少なくとも２系統の通信機能をもった端末装置に、副通信系統を利用する正規のアプリケーションプログラムを格納し、当該アプリケーションプログラムを、特定のユーザに対して、特定の期間のみ利用させるような管理を効率的に行うことができるようになる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る通信システムの構成を示すブロック図である。
【図２】図１に示す埋込処理部１６０によって実施される埋込処理の概念を示すブロック図である。
【図３】本発明における第１のキーＫＥＹ１および第２のキーＫＥＹ２の生成原理を示すブロック図である。
【図４】図１に示すアプリケーション認証部２２０およびアプリケーション実行部２３０において行われるアプリケーションプログラム認証処理の手順を示すブロック図である。
【図５】第２のキーＫＥＹ２の生成処理アルゴリズムの変形例を示すブロック図である。
【図６】各キーの生成に、図５に示すアルゴリズムを用いる場合に、アプリケーション認証部２２０およびアプリケーション実行部２３０において行われるアプリケーションプログラム認証処理の手順を示すブロック図である。
【図７】図１に示す基本的な実施形態に、更に、通信履歴記録部２６０を付加し、アプリケーションプログラムによる副通信系統を利用した通信が、アプリケーション認証部２２０を仲介して行われるように構成した実施形態を示すブロック図である。
【符号の説明】
１００…管理装置
１１０…端末ＩＤ格納部
１２０…期限情報生成部
１３０…アプリケーションＩＤ生成部
１４０…プログラム格納部
１５０…第１のキー生成部
１６０…埋込処理部
１７０…対端末通信部
２００…端末装置
２１０…主通信部
２２０…アプリケーション認証部
２３０…アプリケーション実行部
２４０…アプリケーション格納部
２５０…副通信部
２６０…通信履歴記録部
３００…外部機器
ＡＰ１〜ＡＰ３…アプリケーションプログラム
ＡＰ１＋，ＡＰ２＋…埋込済みアプリケーションプログラム
ＫＥＹ１…第１のキー
ＫＥＹ２…第２のキー
ＬＧ１…第１の論理処理プログラム
ＬＧ２…第２の論理処理プログラム
α…主通信路
β…副通信路
【図１】
2004362401.tif 000003
【図２】
2004362401.tif 000004
【図３】
2004362401.tif 000005
【図４】
2004362401.tif 000006
【図５】
2004362401.tif 000007
【図６】
2004362401.tif 000008
【図７】
2004362401.tif 000009