JP4652660B2 - 端末装置、プログラムおよび記録媒体 - Google Patents
端末装置、プログラムおよび記録媒体 Download PDFInfo
- Publication number
- JP4652660B2 JP4652660B2 JP2002320953A JP2002320953A JP4652660B2 JP 4652660 B2 JP4652660 B2 JP 4652660B2 JP 2002320953 A JP2002320953 A JP 2002320953A JP 2002320953 A JP2002320953 A JP 2002320953A JP 4652660 B2 JP4652660 B2 JP 4652660B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- character string
- terminal device
- application program
- data length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
Description
【発明の属する技術分野】
端末装置に記憶されているデータのセキュリティを確保し、ユーザのプライバシーを保護する技術に関する。
【0002】
【従来の技術】
プログラム実行機能を有する携帯電話機やパーソナルコンピュータ装置(以下、「PC」という)などの端末装置が普及している。また、この種の端末装置にゲーム機能やスケジューラ機能などを実現させるためのアプリケーションプログラム(以下、「AP」とする)が提供されている。このようなAPには、端末装置の販売以前にその不揮発性メモリに書き込まれて提供されるものと、AP単独で提供され、端末装置の販売後にその不揮発性メモリに書き込まれるものとがある。以下では、前者を「ネイティブAP」と称し、後者を「非ネイティブAP」と称する。非ネイティブAPの一例としては、インターネットを介して提供されるAPや、CD−ROM(Compact Disk-Read Only Memory)のようなコンピュータ装置読み取り可能な記録媒体に記録されて提供されるAPなどが挙げられる。ユーザは各自のニーズに応じて非ネイティブAPを端末装置に記憶させることにより、その端末装置の機能を自由に追加および変更することができる。
【0003】
一般にAPは、ユーザのニーズに応じた機能を端末装置に実現させるためのものであるから、ユーザにとって有益なものである。しかしながら、APの提供者に悪意がある場合には、そのAPを実行することでユーザが予期せぬ不利益を被ってしまう虞がある。具体的には、端末装置に記憶されている重要なデータ(例えば、ユーザの個人情報)がAPの実行過程で勝手に読み出され、そのAPの提供者へ送信されてしまうような事態が生じ得る。ネイティブAPについては、例えば、端末装置の製品出荷時点での製品検査により、そのような事態が生じないことが端末装置の製造者によって確認されている。一方、非ネイティブAPについては、必ずしも、そのような確認が為されているわけではない。このような確認がなされていない非ネイティブAPについては、そのAPを実行することで、ユーザが予期せぬ不利益を被ることがないとは言い切れない。
【0004】
ユーザが予期せぬ不利益を被らないようにするために、非ネイティブAPの利用を禁止し、ネイティブAPのみをユーザに利用させるようにすることが考えられる。しかし、非ネイティブAPを利用することが禁止されてしまうと、ユーザは自らのニーズに応じて端末装置の機能を自由に追加することや変更することができず、甚だ不便である。
【0005】
そこで、非ネイティブAPを実行する場合には、その実行過程において端末装置に記憶されている重要なデータが自由に読み書きされないようにする仕組みを設けることが考えられる。このような仕組みを設けておけば、実行する非ネイティブAPが悪意のある者により提供されたものであっても、端末装置に記憶されている重要なデータを盗み出されることはなく、ユーザが予期せぬ不利益を被ることはない。
【0006】
このような重要なデータへのアクセス制限を実現するための技術の一つとして、オブジェクト指向技術が注目されている。オブジェクト指向技術を用いてAPを実行する環境(以下、「実行環境」という)においては、次のような仕組みにより、APの実行過程で端末装置に記憶されているデータを直接読み書きすることが禁止される。まず、オブジェクト指向技術を用いたAPの実行環境では、データと、このデータを操作する際に必須の手続き(以下、「メソッド」とする)とを一体化したオブジェクトが生成される。この実行環境においてAPを実行する場合には、オブジェクトに内包されているメソッドを呼出すことによりそのオブジェクトに内包されているデータを操作することのみが許容される。以下、このオブジェクトとAPとの関係について図10を参照しつつ説明する。
【0007】
図10は、オブジェクトとAPとの関係について説明するための図である。図10に示されるオブジェクトは二つの文字列データ(以下、「文字列1」、「文字列2」という)と二つのメソッドとを内包している。図10のデータ通知メソッドは、このメソッドを呼出したAP(以下、「呼出元AP」という)により指定されたデータ自体をその呼出元APへ引き渡すメソッドである。また、図10のデータ表示メソッドは、呼出元APにより指定されたデータを呼出元APにより指定された書式(例えば、所定の文字数毎に改行するなど)で端末装置の表示部へ表示させるメソッドである。つまり、呼出元APはデータ通知メソッドを呼出すことにより文字列1自体や文字列2自体を取得することや、データ表示メソッドを呼出すことにより文字列1や文字列2を所望の書式で端末装置の表示部に表示させることができる。
【0008】
図10に示すオブジェクトと呼出元APとの関係において注目すべき点は、上記データ表示メソッドを呼出して文字列1や文字列2を端末装置の表示部に表示させる場合には、呼出元APは表示させるデータ自体を取得していない点である。つまり、データ通知メソッドを有さないようにオブジェクトを構成すれば、このオブジェクトに内包されているデータが呼出元APに取得されることはない。以下では、データ通知メソッドを有しないオブジェクトを「完全カプセル化オブジェクト」と称し、データ通知メソッドを少なくとも一つ有するオブジェクトを「非完全カプセル化オブジェクト」と称する。完全カプセル化オブジェクトを用いて端末装置に記憶されている重要なデータを扱うようにすれば、重要なデータがAPの実行過程で盗み出されることはなく、重要なデータのセキュリティが確保される。
【0009】
なお、本出願人は先行技術調査を行ったが、完全カプセル化オブジェクトを用いてデータのセキュリティを確保する技術を開示した先行技術文献はなかった。一方、本出願人は、以上に説明した実行環境と完全カプセル化オブジェクトとを用いることにより、端末装置に記憶されている重要なデータのセキュリティを確保しつつ非ネイティブAPを実行する技術について特許出願(特願2002−143608)を既に行っている。
【0010】
【発明が解決しようとする課題】
ところで、APの実行過程において、データを表示部に表示させる際には、そのデータのデータ長(例えば、文字列データであれば、その文字数)を知ることができると便利な場合がある。一般に、端末装置の表示部には、一行のデータとして表示可能な最大データ長が予め定められており、この最大データ長よりも長いデータをそのまま表示させようとすると表示不能な旨のエラーが通知される場合がある。表示部に表示させるデータのデータ長を事前に知ることができれば、上述したデータ表示メソッドを呼出す際に適切な書式を指定することにより、そのようなエラーの発生を回避することができる。例えば、表示部に表示させるデータのデータ長が上記最大データ長を超えている場合には、最大データ長に対応する文字数毎に改行するように書式を指定してデータ表示メソッドを呼出せばよい。
【0011】
しかし、完全カプセル化オブジェクトに内包されているデータについては、上述したようにAPの実行過程でそのデータ自体を取得することはできないため、そのデータのデータ長を算出することはできない。
【0012】
そこで、この問題を解決するために、内包されているデータ自体を呼出元APへ送ることはないが、そのデータのデータ長を呼出元APへ通知するメソッドを完全カプセル化オブジェクトに設ける、という方法が考えられる。このようなメソッドを完全カプセル化オブジェクトに設けると、APは、このメソッドを呼出すことにより完全カプセル化オブジェクトに内包されているデータのデータ長を知ることができ、そのデータを扱う際の利便性が向上する。
【0013】
ところで、一般にデータはその属性に応じた固有のデータ長を有するものである。例えば、携帯電話機の電話番号ならばそのデータ長は11文字であるし、預金口座の口座番号(以下、「預金口座番号」という)ならばそのデータ長は7文字である。このように、データはその属性に応じた固有のデータ長を有するものであるから、APの実行過程で完全カプセル化オブジェクトに内包されているデータのデータ長が取得されると、そのデータ長に基づいて完全カプセル化オブジェクトに内包されているデータの属性を推定されてしまう虞がある。
【0014】
もっとも、APの実行過程でデータ長からそのデータの属性が推定されたとしても、そのデータ自体が漏洩することはないから、ユーザが直接的に不利益を被ることはない。しかしながら、そのAPを実行する端末装置に、どのような属性のデータが記憶されているかを知られてしまうことは、ユーザのプライバシー保護の観点からは好ましくない。
【0015】
本発明は上記課題に鑑みてなされたものであり、セキュリティを確保する必要のあるデータを扱う際の利便性を向上させつつ、そのデータの属性が推定されないようにする技術を提供することを目的としている。
【0016】
【課題を解決するための手段】
上記課題を解決するために、本発明は、制御手段と、文字列を含む複数のデータを記憶する第1の記憶領域と、該第1の記憶領域と異なる第2の記憶領域とを有する記憶手段とを備え、オブジェクト指向言語で記述された所定のアプリケーションプログラムの実行過程において、操作に応じて前記文字列の読み出しが要求されるときに、前記第2の記憶領域に生成されるオブジェクトであって、該文字列と該文字列に対する所定の操作を実行するためのメソッドとを内包するオブジェクトを介して該文字列が読み出され、前記第1の記憶領域に記憶された文字列の読み出しが禁止される端末装置であって、前記制御手段は、アプリケーションプログラムを特定する特定処理と、前記特定処理により特定されたアプリケーションプログラムが前記所定のアプリケーションプログラムである場合に、該所定のアプリケーションプログラムの実行過程において読み出しが要求される前記文字列と該文字列に対する所定の操作を実行するためのメソッドとを内包するオブジェクトであって、該所定のアプリケーションプログラムへ該文字列を引き渡すメソッドを有しないオブジェクトを前記第2の記憶領域に生成する生成処理とを実行し、前記生成処理において、前記所定の操作が前記文字列のデータ長の通知である場合に、該操作に対応するオブジェクトとして、該データ長に整数の揺らぎを加算したデータ長を通知するメソッドを内包するオブジェクトを生成する端末装置を提供する。
【0017】
また、上記課題を解決するために、本発明は、文字列を含む複数のデータを記憶する第1の記憶領域と、該第1の記憶領域と異なる第2の記憶領域とを有する記憶手段を備え、オブジェクト指向言語で記述された所定のアプリケーションプログラムの実行過程において、操作に応じて前記文字列の読み出しが要求されるときに、前記第2の記憶領域に生成されるオブジェクトであって、該文字列と該文字列に対する所定の操作を実行するためのメソッドとを内包するオブジェクトを介して該文字列が読み出され、前記第1の記憶領域に記憶された文字列の読み出しが禁止される端末装置のコンピュータを、アプリケーションプログラムを特定する特定処理と、前記特定処理により特定されたアプリケーションプログラムが前記所定のアプリケーションプログラムである場合に、該所定のアプリケーションプログラムの実行過程において読み出しが要求される前記文字列と該文字列に対する所定の操作を実行するためのメソッドとを内包するオブジェクトであって、該所定のアプリケーションプログラムへ該文字列を引き渡すメソッドを有しないオブジェクトを前記第2の記憶領域に生成する生成処理とを実行し、前記生成処理において、前記所定の操作が前記文字列のデータ長の通知である場合に、該操作に対応するオブジェクトとして、該データ長に整数の揺らぎを加算したデータ長を通知するメソッドを内包するオブジェクトを生成する手段として機能させるためのプログラムと、コンピュータ読み取り可能な記録媒体であって、当該プログラムを記録した記録媒体とを提供する。
【0018】
このような端末装置、プログラムおよび記録媒体を用いると、APの実行過程において、端末装置に記憶されているデータが直接アクセスされることが禁止されると共に、該データを内包したオブジェクトであって、該データを呼出元へ通知するメソッドを有さないオブジェクトが生成される。そして、APの実行過程で、このオブジェクトに内包されているデータのデータ長を通知することが要求された場合には、揺らぎが加算されたデータ長が通知される。
【0019】
【発明の実施の形態】
以下、図面を参照しつつ本発明の実施形態について説明する。
【0020】
[A.構成]
(1:通信システムの構成)
図1は本発明の実施形態に係る通信システムの構成例を示す図である。図1に示されるように、この通信システムは、コンテンツサーバ10と、インターネット20と、ゲートウェイ装置30と、移動パケット通信網40と、基地局50と、端末装置60とを有している。なお、図1には、一つのコンテンツサーバ10と一つの端末装置60とが例示されているが、実際には、複数のコンテンツサーバ10と複数の端末装置60とが存在する。
【0021】
コンテンツサーバ10は、インターネット20および移動パケット通信網40を介して端末装置60とパケット通信を行う機能を有している。このコンテンツサーバ10には、インターネット20を介して端末装置60へ提供するAPが格納されている。このAPは、オブジェクト指向のコンピュータ言語の一つであるJava(登録商標)により記述されたプログラムであり、Java実行環境で実行可能なJavaバイトコードにより構成されている。以下では、このようなAPを「JavaAP」と称する。このJavaAPは、インターネット20を介して端末装置60へ提供される非ネイティブAPである。
【0022】
ゲートウェイ装置30は、インターネット20における通信プロトコルと移動パケット通信網40における通信プロトコルとを相互変換する機能を備えており、インターネット20と移動パケット通信網40との間のパケット通信を中継するためのものである。
【0023】
移動パケット通信網40は、ゲートウェイ装置30と基地局50とに接続されており、基地局50に収容されている端末装置60に対してパケット通信サービスを提供するためのものである。なお、図1に示す通信システムは、移動パケット通信網40の他に、図示せぬ移動通信網を備えている。この移動通信網は、端末装置60に対して一般的な移動電話の通話サービスを提供するものである。
【0024】
基地局50は、一定の広さ(例えば、基地局50を中心とする半径500メートの広さ)を有する無線セルを形成するものである。基地局50は、自局の形成する無線セル内に在圏する端末装置60を収容し、この端末装置60と無線通信するためのものである。
【0025】
端末装置60はJava実行環境を備えた携帯電話機であり、在圏している無線セルを形成する基地局50と無線通信を行う。この端末装置60は、移動パケット通信網40およびインターネット20を介してコンテンツサーバ10とパケット通信を行う機能を有しており、コンテンツサーバ10から上述したJavaAPをダウンロードすることができる。本実施形態においては、このJavaAPが既に端末装置60にダウンロードされているものとする。
【0026】
(2:端末装置60の構成)
次に、図2を参照しつつ端末装置60の構成を説明する。図2に示されるように、端末装置60は、CPU(Central Processing Unit)210と、操作部220と、表示部230と、無線通信部240と、計時部250と、記憶部260と、これら各要素間のデータ授受を仲介するバス270とを有している。
【0027】
CPU210は、記憶部260に格納されているソフトウェアを実行することにより、端末装置60の各部を制御するものである。操作部220は、数字や文字、操作指示などをユーザに入力させるための複数の操作子を備えており、これらの操作子の操作内容に応じた情報をCPU210へ引き渡す。表示部230は、例えば液晶ディスプレイとその駆動回路であり、CPU210から引き渡された情報に応じた画像を表示する。この表示部230は、一行のデータとして表示可能な最大データ長を予め記憶しており、その最大データ長を超える長さのデータの表示をCPU210から要求された場合には、表示不能な旨のエラーをCPU210へ通知する。
【0028】
無線通信部240は、アンテナ(図示省略)を備えており、基地局50と無線通信するためのものである。この無線通信部240は基地局50から送信されてくる情報を受信し、受信した情報をCPU210へ引き渡すと共に、CPU210から引き渡された情報を基地局50へ送出する。計時部250は、計時機能を備えており、現在時刻を示すデータをCPU210へ供給するためのものである。
【0029】
記憶部260は、RAM(Random Access Memory)261と、ROM(Read Only Memory)262と、不揮発性メモリ263とを有している。RAM261は各種ソフトウェアを実行中のCPU210によりワークエリアとして使用される。
【0030】
ROM262には、オペレーティングシステム(以下、「OS」という)を実現するためのOSソフトウェアや、Java実行環境を構築するためのソフトウェアや、ブラウザソフトウェアや、ネイティブAPが格納されている。このネイティブAPには、自身がネイティブAPであることを示す識別情報が内包されている。このネイティブAPは、OSによる制御の下でCPU210により直接実行される。
【0031】
不揮発性メモリ263は、例えばEEEPROM(Electrically Erasable Programmable Read Only Memory)であり、コンテンツサーバ10からダウンロードされたJavaAPが格納される。また、不揮発性メモリ263には、ユーザの個人情報や、個人情報以外のデータが格納されている。個人情報の一例としては、ユーザの電話番号や預金口座番号などが挙げられる。また、個人情報以外のデータとしては、例えば、ユーザにより制作された画像データ(以下、「自作画像データ」という)が挙げられる。さらに不揮発性メモリ263には、重要度テーブル263aおよびJARストレージ263bが格納されている。
【0032】
ここで、重要度テーブル263aについて図3を参照しつつ説明する。図3に示されるように、重要度テーブル263aには、不揮発性メモリ263に格納されているデータ毎に、そのデータの重要度を示す情報(以下、単に、「重要度」という)が格納されている。図3に示されるように、重要度は“1”または“0”の何れかの値を有するデータであり、重要度の値が“1”である場合には、「重要度が高いこと」を意味し、重要度の値が“0”である場合には、「重要度が低いこと」を意味している。例えば、図3では、ユーザの電話番号や預金口座番号については重要度が高いデータであることが、一方、自作画像データについては重要度が低いデータであることが例示されている。
【0033】
次に、JARストレージ263bについて説明する。端末装置60へダウンロードされるJavaAPは、JavaAPの本体プログラム(Javaバイトコードで記述されたプログラム)と、このプログラムを実行する際に使用される画像データを格納した画像ファイルや音声データを格納した音声ファイルなどの、いわゆる「リソース」を一つにまとめたJAR(Java ARchive)ファイルとである。JARストレージ263bは、このJARファイルを格納するためのものである。
【0034】
(3:Java実行環境)
次に、ダウンロードされたJavaAPを実行するためのJava実行環境について図4を参照しつつ説明する。図4は、端末装置60におけるJava実行環境を説明するための図である。この図に示されるように、端末装置60には、J2ME(Java 2 platform Micro Edition)に準拠したJava実行環境を実現するためのソフトウェアが組み込まれている。ここで、J2MEとは、小型電子器機向けに定められたJava実行環境の規格である。この端末装置60に組み込まれたソフトウェアには、KVMと、CLDC(Connected Limited Device Configuration)クラスライブラリと、オリジナルJava拡張プロファイルとが含まれている。
【0035】
ここで、KVMは、JVMの一種であり、携帯電話機やPDA等の小型電子機器用に設計されている。JVMとは、JavaAPのようなJavaバイトコードにより構成されているプログラムをCPU210が解釈し実行可能なマシン語コードに変換し、CPU210に実行させるためのものである。また、CLDCクラスライブラリは、携帯電話機やPDAなどの小型電子器機向けの汎用的な機能を提供するためのクラスライブラリである。
【0036】
オリジナルJava拡張プロファイルは、CLDCクラスライブラリを基礎として携帯電話機に特化した機能を提供するためのクラスライブラリである。このオリジナルJava拡張プロファイルには、例えば、ユーザインタフェイスAPI(Application Program Interface)、ネットワーキングAPI、スクラッチパッドAPI、完全カプセル化API、非完全カプセル化APIなどが含まれている。
【0037】
ユーザインタフェイスAPIとは、端末装置60のユーザインタフェイス機能をサポートするためのAPIである。ネットワーキングAPIとは、URL(Uniform Resource Locator)により指定されたネットワークリソースへアクセスするためのAPIである。スクラッチパッドAPIとは、スクラッチパッドに対する書き込みや読み出しをサポートするためのAPIである。スクラッチパッドとは、詳細な図示は省略したが、不揮発性メモリ263内に設けられた記憶領域である。このスクラッチパッドには、JavaAPの実行に応じて発生するデータが格納される。さらに、完全カプセル化APIは、完全カプセル化オブジェクトを生成するためのAPIであり、非完全カプセル化APIは、非完全カプセル化オブジェクトを生成するためのAPIである。
【0038】
CPU210が完全カプセル化APIを実行することにより生成される完全カプセル化オブジェクトには、上述したデータ表示メソッドが内包されている。また、この完全カプセル化オブジェクトには、内包しているデータのデータ長を揺らがせて通知するメソッド(以下、「データ通知メソッド」という)が内包されている。具体的には、本実施形態においては、このデータ通知メソッドが呼出されると、この完全カプセル化オブジェクトに内包されているデータの実際のデータ長に、あるアルゴリズムに基づいて算出される値が加算されて呼出元へ通知される(以下では、このデータ通知メソッドにより通知されるデータ長と実際のデータ長との差を「揺らぎ」と称する)。
【0039】
一方、CPU210が非完全カプセル化APIを実行することにより生成される非完全カプセル化オブジェクトには、上述したデータ通知メソッドが内包されている。JavaAPの実行過程において、CPU210は、このメソッドを呼出し実行することにより、非完全カプセル化オブジェクトに内包されているデータ自体を取得することができる。
【0040】
なお、詳細な図示は省略したが、端末装置60は、上述したCLDCクラスライブラリやオリジナルJava拡張プロファイルの他に、メーカ独自拡張ライブラリを有している。このメーカ独自拡張ライブラリは、端末装置60の製造者がそれぞれ独自の機能を提供するためのクラスライブラリである。
【0041】
JAM(Java Application Manager)は、OSによる制御の下で、端末装置60にダウンロードされたJavaAPの管理や、完全カプセル化オブジェクトや非完全カプセル化オブジェクトの管理を行うためのソフトウェアである。まず、JAMを実行中のCPU210が行うJavaAPの管理について説明する。JavaAPの管理を行うために、CPU210は、JAMに従い、JavaAPのインストールや更新、削除を行う機能、不揮発性メモリ263に格納されているJavaAPの名称をリスト表示する機能、JavaAPの実行管理を行う機能を営む。
【0042】
JavaAPの実行管理を行う機能とは、JavaAPの起動や強制終了を行ったり、JavaAPの実行過程において、CPU210のアクセス可能なリソースを制限する機能である。この機能により、JavaAPを実行中のCPU210が直接アクセスすることができるリソースは、このJavaAPのダウンロード元のコンテンツサーバ10と、このJavaAP専用に設けられたJARストレージ263bおよびRAM261のみに制限される。すなわち、JavaAPを実行中のCPU210は不揮発性メモリ263に格納されているユーザの電話番号や預金口座番号などには直接アクセスすることはできない。これらのデータについては、JavaAPを実行中のCPU210は、これらのデータを内包しているオブジェクトに内包されているメソッドを呼出すことによりアクセスすることができる。このようにJavaAPを実行中のCPU210がアクセスすることができるリソースを制限するのは、JavaAPが非ネイティブAPだからである。
【0043】
次に、CPU210がJAMに従って行うオブジェクトの管理について説明する。CPU210は、JavaAPの実行に先立って、JAMに従って、当該JavaAPにより使用されるデータを内包する完全カプセル化オブジェクトや非完全カプセル化オブジェクトを生成し、生成したオブジェクトをRAM261へ格納する。これは、JavaAPの使用するデータを内包しているオブジェクトをJavaAPがアクセス可能なリソースへ予め格納しておくためである。
【0044】
[B.動作]
次に、本実施形態の動作について説明する。
【0045】
(1:オブジェクト生成処理)
次に、端末装置60において、CPU210により実行されるオブジェクト生成処理について図5を参照しつつ説明する。このオブジェクト生成処理は、上述したように、CPU210がJAMに従って実行する処理である。例えば、画面表示されたAPの一覧リストの中から、実行するAPが操作入力により指定された場合などに実行される。なお、APの実行を指示する形態は、操作入力によるものに限定されるものではない。例えば、他のAPを実行中のCPU210から実行が指示される場合、電子メールなどを用いて端末装置60の外部からAPの実行が指示される場合などもある。
【0046】
図5に示すように、まず、端末装置60のCPU210は、実行することを指示されたAPを特定する(ステップSA1)。次に、CPU210は、ステップSA1で特定したAPがネイティブAPであるか、非ネイティブAPであるかを判定する(ステップSA2)。前述したように、ネイティブAPには、自身がネイティブAPであることを示す識別情報が付与されている。したがって、CPU210は、APに上記識別情報が付与されているか否かを判定することにより、このAPがネイティブAPであるのか、それとも非ネイティブAPであるのかを判定することができる。
【0047】
ステップSA2の判定結果が「Yes」である場合(すなわち、ネイティブAPである場合)は、オブジェクト生成処理を終了すると共に、そのAPを実行する。すなわち、実行するAPがネイティブAPである場合には、オブジェクトの生成は行われない。その理由は、ネイティブAPについては、ユーザにとって不利益な動作を行わないことが確認されているので、そのAPの実行過程においてCPU210がアクセスするリソースを制限する必要がないからである。
【0048】
一方、ステップSA2の判定結果が「No」である場合(すなわち、非ネイティブAPである場合)は、その非ネイティブAP(例えば、ダウンロードされたJavaAP)の内容を解析し、不揮発性メモリ263に格納されているデータのうち、このJavaAPの実行過程でアクセスされるデータを特定する(ステップSA3)。なお、JavaAPの実行過程でアクセスされるデータを特定する際には、このJavaAPのJARファイルに格納されているデータは特定対象から除外する。これは、JARファイルに格納されているデータは、このJavaAPを実行する上で必要となるデータとして当該JavaAPの提供者が用意したデータだからである。
【0049】
次に、CPU210は重要度テーブル263a(図3)を参照して、ステップSA3にて特定したデータを完全カプセル化オブジェクトに内包させるのか、非完全カプセル化オブジェクトに内包させるのかを決定する(ステップSA4)。具体的には、CPU210は、ステップSA3で特定したデータに対応づけられている重要度の値が、“0”である場合には、そのデータを非完全カプセル化オブジェクトに内包させることとし、逆に、重要度の値が、“1”である場合には、そのデータを完全カプセル化オブジェクトに内包させることとする。
【0050】
そして、CPU210は、上記ステップSA4の判定結果に従って、上記ステップSA3において特定したデータを内包する完全カプセル化オブジェクトまたは非完全カプセル化オブジェクトを生成し、当該オブジェクトをRAM261へ格納して(ステップSA5)、オブジェクト生成処理を終了する。
【0051】
なお、上記ステップSA3においてJavaAPの使用するデータが複数特定された場合には、CPU210は、特定されたデータ毎に、当該データ用の完全カプセル化オブジェクトまたは非完全カプセル化オブジェクトを生成してRAM261へ格納する。すなわち、CPU210は、上記ステップSA4およびステップSA5の処理を特定されたデータ毎に繰り返して行う。そして、CPU210は、オブジェクト生成処理を終了した後、実行するAPとして指定されたJavaAPを起動し、このJavaAPに基づく処理を開始する。
【0052】
(2:データ長取得処理)
次に、JavaAPの実行過程で、上記オブジェクト生成処理にて生成したオブジェクトに内包されているデータのデータ長をCPU210が取得するデータ長取得処理について説明する。なお、非完全カプセル化オブジェクトに内包されているデータについては、上述したデータ通知メソッドを用いて、そのデータ自体を取得しデータ長を算出することが可能であるが、これについては本発明との関係が希薄であるのでその説明を省略する。ここでは、完全カプセル化オブジェクトに内包されているデータのデータ長を取得する処理についてのみ説明する。
【0053】
図6は、JavaAPの実行過程において、CPU210が完全カプセル化オブジェクトに内包されているデータ長通知メソッドを呼出し実行することにより、この完全カプセル化オブジェクトに内包されているデータのデータ長を取得するデータ長取得処理の流れを示すフローチャートである。この図に示されるように、CPU210は、まず、計時部250から現在時刻を示すデータを取得する(ステップSB1)。
【0054】
次に、CPU210は、ステップSB1にて取得した現在時刻を示すデータをシードとして、例えば混合合同法などの擬似乱数生成アルゴリズムに従って擬似乱数を一つ生成する(ステップSB2)。なお、ステップSB2で実行される擬似乱数生成アルゴリズムについては、混合合同法に限定されるものではなく、他の擬似乱数生成アルゴリズムであっても良い。
【0055】
次に、CPU210は、ステップSB2にて生成された擬似乱数をシードとして所定の範囲(例えば、0以上3未満の範囲)内の擬似乱数を生成する(ステップSB3)。このように、ステップSB2で生成した擬似乱数をシードとして更に擬似乱数を生成するのは、生成した擬似乱数から統計的に擬似乱数生成アルゴリズムを推定されることを防止するためである。
【0056】
次に、CPU210は、ステップSB3にて生成した擬似乱数の値に基づいて、データ長を呼出元へ通知する際の揺らぎを算出する(ステップSB4)。例えば、CPU210はステップSB3にて生成した擬似乱数の値が0以上かつ1未満の値である場合には、呼出元へ通知する揺らぎを1とし、1以上かつ2未満の値である場合には、この揺らぎを2とし、2以上かつ3未満の値である場合には、この揺らぎを3とする。そして、CPU210は、ステップSB4にて算出した揺らぎを加算したデータ長を呼出元へ通知し(ステップSB5)、データ長取得処理を終了する。
【0057】
以上に説明したように、JavaAPの実行過程でCPU210はデータ長通知メソッドを呼出し実行することにより、完全カプセル化オブジェクトに内包されているデータのデータ長として揺らいだ値を取得することができる。このようにして取得されたデータ長には揺らぎが含まれているから、取得されたデータ長からそのデータの属性が推定されることはない。また、CPU210は、データ表示メソッドを呼出して完全カプセル化オブジェクトに内包されているデータを表示部230に表示させる際に、事前にデータ長通知メソッドを呼出すことにより、そのデータ長を取得することができる。そして、取得したデータ長が上述した最大データ長を超えている場合には、データ表示メソッドを呼出す際に適宜書式を指定すること(例えば、最大データ長に応じた文字数毎に改行するなど)により、表示不能な旨のエラーが発生しないようにすることができる。
【0058】
[C.変形例]
以上、本発明の実施形態について説明したが、本発明は係る実施形態に限定されるものではなく、その技術思想の範囲内で様々な変形が可能である。なお、変形例としては、例えば、以下のようなものが考えられる。
【0059】
(変形例1)
上述した実施形態では、データ長通知メソッドを用いて完全カプセル化オブジェクトに内包されているデータのデータ長を呼出元APへ通知する際に、実際のデータ長よりも大きい値を通知する場合について説明したが、実際のデータ長よりも小さい値が通知されても良い。具体的には、上述したデータ長取得処理のステップSB5にて、CPU210は、ステップSB4で算出した値を実際のデータ長から減算して呼出元APへ通知するとしても良い。ただし、このような場合には、通知されたデータ長と上述した最大データ長とを比較し、実際には最大データ長を超えているデータについて、そのデータのデータ長が最大データ長を超えていないと判定されてしまうといった問題がある。このような問題を解決するために、実際のデータ長よりも小さい値を通知する場合には、揺らぎの大きさの最大値(本変形例においては、「3」、以下、揺らぎの大きさの最大値を「揺らぎの幅」と称する)を呼出元APへ通知することが考えられる。そして、通知されたデータ長に上記揺らぎの幅を加算した値と最大データ長とを比較するようにすれば、実際には最大データ長を超えているデータについて、そのデータのデータ長が最大データ長を超えていないと判定されることが回避される。なお、上述した実施形態他では、実際のデータ長よりも大きい値(実際のデータ長に対して、+1〜+3の値)を通知する場合について説明し、本変形例では、実際のデータ長よりも小さい値(実際のデータ長に対して、−3〜−1の値)を通知する場合について説明した。しかしながら、呼出元へ通知されるデータ長が、実際のデータ長よりも常に大きくなることや、実際のデータ長よりも常に小さくなることに限定されないことは言うまでもない。実際のデータ長に対して−3〜+3の値が通知されるとしても良く、また、実際のデータ長に対して−1〜+3の値や、−3〜+1の値が通知されるとしても良い。例えば、実際のデータ長に対して−3〜+3の値で通知する場合には、図6のステップSB3において、−4より大きく、かつ、+4未満の実数型の擬似乱数を生成する。そして、この擬似乱数の整数部分を揺らぎの値として求め(図6:ステップSB4)、このようにして算出された揺らぎを実際のデータ長に加算することで実現される。また、上述した実施形態および本変形例においては、揺らぎの幅が「3」である場合について説明した。しかしながら、揺らぎの幅をどの程度の大きさとするかは、設計事項の範疇であり、「3」に限定されるものではないことは言うまでもない。
【0060】
また、上述した実施形態では、計時部250により取得された現在時刻をシードとして算出された擬似乱数を用いて揺らぎを算出する場合について説明した。しかしながら、呼出元APへ通知するデータ長を揺らがせることを実現する態様は、擬似乱数を用いる態様に限定されるものではない。
【0061】
例えば、データ毎にAPへ通知するデータ長(以下、「通知データ長」という)を対応付けて不揮発性メモリ263に格納させておき、上記データ長通知メソッドが呼出された場合には、この通知データ長が呼出元APへ通知されるとしても良い。具体的には、実際のデータ長が10文字以上かつ15文字未満であるデータについては、通知データ長の値として15を対応付けて不揮発性メモリ263に格納させておき、上記データ長通知メソッドを呼出すことにより、この通知データ長が呼出元APへ通知されるとすることで実現可能である。このように、データ毎に通知データ長を対応付けて不揮発性メモリ263に格納させておく態様では、擬似乱数を生成する必要がないため計時部250は不要になる。
【0062】
(変形例2)
上述した実施形態では、セキュリティを確保すべき重要度なデータとして、ユーザの携帯電話機の電話番号や預金口座番号を例示した。しかしながら、本発明の適用対象であるデータは、携帯電話機の電話番号や預金口座番号に限定されるものではなく、クレジットカードのカード番号や暗証番号であっても良い。要は、APの実行過程で取り扱われる個人情報であって、固有のデータ長を有するデータであれば良い。
【0063】
(変形例3)
上述した実施形態では、データの文字数をデータ長として用いる場合について説明した。しかしながら、係るデータ長は文字数に限定されるものではなく、そのデータのバイト数や、そのデータを表示部230に表示する際に要するピクセル数であっても良い。データのバイト数やピクセル数を知られてしまうと、1文字当たりのバイト数やピクセル数からそのデータの文字数を算出されてしまうからである。なお、ピクセル数とは液晶ディスプレイなどにおいて、表示するかしないか、もしくはその色や輝度を制御できる最小の単位である。
【0064】
(変形例4)
上述した実施形態では、端末装置60の不揮発性メモリ263に格納されているデータを扱うオブジェクトとして、完全カプセル化オブジェクトと非完全カプセル化オブジェクトとを用いる場合について説明したが、完全カプセル化オブジェクトのみを用いても良い。すなわち、端末装置60の不揮発性メモリ263に格納されているデータについては、常に、完全カプセル化オブジェクトで扱うとしても良い。この場合、上述した重要度テーブル263aは不要となる。また、上述した実施形態では、重要度テーブル263aを用いる構成としたが、電話番号、預金口座番号および自作画像データなどのデータ自体に重要度を付与するようにすれば、重要度テーブル263aを用いる必要はない。
【0065】
また、上述した実施形態では、端末装置60に記憶されているデータの重要度を“0”(重要度が低い)または“1”(重要度が高い)の二つの値を用いて区別し、この重要度の値に基づいて当該データを扱うオブジェクトを完全カプセル化オブジェクトとするか、非完全カプセル化オブジェクトとするかを決定する場合について説明した。しかしながら、例えば、データの重要度を示す値として、“0(重要度「低」)”〜“5(重要度「高」)”までの値を各データに対して付与し、この重要度の値が“0”〜“2”のデータについては、非完全カプセル化オブジェクトで扱い、重要度の値が“3”〜“5”のデータについては、完全カプセル化オブジェクトで扱うとしても良い。更に、完全カプセル化オブジェクトに内包されているデータのデータ長を通知する際に、重要度が高いほど揺らぎの幅を大きくして通知するとしても良い。このようにすると、揺らぎの幅が大きいほど実際のデータ長を知ることが困難になるから、重要度が高いデータほどデータ長からそのデータの属性を推定することが困難になるといった効果を奏する。
【0066】
(変形例5)
上述した実施形態では、JavaAPの実行過程でアクセスされるデータのうち、端末装置60の不揮発性メモリ263に格納されているデータであって重要度の高いデータについてのみ完全カプセル化オブジェクトで扱う場合について説明した。しかしながら、JavaAPの実行過程でユーザにより入力されたデータについても完全カプセル化オブジェクトで扱うとしても良い。また、JavaAPの実行過程でユーザにデータを入力させる際に、そのデータの重要度と対応づけて入力させ、重要度の高いデータについては、完全カプセル化オブジェクトで扱うとしても良い。このように、JavaAPの実行過程でユーザにより入力されるデータを完全カプセル化オブジェクトで扱う理由は、このようなデータにはユーザの個人情報が含まれている可能性があるからである。
【0067】
(変形例6)
上述した実施形態では、不揮発性メモリ263に格納されているデータについてのみ完全カプセル化オブジェクトで扱う場合について説明したが、このようなデータの一部からなる部分データについても完全カプセル化オブジェクトで扱うとしても良い。このような部分データにもユーザの個人情報が含まれている可能性があるからである。
【0068】
(変形例7)
上述した実施形態では、オブジェクト生成処理にて生成したオブジェクトをRAM261へ格納する場合について説明した。しかしながら、オブジェクトの格納先はRAM261に限定されるものではなく、不揮発性メモリ263であっても良い。
【0069】
例えば、図7に示すように、不揮発性メモリ263に個別スクラッチパッド263cや共通スクラッチパッド263dを設けておき、この個別スクラッチパッド263cや共通スクラッチパッド263dへ生成したオブジェクトを格納するとしても良い。なお、個別スクラッチパッドとは、JavaAPの使用するデータをJavaAP毎に格納するための記憶領域であり、共通スクラッチパッドとは、複数のJavaAPに共有されるデータを格納するための記憶領域である。このように、生成したオブジェクトを不揮発性メモリ263へ格納するようにすると、一度生成したオブジェクトを再利用することができるといった効果を奏する。更に、生成したオブジェクトの格納先が共通スクラッチパッド263dである場合には、複数のJavaAPがそのオブジェクトを共同利用できるといった効果も奏する。
【0070】
また、上述した実施形態では、JavaAPの実行に先立って、当該JavaAPの使用するデータを内包するオブジェクトを生成しておく場合について説明したが、JavaAPの実行過程において、データを使用する度毎に当該データを内包するオブジェクトの生成を行うとしても良い。
【0071】
(変形例8)
上述した実施形態では、非ネイティブAPの一例として、インターネットを介してダウンロードされたJavaAPについて説明した。しかしながら、端末装置60にインストールされる非ネイティブAPは、ダウンロードされたJavaAPに限定されるものではなく、例えばCD−ROMなどのコンピュータ装置読み取り可能な記録媒体に記録されて配布されるJavaAPであっても良い。
【0072】
なお、端末装置60にダウンロードされたJavaAPや、記録媒体に記録されて配布されるJavaAPであっても、例えば、移動パケット通信網40を運営する通信事業者やCA(Certificate Authority)のような公正な第三者機関により、その内容が審査され、一定の動作基準を満たしていると認定されたAP(以下、「トラステッドAP」という)であれば、ネイティブAPと同様にアクセス可能なリソースを制限する必要はない。例えば、このようなトラステッドAPにネイティブAPに内包されている識別情報と同一の識別情報を内包させておけば、CPU210は、ネイティブAPと同様にアクセス可能なリソースを制限することなく、トラステッドAPを実行することができる。また、上述した実施形態では、ネイティブAPについてはOSを実行中のCPU210により直接実行される場合について説明した。しかしながら、ネイティブAPについてもJAMを実行中のCPU210により実行されるとすることももちろん可能である。
【0073】
(変形例9)
上述した実施形態では、図8においてハッチングで示すように、KVMと、CLDCクラスライブラリと、オリジナルJava拡張プロファイルとを備えるJ2MEが組み込まれた端末装置60に本発明を適用した場合について説明したが。しかしながら、本発明を適用可能なJava実行環境はJ2MEに準拠したもの限定されるものではない。また、本発明を適用可能な端末装置は、携帯電話機に限定されるものではない。
【0074】
例えば、図8に示すように、オリジナルJava拡張プロファイルの替わりにMIDP(Mobile Information Device Profile)を有する構成であっても良い。また、KVMの代わりにJVMを有し、CLDCクラスライブラリの代わりにCDC(Connected Device Configuration)クラスライブラリを、また、オリジナルJava拡張プロファイルに替えて、例えば、液晶付電話機用プロファイル、TV用プロファイル、カーナビゲーション用プロファイルなどを有する構成であっても良い。さらには、HotSpotを有しJ2SE(Java2 Standard Edition)に準拠するJava実行環境であっても良く、また、HotSpotを有しJ2EE(Java2 Enterprise Edition)に準拠するJava実行環境であっても良い。なお、J2SEとは、PC向けに定められてJava実行環境の規格であり、J2EEとは、サーバコンピュータ装置向けに定められたJava実行環境の規格である。
【0075】
また、以上説明したJava実行環境の変形例から明らかなように、本発明は、例えば、PHS(Personal Handyphone System:登録商標)端末やPDA、カーナビゲーション装置、PCなどの各種電子機器に適用可能である。
【0076】
また、本発明に係る端末装置は、移動パケット通信網40に収容される端末装置60に限定されるものではない。例えば、図9に示すような通信システムにおいて、LAN70内に設けられたPC80A〜PC80Cに本発明を適用することも可能である。
【0077】
(変形例10)
上述した実施形態では、オブジェクト指向技術に基づく実行環境としてJava実行環境を用いる場合について説明したが、他のオブジェクト指向技術に基づく実行環境に本発明を適用することも可能である。但し、本発明はJava実行環境に適用された場合に、特に顕著な効果を奏する。以下、その理由について説明する。
【0078】
オブジェクト指向技術に基づく実行環境においては、APの実行過程でアクセスされるデータはオブジェクト内にカプセル化されている。このカプセル化には、プログラミング言語レベルでのカプセル化と、実行コード(マシン語またはバイトコード)レベルでのカプセル化とがある。前者は、オブジェクトに内包されているデータを直接読み書きするようなソースコードを実行コードへコンパイルしないようにすることで実現される。一方、後者は、オブジェクトに内包されているデータを直接読み書きするような実行コードを実行しないようにすることで実現される。例えば、プログラミング言語C++に基づくカプセル化はプログラミング言語レベルでのカプセル化であり、Javaに基づくカプセル化は実行コードレベルでのカプセル化である。
【0079】
より詳細に説明すると、C++に基づくカプセル化では、オブジェクト内のデータを格納するためのフィールドを全てprivateフィールドとして宣言することで、カプセル化が実現される。なお、privateフィールドとは、直接読み書きすることを禁止するデータを格納するためのフィールドである。このようなオブジェクトを生成した場合、確かに、このオブジェクト内のprivateフィールドに格納されているデータを直接読み書きするようなソースコードはコンパイルされることはないので、当然、実行コードが生成されることもない。しかしながら、このカプセル化は、コンパイラによって保証されているに過ぎず、例えば、悪意のある第三者がコンパイラを改造することにより、オブジェクト内のデータを不正に入手することが可能である。また、コンパイラを改造しなくても、悪意のある第三者がハンドアセンブルなどの手段でオブジェクト内のデータを不正に読み出す実行コードを生成することも不可能ではない。加えて、ポインタを用いて直接メモリにアクセスしてしまえば、オブジェクト内のデータを入手することができてしまう。
【0080】
これに対してJavaの場合、privateフィールドとして宣言されたフィールドは、private属性を有するフィールドであることを示すJavaバイトコードへコンパイルされる。KVMがクラスファイルをRAM261などへ展開する際も、フィールドのprivate属性は保持されている。したがって、仮にコンパイラを改造してオブジェクト内のprivateフィールドに格納されているデータを不正に読み出すようなバイトコードを生成したとしても、KVMがこれを検知するのでオブジェクト内のデータを入手することはできない。また、Javaはポインタをサポートしていないので、ポインタを用いて直接メモリにアクセスし、オブジェクト内のデータを入手することもできない。
【0081】
以上に説明したように、プログラミング言語レベルでのカプセル化が完全であっても、実行コードレベルでのカプセル化が完全でなければ、データを完全にカプセル化したとは言えない。Javaでは、プログラミング言語レベルのみに止まらず、実行コードレベルでの完全なカプセル化を達成することが可能である。このため、本発明の適用対象である実行環境としてはJava実行環境が最も好適である。
【0082】
(変形例11)
上述した実施形態では、完全カプセル化API、非完全カプセル化APIおよびJAMなど、本発明に係る端末装置に特有な機能を実現するためのソフトウェアを端末装置60に予め記憶させておく場合について説明した。しかしながら、コンピュータ装置読み取り可能な記録媒体にこれらのソフトウェアを記録しておき、この記録媒体を用いて、これらのソフトウェアを一般的なコンピュータ装置にインストールすることにより、係るコンピュータ装置に端末装置60と同一の機能を付与することも可能である。
【0083】
【発明の効果】
本発明によれば、セキュリティを確保する必要のあるデータを扱う際の利便性を向上させつつ、そのデータの属性を推定されることが回避されるといった効果を奏する。
【図面の簡単な説明】
【図1】 本発明に係る端末装置60を有する通信システムの構成例を示す図である。
【図2】 同端末装置60の構成例を示すブロック図である。
【図3】 同端末装置60に記憶されている重要度テーブル263aの一例を示す図である。
【図4】 同端末装置60に実装されているJava実行環境を示す図である。
【図5】 同端末装置60の実行するオブジェクト生成処理の流れを示すフローチャートである。
【図6】 同端末装置60の実行するデータ長取得処理の流れを示すフローチャートである。
【図7】 変形例7に係る端末装置60の不揮発性メモリ263の一例を示す図である。
【図8】 変形例9に係るJava実行環境の一例を示す図である。
【図9】 変形例9に係る通信システムの構成例を示す図である。
【図10】 オブジェクト指向技術に係るオブジェクトとプログラムとの関係について説明するための図である。
【符号の説明】
10…コンテンツサーバ、20…インターネット、30…ゲートウェイ装置、40…移動パケット通信網、50…基地局、60…端末装置、210…CPU、220…操作部、230…表示部、240…無線通信部、250…計時部、260…記憶部、262…ROM、261…RAM、263…不揮発性メモリ、263a…重要度テーブル、263b…JARストレージ、270…バス。
Claims (8)
- 制御手段と、
文字列を含む複数のデータを記憶する第1の記憶領域と、該第1の記憶領域と異なる第2の記憶領域とを有する記憶手段とを備え、
オブジェクト指向言語で記述された所定のアプリケーションプログラムの実行過程において、操作に応じて前記文字列の読み出しが要求されるときに、前記第2の記憶領域に生成されるオブジェクトであって、該文字列と該文字列に対する所定の操作を実行するためのメソッドとを内包するオブジェクトを介して該文字列が読み出され、前記第1の記憶領域に記憶された文字列の読み出しが禁止される端末装置であって、
前記制御手段は、
アプリケーションプログラムを特定する特定処理と、
前記特定処理により特定されたアプリケーションプログラムが前記所定のアプリケーションプログラムである場合に、該所定のアプリケーションプログラムの実行過程において読み出しが要求される前記文字列と該文字列に対する所定の操作を実行するためのメソッドとを内包するオブジェクトであって、該所定のアプリケーションプログラムへ該文字列を引き渡すメソッドを有しないオブジェクトを前記第2の記憶領域に生成する生成処理とを実行し、
前記生成処理において、
前記所定の操作が前記文字列のデータ長の通知である場合に、該操作に対応するオブジェクトとして、該データ長に整数の揺らぎを加算したデータ長を通知するメソッドを内包するオブジェクトを生成する
ことを特徴とする端末装置。 - 前記制御手段は、
前記特定処理により特定されたアプリケーションプログラムが前記所定のアプリケーションプログラムであるか否かを判定する判定処理を、前記生成処理を実行する前に実行する
ことを特徴とする請求項1に記載の端末装置。 - 通信網を介してアプリケーションプログラムを取得する取得手段を備え、
前記制御手段は、
前記判定処理において、前記取得手段により取得されたアプリケーションプログラムを前記所定のアプリケーションプログラムであると判定する
ことを特徴とする請求項2に記載の端末装置。 - 前記制御手段は、Javaバイトコードで構成されているアプリケーションプログラムを実行する
ことを特徴とする請求項1に記載の端末装置。 - 前記記憶手段は、データと該データの重要度とを対応付けて記憶し、
前記制御手段は、前記生成処理において、前記所定の操作が前記文字列のデータ長の通知である場合に、重要度が高いほど揺らぎの幅を大きくしてデータ長を通知するメソッドを内包するオブジェクトを生成する
ことを特徴とする請求項1に記載の端末装置。 - アプリケーションプログラムを実行中の前記制御手段により操作されるデータをユーザに入力させるための入力手段を備え、
前記制御手段は、前記生成処理において、前記入力手段により入力されたデータについても前記オブジェクトに内包させる
ことを特徴とする請求項1に記載の端末装置。 - 文字列を含む複数のデータを記憶する第1の記憶領域と、該第1の記憶領域と異なる第2の記憶領域とを有する記憶手段を備え、オブジェクト指向言語で記述された所定のアプリケーションプログラムの実行過程において、操作に応じて前記文字列の読み出しが要求されるときに、前記第2の記憶領域に生成されるオブジェクトであって、該文字列と該文字列に対する所定の操作を実行するためのメソッドとを内包するオブジェクトを介して該文字列が読み出され、前記第1の記憶領域に記憶された文字列の読み出しが禁止される端末装置のコンピュータを、
アプリケーションプログラムを特定する特定処理と、
前記特定処理により特定されたアプリケーションプログラムが前記所定のアプリケーションプログラムである場合に、該所定のアプリケーションプログラムの実行過程において読み出しが要求される前記文字列と該文字列に対する所定の操作を実行するためのメソッドとを内包するオブジェクトであって、該所定のアプリケーションプログラムへ該文字列を引き渡すメソッドを有しないオブジェクトを前記第2の記憶領域に生成する生成処理とを実行し、
前記生成処理において、
前記所定の操作が前記文字列のデータ長の通知である場合に、該操作に対応するオブジェクトとして、該データ長に整数の揺らぎを加算したデータ長を通知するメソッドを内包するオブジェクトを生成する
手段として機能させるためのプログラム。 - コンピュータ読み取り可能な記録媒体であって、請求項7に記載のプログラムを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002320953A JP4652660B2 (ja) | 2002-11-05 | 2002-11-05 | 端末装置、プログラムおよび記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002320953A JP4652660B2 (ja) | 2002-11-05 | 2002-11-05 | 端末装置、プログラムおよび記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004157643A JP2004157643A (ja) | 2004-06-03 |
JP4652660B2 true JP4652660B2 (ja) | 2011-03-16 |
Family
ID=32801644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002320953A Expired - Fee Related JP4652660B2 (ja) | 2002-11-05 | 2002-11-05 | 端末装置、プログラムおよび記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4652660B2 (ja) |
-
2002
- 2002-11-05 JP JP2002320953A patent/JP4652660B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004157643A (ja) | 2004-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101409634B1 (ko) | 무선 네트워크에서의 컨텐츠 보호를 위한 방법 및 장치 | |
US8087078B2 (en) | Communication device | |
JP4629304B2 (ja) | 通信装置、プログラムおよび記録媒体 | |
JP4597974B2 (ja) | 移動通信装置を使用してコンテンツ/コンテクストの高感度スキャニングを行うシステム、方法及びコンピュータプログラム製品 | |
JP4597973B2 (ja) | 移動通信フレームワークにおいてコンテンツ/セキュリティ分析機能にアクセスするためのapiシステム、方法、及びコンピュータプログラム製品 | |
JP4597975B2 (ja) | 移動通信フレームワークに使用するためのプラットホーム独立のスキャニングサブシステム | |
JP4448849B2 (ja) | 移動通信フレームワークにおいてスキャニングサブシステムを更新するための更新システム及び方法 | |
JP2005157657A (ja) | 携帯端末におけるアプリケーションデータ管理方法及び携帯端末 | |
US20060136548A1 (en) | Method for managing use of storage region by application | |
US7899973B2 (en) | Information processing device and program | |
CA2557811A1 (en) | Execution of unverified programs in a wireless device operating environment | |
US20030066059A1 (en) | Method for executing java application midlet using communication among java applications | |
JP4652660B2 (ja) | 端末装置、プログラムおよび記録媒体 | |
JP4680485B2 (ja) | 端末装置、プログラムおよび記録媒体 | |
TWI244615B (en) | Terminal device and computer readable medium | |
JP4612010B2 (ja) | データ処理装置、プログラムおよび記録媒体 | |
JP4138591B2 (ja) | 端末装置 | |
JP6375235B2 (ja) | 情報処理装置、プログラムに対するデータの引渡し方法及びプログラム | |
JPWO2003042818A1 (ja) | 端末装置、サーバ、コンピュータが実行する情報処理方法、プログラム、および媒体 | |
JP2004126736A (ja) | 通信端末及び通信制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050407 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080422 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080616 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080722 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080922 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081111 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090109 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20090120 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20090220 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101119 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101216 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4652660 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131224 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |