KR20030075018A - Device for generating tamper-resistant software and methods for self-integrity checking the software file and server-aided integrity checking in client-server environment - Google Patents

Device for generating tamper-resistant software and methods for self-integrity checking the software file and server-aided integrity checking in client-server environment Download PDF

Info

Publication number
KR20030075018A
KR20030075018A KR1020020014093A KR20020014093A KR20030075018A KR 20030075018 A KR20030075018 A KR 20030075018A KR 1020020014093 A KR1020020014093 A KR 1020020014093A KR 20020014093 A KR20020014093 A KR 20020014093A KR 20030075018 A KR20030075018 A KR 20030075018A
Authority
KR
South Korea
Prior art keywords
file
software
self
executable file
secret key
Prior art date
Application number
KR1020020014093A
Other languages
Korean (ko)
Inventor
고기형
차재춘
김도균
이재원
조미성
Original Assignee
주식회사 셈틀로미디어
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 주식회사 셈틀로미디어 filed Critical 주식회사 셈틀로미디어
Priority to KR1020020014093A priority Critical patent/KR20030075018A/en
Publication of KR20030075018A publication Critical patent/KR20030075018A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

PURPOSE: A device for creating a software file for preventing an alteration and a method for verifying a self-integrity of the software file are provided to prevent an alteration of a software file and verify the alteration of the software file by executing a self-verification of the software file. CONSTITUTION: A code creation unit for a self-verification(111) verifies an interactively circular alteration. A public key cryptogram system key pair creation unit(121) creates a secret key for a decoding and a private key for an encoding of a public key cryptogram system. A secret key converter(131) converts the secret key into a key of a source code form. A compiler(141) compiles a software source code, a self-integrity verification code, and the source code secret key, and converts into an execution program binary code. A cipher text creation unit(151) inputs the execution program binary code and the private key for an encoding, inserts a cipher text of summary information in the execution program binary code, and creates a software file for preventing the alteration.

Description

변조 방지용 소프트웨어 파일 생성 장치와 그 소프트웨어 파일의 자가 무결성 검증 방법 및 클라이언트-서버 환경에서의 소프트웨어 파일의 자가 무결성 검증 방법{Device for generating tamper-resistant software and methods for self-integrity checking the software file and server-aided integrity checking in client-server environment}Device for generating tamper-resistant software file, method for verifying self-integrity of software file and method for verifying self-integrity of software file in client-server environment {Device for generating tamper-resistant software and methods for self-integrity checking the software file and server- aided integrity checking in client-server environment}

본 발명은 소프트웨어 파일 생성 장치와 그 소프트웨어 파일의 자가 무결성 검증 방법 및 클라이언트-서버 환경에서의 자가 무결성 검증 방법에 관한 것으로서, 특히 암호론에 기반한 공개키 암호화 기법을 응용하여 소프트웨어 스스로가 외부의 도움 없이 자신의 변조 여부를 확인할 수 있도록 메인 실행 파일 및 확장 실행 파일 등의 요약값의 암호문과 그 암호문을 복호화하는데 사용되는 비밀키를 파일 내부에 숨겨 넣는 소프트웨어 파일 생성 장치 및 소프트웨어 파일의 변조 여부를 자가 진단하는 소프트웨어 파일의 자가 무결성 검증 방법에 관한 것이다. 또한 온라인 네트워크를 이용하는 클라이언트-서버 환경에서는 신뢰할 수 있는 서버의 도움을 받아 비신뢰적인 컴퓨팅 환경에서 동작하는 클라이언트 소프트웨어 파일의 자가 무결성 검증 방법에 관한 것이다.The present invention relates to a device for generating a software file, a method for verifying self-integrity of the software file, and a method for verifying self-integrity in a client-server environment. In particular, by applying a public key encryption method based on cryptography, the software itself can be used without external assistance. Self-diagnosis of software file generation device and software file that hides the ciphertext of summary value such as main executable file and extension executable file and secret key used to decrypt the ciphertext inside the file to check whether the tampering is done. It relates to a method of verifying the integrity of a software file. In addition, in a client-server environment using an online network, the present invention relates to a method for verifying self-integrity of client software files operating in an untrusted computing environment with the help of a trusted server.

종래의 소프트웨어 보호 방법으로는 크게 나누어 소프트웨어 파일에 대한 전자서명을 첨부된 인증서를 통하여 검증하는 방법과 소프트웨어 파일의 암호화를 통한 정보 유출을 막는 방법이 있다. 전자서명 방법은 소프트웨어의 온라인 배포 시 소프트웨어 파일에 대한 전자서명과 인증서를 함께 배포하여 사용자가 이를 다운로드받고, 이를 설치하기 이전에 파일에 대한 전자서명을 인증서를 이용하여 검증하여 검증이 성공한 경우에만 설치하는 방식이다. 파일의 암호화 방법은 실행 파일 전체를 암호화하여 저장하고 이를 실행하기 이전에 임시로 복호화하여 복호화된 소프트웨어 실행 코드를 임시로 저장하거나 바로 컴퓨터 메모리에 적재하여 실행하는 방식이다.Conventional software protection methods include broadly verifying a digital signature of a software file through an attached certificate and preventing information leakage through encryption of the software file. The digital signature method distributes the digital signature and certificate of the software file together when the software is distributed online, and the user downloads it and installs it only if the verification is successful by verifying the digital signature of the file using a certificate before installing it. That's the way it is. The encryption method of the file is a method of encrypting and storing the entire executable file and temporarily decrypting the executable file before executing it to temporarily store the decrypted software executable code or directly load it into a computer memory for execution.

그러나 인증서를 이용한 전자서명 검증 방법은 소프트웨어의 설치 시에만 소프트웨어의 변조 여부를 검증하고 설치 후 실행 과정에서는 검증하지 않으므로 악의적인 해커에 의해 프로그램이 변조되는 것을 막을 수 없다. 또한 파일의 암호화 방법은 암호화된 파일이 실행되기 위해서는 반드시 복호화 된 후에 컴퓨터의 메모리에 적재되어 실행되기 때문에 임시 복호 파일이 유출될 위험이 있다.However, the digital signature verification method using a certificate does not verify that the software has been tampered with only when the software is installed, and does not verify during the post-installation execution. Therefore, the program cannot be prevented by malicious hackers. In addition, the encryption method of the file is that since the encrypted file must be decrypted and then loaded into the computer's memory in order to be executed, there is a risk of leaking the temporary decrypted file.

본 발명의 목적은 상기 문제점을 해결하기 위하여 안출된 것으로, 소프트웨어 파일의 변조를 방지하기 위한 소프트웨어 파일 생성 장치를 제공하는데 있다.Disclosure of Invention An object of the present invention is to solve the above problems, and to provide a software file generating apparatus for preventing a software file from being tampered with.

