JP2006053406A - オブジェクトファイル配信方法、オブジェクトファイル配信システム、および電子機器 - Google Patents

オブジェクトファイル配信方法、オブジェクトファイル配信システム、および電子機器 Download PDF

Info

Publication number
JP2006053406A
JP2006053406A JP2004235724A JP2004235724A JP2006053406A JP 2006053406 A JP2006053406 A JP 2006053406A JP 2004235724 A JP2004235724 A JP 2004235724A JP 2004235724 A JP2004235724 A JP 2004235724A JP 2006053406 A JP2006053406 A JP 2006053406A
Authority
JP
Japan
Prior art keywords
object file
name
constant information
cipher
unit
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.)
Withdrawn
Application number
JP2004235724A
Other languages
English (en)
Inventor
Hiroyuki Komori
小森  裕之
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004235724A priority Critical patent/JP2006053406A/ja
Publication of JP2006053406A publication Critical patent/JP2006053406A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】 配信されるオブジェクトファイルの機密性を高め、かつ受信側の端末装置の負荷を抑える。
【解決手段】 暗号変換テーブル1aは、オブジェクトファイル1eに含まれる定数情報を暗号に変換するためのテーブルである。暗号変換部1bは、暗号変換テーブル1aを参照してオブジェクトファイル1eに含まれる定数情報を暗号に変換する。定数情報削除部1cは、暗号に変換された定数情報をオブジェクトファイル1eから削除する。配信部1dは、オブジェクトファイル1eを配信する。暗号復元テーブル2aは、暗号変換テーブル1aと同じ内容を有し、サーバ1から配信されるオブジェクトファイル2dの暗号を元の定数情報に復元するためのテーブルである。受信部2bは、サーバ1から配信されるオブジェクトファイル2dを受信する。定数情報復元部2cは、暗号復元テーブル2aを参照してオブジェクトファイル2dに含まれる暗号を定数情報に復元する。
【選択図】 図1

Description

本発明はオブジェクトファイル配信方法、オブジェクトファイル配信システム、および電子機器に関し、特にネットワークを介して配信するオブジェクトファイルの定数情報を暗号化し、機密性を高めて配信するオブジェクトファイル配信方法、オブジェクトファイル配信システム、および電子機器に関する。
仮想マシンで実行される、例えば、Java(登録商標)などのオブジェクト指向言語は、プラットフォームに依存せず、しかもネットワークで配信できるという特徴がある(例えば、特許文献1参照)。また、プログラムの定義体であるクラスファイル(オブジェクトファイル)は形式が同一で、スタックベースの命令体系であるため、命令長が短く、シンプルな構造をもつ特徴がある。そのため、仮想マシンで実行されるオブジェクト指向言語は、開発作業および実行環境の構築を容易にし、オブジェクトファイルのサイズが小さいことでネットワーク配信に極めて適しているといった特徴をもっている。
このようなオブジェクト指向言語は、オブジェクト形式が単純で、通常、オブジェクトやインタフェースの名前に意味を持たせているために、リバースエンジニアリングや処理内容を理解しやすい。そのため、機密性が重要なプログラムの配信には向かないといった短所もある。
従来、オブジェクトやインタフェースに定義される名前を曖昧なものに変更することにより、配信されるオブジェクトファイルの内容の理解を困難にしていた。オブジェクトやインタフェースの名前を曖昧に変更するものとして、オブファスケータ(obfuscator)と呼ばれるツールがある。
また、オブジェクトファイルを配信するとき、暗号化(電子署名)して機密性を高めていた。
特開平10−207838号公報(第5頁、第1図)
しかしながら、標準化されているAPI(Application Program Interface)は、名前が規定されているため変更できず、機密性が低くなるといった問題点があった。
また、オブジェクトファイルを暗号化して配信すると、その暗号化を解読するためのリソースが、受信側の例えば端末装置で必要となり、負荷が大きくなるという問題点があった。
本発明はこのような点に鑑みてなされたものであり、機密性を高め、受信側の端末装置の負荷を抑えることができるオブジェクトファイル配信方法、オブジェクトファイル配信システム、および電子機器を提供することを目的とする。
本発明では上記課題を解決するために、図1に示すような、ネットワーク3を介してオブジェクトファイル1eを配信するオブジェクトファイル配信方法において、サーバ1の暗号変換部1bによって、オブジェクトファイル1eに含まれる定数情報を暗号変換テーブル1aを参照して暗号に変換し、サーバ1の定数情報削除部1cによって、定数情報をオブジェクトファイル1eから削除し、サーバ1の配信部1dによって、オブジェクトファイル1eをネットワーク3を介して配信し、端末装置2の受信部2bによって、オブジェクトファイル2dを受信し、端末装置2の定数情報復元部2cによって、オブジェクトファイル2dに含まれる暗号を暗号変換テーブル1aと同じ内容を有する暗号復元テーブル2aを参照して定数情報に復元する、ことを特徴とするオブジェクトファイル配信方法が提供される。
このような、オブジェクトファイル配信方法によれば、オブジェクトファイル1eに含まれる定数情報を、暗号変換テーブル1aを参照して暗号に変換し、定数情報をオブジェクトファイル1eから削除して配信する。そして、端末装置2によって、暗号変換テーブル1aと同じ内容を有する暗号復元テーブル2aを参照して、受信したオブジェクトファイル2dの暗号を定数情報に復元する。よって、オブジェクトファイル1eの配信における機密性を高めることが可能となる。また、暗号復元テーブル2aを参照して、暗号を定数情報に復元するだけなので、端末装置2の負荷を抑えることが可能となる。
本発明では、サーバによって、オブジェクトファイルに含まれる定数情報を、暗号変換テーブルを参照して暗号に変換し、定数情報をオブジェクトファイルから削除して配信する。そして、端末装置によって、暗号変換テーブルと同じ内容を有する暗号復元テーブルを参照して、受信したオブジェクトファイルの暗号を定数情報に復元するようにした。
これにより、オブジェクトファイルの配信における機密性を高めることができる。また、暗号復元テーブルを参照して、暗号を定数情報に復元するだけなので、端末装置の負荷を抑えることができる。
以下、本発明の原理を図面を参照して詳細に説明する。
図1は、オブジェクトファイル配信方法の概要を説明する図である。図に示すように、サーバ1と端末装置2は、ネットワーク3を介して接続されている。
サーバ1は、暗号変換テーブル1a、暗号変換部1b、定数情報削除部1c、および配信部1dを有している。オブジェクトファイル1eは、ネットワーク3を介して端末装置2に配信されるオブジェクトファイルである。
暗号変換テーブル1aは、オブジェクトファイル1eに含まれる定数情報を暗号に変換するためのテーブルである。例えば、暗号変換テーブル1aには、定数情報に対応して、数値が格納されている。
暗号変換部1bは、オブジェクトファイル1eに含まれる定数情報を、暗号変換テーブル1aを参照して、暗号に変換する。
定数情報削除部1cは、オブジェクトファイル1eから、暗号変換部1bによって暗号に変換された定数情報を削除する。なお、暗号は、オブジェクトファイル1eに残っている。
配信部1dは、定数情報が削除されたオブジェクトファイル1eを、ネットワーク3を介して配信する。
端末装置2は、暗号復元テーブル2a、受信部2b、および定数情報復元部2cを有している。オブジェクトファイル2dは、サーバ1から配信されたオブジェクトファイルである。
暗号復元テーブル2aは、サーバ1から配信されたオブジェクトファイル2dの暗号を、元の定数情報に復元するためのテーブルである。暗号復元テーブル2aは、サーバ1の暗号変換テーブル1aと同じ内容を有している。
受信部2bは、サーバ1からネットワーク3を介して配信されたオブジェクトファイル2dを受信する。
定数情報復元部2cは、暗号復元テーブル2aを参照して、オブジェクトファイル2dに含まれている暗号を定数情報に復元する。
以下、図1の動作について説明する。
サーバ1の暗号変換部1bは、配信しようとするオブジェクトファイル1eに含まれる定数情報を、暗号変換テーブル1aを参照して暗号に変換する。
定数情報削除部1cは、オブジェクトファイル1eから、暗号に変換された定数情報を削除する。
配信部1dは、オブジェクトファイル1eを、ネットワーク3を介して配信する。
端末装置2の受信部2bは、サーバ1から配信されたオブジェクトファイル2dを受信する。定数情報復元部2cは、暗号復元テーブル2aを参照して、オブジェクトファイル2dに含まれる暗号を元の定数情報に復元する。
このように、オブジェクトファイル1eに含まれる定数情報を、暗号変換テーブル1aを参照して暗号に変換し、オブジェクトファイル1eから定数情報を削除して配信する。そして、端末装置2によって、暗号変換テーブル1aと同じ内容を有する暗号復元テーブル2aを参照して、受信したオブジェクトファイル2dの暗号を定数情報に復元するようにした。
これにより、オブジェクトファイル1eの配信における機密性を高めることができる。また、オブジェクトファイル2dの暗号を、暗号復元テーブル2aを参照して定数情報に復元するだけなので、端末装置2の負荷を抑えることができる。
次に、本発明の第1の実施の形態を図面を参照して説明する。図2は、配信サーバと端末装置によるシステム構成例を示す図である。図に示すように、ネットワーク30を介して、配信サーバ10と端末装置20とが接続されている。ネットワーク30は、例えば、インターネットである。
配信サーバ10は、仮想マシンで実行される、例えば、Javaなどのオブジェクト指向言語のクラスファイル(コンパイラで翻訳されたオブジェクトファイル、プログラム定義体)をエンコード処理して、配信用クラスファイルを生成する。配信サーバ10は、生成した配信用クラスファイルを、ネットワーク30を介して配信する。
配信用クラスファイルは、デコード処理されることによって、実行可能な元のクラスファイルに戻るようになっている。デコード処理は、配信される配信用クラスファイルを受信し、実行できる権限を有する者(端末装置20)のみによって、行われるようになっている。
端末装置20は、ネットワーク30を介して、配信用クラスファイルを受信し、実行できる権限を有する端末装置である。端末装置20は、配信用クラスファイルをデコード処理し、実行可能な元のクラスファイルに戻す。
このように、配信サーバ10によって、クラスファイルを配信用クラスファイルにエンコード処理して配信する。そして、配信用クラスファイルを受信して実行できる権限を有した端末装置20によってのみ、配信用クラスファイルをクラスファイルにデコード処理することができるようにする。これによって、例えば、第三者によるクラスファイルの不正取得、解読を回避することができる。
次に、配信サーバ10のハードウェア構成について説明する。図3は、配信サーバのハードウェア構成を示すブロック図である。図に示すように、配信サーバ10は、CPU(Central Processing Unit)10aによって装置全体が制御されている。CPU10aには、バス10hを介してRAM(Random Access Memory)10b、ハードディスクドライブ(HDD:Hard Disk Drive)10c、グラフィック処理装置10d、入力インタフェース10e、通信インタフェース10f、およびキャッシュメモリ10gが接続されている。
RAM10bには、CPU10aに実行させるOS(Operating System)のプログラムや、クラスファイルをエンコード処理するためのアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM10bには、CPU10aによる処理に必要な各種データが保存される。HDD10cには、OSやクラスファイルをエンコード処理するためのアプリケーションプログラム、各種データなどが格納される。
キャッシュメモリ10gには、CPU10aによって頻繁にアクセスされるデータが格納される。CPU10aは、キャッシュヒットした場合、キャッシュメモリ10gからデータを取得し、キャッシュミスした場合、RAM10b、HDD10cからデータを取得する。
グラフィック処理装置10dには、モニタ10iが接続されている。グラフィック処理装置10dは、CPU10aからの命令に従って、画像をモニタ10iの表示画面に表示させる。入力インタフェース10eには、キーボード10jと、マウス10kとが接続されている。入力インタフェース10eは、キーボード10jやマウス10kから送られてくる信号を、バス10hを介してCPU10aに送信する。
通信インタフェース10fは、ネットワーク30に接続されている。通信インタフェース10fは、ネットワーク30を介して、端末装置20と通信を行う。
なお、端末装置20も図3と同様のハードウェア構成で実現することができる。ただし、端末装置20のHDDには、配信用クラスファイルのデコード処理が可能なプログラムおよびデータが格納される。
以上のようなハードウェア構成によって、オブジェクトファイルの配信の処理機能を実現することができる。
次に、配信サーバ10、端末装置20の機能について説明する。図4は、配信サーバの機能ブロック図である。図に示すように、配信サーバ10は、エンコード処理部11、ヘッダ情報変換部12、定数情報解析・変換部13、名前インデックス検索部14、および名前管理テーブル15を有している。
名前管理テーブル15は、クラスファイルに文字列として格納される、プログラムに記述されたクラス名、フィールド(変数)名、フィールドの型名、メソッド名、メソッドの型名を、所定の数値に変換するためのテーブルである。すなわち、名前管理テーブル15に格納されているクラス名等を所定の数値に変換し、端末装置20に送信することによって、第三者に不正に取得、解読されることが防止される。名前管理テーブル15は、例えば、図3で示したHDD10cやRAM10bの記憶装置に構築される。
図5は、名前管理テーブルの構成例を示した図である。図に示すように、名前管理テーブル15の名前の欄には、クラス名、フィールド名、フィールドの型名、メソッド名、メソッドの型名が格納される。インデックスの欄には、名前を数値変換するための数値が格納される。図5の例において、“Hello”は、数値10に変換される。“getObject”は、数値123に変換される。なお、上記の名前以外の、例えば、付加情報の名前と、それに対応する数値も格納してもよい。
エンコード処理部11は、配信するよう指定されたクラスファイルを読み込む。エンコード処理部11は、クラスファイルの先頭にあるヘッダ情報によって、読み込んだクラスファイルが適切なものであるか否かを判断する。例えば、Javaコンパイラで翻訳されたJavaのクラスファイルの場合、先頭にあるヘッダ情報の4バイトの値は、0xcafebabeである。従って、エンコード処理部11は、先頭にあるヘッダ情報の4バイトの値が0xcafebabeであるか否かによって、Javaのクラスファイルであるか否かを判断する。また、エンコード処理部11は、定数情報解析・変換部13より生成される配信用クラスファイルを、ネットワーク30を介して、端末装置20に配信する。
ヘッダ情報変換部12は、エンコード処理部11によって、適正と判断されたクラスファイルのヘッダ情報を、配信用クラスファイルのヘッダ情報に変換する。これにより、クラスファイルと配信用クラスファイルを区別することができる。
定数情報解析・変換部13は、クラスファイルを配信用クラスファイルに変換、生成する。定数情報解析・変換部13は、クラスファイルのコンスタントプール(定数情報)を読み込む。定数情報解析・変換部13は、コンスタントプールからプログラムのクラス名、フィールド名、フィールドの型名、メソッド名、メソッドの型名を抽出する。定数情報解析・変換部13は、抽出した名前が名前管理テーブル15に存在し、その名前に対応した数値が名前インデックス検索部14によって検索された場合、検索された数値を配信用クラスファイルに書き込む。定数情報解析・変換部13は、抽出した名前が名前管理テーブル15に存在せず、数値が検索されなかった場合、クラスファイルのその名前をそのまま配信用クラスファイルに書き込む。
名前インデックス検索部14は、定数情報解析・変換部13によって抽出されたクラス名等に対応する数値を、名前管理テーブル15から検索する。そして、定数情報解析・変換部13に引き渡す。また、名前インデックス検索部14は、抽出されたクラス名等と検索した数値を、キャッシュメモリ10gに格納する。一度抽出されたクラス名等と検索した数値は、再度抽出、検索する可能性が高いからである。これによって、頻繁に抽出、検索が行われるクラス名等と数値は、キャッシュメモリ10gに格納され、検索時間が短縮される。なお、キャッシュメモリ10gの容量がいっぱいになると、アクセス頻度の低いクラス名等と数値から破棄していく。また、このキャッシュ機能は、仮想マシン上の命令によってサポートされる。また、図4の機能をJavaプロセッサによって実現する場合は、Javaプロセッサの命令によってキャッシュ機能がサポートされる。
ここで、クラスファイル、配信用クラスファイルの構成例について説明する。
図6は、クラスファイルの構成例を示した図である。図に示すように、クラスファイル40は、領域41〜46に分かれている。
領域41には、クラスファイルであることを示すヘッダ情報が格納される。ヘッダ情報は、例えば、Javaクラスファイルであれば、0xcafebabeが格納される。
領域42には、名前の位置情報、名前の文字列、およびそれ以外の定数情報が格納される。領域42は、図に示すように、さらに領域42a〜領域42cに分かれている。
領域42aには、名前の位置情報が格納される。名前の位置情報は、領域42bに格納される名前の文字列の位置を数値で示している。例えば、図6の例では、名前の位置情報の22は、名前の文字列の“Hello”の位置を示している。名前の位置情報の28は、名前の文字列の“data”の位置を示している。
領域42bには、プログラムのクラス名、フィールド名、フィールドの型名、メソッド名、メソッドの型名の文字列が格納される。
領域42cには、名前の位置情報、名前の文字列以外のプログラムに関する定数情報が格納される。
領域43には、クラスの実体とそのクラス名の格納場所を指し示す数値のクラス情報が格納される。クラス名の格納場所を指し示す数値は、領域42aの名前の位置情報の、数値の位置を指し示している。図6の例では、領域43のクラス情報の2は、領域42aの名前の位置情報の22を指し示している。
領域44には、フィールドの実体とそのフィールド名の格納場所を指し示す数値のフィールド情報が格納される。フィールド名の格納場所を指し示す数値は、領域42aの名前の位置情報の、数値の位置を指し示している。図6の例では、領域44のフィールド情報の5は、領域42aの名前の位置情報の28を指し示している。
領域45には、メソッドの実体とそのメソッド名の格納場所を指し示す数値のメソッド情報が格納される。メソッド名の格納場所を指し示す数値は、領域42aの名前の位置情報の、数値の位置を指し示している。図6の例では、領域45のメソッド情報の7は、領域42aの名前の位置情報の31を指し示している。
図7は、配信用クラスファイルの構成例を示した図である。図に示すように、配信用クラスファイル50は、図6のクラスファイル40と同様に領域が分けられている。図7において、図6と同じものには同じ符号を付し、その説明は省略する。
配信用クラスファイル50の名前の位置情報が格納される領域51は、クラスファイル40の領域42aを2分割した状態となっており、名前の文字列の位置を示す数値と、名前管理テーブル15を参照して変換された名前の文字列の数値が格納される。なお、名前管理テーブル15に名前の文字列がなかった場合は、0が格納される。
例えば、図7の例において、領域51には、“Hello”の位置を示す数値22と、名前管理テーブル15を参照して変換された“Hello”の数値の10が組になって格納されている。また、上記で説明したように、“Hello”は、数値に変換できたので、名前の文字列には書き込まれていない。
配信用クラスファイル50の名前の文字列が格納される領域52には、名前管理テーブル15を参照して数値に変換されなかった名前の文字列が書き込まれる。すなわち、数値に変換されたクラス名、フィールド名、フィールドの型名、メソッド名、メソッドの型名の文字列は、配信用クラスファイルから削除された形となる。
なお、クラス名、フィールド名、フィールドの型名、メソッド名、メソッドの型名の変換された定数情報を所定の関数によって暗号化し、配信用クラスファイルに書き込むようにしてもよい。以下に、暗号化に用いられる関数の例を式(1)に示す。
暗号化された数値=f(X,Y,Z) ……(1)
ここで、関数fは、例えば、X+mod(Y,Z)の演算を行う。変数Xは、クラス名、フィールド名、フィールドの型名、メソッド名、メソッドの型名の変換された数値である。変数Yは、配信用クラスファイルの属性値で、例えば、配信用クラスファイルのサイズ、またはチェックサム値である。変数Zは、変換された数値の属性値で、例えば、その数値の個数、サイズ、またはチェックサム値である。
これにより、配信用クラスファイルの機密性をより高くすることができる。なお、クラス名、フィールド名、フィールドの型名、メソッド名、メソッドの型名の変換された数値のみを暗号化することにより、配信用クラスファイル全部を暗号化して配信するより、端末装置20の負荷は大きくならない。
なお、領域41のヘッダ情報には、ヘッダ情報変換部12によって配信用クラスファイルのヘッダ情報が格納される。
次に、端末装置20の機能について説明する。図8は、端末装置の機能ブロック図である。図に示すように端末装置20は、デコード処理部21、ヘッダ情報変換部22、定数情報解析・変換部23、名前インデックス検索部24、および名前管理テーブル25を有している。
名前管理テーブル25は、図4で示した名前管理テーブル15と同じデータが格納されたテーブルである。名前管理テーブル15のデータは、例えば、暗号化されて、配信サーバ10から、ネットワーク30を介して送られてくる。そして、名前管理テーブル15のデータを名前管理テーブル25にコピーする。または、名前管理テーブル15のデータを、例えば、記憶媒体に記憶して郵送することにより、名前管理テーブル25のデータを名前管理テーブル15と同じデータにする。名前管理テーブル25は、例えば、HDDやRAMの記憶装置に構築される。
デコード処理部21は、ネットワーク30を介して送られてくる配信用クラスファイルを受信する。デコード処理部21は、配信用クラスファイルの先頭にあるヘッダ情報によって、受信した配信用クラスファイルが適正なものか否かを判断する。デコード処理部21は、定数情報解析・変換部23により変換されたクラスファイルを、例えば、プログラムを実行する処理部に出力する。
ヘッダ情報変換部22は、デコード処理部21によって、適正と判断された配信用クラスファイルのヘッダ情報を、クラスファイルのヘッダ情報に変換する。例えば、Javaコンパイラで翻訳されたJavaクラスファイルの場合、先頭にあるヘッダ情報の4バイトの値は、0xcafebabeである。従って、デコード処理部21は、先頭にあるヘッダ情報の4バイトの値を0xcafebabeに変更する。
定数情報解析・変換部23は、ネットワーク30より受信された配信用クラスファイルをクラスファイルに変換、生成する。定数情報解析・変換部23は、受信された配信用クラスファイルのコンスタントプール(定数情報)を読み込む。定数情報解析・変換部23は、コンスタントプールからクラス名、フィールド名、フィールドの型名、メソッド名、メソッドの型名の変換された数値を抽出する。定数情報解析・変換部23は、抽出した数値が名前管理テーブル25に存在し、その数値に対応するクラス名等が名前インデックス検索部24によって検索された場合、そのクラス名等をクラスファイルに書き込む。定数情報解析・変換部23は、抽出した数値が名前管理テーブル25に存在せず、名前インデックス検索部24によって検索されなかった場合、配信用クラスファイルにあるクラス名等をそのままクラスファイルに書き込む。
例えば、図7に示す配信用クラスファイル50がデコード処理部21に受信されたとする。定数情報解析・変換部23は、領域51から順に、名前の文字列の変換された数値を取得する。定数情報解析・変換部23は、数値が0でなければ、名前管理テーブル25を参照して、その数値に対応する名前を取得し、図6に示すクラスファイル40の領域42bに示すように、名前の文字列を復元していく。
名前インデックス検索部24は、定数情報解析・変換部23によって抽出された数値に対応するクラス名等を、名前管理テーブル25から検索する。そして、定数情報解析・変換部23に引き渡す。また、名前インデックス検索部24は、抽出された数値と検索したクラス名等を、キャッシュメモリ10gに格納する。一度抽出された数値と検索したクラス名等は、再度抽出、検索する可能性が高いからである。これによって、頻繁に抽出、検索が行われる数値とクラス名等は、キャッシュメモリ10gに格納され、検索時間が短縮される。なお、キャッシュメモリ10gの容量がいっぱいになると、アクセス頻度の低い数値とクラス名等から破棄していく。また、このキャッシュ機能は、仮想マシン上の命令によってサポートされる。また、図8の機能をJavaプロセッサによって実現する場合は、Javaプロセッサの命令によってキャッシュ機能がサポートされる。
なお、上記のデコード処理の機能をクラスローダなどの実行環境に組み込んでもよい。この場合、受信した配信用クラスファイルを独立して復元する必要はなく、クラスローダの実行中において上記のデコード処理を行うようにしてもよい。
次に、フローチャートを用いて、配信サーバ10、端末装置20の動作について説明する。
図9、10は、配信サーバが実行する処理手順を示したフローチャートである。配信サーバ10は、以下のステップに従って処理を実行する。
[ステップS1]配信サーバ10のエンコード処理部11は、クラスファイルを読み込む。
[ステップS2]エンコード処理部11は、クラスファイルのヘッダから、適切なクラスファイルか否かを判断する。エンコード処理部11が、適正なクラスファイルと判断した場合、ステップS3へ進む。エンコード処理部11が、適正なクラスファイルでないと判断した場合、処理を終了する。
[ステップS3]ヘッダ情報変換部12は、クラスファイルのヘッダ情報を配信用クラスファイルのヘッダ情報に書き換える。
[ステップS4]定数情報解析・変換部13は、クラスファイルのデータを先頭から順次読み込む。定数情報解析・変換部13は、データの読み込みが、クラスファイルの最後に達したか否かを判断する。定数情報解析・変換部13が、クラスファイルの最後までデータの読み込みが達したと判断した場合は、ステップS15へ進む。定数情報解析・変換部13が、クラスファイルの最後までデータの読み込みが達していないと判断した場合は、ステップS5へ進む。
[ステップS5]定数情報解析・変換部13は、クラスファイルから読み込んだデータが、名前の位置情報(図6に示した領域42aの名前の位置情報)であるか否かを判断する。定数情報解析・変換部13が、名前の位置情報と判断した場合は、ステップS6へ進む。定数情報解析・変換部13が、名前の位置情報と判断しなかった場合は、ステップS10へ進む。なお、定数情報解析・変換部13は、読み込んだデータを名前の位置情報と判断した場合、名前の位置情報を基に、クラスファイルに格納されているクラス名、フィールド名、フィールドの型名、メソッド名、メソッドの型名を抽出する。
[ステップS6]名前インデックス検索部14は、定数情報解析・変換部13が抽出したクラス名、フィールド名、フィールドの型名、メソッド名、メソッドの型名に対応する数値(インデックス)を、名前管理テーブル15から検索する。
[ステップS7]名前インデックス検索部14は、数値(インデックス)が名前管理テーブル15に存在したか否かを判断する。数値が、名前管理テーブル15に存在した場合は、ステップS8へ進む。数値が、名前管理テーブル15に存在しなかった場合は、ステップS9へ進む。
[ステップS8]定数情報解析・変換部13は、抽出したクラス名等に対応する数値を配信用クラスファイルに書き込む。
[ステップS9]定数情報解析・変換部13は、抽出したクラス名等に対応する数値を0として配信用クラスファイルに書き込む。
[ステップS10]定数情報解析・変換部13は、クラスファイルから読み込んだデータが、クラス名等の名前の文字列(図6に示した領域42bの名前の文字列)であるか否かを判断する。定数情報解析・変換部13が、名前の文字列と判断した場合は、ステップS11へ進む。定数情報解析・変換部13が、名前の文字列と判断しなかった場合は、ステップS13へ進む。
[ステップS11]名前インデックス検索部14は、ステップS10より読み込んだデータ(名前の文字列)に対応する数値が名前管理テーブル15に存在するか否かを判断する。名前インデックス検索部14が、名前管理テーブル15に、名前の文字列に対応する数値が存在すると判断した場合、ステップS12へ進む。名前インデックス検索部14が、名前管理テーブル15に、名前の文字列に対応する数値が存在しないと判断した場合、ステップS14へ進む。
[ステップS12]定数情報解析・変換部13は、配信用クラスファイル(図7に示した領域52の名前の文字列)にクラス名等の名前の文字列を書き込まない。
[ステップS13]定数情報解析・変換部13は、読み込んだデータをそのまま配信用クラスファイルに書き込む。
[ステップS14]定数情報解析・変換部13は、配信用クラスファイル(図7に示した領域52)にクラス名等の名前の文字列を書き込む。
[ステップS15]エンコード処理部11は、ネットワーク30を介して配信用クラスファイルを配信する。
図11、12は、端末装置が実行する処理手順を示したフローチャートである。端末装置20は、以下のステップに従って処理を実行する。
[ステップS21]端末装置20のデコード処理部21は、ネットワーク30から配信用クラスファイルを受信する。
[ステップS22]デコード処理部21は、受信した配信用クラスファイルのヘッダから、適正な配信用クラスファイルか否かを判断する。デコード処理部21が、適正なクラスファイルと判断した場合、ステップS23へ進む。デコード処理部21が、適正なクラスファイルでないと判断した場合、処理を終了する。
[ステップS23]ヘッダ情報変換部22は、配信用クラスファイルのヘッダ情報をクラスファイルのヘッダ情報に書き換える。
[ステップS24]定数情報解析・変換部23は、受信した配信用クラスファイルのデータを先頭から順次読み込む。定数情報解析・変換部23は、データの読み込みが、配信用クラスファイルの最後に達したか否かを判断する。定数情報解析・変換部23が、データの読み込みがクラスファイルの最後まで達したと判断した場合は、ステップS34へ進む。定数情報解析・変換部23が、データの読み込みがクラスファイルの最後まで達してないと判断した場合は、ステップS25へ進む。
[ステップS25]定数情報解析・変換部23は、配信用クラスファイルから読み込んだデータが、名前の位置情報(図7に示した領域51の名前の位置情報)であるか否かを判断する。定数情報解析・変換部23が、名前の位置情報と判断した場合は、ステップS26へ進む。定数情報解析・変換部23が、名前の位置情報と判断しなかった場合は、ステップS29へ進む。なお、定数情報解析・変換部23は、読み込んだデータを名前の位置情報と判断した場合、名前の位置情報と共に格納されているクラス名、フィールド名、フィールドの型名、メソッド名、メソッドの型名の変換された数値を抽出する。
[ステップS26]名前インデックス検索部24は、定数情報解析・変換部23が抽出した数値(インデックス)に対応するフィールド名、フィールドの型名、メソッド名、メソッドの型名を名前管理テーブル25から検索する。
[ステップS27]名前インデックス検索部24は、クラス名等の変換された数値が名前管理テーブル25に存在したか否かを判断する。数値が、名前管理テーブル25に存在した場合は、ステップS28へ進む。数値が、名前管理テーブル25に存在しなかった場合は、ステップS24へ進む。
[ステップS28]定数情報解析・変換部23は、数値に対応する名前を、数値と共にメモリ(例えば、図3に示したRAM10b)に保存する。
[ステップS29]定数情報解析・変換部23は、配信用クラスファイルから読み込んだデータが、名前の文字列(図7に示した領域52の名前の文字列)であるか否かを判断する。定数情報解析・変換部23が、名前の文字列と判断した場合は、ステップS30へ進む。定数情報解析・変換部23が、名前の文字列と判断しなかった場合は、ステップS32へ進む。
[ステップS30]名前インデックス検索部24は、ステップS28によってメモリに保存された名前に対応する数値、ステップS29により読み込んだデータ(名前の文字列)に対応する数値が、名前管理テーブル25に存在するか否かを判断する。名前インデックス検索部24が、名前管理テーブル25に、メモリに保存されている名前に対応する数値、読み込んだ名前の文字列に対応する数値が存在すると判断した場合、ステップS31へ進む。名前インデックス検索部24が、名前管理テーブル25に、メモリに保存されている名前に対応する数値、読み込んだ名前の文字列に対応する数値が存在しないと判断した場合、ステップS33へ進む。
[ステップS31]定数情報解析・変換部23は、メモリに保存していたクラス名等の名前をクラスファイルに書き込む。
[ステップS32]定数情報解析・変換部23は、配信用クラスファイルから読み込んだデータをそのままクラスファイルに書き込む。
[ステップS33]定数情報解析・変換部23は、ステップS29により読み込んだクラス名等の名前の文字列をクラスファイルに書き込む。
[ステップS34]デコード処理部21は、クラスファイルを、例えば、プログラムを実行する処理部に出力する。
このように、配信サーバ10によって、クラスファイルの定数情報を、名前管理テーブル15によって数値にエンコードして配信用クラスファイルを生成し、配信する。そして、端末装置20によって、受信した配信用クラスファイルの数値を、名前管理テーブル25によって定数情報にデコードしてクラスファイルに復元するようにした。
これにより、クラスファイルの配信における機密性を高くすることができ、例えば、第三者からの不正取得、解読を回避することができる。また、テーブルを参照して、配信用クラスファイルの数値を定数情報にデコードするようにしたので、端末装置20が行う処理の負荷を抑えることができる。
次に、本発明の第2の実施の形態を図面を参照して説明する。ネットワークに接続された複数の電子機器において、各機器間の相互制御やエージェント技術を利用した自律システムおよび分散システムが考えられる。Javaは、ネットワークでの配信が可能という特徴を有し、それによって大規模な処理を複数の機器に分散させ、負荷を軽減することが可能となる。また、センターから電子機器へのプログラムの自動更新も可能となる。よって、電子機器間でプログラムおよびモジュール(プログラム部品)の送受信を行う場合、プログラムの機密を高める必要がある。そこで、第2の実施の形態では、電子機器間のプログラムの送受信について説明する。
図13は、電子機器によるシステム構成例を示す図である。図に示すように、ネットワーク70を介して、電子機器61〜63が接続されている。ネットワーク70は、例えば、LAN(Local Area Network)である。
電子機器61〜63は、図4、図8で示した機能ブロックを有し、クラスファイルを送受信する。なお、名前管理テーブル15,25は、同じ内容を有しているので、1つだけ具備されている。そして、名前インデックス検索部14,24は、1つの名前管理テーブルにアクセスする。また、電子機器61〜63は、同じ内容の名前管理テーブルを具備している。
電子機器61は、例えば、パーソナルコンピュータである。電子機器62は、例えば、電子レンジである。電子機器63は、例えば、テレビである。電子機器61は、例えば、電子機器62,63にクラスファイルを送信し、制御、監視を行う。電子機器62,63は、例えば、互いにクラスファイルを送受信して相互制御を行う。具体的には、互いに電力監視を行い、一方が使用状態であれば、他方に対し低電力制御を行う。
このように、電子機器において、図4、図8で示した機能ブロックを有することにより、オブジェクトファイルの送受信における機密性を高めることができる。また、暗号復元テーブルを参照して、暗号を定数情報に復元するだけなので、電子機器の負荷を抑えることができる。特に、プロセッサの処理性能や資源の制約がある家電などの電子機器において有効である。
オブジェクトファイル配信方法の概要を説明する図である。 配信サーバと端末装置によるシステム構成例を示す図である。 配信サーバのハードウェア構成を示すブロック図である。 配信サーバの機能ブロック図である。 名前管理テーブルの構成例を示した図である。 クラスファイルの構成例を示した図である。 配信用クラスファイルの構成例を示した図である。 端末装置の機能ブロック図である。 配信サーバが実行する処理手順を示したフローチャートである。 配信サーバが実行する処理手順を示したフローチャートである。 端末装置が実行する処理手順を示したフローチャートである。 端末装置が実行する処理手順を示したフローチャートである。 電子機器によるシステム構成例を示す図である。
符号の説明
1 サーバ
1a 暗号変換テーブル
1b 暗号変換部
1c 定数情報削除部
1d 配信部
1e,2d オブジェクトファイル
2 端末装置
2a 暗号復元テーブル
2b 受信部
2c 定数情報復元部
3 ネットワーク

