KR101436536B1 - 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템 - Google Patents

파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템 Download PDF

Info

Publication number
KR101436536B1
KR101436536B1 KR1020130070480A KR20130070480A KR101436536B1 KR 101436536 B1 KR101436536 B1 KR 101436536B1 KR 1020130070480 A KR1020130070480 A KR 1020130070480A KR 20130070480 A KR20130070480 A KR 20130070480A KR 101436536 B1 KR101436536 B1 KR 101436536B1
Authority
KR
South Korea
Prior art keywords
file
core
user client
program
general
Prior art date
Application number
KR1020130070480A
Other languages
English (en)
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 KR1020130070480A priority Critical patent/KR101436536B1/ko
Application granted granted Critical
Publication of KR101436536B1 publication Critical patent/KR101436536B1/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/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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2125Just-in-time application of countermeasures, e.g., on-the-fly decryption, just-in-time obfuscation or de-obfuscation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템에 관한 것이다. 본 발명에 따른 파일 서버는, 프로그램 파일을 위·변조 행위로부터 보호할 필요가 있는 핵심 코드로 구성된 핵심 파일과 일반 파일로 분리하는 파일 분리부; 상기 핵심 파일 및 일반 파일에 대해서 각각 선택적으로 난독화하거나 비밀키를 이용하여 암호화하는 암호화부; 상기 난독화 또는 암호화된 일반 파일을 사용자 클라이언트에 전송하는 통신부; 및 상기 난독화 또는 암호화된 핵심 파일을 저장하는 저장부를 포함하며, 상기 통신부는, 상기 사용자 클라이언트의 요청에 따라 상기 난독화 또는 암호화된 핵심 파일을 상기 사용자 클라이언트에 전송한다.
본 발명에 따르면 난독화 기법을 클라이언트와 서버에 분산적으로 적용함으로써 역공학 난이도를 높일 수 있다. 또한, 위·변조 탐지 루틴이 서버에서 배포하는 소프트웨어 프로그램에 삽입되므로, 위·변조 탐지 루틴의 신뢰성을 더욱 높일 수 있다. 또한, 암호화된 핵심 코드의 복호화 비밀키를 동적으로 생성하고, SMS 등의 별도의 채널로 전송함으로써 네트워크 상에서의 키노출을 막을 수 있다.

Description

