JPWO2019049217A1 - システム、改変装置、方法及びプログラム - Google Patents
システム、改変装置、方法及びプログラム Download PDFInfo
- Publication number
- JPWO2019049217A1 JPWO2019049217A1 JP2019540163A JP2019540163A JPWO2019049217A1 JP WO2019049217 A1 JPWO2019049217 A1 JP WO2019049217A1 JP 2019540163 A JP2019540163 A JP 2019540163A JP 2019540163 A JP2019540163 A JP 2019540163A JP WO2019049217 A1 JPWO2019049217 A1 JP WO2019049217A1
- Authority
- JP
- Japan
- Prior art keywords
- program
- execution
- conditional branch
- branch statement
- variable
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 163
- 239000003607 modifier Substances 0.000 title description 3
- 230000008569 process Effects 0.000 claims abstract description 139
- 238000012545 processing Methods 0.000 claims abstract description 51
- 230000004048 modification Effects 0.000 claims description 93
- 238000004364 calculation method Methods 0.000 claims description 36
- 238000012986 modification Methods 0.000 claims description 27
- 230000002265 prevention Effects 0.000 abstract description 2
- 238000002955 isolation Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 16
- 230000007123 defense Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
- G06F21/755—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
Description
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
第1の実施形態について、図面を用いてより詳細に説明する。
第1の実施形態に係るプログラム実行システムを構成する各種装置のハードウェア構成を説明する。
対策方法:
プログラムの実行時間が短くなってしまった場合には、不必要な計算を実行することで実行時間を消費し、常に実行時間を一定にする。
[付記1]
条件分岐文を含むプログラムを、前記条件分岐文の実行処理に相当する第1の処理が実行された後に、前記条件分岐文の条件式に基づいて前記第1の処理の結果を前記実行処理の処理結果として前記プログラムで使用される変数に反映するか否かが決定されるように改変する、改変装置と、
前記改変後のプログラムを、ハードウェア的に防御された実行環境にて実行する、実行装置と、
を含む、システム。
[付記2]
前記改変装置は、
前記プログラムに含まれる条件分岐文を、
前記第1の処理と、前記条件分岐文の条件式による判定を行う処理と、前記条件式による判定結果が前記条件分岐文の実行処理の実行を示す場合に、前記第1の処理を実行した結果得られる変数の値を前記条件分岐文の実行処理にて使用される変数に変更する第2の処理と、を含む処理に置換する、好ましくは付記1のシステム。
[付記3]
前記改変装置は、前記第2の処理が漏洩耐性計算により実行されるように前記プログラムを改変する、好ましくは付記2のシステム。
[付記4]
前記実行装置は、前記第2の処理をOblivious RAM(Random Access Memory)上で実行する、好ましくは付記3のシステム。
[付記5]
前記実行装置は、暗号化された変数を記憶する記憶領域を備え、
前記暗号化された変数を前記ハードウェア的に防御された実行環境にて復号した後、前記改変後のプログラムを実行する、好ましくは付記2乃至4のいずれか一に記載のシステム。
[付記6]
前記改変装置は、
前記条件分岐文の実行処理を複製し、前記複製された実行処理に含まれる第1変数を前記プログラムにて使用されていない第2変数に置き替え、前記第2変数を前記第1変数により初期化することで、前記第1の処理を生成する、好ましくは付記2乃至5のいずれか一に記載のシステム。
[付記7]
前記第2の処理は、前記第1変数に前記第2変数の値を代入する処理である、好ましくは付記6のシステム。
[付記8]
条件分岐文を含むプログラムを、前記条件分岐文の実行処理に相当する第1の処理が実行された後に、前記条件分岐文の条件式に基づいて前記第1の処理の結果を前記実行処理の処理結果として前記プログラムで使用される変数に反映するか否かが決定されるように改変する、改変装置。
[付記9]
条件分岐文を含むプログラムを、前記条件分岐文の実行処理に相当する第1の処理が実行された後に、前記条件分岐文の条件式に基づいて前記第1の処理の結果を前記実行処理の処理結果として前記プログラムで使用される変数に反映するか否かが決定されるように改変する、ステップと、
前記改変後のプログラムを、ハードウェア的に防御された実行環境にて実行する、ステップと、
を含む、方法。
[付記10]
条件分岐文を含むプログラムを入力する処理と、
前記条件分岐文を含むプログラムを、前記条件分岐文の実行処理に相当する第1の処理が実行された後に、前記条件分岐文の条件式に基づいて前記第1の処理の結果を前記実行処理の処理結果として前記プログラムで使用される変数に反映するか否かが決定されるように改変する処理と、
をコンピュータに実行させるプログラム。
[付記11]
入力されたプログラムを改変して出力する改変装置と、改変後のプログラムを実行する実行装置からなるシステムであって、
前記改変装置は
前記入力されたプログラムの各条件分岐に対し、前記改変後のプログラムでは条件分岐の結果行うプログラムの断片を必ず実行し、
前記条件分岐の判定が前記プログラム断片へとジャンプする結果になった場合のみ前記プログラムの断片の実行結果を判定するものであり、
前記実行装置は
前記改変後のプログラムを入力として受け取り、それをハードウェア的に防御された実行環境で実行し、
前記改変後のプログラムの実行に必要な秘密データは暗号化して保管されており、
前記改変後のプログラム実行時に前記秘密データを前記ハードウェア的に防御された実行環境で復号し、
前記改変後のプログラムの条件分岐を漏洩耐性計算で実行する事を特徴とするシステム。
[付記12]
前記改変後のプログラムの条件分岐を漏洩耐性計算で実行することは、Oblivious RAMで実行することである、付記11のシステム。
なお、付記8〜10の形態は、付記1の形態と同様に、付記2の形態〜付記7の形態に展開することが可能である。
11、21 CPU
12、22 メモリ
13、23 入出力インターフェイス
14、24 NIC
20 プログラム実行装置
25 ハードウェア隔離領域
26 プロセッサ
27 記憶領域
100 改変装置
101 実行装置
201、401 プログラム入力部
202 プログラム改変部
203 プログラム出力部
301 IF文
301a 置換文
302 IF−ELSE文
402 プログラム実行部
Claims (10)
- 条件分岐文を含むプログラムを、前記条件分岐文の実行処理に相当する第1の処理が実行された後に、前記条件分岐文の条件式に基づいて前記第1の処理の結果を前記実行処理の処理結果として前記プログラムで使用される変数に反映するか否かが決定されるように改変する、改変装置と、
前記改変後のプログラムを、ハードウェア的に防御された実行環境にて実行する、実行装置と、
を含む、システム。 - 前記改変装置は、
前記プログラムに含まれる条件分岐文を、
前記第1の処理と、前記条件分岐文の条件式による判定を行う処理と、前記条件式による判定結果が前記条件分岐文の実行処理の実行を示す場合に、前記第1の処理を実行した結果得られる変数の値を前記条件分岐文の実行処理にて使用される変数に変更する第2の処理と、を含む処理に置換する、請求項1のシステム。 - 前記改変装置は、前記第2の処理が漏洩耐性計算により実行されるように前記プログラムを改変する、請求項2のシステム。
- 前記実行装置は、前記第2の処理をOblivious RAM(Random Access Memory)上で実行する、請求項3のシステム。
- 前記実行装置は、暗号化された変数を記憶する記憶領域を備え、
前記暗号化された変数を前記ハードウェア的に防御された実行環境にて復号した後、前記改変後のプログラムを実行する、請求項2乃至4のいずれか一項に記載のシステム。 - 前記改変装置は、
前記条件分岐文の実行処理を複製し、前記複製された実行処理に含まれる第1変数を前記プログラムにて使用されていない第2変数に置き替え、前記第2変数を前記第1変数により初期化することで、前記第1の処理を生成する、請求項2乃至5のいずれか一項に記載のシステム。 - 前記第2の処理は、前記第1変数に前記第2変数の値を代入する処理である、請求項6のシステム。
- 条件分岐文を含むプログラムを、前記条件分岐文の実行処理に相当する第1の処理が実行された後に、前記条件分岐文の条件式に基づいて前記第1の処理の結果を前記実行処理の処理結果として前記プログラムで使用される変数に反映するか否かが決定されるように改変する、改変装置。
- 条件分岐文を含むプログラムを、前記条件分岐文の実行処理に相当する第1の処理が実行された後に、前記条件分岐文の条件式に基づいて前記第1の処理の結果を前記実行処理の処理結果として前記プログラムで使用される変数に反映するか否かが決定されるように改変する、ステップと、
前記改変後のプログラムを、ハードウェア的に防御された実行環境にて実行する、ステップと、
を含む、方法。 - 条件分岐文を含むプログラムを入力する処理と、
前記条件分岐文を含むプログラムを、前記条件分岐文の実行処理に相当する第1の処理が実行された後に、前記条件分岐文の条件式に基づいて前記第1の処理の結果を前記実行処理の処理結果として前記プログラムで使用される変数に反映するか否かが決定されるように改変する処理と、
をコンピュータに実行させるプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/032001 WO2019049217A1 (ja) | 2017-09-05 | 2017-09-05 | システム、改変装置、方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019049217A1 true JPWO2019049217A1 (ja) | 2020-10-01 |
JP6996561B2 JP6996561B2 (ja) | 2022-01-17 |
Family
ID=65634913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019540163A Active JP6996561B2 (ja) | 2017-09-05 | 2017-09-05 | システム、改変装置、方法及びプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210064370A1 (ja) |
JP (1) | JP6996561B2 (ja) |
WO (1) | WO2019049217A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023242821A1 (en) * | 2022-06-16 | 2023-12-21 | Sternum, Ltd. | Systems and methods for the instrumentation, real-time compromise detection, and management of internet connected devices |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6360440B2 (ja) | 2015-01-06 | 2018-07-18 | Kddi株式会社 | 復号装置、方法及びプログラム |
-
2017
- 2017-09-05 JP JP2019540163A patent/JP6996561B2/ja active Active
- 2017-09-05 US US16/644,363 patent/US20210064370A1/en not_active Abandoned
- 2017-09-05 WO PCT/JP2017/032001 patent/WO2019049217A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JP6996561B2 (ja) | 2022-01-17 |
US20210064370A1 (en) | 2021-03-04 |
WO2019049217A1 (ja) | 2019-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7101761B2 (ja) | コール・パス依存認証 | |
US10210323B2 (en) | Information assurance system for secure program execution | |
Behera et al. | Different obfuscation techniques for code protection | |
KR101504857B1 (ko) | 보안 시스템에서 랜덤하게 할당된 메모리 범위로 jit를 지원하는 시스템 및 방법 | |
US10237059B2 (en) | Diversified instruction set processing to enhance security | |
CN107408072B (zh) | 用于随机化指令的方法、介质和装置 | |
Bauman et al. | Sgxelide: enabling enclave code secrecy via self-modification | |
CN104268444A (zh) | 一种云OS Java源代码保护方法 | |
US8775826B2 (en) | Counteracting memory tracing on computing systems by code obfuscation | |
US10303885B2 (en) | Methods and systems for securely executing untrusted software | |
Tychalas et al. | SGXCrypter: IP protection for portable executables using Intel's SGX technology | |
Lin et al. | Control-flow carrying code | |
JP6996561B2 (ja) | システム、改変装置、方法及びプログラム | |
Lee et al. | Classification and analysis of security techniques for the user terminal area in the internet banking service | |
US9378395B2 (en) | Method, a device and a computer program support for execution of encrypted computer code | |
Schilling et al. | SecWalk: Protecting page table walks against fault attacks | |
US20190121987A1 (en) | Light-weight context tracking and repair for preventing integrity and confidentiality violations | |
US20210026935A1 (en) | High performance compute ip encryption using unique set of application attributes | |
Sanjeev et al. | Protecting cryptographic keys on client platforms using virtualization and raw disk image access | |
KR101173761B1 (ko) | 프로그램의 외부 공격에 대한 공격 방어 및 탐지를 위한 장치 및 방법 | |
Togan et al. | Virtual machine for encrypted code execution | |
Vaslin | ‘Hardware Core for Off-Chip Memory Security Management in Embedded Systems | |
JP2023065323A (ja) | コンピュータに実装された方法、システム及びコンピュータプログラム | |
WO2023156571A1 (en) | Protecting software | |
US20100162397A1 (en) | Apparatus and method for protecting asset in computer system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200304 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200304 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210525 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210702 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20210810 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211022 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20211022 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20211101 |
|
C21 | Notice of transfer of a case for reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C21 Effective date: 20211102 |
|
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: 20211116 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211129 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6996561 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |