KR101265680B1 - Method and apparatus for recoverable sw sourcecode obfuscation and key recovery - Google Patents

Method and apparatus for recoverable sw sourcecode obfuscation and key recovery Download PDF

Info

Publication number
KR101265680B1
KR101265680B1 KR1020110134215A KR20110134215A KR101265680B1 KR 101265680 B1 KR101265680 B1 KR 101265680B1 KR 1020110134215 A KR1020110134215 A KR 1020110134215A KR 20110134215 A KR20110134215 A KR 20110134215A KR 101265680 B1 KR101265680 B1 KR 101265680B1
Authority
KR
South Korea
Prior art keywords
source code
obfuscation
server
recovery
restoration
Prior art date
Application number
KR1020110134215A
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 KR1020110134215A priority Critical patent/KR101265680B1/en
Application granted granted Critical
Publication of KR101265680B1 publication Critical patent/KR101265680B1/en

Links

Images

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/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

PURPOSE: A method for recoverable software source code obfuscation and key recovery and an apparatus thereof are provided to suppress leakage of source codes by managing recovery key information through reliable third-party authentication agencies. CONSTITUTION: An obfuscation server(100) performs obfuscation of a source code. An obfuscation recovery server(200) performs recovery of the obfuscated source code. A recovery key management server(300) manages recovery keys which are needed for recovery of obfuscated source codes. An authentication server(400) interworks with the recovery key management server. The authentication server performs user authentication. [Reference numerals] (100) Obfuscation server; (200) Obfuscation recovery server; (300) Recovery key management server; (400) Authentication server; (AA) Generate a binary file by encoding a symmetric key; (BB) Generate an obfuscated source code; (CC,EE) Transmit the binary file; (DD) Recovery needed?; (FF) Release encoding; (GG) Authentication completed; (HH) User authentication; (II) Transmit the obfuscated source code including a recovery source code; (S200) Generate an obfuscation recovery source code by encoding the binary file; (S400) Generate a text-encoded source code by encoding the binary file; (S500) Remove annotation of the obfuscated source code(1) & Convert the text-encoded source code into annotation(2) → Generate an obfuscated source code including the recovery source code (1)+(2); (S600) Decode the annotation/Recover a decoded original source code

Description

복원가능한 SW 소스코드 난독화와 키복구 방법 및 장치{Method and apparatus for recoverable SW sourcecode obfuscation and key recovery}Method and apparatus for recoverable SW source code obfuscation and key recovery

본 발명은 복원 가능한 SW 소스코드 난독화와 키복구 방법 및 장치에 관한 것으로서, 더욱 상세하게는 SW 소스코드에 포함되어 원천기술의 유출을 방지하는 난독화(Obfuscation)와 저작자 워터마킹 기술이 적용된 소스코드를 복원에 필요한 난독화 키정보를 이용하여 원본 소스코드로 복원 가능하도록 하는 복원 가능한 SW 소스코드 난독화와 키복구 시스템에 관한 것이다.
The present invention relates to a method and apparatus for restoring SW source code obfuscation and key recovery, and more particularly, a source to which obfuscation and author watermarking technology is applied, which is included in the SW source code to prevent leakage of original technology. The present invention relates to a restorable SW source code obfuscation and key recovery system that enables restoration of an original source code using obfuscation key information necessary for restoring a code.

기존의 소프트웨어(SW) 소스코드 저작권 보호기술은 소스코드 접근통제를 위한 소스코드 암호화 및 소스코드에 대한 개발자 인증과 추적을 위한 워터마킹과 핑거프린팅이 개발된 바 있으며, 이는 패키징된 이진코드(Binary Code)의 보호에 초점을 맞추고 있다. The existing software (SW) source code copyright protection technology has been developed for source code encryption for source code access control and watermarking and fingerprinting for developer authentication and tracking of source code, which is packaged binary code (Binary). The focus is on the protection of code.

이러한 기술에는 주로 디지털 콘텐츠의 보호에서 사용되었던 보호기술들이 적용되고 있으며, 소스코드에 대한 저작권 보호기술의 경우에도 비슷한 맥락의 암호화 기술을 이용하여 권한 없는 사용자의 접근이나 이용을 차단하는 기술이 개발되고 있다. These technologies are mainly applied to the protection techniques used in the protection of digital content, and in the case of copyright protection technology for source code, a technology is developed to block unauthorized users' access or use by using encryption technology in a similar context. have.

