JP2004133793A - 動作解析装置、プログラム開発システム及び動作解析プログラム - Google Patents
動作解析装置、プログラム開発システム及び動作解析プログラム Download PDFInfo
- Publication number
- JP2004133793A JP2004133793A JP2002299261A JP2002299261A JP2004133793A JP 2004133793 A JP2004133793 A JP 2004133793A JP 2002299261 A JP2002299261 A JP 2002299261A JP 2002299261 A JP2002299261 A JP 2002299261A JP 2004133793 A JP2004133793 A JP 2004133793A
- Authority
- JP
- Japan
- Prior art keywords
- program
- information
- encryption
- modules
- processing content
- 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.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
【課題】ライブラリモジュール等のプログラムに含まれる技術的ノウハウの他者への無制限な流出及びプログラムの無制限な利用を防止することが可能な動作解析装置、プログラム開発システム及び動作解析プログラムを提供する。
【解決手段】実行形式プログラムの動作を解析するために処理内容示唆情報を抽出する処理内容示唆情報抽出部316を備える動作解析装置30であって、実行形式プログラムと、この実行形式プログラムに含まれるライブラリモジュールに対応するアクセス制限鍵とを含む第2の暗号を入力する入力装置34と、第2の暗号を復号する復号部313と、復号されたアクセス制限鍵及び外部から入力した利用者属性識別情報に基づいて、アクセス制限鍵が対応するライブラリモジュールについての処理内容示唆情報の外部への出力を許可するか否かを判定するアクセス許否判定部315とを備えることを特徴とする。
【選択図】 図2
【解決手段】実行形式プログラムの動作を解析するために処理内容示唆情報を抽出する処理内容示唆情報抽出部316を備える動作解析装置30であって、実行形式プログラムと、この実行形式プログラムに含まれるライブラリモジュールに対応するアクセス制限鍵とを含む第2の暗号を入力する入力装置34と、第2の暗号を復号する復号部313と、復号されたアクセス制限鍵及び外部から入力した利用者属性識別情報に基づいて、アクセス制限鍵が対応するライブラリモジュールについての処理内容示唆情報の外部への出力を許可するか否かを判定するアクセス許否判定部315とを備えることを特徴とする。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明はプログラムの動作を解析する動作解析装置並びに動作解析プログラム、及び、プログラムを開発するプログラム開発システムに関するものである。
【0002】
【従来の技術】
図10は、従来のプログラム開発システムを説明する図である。
図10に示すように、従来のプログラム開発システムおいて、ソフトウェア等のプログラムを作成するプログラム開発者は、先ず、プログラミング言語を用いて作成した一又は複数のモジュールを含むプログラムのソースコード(以下、「プログラムのソースコード」を「ソースコード」という。)をコンパイラ10−2によってプログラムのオブジェクトコード(以下、「プログラムのオブジェクトコード」を「オブジェクトコード」という。)へ翻訳(コンパイル)する。プログラム開発者は、同様に、ライブラリ開発者が開発したライブラリ131−2から取り出した必要な関数(サブルーチン)であるモジュール(以下、ライブラリから取り出したモジュールを「ライブラリモジュール」という。)のオブジェクトコードをリンカ20−2によって結合(リンク)し、実行形式プログラムを作成する。実行形式プログラムとは、ロード・モジュール等のコンピュータが実行可能な形式のプログラムである。
プログラム開発者は、デバッガ30−2によってこの実行形式プログラムを実行した場合の所定の処理時点におけるレジスタの値、その変化の履歴、プログラムカウンタの位置、その変化の履歴等のCPU及び周辺回路の動作状況等、実行形式プログラムの動作を解析するための処理内容示唆情報を抽出し、この実行形式プログラムの動作を検証(デバッグ)する(例えば、特許文献1)。
ライブラリとは、様々なプログラムで利用できるようにした汎用性の高い関数(サブルーチン)やデータの集まりであって、ライブラリモジュールは、複雑なハードウェアを制御し、上位のプログラムからの命令方法を簡略化する役割を担っており、プログラム開発の効率の向上に大きく貢献する(複雑なプログラム処理がライブラリとして提供されることもある)。つまり、処理速度の向上、ハードウェアへの読み書きの制御方法等、ライブラリモジュールには、ライブラリ開発者の技術的なノウハウが詰め込まれている。
【0003】
【特許文献1】
特開平9−305435号公報(第2頁−7頁、図1、図7)
【0004】
【発明が解決しようとする課題】
しかし、開発中のプログラムの動作を検証する場合に、プログラムの如何なる挙動も観測することができるため、プログラム開発者は、全てのライブラリモジュールの内部処理を観測することができ、ライブラリ開発者の技術的ノウハウがソフト開発者へ流出する可能性があった。
また、クロスコンパイラという概念によって、ライブラリ開発者が想定していない環境でライブラリモジュールが無制限に利用されるとともに、ノウハウが流出してしまう可能性があった。
一方、特開平10−198726公報に記載されている「集積回路の設計において複合機能ブロックを効率的に実装する方法及び装置」では、暗号化とパスワードの照合が成功した場合には、マクロテンプレートとのリンクと、その中身の参照等、動作及び性能の確認におけるマクロテンプレートの利用を許可するが、その中身(詳細)の参照についての制限をかけることが出来ず、利便性に欠けるという問題があった。
【0005】
本発明の課題は、ライブラリモジュール等のプログラムに含まれる技術的ノウハウの他者への無制限な流出及びプログラムの無制限な利用を防止することが可能な動作解析装置、プログラム開発システム及び動作解析プログラムを提供することである。
【0006】
【課題を解決するための手段】
本発明は、以下のような解決手段により、前記課題を解決する。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。すなわち、請求項1の発明は、結合された複数のモジュールを含む実行形式プログラムの動作を解析するために処理内容示唆情報を抽出する処理内容示唆情報抽出手段(316)を備える動作解析装置であって、前記実行形式プログラムと、この実行形式プログラムに含まれる一又は複数のモジュールに対応する一又は複数のアクセス制限情報とを含む暗号を入力する暗号入力手段(36)と、前記暗号入力手段によって入力される暗号を復号する復号手段(312)と、前記復号手段によって復号されるアクセス制限情報に基づいて、前記処理内容示唆情報抽出手段によって抽出される、前記アクセス制限情報が対応する一又は複数のモジュールについての処理内容示唆情報への外部からのアクセスを許可するか否かを判定するアクセス許否判定手段(315)とを備えること、を特徴とする動作解析装置(30)である。
【0007】
請求項2の発明は、請求項1に記載の動作解析装置において、外部から利用者の属性を識別するための利用者属性識別情報を入力する利用者属性識別情報入力手段(36)を備え、前記アクセス許否判定手段は、前記復号手段によって復号されるアクセス制限情報と、前記利用者属性識別情報入力手段によって入力される利用者属性識別情報とに基づいて判定を行うこと、を特徴とする動作解析装置(30)である。
【0008】
請求項3の発明は、請求項1又は請求項2に記載の動作解析装置において、前記暗号入力手段は、前記実行形式プログラムと、前記実行形式プログラムに含まれる一又は複数のライブラリモジュールに対応する一又は複数の出力制限情報とを含む暗号を入力し、前記アクセス許否判定手段は、前記復号手段によって復号される出力制限情報に基づいて、前記出力制限情報が対応する一又は複数のライブラリモジュールについての処理内容示唆情報の外部への出力を許可するか否かを判定すること、を特徴とする動作解析装置(30)である。
【0009】
請求項4の発明は、結合された複数のモジュールを含む実行形式プログラムの動作を解析するために処理内容示唆情報を抽出する処理内容示唆情報抽出手段を備える動作解析装置であって、一又は複数のモジュールと、この一又は複数のモジュールに対応する一又は複数のアクセス制御情報とを含む暗号を入力する暗号入力手段と、前記暗号入力手段によって入力される暗号を復号する復号手段と、前記復号手段によって復号された一又は複数のモジュールと、他の一又は複数のモジュールとを結合し、実行形式プログラムを作成する結合手段と、前記復号手段によって復号されたアクセス制限情報に基づいて、前記処理内容示唆情報抽出手段によって抽出される、前記アクセス制限情報が対応する一又は複数のモジュールについての処理内容示唆情報への外部からのアクセスを許可するか否かを判定するアクセス許否判定手段とを備えること、を特徴とする動作解析装置である。
【0010】
請求項5の発明は、請求項1から請求項3までのいずれか1項に記載の動作解析装置(30)と、複数のモジュールを結合して前記動作解析装置へ入力する実行形式プログラムを作成する結合装置(20)とを備えるプログラム開発システムであって、前記結合装置は、作成した前記実行形式プログラムに前記一又は複数のアクセス制限情報を付して暗号化する暗号化手段(211)を備え、前記動作解析装置の復号手段は、前記結合装置によって暗号化された実行形式プログラム、及び、一又は複数のアクセス制限情報を復号すること、を特徴とするプログラム開発システム(1)である。
【0011】
請求項6の発明は、請求項5に記載のプログラム開発システムにおいて、ソースコードのモジュールをオブジェクトコードのモジュールへ翻訳する翻訳手段(112)と、前記翻訳手段によって翻訳された一又は複数の前記オブジェクトコードのモジュールに、一又は複数の前記オブジェクトコードのモジュールに対応する一又は複数のアクセス制限情報を付して暗号化する暗号化手段(111)とを有する翻訳装置(10)を備え、前記結合装置は、前記翻訳装置の暗号化手段によって暗号化された一又は複数のモジュール、及び、一又は複数のアクセス制限情報を復号する復号手段(213)を備えること、を特徴とするプログラム開発システムである。
【0012】
請求項7の発明は、結合された複数のモジュールを含む実行形式プログラムの動作を解析するために処理内容示唆情報を抽出する処理内容示唆情報抽出手順(S330)をコンピュータに実行させる動作解析プログラムであって、前記実行形式プログラムと、この実行形式プログラムに含まれる一又は複数のモジュールに対応する一又は複数のアクセス制限情報とを含む暗号を入力する暗号入力手順(S310)と、前記暗号入力手順において入力した暗号を復号する復号手順(S320)と、前記復号手順において復号したアクセス制限情報に基づいて、前記処理内容示唆情報抽出手順において抽出した、前記アクセス制限情報が対応する一又は複数のモジュールについての処理内容示唆情報への外部からのアクセスを許可するか否かを判定するアクセス許否判定手順(S350)とを備えること、を特徴とする動作解析プログラムである。
【0013】
請求項8の発明は、請求項7に記載の動作解析プログラムにおいて、外部から利用者の属性を識別するための利用者属性識別情報を入力する利用者属性識別情報入力手順(S340)を備え、前記アクセス許否判定手順は、前記復号手順において復号したアクセス制限情報と、前記利用者属性識別情報入力手順において入力した利用者属性識別情報とに基づいて判定を行うこと、を特徴とする動作解析プログラムである。
【0014】
請求項9の発明は、請求項7又は請求項8に記載の動作解析プログラムにおいて、前記暗号入力手順は、前記実行形式プログラムと、前記実行形式プログラムに含まれる一又は複数のライブラリモジュールに対応する一又は複数の出力制限情報とを含む暗号を入力し、前記アクセス許否判定手順は、前記復号手順において復号した出力制限情報に基づいて、前記出力制限情報が対応する一又は複数のライブラリモジュールについての処理内容示唆情報の外部への出力を許可するか否かを判定すること、を特徴とする動作解析プログラムである。
【0015】
【発明の実施の形態】
以下、図面等を参照しながら、本発明の実施の形態について、更に詳しく説明する。
(実施形態)
図1は、本発明によるプログラム開発システムの実施形態を示すブロック図である。
なお、前述した従来例と同様の機能を果たす部分には、同一の符号を付して、重複する説明を適宜省略する。
図1に示すように、プログラム開発システム1は、ライブラリ開発者端末10、結合装置20及び動作解析装置30とを備えている。ライブラリ開発者端末10及び結合装置20間、結合装置20及び動作解析装置30間は、電話回線、光ケーブルその他の有線、又は、赤外線その他の無線の通信回線50を介した通信、フレキシブルディスク、コンパクトディスク等の携帯型の情報記憶媒体60による情報の授受が可能である。プログラム開発システム1は、複数のソースコードから実行形式プログラムを作成し、この実行形式プログラムの動作を解析するシステムである。また、プログラム開発システム1、つまり、ライブラリ開発者端末10、結合装置20及び動作解析装置30は、システム提供者によって実現され、管理されている。
【0016】
ライブラリ開発者端末10は、ライブラリ開発者が利用する情報処理端末であって、主にライブラリのソースコードをオブジェクトコードへ翻訳し、通信回線50、携帯型の情報記憶媒体60等を介して結合装置20へ提供する翻訳装置である。
結合装置20及び動作解析装置30は、ライブラリ利用者であって、プログラムを開発するプログラム開発者が利用する情報処理端末である。結合装置20は、プログラム開発者が開発したソースコードをオブジェクトコードへ翻訳し、ライブラリ開発者端末10から提供されるライブラリモジュールのオブジェクトコードと結合して実行形式プログラムを作成する。動作解析装置30は、結合装置20が作成した実行形式プログラムの動作を解析する。
【0017】
図2は、本発明による動作解析装置を示すブロック図であって、図2(a)は、ライブラリ開発者端末10、結合装置20及び動作解析装置30の構成を示し、図2(b)は、各装置のCPUを説明する図である。
図2(a)に示すように、ライブラリ開発者端末10は、CPU11、入出力を制御するI/Oポート12、RAM、ROM、HDD等のプログラム、データを記憶する記憶部13、通信回線50を介した通信を制御する通信部14、携帯型の情報記憶媒体60と情報の入出力を行うディスクドライブ15、利用者が情報を入力するキーボード16、情報を出力して利用者へ通知するディスプレイ17等を備える情報処理端末である。また、結合装置20及び動作解析装置30は、ライブラリ開発者端末10と同様の構成を備えている。なお、ディスクドライブ15,25,35は、記憶部13,23,33として機能してもよい。
記憶部13,23,33は、RAM、ROM、HDD等であって、プログラム、データ等を記憶する。ライブラリ開発者端末10が備える記憶部13は、ライブラリ131を記憶している。ライブラリ131は、複数のライブラリモジュールのオブジェクトコードを記憶している。
【0018】
CPU11,21,31、I/Oポート12,22,32及び記憶部13,23,33は、バス18,28,38で互いに接続されている。また、I/Oポート12,22,32は、入出力装置である通信部14,24,34、ディスクドライブ15,25,35及びディスプレイ17,27,37に接続されている。図2(b)に示すように、CPU11は、記憶部13に記憶されているプログラムを実行することによって暗号化部111、翻訳部112を実現する。また、CPU21及びCPU31も同様に、暗号化部211、翻訳部212、復号部213、結合部214及び復号部313、アクセス許否判定部315、処理内容示唆情報抽出部316を実現する。各部の機能については、図3〜図8を用いて後述する。
【0019】
図3は、ライブラリ開発者端末の翻訳処理における動作を示すフローチャート、図4は、ライブラリ開発者端末の機能を説明する図である。
図3及び図4に示すように、ステップ100(以下、「ステップ」を「S」という。)において、ライブラリ開発者端末10は、翻訳要求をキーボード16等の入力装置から入力し、翻訳処理を開始する。ライブラリ開発者端末10は、ディスプレイ17に表示する等、入力を要求することによって、ディスクドライブ25等の入力装置からライブラリ開発者が開発したプログラムである一又は複数のソースコードを入力する(S110)。翻訳部112は、このソースコードをオブジェクトコードへ翻訳し(S120)、ライブラリ131へ格納する(S130)。
次に、ライブラリ開発者端末10は、ディスプレイに表示する等、ライブラリ開発者に第1暗号鍵(K1c)、アクセス制限鍵(Ka)の入力を要求し、ライブラリ開発者がライブラリ131から一又は複数のライブラリモジュールを指定等することによって、ライブラリ開発者端末10は、ライブラリモジュール識別情報、第1暗号鍵及びアクセス制限鍵を入力装置から入力する(S140)。
【0020】
なお、アクセス制御鍵は、一又は複数のライブラリモジュールに関連づけられ、このライブラリモジュールへのアクセスを制限するためのアクセス制限情報、またライブラリモジュールについての処理内容示唆情報の外部への出力を制限するための出力制限情報であって、本実施形態においては、利用者属性識別情報と照合することによって、利用者属性識別情報が示す利用者がライブラリモジュールの内容を知る正当な権限があるか否かを識別するための情報である。
暗号化部111は、入力されたライブラリモジュール識別情報が示すライブラリモジュールのオブジェクトコードをライブラリ131から読み出し(S150)、S140で入力されたアクセス制限鍵を付して第1暗号鍵と、記憶部13に記憶されている暗号アルゴリズムとに基づいて暗号化を行い、第1の暗号を作成する(S160)。
【0021】
なお、暗号方式は、DES等の対称鍵方式であってもRSA等の非対称鍵方式であってもよく、復号(図5、S240)と整合性がとれていればよい。後述する第2の暗号についても同様である。ライブラリ開発者端末10は、作成した第1の暗号をディスクドライブ15から携帯型の情報記憶媒体60へ又は通信部14から通信回線50へ出力することによって結合装置20へ提供し(S170)、翻訳処理を終了する(S180)。
【0022】
図5は、結合装置の実行形式プログラム作成処理における動作を示すフローチャート、図6は、結合端末の機能を説明する図である。
図5及び図6に示すように、S200において、結合装置20は、実行形式プログラム作成要求を入力装置から入力し、実行形式プログラム作成処理を開始する。結合装置20は、ディスプレイ27に表示する等、プログラム開発者にソースコードの入力を要求することによって、ディスクドライブ25等の入力装置からプログラム開発者が開発したプログラムである一又は複数のソースコードを入力する(S210)。
【0023】
翻訳部212は、このソースコードをオブジェクトコードへ翻訳する(S220)。結合装置20は、通信回線50、携帯型の情報記憶媒体60等を介してライブラリ開発者端末10が作成した第1の暗号を入力する(S230)。復号部213は、記憶部23に外部から認識されない様に記憶されている第1復号鍵(K1d)でこの第1の暗号をライブラリモジュールのオブジェクトコード及びアクセス制限鍵へ復号し(S240)、結合部214は、このライブラリモジュールのオブジェクトコードと、S220で翻訳されたオブジェクトコードとを結合し、実行形式プログラムを作成する(S250)。
【0024】
このときCPU21は、実行形式プログラムにおけるライブラリモジュールの範囲を示す情報、つまり、出力制限情報であるアクセス制限鍵が出力を制限する出力制限範囲を示す出力制限範囲情報を実行形式プログラムに付加する。暗号化部211は、記憶部23に外部から認識されない様に記憶されている第2暗号鍵(K2c)及び暗号アルゴリズムに基づいて、実行形式プログラム及び第1モジュール範囲情報にS240において復号したアクセス制限鍵を付して暗号化し、第2の暗号を作成する(S260)。結合装置20は、作成した第2の暗号をディスクドライブ25から携帯型の情報記憶媒体60へ又は通信部14から通信回線50へ出力することによって動作解析装置30へ提供し(S270)、実行形式プログラム作成処理を終了する(S280)。
【0025】
図7は、本発明による動作解析装置の解析処理における動作を示すフローチャート、図8及び図9は、動作解析装置の機能を説明する図である。
図7、図8及び図9に示すように、S300において、動作解析装置30は、実行形式プログラム解析要求を入力装置から入力し、実行形式プログラム解析処理を開始する。動作解析装置30は、通信回線50、携帯型の情報記憶媒体60等を介して結合装置20が作成した第2の暗号を入力する(S310)。
【0026】
復号部313は、記憶部33に外部から認識されない様に記憶されている第2の復号鍵(K2d)でこの第2の暗号を実行形式プログラム、第1モジュール範囲情報及びアクセス制限鍵へ復号する(S320)。処理内容示唆情報抽出部316は、この実行形式プログラムについての処理内容示唆情報を抽出する(S330)。動作解析装置30は、ディスプレイ37に表示すること等によって利用者に利用者属性識別情報(Kb)の入力を要求し、入力装置から処理内容示唆情報を入力する(S340)。利用者属性識別情報とは、動作解析装置の利用者の属性を識別するための情報であって、本実施形態においては、ライブラリモジュールの内容を知る正当な権限がある利用者を識別するための識別情報である。
【0027】
アクセス許否判定部315は、この利用者属性識別情報と、S320で復号したアクセス制限鍵に基づいて、利用者が正当な権限を有するか否かによって、ライブラリモジュールについての処理内容示唆情報の外部への出力を許可するか否か(処理内容示唆情報への外部からのアクセスを許可するか否か)を判定する(S350)。肯と判定した場合には、動作解析装置30は、S330で抽出した処理内容示唆情報を全てディスプレイ37等の出力装置から外部へ出力し(S360、図8)、否と判定した場合(利用者属性識別情報の入力がなかった場合も含む)には、S320で復号した第1モジュール範囲情報に基づいて、ライブラリモジュール以外のプログラムについての処理内容示唆情報を外部へ出力し(S370、図9)、動作解析装置30は、解析処理を終了する(S380)。なお、第2暗号鍵及び第2復号鍵は、システム提供者のみが参照及び変更可能である。
【0028】
このように、本実施形態よれば、ライブラリ開発者端末10は、第1復号鍵のみでしか復号できないように暗号化されたライブラリモジュールを出力するため、ライブラリモジュールの利用を制限し、ライブラリモジュールの無制限な利用を防止することが可能となった。
同様に、結合装置20は、第2復号鍵のみでしか復号できないように暗号化された実行形式プログラムを出力するため、実施形式プログラムの利用を制限し、実行形式プログラム及びライブラリモジュールの無制限な利用を防止することが可能となった。
更に、動作解析装置30は、実行形式プログラムの動作の解析をする場合に、実行形式プログラムとともに暗号化されて入力されるアクセス制限鍵と、外部から入力される利用者属性識別情報とに基づいて、ライブラリモジュールについての処理内容示唆情報の外部への出力を許可するか否かを判定するため、処理内容示唆情報へアクセスできる利用者を制限し、ライブラリモジュールに含まれる技術的ノウハウの無制限な流出を防止することが可能となった。
【0029】
(変形形態)
以上説明した実施形態に限定されることなく、種々の変形や変更が可能であって、それらも本発明の均等の範囲内である。例えば、結合装置20及び動作解析装置30は、別々の情報処理端末としたが、結合装置20の機能を備えた動作解析装置であってもよい。なお、この場合には、暗号化部211、復号部313は、必要なく、また、第2の暗号鍵、第2の復号鍵及び第2の暗号についての暗号アルゴリズムを記憶していなくともよい。リンカ(結合)及びデバッガ(動作解析)を1つの装置で行うことができるとともに、同様の効果を得ることが可能である。
【0030】
ライブラリ開発者端末10は、ライブラリ131から取り出した全てのライブラリモジュールに対応するアクセス制限鍵を1つ付加して暗号化を行うが、ライブラリ131から取り出したライブラリモジュールのうちいずれか一又は複数のライブラリモジュールに対応するアクセス制限鍵を付加してもよく、複数のアクセス制限鍵を付加してもよい。ライブラリモジュールへのアクセスの種類、個々のライブラリモジュールの内容等を考慮し、アクセス制限鍵を対応させることによって、より効果的にアクセスの制限を行うことが可能である。
【0031】
ライブラリ開発者端末10、結合装置20及び動作解析装置30は、入力装置として通信部14,24,34、ディスクドライブ15,25,35、キーボード16,26,36を備えているが、例えば、ICカードのリーダライタ等、他の入力装置であってもよく、情報が入力できる装置であれば、その種類は、限定されない。
【0032】
図3のS110に示すように、ライブラリ開発者端末10は、第1暗号鍵、アクセス制御鍵を外部から入力するが、記憶部13に第1暗号鍵、アクセス制御鍵を予め記憶し、読み出してもよい。同様に、図7のS340において、動作解析装置30は、利用者属性識別情報を入力するが、処理開始前に入力して記憶部33に記憶したものを読み出してもよい。第1の暗号の入力(図5、S230)、第2の暗号の入力(図7、S310)についても同様である。また、第2暗号鍵及び第2復号鍵が非対称である場合には、結合装置20は、第2暗号鍵を外部から入力してもよい。
【0033】
ライブラリ開発者端末10、結合装置20及び動作解析装置30は、各処理において、それぞれ複数の情報を入力するが、例えば、結合装置20は、ソースコードの入力(図5、S210)よりも前に第1の暗号を入力(S230)してもよく、処理に必要な情報をその処理前に入力していればよく、入力順及び入力時期は、限定されない。
【0034】
ライブラリ開発者端末10は、記憶部13にライブラリ131を記憶し、翻訳処理においてライブラリモジュールのソースコードを読み出すが(図3、S120)、他の情報処理端末がライブラリ131を記憶し、ライブラリ提供端末10が通信回線50、携帯型の情報記憶媒体60等を介してライブラリ識別情報で指定するライブラリモジュールを入力装置から入力してもよい。ライブラリ開発者端末10がどのようにライブラリモジュールを取得するかは、限定されない。
【0035】
【発明の効果】
以上詳しく説明したように、本発明によれば、以下の効果を得ることが可能となった。
(動作解析装置又は動作解析プログラムについて)
(1)実行形式プログラムの動作の解析をする場合に、実行形式プログラムとともに暗号化されて入力されるアクセス制限情報に基づいて、アクセス制限情報が対応する一又は複数のモジュールについての処理内容示唆情報への外部からのアクセスを許可するか否かを判定し、処理内容示唆情報へのアクセスを制限することによって、所定のモジュールについての処理内容示唆情報の流出を制限し、技術的ノウハウの無制限な流出を防止する。
(2)実行形式プログラムの動作の解析をする場合に、利用者属性識別情報及びアクセス制限情報に基づいて、アクセスを許可するか否かを判定し、利用者が所定の者である場合にのみ、一又は複数のモジュールについての処理内容示唆情報へのアクセスを許可することによって、処理内容示唆情報へアクセスできる利用者を制限し、技術的ノウハウの無制限な流出を防止する。
(3)実行形式プログラムの動作の解析をする場合に、特に、ライブラリモジュールについての処理内容示唆情報の外部への出力を制限することによって、ライブラリモジュールに含まれる技術的ノウハウの無制限な流出を防止する。
(プログラム開発システムについて)
(4)(1)から(3)までと同様の効果に加え、動作解析装置が、結合装置によって暗号化された実行形式プログラム、及び、一又は複数のアクセス制限情報を入力し、復号することによって、実行形式プログラムの利用を制限し、無制限な利用を防止する。
(5)結合装置が、翻訳装置で暗号化された一又は複数のモジュール、及び、一又は複数のアクセス制御情報を復号することによって、一又は複数のモジュールの利用を制限し、無制限な利用を防止する。
【図面の簡単な説明】
【図1】本発明によるプログラム開発システムの実施形態を示すブロック図である。
【図2】本発明による動作解析装置を示すブロック図である。
【図3】ライブラリ開発者端末の翻訳処理における動作を示すフローチャートである。
【図4】ライブラリ開発者端末の機能を説明する図である。
【図5】結合装置の実行形式プログラム作成処理における動作を示すフローチャートである。
【図6】結合端末の機能を説明する図である。
【図7】本発明による動作解析装置の解析処理における動作を示すフローチャートである。
【図8】本発明による動作解析装置の機能を説明する図である。
【図9】本発明による動作解析装置の機能を説明する図である。
【図10】従来のプログラム開発システムを説明する図である。
【符号の説明】
1 プログラム開発システム
10 ライブラリ開発者端末
20 結合装置
30 動作解析装置
11,21,31 CPU
12,22,32 I/O
13,23,33 記憶部
14,24,34 通信部
15,25,35 ディスクドライブ
16,26,36 キーボード
17,27,37 ディスプレイ
111,211 暗号化部
112,212 翻訳部
213,313 復号部
214 結合部
315 アクセス許否判定部
316 処理内容示唆情報抽出部
【発明の属する技術分野】
本発明はプログラムの動作を解析する動作解析装置並びに動作解析プログラム、及び、プログラムを開発するプログラム開発システムに関するものである。
【0002】
【従来の技術】
図10は、従来のプログラム開発システムを説明する図である。
図10に示すように、従来のプログラム開発システムおいて、ソフトウェア等のプログラムを作成するプログラム開発者は、先ず、プログラミング言語を用いて作成した一又は複数のモジュールを含むプログラムのソースコード(以下、「プログラムのソースコード」を「ソースコード」という。)をコンパイラ10−2によってプログラムのオブジェクトコード(以下、「プログラムのオブジェクトコード」を「オブジェクトコード」という。)へ翻訳(コンパイル)する。プログラム開発者は、同様に、ライブラリ開発者が開発したライブラリ131−2から取り出した必要な関数(サブルーチン)であるモジュール(以下、ライブラリから取り出したモジュールを「ライブラリモジュール」という。)のオブジェクトコードをリンカ20−2によって結合(リンク)し、実行形式プログラムを作成する。実行形式プログラムとは、ロード・モジュール等のコンピュータが実行可能な形式のプログラムである。
プログラム開発者は、デバッガ30−2によってこの実行形式プログラムを実行した場合の所定の処理時点におけるレジスタの値、その変化の履歴、プログラムカウンタの位置、その変化の履歴等のCPU及び周辺回路の動作状況等、実行形式プログラムの動作を解析するための処理内容示唆情報を抽出し、この実行形式プログラムの動作を検証(デバッグ)する(例えば、特許文献1)。
ライブラリとは、様々なプログラムで利用できるようにした汎用性の高い関数(サブルーチン)やデータの集まりであって、ライブラリモジュールは、複雑なハードウェアを制御し、上位のプログラムからの命令方法を簡略化する役割を担っており、プログラム開発の効率の向上に大きく貢献する(複雑なプログラム処理がライブラリとして提供されることもある)。つまり、処理速度の向上、ハードウェアへの読み書きの制御方法等、ライブラリモジュールには、ライブラリ開発者の技術的なノウハウが詰め込まれている。
【0003】
【特許文献1】
特開平9−305435号公報(第2頁−7頁、図1、図7)
【0004】
【発明が解決しようとする課題】
しかし、開発中のプログラムの動作を検証する場合に、プログラムの如何なる挙動も観測することができるため、プログラム開発者は、全てのライブラリモジュールの内部処理を観測することができ、ライブラリ開発者の技術的ノウハウがソフト開発者へ流出する可能性があった。
また、クロスコンパイラという概念によって、ライブラリ開発者が想定していない環境でライブラリモジュールが無制限に利用されるとともに、ノウハウが流出してしまう可能性があった。
一方、特開平10−198726公報に記載されている「集積回路の設計において複合機能ブロックを効率的に実装する方法及び装置」では、暗号化とパスワードの照合が成功した場合には、マクロテンプレートとのリンクと、その中身の参照等、動作及び性能の確認におけるマクロテンプレートの利用を許可するが、その中身(詳細)の参照についての制限をかけることが出来ず、利便性に欠けるという問題があった。
【0005】
本発明の課題は、ライブラリモジュール等のプログラムに含まれる技術的ノウハウの他者への無制限な流出及びプログラムの無制限な利用を防止することが可能な動作解析装置、プログラム開発システム及び動作解析プログラムを提供することである。
【0006】
【課題を解決するための手段】
本発明は、以下のような解決手段により、前記課題を解決する。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。すなわち、請求項1の発明は、結合された複数のモジュールを含む実行形式プログラムの動作を解析するために処理内容示唆情報を抽出する処理内容示唆情報抽出手段(316)を備える動作解析装置であって、前記実行形式プログラムと、この実行形式プログラムに含まれる一又は複数のモジュールに対応する一又は複数のアクセス制限情報とを含む暗号を入力する暗号入力手段(36)と、前記暗号入力手段によって入力される暗号を復号する復号手段(312)と、前記復号手段によって復号されるアクセス制限情報に基づいて、前記処理内容示唆情報抽出手段によって抽出される、前記アクセス制限情報が対応する一又は複数のモジュールについての処理内容示唆情報への外部からのアクセスを許可するか否かを判定するアクセス許否判定手段(315)とを備えること、を特徴とする動作解析装置(30)である。
【0007】
請求項2の発明は、請求項1に記載の動作解析装置において、外部から利用者の属性を識別するための利用者属性識別情報を入力する利用者属性識別情報入力手段(36)を備え、前記アクセス許否判定手段は、前記復号手段によって復号されるアクセス制限情報と、前記利用者属性識別情報入力手段によって入力される利用者属性識別情報とに基づいて判定を行うこと、を特徴とする動作解析装置(30)である。
【0008】
請求項3の発明は、請求項1又は請求項2に記載の動作解析装置において、前記暗号入力手段は、前記実行形式プログラムと、前記実行形式プログラムに含まれる一又は複数のライブラリモジュールに対応する一又は複数の出力制限情報とを含む暗号を入力し、前記アクセス許否判定手段は、前記復号手段によって復号される出力制限情報に基づいて、前記出力制限情報が対応する一又は複数のライブラリモジュールについての処理内容示唆情報の外部への出力を許可するか否かを判定すること、を特徴とする動作解析装置(30)である。
【0009】
請求項4の発明は、結合された複数のモジュールを含む実行形式プログラムの動作を解析するために処理内容示唆情報を抽出する処理内容示唆情報抽出手段を備える動作解析装置であって、一又は複数のモジュールと、この一又は複数のモジュールに対応する一又は複数のアクセス制御情報とを含む暗号を入力する暗号入力手段と、前記暗号入力手段によって入力される暗号を復号する復号手段と、前記復号手段によって復号された一又は複数のモジュールと、他の一又は複数のモジュールとを結合し、実行形式プログラムを作成する結合手段と、前記復号手段によって復号されたアクセス制限情報に基づいて、前記処理内容示唆情報抽出手段によって抽出される、前記アクセス制限情報が対応する一又は複数のモジュールについての処理内容示唆情報への外部からのアクセスを許可するか否かを判定するアクセス許否判定手段とを備えること、を特徴とする動作解析装置である。
【0010】
請求項5の発明は、請求項1から請求項3までのいずれか1項に記載の動作解析装置(30)と、複数のモジュールを結合して前記動作解析装置へ入力する実行形式プログラムを作成する結合装置(20)とを備えるプログラム開発システムであって、前記結合装置は、作成した前記実行形式プログラムに前記一又は複数のアクセス制限情報を付して暗号化する暗号化手段(211)を備え、前記動作解析装置の復号手段は、前記結合装置によって暗号化された実行形式プログラム、及び、一又は複数のアクセス制限情報を復号すること、を特徴とするプログラム開発システム(1)である。
【0011】
請求項6の発明は、請求項5に記載のプログラム開発システムにおいて、ソースコードのモジュールをオブジェクトコードのモジュールへ翻訳する翻訳手段(112)と、前記翻訳手段によって翻訳された一又は複数の前記オブジェクトコードのモジュールに、一又は複数の前記オブジェクトコードのモジュールに対応する一又は複数のアクセス制限情報を付して暗号化する暗号化手段(111)とを有する翻訳装置(10)を備え、前記結合装置は、前記翻訳装置の暗号化手段によって暗号化された一又は複数のモジュール、及び、一又は複数のアクセス制限情報を復号する復号手段(213)を備えること、を特徴とするプログラム開発システムである。
【0012】
請求項7の発明は、結合された複数のモジュールを含む実行形式プログラムの動作を解析するために処理内容示唆情報を抽出する処理内容示唆情報抽出手順(S330)をコンピュータに実行させる動作解析プログラムであって、前記実行形式プログラムと、この実行形式プログラムに含まれる一又は複数のモジュールに対応する一又は複数のアクセス制限情報とを含む暗号を入力する暗号入力手順(S310)と、前記暗号入力手順において入力した暗号を復号する復号手順(S320)と、前記復号手順において復号したアクセス制限情報に基づいて、前記処理内容示唆情報抽出手順において抽出した、前記アクセス制限情報が対応する一又は複数のモジュールについての処理内容示唆情報への外部からのアクセスを許可するか否かを判定するアクセス許否判定手順(S350)とを備えること、を特徴とする動作解析プログラムである。
【0013】
請求項8の発明は、請求項7に記載の動作解析プログラムにおいて、外部から利用者の属性を識別するための利用者属性識別情報を入力する利用者属性識別情報入力手順(S340)を備え、前記アクセス許否判定手順は、前記復号手順において復号したアクセス制限情報と、前記利用者属性識別情報入力手順において入力した利用者属性識別情報とに基づいて判定を行うこと、を特徴とする動作解析プログラムである。
【0014】
請求項9の発明は、請求項7又は請求項8に記載の動作解析プログラムにおいて、前記暗号入力手順は、前記実行形式プログラムと、前記実行形式プログラムに含まれる一又は複数のライブラリモジュールに対応する一又は複数の出力制限情報とを含む暗号を入力し、前記アクセス許否判定手順は、前記復号手順において復号した出力制限情報に基づいて、前記出力制限情報が対応する一又は複数のライブラリモジュールについての処理内容示唆情報の外部への出力を許可するか否かを判定すること、を特徴とする動作解析プログラムである。
【0015】
【発明の実施の形態】
以下、図面等を参照しながら、本発明の実施の形態について、更に詳しく説明する。
(実施形態)
図1は、本発明によるプログラム開発システムの実施形態を示すブロック図である。
なお、前述した従来例と同様の機能を果たす部分には、同一の符号を付して、重複する説明を適宜省略する。
図1に示すように、プログラム開発システム1は、ライブラリ開発者端末10、結合装置20及び動作解析装置30とを備えている。ライブラリ開発者端末10及び結合装置20間、結合装置20及び動作解析装置30間は、電話回線、光ケーブルその他の有線、又は、赤外線その他の無線の通信回線50を介した通信、フレキシブルディスク、コンパクトディスク等の携帯型の情報記憶媒体60による情報の授受が可能である。プログラム開発システム1は、複数のソースコードから実行形式プログラムを作成し、この実行形式プログラムの動作を解析するシステムである。また、プログラム開発システム1、つまり、ライブラリ開発者端末10、結合装置20及び動作解析装置30は、システム提供者によって実現され、管理されている。
【0016】
ライブラリ開発者端末10は、ライブラリ開発者が利用する情報処理端末であって、主にライブラリのソースコードをオブジェクトコードへ翻訳し、通信回線50、携帯型の情報記憶媒体60等を介して結合装置20へ提供する翻訳装置である。
結合装置20及び動作解析装置30は、ライブラリ利用者であって、プログラムを開発するプログラム開発者が利用する情報処理端末である。結合装置20は、プログラム開発者が開発したソースコードをオブジェクトコードへ翻訳し、ライブラリ開発者端末10から提供されるライブラリモジュールのオブジェクトコードと結合して実行形式プログラムを作成する。動作解析装置30は、結合装置20が作成した実行形式プログラムの動作を解析する。
【0017】
図2は、本発明による動作解析装置を示すブロック図であって、図2(a)は、ライブラリ開発者端末10、結合装置20及び動作解析装置30の構成を示し、図2(b)は、各装置のCPUを説明する図である。
図2(a)に示すように、ライブラリ開発者端末10は、CPU11、入出力を制御するI/Oポート12、RAM、ROM、HDD等のプログラム、データを記憶する記憶部13、通信回線50を介した通信を制御する通信部14、携帯型の情報記憶媒体60と情報の入出力を行うディスクドライブ15、利用者が情報を入力するキーボード16、情報を出力して利用者へ通知するディスプレイ17等を備える情報処理端末である。また、結合装置20及び動作解析装置30は、ライブラリ開発者端末10と同様の構成を備えている。なお、ディスクドライブ15,25,35は、記憶部13,23,33として機能してもよい。
記憶部13,23,33は、RAM、ROM、HDD等であって、プログラム、データ等を記憶する。ライブラリ開発者端末10が備える記憶部13は、ライブラリ131を記憶している。ライブラリ131は、複数のライブラリモジュールのオブジェクトコードを記憶している。
【0018】
CPU11,21,31、I/Oポート12,22,32及び記憶部13,23,33は、バス18,28,38で互いに接続されている。また、I/Oポート12,22,32は、入出力装置である通信部14,24,34、ディスクドライブ15,25,35及びディスプレイ17,27,37に接続されている。図2(b)に示すように、CPU11は、記憶部13に記憶されているプログラムを実行することによって暗号化部111、翻訳部112を実現する。また、CPU21及びCPU31も同様に、暗号化部211、翻訳部212、復号部213、結合部214及び復号部313、アクセス許否判定部315、処理内容示唆情報抽出部316を実現する。各部の機能については、図3〜図8を用いて後述する。
【0019】
図3は、ライブラリ開発者端末の翻訳処理における動作を示すフローチャート、図4は、ライブラリ開発者端末の機能を説明する図である。
図3及び図4に示すように、ステップ100(以下、「ステップ」を「S」という。)において、ライブラリ開発者端末10は、翻訳要求をキーボード16等の入力装置から入力し、翻訳処理を開始する。ライブラリ開発者端末10は、ディスプレイ17に表示する等、入力を要求することによって、ディスクドライブ25等の入力装置からライブラリ開発者が開発したプログラムである一又は複数のソースコードを入力する(S110)。翻訳部112は、このソースコードをオブジェクトコードへ翻訳し(S120)、ライブラリ131へ格納する(S130)。
次に、ライブラリ開発者端末10は、ディスプレイに表示する等、ライブラリ開発者に第1暗号鍵(K1c)、アクセス制限鍵(Ka)の入力を要求し、ライブラリ開発者がライブラリ131から一又は複数のライブラリモジュールを指定等することによって、ライブラリ開発者端末10は、ライブラリモジュール識別情報、第1暗号鍵及びアクセス制限鍵を入力装置から入力する(S140)。
【0020】
なお、アクセス制御鍵は、一又は複数のライブラリモジュールに関連づけられ、このライブラリモジュールへのアクセスを制限するためのアクセス制限情報、またライブラリモジュールについての処理内容示唆情報の外部への出力を制限するための出力制限情報であって、本実施形態においては、利用者属性識別情報と照合することによって、利用者属性識別情報が示す利用者がライブラリモジュールの内容を知る正当な権限があるか否かを識別するための情報である。
暗号化部111は、入力されたライブラリモジュール識別情報が示すライブラリモジュールのオブジェクトコードをライブラリ131から読み出し(S150)、S140で入力されたアクセス制限鍵を付して第1暗号鍵と、記憶部13に記憶されている暗号アルゴリズムとに基づいて暗号化を行い、第1の暗号を作成する(S160)。
【0021】
なお、暗号方式は、DES等の対称鍵方式であってもRSA等の非対称鍵方式であってもよく、復号(図5、S240)と整合性がとれていればよい。後述する第2の暗号についても同様である。ライブラリ開発者端末10は、作成した第1の暗号をディスクドライブ15から携帯型の情報記憶媒体60へ又は通信部14から通信回線50へ出力することによって結合装置20へ提供し(S170)、翻訳処理を終了する(S180)。
【0022】
図5は、結合装置の実行形式プログラム作成処理における動作を示すフローチャート、図6は、結合端末の機能を説明する図である。
図5及び図6に示すように、S200において、結合装置20は、実行形式プログラム作成要求を入力装置から入力し、実行形式プログラム作成処理を開始する。結合装置20は、ディスプレイ27に表示する等、プログラム開発者にソースコードの入力を要求することによって、ディスクドライブ25等の入力装置からプログラム開発者が開発したプログラムである一又は複数のソースコードを入力する(S210)。
【0023】
翻訳部212は、このソースコードをオブジェクトコードへ翻訳する(S220)。結合装置20は、通信回線50、携帯型の情報記憶媒体60等を介してライブラリ開発者端末10が作成した第1の暗号を入力する(S230)。復号部213は、記憶部23に外部から認識されない様に記憶されている第1復号鍵(K1d)でこの第1の暗号をライブラリモジュールのオブジェクトコード及びアクセス制限鍵へ復号し(S240)、結合部214は、このライブラリモジュールのオブジェクトコードと、S220で翻訳されたオブジェクトコードとを結合し、実行形式プログラムを作成する(S250)。
【0024】
このときCPU21は、実行形式プログラムにおけるライブラリモジュールの範囲を示す情報、つまり、出力制限情報であるアクセス制限鍵が出力を制限する出力制限範囲を示す出力制限範囲情報を実行形式プログラムに付加する。暗号化部211は、記憶部23に外部から認識されない様に記憶されている第2暗号鍵(K2c)及び暗号アルゴリズムに基づいて、実行形式プログラム及び第1モジュール範囲情報にS240において復号したアクセス制限鍵を付して暗号化し、第2の暗号を作成する(S260)。結合装置20は、作成した第2の暗号をディスクドライブ25から携帯型の情報記憶媒体60へ又は通信部14から通信回線50へ出力することによって動作解析装置30へ提供し(S270)、実行形式プログラム作成処理を終了する(S280)。
【0025】
図7は、本発明による動作解析装置の解析処理における動作を示すフローチャート、図8及び図9は、動作解析装置の機能を説明する図である。
図7、図8及び図9に示すように、S300において、動作解析装置30は、実行形式プログラム解析要求を入力装置から入力し、実行形式プログラム解析処理を開始する。動作解析装置30は、通信回線50、携帯型の情報記憶媒体60等を介して結合装置20が作成した第2の暗号を入力する(S310)。
【0026】
復号部313は、記憶部33に外部から認識されない様に記憶されている第2の復号鍵(K2d)でこの第2の暗号を実行形式プログラム、第1モジュール範囲情報及びアクセス制限鍵へ復号する(S320)。処理内容示唆情報抽出部316は、この実行形式プログラムについての処理内容示唆情報を抽出する(S330)。動作解析装置30は、ディスプレイ37に表示すること等によって利用者に利用者属性識別情報(Kb)の入力を要求し、入力装置から処理内容示唆情報を入力する(S340)。利用者属性識別情報とは、動作解析装置の利用者の属性を識別するための情報であって、本実施形態においては、ライブラリモジュールの内容を知る正当な権限がある利用者を識別するための識別情報である。
【0027】
アクセス許否判定部315は、この利用者属性識別情報と、S320で復号したアクセス制限鍵に基づいて、利用者が正当な権限を有するか否かによって、ライブラリモジュールについての処理内容示唆情報の外部への出力を許可するか否か(処理内容示唆情報への外部からのアクセスを許可するか否か)を判定する(S350)。肯と判定した場合には、動作解析装置30は、S330で抽出した処理内容示唆情報を全てディスプレイ37等の出力装置から外部へ出力し(S360、図8)、否と判定した場合(利用者属性識別情報の入力がなかった場合も含む)には、S320で復号した第1モジュール範囲情報に基づいて、ライブラリモジュール以外のプログラムについての処理内容示唆情報を外部へ出力し(S370、図9)、動作解析装置30は、解析処理を終了する(S380)。なお、第2暗号鍵及び第2復号鍵は、システム提供者のみが参照及び変更可能である。
【0028】
このように、本実施形態よれば、ライブラリ開発者端末10は、第1復号鍵のみでしか復号できないように暗号化されたライブラリモジュールを出力するため、ライブラリモジュールの利用を制限し、ライブラリモジュールの無制限な利用を防止することが可能となった。
同様に、結合装置20は、第2復号鍵のみでしか復号できないように暗号化された実行形式プログラムを出力するため、実施形式プログラムの利用を制限し、実行形式プログラム及びライブラリモジュールの無制限な利用を防止することが可能となった。
更に、動作解析装置30は、実行形式プログラムの動作の解析をする場合に、実行形式プログラムとともに暗号化されて入力されるアクセス制限鍵と、外部から入力される利用者属性識別情報とに基づいて、ライブラリモジュールについての処理内容示唆情報の外部への出力を許可するか否かを判定するため、処理内容示唆情報へアクセスできる利用者を制限し、ライブラリモジュールに含まれる技術的ノウハウの無制限な流出を防止することが可能となった。
【0029】
(変形形態)
以上説明した実施形態に限定されることなく、種々の変形や変更が可能であって、それらも本発明の均等の範囲内である。例えば、結合装置20及び動作解析装置30は、別々の情報処理端末としたが、結合装置20の機能を備えた動作解析装置であってもよい。なお、この場合には、暗号化部211、復号部313は、必要なく、また、第2の暗号鍵、第2の復号鍵及び第2の暗号についての暗号アルゴリズムを記憶していなくともよい。リンカ(結合)及びデバッガ(動作解析)を1つの装置で行うことができるとともに、同様の効果を得ることが可能である。
【0030】
ライブラリ開発者端末10は、ライブラリ131から取り出した全てのライブラリモジュールに対応するアクセス制限鍵を1つ付加して暗号化を行うが、ライブラリ131から取り出したライブラリモジュールのうちいずれか一又は複数のライブラリモジュールに対応するアクセス制限鍵を付加してもよく、複数のアクセス制限鍵を付加してもよい。ライブラリモジュールへのアクセスの種類、個々のライブラリモジュールの内容等を考慮し、アクセス制限鍵を対応させることによって、より効果的にアクセスの制限を行うことが可能である。
【0031】
ライブラリ開発者端末10、結合装置20及び動作解析装置30は、入力装置として通信部14,24,34、ディスクドライブ15,25,35、キーボード16,26,36を備えているが、例えば、ICカードのリーダライタ等、他の入力装置であってもよく、情報が入力できる装置であれば、その種類は、限定されない。
【0032】
図3のS110に示すように、ライブラリ開発者端末10は、第1暗号鍵、アクセス制御鍵を外部から入力するが、記憶部13に第1暗号鍵、アクセス制御鍵を予め記憶し、読み出してもよい。同様に、図7のS340において、動作解析装置30は、利用者属性識別情報を入力するが、処理開始前に入力して記憶部33に記憶したものを読み出してもよい。第1の暗号の入力(図5、S230)、第2の暗号の入力(図7、S310)についても同様である。また、第2暗号鍵及び第2復号鍵が非対称である場合には、結合装置20は、第2暗号鍵を外部から入力してもよい。
【0033】
ライブラリ開発者端末10、結合装置20及び動作解析装置30は、各処理において、それぞれ複数の情報を入力するが、例えば、結合装置20は、ソースコードの入力(図5、S210)よりも前に第1の暗号を入力(S230)してもよく、処理に必要な情報をその処理前に入力していればよく、入力順及び入力時期は、限定されない。
【0034】
ライブラリ開発者端末10は、記憶部13にライブラリ131を記憶し、翻訳処理においてライブラリモジュールのソースコードを読み出すが(図3、S120)、他の情報処理端末がライブラリ131を記憶し、ライブラリ提供端末10が通信回線50、携帯型の情報記憶媒体60等を介してライブラリ識別情報で指定するライブラリモジュールを入力装置から入力してもよい。ライブラリ開発者端末10がどのようにライブラリモジュールを取得するかは、限定されない。
【0035】
【発明の効果】
以上詳しく説明したように、本発明によれば、以下の効果を得ることが可能となった。
(動作解析装置又は動作解析プログラムについて)
(1)実行形式プログラムの動作の解析をする場合に、実行形式プログラムとともに暗号化されて入力されるアクセス制限情報に基づいて、アクセス制限情報が対応する一又は複数のモジュールについての処理内容示唆情報への外部からのアクセスを許可するか否かを判定し、処理内容示唆情報へのアクセスを制限することによって、所定のモジュールについての処理内容示唆情報の流出を制限し、技術的ノウハウの無制限な流出を防止する。
(2)実行形式プログラムの動作の解析をする場合に、利用者属性識別情報及びアクセス制限情報に基づいて、アクセスを許可するか否かを判定し、利用者が所定の者である場合にのみ、一又は複数のモジュールについての処理内容示唆情報へのアクセスを許可することによって、処理内容示唆情報へアクセスできる利用者を制限し、技術的ノウハウの無制限な流出を防止する。
(3)実行形式プログラムの動作の解析をする場合に、特に、ライブラリモジュールについての処理内容示唆情報の外部への出力を制限することによって、ライブラリモジュールに含まれる技術的ノウハウの無制限な流出を防止する。
(プログラム開発システムについて)
(4)(1)から(3)までと同様の効果に加え、動作解析装置が、結合装置によって暗号化された実行形式プログラム、及び、一又は複数のアクセス制限情報を入力し、復号することによって、実行形式プログラムの利用を制限し、無制限な利用を防止する。
(5)結合装置が、翻訳装置で暗号化された一又は複数のモジュール、及び、一又は複数のアクセス制御情報を復号することによって、一又は複数のモジュールの利用を制限し、無制限な利用を防止する。
【図面の簡単な説明】
【図1】本発明によるプログラム開発システムの実施形態を示すブロック図である。
【図2】本発明による動作解析装置を示すブロック図である。
【図3】ライブラリ開発者端末の翻訳処理における動作を示すフローチャートである。
【図4】ライブラリ開発者端末の機能を説明する図である。
【図5】結合装置の実行形式プログラム作成処理における動作を示すフローチャートである。
【図6】結合端末の機能を説明する図である。
【図7】本発明による動作解析装置の解析処理における動作を示すフローチャートである。
【図8】本発明による動作解析装置の機能を説明する図である。
【図9】本発明による動作解析装置の機能を説明する図である。
【図10】従来のプログラム開発システムを説明する図である。
【符号の説明】
1 プログラム開発システム
10 ライブラリ開発者端末
20 結合装置
30 動作解析装置
11,21,31 CPU
12,22,32 I/O
13,23,33 記憶部
14,24,34 通信部
15,25,35 ディスクドライブ
16,26,36 キーボード
17,27,37 ディスプレイ
111,211 暗号化部
112,212 翻訳部
213,313 復号部
214 結合部
315 アクセス許否判定部
316 処理内容示唆情報抽出部
Claims (9)
- 結合された複数のモジュールを含む実行形式プログラムの動作を解析するために処理内容示唆情報を抽出する処理内容示唆情報抽出手段を備える動作解析装置であって、
前記実行形式プログラムと、この実行形式プログラムに含まれる一又は複数のモジュールに対応する一又は複数のアクセス制限情報とを含む暗号を入力する暗号入力手段と、
前記暗号入力手段によって入力される暗号を復号する復号手段と、
前記復号手段によって復号されるアクセス制限情報に基づいて、前記処理内容示唆情報抽出手段によって抽出される、前記アクセス制限情報が対応する一又は複数のモジュールについての処理内容示唆情報への外部からのアクセスを許可するか否かを判定するアクセス許否判定手段とを備えること、
を特徴とする動作解析装置。 - 請求項1に記載の動作解析装置において、
外部から利用者の属性を識別するための利用者属性識別情報を入力する利用者属性識別情報入力手段を備え、
前記アクセス許否判定手段は、前記復号手段によって復号されるアクセス制限情報と、前記利用者属性識別情報入力手段によって入力される利用者属性識別情報とに基づいて判定を行うこと、
を特徴とする動作解析装置。 - 請求項1又は請求項2に記載の動作解析装置において、
前記暗号入力手段は、前記実行形式プログラムと、前記実行形式プログラムに含まれる一又は複数のライブラリモジュールに対応する一又は複数の出力制限情報とを含む暗号を入力し、
前記アクセス許否判定手段は、前記復号手段によって復号される出力制限情報に基づいて、前記出力制限情報が対応する一又は複数のライブラリモジュールについての処理内容示唆情報の外部への出力を許可するか否かを判定すること、
を特徴とする動作解析装置。 - 結合された複数のモジュールを含む実行形式プログラムの動作を解析するために処理内容示唆情報を抽出する処理内容示唆情報抽出手段を備える動作解析装置であって、
一又は複数のモジュールと、この一又は複数のモジュールに対応する一又は複数のアクセス制御情報とを含む暗号を入力する暗号入力手段と、
前記暗号入力手段によって入力される暗号を復号する復号手段と、
前記復号手段によって復号された一又は複数のモジュールと、他の一又は複数のモジュールとを結合し、実行形式プログラムを作成する結合手段と、
前記復号手段によって復号されたアクセス制限情報に基づいて、前記処理内容示唆情報抽出手段によって抽出される、前記アクセス制限情報が対応する一又は複数のモジュールについての処理内容示唆情報への外部からのアクセスを許可するか否かを判定するアクセス許否判定手段とを備えること、
を特徴とする動作解析装置。 - 請求項1から請求項3までのいずれか1項に記載の動作解析装置と、複数のモジュールを結合して前記動作解析装置へ入力する実行形式プログラムを作成する結合装置とを備えるプログラム開発システムであって、
前記結合装置は、作成した前記実行形式プログラムに前記一又は複数のアクセス制限情報を付して暗号化する暗号化手段を備え、
前記動作解析装置の復号手段は、前記結合装置によって暗号化された実行形式プログラム、及び、一又は複数のアクセス制限情報を復号すること、
を特徴とするプログラム開発システム。 - 請求項5に記載のプログラム開発システムにおいて、
ソースコードのモジュールをオブジェクトコードのモジュールへ翻訳する翻訳手段と、
前記翻訳手段によって翻訳された一又は複数の前記オブジェクトコードのモジュールに、一又は複数の前記オブジェクトコードのモジュールに対応する一又は複数のアクセス制限情報を付して暗号化する暗号化手段とを有する翻訳装置を備え、
前記結合装置は、前記翻訳装置の暗号化手段によって暗号化された一又は複数のモジュール、及び、一又は複数のアクセス制限情報を復号する復号手段を備えること、
を特徴とするプログラム開発システム。 - 結合された複数のモジュールを含む実行形式プログラムの動作を解析するために処理内容示唆情報を抽出する処理内容示唆情報抽出手順をコンピュータに実行させる動作解析プログラムであって、
前記実行形式プログラムと、この実行形式プログラムに含まれる一又は複数のモジュールに対応する一又は複数のアクセス制限情報とを含む暗号を入力する暗号入力手順と、
前記暗号入力手順において入力した暗号を復号する復号手順と、
前記復号手順において復号したアクセス制限情報に基づいて、前記処理内容示唆情報抽出手順において抽出した、前記アクセス制限情報が対応する一又は複数のモジュールについての処理内容示唆情報への外部からのアクセスを許可するか否かを判定するアクセス許否判定手順とを備えること、
を特徴とする動作解析プログラム。 - 請求項7に記載の動作解析プログラムにおいて、
外部から利用者の属性を識別するための利用者属性識別情報を入力する利用者属性識別情報入力手順を備え、
前記アクセス許否判定手順は、前記復号手順において復号したアクセス制限情報と、前記利用者属性識別情報入力手順において入力した利用者属性識別情報とに基づいて判定を行うこと、
を特徴とする動作解析プログラム。 - 請求項7又は請求項8に記載の動作解析プログラムにおいて、
前記暗号入力手順は、前記実行形式プログラムと、前記実行形式プログラムに含まれる一又は複数のライブラリモジュールに対応する一又は複数の出力制限情報とを含む暗号を入力し、
前記アクセス許否判定手順は、前記復号手順において復号した出力制限情報に基づいて、前記出力制限情報が対応する一又は複数のライブラリモジュールについての処理内容示唆情報の外部への出力を許可するか否かを判定すること、
を特徴とする動作解析プログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002299261A JP2004133793A (ja) | 2002-10-11 | 2002-10-11 | 動作解析装置、プログラム開発システム及び動作解析プログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002299261A JP2004133793A (ja) | 2002-10-11 | 2002-10-11 | 動作解析装置、プログラム開発システム及び動作解析プログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004133793A true JP2004133793A (ja) | 2004-04-30 |
Family
ID=32288454
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002299261A Pending JP2004133793A (ja) | 2002-10-11 | 2002-10-11 | 動作解析装置、プログラム開発システム及び動作解析プログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2004133793A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006042289A (ja) * | 2004-06-24 | 2006-02-09 | Toshiba Corp | マイクロプロセッサ |
| JP2006293417A (ja) * | 2005-04-05 | 2006-10-26 | Ntt Docomo Inc | アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム |
| US20120173525A1 (en) * | 2003-08-12 | 2012-07-05 | Vidur Apparao | Processes and system for accessing externally stored metadata associated with a media asset using a unique identifier incorporated into the asset itself |
-
2002
- 2002-10-11 JP JP2002299261A patent/JP2004133793A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120173525A1 (en) * | 2003-08-12 | 2012-07-05 | Vidur Apparao | Processes and system for accessing externally stored metadata associated with a media asset using a unique identifier incorporated into the asset itself |
| JP2006042289A (ja) * | 2004-06-24 | 2006-02-09 | Toshiba Corp | マイクロプロセッサ |
| US8191155B2 (en) | 2004-06-24 | 2012-05-29 | Kabushiki Kaisha Toshiba | Microprocessor |
| JP2006293417A (ja) * | 2005-04-05 | 2006-10-26 | Ntt Docomo Inc | アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム |
| US8332823B2 (en) | 2005-04-05 | 2012-12-11 | Ntt Docomo, Inc. | Application program verification system, application program verification method and computer program |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6594761B1 (en) | Tamper resistant software encoding | |
| EP3729306B1 (en) | Compiling device and method | |
| CN106599629B (zh) | 一种安卓应用程序加固方法及装置 | |
| CN102473220A (zh) | 信息处理装置、信息处理方法以及程序分发系统 | |
| CN107832589B (zh) | 软件版权保护方法及其系统 | |
| EP1309905A2 (en) | Tamper resistant software | |
| CN107305606A (zh) | 应用文件的处理方法及装置和文件的访问方法及装置 | |
| JP4027482B2 (ja) | 暗号復元を行う翻訳装置およびその方法 | |
| CN113343215A (zh) | 嵌入式软件的授权和认证方法及电子设备 | |
| CN101189586B (zh) | 计算机系统及程序生成装置 | |
| CN107871066A (zh) | 基于安卓系统的代码编译方法及装置 | |
| JP2004171367A (ja) | 回路動作シミュレーション装置、回路動作シミュレーション方法、回路動作シミュレーションプログラム、および回路情報復号化プログラム | |
| JP2004133793A (ja) | 動作解析装置、プログラム開発システム及び動作解析プログラム | |
| CN113946801B (zh) | 基于SGX的Python源码的保护方法和装置 | |
| KR101043255B1 (ko) | Usb 허브 보안 장치 및 이를 이용한 데이터 보안 방법 | |
| JP2011053749A (ja) | デバッグ方法、デバッグ装置、及びトランスレータプログラム | |
| CN117610033A (zh) | 应用于扩展程序的Lua加解密方法 | |
| JP2007108833A (ja) | 複数パスワード記憶装置及びパスワード管理方法 | |
| JP2008310678A (ja) | 記憶装置、情報機器、及びコンテンツ変換方法 | |
| CN117972758B (zh) | 一种Modelica应用程序的保护方法、设备及介质 | |
| JP3642533B2 (ja) | プログラムカード及びこれを用いた計算機 | |
| US20050229259A1 (en) | Device for protecting against unauthorized use of software | |
| CN107688729A (zh) | 基于可信主机的应用程序保护系统及方法 | |
| EP3451214A1 (en) | Computing device with computer program bounded thereto | |
| Rusinowitch | Automated analysis of security protocols |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051006 |
|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20061116 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090414 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090908 |