파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템{FILE SERVER, FILE TRANSFER METHOD THEREOF AND FILE TAMPERPROOF SYSTEM}
본 발명은 파일서버 및 그것을 이용한 프로그램 파일의 전송 방법 그리고 프로그램 파일 변조 방지 시스템에 관한 것으로서, 더욱 상세하게는 클라이언트-서버를 기반으로 하여 핵심 코드 부분의 변조를 방지하지 위한 서버, 시스템 및 그 방법에 관한 것이다.
소프트웨어 저작권 보호기술은 주로 암호화 기술에 따른 DRM(Digital Rights Management), 워터마킹, 핑거프린팅 등의 기술이 개발되었으며, 소스코드에 대한 저작권 보호기술의 경우에도 주로 암호화 기술을 이용하여 권한 없는 사용자의 접근이나 이용을 차단하여 보호한다.
보안 취약점 분석자들은 각종 보안 문제 분석에 역공학(Reverse engineering) 기술을 적극 활용하고 있다. 역공학은 소스코드 없이 윈도우즈 실행 파일(Portable Executable)이나, 자바 바이트코드 등을 직접 분석해서 프로그램이 어떤 기능을 수행하는지 파악하여 취약점을 찾아내는 기술이다. 필요하면 직접 프로그램 바이너리를 수정해 불법적인 일을 수행하게 만들기도 한다. 이에 대한 대응으로 코드를 복잡하게 만들어 알아보기 힘들게 하는 코드 난독화(Code Obfuscation) 기술이 발전하였다.
이러한 코드 난독화를 이용하여 원본 소스코드를 난독화된 소스코드로 변환하여도 원본 소스코드에 대한 관리소홀로 인하여 원본 소스코드가 유출되는 경우가 많고, 난독화된 소스코드를 복원할 때 필요한 복원정보를 단말기에 저장하고 있어서 쉽게 난독화된 소스코드를 복원시킬 수 있는 등의 소스코드의 관리가 어려운 문제점이 있다.
본 발명의 배경이 되는 기술은 대한민국 공개특허공보 제10-2011-0072111호(2011.06.29 공개)에 기재되어 있다.
본 발명이 해결하고자 하는 과제는, 클라이언트-서버를 기반으로 하여 핵심 코드 부분의 변조를 방지하지 위한 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템을 제공하는 것이다.
상기한 바와 같은 목적을 달성하기 위한 본 발명의 하나의 실시예에 따른 파일 서버는, 프로그램 파일을 위·변조 행위로부터 보호할 필요가 있는 핵심 코드로 구성된 핵심 파일과 일반 파일로 분리하는 파일 분리부; 상기 핵심 파일 및 일반 파일에 대해서 각각 선택적으로 난독화하거나 비밀키를 이용하여 암호화하는 암호화부; 상기 난독화 또는 암호화된 일반 파일을 사용자 클라이언트에 전송하는 통신부; 및 상기 난독화 또는 암호화된 핵심 파일을 저장하는 저장부를 포함하며, 상기 통신부는, 상기 사용자 클라이언트의 요청에 따라 상기 난독화 또는 암호화된 핵심 파일을 상기 사용자 클라이언트에 전송한다.
또한, 상기 통신부는, 상기 비밀키를 상기 클라이언트에 추가적으로 전송할 수 있다.
또한, 상기 통신부는, 상기 비밀키를 SMS 또는 MMS를 이용하여 상기 사용자 클라이언트에 전송할 수 있다.
또한, 상기 사용자 클라이언트는, 상기 비밀키를 이용하여 암호화된 파일을 복호화하는 복호화부, 상기 핵심 파일을 상기 일반 파일과 결합하여 상기 프로그램 파일로 복구하는 파일 결합부, 그리고 상기 복구된 프로그램 파일을 실행시키는 실행부를 포함할 수 있다.
또한, 상기 사용자 클라이언트는, 상기 핵심 파일에 포함된 위·변조 검증 루틴을 이용하여 상기 프로그램 파일의 위·변조 여부를 검증하는 위·변조 검증부; 를 더 포함할 수 있다.
또한, 상기 프로그램 파일은 안드로이드 OS 용의 APK(Android Package) 파일이거나, 상기 일반 파일은 스텁(Stub) Dex 파일이거나, 상기 핵심 파일은 핵심 Dex 파일일 수 있다.
본 발명의 실시예에 따르면, 파일 서버가 사용자 클라이언트에 프로그램 파일을 전송하는 방법에 있어서, 상기 프로그램 파일을 위·변조 행위로부터 보호할 필요가 있는 핵심 코드로 구성된 핵심 파일과 일반 파일로 분리하는 단계;
상기 핵심 파일 및 일반 파일에 대해서 각각 선택적으로 난독화하거나 비밀키를 이용하여 암호화하는 단계; 및 상기 난독화 또는 암호화된 일반 파일은 상기 사용자 클라이언트에 전송하고, 상기 난독화 또는 암호화된 핵심 파일은 서버측에 저장한 후에, 상기 사용자 클라이언트의 요청에 따라 상기 난독화 또는 암호화된 핵심 파일을 상기 사용자 클라이언트에 전송하는 단계: 를 포함한다.
본 발명의 실시예에 따른 프로그램 파일 변조 방지 시스템은, 프로그램 파일을 위·변조 행위로부터 보호할 필요가 있는 핵심 코드로 구성된 핵심 파일과 일반 파일로 분리하여, 상기 핵심 파일 및 일반 파일에 대해서 각각 선택적으로 난독화하거나 비밀키를 이용하여 암호화하며, 상기 난독화 또는 암호화된 일반 파일은 사용자 클라이언트에 전송하고, 상기 난독화 또는 암호화된 핵심 파일은 서버측 저장부에 저장한 후에, 상기 사용자 클라이언트의 요청에 따라 상기 난독화 또는 암호화된 핵심 파일을 상기 사용자 클라이언트에 전송하는 파일 서버; 및 상기 파일 서버로부터 비밀키를 수신하여 상기 핵심 파일 및 일반 파일을 복호화하고, 상기 핵심 파일을 상기 일반 파일과 결합하여 상기 프로그램 파일로 복구하고, 상기 핵심 파일에 포함된 위·변조 검증 루틴을 이용하여 상기 프로그램 파일의 위·변조 여부를 검증하거나 하고, 상기 복구된 프로그램을 실행시키는 사용자 클라이언트; 를 포함한다.
본 발명에 따르면, 현재에 존재하는 난독화 기법을 클라이언트와 서버에 분산적으로 적용함으로써 역공학 난이도를 높일 수 있다. 또한, 위·변조 탐지 루틴이 서버에서 배포하는 프로그램에 삽입되므로, 위·변조 탐지 루틴의 신뢰성을 더욱 높일 수 있다. 또한, 암호화된 핵심 코드의 복호화 비밀키를 동적으로 생성하고, SMS 등의 별도의 채널로 전송함으로써 네트워크 상에서의 키노출을 막을 수 있다.
도 1은 본 발명의 하나의 실시예에 따른 프로그램 파일 변조 방지 시스템에 대한 개략적인 구성도이다.
도 2는 본 발명의 하나의 실시예에 따른 파일 서버의 구성도이다.
도 3은 본 발명의 하나의 실시예에 따른 사용자 클라이언트의 구성도이다.
도 4는 본 발명의 하나의 실시예에 따른 프로그램 파일 전송 방법에 관한 순서도이다.
도 5는 본 발명의 하나의 실시예에 따른 파일 분리에 관한 구성도이다.
이하에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
먼저 본 발명의 하나의 실시예에 따른 파일 서버 및 프로그램 파일 변조 방지 시스템에 대하여 설명한다.
도 1은 본 발명의 하나의 실시예에 따른 프로그램 파일 변조 방지 시스템에 대한 개략적인 구성도이다.
도 1을 참조하면 프로그램 파일 변조 방지 시스템은 파일 서버(100)와 사용자 클라이언트(200)를 포함한다. 이때, 도 1의 각 구성요소들은 네트워크(network, 300)를 통해 연결된다. 예를 들어, 도 1에 도시된 바와 같이, 네트워크(300)를 통하여 파일 서버(100)와 사용자 클라이언트(200)가 연결될 수 있다.
파일 서버(100)는 사용자 클라이언트(200)로 전달할 파일(데이터 또는 프로그램)을 저장하고 있는 서버로서, 다른 사용자 클라이언트들이 함께 파일을 공유할 수 있도록 한다. 파일 서버(100)는 PC, 워크스테이션과 같은 단말 형태로 구현이 가능하다.
사용자 클라이언트(200)는 네트워크(300)를 통하여 원격지의 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 랩톱(Laptop) 등을 포함할 수 있다.
또한, 사용자 클라이언트(200)는 네트워크(300)를 통해 원격지의 서버에 접속할 수 있는 단말로 구현될 수 있다. 사용자 클라이언트(200)는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(smartphone), 스마트 패드(smartpad), 타블렛 PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.
그리고 네트워크(300)는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크(300)의 일 예는, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 3G, 4G, LTE, Wi-Fi 등이 포함되나 이에 한정되지는 않는다.
도 2는 본 발명의 실시예에 따른 파일 서버의 구성도이다.
도 2를 참조하면, 파일 서버(100)는 파일 분리부(110), 암호화부(120), 통신부(130) 및 저장부(140)를 포함한다.
파일 분리부(110)는 프로그램 파일을 핵심 파일과 일반 파일로 분리한다. 여기서 프로그램 파일은 핵심 파일과 일반 파일로 구성된다. 핵심 파일이란 핵심 코드를 포함하는 파일로서, 여기서 핵심 코드란 프로그램의 위·변조를 방지하는데 핵심이 되는 코드를 말한다.
암호화부(120)는 분리된 핵심 파일과 일반 파일에 대해서 각각 선택적으로 난독화 또는 암호화한다.
통신부(130)는 난독화 또는 암호화된 일반 파일 또는 핵심 파일을 사용자 클라이언트(200)에 전송한다.
저장부(140)는 난독화 또는 암호화된 핵심 파일을 파일 서버 내에서 저장한다.
도 3은 본 발명의 실시예에 따른 사용자 클라이언트의 구성도이다.
도 3을 참조하면, 사용자 클라이언트(200)는 복호화부(210), 결합부(220), 검증부(230) 및 실행부(240)를 포함한다.
복호화부(210)는 파일 서버(100)로부터 전송 받은 일반 파일 또는 핵심 파일을 복호화하고, 결합부(220)는 파일 서버(100)측에서 분리되어 전송된 핵심 파일과 일반 파일을 결합한다.
검증부(230)는 복호화된 핵심 파일에 포함된 위·변조 루틴을 이용하여 위·변조 여부를 검증하고, 실행부(240)는 위·변조를 마친 프로그램 파일을 실행한다.
이하에서는 도 4 및 도 5를 참조하여 본 발명의 실시예에 따른 프로그램 파일 전송 방법에 대하여 상세히 설명한다.
도 4는 본 발명의 실시예에 따른 프로그램 파일 전송 방법에 관한 순서도이고, 도 5는 도 4에 따른 프로그램 파일 전송 방법을 예시적으로 나타낸 순서도이다. 특히, 도 5는 안드로이드 OS용의 APK 파일을 분리하는 과정을 예시적으로 설명한 것이다.
도 4를 참조하면, 파일 분리부(100)는 프로그램 파일을 핵심 파일과 일반 파일로 코드로 분리한다(S410). 여기서 핵심 파일이란 핵심 코드로 구성된 파일이며, 핵심 코드는 위·변조의 대상이 되는 코드를 말한다.
파일 분리부(110)는 안드로이드OS용의 APK 파일을 스텁(Stub) Dex 파일과 핵심 Dex 파일로 분리한다. 여기서 스텁 Dex 파일은 Activity class 및 General class로 구성되고, 핵심 Dex 파일은 Core1 class 및 Core2 class로 구성된다.
일반 코드와 핵심 코드를 분리하는 기준, 그리고, 이에 따라 일반 파일과 핵심 파일을 분리하는 기준은 위·변조의 목표가 되는 핵심 코드의 범위에 따라 선택적으로 설정될 수 있다.
또한, 파일 분리부(110)는 분리된 일반 파일인 스텁 Dex 파일 내부에 Stub class 라는 부분을 추가한다. Stub class는 분리된 Dex 파일들이 다시 결합하기 위해 필요한 분리 정보를 포함하고 있다.
암호화부(120)는 분리된 핵심 파일과 일반 파일에 대해서 각각 선택적으로 난독화 또는 암호화한다(S420). 이 경우 암호화부는(120) 비밀키를 사용하여 파일을 암호화할 수 있다. 즉, 암호화부(120)는 각각의 분리된 Dex 파일에 대하여 재명명 난독화, 흐름 제어 난독화, 문자열 난독화, 클래스 암호화를 선택적으로 진행할 수 있다. 이 과정에서 핵심 파일인, 핵심 Dex 파일 내부에 위·변조 검증 루틴인 Tamper Detection이 추가될 수 있다. Tamper Detection은 사용자 클라이언트에서 프로그램 파일의 위·변조 여부를 검증하는데 이용된다.
통신부(130)는 S420에서 난독화 또는 암호화된 일반 파일을 사용자 클라이언트(200)에 전송하며, 또한, 파일 서버(100)는 난독화 또는 암호화된 핵심 파일을 저장부(140)에 저장한다(S430).
도 4 및 도 5에서 Activity class, General class 및 Stub class로 구성된 일반 파일인 Stub Dex 파일은 통신부(130)에 의해 사용자 클라이언트(Client)로 전송되며, Core1 class, Core2 class 및 Tamper Detection으로 구성된 핵심 파일인 핵심 Dex 파일은 파일 서버(Server)의 저장부(140)에 저장된다.
파일 서버(100)의 통신부(130)는 핵심 파일에 대한 사용자 클라이언트(200)의 요청이 있는 경우, 요청의 식별자에 상응하는 Dex 파일 및 상기 암호화에 사용된 비밀키를 사용자 클라이언트(200)에 전송한다. 즉, 통신부(130)는 암호화에 사용된 비밀키를 인터넷이나 SMS 통신 채널을 이용하여 사용자 클라이언트에 전송한다. 이때 전송부(130)는 핵심 루틴의 클래스가 포함된 핵심 파일인 핵심Dex 파일을 사용자 클라이언트에게 전송하는데, 전송되는 핵심 Dex 파일은 상기 비밀키를 이용하여 암호화된 파일이다. 핵심 Dex 파일에는 클라이언트 시그니처 검증 루틴과 핵심 루틴이 포함된다.
복호화부(200)는 파일 서버로부터 전송받은 핵심 Dex 파일을, 상기 비밀키를 이용하여 복호화를 한다(S440).
결합부(220)는 파일 서버(100)측에서 분리된 핵심 파일과 일반 파일을 결합함으로써 핵심 파일과 일반 파일을 분리 이전의 프로그램 파일로 복구한다(S450).
검증부(230)는 핵심 파일 부분에 포함된 위·변조 검증 루틴에 해당되는Tamper Detection 을 이용하여 프로그램 파일의 위·변조 여부를 검증한다(S460).
마지막으로 실행부(240)는 핵심 파일과 일반 파일이 결합되어 복구된 프로그램 파일을 실행한다(S470). 여기서, 사용자가 실행을 요청하는 경우 프로그램 파일이 실행되며, 프로그램 파일의 결합과 동시에 프로그램 파일이 자동으로 실행될 수도 있다.
이와 같이 본 발명의 실시예에 따르면, 현재에 존재하는 난독화 기법을 클라이언트와 서버에 분산적으로 적용함으로써 역공학 난이도를 높일 수 있다. 또한, 위조 또는 변조 탐지 루틴이 서버에서 배포하는 소프트웨어 프로그램에 삽입되므로, 위조 또는 변조 탐지 루틴의 신뢰성을 더욱 높일 수 있다. 또한, 암호화된 핵심 코드의 복호화 비밀키를 동적으로 생성하고, SMS 등의 별도의 채널로 전송함으로써 네트워크 상에서의 키노출을 막을 수 있다.
이제까지 본 발명에 대하여 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 따라서 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허청구범위에 기재된 내용 및 그와 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
100: 파일 서버 110: 파일 분리부
120: 암호화부 130: 통신부
140: 저장부 200: 사용자 클라이언트
210: 복호화부 220: 파일 결합부
230: 위·변조 검증부 240: 실행부
300: 네트워크