이러한 종래의 SW 저작권 보호기술인 SW 소스코드 난독화 기술은 주로 프로그램 툴 기반으로 사용되어 왔으며, SW 소스코드의 난독화 기능보다는 최종 프로그램 산출물에 해당하는 소스코드의 난독화를 수행하는 것에 주로 사용되었다.The SW source code obfuscation technology, which is a conventional SW copyright protection technology, has been mainly used as a program tool base, and is mainly used to obfuscate the source code corresponding to the final program output rather than the obfuscation function of the SW source code.

최근, 개발자들이 사용하는 툴의 다양화와 개발사간 협업(Co-work)이 보편화 되면서 개발사간 수발주 계약 시 발주자가 수주자에게 소스코드를 요청하는 사례가 늘고 있다. 이는 수주자의 휴폐업에 따른 소스코드 재사용의 어려움이 있기 때문이기는 하나, 수주자가 발주자에게 소스코드를 공급하는 경우 수주자의 연구자산이 될 수 있는 핵심 알고리즘과 개발 노하우가 포함된 중요기술이 유출될 수 있는 위험에 노출되는 문제점이 있었다.Recently, as the diversification of tools used by developers and co-working among developers have become commonplace, an increasing number of cases in which a client requests source code from an orderer when an order contract is made between developers is increasing. This is because it is difficult to reuse the source code due to the closure of the contractor. However, if the contractor supplies the source code to the client, important technologies including core algorithms and development know-how that could become the research assets of the client may be leaked. There was a problem that could expose you to danger.

이러한 이유로, 많은 기업들은 SW 소스코드의 유출에 무방비로 노출되어 있으며, 핵심기술의 유출로 인한 막대한 피해가 발생하고 있다.For this reason, many companies are unprotected in the leakage of SW source code, and a significant damage is caused by the leakage of core technology.

또한, 소스코드에 대한 저작권 분쟁 발생 시, 침해사실을 입증하는 것이 어려워 저작권자의 권리보호 및 피해구제에 많은 시간과 노력이 소요되고 있는 실정이다. In addition, when a copyright dispute occurs with respect to the source code, it is difficult to prove the fact of infringement, and thus a lot of time and effort are required to protect the rights of the copyright holder and remedy damage.

이에 난독화 기술 적용에 따른 복원기술 및 신뢰성을 보장하는 인증 시스템이 요구되고 있으나, 복원여부에 대한 신뢰성과 난독화 복원키가 안전하게 저장, 유지, 관리되기 위한 시스템과 제반 기술이 부족하여 SW소스코드 보호기술의 적용에 있어서도 타 기술에 비해 많은 제약사항을 갖고 있다.
Therefore, there is a need for a restoration technology and an authentication system that guarantees reliability by applying obfuscation technology, but there is a lack of a system and various technologies to safely store, maintain, and manage reliability and obfuscation restoration keys for SW source code. The application of protection technology also has more restrictions than other technologies.

