서지주요정보
(A) self-defensive approach to protect the software execution in the untrusted environment = 신뢰할 수 없는 환경에서의 소프트웨어 실행을 보호하기 위한 자가 방어 방법에 관한 연구
서명 / 저자 (A) self-defensive approach to protect the software execution in the untrusted environment = 신뢰할 수 없는 환경에서의 소프트웨어 실행을 보호하기 위한 자가 방어 방법에 관한 연구 / Jae-Won Lee.
발행사항 [대전 : 한국과학기술원, 2005].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8016876

소장위치/청구기호

학술문화관(문화관) 보존서고

DCS 05027

휴대폰 전송

도서상태

이용가능(대출불가)

사유안내

반납예정일

리뷰정보

초록정보

In the today's most general-purpose computer system, the executable code, manipulated data, and program execution state are exposed to the execution environment. The execution environment can read, disassemble, or modify them as its own purpose. For example, cryptographic encryption - the most powerful method to conceal data must reveal the encryption key, decryption key, or plaintext to the execution machine. Once a program owner allows his or her program to run on an untrusted machine, there is usually no way to stop the owner of that machine from trying to spy on the program's data, manipulate the program's behavior, or damage the program in some way. However, in a modern security system, much attention and research has been focused on protecting user from malicious program that seek to steal data or do harm to the user's machine. Unfortunately, however, not as much research has been focused on the reverse problem - that of protecting the executable code from attempts by malicious users to reverse engineer or modify the code for their own purposes. Malicious attacks can either come from not only external adversary, but also internal saboteur who is actually a legal user or participant. This is not so surprising since in the past, reverse engineering from native binary code has generally been a difficult task. As platform-independent and easily decompilable binary formats such as Java bytecode become more and more common today, however, one can no longer ignore this problem. There are many situations in which it is desirable to protect a piece of software from the illegitimate tampering once it gets distributed to the users. Protecting the software code means some level of assurance that the program will execute as expected even if it encounters some illegitimated modifications. In this dissertation, we present the methodology of protecting software from unauthorized modification. One important technique is an integrity-based encryption, by which a program, while running, checks itself to verify that it has not been modified and conceals some privacy sensitive parts of the program. And, we present a guarding framework and its theoretic basis of security to make our scheme more resilient against the reverse engineering. And we present the selectively verifiable container for mobile agent. It is used for store some data not to be altered by except the creator. It contains not only the data but also the checksum for each stored data, and the checksum is anonymous to everyone except the mobile agent owner. Only the mobile agent owner can link the creator of checksum and the data. So, adversary cannot modify both data and checksum, simultaneously.

컴퓨팅 페러다임에 있어서 분산 환경이 널리 사용되어짐에 따라 플랫폼 독립적이고 이동성을 갖는 프로그램 코드의 사용이 일반화 되고 있다. 소프트웨어의 이동성은 임의의 환경에서의 실행을 전재로 하지만, 현재의 컴퓨터 아키텍쳐의 특성상 실행 환경은 소프트웨어 실행에 관한 전적인 권한을 부여받으므로 악의적인 소프트웨어 변조 및 실행 결과 위조에 대해 무방비 상태로 노출된다. 악의적인 사용자로부터 변조 공격을 당할 경우 소프트웨어 제작자의 의도와 상치되는 결과를 가져올 수 있으므로, 신뢰할 수 없는 환경에서의 소프트웨어 실행은 실행 결과에 대한 불확신 뿐만 아니라 다른 사용자들에게도 영향을 미칠 수 있다. 하지만 기존의 보안 기법들이 제공하는 기능들은 주로 보호 대상이 외부로 부터의 공격에 대해 안전하게 지켜질 수 있는 방법들을 제안하고 있기 때문에 이와 같은 환경에 적절히 대응할 수 없는 한계를 갖는다. 소프트웨어 변조 방지는 합법적인 사용자로 부터의 공격을 막아야 하기 때문에 새로운 보안 기법이 필요하다. 악의적인 변조 공격을 원천적으로 막기는 힘들지만 공격을 통하여 잃을 수 있는 피해를 최소화 하고 공격을 감지하여 다른 사용자들의 피해를 회피할 필요가 있다. 본 논문에서는 이와 같은 문제점들을 해결하기 위하여 소프트웨어적인 해결 방안을 제시하고, 기존의 연구와의 비교 및 분석을 통하여 안전성 및 독창성을 검증하였다. 본 논문을 통하여 이루고자 하는 소프트웨어 보호의 목적은 크게 다음과 같이 나누어 볼 수 있다. (1) 프로그램 코드 및 데이터에 대한 분석을 방지한다. (2) 소프트웨어의 변조를 통하여 원시 의도된 동작의 변형을 방지한다. 이를 위하여 본 논문에서는 무결성 기반의 암호화 기법을 제안한다. 소프트웨어 실행 코드를 세분화 하여 한 세그먼트를 암호화 하는 키를 다른 세그먼트들로 부터 추출하여 사용함으로써 기밀성과 상호간의 무결성을 보장한다. 키에 사용되는 코드에 대한 변조 발생시 해당 암호화 코드에 대한 접근성이 제한되므로 공격자는 원하는 실행 결과를 얻을 수 없다. 이를 통하여 악의적인 코드 변조 및 알고리즘 유출을 방지하고, 암호화된 세그먼트와 키로 사용되는 세그먼트간의 보호 프레임웍을 제안하여 안전성을 향상시켰다. 보호 프레임웍은 제안 기법의 실제 적용에 있어서 이론적으로 보다 안전하고 효율적인 근간을 제공한다. 사용자는 세그먼트간의 무결성 의존도 그래프를 작성하여 공격자가 쉽게 분석하기 힘든 보호 구조를 작성할 수 있다. 이와 같은 방법들을 통하여 코드 암호화에 필요한 부가적인 키 관리 문제를 해결하고, 키 추출에 필요한 코드 세분화를 사용자의 보안성 요구에 따라 조절하여 안전성 및 효율성을 적절히 조절하고, 특별한 하드웨어 또는 별도의 도구의 도움을 필요하지 않아 실제 적용에 있어서 효율적이고 사용자의 요구에 적절히 대응할 수 있는 장점을 갖는다. 하지만, 소프트웨어 보호는 한두가지 방법을 통하여 완벽하게 이루어 낼 수 없는 문제점을 갖는다. 오히려 궁극적인 보호 기법은 존재하지 않으며, 공격에 필요한 시간을 늘림으로써 변조 공격으로 인하여 입을 수 있는 피해를 최소화 하는데 목적이 있다고 볼 수 있다.

서지기타정보

서지기타정보
청구기호 {DCS 05027
형태사항 vii, 94 p. : 삽화 ; 26 cm
언어 영어
일반주기 저자명의 한글표기 : 이재원
지도교수의 영문표기 : Hyun-Soo Yoon
지도교수의 한글표기 : 윤현수
수록잡지명 : "Securing the mobile agents by integrity-based encryption". IEICE transactions on information & systems,
학위논문 학위논문(박사) - 한국과학기술원 : 전산학전공,
서지주기 Reference : p. 89-94
QR CODE

책소개

전체보기

목차

전체보기

이 주제의 인기대출도서