Claims (13)

  1. 프로그램 파일을 위·변조 행위로부터 보호할 필요가 있는 핵심 코드로 구성된 핵심 파일과 일반 파일로 분리하는 파일 분리부;
    상기 핵심 파일 및 일반 파일에 대해서 각각 선택적으로 난독화하거나 비밀키를 이용하여 암호화하는 암호화부;
    상기 난독화 또는 암호화된 일반 파일을 사용자 클라이언트에 전송하는 통신부; 및
    상기 난독화 또는 암호화된 핵심 파일을 저장하는 저장부를 포함하며,
    상기 통신부는,
    상기 사용자 클라이언트의 요청에 따라 상기 난독화 또는 암호화된 핵심 파일을 상기 사용자 클라이언트에 전송하는 파일 서버.
  2. 제 1항에 있어서,
    상기 통신부는,
    상기 비밀키를 추가적으로 상기 사용자 클라이언트에 전송하는 파일 서버.
  3. 제 2항에 있어서,
    상기 통신부는,
    상기 비밀키를 SMS 또는 MMS를 이용하여 상기 사용자 클라이언트에 전송하는 파일 서버.
  4. 제 2항에 있어서,
    상기 사용자 클라이언트는,
    상기 비밀키를 이용하여 암호화된 파일을 복호화하는 복호화부;
    상기 핵심 파일을 상기 일반 파일과 결합하여 상기 프로그램 파일로 복구하는 파일 결합부; 및
    상기 복구된 프로그램 파일을 실행시키는 실행부를 포함하는 파일 서버.
  5. 제 4항에 있어서,
    상기 사용자 클라이언트는,
    상기 핵심 파일에 포함된 위·변조 검증 루틴을 이용하여 상기 프로그램 파일의 위·변조 여부를 검증하는 위·변조 검증부; 를 더 포함하는 파일 서버.
  6. 제 1항에 있어서,
    상기 프로그램 파일은 안드로이드 OS 용의 APK(Android Package) 파일이거나, 상기 일반 파일은 스텁(Stub) Dex 파일이거나, 상기 핵심 파일은 핵심 Dex 파일인 파일 서버.
  7. 파일 서버가 사용자 클라이언트에 프로그램 파일을 전송하는 방법에 있어서,
    상기 프로그램 파일을 위·변조 행위로부터 보호할 필요가 있는 핵심 코드로 구성된 핵심 파일과 일반 파일로 분리하는 단계;
    상기 핵심 파일 및 일반 파일에 대해서 각각 선택적으로 난독화하거나 비밀키를 이용하여 암호화하는 단계; 및
    상기 난독화 또는 암호화된 일반 파일은 상기 사용자 클라이언트에 전송하고, 상기 난독화 또는 암호화된 핵심 파일은 서버측에 저장한 후에, 상기 사용자 클라이언트의 요청에 따라 상기 난독화 또는 암호화된 핵심 파일을 상기 사용자 클라이언트에 전송하는 단계: 를 포함하는 프로그램 파일 전송 방법.
  8. 제 7항에 있어서,
    상기 난독화 또는 암호화된 핵심 파일을 상기 사용자 클라이언트에 전송하는 단계에서,
    상기 비밀키를 상기 사용자 클라이언트에 추가적으로 전송하는 프로그램 파일 전송 방법.
  9. 제 8항에 있어서,
    상기 비밀키를 SMS 또는 MMS 를 이용하여 상기 사용자 클라이언트에 전송하는 프로그램 파일 전송 방법.
  10. 제 8항에 있어서,
    상기 사용자 클라이언트는,
    상기 비밀키를 이용하여 상기 핵심 파일 및 일반 파일을 복호화하고, 상기 핵심 파일을 상기 일반 파일과 결합하여 상기 프로그램 파일로 복구하고, 상기 복구된 프로그램 파일을 실행하는 프로그램 파일 전송 방법.
  11. 제 10항에 있어서,
    상기 사용자 클라이언트는,
    상기 핵심 파일에 포함된 위·변조 검증 루틴을 이용하여 상기 프로그램 파일의 위·변조 여부를 검증하는 프로그램 파일 전송 방법.
  12. 제 7항에 있어서,
    상기 프로그램 파일은 안드로이드 OS 용의 APK 파일이거나, 상기 일반 코드는 스텁(Stub) Dex 파일이거나, 상기 핵심 파일은 핵심 Dex 파일인 프로그램 파일 전송 방법.
  13. 프로그램 파일을 위·변조 행위로부터 보호할 필요가 있는 핵심 코드로 구성된 핵심 파일과 일반 파일로 분리하여, 상기 핵심 파일 및 일반 파일에 대해서 각각 선택적으로 난독화하거나 비밀키를 이용하여 암호화하며, 상기 난독화 또는 암호화된 일반 파일은 사용자 클라이언트에 전송하고, 상기 난독화 또는 암호화된 핵심 파일은 서버측 저장부에 저장한 후에, 상기 사용자 클라이언트의 요청에 따라 상기 난독화 또는 암호화된 핵심 파일을 상기 사용자 클라이언트에 전송하는 파일 서버; 및
    상기 파일 서버로부터 비밀키를 수신하여 상기 핵심 파일 및 일반 파일을 복호화하고, 상기 핵심 파일을 상기 일반 파일과 결합하여 상기 프로그램 파일로 복구하고, 상기 핵심 파일에 포함된 위·변조 검증 루틴을 이용하여 상기 프로그램 파일의 위·변조 여부를 검증하거나 하고, 상기 복구된 프로그램을 실행시키는 사용자 클라이언트; 를 포함하는 프로그램 파일 변조 방지 시스템.