Claims (10)

  1. ネットワークを介してオブジェクトファイルを配信するオブジェクトファイル配信方法において、
    サーバの暗号変換部によって、前記オブジェクトファイルに含まれる定数情報を暗号変換テーブルを参照して暗号に変換し、
    前記サーバの定数情報削除部によって、前記定数情報を前記オブジェクトファイルから削除し、
    前記サーバの配信部によって、前記オブジェクトファイルを前記ネットワークを介して配信し、
    端末装置の受信部によって、前記オブジェクトファイルを受信し、
    前記端末装置の定数情報復元部によって、前記オブジェクトファイルに含まれる前記暗号を、前記暗号変換テーブルと同じ内容を有する暗号復元テーブルを参照して前記定数情報に復元する、
    ことを特徴とするオブジェクトファイル配信方法。
  2. 前記暗号復元テーブルは、前記サーバから前記オブジェクトファイルを受信する権限を有した前記端末装置に配信されることを特徴とする請求項1記載のオブジェクトファイル配信方法。
  3. 前記オブジェクトファイルは、オブジェクト指向言語によって記述されたプログラムがコンパイルされたものであることを特徴とする請求項1記載のオブジェクトファイル配信方法。
  4. 前記暗号変換テーブルには、数値が前記定数情報に対応付けて格納されていることを特徴とする請求項1記載のオブジェクトファイル配信方法。
  5. 前記暗号を所定の関数によって暗号化することを特徴とする請求項1記載のオブジェクトファイル配信方法。
  6. 前記オブジェクトファイルは、仮想マシンで実行されることを特徴とする請求項1記載のオブジェクトファイル配信方法。
  7. 前記暗号変換部は、変換した前記暗号と前記定数情報とをキャッシュメモリに記憶することを特徴とする請求項1記載のオブジェクトファイル配信方法。
  8. 前記定数情報復元部は、復元した前記定数情報と前記暗号とをキャッシュメモリに記憶することを特徴とする請求項1記載のオブジェクトファイル配信方法。
  9. ネットワークを介してオブジェクトファイルを配信するオブジェクトファイル配信システムにおいて、
    前記オブジェクトファイルに含まれる定数情報を暗号変換テーブルを参照して暗号に変換する暗号変換部と、前記定数情報を前記オブジェクトファイルから削除する定数情報削除部と、前記オブジェクトファイルを前記ネットワークを介して配信する配信部と、を有するサーバと、
    前記オブジェクトファイルを受信する受信部と、前記暗号変換テーブルと同じ内容を有する暗号復元テーブルを参照して、前記オブジェクトファイルに含まれる前記暗号を前記定数情報に復元する定数情報復元部と、を有する端末装置と、
    を有することを特徴とするオブジェクトファイル配信システム。
  10. ネットワークを介してオブジェクトファイルを送受信する電子機器において、
    前記オブジェクトファイルに含まれる定数情報を暗号変換テーブルを参照して暗号に変換する暗号変換部と、
    前記定数情報を前記オブジェクトファイルから削除する定数情報削除部と、
    前記オブジェクトファイルを前記ネットワークを介して送信する送信部と、
    前記オブジェクトファイルを受信する受信部と、
    前記オブジェクトファイルに含まれる前記暗号を前記暗号変換テーブルを参照して前記定数情報に復元する定数情報復元部と、
    を有することを特徴とする電子機器。