본 발명의 다른 목적은 상기 소프트웨어 파일 생성 장치에 의해 생성된 소프트웨어 파일을 자가 검증하여 소프트웨어 파일의 변조 여부를 검증하는 소프트웨어 파일의 자가 무결성 검증 방법을 제공하는데 있다.Another object of the present invention is to provide a method for verifying self-integrity of a software file for verifying whether the software file is tampered with by self-verifying the software file generated by the software file generating apparatus.

본 발명의 또 다른 목적은 온라인 네트워크로 연결된 클라이언트-서버 환경에서 신뢰할 수 있는 서버의 도움을 받아 클라이언트 소프트웨어 파일의 변조 여부를 검증하는 클라이언트-서버 환경에서의 소프트웨어 파일의 자가 무결성 검증 방법을 제공하는데 있다.It is still another object of the present invention to provide a method for verifying the integrity of a software file in a client-server environment that verifies whether the client software file is tampered with the help of a trusted server in an online network-connected client-server environment. .

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.BRIEF DESCRIPTION OF THE DRAWINGS In order to better understand the drawings cited in the detailed description of the invention, a brief description of each drawing is provided.

도 1 은 본 발명의 바람직한 실시예에 따른 소프트웨어 파일(Software File) 생성 장치의 블록도이다.1 is a block diagram of an apparatus for generating a software file according to a preferred embodiment of the present invention.

도 2는 도 1에 도시된 소프트웨어 파일 생성 장치에 의해 생성된 소프트웨어 파일의 구성도이다.FIG. 2 is a configuration diagram of a software file generated by the software file generating apparatus shown in FIG. 1.

도 3은 도 2에 도시된 요약 정보 영역에 저장되는 정보의 생성 방법을 도시한 도면이다.FIG. 3 is a diagram illustrating a method of generating information stored in the summary information area illustrated in FIG. 2.

도 4는 본 발명의 바람직한 실시예에 따른 소프트웨어 파일의 자가 무결성 검증 방법을 도시한 흐름도이다.4 is a flowchart illustrating a method of verifying self integrity of a software file according to an exemplary embodiment of the present invention.

도 5는 본 발명의 바람직한 실시예에 따른 클라이언트-서버 환경에서의 소프트웨어 파일의 자가 무결성 검증 방법을 도시한 도면이다.5 is a diagram illustrating a method for verifying the integrity of a software file in a client-server environment according to a preferred embodiment of the present invention.

상기 목적을 달성하기 위하여 본 발명은,The present invention to achieve the above object,

상호 순환적 변조 여부 검증을 위한 자가 무결성 검증 코드 생성기; 공개키암호 시스템의 암호화용 개인키와 복호화용 비밀키를 생성하는 키쌍 생성기; 상기 비밀키를 원시코드 형태로 변환하는 비밀키 변환기; 소프트웨어 원시 코드와 자가 무결성 검증 코드 및 상기 비밀키 변환기로부터 출력되는 원시코드 비밀키를 컴파일링하여 실행 프로그램 이진 코드로 변환하는 컴파일러; 및 상기 실행 프로그램 이진 코드와 암호화용 개인키를 입력하고, 상기 실행 프로그램 이진 코드 내에 그 요약정보의 암호문을 삽입하여 변조 방지를 위한 소프트웨어 파일을 생성하는 암호문 생성기를 구비하는 소프트웨어 파일 생성 장치를 제공한다.A self integrity verification code generator for intercyclic modulation; A key pair generator for generating an encryption private key and a decryption secret key of a public key cryptosystem; A secret key converter for converting the secret key into a source code form; A compiler for compiling a software source code, a self-integrity verification code, and a source code secret key output from the secret key converter and converting the source code to a executable program binary code; And a ciphertext generator for inputting the executable program binary code and a private key for encryption and inserting a cipher text of the summary information into the executable program binary code to generate a software file for tamper proof. .

바람직하기는, 상기 소프트웨어 파일은 메인 프로그램 실행 코드와 응용프로그램 자가 검증 코드 및 상기 비밀키를 저장하는 메인 실행 파일을 구비하며, 상기 비밀키는 상기 메인 실행 파일 내부에 별도로 할당된 저장 정보 영역에 저장된다.Preferably, the software file includes a main program executable code, an application self-verification code, and a main executable file for storing the secret key, wherein the secret key is stored in a storage information area separately allocated inside the main executable file. do.

바람직하기는 또한, 소프트웨어 생성 장치는 상기 메인 실행 파일 내부에 비연속적으로 분산된 메모리 공간을 확보하고 상기 확보된 메모리 공간을 상기 암호화 정보 영역으로 할당하는 분산 메모리 생성기를 더 구비한다.Preferably, the software generating apparatus further includes a distributed memory generator for securing a discontinuously distributed memory space inside the main executable file and allocating the reserved memory space to the encrypted information area.

바람직하기는 또한, 상기 소프트웨어 파일은 상기 메인 실행 파일들을 확장하는 적어도 하나의 확장 실행 파일을 더 구비하고, 상기 적어도 하나의 확장 실행 파일은 확장 프로그램 실행 코드와 응용 프로그램 자가 검증 코드로 구성된다.Preferably, the software file further comprises at least one extension executable file extending the main executable files, wherein the at least one extension executable file consists of extension program execution code and application self-verification code.

바람직하기는 또한, 상기 메인 실행 파일 및 적어도 하나의 확장 실행 파일내의 응용 프로그램 자가 검증 코드는 변조 여부를 상호 순환적으로 검증하는 파일의 정보를 포함한다.Preferably, the application self-verification code in the main executable file and at least one extension executable file includes information of a file that cyclically verifies whether tampering has occurred.

바람직하기는 또한, 상기 암호화 정보 영역에 상기 메인 실행 파일의 요약값및 적어도 하나의 확장 실행 파일의 요약값들의 암호문이 저장된다.Preferably, the cipher text of the summary value of the main executable file and the summary values of at least one extension executable file is also stored in the encryption information area.

바람직하기는 또한, 상기 메인 실행 파일의 요약값과 상기 적어도 하나의 확장 실행 파일의 요약값은 해쉬 알고리즘 통해 계산되며 안정성을 강화하기 위해 전자서명을 이용할 수 있다.Preferably, the summary value of the main executable file and the summary value of the at least one extension executable file are calculated through a hash algorithm and may use an electronic signature to enhance stability.

바람직하기는 또한, 상기 비밀키 변환기는 매크로를 이용하여 상기 비밀키를 상기 원시코드 형태로 변환한다.Preferably, the secret key converter converts the secret key into the source code form using a macro.

상기 다른 목적을 달성하기 위하여 본 발명은,In order to achieve the above another object, the present invention,

변조 방지용 소프트웨어 파일 생성 장치에 의해 생성되며, 적절한 시기에 응용 프로그램 자가 검증 코드를 수행하여 해당 실행 파일의 변조 여부를 검증하는 방법에 있어서, (a) 상기 메인 실행 파일로부터 비밀키 값을 추출하는 단계; (b) 상기 비밀키 값을 이용하여 상기 정보 영역으로부터 저장된 암호문을 복호화하여 해당 실행 파일의 요약값(H1)을 추출하는 단계; (c) 상기 해당 실행 파일의 요약값(H2)을 계산하는 단계; 및 (d) 상기 추출된 요약값(H1)과 상기 계산된 요약값(H2)을 상호 비교하여 상기 요약값들(H1,H2)이 동일하면 상기 해당 실행 파일은 변조되지 않았으며, 상기 요약값들(H1,H2)이 동일하면 상기 해당 실행 파일은 변조된 것으로 판단하는 단계를 포함하는 소프트웨어 파일의 변조 검증 방법을 제공한다.A method for verifying whether a corresponding executable file has been tampered with by an application program self-verification code generated by a tamper-proof software file generating device, the method comprising: (a) extracting a secret key value from the main executable file; ; (b) extracting a summary value H1 of a corresponding executable file by decrypting a stored cipher text from the information area using the secret key value; (c) calculating a summary value (H2) of the corresponding executable file; And (d) comparing the extracted summary value H1 with the calculated summary value H2 and if the summary values H1 and H2 are the same, the corresponding executable file is not tampered with and the summary value If the (H1, H2) is the same provides a method for verifying the modulation of the software file comprising the step of determining that the executable file has been modified.

바람직하기는, 상기 응용 프로그램 자가 검증 코드내의 검증 대상 파일은 프로그램 수행 시마다 변경될 수 있으며 메인 실행 파일 및 적어도 하나의 확장 실행 파일은 상호 순환적으로 변조 여부가 검증된다.Preferably, the verification target file in the application program self-verification code may be changed every time the program is executed, and the main executable file and the at least one extension executable file are cyclically verified to be modulated.

상기 또 다른 목적을 달성하기 위하여 본 발명은The present invention to achieve the above another object

클라이언트-서버 환경의 서버에서 클라이언트 소프트웨어 파일의 변조를 자가 무결성 검증하는 방법에 있어서, (a) 상기 서버에서 다수개의 난수들(Ri)을 생성하여 이들과 클라이언트 소프트웨어 파일을 입력으로 하는 키사용 해쉬값들(Hpub)을 미리 계산하여 저장하는 단계; (b) 상기 서버가 상기 클라이언트와 통신하는 중에 주기적으로 상기 난수들을 전송하는 단계; (c) 상기 서버로부터 받은 난수들과 클라이언트에서 동작하는 소프트웨어 파일(P')을 입력하여 키사용 해쉬값을 계산하여 상기 서버로 전송하는 단계; 및 (d) 상기 서버가 미리 생성해 놓은 키사용 해쉬값(Hpub(Ri+P))과 상기 클라이언트로부터 전송받은 키사용 해쉬값(Hpub(Ri+P))을 비교하여 변조 여부를 판단하는 단계를 포함하는 클라이언트-서버 환경에서의 소프트웨어 파일의 자가 무결성 검증 방법을 제공한다.A method for self-integrity verification of a modification of a client software file in a server of a client-server environment, the method comprising: (a) a keyed hash value for generating a plurality of random numbers Ri at the server and inputting them with the client software file; Calculating and storing Hpubs in advance; (b) periodically transmitting the random numbers while the server is in communication with the client; (c) inputting random numbers received from the server and a software file (P ') operating on the client to calculate a key usage hash value and to transmit the calculated hash value to the server; And (d) comparing the key usage hash value Hpub (Ri + P) previously generated by the server with the key usage hash value Hpub (Ri + P) received from the client to determine whether to modulate it. It provides a method for verifying the integrity of the software file in a client-server environment comprising a.

상기 본 발명에 의하여 소프트웨어 파일의 변조가 방지되며, 변조 여부를 자가적으로 검증함으로써 변조 여부의 검증이 용이하다.Modification of the software file is prevented by the present invention, and verification of the modulation is easy by self-verifying whether the modulation is performed.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings which illustrate preferred embodiments of the present invention and the contents described in the accompanying drawings.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements.

도 1 은 본 발명에 따른 소프트웨어 파일 생성 장치의 블록도이다. 도 1을 참조하면, 소프트웨어 파일 생성 장치(101)는 자가 검증용 코드 생성기(111), 공개키 암호시스템 키쌍 생성기(121), 비밀키 변환기(131), 컴파일러(Compiler)(141) 및 암호문 생성기(151)를 구비한다.1 is a block diagram of a software file generating apparatus according to the present invention. Referring to FIG. 1, the software file generating apparatus 101 includes a code generator 111 for self-verification, a public key cryptosystem key pair generator 121, a secret key converter 131, a compiler 141, and a ciphertext generator. 151 is provided.

자가 검증용 코드 생성기(111)는 메인 및 적어도 하나의 확장 실행 파일들을 상호 순환적으로 변조 여부를 검증하기 위한 자가 검증 코드(code2)를 생성한다.The self-verification code generator 111 generates a self-verification code code2 for verifying whether the main and at least one extension executable files are cyclically modulated.

공개키 암호시스템 키쌍 생성기(131)는 복호화용 비밀키(key1)와 암호화용 개인키(key2)를 생성한다.The public key cryptosystem key pair generator 131 generates a decryption secret key key1 and an encryption private key key2.

비밀키 변환기(141)는 비밀키(key1)를 입력하고 이를 원시코드 형태로 변환한다. 이 때, 비밀키 변환기(141)는 매크로(Macro)를 이용하여 입력되는 비밀키(key1)를 원시코드 형태의 비밀키(key3)로 변환한다. 이렇게 함으로써 소프트웨어 파일의 실행 과정에서 분기가 발생하지 않게 되며, 그로 인해 역분석이 어렵게 된다.The secret key converter 141 inputs a secret key key1 and converts it into a source code form. At this time, the secret key converter 141 converts the secret key key1 input using the macro into a secret key key3 in the form of a source code. This ensures that no branching occurs during the execution of the software file, making reverse analysis difficult.

컴파일러(141)는 소프트웨어 원시 코드(code1)와 자가 무결성 검증 코드(code2) 및 비밀키 변환기(131)로부터 출력되는 원시코드 비밀키(key3)를 컴파일하여 실행 프로그램 이진 코드(PGM)로 변환한다. 소프트웨어 원시 코드(code1)는 소프트웨어 개발자에 의해 원래 목적에 맞게 작성된다.The compiler 141 compiles the source code secret key key3 outputted from the software source code code1, the self-integrity verification code code2, and the secret key converter 131, and converts the source code secret key PGM into executable program binary code PGM. The software source code (code1) is written for the original purpose by the software developer.

