JP4664055B2 - プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法 - Google Patents
プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法 Download PDFInfo
- Publication number
- JP4664055B2 JP4664055B2 JP2004358724A JP2004358724A JP4664055B2 JP 4664055 B2 JP4664055 B2 JP 4664055B2 JP 2004358724 A JP2004358724 A JP 2004358724A JP 2004358724 A JP2004358724 A JP 2004358724A JP 4664055 B2 JP4664055 B2 JP 4664055B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- protection
- program
- normal
- function
- 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
Description
(プログラム分割装置)
第1の実施の形態に係るプログラム分割装置は、1つのプログラムを、保護された実行環境での実行を要求する保護コードと、それ以外の通常コードに分割する。
ソースコード解析部110は、分割コードの生成における規則を与えるポリシーを入力して、与えられたソースコードにおいて保護が必要な関数と変数に対して保護属性を付与する。ソースコードとポリシーの具体例を以下で述べた後、解析や保護属性の付与手順について説明する。
通常コード生成部140は、ソースコード解析部110による解析結果を利用して、保護属性を持たない関数と保護コードの関数を呼び出す関数を含む通常コードを生成する。
保護コード生成部130は、ソースコード解析部110による解析結果を利用して、保護属性を持つ関数を含む保護コードを生成する。
次に、第1の実施の形態に係るプログラム分割方法について、図8を用いて、説明する。本方法は、ユーザからの入力や外部装置からの入力をトリガとして、起動される。
第1の実施の形態に係るプログラム実行装置は、保護を要求するコード(保護コード)とそれ以外の通常コードに分割されたプログラムのための実行環境を提供する。
複数プログラム実行環境管理部230は、保護コードの実行のための保護環境210と通常コードの実行のための通常環境220の、2つ以上の実行環境の隔離と制御を行う。実行環境の実現手段に制限はなく、複数プログラム実行環境管理部230の実現にあたり、仮想マシンモニタの技術を用いて仮想マシンレベルの複数の実行環境を管理してもよいし、オペレーティングシステムによってプロセスレベルの複数の実行環境を管理してもよい。更に、分散システム用のミドルウェアを利用して複数のデバイス上の複数の実行環境を管理させてもよい。第1の実施の形態では、保護環境210と通常環境220はそれぞれ仮想マシンであり、複数プログラム実行環境管理部230は、仮想マシンの隔離と制御を行う仮想マシンモニタであるものとして説明する。
保護コード管理部212は、保護を要求するコードの導入や起動を管理する。
通常コード管理部222は、保護を要求しない通常コードの導入や起動を管理する。導入手順においては、通常環境内のファイルシステムに必要なファイルをコピーしたり、環境変数や設定ファイル等の設定を行ったりする。このとき、保護コード管理部のように署名を検証して導入の可否を決定してもよいし、通常コードの正常なハッシュ値を計算し、保持してもよい。又、起動手順においてはユーザや外部装置からの入力にしたがって、通常コードの実行可能ファイルを起動する。このとき、保護コード管理部のように完全性を検証した後、起動処理を行ってもよい。
次に、第1の実施の形態に係るプログラム実行方法について、図12〜14を用いて説明する。
図12を用いて、保護コードの導入方法について説明する。
図13を用いて、保護コードの起動方法について説明する。本手順は、通常コードやユーザからの保護コードの起動要求をトリガに実行が開始される。
図14を用いて、通常コードから保護コード内の保護が必要とされる関数を呼び出す方法について説明する。
第1の実施の形態に係るプログラム分割装置100は、与えられたポリシーに従って、プログラムを保護が必要な関数と変数を含む保護コードとそれ以外の通常コードに分割することができる。このため、プログラムの提供者が、自身のポリシーに従ってコード分割基準を与えてプログラムを分割することができ、適切なセキュリティと性能のバランスをとることができる。
第1の実施の形態では、同一デバイス上の保護環境と通常環境の間で分割したプログラムを動作させていたが、第2の実施の形態では、別々のデバイス上に存在する保護環境と通常環境の間で保護コードと通常コードを連携実行させる。ここでは、ユーザの携帯機上の保護環境と、ラップトップPCや情報家電などの周辺デバイス上の通常環境の間で、分割したプログラムを動作させるものとする。
第3の実施の形態として、プログラム実行装置に、外部からの盗聴や改ざんなどの攻撃に対して内部の秘密データや重要な処理を保護するための耐タンパハードウェアが組み込まれている場合を説明する。耐タンパハードウェアは、例えばSIM(Subscriber Information Module)のようなスマートカード(ICカード)やTrusted Computing Group(www.trustedcomputing)が仕様を規定しているTPM(Trusted Platform Module)を利用して実装することができる。
110…ソースコード解析部
111…ソースコード入力部
112…ポリシー入力部
120…制御部
130…保護コード生成部
131…自己検証コード埋め込み部
132…通信保護部
133…耐タンパ保護コード生成部
140…通常コード生成部
141…起動制御コード埋め込み部
142…導入制御コード埋め込み部
143…通信保護部
200…プログラム実行装置
210…保護環境
212…保護コード管理部
213…保護起動部
214…保護導入部
215…署名検証部
220…通常環境
222…通常コード管理部
230…複数プログラム実行環境管理部
231…環境間監視制御部
232…環境間通信制御部
240…耐タンパ保護環境
Claims (12)
- 1つのプログラムを、保護された実行環境での実行を要求する保護コードと、それ以外の通常コードに分割するプログラム分割装置であって、
分割コードの生成における規則を与えるポリシーをファイルシステムまたはネットワークから入力して、与えられたソースコードの保護が必要な関数と変数に保護属性を付与するソースコード解析部と、
前記ソースコード解析部によって前記保護属性が付与された関数を含む前記保護コードを生成する保護コード生成部と、
前記ソースコード解析部によって前記保護属性が付与されなかった関数と前記保護コードの関数を呼び出す関数を含む前記通常コードを生成する通常コード生成部と
を備え、
前記保護コード生成部は、前記保護属性が付与された関数を内部で呼び出すラッパ関数と、前記通常コードからの呼び出しを受け付け処理する通信部と、保護が必要な変数を管理する変数管理部とを含む前記保護コードを生成し、
前記通常コード生成部は、前記保護属性が付与された関数の呼び出しを、前記保護コード内の対応する関数を呼び出すラッパ関数に置き換えると共に、前記保護属性が付与された変数を前記保護コード内の対応する変数のインデックスとして置き換えることによって前記通常コードを生成する
ことを特徴とするプログラム分割装置。 - 前記ソースコード解析部は、
ファイルシステムやネットワーク上のサーバ装置からプログラムのソースコードを入力するソースコード入力部と、
ソースコードを入力した装置とは同一あるいは別の装置上のファイルシステムやネットワーク上のサーバ装置からポリシーを入力するポリシー入力部と
を備えることを特徴とする請求項1に記載のプログラム分割装置。 - 前記保護コード生成部は、前記ポリシーを利用して、前記保護コードと前記通常コードの少なくともいずれか1つの動作の検証を行うコードを生成し、前記保護コードに埋め込む自己検証コード埋め込み部を備えることを特徴とする請求項1又は2に記載のプログラム分割装置。
- 前記通常コード生成部は、前記ポリシーを利用して、前記保護コードの起動を制御するコードを生成し、前記保護コードあるいは前記通常コードに埋め込む起動制御コード埋め込み部を備えることを特徴とする請求項1〜3のいずれか1項に記載のプログラム分割装置。
- 前記通常コード生成部は、前記ポリシーを利用して、前記保護コードの導入を制御するコードを生成し、前記通常コードに埋め込む導入制御コード埋め込み部を備えることを特徴とする請求項1〜4のいずれか1項に記載のプログラム分割装置。
- 前記保護コード生成部及び前記通常コード生成部は、認証と暗号化、改ざんの検査の少なくともいずれか一つの通信の保護機能を通信の関数に組み込む通信保護部を備えることを特徴とする請求項1〜5のいずれか1項に記載のプログラム分割装置。
- 保護された実行環境での実行を要求する保護コードと、それ以外の通常コードに分割されたプログラムの実行環境を提供するプログラム実行装置であって、
前記保護コードのための保護環境と前記通常コードのための通常環境との、2つの環境の隔離と制御を行う複数プログラム実行環境管理部と、
前記保護コードの導入及び起動を管理する保護コード管理部と、
前記通常コードの導入及び起動を管理する通常コード管理部と
備え、
前記複数プログラム実行環境管理部は、前記保護コードが、前記通常コードの動作あるいは状態を取得し、検証する環境間監視制御部を備える
ことを特徴とするプログラム実行装置。 - 保護環境と通常環境はそれぞれ仮想マシンであり、
前記複数プログラム実行環境管理部は、仮想マシンの隔離と制御を行う仮想マシンモニタであることを特徴とする請求項7に記載のプログラム実行装置。 - 前記保護コード管理部は、
前記保護コードのデジタル署名を検証する署名検証部と、
前記署名検証部による署名の検証が成功した場合、前記保護コードを保護環境で実行可能に組み込む保護導入部と、
前記保護コードの完全性の検証に成功した場合、前記保護コードを起動する保護起動部と
を備えることを特徴とする請求項7又は8に記載のプログラム実行装置。 - 前記複数プログラム実行環境管理部は、前記保護コードと前記通常コードが安全に通信するための保護手段を提供する環境間通信制御部を備えることを特徴とする請求項7〜9のいずれか1項に記載のプログラム実行装置。
- 1つのプログラムを、保護された実行環境での実行を要求する保護コードと、それ以外の通常コードに分割するプログラム分割装置におけるプログラム分割方法であって、
前記プログラム分割装置が、分割コードの生成における規則を与えるポリシーをファイルシステムまたはネットワークから入力して、与えられたソースコードの保護が必要な関数と変数に保護属性を付与するステップと、
前記プログラム分割装置が、前記保護属性を付与するステップにおいて前記保護属性が付与された関数を含む前記保護コードを生成するステップと、
前記プログラム分割装置が、前記保護属性を付与するステップにおいて前記保護属性が付与されなかった関数と前記保護コードの関数を呼び出す関数を含む前記通常コードを生成するステップと
を含み、
前記保護コードを生成するステップでは、前記保護属性が付与された関数を内部で呼び出すラッパ関数と、前記通常コードからの呼び出しを受け付け処理する通信部と、保護が必要な変数を管理する変数管理部とを含む前記保護コードを生成し、
前記通常コードを生成するステップでは、前記保護属性が付与された関数の呼び出しを、前記保護コード内の対応する関数を呼び出すラッパ関数に置き換えると共に、前記保護属性が付与された変数を前記保護コード内の対応する変数のインデックスとして置き換えることによって前記通常コードを生成する
ことを特徴とするプログラム分割方法。 - 保護された実行環境での実行を要求する保護コードと、それ以外の通常コードに分割されたプログラムの実行環境を提供するプログラム実行装置におけるプログラム実行方法であって、
前記プログラム実行装置が、前記保護コードのための保護環境と前記通常コードのための通常環境との、2つの環境の隔離と制御を行うステップと、
前記プログラム実行装置が、前記保護コードの導入及び起動を管理するステップと、
前記プログラム実行装置が、前記通常コードの導入及び起動を管理するステップと
を含み、
前記隔離と制御を行うステップでは、前記保護コードが、前記通常コードの動作あるいは状態を取得し、検証することを特徴とするプログラム実行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004358724A JP4664055B2 (ja) | 2004-12-10 | 2004-12-10 | プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004358724A JP4664055B2 (ja) | 2004-12-10 | 2004-12-10 | プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006164184A JP2006164184A (ja) | 2006-06-22 |
JP4664055B2 true JP4664055B2 (ja) | 2011-04-06 |
Family
ID=36666102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004358724A Expired - Fee Related JP4664055B2 (ja) | 2004-12-10 | 2004-12-10 | プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4664055B2 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4770425B2 (ja) * | 2005-11-24 | 2011-09-14 | 富士ゼロックス株式会社 | 保護済み実行プログラムの作成のためのプログラム、方法及び装置 |
JP5118036B2 (ja) * | 2006-07-18 | 2013-01-16 | パナソニック株式会社 | 命令生成装置、命令生成方法、プログラムおよび集積回路 |
JP4653230B2 (ja) * | 2008-09-22 | 2011-03-16 | 株式会社エヌ・ティ・ティ・ドコモ | Api検査装置及び状態監視装置 |
KR101049718B1 (ko) * | 2008-12-29 | 2011-07-19 | 에스케이 텔레콤주식회사 | 소프트웨어 분리 실행 방법, 장치 및 컴퓨터로 읽을 수 있는 기록매체 |
DE102009011679A1 (de) * | 2009-02-23 | 2010-08-26 | Pilz Gmbh & Co. Kg | Verfahren und Vorrichtung zum Erstellen eines Anwenderprogrammes für eine Sicherheitssteuerung |
KR101412465B1 (ko) * | 2009-07-30 | 2014-06-30 | 에스케이플래닛 주식회사 | 분리 실행 기반의 컨텐츠용 코드 블록의 검증 시스템 및 방법 |
KR101487176B1 (ko) | 2009-07-30 | 2015-02-02 | 에스케이플래닛 주식회사 | 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체 |
JP4886063B2 (ja) * | 2009-12-04 | 2012-02-29 | 株式会社エヌ・ティ・ティ・ドコモ | 状態報知装置、状態報知方法及びプログラム |
KR101436536B1 (ko) | 2013-06-19 | 2014-09-01 | 숭실대학교산학협력단 | 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템 |
KR101328012B1 (ko) * | 2013-08-12 | 2013-11-13 | 숭실대학교산학협력단 | 애플리케이션 코드 난독화 장치 및 그 방법 |
KR101350390B1 (ko) * | 2013-08-14 | 2014-01-16 | 숭실대학교산학협력단 | 코드 난독화 장치 및 그 방법 |
KR101490047B1 (ko) * | 2013-09-27 | 2015-02-04 | 숭실대학교산학협력단 | 자가변환 기반 애플리케이션 코드 난독화 장치 및 그 방법 |
SG10201602449PA (en) * | 2016-03-29 | 2017-10-30 | Huawei Int Pte Ltd | System and method for verifying integrity of an electronic device |
KR101688814B1 (ko) * | 2016-07-11 | 2016-12-22 | (주)케이사인 | 주 기억 장치 내부의 코드 수정을 통한 애플리케이션 코드 은닉 장치 및 이를 이용한 애플리케이션 코드 은닉 방법 |
RU2638000C1 (ru) * | 2017-02-08 | 2017-12-08 | Акционерное общество "Лаборатория Касперского" | Способ контроля системы исполнения программируемого логического контроллера |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04163627A (ja) * | 1990-10-29 | 1992-06-09 | Hitachi Ltd | プログラム変換方法 |
JP2001337864A (ja) * | 2000-03-22 | 2001-12-07 | Hitachi Ltd | アクセス制御システム |
JP2002353960A (ja) * | 2001-05-30 | 2002-12-06 | Fujitsu Ltd | コード実行装置およびコード配布方法 |
JP2005528665A (ja) * | 2001-09-27 | 2005-09-22 | インテル コーポレイション | システムインテグリティとレガシー環境とを提供するための方法 |
-
2004
- 2004-12-10 JP JP2004358724A patent/JP4664055B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04163627A (ja) * | 1990-10-29 | 1992-06-09 | Hitachi Ltd | プログラム変換方法 |
JP2001337864A (ja) * | 2000-03-22 | 2001-12-07 | Hitachi Ltd | アクセス制御システム |
JP2002353960A (ja) * | 2001-05-30 | 2002-12-06 | Fujitsu Ltd | コード実行装置およびコード配布方法 |
JP2005528665A (ja) * | 2001-09-27 | 2005-09-22 | インテル コーポレイション | システムインテグリティとレガシー環境とを提供するための方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2006164184A (ja) | 2006-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101067399B1 (ko) | 대칭 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체 | |
KR100996784B1 (ko) | 공개 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체 | |
KR100946042B1 (ko) | 탬퍼-레지스턴트 애플리케이션 구동 방법 및 시스템과 컴퓨터 판독 가능 저장 매체 | |
KR101503785B1 (ko) | 동적 라이브러리를 보호하는 방법 및 장치 | |
US7181603B2 (en) | Method of secure function loading | |
JP5821034B2 (ja) | 情報処理装置、仮想マシン生成方法及びアプリ配信システム | |
US20070271446A1 (en) | Application Execution Device and Application Execution Device Application Execution Method | |
US20110289294A1 (en) | Information processing apparatus | |
JP4664055B2 (ja) | プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法 | |
KR100917370B1 (ko) | 프로그램을 저장한 컴퓨터 판독 가능 매체, 프로그램을실행하는 정보 처리 장치, 및 프로그램을 실행하기 위한프로그램 제어 방법 | |
US20050198645A1 (en) | Run-time call stack verification | |
KR20040094724A (ko) | 멀티-토큰 실 및 실 해제 | |
JP4978896B2 (ja) | 通信端末装置、サーバ端末装置、それらを用いる通信システム | |
CN111159658B (zh) | 字节码处理方法、系统、装置、计算机设备和存储介质 | |
US7552092B2 (en) | Program distribution method and system | |
JP2007233426A (ja) | アプリケーション実行装置 | |
JP7331714B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP6951375B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
WO2013039527A1 (en) | Security mechanism for developmental operating systems | |
KR101203722B1 (ko) | 데이터 보호장치 및 그 방법 | |
Lee et al. | Classification and analysis of security techniques for the user terminal area in the internet banking service | |
CN112507302B (zh) | 基于密码模块执行的调用方身份鉴别方法及装置 | |
WO2023089668A1 (ja) | 秘密計算実行環境を作成する方法、装置、およびプログラム | |
Halpin | A Roadmap for High Assurance Cryptography | |
CN112860306A (zh) | 文件生成方法和装置、文件运行方法和装置、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071005 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100906 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100921 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101122 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110104 |
|
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: 20110106 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140114 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 |
|
LAPS | Cancellation because of no payment of annual fees |