KR1020130070480A 2013-06-19 2013-06-19 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템 KR101436536B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130070480A KR101436536B1 (ko) 2013-06-19 2013-06-19 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130070480A KR101436536B1 (ko) 2013-06-19 2013-06-19 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템

Publications (1)

Publication Number Publication Date
KR101436536B1 true KR101436536B1 (ko) 2014-09-01

Family

ID=51759043

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130070480A KR101436536B1 (ko) 2013-06-19 2013-06-19 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템

Country Status (1)

Country Link
KR (1) KR101436536B1 (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101516313B1 (ko) * 2014-10-24 2015-05-11 (주)지란지교시큐리티 소프트웨어 변조 탐지 방법
KR101532763B1 (ko) * 2013-12-26 2015-07-02 주식회사 엔젠소프트 어플리케이션 불법복제 방지 시스템 및 방법
KR20160071060A (ko) * 2014-12-11 2016-06-21 단국대학교 산학협력단 애플리케이션의 소스 코드 보호 방법 및 이를 수행하는 장치
KR20160118920A (ko) * 2015-04-04 2016-10-12 홍동철 Apk 파일 보호 방법, 이를 수행하는 apk 파일 보호 시스템, 및 이를 저장하는 기록매체
KR20160139914A (ko) * 2015-05-29 2016-12-07 삼성에스디에스 주식회사 소프트웨어의 변조 여부 탐지 시스템 및 방법
KR20180004501A (ko) * 2016-07-04 2018-01-12 (주)아이티아이즈 파일 관리 및 데이터 암호화를 기반으로 한 보안 시스템을 구현하는 방법 및 파일 관리 및 데이터 암호화를 기반으로 한 보안 시스템
KR101825402B1 (ko) 2017-03-06 2018-02-06 올댓소프트 코. 애플리케이션 코드의 코드 분리 인증을 수행하는 모바일 장치 및 이를 포함하는 모바일 시스템
US10509616B2 (en) 2015-07-14 2019-12-17 Samsung Electronics Co., Ltd. Method for operating electronic device, and electronic device
KR20210133353A (ko) * 2020-04-28 2021-11-08 주식회사 락인컴퍼니 프로그램 보안 적용방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006164184A (ja) 2004-12-10 2006-06-22 Ntt Docomo Inc プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法
KR20110072111A (ko) * 2009-12-22 2011-06-29 한국저작권위원회 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법
JP4969572B2 (ja) 2007-06-15 2012-07-04 株式会社日立ソリューションズ ファイル処理システム及び方法、並びに、ファイル処理プログラム
KR20130048807A (ko) * 2011-11-03 2013-05-13 한국전자통신연구원 클라우드 컴퓨팅 시스템 및 이를 위한 클라우드 서버관리 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006164184A (ja) 2004-12-10 2006-06-22 Ntt Docomo Inc プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法
JP4969572B2 (ja) 2007-06-15 2012-07-04 株式会社日立ソリューションズ ファイル処理システム及び方法、並びに、ファイル処理プログラム
KR20110072111A (ko) * 2009-12-22 2011-06-29 한국저작권위원회 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법
KR20130048807A (ko) * 2011-11-03 2013-05-13 한국전자통신연구원 클라우드 컴퓨팅 시스템 및 이를 위한 클라우드 서버관리 방법

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101532763B1 (ko) * 2013-12-26 2015-07-02 주식회사 엔젠소프트 어플리케이션 불법복제 방지 시스템 및 방법
KR101516313B1 (ko) * 2014-10-24 2015-05-11 (주)지란지교시큐리티 소프트웨어 변조 탐지 방법
KR20160071060A (ko) * 2014-12-11 2016-06-21 단국대학교 산학협력단 애플리케이션의 소스 코드 보호 방법 및 이를 수행하는 장치
KR101638257B1 (ko) 2014-12-11 2016-07-20 단국대학교 산학협력단 애플리케이션의 소스 코드 보호 방법 및 이를 수행하는 장치
KR20160118920A (ko) * 2015-04-04 2016-10-12 홍동철 Apk 파일 보호 방법, 이를 수행하는 apk 파일 보호 시스템, 및 이를 저장하는 기록매체
KR102433011B1 (ko) 2015-04-04 2022-08-19 홍동철 Apk 파일 보호 방법, 이를 수행하는 apk 파일 보호 시스템, 및 이를 저장하는 기록매체
KR20160139914A (ko) * 2015-05-29 2016-12-07 삼성에스디에스 주식회사 소프트웨어의 변조 여부 탐지 시스템 및 방법
US10509616B2 (en) 2015-07-14 2019-12-17 Samsung Electronics Co., Ltd. Method for operating electronic device, and electronic device
KR101919488B1 (ko) * 2016-07-04 2018-11-19 (주)아이티아이즈 파일 관리 및 데이터 암호화를 기반으로 한 보안 시스템을 구현하는 방법 및 파일 관리 및 데이터 암호화를 기반으로 한 보안 시스템
KR20180004501A (ko) * 2016-07-04 2018-01-12 (주)아이티아이즈 파일 관리 및 데이터 암호화를 기반으로 한 보안 시스템을 구현하는 방법 및 파일 관리 및 데이터 암호화를 기반으로 한 보안 시스템
KR101825402B1 (ko) 2017-03-06 2018-02-06 올댓소프트 코. 애플리케이션 코드의 코드 분리 인증을 수행하는 모바일 장치 및 이를 포함하는 모바일 시스템
KR20210133353A (ko) * 2020-04-28 2021-11-08 주식회사 락인컴퍼니 프로그램 보안 적용방법
KR102358101B1 (ko) * 2020-04-28 2022-02-08 주식회사 락인컴퍼니 프로그램 보안 적용방법

Similar Documents

Publication Publication Date Title
KR101436536B1 (ko) 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템
CN105426708B (zh) 一种Android系统的应用程序的加固方法
CN102196375B (zh) 保护带外消息
CN103797489A (zh) 用于安全地将程序执行绑定到且节点锁定到受信任的签名授权机构的系统和方法
Piao et al. Server‐based code obfuscation scheme for APK tamper detection
CN103457733A (zh) 一种云计算环境数据共享方法和系统
US20240031129A1 (en) Data encryption method, data decryption method, terminal, and storage medium
US20160330030A1 (en) User Terminal For Detecting Forgery Of Application Program Based On Hash Value And Method Of Detecting Forgery Of Application Program Using The Same
CN105320535A (zh) 一种安装包的校验方法、客户端、服务器及系统
Backes et al. X-pire 2.0: a user-controlled expiration date and copy protection mechanism
CN109510702A (zh) 一种基于计算机特征码的密钥存储及使用的方法
CN104426849A (zh) 一种实现数据安全保护的方法及系统
EP3720042B1 (en) Method and device for determining trust state of tpm, and storage medium
KR20170022023A (ko) 프로그램 실행 코드를 난독화하기 위한 장치 및 방법, 난독화된 프로그램 실행 코드를 복구하여 실행하기 위한 장치 및 방법
CN112115430A (zh) 一种apk的加固方法、电子设备及存储介质
CN105187379B (zh) 基于多方互不信任的密码拆分管理方法
KR101414186B1 (ko) 실시간 데이터 유출 방지 방법
CN103605927A (zh) 一种基于嵌入式Linux系统实现加密和解密方法
CN103532712A (zh) 数字媒体文件保护方法、系统及客户端
KR101532763B1 (ko) 어플리케이션 불법복제 방지 시스템 및 방법
KR101286767B1 (ko) 동적 해싱을 이용한 애플리케이션 프로그램 검증 방법
Goulao et al. Shareiff: A sticky policy middleware for self-destructing messages in android applications
KR20130109560A (ko) 모바일 디바이스의 데이터베이스 암호화 방법
Sarode et al. Data Encryption Security in Mobile and Cloud Computing Environments
KR101673610B1 (ko) 애플리케이션에 대한 리소스 보호 시스템 및 방법

Legal Events

Date Code Title Description
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170828

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180827

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190826

Year of fee payment: 6