JP2004235724A 2004-08-13 2004-08-13 オブジェクトファイル配信方法、オブジェクトファイル配信システム、および電子機器 Withdrawn JP2006053406A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004235724A JP2006053406A (ja) 2004-08-13 2004-08-13 オブジェクトファイル配信方法、オブジェクトファイル配信システム、および電子機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004235724A JP2006053406A (ja) 2004-08-13 2004-08-13 オブジェクトファイル配信方法、オブジェクトファイル配信システム、および電子機器

Publications (1)

Publication Number Publication Date
JP2006053406A true JP2006053406A (ja) 2006-02-23

Family

ID=36030918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004235724A Withdrawn JP2006053406A (ja) 2004-08-13 2004-08-13 オブジェクトファイル配信方法、オブジェクトファイル配信システム、および電子機器

Country Status (1)

Country Link
JP (1) JP2006053406A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020505708A (ja) * 2017-01-26 2020-02-20 タレス・ディス・フランス・エス・ア ソフトウェアコードをセキュアにするための方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0227389A (ja) * 1988-07-15 1990-01-30 Sony Corp 暗号化方法及び該暗号方法を用いた暗号化装置/復号化装置
JPH0669916A (ja) * 1992-07-27 1994-03-11 Matsushita Electric Ind Co Ltd スクランブル装置
JP2000132388A (ja) * 1998-10-19 2000-05-12 Internatl Business Mach Corp <Ibm> ソフトウェア・コンポ―ネントを処理および配布するための方法および装置
JP2000276309A (ja) * 1999-03-19 2000-10-06 Canon Inc 情報処理装置
JP2003150052A (ja) * 2001-11-09 2003-05-21 Katsumoto Yokoyama 鍵による係数重複介入の暗号通信
JP2003229851A (ja) * 2001-12-19 2003-08-15 Trw Inc トークン使用可能公開鍵インフラストラクチャ・システムにおけるユーザ証明書/秘密鍵の割り当て
JP2003330729A (ja) * 2002-05-14 2003-11-21 Mitsubishi Electric Corp コンパイラ装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0227389A (ja) * 1988-07-15 1990-01-30 Sony Corp 暗号化方法及び該暗号方法を用いた暗号化装置/復号化装置
JPH0669916A (ja) * 1992-07-27 1994-03-11 Matsushita Electric Ind Co Ltd スクランブル装置
JP2000132388A (ja) * 1998-10-19 2000-05-12 Internatl Business Mach Corp <Ibm> ソフトウェア・コンポ―ネントを処理および配布するための方法および装置
JP2000276309A (ja) * 1999-03-19 2000-10-06 Canon Inc 情報処理装置
JP2003150052A (ja) * 2001-11-09 2003-05-21 Katsumoto Yokoyama 鍵による係数重複介入の暗号通信
JP2003229851A (ja) * 2001-12-19 2003-08-15 Trw Inc トークン使用可能公開鍵インフラストラクチャ・システムにおけるユーザ証明書/秘密鍵の割り当て
JP2003330729A (ja) * 2002-05-14 2003-11-21 Mitsubishi Electric Corp コンパイラ装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020505708A (ja) * 2017-01-26 2020-02-20 タレス・ディス・フランス・エス・ア ソフトウェアコードをセキュアにするための方法