상기와 같은 종래 기술의 문제점을 해결하기 위하여 안출된 본 발명은 복원 가능한 난독화 기술을 SW 소스코드에 적용하고, 복원에 필요한 복원키 정보 등은 신뢰할 만한 제3의 인증기관에서 관리될 수 있도록 함으로써 향후 다양한 문제(소스코드 도용, 오남용, 개발사의 휴폐업에 따른 소스코드 재사용의 어려움, 원천 소스코드에 따른 분쟁사례 발생 등)가 발생 시 복원 가능하도록 하기 위한 목적이 있다.The present invention devised to solve the problems of the prior art as described above by applying a restorable obfuscation technology to the SW source code, by allowing the recovery key information, etc. necessary for the restoration to be managed by a trusted third party certification authority It aims to be able to recover when various problems (source code theft, misuse, difficulty of reusing source code due to developer's closure business, dispute case caused by original source code) occur.

또한, 소스코드의 유출로 인한 개발자의 피해를 최소화하기 위한 다른 목적이 있다.
In addition, there is another purpose to minimize the damage of the developer due to leakage of the source code.

본 발명의 상기 목적은 난독화 서버에서 원본 소스코드를 대칭키 암호화하여 이진파일을 생성하고, 이를 복원키 관리서버로 전송하며, 상기 원본 소스코드를 난독화하여 난독화된 소스코드를 생성하는 제1단계, 상기 복원키 관리서버에서 상기 이진파일을 암호화하여 난독화 복원용 소스코드를 생성하고 저장하는 제2단계, 상기 원본 소스코드로의 복원이 필요한 경우, 인증서버에서 사용자 인증을 수행하고, 상기 사용자 인증이 완료되면 상기 복원키 관리서버에서 상기 난독화 복원용 소스코드의 암호화를 해제하여 상기 이진파일을 상기 난독화 서버로 전송하는 제3단계, 상기 난독화 서버에서 상기 이진파일을 엔코딩하여 텍스트 엔코딩된 소스코드를 생성하는 제4단계, 상기 난독화 서버에서 상기 난독화된 소스코드의 주석을 제거하고, 상기 텍스트 엔코딩된 소스코드를 주석으로 변환하여 주석처리된 엔코딩 소스코드를 생성한 후, 주석이 제거된 상기 난독화된 소스코드와 상기 주석처리된 엔코딩 소스코드를 병합함으로써 복원용 소스코드가 포함된 난독화된 소스코드를 생성하는 제5단계, 및 난독화 복원서버에서 상기 복원용 소스코드가 포함된 난독화된 소스코드에서 상기 주석처리된 엔코딩 소스코드를 검색하고, 이를 디코딩 또는 복호화 중 어느 하나 이상을 수행하여 상기 원본 소스코드로 복원하는 제6단계를 포함하는 복원가능한 SW 소스코드 난독화와 키복구 방법에 의해 달성된다.The object of the present invention is to generate a binary file by encrypting the original source code symmetric key in the obfuscation server, and transmits it to the recovery key management server, and to obfuscate the original source code to generate obfuscated source code Step 1, the second step of generating and storing the source code for the obfuscation restoration by encrypting the binary file in the recovery key management server, if the restoration to the original source code is necessary, perform a user authentication in the authentication server, When the user authentication is completed, the third step of transmitting the binary file to the obfuscation server by decrypting the source code for restoring obfuscation in the restoration key management server, by encoding the binary file in the obfuscation server Generating a text-encoded source code, removing the comment of the obfuscated source code from the obfuscation server, and generating the text. After converting the encoded source code into a comment to generate an annotated encoded source code, the obfuscated source code for restoring is merged by merging the uncommented source code with the commented out source code with the commented encoded source code. A fifth step of generating the generated source code, and retrieving the annotated encoded source code from the obfuscated source code including the restoration source code in an obfuscation restoration server, and decodes or decrypts any one or more of It is achieved by a method of restoring SW source code obfuscation and key recovery, comprising a sixth step of recovering to the original source code.

또한, 본 발명의 상기 목적은 소스코드의 난독화를 수행하는 난독화 서버, 난독화된 소스코드를 복원하기 위한 난독화 복원서버, 상기 복원에 필요한 복원키를 관리하는 복원키 관리서버, 및 상기 복원키 관리서버와 연동되며, 사용자 인증을 수행하는 인증서버를 포함하는 복원가능한 SW 소스코드 난독화와 키복구 장치에 의해서도 달성된다.
In addition, the object of the present invention is an obfuscation server for obfuscating the source code, obfuscation restoration server for restoring the obfuscated source code, a restoration key management server for managing the restoration key required for the restoration, and the The recovery key is interlocked with the management server, and is achieved by a recoverable SW source code obfuscation and key recovery device that includes an authentication server that performs user authentication.

상기와 같은 종래 기술의 문제점을 해결하기 위하여 안출된 본 발명은 복원 가능한 난독화 기술을 SW 소스코드에 적용하고, 복원에 필요한 복원키 정보 등은 신뢰할 만한 제3의 인증기관에서 관리될 수 있도록 함으로써 향후 다양한 문제(소스코드 도용, 오남용, 개발사의 휴폐업에 따른 소스코드 재사용의 어려움, 원천 소스코드에 따른 분쟁사례 발생 등)가 발생 시 복원가능하도록 할 수 있는 효과가 있다.The present invention devised to solve the problems of the prior art as described above by applying a restorable obfuscation technology to the SW source code, by allowing the recovery key information, etc. necessary for the restoration to be managed by a trusted third party certification authority There is an effect that can be restored in case of various problems (source code theft, misuse, difficulty of reusing source code due to developer's closure business, dispute case caused by source source code).

또한, 소스코드의 유출로 인한 개발자의 피해를 최소화할 수 있는 다른 효과가 있다. In addition, there is another effect that can minimize the damage of the developer due to leakage of the source code.

도 1은 본 발명에 따른 복원가능한 SW 소스코드 난독화와 키복구 방법을 나타낸 흐름도,
도 2는 본 발명의 일실시예에 따른 복원가능한 SW 소스코드 난독화와 키복구 방법을 나타낸 도면,
도 3은 본 발명에 따른 난독화된 소스파일 및 복원용 소스파일의 생성 흐름도,
도 4는 본 발명에 따른 난독화된 소스파일 및 복원용 소스파일의 형태를 나타낸 도면,
도 5는 본 발명에 따른 복원가능한 SW 소스코드 난독화와 키복구 방법의 개념도이다.
1 is a flowchart showing a method for restoring SW source code obfuscation and key recovery according to the present invention;
2 is a diagram showing a method for restoring SW source code obfuscation and key recovery according to an embodiment of the present invention;
3 is a flowchart illustrating generation of obfuscated source files and source files for restoring according to the present invention;
4 is a view showing the form of the obfuscated source file and the restoration source file according to the present invention;
5 is a conceptual diagram of a recoverable SW source code obfuscation and key recovery method according to the present invention.

본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.The terms and words used in the present specification and claims should not be construed as limited to ordinary or dictionary terms and the inventor may appropriately define the concept of the term in order to best describe its invention It should be construed as meaning and concept consistent with the technical idea of the present invention.

따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.Therefore, the embodiments described in this specification and the configurations shown in the drawings are merely the most preferred embodiments of the present invention and do not represent all the technical ideas of the present invention. Therefore, It is to be understood that equivalents and modifications are possible.

이하 첨부된 본 발명의 바람직한 실시예를 상세히 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail.

도 1은 본 발명에 따른 복원 가능한 SW 소스코드 난독화와 키복구 방법을 나타낸 흐름도이고, 도 2는 본 발명의 일실시예에 따른 복원가능한 SW 소스코드 난독화와 키복구 방법을 나타낸 도면이다. 도 1 및 도2에 도시된 바와 같이, 본 발명은 난독화 서버(100)에서 원본 소스코드의 난수를 생성하고, 대칭키 암호화하여 이진 형태의 소스파일를 생성하고, 이를 복원키 관리서버(300)로 전송하며, 원본 소스코드를 난독화하여 난독화된 소스코드를 생성(S100)하는 과정에 의해 개시된다.1 is a flowchart illustrating a method for restoring SW source code obfuscation and key recovery according to the present invention, and FIG. 2 is a view showing a method for restoring SW source code obfuscation and key recovery according to an embodiment of the present invention. As shown in FIG. 1 and FIG. 2, the present invention generates a random number of the original source code in the obfuscation server 100, generates a source file in binary form by encrypting the symmetric key, and restores the key management server 300. Is transmitted by, and is begun by the process of generating the obfuscated source code by obfuscating the original source code (S100).

이때, 이진파일을 생성하는 것은 이진 형태의 이진파일 크기가 상당히 크기 때문에 안전성을 더욱 확보할 수 있게 하기 위함이다. At this time, the generation of the binary file is to ensure more safety because the size of the binary file of the binary form is quite large.

이진파일을 수신한 복원키 관리서버(300)에서는 그 이진파일을 암호화하여 난독화 복원용 소스코드를 생성하고 저장하게 되며(S200), 저장 시에는 소스파일명에 obf_recovery와 같은 확장자를 추가하여 소스파일을 생성하는 것이 바람직하다.The restoration key management server 300 receiving the binary file encrypts the binary file to generate and store the obfuscation restoration source code (S200), and adds an extension such as obf_recovery to the source file name when saving the source file. It is desirable to produce.

여기에서, 암호화는 사용자 패스워드 또는 공인인증서에 의하여 수행되며, PKCS#12, PKCS#5 등을 이용한다.Here, the encryption is performed by a user password or a public certificate, using PKCS # 12, PKCS # 5 and the like.

이후, 원본 소스코드로의 복원이 필요한 경우, 인증서버(400)에서 사용자 인증을 수행하고, 사용자 인증이 완료되면 복원키 관리서버(300)에서 난독화 복원용 소스코드의 암호화를 해제하여 이진파일을 난독화 서버(100)로 전송한다(S300).Then, if the restore to the original source code is required, perform the user authentication in the authentication server 400, and when the user authentication is completed, the binary file by clearing the encryption of the obfuscation restore source code in the restore key management server 300 To transmit to the obfuscation server 100 (S300).

이때, 인증서버(400)나 복원키 관리서버(300)는 제3의 신뢰기관(TTP, Trusted Third Party)에 의해 관리되는 것이 바람직하며, 이러한 과정은 무분별하게 원본 소스가 유출되는 것을 방지하고, 개발자가 파산 시, 난독화된 소스코드를 제공받는 발주자의 권익도 보호할 수 있게 된다.At this time, the authentication server 400 or the recovery key management server 300 is preferably managed by a third party (TTP, Trusted Third Party), such a process to prevent the original source leaked indiscriminately, In the event of a developer's bankruptcy, it also protects the rights of owners of obfuscated source code.

난독화 서버(100)에 이진파일이 전송되면, 난독화 서버(100)에서는 이진파일을 텍스트 형식으로 변환하기 위하여 MIME, Base64등의 엔코딩을 통해 텍스트 엔코딩된 소스코드를 생성하게 된다(S400).When the binary file is transmitted to the obfuscation server 100, the obfuscation server 100 generates a text encoded source code through encoding such as MIME, Base64, etc. in order to convert the binary file into a text format (S400).

또한, 난독화 서버(100)에서는 난독화된 소스코드의 주석을 제거하고, 텍스트 엔코딩된 소스코드를 주석으로 변환하여 주석처리된 엔코딩 소스코드를 생성한 후, 주석이 제거된 난독화된 소스코드와 주석처리된 엔코딩 소스코드를 병합함으로써 복원용 소스코드가 포함된 난독화된 소스코드를 생성하게 된다(S500).In addition, the obfuscation server 100 removes the annotation of the obfuscated source code, converts the text encoded source code into a comment, generates the encoded encoded source code, and then removes the obfuscated source code. By merging the encoded source code with the annotation that is annotated to generate the obfuscated source code including the restoration source code (S500).

이때, 주석처리된 엔코딩 소스코드의 전후부에는 복원가능한 파일임을 식별할 수 있는 식별코드, 예를 들어, 'Mark_IN 시작구간 ~ Mark_Out 종료구간'과 같은 복원용 코드임을 표시하는 코드를 부가하는 것이 바람직하다.In this case, it is preferable to add an identification code for identifying the file that can be restored to the front and rear of the encoded encoding source code, for example, a code for indicating restoration code such as 'Mark_IN start section to Mark_Out end section'. Do.

난독화 복원서버(200)에서는 복원용 소스코드가 포함된 난독화된 소스코드에서 주석처리된 엔코딩 소스코드를 식별코드를 이용하여 검색하고, 이를 디코딩 또는 복호화 중 어느 하나 이상을 수행하여 소스파일을 덮어씀으로써 원본 소스코드로 복원하게 된다(S600).The obfuscation restoration server 200 searches for encoding source code annotated in the obfuscated source code including the restoration source code by using an identification code, and performs any one or more of decoding or decrypting the source file. By overwriting, the original source code is restored (S600).

도 3은 본 발명에 따른 난독화된 소스파일 및 복원용 소스파일의 생성 흐름도이다. 도 3에 도시된 소스코드 또는 소스파일은 상기 S100 내지 S600의 과정을 거치는 동안 생성되는 결과물로서, 도 4에 각각의 형태가 더욱 상세하게 도시되어 있다.3 is a flowchart illustrating generation of an obfuscated source file and a restoration source file according to the present invention. The source code or source file shown in FIG. 3 is a result generated during the process of S100 to S600, and each form is shown in more detail in FIG. 4.

도 4에 도시된 바와 같이, 상기 S100에서 생성된 난독화된 소스코드의 형태는 형태(2)와 같고, 상기 S200에서 생성된 난독화 복원용 소스코드는 형태(4)과 같으며, 상기 S400에서 생성된 텍스트 엔코딩된 소스코드는 형태(3), 상기 S500에서 생성된 복원용 소스코드가 포함된 난독화된 소스코드의 형태는 형태(1)과 같다.As shown in FIG. 4, the shape of the obfuscated source code generated in S100 is the same as in form (2), and the source code for the obfuscation restoration generated in S200 is the same as in form (4), and the S400 Text encoded source code generated in the form (3), the form of the obfuscated source code containing the restoration source code generated in the S500 is the same as the form (1).

도 5는 본 발명에 따른 복원가능한 SW 소스코드 난독화와 키복구 방법의 개념도로서, 개발자(수주자)는 제3의 신뢰기관(TTP, Trusted Third Party)에 복원용 키와 패스워드 등을 위탁하고, 발주자에게는 난독화된 소스코드만을 제공하며, 차후 개발자가 파산 시, 발주자는 제3의 신뢰기관으로부터 복원용 키를 위임받아 난독화된 소스코드를 복원할 수 있도록 함으로써 개발자와 발주자의 권익 모두를 보호할 수 있게 된다.5 is a conceptual diagram of a method for recovering SW source code obfuscation and key recovery according to the present invention, in which a developer (contractor) entrusts a restoring key and password to a trusted third party (TTP); In this case, only the obfuscated source code is provided to the client, and when the developer goes bankrupt, the client can restore the obfuscated source code by delegating a retrieval key from a third party. You can protect it.

한편, 본 발명에 따른 복원가능한 SW 소스코드 난독화와 키복구 장치는 소스코드의 난독화를 수행하는 난독화 서버(100), 난독화된 소스코드를 복원하기 위한 난독화 복원서버(200), 복원에 필요한 복원키를 관리하는 복원키 관리서버(300), 및 복원키 관리서버(300)와 연동되며, 사용자 인증을 수행하는 인증서버(400)를 포함하여 구성된다.On the other hand, the restorable SW source code obfuscation and key recovery apparatus according to the present invention is an obfuscation server 100 for performing the obfuscation of the source code, obfuscation restoration server 200 for restoring the obfuscated source code, It is configured to include a restoration key management server 300 for managing a restoration key required for restoration, and an authentication server 400 for interworking with the restoration key management server 300 and performing user authentication.

본 발명은 이상에서 살펴본 바와 같이 바람직한 실시예를 들어 도시하고 설명하였으나, 상기한 실시예에 한정되지 아니하며 본 발명의 정신을 벗어나지 않는 범위 내에서 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변경과 수정이 가능할 것이다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation, Various changes and modifications will be possible.

100 : 난독화 서버
200 : 난독화 복원서버
300 : 복원키 관리서버
400 : 인증서버
100: obfuscated server
200: obfuscation restore server
300: restore key management server
400: authentication server

Claims (8)

난독화 서버에서 원본 소스코드를 대칭키 암호화하여 이진(Binary)파일을 생성하고, 이를 복원키 관리서버로 전송하며, 상기 원본 소스코드를 난독화하여 난독화된 소스코드를 생성하는 제1단계;
상기 복원키 관리서버에서 상기 이진파일을 암호화하여 난독화 복원용 소스코드를 생성하고 저장하는 제2단계;
상기 원본 소스코드로의 복원이 필요한 경우, 인증서버에서 사용자 인증을 수행하고, 상기 사용자 인증이 완료되면 상기 복원키 관리서버에서 상기 난독화 복원용 소스코드의 암호화를 해제하여 상기 이진파일을 상기 난독화 서버로 전송하는 제3단계;
상기 난독화 서버에서 상기 이진파일을 엔코딩하여 텍스트 엔코딩된 소스코드를 생성하는 제4단계;
상기 난독화 서버에서 상기 난독화된 소스코드의 주석을 제거하고, 상기 텍스트 엔코딩된 소스코드를 주석으로 변환하여 주석처리된 엔코딩 소스코드를 생성한 후, 주석이 제거된 상기 난독화된 소스코드와 상기 주석처리된 엔코딩 소스코드를 병합함으로써 복원용 소스코드가 포함된 난독화된 소스코드를 생성하는 제5단계; 및
난독화 복원서버에서 상기 복원용 소스코드가 포함된 난독화된 소스코드에서 상기 주석처리된 엔코딩 소스코드를 검색하고, 이를 디코딩 또는 복호화 중 어느 하나 이상을 수행하여 상기 원본 소스코드로 복원하는 제6단계
를 포함하는 복원가능한 SW 소스코드 난독화와 키복구 방법.
A first step of generating a binary file by symmetrically encrypting the original source code in an obfuscation server, transmitting the binary file to a recovery key management server, and obfuscating the original source code to generate obfuscated source code;
Generating and storing source code for obfuscation restoration by encrypting the binary file in the restoration key management server;
When the restoration to the original source code is required, the user authentication is performed in the authentication server, and when the user authentication is completed, the encryption key is released from the obfuscation restoration source code by the restoration key management server to obfuscate the binary file. Transmitting to the server;
A fourth step of generating the text encoded source code by encoding the binary file in the obfuscation server;
The obfuscation server removes the comment of the obfuscated source code, converts the text encoded source code into a comment to generate an encoded encoded source code, and then removes the comment from the obfuscated source code. A fifth step of generating obfuscated source code including the restoration source code by merging the commented encoded source code; And
A sixth step of retrieving the annotated encoded source code from the obfuscated source code including the restoration source code in the obfuscation restoration server, and performing any one or more of decoding or decoding to restore the original source code. step
SW source code obfuscation and key recovery method comprising a.
제 1 항에 있어서,
상기 복원키 관리서버 또는 인증서버 중 어느 하나 이상은 제3의 신뢰기관(TTP, Trusted Third Party)에 의해 관리되는 것을 특징으로 하는 복원가능한 SW 소스코드 난독화와 키복구 방법.
The method of claim 1,
Resilient SW source code obfuscation and key recovery method, characterized in that any one or more of the recovery key management server or authentication server is managed by a third party (TTP, Trusted Third Party).
제 1 항에 있어서,
상기 제2단계에서
상기 암호화는 사용자 패스워드 또는 공인인증서에 의한 것을 특징으로 하는 복원가능한 SW 소스코드 난독화와 키복구 방법.
The method of claim 1,
In the second step
The encryption method of restoring SW source code obfuscation and key recovery, characterized in that by the user password or a public certificate.
제 1 항에 있어서,
상기 제4단계에서
상기 엔코딩은 MIME(Multipurpose Internet Mail Extensions) 또는 Base 64 방식 중 어느 하나 이상에 의한 것을 특징으로 하는 복원가능한 SW 소스코드 난독화와 키복구 방법.
The method of claim 1,
In the fourth step
The encoding method according to claim 1, wherein the encoding is by one or more of MIME (Multipurpose Internet Mail Extensions) or Base 64.
제 1 항에 있어서,
상기 제5단계에서
상기 주석처리된 엔코딩 소스코드의 전후부에는 복원가능한 파일임을 식별할 수 있는 식별코드가 포함된 것을 특징으로 하는 복원가능한 SW 소스코드 난독화와 키복구 방법.
The method of claim 1,
In the fifth step
Resilient SW source code obfuscation and key recovery method characterized in that the front and rear portions of the commented encoding source code includes an identification code for identifying that the file is a recoverable file.
제 5 항에 있어서,
상기 제6단계에서
상기 식별코드를 통해 상기 주석처리된 엔코딩 소스코드를 검색하는 것을 특징으로 하는 복원가능한 SW 소스코드 난독화와 키복구 방법.
The method of claim 5, wherein
In the sixth step
And retrieving the annotated encoded source code through the identification code.
소스코드의 난독화를 수행하는 난독화 서버;
난독화된 소스코드를 복원하기 위한 난독화 복원서버;
상기 복원에 필요한 복원키를 관리하는 복원키 관리서버; 및
상기 복원키 관리서버와 연동되며, 사용자 인증을 수행하는 인증서버
를 포함하는 복원가능한 SW 소스코드 난독화와 키복구 장치.
An obfuscation server for obfuscating source code;
Obfuscation restoration server for restoring obfuscated source code;
A restoration key management server managing the restoration key required for the restoration; And
The authentication server interworking with the restoration key management server and performing user authentication
SW source code obfuscation and key recovery device comprising a.
제 7 항에 있어서,
상기 복원키 관리서버는 제3의 신뢰기관(TTP, Trusted Third Party)에 의해 관리되는 것을 특징으로 하는 복원가능한 SW 소스코드 난독화와 키복구 장치.
The method of claim 7, wherein
The restoration key management server is a restorable SW source code obfuscation and key recovery apparatus, characterized in that managed by a third party (TTP, Trusted Third Party).
KR1020110134215A 2011-12-14 2011-12-14 Method and apparatus for recoverable sw sourcecode obfuscation and key recovery KR101265680B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110134215A KR101265680B1 (en) 2011-12-14 2011-12-14 Method and apparatus for recoverable sw sourcecode obfuscation and key recovery

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110134215A KR101265680B1 (en) 2011-12-14 2011-12-14 Method and apparatus for recoverable sw sourcecode obfuscation and key recovery

Publications (1)

Publication Number Publication Date
KR101265680B1 true KR101265680B1 (en) 2013-05-22

Family

ID=48666478

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110134215A KR101265680B1 (en) 2011-12-14 2011-12-14 Method and apparatus for recoverable sw sourcecode obfuscation and key recovery

Country Status (1)

Country Link
KR (1) KR101265680B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170022023A (en) 2015-08-19 2017-03-02 현대오토에버 주식회사 An apparatus for obfuscating and restoring program execution code and method thereof
KR20200131383A (en) * 2019-05-13 2020-11-24 고려대학교 산학협력단 Apparatus for deobfuscation and method for the same
KR20220037721A (en) * 2020-09-18 2022-03-25 국방과학연구소 Source Code Reconstruction and Optimization Method and Device Therefor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120030375A1 (en) 2010-07-29 2012-02-02 Sap Ag Codepage-independent binary encoding method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120030375A1 (en) 2010-07-29 2012-02-02 Sap Ag Codepage-independent binary encoding method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170022023A (en) 2015-08-19 2017-03-02 현대오토에버 주식회사 An apparatus for obfuscating and restoring program execution code and method thereof
KR20200131383A (en) * 2019-05-13 2020-11-24 고려대학교 산학협력단 Apparatus for deobfuscation and method for the same
KR102203200B1 (en) 2019-05-13 2021-01-14 고려대학교 산학협력단 Apparatus for deobfuscation and method for the same
KR20220037721A (en) * 2020-09-18 2022-03-25 국방과학연구소 Source Code Reconstruction and Optimization Method and Device Therefor
KR102430337B1 (en) * 2020-09-18 2022-08-08 국방과학연구소 Source Code Reconstruction and Optimization Method and Device Therefor

Similar Documents

Publication Publication Date Title
JP4764639B2 (en) File encryption / decryption program, program storage medium
JP5167348B2 (en) Software encryption method, software decryption method, software encryption device, and software decryption device
KR101284676B1 (en) Cryptography-based copy protection system and method for android apps
CN1997953B (en) Method and device for protecting digital content in mobile applications
CN100568152C (en) The source code protection Method and kit for
CN102163268B (en) The term of execution verifying software code the method and apparatus of integrality
EP2264639B1 (en) Securing executable code integrity using auto-derivative key
US8392723B2 (en) Information processing apparatus and computer readable medium for preventing unauthorized operation of a program
CN101872404B (en) Method for protecting Java software program
DE69926483D1 (en) SECURE DISTRIBUTION OF DIGITAL PRESENTATIONS
KR101436536B1 (en) File server, file transfer method thereof and file tamperproof system
CN101957903A (en) Method and device for protecting class files
CN111131282B (en) Request encryption method and device, electronic equipment and storage medium
KR101265680B1 (en) Method and apparatus for recoverable sw sourcecode obfuscation and key recovery
CN109510702A (en) A method of it key storage based on computer characteristic code and uses
CN111159661B (en) Decompilation prevention method and device, electronic equipment and storage medium
CN103605927A (en) Encryption and decryption method based on embedded Linux system
CN114547653B (en) Encryption method, decryption method, device, equipment and medium for development environment
CN109510704A (en) A kind of digital cipher protection system and method based on IOS system
CN106650342B (en) Jar package reinforcement method and system
CN108197438A (en) A kind of digital literary property protection method based on complex encryption technology
KR20110069910A (en) Method of encrypting a file and decrypting a file to be encrypted
JP2007233226A (en) Portable storage medium, security system, and security method
KR101415786B1 (en) A Hybrid Design system and method of Online Execution Class and Encryption-based Copyright Protection for Android Apps
CN101989237B (en) U disk information safety system based on information hiding and digital watermarking technology

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160502

Year of fee payment: 4