암호문 생성기(151)는 실행 프로그램 이진 코드(PGM)와 개인키(key2)를 입력하고, 실행 프로그램 이진 코드(PGM) 내에 그 요약값의 암호문을 삽입하여 변조 방지를 위한 소프트웨어 파일(SOFL)을 생성한다.The ciphertext generator 151 inputs the executable program binary code (PGM) and the private key (key2) and inserts the ciphertext of the summary value into the executable program binary code (PGM) to generate a software file (SOFL) for tamper proofing. do.

변조 방지용 소프트웨어 파일(SOFL)을 제작하는 과정을 설명하면 다음과 같다.The following describes a process of producing a tamper-proof software file (SOFL).

소프트웨어 개발자는 우선 원래 목적에 맞는 소프트웨어 원시 코드(code1)를 작성한다. 이어서, 소프트웨어 원시코드(code1)는 메인 및 적어도 하나의 확장 실행 코드들로 구성되며 각 실행 코드들이 상호 순환적으로 변조 여부를 검증하는 자가 검증 코드(code2)를 생성한다. 또한 무결성 검증에 사용될 공개키 암호시스템의 키쌍 생성기(121)를 통해 복호화용 비밀키(key1)와 암호화용 개인키(key2)를 생성한다. 복호화용 비밀키(key1)는 비밀키 변환기(131)를 통하여 원시코드 형태로 변환된다. 이를 소프트웨어 원시코드(code1)에 자가 무결성 검증 코드(code2)와 함께 컴파일러(141)를 이용하여 실행 프로그램 이진 코드로 컴파일한다. 여기에 실행 프로그램 이진 코드의 요약값 정보를 삽입하기 위하여 암호문 생성기(151)에 암호화용 개인키(key2)를 입력하여 실행 프로그램 이진 코드의 요약 정보를 암호화하여 그 암호문을 실행 프로그램 이진 코드에 삽입하여 변조 방지용 소프트웨어 파일(SOFL)을 최종적으로 생성한다.The software developer first writes the software source code (code1) for the original purpose. The software source code code1 then consists of a main and at least one extended executable code and generates self verify code code2 that verifies whether each executable code is cyclically modulated. Also, a decryption secret key key1 and an encryption private key key2 are generated through the key pair generator 121 of the public key cryptosystem to be used for integrity verification. The decryption secret key key1 is converted into a source code form through the secret key converter 131. This is compiled into the executable program binary code using the compiler 141 together with the self-integrity verification code code2 in the software source code code1. In order to insert the summary value information of the executable program binary code, the encryption private key (key2) is input to the ciphertext generator 151 to encrypt the summary information of the executable program binary code, and the ciphertext is inserted into the executable program binary code. Finally create a tamper-resistant software file (SOFL).

이와 같이, 본 발명은 클라이언트-서버 구조에서 악의적인 클라이언트 사용자가 클라이언트 소프트웨어 변조를 통하여 악의적인 코드를 실행하여 상기 클라이언트-서버를 공격하는 것을 막고, 소프트웨어 파일(SOFL) 자체에 대한 저작권을 보호하며, 소프트웨어 개발자가 개발한 기능만을 수행하도록 보장하며, 소프트웨어 개발의 마지막 단계에서 개발 책임자만이 알고있는 암호화용 개인키(key2)로 소프트웨어 파일(SOFL)의 요약정보를 암호화하여 이를 소프트웨어 파일(SOFL) 내부에숨겨 넣어 그 암호문을 찾아내어 삭제 및 수정하기 어렵게 하고, 파일의 변조 여부를 검증할 때 암호문을 복호화하기 위해 사용하는 비밀키(key1) 또한 숨겨 넣어 소프트웨어 파일(SOFL)의 변조 후 요약정보를 갱신할 수 없도록 한다.As such, the present invention prevents a malicious client user from attacking the client-server by executing malicious code through a client software tampering in the client-server structure, protects the copyright of the software file (SOFL) itself, It guarantees to perform only the functions developed by the software developer, and encrypts the summary information of the software file (SOFL) with the encryption private key (key2) known only to the person in charge of development at the last stage of the software development. It hides and hides the ciphertext, making it difficult to delete and modify it, and also hides the secret key (key1) used to decrypt the ciphertext when verifying that the file has been tampered with, and updates the summary information after tampering with the software file (SOFL). Do not do it.

도 2는 도 1에 도시된 소프트웨어 파일 생성 장치(101)에 의해 생성된 소프트웨어 파일(SOFL)의 구성도이다. 도 2를 참조하면, 소프트웨어 파일(SOFL)은 메인 실행 파일과 복수개의 확장 실행 파일들(EXFL1∼EXFLn)로 이루어진다. 메인 실행 파일(211)과 확장 실행 파일들(EXFL1∼EXFLn)에 변조 방지 기능을 제공하기 위해 변조 여부 검증에 필요한 정보들을 메인 실행 파일(211)에 저장하게 된다.FIG. 2 is a configuration diagram of a software file SOFL generated by the software file generating apparatus 101 shown in FIG. 1. Referring to FIG. 2, the software file SOFL includes a main executable file and a plurality of extended executable files EXFL1 to EXFLn. In order to provide an anti-tampering function to the main executable file 211 and the extended executable files EXFL1 to EXFLn, information necessary for verifying the modulation is stored in the main executable file 211.

메인 실행 파일(211)에 저장되는 변조 검증 정보는 크게 두 부분으로 분류된다. 하나는 암호화 정보 영역(221)으로써 메인 실행 파일(211)에 대한 복호화에 필요한 복호화용 비밀키(key1) 정보와 메인 및 확장 실행 파일들(211,EXFL1∼EXFLn)의 변조 여부 검증에 필요한 요약 정보들의 암호문이 저장되는 곳이며 다른 하나는 메인 실행 파일이 수행하는 응용 프로그램 자가 검증 코드(241)이다. 또한 확장 실행 파일들(EXFL1∼EXFLn)은 원래의 기능을 수행하기 위한 프로그램 실행 코드들(P1∼Pn)과 응용프로그램 자가 검증 코드들(X1∼Xn)로 구성된다. 메인 및 적어도 하나의 확장 실행 파일내의 자가 검증 코드는 메인 및 확장 실행 코드가 실행되면서 적절한 시기에 상호 순환적으로 실행된다. 또한, 메인 및 적어도 하나의 확장 실행 파일내의 자가 검증 코드(241, X1∼Xn)에는 검증할 실행 파일의 정보를 포함하며 암호화 정보 영역(221)에 저장된 정보로부터 해당 실행 파일의 정보를 추출하여 해당 실행 파일들의 해쉬 함수를 이용한 요약 정보를 통하여 변조 여부를 상호 순환적으로 검증한다.The modulation verification information stored in the main executable file 211 is largely classified into two parts. One is the encryption information area 221. The decryption secret key key1 information necessary for decryption of the main executable file 211 and the summary information necessary for verifying whether the main and extension executable files 211, EXFL1 to EXFLn are modulated or not. This is where their ciphertext is stored, and the other is the application self-verification code 241 that the main executable executes. In addition, the extension execution files EXFL1 to EXFLn are composed of program execution codes P1 to Pn and application program self-verification codes X1 to Xn for performing original functions. Self-verifying code in the main and at least one extension executable is executed recursively in a timely manner as the main and extension executables are executed. In addition, the self-verification codes 241 and X1 to Xn in the main and at least one extension executable file include information of the executable file to be verified and extract the information of the corresponding executable file from the information stored in the encryption information area 221. The summary information using the hash function of the executable files is used to verify the tampering with each other.

