KR20110072111A - 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법 - Google Patents

소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20110072111A
KR20110072111A KR1020090128914A KR20090128914A KR20110072111A KR 20110072111 A KR20110072111 A KR 20110072111A KR 1020090128914 A KR1020090128914 A KR 1020090128914A KR 20090128914 A KR20090128914 A KR 20090128914A KR 20110072111 A KR20110072111 A KR 20110072111A
Authority
KR
South Korea
Prior art keywords
source code
obfuscation
obfuscated
data
terminal
Prior art date
Application number
KR1020090128914A
Other languages
English (en)
Other versions
KR101097103B1 (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 KR1020090128914A priority Critical patent/KR101097103B1/ko
Publication of KR20110072111A publication Critical patent/KR20110072111A/ko
Application granted granted Critical
Publication of KR101097103B1 publication Critical patent/KR101097103B1/ko

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/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/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법에 관한 것으로, 보다 자세하게는 소프트웨어를 구현하기 위한 알고리즘, 구조, 구성 등을 포함하는 소스코드를 난독화하고, 난독화를 위한 복원정보, 처리내역 등을 서버에서 관리토록하여 소스코드의 유출을 방지하도록 하는 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법에 관한 것이다.
난독화, 유출방지, 복원, 검증

Description

소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법{Method and system for preventing outflow in software source code}
본 발명은 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법에 관한 것으로, 보다 자세하게는 소프트웨어를 구현하기 위한 알고리즘, 구조, 구성 등을 포함하는 소스코드를 난독화하고, 난독화를 위한 복원정보, 처리내역 등을 서버에서 관리토록하여 소스코드의 유출을 방지하도록 하는 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법에 관한 것이다.
소프트웨어 저작권 보호기술은 주로 암호화 기술에 따른 DRM(Digital Rights Management), 워터마킹, 핑거프린팅 등의 기술이 개발되었으며, 소스코드에 대한 저작권 보호기술의 경우에도 주로 암호화 기술을 이용하여 권한없는 사용자의 접근이나 이용을 차단하여 보호한다.
보안 취약점 분석자들은 각종 보안 문제 분석에 역공학(Reverse engineering) 기술을 적극 활용하고 있다. 역공학은 소스코드 없이 윈도우즈 실행 파일(Portable Executable)이나, 자바 바이트코드 등을 직접 분석해서 프로그램이 어떤 기능을 수행하는지 파악하여 취약점을 찾아내는 기술이다. 필요하면 직접 프로그램 바이너리를 수정해 불법적인 일을 수행하게 만들기도 한다. 이에 대한 대응으로 코드를 복잡하게 만들어 알아보기 힘들게 하는 코드 난독화(Code Obfuscation) 기술이 발전하였다.
이러한 코드 난독화를 이용하여 원본 소스코드를 난독화된 소스코드로 변환하여도 원본 소스코드에 대한 관리소홀로 인하여 원본 소스코드가 유출되는 경우가 많고, 난독화된 소스코드를 복원할 때 필요한 복원정보를 단말기에 저장하고 있어서 쉽게 난독화된 소스코드를 복원시킬 수 있는 등의 소스코드의 관리가 어려운 문제점이 있다.
상기와 같은 종래 기술의 문제점을 해결하기 위하여 안출된 본 발명은 서버로부터 난독화를 위한 프로그램을 다운받아 원본 소스코드를 난독화하고, 원본 소스코드를 삭제하여 원본 소스코드의 유출을 방지토록 하는 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법을 제공함에 본 발명의 목적이 있다.
또한, 본 발명은 난독화된 소스코드를 복원하기 위해 필요한 복원정보, 처리내역 등을 서버에 전송하여 관리토록하여 복원정보가 유출되어 난독화된 소스코드가 복원되는 것을 방지토록 하는 다른 목적이 있다.
본 발명의 상기 목적은 단말기에 저장되어 있는 어플리케이션인 난독화 처리부와 난독화 검증 처리부의 업데이트 관리 모듈을 통하여 각각에 대한 버전을 관리하고, 최신 버전의 어플리케이션을 제공하기 위한 버전관리부; 난독화된 소스코드의 무결성을 검증하기 위한 난독화 검증 관리부; 난독화된 소스코드에 대한 내역을 관리하고, 난독화된 소스코드에 대한 무결성 정보를 저장하기 위한 난독화 관리부 및 관리서버에 입력된 명령을 처리하기 위한 제어부를 포함하는 관리서버가 포함된 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법에 의해 달성된다.
따라서, 본 발명의 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법은 버로부터 난독화를 위한 프로그램을 다운받아 원본 소스코드를 난독화하고, 원본 소스코드를 삭제하여 원본 소스코드의 유출을 방지토록 하는 소프트웨어 소스코드의 유출을 방지하기 위한 효과가 있다.
또한, 본 발명은 난독화된 소스코드를 복원하기 위해 필요한 복원정보, 처리내역 등을 서버에 전송하여 관리토록하여 복원정보가 유출되어 난독화된 소스코드가 복원되는 것을 방지토록 하는 다른 효과가 있다.
본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 소프트웨어 소스코드의 유출을 방지하기 위 한 시스템의 구성도이다. 도 1을 참조하면, 단말기(100), 웹서버(200), 관리서버(300)를 포함한다.
단말기(100)는 원본 소스코드를 저장하고 있고, 웹서버(200)를 통해 관리서버(300)에 접속하여 난독화와 복원을 위한 어플리케이션을 다운받아서 단말기(100)에서 원본 소스코드를 난독화 및 복원한다.
원본 소스코드는 프로그램의 처리방식, 기능 배치, 구성, 설계 구조, 주석문 등인 설계와 관련된 내용과 프로그램을 구성하는 알고리즘, 성능, 최적화를 위한 구현 노하우 등의 핵심기술이 저장되어 있다.
이러한 원본 소스코드는 관리버서(300)로부터 다운받은 어플리케이션을 이용하여 난독화를 하고, 난독화된 소스코드만 남기고 원본 소스코드는 삭제함으로써, 원본 소스코드의 유출을 방지토록 한다.
원본 소스코드를 난독화할 때, 복원 여부를 선택받아 추후 복원을 할 것이라 판단하면 난독화된 소스코드를 복원하기 위한 복원 데이터를 생성한다.
난독화된 소스코드와 난독화된 소스코드를 복원하기 위한 복원 데이터를 단말기(100)에 저장하고 있을 경우에 복원 데이터와 난독화된 소스코드가 유출되면 원본 소스코드를 확보하는데 어려움이 없기 때문에 복원 데이터도 관리서버(300)에 전송하도록 한다.
웹서버(200)는 단말기(100)가 관리서버(300)의 접속을 위한 것으로, 관리서버(300)에 접속한 횟수, 관리서버(300)의 접속을 위한 위치, 어플리케이션의 버전 정보 등을 웹 형태로 제공한다.
관리서버(300)는 소스코드를 난독화하기 위한 난독화 어플리케이션과 난독화 복원을 위한 난독화 복원 어플리케이션을 단말기(100)에 제공하도록 하며, 단말기(100)에서 전송한 데이터들을 데이터베이스(미도시)에 저장한다. 또한, 데이터베이스(미도시)에 저장한 데이터들을 검색하기 위한 명령을 처리하고, 어플리케이션의 다운로드 내역, 업데이트 관리 등을 수행한다.
도 2는 본 발명의 실시예에 따른 난독화 처리부의 구성도이다. 도 2를 참조하면, 난독화 처리부(110)는 업데이트 관리 모듈(111), 난독화 모듈(112), 복원 데이터 생성 모듈(113), 해쉬 데이터 추출모듈(114), 세부 데이터 생성 모듈(115) 및 제어 모듈(116)을 포함한다.
난독화 처리부(110)는 관리서버로부터 전송받은 난독화를 위한 어플리케이션이다. 업데이트 관리 모듈(111)은 난독화 처리부(110)의 버전을 관리하고, 버전이 최신버전이 아닐 경우에는 관리서버에 접속하여 최신 버전으로 업데이트한다.
난독화 모듈(112)은 원본 소스코드를 난독화하기 위한 것으로, 원본 소스코드를 난독화하여 난독화된 소스코드를 생성한다. 원본 소스코드를 난독화함에 있어서, 난독화하는 방법은 하나 이상의 알고리즘이 저장되어 있어서 알고리즘을 사용자에 의해 선택될 수도 있고, 자동으로 선택될 수도 있다.
원본 소스코드를 난독화할 때, 복원 여부를 질의하며 복원 여부는 추후에 난독화된 소스코드를 원본 소스코드로 복원시킬 것인지 아닌지에 대한 판단이다. 추후에 복원을 할 것이라 판단되면 원본 소스코드를 난독화할 때, 복원 데이터 생성 모듈(113)을 통해 복원 데이터를 생성한다.
복원이 필요없다고 판단되면 원본 소스코드를 난독화할 때, 복원 데이터를 생성하지 않는다. 복원 데이터는 단말기를 통해 관리서버에 전송된다.
해쉬 데이터 추출모듈(114)은 원본 소스코드를 난독화하여 난독화된 소스코드를 생성할 때, 원본 소스코드의 해쉬 데이터과 난독화된 소스코드의 해쉬 데이터를 추출한다. 이는 무결성을 검증하기 위해 추출하는 것으로, 2개의 해쉬 데이터는 관리서버에 전송하여 추후 관리서버에서 무결성을 검증한다.
세부 데이터 생성 모듈(115)는 원본 소스코드를 난독화 모듈(112)를 통해 난독화할 때, 어떠한 난독화 방법을 사용했는지 등에 대한 세부 데이터를 생성한다. 또한, 적용일시, 적용 수준, 예상 품질, 사용자 아이디 등에 대한 내역을 포함한다.
제어모듈(116)은 업데이트 관리 모듈(111), 난독화 모듈(112), 복원 데이터 생성 모듈(113), 해쉬 데이터 추출모듈(114) 및 세부 데이터 생성 모듈(115)를 제어한다. 원본 소스코드를 난독화하여 난독화된 소스코드가 생성되면, 난독화 처리부(110)의 제어모듈(116)을 통하여 원본 소스코드를 삭제토록 한다. 원본 소스코드의 삭제 여부를 사용자에 의해 선택될 수 있다.
또한, 난독화 과정을 통해 생성된 세부 데이터, 해쉬 데이터, 복원 데이터 등을 단말기를 통하여 관리서버로 전송할 수 있도록 제어한다.
도 3은 본 발명의 실시예에 따른 난독화 검증 처리부의 구성도이다. 도 3을 참조하면, 업데이트 관리 모듈(121), 난독화 검증 모듈(122), 해쉬 데이터 추출모듈(123), 처리 데이터 생성 모듈(124) 및 제어모듈(125)를 포함한다.
난독화 검증 처리부(120)는 관리서버로부터 전송받은 난독화를 검증하기 위한 어플리케이션이다. 업데이트 관리 모듈(121)은 난독화 처리부(120)의 버전을 관리하고, 버전이 최신버전이 아닐 경우에는 관리서버에 접속하여 최신 버전으로 업데이트한다.
난독화 검증 모듈(122)은 난독화된 소스코드를 복원 또는 검증하기 위한 것이다. 난독화된 소스코드를 복원할 수도 있고, 무결성을 검증할 수도 있으며, 두가지 모두 행할 수도 있다.
해쉬 데이터 추출모듈(123)은 난독화된 소스코드를 무결성을 검증하기 위해서 난독화된 소스코드의 해쉬 데이터를 추출한다. 난독화된 소스코드의 해쉬 데이터를 관리서버로 전송하여 관리서버에 저장된 원본 소스코드의 해쉬 데이터랑 비교하여 무결성을 검증한다.
처리 데이터 생성 모듈(124)은 난독화 검증 처리부(120)에서 처리되는 내역, 사용자 아이디 등에 대한 정보를 처리 데이터로 생성하며, 이는 제어모듈(125)에 의해 관리서버로 전송한다.
제어모듈(125)은 업데이트 관리 모듈(121), 난독화 검증 모듈(122), 해쉬 데이터 추출모듈(123) 및 처리 데이터 생성 모듈(124)을 제어한다. 또한, 난독화 검증 과정을 통해 생성된 해쉬 데이터, 처리 데이터 등을 단말기를 통하여 관리서버로 전송할 수 있도록 제어한다.
도 4는 본 발명의 실시예에 따른 관리서버의 구성도이다. 도 4를 참조하면, 관리서버(300)는 버전관리부(310), 난독화 검증 관리부(320), 난독화 관리부(330) 및 제어부(340)를 포함한다.
버전관리부(310)는 단말기에 저장되어 있는 어플리케이션인 난독화 처리부(110)와 난독화 검증 처리부(120)의 업데이트 관리 모듈을 통하여 각각에 대한 버전을 관리하고, 최신 버전의 어플리케이션을 제공한다.
난독화 검증 관리부(320)는 난독화된 소스코드의 무결성을 검증하기 위한 것으로, 관리서버(300)는 단말기에서 원본 소스코드를 난독화하여 난독화된 소스코드를 생성할 때, 함께 생성된 원본 소스코드의 해쉬 데이터와 난독화된 소스코드의 해쉬 데이터를 저장하고 있다.
단말기에서 무결성을 검증하고자 하는 난독화된 소스코드의 해쉬 데이터를 관리서버(300)로 전송하면, 난독화 검증 관리부(320)는 해쉬 데이터를 비교하여 관리서버(300)에 저장되어 있는 원본 소스코드를 난독화한 난독화된 소스코드를 검색하여 무결성을 검증한다. 무결성을 수행하면 그에 대한 처리 데이터를 단말기로 전송한다.
난독화 관리부(330)는 소스코드를 관리하기 위한 것으로, 난독화된 소스코드에 대한 내역을 관리하고, 난독화된 소스코드에 대한 무결성 정보를 저장한다.
제어부(340)는 관리서버(300)에 입력된 명령을 처리하는 것으로, 난독화 알고리즘 등록에 대한 명령, 데이터베이스와 관련된 명령, 사용자 접근권한 관리 등 모든 명령을 처리한다. 또한, 난독화된 소스코드를 복원할 때, 관리서버(300)는 복원 데이터를 저장하고 있으며, 복원 데이터는 해쉬 데이터로 인하여 검증이 될 경우 단말기로 전송하여 난독화된 소스코드를 복원할 수 있도록 한다.
도 5는 본 발명의 실시예에 따른 소프트웨어 소스코드의 유출을 방지하기 위한 방법의 흐름도이다. 도 5를 참조하면, 난독화하기 위한 방법에 관한 것으로, 난독화를 하기 위한 원본 소스코드가 선택되면(S510), 원본 소스코드의 에러 여부를 확인하여(S515), 에러가 있을 경우에는 난독화를 진행할 수 없다는 에러 메시지를 생성하여 나타낸다(S520).
에러가 없을 경우에는 난독화 옵션을 선택받고(S525), 복원 여부를 선택받는다(S530). 난독화 옵션은 난독화와 관련된 알고리즘이 하나 이상으로 구성되어 있기 때문에 원하는 알고리즘이 있을 경우에 대한 선택을 입력받는 것으로, 없을 경우에는 자동으로 알고리즘이 선택된다. 또한, 복원 여부는 원본 소스코드를 난독화한 후에 복원을 할 경우에는 복원 데이터가 필요하기 때문에 추후에 복원이 필요할 경우에는 복원 데이터를 생성하고, 복원이 필요하지 않다고 판단되면 복원 데이터를 생성하지 않도록 하기 위한 것이다.
복원을 한다고 선택되면 원본 소스코드를 난독화하여(S535) 난독화된 소스코드를 생성하고, 난독화된 소스코드를 원본 소스코드로 복원하기 위한 복원 데이터를 생성한다(S540).
복원을 하지 않는다고 하면 원본 소스코드를 난독화하여(S545) 난독화된 소스코드를 생성하고, 복원 데이터는 생성하지 않는다.
원본 소스코드를 난독화한 난독화된 소스코드의 에러를 검사하고(S550), 에러가 없을 경우에는 소스코드의 해쉬 데이터를 생성한다(S555). 해쉬 데이터는 원본 소스코드의 해쉬 데이터와 난독화된 소스코드의 해쉬 데이터를 포함한다.
원본 소스코드를 난독화하는 과정에서 발생된 데이터, 과정 등을 포함하는 세부 데이터를 생성하고(S560), 서버로 전송한다(S565). 세부 데이터에는 적용된 알고리즘, 사용자의 아이디, 선택한 옵션 등에 대한 내역을 모두 포함하도록 한다. 또한, 서버로 전송하는 것은 해쉬 데이터, 복원 데이터, 세부 데이터를 전송한다.
난독화를 완료한 후에 에러 여부를 검사하고, 에러가 있다고 판단되면 에러 메시지를 생성한다(S570). 난독화 알고리즘에 의한 것일 수 있기 때문에 다른 알고리즘을 이용할 것인지에 대한 선택을 입력받고(S575), 다른 알고리즘을 이용할 경우에는 S510단계부터 시작하고, 다른 알고리즘을 이용하지 않을 경우에는 S525단계부터 시작하도록 한다.
도 6은 본 발명의 다른 실시예에 따른 소프트웨어 소스코드의 유출을 방지하기 위한 방법의 흐름도이다. 도 6을 참조하면, 난독화 복원 또는 검증하기 위한 방법에 관한 것으로 난독화를 복원 또는 검증하기 위한 소스코드를 선택받는다(S610). 이 때, 소스코드는 난독화된 소스코드인 것이 바람직하다.
소스코드가 선택되면 소스코드를 검증할 것인지 복원할 것인지 복원 여부를 선택받는다(S615). 복원을 할 경우에는 선택된 소스코드의 해쉬 데이터를 생성하여(S620), 관리서버에 전송한다(S620).
관리서버는 단말기로부터 전송받은 해쉬 데이터와 기존에 저장된 해쉬 데이터를 비교하여 소스코드를 식별한다. 소스코드가 식별되면 에러 여부를 검사하고(S630), 에러가 발생하면 에러 메시지를 생성하여(S635) 단말기에 전송한다. 에러가 없을 경우에는 복원 데이터를 단말기에 전송하고, 단말기의 난독화 검증 처리 부는 전송받은 복원 데이터를 이용하여 난독화된 소스코드를 원본 소스코드로 복원한다(S640).
단말기의 난독화 검증 처리부는 처리 내역을 포함하는 처리 데이터를 관리서버로 전송한다(S640). 처리 데이터는 사용자 아이디, 복원 결과 등을 포함한다.
복원이 아닌 소스코드를 검증할 경우에는 소스코드의 해쉬 데이터를 생성하여(S650), 관리서버에 전송한다(S655).
관리서버는 단말기로부터 전송받은 해쉬 데이터와 기존에 저장된 해쉬 데이터를 비교하여 소스코드를 식별한다. 소스코드가 식별되면 에러 여부를 검사하고(S660), 에러가 발생하면 에러 메시지를 생성하여(S665) 단말기에 전송한다.
소스코드가 식별되면 관리서버로부터 저장하고 있는 소스코드의 정보를 전송받아 단말기에 저장되어 있는 소스코드의 정보를 비교하여 무결성을 검증하고(S670), 처리 내역을 포함하는 처리 데이터를 관리서버에 전송한다(S640). 처리 데이터는 무결성 검증 결과, 사용자 아이디 등을 포함한다.
본 발명은 이상에서 살펴본 바와 같이 바람직한 실시예를 들어 도시하고 설명하였으나, 상기한 실시예에 한정되지 아니하며 본 발명의 정신을 벗어나지 않는 범위 내에서 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변경과 수정이 가능할 것이다.
도 1은 본 발명의 실시예에 따른 소프트웨어 소스코드의 유출을 방지하기 위한 시스템의 구성도,
도 2는 본 발명의 실시예에 따른 난독화 처리부의 구성도,
도 3은 본 발명의 실시예에 따른 난독화 검증 처리부의 구성도,
도 4는 본 발명의 실시예에 따른 관리서버의 구성도,
도 5는 본 발명의 실시예에 따른 소프트웨어 소스코드의 유출을 방지하기 위한 방법의 흐름도,
도 6은 본 발명의 다른 실시예에 따른 소프트웨어 소스코드의 유출을 방지하기 위한 방법의 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
100 : 단말기 110 : 난독화 처리부
111 : 업데이트 관리 모듈 112 : 난독화 모듈
113 : 해쉬 데이터 추출 모듈 114 : 복원 데이터 생성 모듈
115 : 세부 데이터 생성 모듈 116 : 제어모듈
120 :난독화 검증 처리부 121 : 업데이트 관리 모듈
122 : 난독화 검증 모듈 123 : 해쉬 데이터 추출 모듈
124 : 처리 데이터 생성 모듈 125 : 제어모듈
200 : 웹서버 300 : 관리서버
310 : 버전관리부 320 : 난독화 검증 관리부
330 : 난독화 관리부 340 : 제어부

Claims (14)

  1. 소프트웨어 소스코드의 유출을 방지하기 위한 시스템에 있어서,
    원본 소스코드를 난독화한 난독화된 소스코드로 생성하고, 상기 원본 소스코드 및 상기 난독화된 소스코드의 무결성을 검증하기 위해 해쉬 데이터를 추출하기 위한 난독화 처리부; 및 상기 난독화된 소스코드를 복원하거나 무결성을 검증하기 위한 난독화 검증 처리부를 포함하는 단말기; 및
    상기 단말기에 저장된 난독화 처리부 및 난독화 검증 처리부의 버전을 관리하고, 상기 난독화 처리부 및 상기 난독화 검증 처리부의 버전을 업데이트하기 위한 버전관리부; 상기 단말기의 상기 난독화 처리부에서 원본 소스코드를 난독화할 때 생성되는 원본 소스코드의 해쉬 데이터와 상기 난독화 처리부에서 난독화한 난독화된 소스코드의 해쉬 데이터를 상기 단말기로부터 전송받아 이를 비교하여 무결성을 검증하기 위한 난독화 검증 관리부; 상기 난독화 검증 관리부로부터 검증한 무결성 정보와 상기 난독화된 소스코드에 대한 상세 데이터를 전송받아 저장하기 위한 난독화 관리부; 및 상기 버전관리부, 난독화 검증 관리부 및 난독화 관리부를 제어하기 위한 제어부를 포함하는 관리서버
    를 포함하는 소프트웨어 소스코드의 유출을 방지하기 위한 시스템.
  2. 제 1항에 있어서,
    상기 단말기는 상기 관리서버로부터 상기 난독화 처리부 및 상기 난독화 검증 처리부를 전송받아 저장하는 것을 특징으로 하는 소프트웨어 소스코드의 유출을 방지하기 위한 시스템.
  3. 제 1항에 있어서, 상기 단말기의 난독화 처리부는,
    상기 난독화 처리부의 버전을 관리하고, 상기 관리서버로부터 버전을 업데이트받기 위한 업데이트 관리 모듈;
    상기 원본 소스코드를 난독화하여 상기 난독화된 소스코드를 생성하기 위한 난독화 모듈;
    상기 원본 소스코드를 난독화할 때, 사용자로부터 복원 여부를 판단받아 복원이 필요하다고 입력받은 경우, 복원 데이터를 생성하기 위한 복원 데이터 생성 모듈;
    상기 원본 소스코드 및 상기 난독화된 소스코드의 무결성을 검증하기 위해 해쉬 데이터를 추출하기 위한 해쉬 데이터 추출모듈;
    상기 난독화 모듈에서 상기 원본 소스코드를 난독화할 때, 발생하는 난독화 알고리즘, 적용일시, 품질, 사용자 ID 또는 적용수준 중 어느 하나 이상을 포함하는 세부 데이터를 생성하기 위한 세부 데이터 생성 모듈; 및
    상기 업데이트 관리 모듈, 난독화 모듈, 복원 데이터 생성 모듈, 해쉬 데이터 추출모듈 및 세부 데이터 생성 모듈을 제어하기 위한 제어모듈
    을 포함하는 소프트웨어 소스코드의 유출을 방지하기 위한 시스템.
  4. 제 3항에 있어서,
    상기 제어모듈은 상기 난독화 모듈에서 난독화된 소스코드가 생성되면 사용자의 입력에 따라 원본 소스코드를 삭제하는 것을 특징으로 하는 소프트웨어 소스코드의 유출을 방지하기 위한 시스템.
  5. 제 1항에 있어서, 상기 단말기의 난독화 검증 처리부는,
    상기 난독화 검증 처리부의 버전을 관리하고, 상기 관리서버로부터 버전을 업데이트받기 위한 업데이트 관리 모듈;
    상기 난독화된 소스코드를 복원하거나 상기 난독화된 소스코드의 무결성을 검증하기 위한 난독화 검증 모듈; 및
    상기 난독화 검증 모듈에서 무결성을 검증할 경우, 상기 난독화된 소스코드의 해쉬 데이터를 추출하기 위한 해쉬 데이터 추출모듈;
    상기 난독화 검증 처리부에서 처리되는 사용자 ID, 복원 결과 또는 무결성 검증 결과 중 어느 하나 이상을 포함하는 처리 데이터를 생성하기 위한 처리 데이터 생성 모듈; 및
    상기 업데이트 관리 모듈, 해쉬 데이터 추출모듈, 난독화 검증 모듈 및 처리 데이터 생성 모듈을 제어하기 위한 제어모듈
    을 포함하는 소프트웨어 소스코드의 유출을 방지하기 위한 시스템.
  6. 제 5항에 있어서,
    상기 난독화 검증 모듈에서 복원을 행할 경우, 상기 관리서버로부터 복원 데이터를 전송받고, 상기 난독화된 소스코드를 상기 복원 데이터를 이용하여 원본 소스코드로 복원하는 것을 특징으로 하는 소프트웨어 소스코드의 유출을 방지하기 위한 시스템.
  7. 소프트웨어 소스코드의 유출을 방지하기 위한 난독화 방법에 있어서,
    단말기는 사용자로부터 난독화를 하기 위한 원본 소스코드를 선택받으면, 상기 원본 소스코드의 에러 여부를 확인하는 제 1단계;
    상기 원본 소스코드의 에러가 없을 경우, 하나 이상의 난독화 알고리즘인 난독화 옵션을 사용자로부터 선택받고, 복원 여부를 사용자로부터 선택받는 제 2단계;
    상기 원본 소스코드의 복원을 행하지 않을 경우, 상기 원본 소스코드를 난독화한 난독화된 소스코드를 생성하는 제 3단계;
    상기 원본 소스코드와 상기 난독화된 소스코드의 해쉬 데이터를 각각 생성하고, 상기 해쉬 테이터를 생성하면 사용자로부터 상기 원본 소스코드의 삭제유무를 확인받는 제 4단계; 및
    상기 단말기는 상기 해쉬 데이터를 관리서버로 전송하는 제 5단계
    를 포함하는 소프트웨어 소스코드의 유출을 방지하기 위한 방법.
  8. 제 7항에 있어서,
    상기 제 3단계에서 상기 원본 소스코드의 복원을 행할 경우, 상기 원본 소스코드의 복원 데이터를 생성하여 상기 관리서버로 전송하는 것을 더 포함하는 소프트웨어 소스코드의 유출을 방지하기 위한 방법.
  9. 제 7항에 있어서,
    상기 제 3단계에서 상기 원본 소스코드를 난독화할 때, 처리되는 난독화 알고리즘, 적용일시, 품질, 사용자 ID 또는 적용수준 중 어느 하나 이상을 포함하는 세부 데이터로 생성하여 상기 관리서버에 전송하는 것을 특징으로 하는 소프트웨어 소스코드의 유출을 방지하기 위한 방법.
  10. 제 7항에 있어서,
    상기 제 3단계에서 상기 난독화된 소스코드의 에러 여부를 검사하고, 에러가 있을 경우, 에러 메시지를 생성하여 사용자에게 제공하며, 상기 난독화 옵션을 재선택받는 것을 특징으로 하는 소프트웨어 소스코드의 유출을 방지하기 위한 방법.
  11. 소프트웨어 소스코드의 유출을 방지하기 위한 난독화 복원 방법에 있어서,
    단말기는 사용자로부터 난독화 복원을 하기 위한 제 1난독화된 소스코드를 선택받는 제 1단계;
    상기 단말기는 선택된 상기 제 1난독화된 소스코드의 해쉬 데이터를 생성하여 관리서버로 전송하는 제 2단계;
    상기 관리서버는 상기 해쉬 데이터와 기저장된 제 2난독화된 소스코드의 해쉬 데이터를 비교하여 소스코드를 식별하는 제 3단계;
    상기 소스코드가 식별되면 상기 제 2난독화된 소스코드에 대응하는 복원 데이터를 상기 단말기로 전송하는 제 4단계; 및
    상기 단말기는 전송받은 복원 데이터를 이용하여 상기 제 1난독화된 소스코드를 원본 소스코드로 복원하는 제 5단계
    를 포함하는 소프트웨어 소스코드의 유출을 방지하기 위한 방법.
  12. 제 11항에 있어서,
    상기 제 5단계에서 상기 단말기는 상기 제 1난독화된 소스코드를 복원할 때, 처리되는 내역을 처리 데이터로 생성하여 상기 관리서버로 전송하는 것을 더 포함하며, 상기 처리 데이터는 사용자 ID 또는 복원 결과 중 어느 하나 이상을 포함하는 것을 특징으로 하는 소프트웨어 소스코드의 유출을 방지하기 위한 방법.
  13. 소프트웨어 소스코드의 유출을 방지하기 위한 난독화 검증 방법에 있어서,
    단말기는 사용자로부터 난독화 검증을 하기 위한 제 1난독화된 소스코드를 선택받는 제 1단계;
    상기 단말기는 선택된 상기 제 1난독화된 소스코드의 해쉬 데이터를 생성하여 관리서버로 전송하는 제 2단계;
    상기 관리서버는 상기 해쉬 데이터와 상기 관리서버에 저장된 제 2난독화된 소스코드의 해쉬 데이터를 비교하여 소스코드를 식별하는 제 3단계;
    상기 소스코드가 식별되면 상기 제 2난독화된 소스코드의 정보를 상기 단말기로 전송하는 제 4단계; 및
    상기 단말기는 전송받은 상기 제 2난독화된 소스코드의 정보와 상기 단말기에 기저장된 제 1난독화된 소스코드의 정보를 비교하여 무결성을 검증하는 제 5단계
    를 포함하는 소프트웨어 소스코드의 유출을 방지하기 위한 방법.
  14. 제 13항에 있어서,
    상기 제 5단계에서 상기 단말기는 상기 무결성을 검증할 때, 처리되는 내역을 처리 데이터로 생성하여 상기 관리서버로 전송하는 것을 더 포함하며, 상기 처리 데이터는 사용자 ID 또는 무결성 검증 결과 중 어느 하나 이상을 포함하는 것을 특징으로 하는 소프트웨어 소스코드의 유출을 방지하기 위한 방법.
KR1020090128914A 2009-12-22 2009-12-22 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법 KR101097103B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090128914A KR101097103B1 (ko) 2009-12-22 2009-12-22 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090128914A KR101097103B1 (ko) 2009-12-22 2009-12-22 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20110072111A true KR20110072111A (ko) 2011-06-29
KR101097103B1 KR101097103B1 (ko) 2011-12-22

Family

ID=44403082

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090128914A KR101097103B1 (ko) 2009-12-22 2009-12-22 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101097103B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101436536B1 (ko) * 2013-06-19 2014-09-01 숭실대학교산학협력단 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템
ES2545974A1 (es) * 2014-03-17 2015-09-17 Bankinter, S.A. Sistema de protección automático y personalizado para aplicaciones móviles
CN107919960A (zh) * 2017-12-04 2018-04-17 北京深思数盾科技股份有限公司 一种应用程序的认证方法和系统
CN111383033A (zh) * 2020-03-05 2020-07-07 云南阵码科技有限公司 用于化肥产品的防伪溯源方法及其装置
KR102618922B1 (ko) * 2023-04-26 2023-12-28 한화시스템(주) 무기체계 임베디드 시스템의 sw 역공학 방지장치 및 그 방법
KR102713149B1 (ko) * 2023-08-23 2024-10-04 엘아이지넥스원 주식회사 기술 유출 방지 방법 및 시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101378549B1 (ko) 2013-03-11 2014-03-27 주식회사 예티소프트 패턴을 이용한 동적 웹 컨텐츠 보안 서버 및 방법
KR101423891B1 (ko) * 2013-12-20 2014-07-28 김우재 사용자가 개발하거나 획득한 프로그램을 브라우저에서 제공하기 위한 방법, 서버 및 컴퓨터 판독 가능한 기록 매체

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100568228B1 (ko) * 2003-05-20 2006-04-07 삼성전자주식회사 고유번호를 이용한 프로그램 탬퍼 방지 방법과 난독처리된 프로그램 업그레이드 방법, 상기 방법을 위한 장치

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101436536B1 (ko) * 2013-06-19 2014-09-01 숭실대학교산학협력단 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템
ES2545974A1 (es) * 2014-03-17 2015-09-17 Bankinter, S.A. Sistema de protección automático y personalizado para aplicaciones móviles
CN107919960A (zh) * 2017-12-04 2018-04-17 北京深思数盾科技股份有限公司 一种应用程序的认证方法和系统
CN111383033A (zh) * 2020-03-05 2020-07-07 云南阵码科技有限公司 用于化肥产品的防伪溯源方法及其装置
KR102618922B1 (ko) * 2023-04-26 2023-12-28 한화시스템(주) 무기체계 임베디드 시스템의 sw 역공학 방지장치 및 그 방법
KR102713149B1 (ko) * 2023-08-23 2024-10-04 엘아이지넥스원 주식회사 기술 유출 방지 방법 및 시스템

Also Published As

Publication number Publication date
KR101097103B1 (ko) 2011-12-22

Similar Documents

Publication Publication Date Title
KR101097103B1 (ko) 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법
Tan et al. A root privilege management scheme with revocable authorization for Android devices
CN108322461B (zh) 应用程序自动登录的方法、系统、装置、设备和介质
US8612398B2 (en) Clean store for operating system and software recovery
CN101939754B (zh) 使用混合匹配的手指感测设备及相关方法
CN109284585B (zh) 一种脚本加密方法、脚本解密运行方法和相关装置
CN105656860A (zh) Android系统的安全管控方法、装置及其系统
JP2017021434A (ja) 情報処理装置及びその制御方法
CN107430658A (zh) 安全软件认证及验证
JP2004265286A (ja) 環境に応じて選択されたセキュリティ・ポリシーに従うモバイル機器の管理
CN102004887B (zh) 程序保护方法和装置
KR102256249B1 (ko) 통합 보안 SoC를 이용한 IoT 디바이스의 안전한 펌웨어 업데이트 방법
CN111460410A (zh) 服务器登录方法、装置、系统与计算机可读存储介质
CN112948773A (zh) 脚本加密与解密方法、终端设备及可读存储介质
CN106155663A (zh) 应用程序加载代码签名的方法和装置
JP5141056B2 (ja) 情報処理装置と情報処理装置のデータ転送方法
CN109240723B (zh) 应用程序更新方法、系统、计算机设备和存储介质
CN111224826B (zh) 基于分布式系统的配置更新方法、设备、系统及介质
CN105809045A (zh) 一种设备系统在数据重置时的处理方法和装置
CN115795438B (zh) 应用程序授权的方法、系统及可读存储介质
Loftus et al. Android 7 file based encryption and the attacks against it
JP2008009483A (ja) 情報処理システム、情報処理方法、およびプログラム
KR101322402B1 (ko) 어플리케이션 보안 시스템 및 방법, 이를 위한 통신 단말기
CN107689934B (zh) 一种保障信息安全的方法、服务器及客户端
Cho et al. A strengthened android signature management method

Legal Events

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

Payment date: 20141010

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151028

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160927

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170919

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181206

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190919

Year of fee payment: 9