Similar Documents

Publication Publication Date Title
EP3657376B1 (en) Hybrid-cloud data storage method and apparatus, related device, and cloud system
US6915435B1 (en) Method and system for managing information retention
CN101646995B (zh) 用于存储管理器的数据流过滤器和插件
JP2016186782A (ja) データ処理方法及びデータ処理装置
JP2005235055A (ja) 情報処理装置および情報処理装置におけるセキュリティ確保方法
KR20060064034A (ko) 프로세스 과정에서 암호화된 데이터의 위조 검출 데이터를발생시키는 장치 및 방법
JP3457184B2 (ja) 検索装置及びその制御プログラムを記憶した媒体
GB2422753A (en) Compression / decompression method which also provides data security
CN110795747A (zh) 一种数据加密存储方法、装置、设备及可读存储介质
JP2004310371A (ja) ファイル共有システム及び方法、ファイル共有サーバ、ファイル共有サービスのクライアント端末、ファイル共有プログラム、ファイル共有プログラムを記録した記録媒体
US8645687B2 (en) Electronic file access control system and method
JP2010250656A (ja) データ保管システムおよびデータ保管方法
JP3537959B2 (ja) 情報復号化装置
TW201317823A (zh) 一種雲端安全儲存系統
JP2006053406A (ja) オブジェクトファイル配信方法、オブジェクトファイル配信システム、および電子機器
JP4222132B2 (ja) ソフトウェア提供方法及びシステム
CN109657480A (zh) 一种文件处理方法、设备及计算机可读存储介质
JP2016151797A (ja) 情報処理システム、その制御方法、及びプログラム
JP2005108063A (ja) 暗号化データ変換装置を利用した電子自治体共用サーバ及び暗号化データ復号化装置を利用した電子自治体用端末
JP2007310603A (ja) 文書処理装置及び文書処理プログラム
JP2002229452A (ja) 情報画像ファイルを記憶したデータ構造記憶媒体、当該情報画像ファイルを取り扱うシステム、当該システムを動作させる動作方法と動作させるプログラム、当該プログラムを記録した記録媒体、および情報端末装置、当該端末装置を動作させるためのプログラム、当該プログラムを記録した記録媒体。
US20040167924A1 (en) Information processing method, information processing apparatus, and distributed processing system
JP2007122603A (ja) 情報処理装置、情報処理システム及び情報処理プログラム
JP5759925B2 (ja) データ制御装置、データ制御方法、データ制御プログラム
JP6003295B2 (ja) 情報処理装置、その制御方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070720

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080729

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101026

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20101203