변조 여부 검증을 수행할 메인 및 확장 실행 파일들(211, EXFL1∼EXFLn)에 대한 원시 요약 정보는 모두 암호화되어 메인 실행 파일(211) 내부에 저장된다.The raw summary information for the main and extended executable files 211 (EXFL1 to EXFLn) to perform the tamper proof verification are both encrypted and stored in the main executable file 211.

소프트웨어 파일 생성 장치(도 1의101)는 분산 메모리 생성기(미도시)를 더 구비하여 메인 실행 파일(211)의 내부에 비연속적으로 분산된 메모리 공간을 확보하고 상기 확보된 메모리 공간을 암호화 정보 영역(221)으로 할당한다.The software file generating apparatus 101 of FIG. 1 further includes a distributed memory generator (not shown) to secure non-continuously distributed memory space inside the main executable file 211 and to store the secured memory space in an encrypted information area. (221).

도 3은 도 2에 도시된 암호화 정보 영역에 저장되는 정보의 생성 방법을 도시한 도면이다. 메인 실행 파일(도 2의 211) 및 확장 실행 파일들(EXFL1∼EXFLn)에 대한 요약값들(H1,HH1∼HHn)은 해쉬 알고리즘(311)을 통해 계산되고 관리자의 암호화용 개인키(key2)를 이용하여 생성한 암호문을 암호화 정보 영역(도 2의 221)에 저장한다.FIG. 3 is a diagram illustrating a method of generating information stored in an encrypted information area shown in FIG. 2. Summary values H1 and HH1 to HHn for the main executable file (211 in FIG. 2) and the extended executable files EXFL1 to EXFLn are calculated through the hash algorithm 311 and the administrator's encryption private key (key2). The cipher text generated by using is stored in the encryption information area (221 of FIG. 2).

도 4는 본 발명의 바람직한 실시예에 따른 소프트웨어 파일(SOFL)의 자가 무결성 검증 방법을 도시한 흐름도이다. 소프트웨어 파일의 실행 코드를 수행하면서 적절한 시기에 메인 및 확장 실행파일(241, EXFL1∼EXFLn)은 검증 코드에 의해 결정된 해당 파일(예, 241 또는 EXFL1∼EXFLn 중 하나)의 변조 여부를 검증하며, 도 4를 참조하면, 해당 파일의 변조 검증 방법은 제1 내지 제4 단계(411∼441)를 포함한다. 도 1 내지 도 3을 참조하여 도 4에 도시된 실행 파일(메인 및 확장 실행 파일 중 하나)의 변조 검증 방법을 설명하기로 한다.4 is a flowchart illustrating a method for verifying self integrity of a software file SOFL according to an exemplary embodiment of the present invention. While executing the executable code of the software file, the main and extension executable files 241 and EXFL1 to EXFLn at the appropriate time verify whether or not the corresponding file (for example, 241 or one of EXFL1 to EXFLn) determined by the verification code has been tampered with. Referring to 4, the method for verifying modulation of a file includes first to fourth steps 411 to 441. A method of verifying modulation of an executable file (one of a main and an extended executable file) shown in FIG. 4 will be described with reference to FIGS. 1 to 3.

제1 단계(411)로써 메인 실행 파일(도 2의 211)로부터 비밀키 값을 추출한다.In a first step 411, a secret key value is extracted from the main executable file (211 of FIG. 2).

제2 단계(421)로써 제1 단계(411)에서 추출된 비밀키 값을 이용하여 메인 실행 파일(도 2의 211)로부터 암호문을 복호화하여 해당 파일의 요약값(H1)을 추출한다.In a second step 421, the ciphertext is decrypted from the main executable file (211 of FIG. 2) using the secret key value extracted in the first step 411 to extract a summary value H1 of the file.

제3 단계(431)로써 검증할 대상 실행 파일(241, 또는 EXFL1∼EXFLn 중 하나)의 요약값(H2)을 계산한다.In a third step 431, the summary value H2 of the target executable file 241 to be verified or one of EXFL1 to EXFLn is calculated.

제4 단계(441)로써 제2 단계(421)에서 추출된 요약값(H1)과 제3 단계(431)에서 계산된 요약값(H2)을 상호 비교한다. 그 결과 상기 요약값들(H1,H2)이 서로 동일하면 해당 실행 파일은 변조되지 않았으며, 상기 요약값들(H1,H2)이 서로 다르면 해당 실행 파일은 변조된 것으로 판단한다. 해당 실행 파일이 변조된 것으로 판단되면 소프트웨어 파일(도 1의 SOFL)을 더 이상 실행하지 않고 적절한 조치를 취한 다음 정상적으로 소프트웨어 파일(도 1의 SOFL)을 실행한다. 또한, 모든 실행 파일의 변조 여부는 상호 순환적으로 검증된다.In a fourth step 441, the summary value H1 extracted in the second step 421 is compared with the summary value H2 calculated in the third step 431. As a result, if the summary values H1 and H2 are identical to each other, the corresponding executable file is not modulated. If the summary values H1 and H2 are different from each other, the executable file is determined to be modulated. If it is determined that the executable file has been tampered with, the software file (SOFL in FIG. 1) is no longer executed and appropriate action is taken, and then the software file (SOFL in FIG. 1) is normally executed. In addition, all the executable files are tampered with each other.

도 5는 클라이언트-서버 환경에서 본 발명의 바람직한 실시예에 따른 소프트웨어 파일(SOFL)의 자가 무결성 검증 방법을 도시한 흐름도이다. 도 5를 참조하면, 클라이언트-서버 환경에서의 자가 무결성 검증 방법은 제1 내지 제4 단계(511∼541)를 포함한다.5 is a flow chart illustrating a method for self integrity verification of a software file (SOFL) in accordance with a preferred embodiment of the present invention in a client-server environment. Referring to FIG. 5, the method for verifying self-integrity in a client-server environment includes first to fourth steps 511 to 541.

제1 단계(511)로써 상기 서버에 클라이언트 소프트웨어의 원본 파일(P)과 원본 파일의 전자서명 검증용 공개키(pub)(또는 암호화 정보의 복호화용 비밀키)를 저장하고, 다수개의 난수들(Ri)을 생성하여 이들과 클라이언트 소프트웨어 파일을 입력하는 키사용 해쉬값들(Hpub)을 미리 계산하여 저장한다.In a first step 511, the server stores the original file P of the client software and the public key pub for verifying the digital signature of the original file (or the secret key for decrypting encryption information), and the plurality of random numbers ( Ri) is generated, and the keyed hash values (Hpub) for inputting these and client software files are calculated and stored in advance.

제2 단계(521)로써 상기 서버가 상기 클라이언트와 통신하는 중에 주기적으로 난수들(Ri)을 전송한다.In a second step 521, the server periodically transmits random numbers Ri while communicating with the client.

제3 단계(531)로써 상기 클라이언트는 상기 서버로부터 받은 난수들과 클라이언트에서 동작하는 소프트웨어 파일(P')을 입력하여 키사용 해쉬값을 계산하여 상기 서버로 전송한다.In a third step 531, the client inputs random numbers received from the server and a software file P ′ operating in the client to calculate a key usage hash value and transmit the calculated key usage hash to the server.

제4 단계(541)로써 상기 서버가 자신이 미리 생성해 놓은 키사용 해쉬값(Hpub(Ri+P))과 상기 클라이언트로부터 전송받은 값(Hpub(Ri+P))을 비교(551)하여 변조 여부를 판정하고, 변조시 상기 서버는 상기 클라이언트와 통신을 종료하여 상기 클라이언트로 하여금 더 이상의 작업 수행을 진행하지 못하도록 한다.In a fourth step 541, the server compares and modulates the key usage hash value Hpub (Ri + P) previously generated by the server and the value Hpub (Ri + P) received from the client (551). And upon modification, the server terminates communication with the client to prevent the client from performing further work.

도면과 명세서에서 최적 실시예들이 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.The best embodiments have been disclosed in the drawings and the specification. Although specific terms have been used herein, they are used only for the purpose of describing the present invention and are not intended to limit the scope of the invention as defined in the claims or the claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible from this. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

상술한 바와 같이 본 발명에 따르면, 악의적인 해커에 의해 소프트웨어 파일(도 1의 SOFL)이 위조 및 변조되어 원래의 목적에 어긋나는 수행 결과를 가져오는 것을 방지하고, 컴퓨터 바이러스 등에 의해 소프트웨어 파일(도 1의 SOFL)이변조되는 것을 막음으로써 소프트웨어 사용자의 정신적 및 경제적 손해를 막고 변조된 소프트웨어 파일(도 1의 SOFL)로 인하여 그와 함께 운영되는 시스템 및 타 사용자의 소프트웨어에 끼치는 악영향을 방지할 수가 있다.As described above, according to the present invention, the software file (SOFL in FIG. 1) is forged and tampered with by a malicious hacker to prevent the performance result contrary to the original purpose, and the software file (FIG. 1). By preventing the software user's mental and economic damage from being tampered with, and by the tampered software file (SOFL in FIG. 1), thereby preventing adverse effects on the software and other users' software operating with it.

또한, 본 발명은 쉐어웨어 소프트웨어에 설치된 사용 제한 기능의 불법 해제를 통한 불법 사용을 막아 쉐어웨어 소프트웨어 개발자의 이익을 가져다 주는 효과를 얻을 수 있다.In addition, the present invention can prevent the illegal use through the illegal release of the use restriction function installed in the shareware software to obtain the benefit of shareware software developers.

Claims (11)

상호 순환적 변조 여부 검증을 위한 자가 무결성 검증 코드 생성기;A self integrity verification code generator for intercyclic modulation; 공개키 암호 시스템의 복호화용 비밀키와 암호화용 개인키를 생성하는 키쌍 생성기;A key pair generator for generating a decryption secret key and an encryption private key of the public key cryptosystem; 상기 비밀키를 원시코드 형태로 변환하는 비밀키 변환기;A secret key converter for converting the secret key into a source code form; 소프트웨어 원시 코드와 자가 무결성 검증 코드 및 상기 비밀키 변환기로부터 출력되는 원시코드 비밀키를 컴파일링하여 실행 프로그램 이진 코드로 변환하는 컴파일러; 및A compiler for compiling a software source code, a self-integrity verification code, and a source code secret key output from the secret key converter and converting the source code to a executable program binary code; And 상기 실행 프로그램 이진 코드와 암호화용 개인키를 입력하고, 상기 실행 프로그램 이진 코드 내에 그 요약정보의 암호문을 삽입하여 변조 방지를 위한 소프트웨어 파일을 생성하는 암호문 생성기를 구비하는 것을 특징으로 하는 소프트웨어 파일 생성 장치.And a ciphertext generator for inputting the executable program binary code and a private key for encryption and inserting a cipher text of the summary information into the executable program binary code to generate a software file for tamper proofing. . 제1 항에 있어서, 상기 소프트웨어 파일은The method of claim 1, wherein the software file is 메인 프로그램 실행 코드와 응용프로그램 자가 검증 코드 및 상기 비밀키를 저장하는 메인 실행 파일을 구비하며, 상기 비밀키는 상기 메인 실행 파일 내부에 별도로 할당된 저장 정보 영역에 저장되는 것을 특징으로 하는 소프트웨어 파일 생성 장치.And a main executable file for storing a main program execution code, an application self verification code, and the secret key, wherein the secret key is stored in a storage information area separately allocated in the main executable file. Device. 제2 항에 있어서, 상기 소프트웨어 파일 생성 장치는The apparatus of claim 2, wherein the software file generating device is 상기 메인 실행 파일 내부에 비연속적으로 분산된 메모리 공간을 확보하고 상기 확보된 메모리 공간을 상기 암호화 정보 영역으로 할당하는 분산 메모리 생성기를 더 구비하는 것을 특징으로 하는 소프트웨어 파일 생성 장치.And a distributed memory generator for securing a discontinuously distributed memory space in the main executable file and allocating the reserved memory space to the encrypted information area. 제1 항에 있어서, 상기 소프트웨어 파일은The method of claim 1, wherein the software file is 상기 메인 실행 파일들을 확장하는 적어도 하나의 확장 실행 파일을 더 구비하고, 상기 적어도 하나의 확장 실행 파일은 확장 프로그램 실행 코드와 응용 프로그램 자가 검증 코드로 구성되는 것을 특징으로 하는 소프트웨어 파일 생성 장치.And at least one extension executable file extending the main executable files, wherein the at least one extension executable file comprises an extension program execution code and an application self-verification code. 제4 항에 있어서, 상기 메인 실행 파일 및 적어도 하나의 확장 실행 파일내의 응용 프로그램 자가 검증 코드는 메인 및 확장 실행 파일의 변조 여부를 상호 순환적이고 임의로 검증하는 것을 특징으로 하는 소프트웨어 파일 생성 장치.The apparatus of claim 4, wherein the application program self-verification code in the main executable file and the at least one extension executable file mutually recursively and randomly verify whether the main and extension executable files have been tampered with. 제4 항에 있어서, 상기 메인 실행 파일의 요약값과 상기 적어도 하나의 확장 실행 파일의 요약값은 해쉬 알고리즘 통해 계산되거나 전자서명되는 것을 특징으로 하는 소프트웨어 파일 생성 장치.The apparatus of claim 4, wherein the summary value of the main executable file and the summary value of the at least one extension executable file are calculated or digitally signed through a hash algorithm. 제2항에 있어서, 상기 정보 영역에는The method of claim 2, wherein the information area is 상기 메인 실행 파일의 요약값 및 적어도 하나의 확장 실행 파일의 요약값들의 암호문이 저장되는 것을 특징으로 하는 소프트웨어 파일 생성 장치.And a cipher text of the summary value of the main executable file and the summary values of the at least one extension executable file. 제1 항에 있어서, 상기 비밀키 변환기는 매크로를 이용하여 상기 비밀키를 상기 원시코드 형태로 변환하는 것을 특징으로 하는 소프트웨어 파일 생성 장치.The apparatus of claim 1, wherein the secret key converter converts the secret key into the source code form using a macro. 변조 방지용 소프트웨어 파일 생성 장치에 의해 생성되며, 적절한 시기에 응용 프로그램 자가 검증 코드를 수행하여 해당 실행 파일의 변조 여부를 자가 무결성 검증하는 방법에 있어서,In the method for generating the integrity of the software file generated by the tamper-resistant software file generating device, and performing the application self-verification code at the appropriate time to verify the integrity of the executable file, (a) 상기 메인 실행 파일로부터 비밀키 값을 추출하는 단계;(a) extracting a secret key value from the main executable file; (b) 상기 비밀키 값을 이용하여 상기 정보 영역으로부터 저장된 암호문을 복호화하여 해당 실행 파일의 요약값(H1)을 추출하는 단계;(b) extracting a summary value H1 of a corresponding executable file by decrypting a stored cipher text from the information area using the secret key value; (c) 상기 해당 실행 파일의 요약값(H2)을 계산하는 단계; 및(c) calculating a summary value (H2) of the corresponding executable file; And (d) 상기 추출된 요약값(H1)과 상기 계산된 요약값(H2)을 상호 비교하여 상기 요약값들(H1,H2)이 동일하면 상기 해당 실행 파일은 변조되지 않았으며, 상기요약값들(H1,H2)이 동일하면 상기 해당 실행 파일은 변조된 것으로 판단하는 단계를 포함하는 것을 특징으로 하는 소프트웨어 파일의 자가 무결성 검증 방법.(d) comparing the extracted summary value H1 with the calculated summary value H2 and if the summary values H1 and H2 are the same, the corresponding executable file is not modulated and the summary values If (H1, H2) is the same, determining that the corresponding executable file has been tampered with. 제9 항에 있어서, 상기 응용 프로그램 자가 검증 코드내의 검증 대상 파일은 프로그램 수행 시마다 변경되며 메인 실행 파일 및 적어도 하나의 확장 실행 파일은 상호 순환적으로 변조 여부가 검증되는 것을 특징으로 하는 소프트웨어 파일의 자가 무결성 검증 방법.The software file self-testing method of claim 9, wherein the verification target file in the application program self-verification code is changed every time the program is executed, and whether the main executable file and the at least one extension executable file are cyclically tampered with. Integrity verification method. 클라이언트-서버 환경의 서버에서 클라이언트 소프트웨어 파일의 변조를 자가 무결성 검증하는 방법에 있어서,A method for self-integrity verification of tampering of client software files on a server in a client-server environment, (a) 상기 서버에서 다수개의 난수들(Ri)을 생성하여 이들과 클라이언트 소프트웨어 파일을 입력으로 하는 키사용 해쉬값들(Hpub)을 미리 계산하여 저장하는 단계;(a) generating a plurality of random numbers Ri at the server and pre-calculating and storing keyed hash values Hpub that input these and client software files; (b) 상기 서버가 상기 클라이언트와 통신하는 중에 주기적으로 상기 난수들을 전송하는 단계;(b) periodically transmitting the random numbers while the server is in communication with the client; (c) 상기 서버로부터 받은 난수들과 클라이언트에서 동작하는 소프트웨어 파일(P')을 입력하여 키사용 해쉬값을 계산하여 상기 서버로 전송하는 단계; 및(c) inputting random numbers received from the server and a software file (P ') operating on the client to calculate a key usage hash value and to transmit the calculated hash value to the server; And (d) 상기 서버가 미리 생성해 놓은 키사용 해쉬값(Hpub(Ri+P))과 상기 클라이언트로부터 전송받은 키사용 해쉬값(Hpub(Ri+P))을 비교하여 변조 여부를 판단하는 단계를 포함하는 것을 특징으로 하는 클라이언트-서버 환경에서의 소프트웨어파일의 자가 무결성 검증 방법.(d) comparing the key usage hash value (Hpub (Ri + P)) previously generated by the server with the key usage hash value (Hpub (Ri + P)) received from the client to determine whether to modify the key; Self-integrity verification method of the software file in a client-server environment, characterized in that it comprises.
KR1020020014093A 2002-03-15 2002-03-15 Device for generating tamper-resistant software and methods for self-integrity checking the software file and server-aided integrity checking in client-server environment KR20030075018A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020014093A KR20030075018A (en) 2002-03-15 2002-03-15 Device for generating tamper-resistant software and methods for self-integrity checking the software file and server-aided integrity checking in client-server environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020014093A KR20030075018A (en) 2002-03-15 2002-03-15 Device for generating tamper-resistant software and methods for self-integrity checking the software file and server-aided integrity checking in client-server environment

Publications (1)

Publication Number Publication Date
KR20030075018A true KR20030075018A (en) 2003-09-22

Family

ID=32224934

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020014093A KR20030075018A (en) 2002-03-15 2002-03-15 Device for generating tamper-resistant software and methods for self-integrity checking the software file and server-aided integrity checking in client-server environment

Country Status (1)

Country Link
KR (1) KR20030075018A (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100710884B1 (en) * 2005-07-29 2007-04-27 충북대학교 산학협력단 Mobile Contents Providing System And Method Thereof
KR100804189B1 (en) * 2006-04-14 2008-02-18 (주)비디디지털연구소 Software Tamperproof Method For Client-Server
WO2008116146A1 (en) * 2007-03-21 2008-09-25 Microsoft Corporation Software tamper resistance via integrity-checking expressions
WO2008127523A1 (en) * 2007-04-13 2008-10-23 Hewlett-Packard Development Company, L.P. Trusted component update system and method
KR101299099B1 (en) * 2011-09-07 2013-09-16 주식회사 팬택 Apparatus and method for management of optimized virtualization module in embedded system
WO2015023093A1 (en) * 2013-08-16 2015-02-19 (주)잉카엔트웍스 Method for verifying integrity of dynamic code using hash
KR101509585B1 (en) * 2013-08-23 2015-04-07 주식회사 마크애니 Counterfeiting preventing appratus, user device, method and system for mobile application
KR20160065261A (en) * 2014-11-28 2016-06-09 주식회사 티모넷 System for preventing forgery of application and method therefor
CN113934702A (en) * 2021-10-29 2022-01-14 支付宝(杭州)信息技术有限公司 Method, device and system for processing service data

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5919257A (en) * 1997-08-08 1999-07-06 Novell, Inc. Networked workstation intrusion detection system
US5940513A (en) * 1995-08-25 1999-08-17 Intel Corporation Parameterized hash functions for access control
US5991399A (en) * 1997-12-18 1999-11-23 Intel Corporation Method for securely distributing a conditional use private key to a trusted entity on a remote system
US6148401A (en) * 1997-02-05 2000-11-14 At&T Corp. System and method for providing assurance to a host that a piece of software possesses a particular property
KR20010045157A (en) * 1999-11-03 2001-06-05 오길록 Method for managing information needed to recovery crytographic key
KR20010082632A (en) * 2000-02-14 2001-08-30 니시무로 타이죠 Method and system for distributing programs using tamper resistant processor
US6567917B1 (en) * 1999-02-01 2003-05-20 Cisco Technology, Inc. Method and system for providing tamper-resistant executable software

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5940513A (en) * 1995-08-25 1999-08-17 Intel Corporation Parameterized hash functions for access control
US6148401A (en) * 1997-02-05 2000-11-14 At&T Corp. System and method for providing assurance to a host that a piece of software possesses a particular property
US5919257A (en) * 1997-08-08 1999-07-06 Novell, Inc. Networked workstation intrusion detection system
US5991399A (en) * 1997-12-18 1999-11-23 Intel Corporation Method for securely distributing a conditional use private key to a trusted entity on a remote system
US6567917B1 (en) * 1999-02-01 2003-05-20 Cisco Technology, Inc. Method and system for providing tamper-resistant executable software
KR20010045157A (en) * 1999-11-03 2001-06-05 오길록 Method for managing information needed to recovery crytographic key
KR20010082632A (en) * 2000-02-14 2001-08-30 니시무로 타이죠 Method and system for distributing programs using tamper resistant processor
KR100375158B1 (en) * 2000-02-14 2003-03-08 가부시끼가이샤 도시바 Tamper resistant microprocessor

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100710884B1 (en) * 2005-07-29 2007-04-27 충북대학교 산학협력단 Mobile Contents Providing System And Method Thereof
KR100804189B1 (en) * 2006-04-14 2008-02-18 (주)비디디지털연구소 Software Tamperproof Method For Client-Server
WO2008116146A1 (en) * 2007-03-21 2008-09-25 Microsoft Corporation Software tamper resistance via integrity-checking expressions
WO2008127523A1 (en) * 2007-04-13 2008-10-23 Hewlett-Packard Development Company, L.P. Trusted component update system and method
US9053323B2 (en) 2007-04-13 2015-06-09 Hewlett-Packard Development Company, L.P. Trusted component update system and method
CN109241747A (en) * 2007-04-13 2019-01-18 瑞典爱立信有限公司 Trusted component update system and method
KR101299099B1 (en) * 2011-09-07 2013-09-16 주식회사 팬택 Apparatus and method for management of optimized virtualization module in embedded system
WO2015023093A1 (en) * 2013-08-16 2015-02-19 (주)잉카엔트웍스 Method for verifying integrity of dynamic code using hash
CN105637516A (en) * 2013-08-16 2016-06-01 Inka安特沃客有限公司 Method for verifying integrity of dynamic code using hash
KR101509585B1 (en) * 2013-08-23 2015-04-07 주식회사 마크애니 Counterfeiting preventing appratus, user device, method and system for mobile application
KR20160065261A (en) * 2014-11-28 2016-06-09 주식회사 티모넷 System for preventing forgery of application and method therefor
CN113934702A (en) * 2021-10-29 2022-01-14 支付宝(杭州)信息技术有限公司 Method, device and system for processing service data

Similar Documents

Publication Publication Date Title
CN110287654B (en) Media client device authentication using hardware trust root
US7958373B2 (en) Secure repository with layers of tamper resistance and system and method for providing same
EP0875814B1 (en) Information processing apparatus and method and recording medium for executing programs having been encrypted using public keys
US7559091B2 (en) Software obfuscation
US10797868B2 (en) Shared secret establishment
US8175269B2 (en) System and method for enterprise security including symmetric key protection
CN104932902A (en) Method for generating APK file and terminal
KR20140099126A (en) Method of securing software using a hash function, Computer readable storage medium of recording the method and a software processing apparatus
JP2007511810A (en) Proof of execution using random number functions
US7805616B1 (en) Generating and interpreting secure and system dependent software license keys
KR20150035249A (en) Recording medium storing application package, method and apparatus of creating application package, method and apparatus of executing application package
CN106055936A (en) Method and device for encryption/decryption of executable program data package
Gora et al. A flexible design flow for software IP binding in FPGA
US7552092B2 (en) Program distribution method and system
EP1785901B1 (en) Secure License Key Method and System
KR20030075018A (en) Device for generating tamper-resistant software and methods for self-integrity checking the software file and server-aided integrity checking in client-server environment
CN112115430A (en) Apk reinforcement method, electronic equipment and storage medium
CN109784072B (en) Security file management method and system
CN115795438A (en) Method and system for authorizing application program and readable storage medium
US20190199694A1 (en) Individual encryption of control commands
KR100734600B1 (en) Method of system authentication and security enforcement using self-integrity checking based on the tamper-proof H/W
Magnanini et al. Scalable, confidential and survivable software updates
Li et al. Provably Secure APK Redevelopment Authorization Scheme in the Standard Model.
CN111061495A (en) Application installation method, terminal device and storage medium
JP5798959B2 (en) Package generation device, package generation method, and program

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application