KR101642267B1 - System for preventing forgery of application and method therefor - Google Patents

System for preventing forgery of application and method therefor Download PDF

Info

Publication number
KR101642267B1
KR101642267B1 KR1020140168203A KR20140168203A KR101642267B1 KR 101642267 B1 KR101642267 B1 KR 101642267B1 KR 1020140168203 A KR1020140168203 A KR 1020140168203A KR 20140168203 A KR20140168203 A KR 20140168203A KR 101642267 B1 KR101642267 B1 KR 101642267B1
Authority
KR
South Korea
Prior art keywords
file
application
forgery
verification code
verification
Prior art date
Application number
KR1020140168203A
Other languages
Korean (ko)
Other versions
KR20160065261A (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 KR1020140168203A priority Critical patent/KR101642267B1/en
Publication of KR20160065261A publication Critical patent/KR20160065261A/en
Application granted granted Critical
Publication of KR101642267B1 publication Critical patent/KR101642267B1/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]
    • 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/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level

Landscapes

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

Abstract

본 발명은 앱 위변조 방지시스템 및 그 방법에 관한 것으로서, 위변조가 되어서는 안되는 중요한 업무를 처리하는 클래스를 일반 클래스와 분리관리하고, 앱과 서버간 검증을 통한 앱의 위변조를 방지하기 위한 앱 위변조 방지시스템 및 그 방법에 관한 것이다.
상술한 바에 의하면, 어플리케이션 앱 빌드시 위변조가 되어서는 안되는 중요한 업무를 처리하는 클래스를 일반 클래스와 분리하여 관리하고, 앱과 서버간 검증을 통해 위조되거나 변조된 어플리케이션을 BL 등록처리하여 연결을 종료시켜 현재 연결의 정당성을 관리할 수 있는 효과가 있다.
The present invention relates to a system and method for preventing forgery and falsification of an application, and more particularly to a system and method for preventing forgery and falsification of an application for preventing forgery and falsification of an application through verification between an application and a server, System and method thereof.
According to the above description, a class that handles important tasks that should not be falsified when building an application program is managed separately from a general class, and a BL registration process is performed for the forged or modulated application through verification between the application and the server, It is possible to manage the legitimacy of the current connection.

Description

앱 위변조 방지시스템 및 그 방법{System for preventing forgery of application and method therefor}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a system for preventing forgery of an application,

본 발명은 앱 위변조 방지시스템 및 그 방법에 관한 것으로서, 더욱 상세하게는 위변조가 되어서는 안되는 중요한 업무를 처리하는 클래스를 일반 클래스와 분리관리하고, 앱과 서버간 검증을 통한 앱의 위변조를 방지하기 위한 앱 위변조 방지시스템 및 그 방법에 관한 것이다.
The present invention relates to a system and a method for preventing forgery of an application, and more particularly, to a system and method for preventing forgery and tampering of an app through verification between an app and a server, And a method thereof.

종래, 도 1에 도시된 바와 같이, 한국공개특허 10-2007-0111816, 서버에서 위변조 차단칩이나 암호화 소프트웨어 애플리케이션을 통해 위변조를 차단하는 기술 외에 다수 출원 및 공개된 바 있다.Conventionally, as shown in FIG. 1, Korean Patent Laid-Open No. 10-2007-0111816 discloses a technology for blocking forgery and corruption through a forgery-inhibiting chip or an encryption software application in a server.

도 2는 앱 빌드과정을 나타낸 도면이다. 도 2에 도시된 바와 같이, 안드로이드 앱 빌드 과정은 N개의 자바 class(N은 자연수)로 이루어진 class 파일을 dex파일 형식으로 생성하고, 앱 빌더와 jarsigner를 통해 어플리케이션 앱을 생성한다.2 is a diagram illustrating an application building process. As shown in FIG. 2, the Android app building process creates a class file having N Java classes (N is a natural number) in a dex file format, and creates an application app through an app builder and a jarsigner.

도 3은 앱 위변조 과정설명을 위한 도면이다. 도 3에 도시된 바와 같이, 안드로이드 앱 위변조 과정은 APK파일의 class.dex파일을 dex2jar를 통해 class 파일로 추출하고, 추출된 class파일은 jad 툴을 이용하여 java 소스 파일로 디컴파일하며, java 소스 수정 후 apk 툴을 이용하여 APK'로 리패키징하게 된다.3 is a diagram for explaining an app forgery process. As shown in FIG. 3, the Android application forgiving process extracts the class.dex file of the APK file as a class file through dex2jar, decompiles the extracted class file into a java source file using the jad tool, After modifying, repackage to APK 'using apk tool.

최근, 스마트폰이나 태블릿 PC등과 같은 휴대용 기기가 널리 보급되면서, 이러한 휴대용 기기에서 사용 가능한 다양한 어플리케이션에 대한 관심이 증가하고 있다. Recently, with the widespread use of portable devices such as smart phones and tablet PCs, interest in various applications available in such portable devices is increasing.

스마트폰이나 태블릿 PC등과 같은 휴대용 기기를 사용하는 사용자는 자신의 휴대용 기기를 통해 소정의 어플리케이션 제공 서버에 접속하여 게임이나 온라인 금융 서비스 등과 같은 다양한 어플레케이션을 다운로드받아 사용할 수 있다.A user who uses a portable device such as a smart phone or a tablet PC can access a predetermined application providing server through his portable device and download and use various applications such as a game and an online financial service.

이렇게 어플리케이션의 활용이 증가하면서 어플리케이션을 불법으로 위조하거나 변조하여 사용하는 행위도 증가하고 있다. 이러한 어플리케이션이 불법으로 위변조되는 경우, 휴대용 기기 사용자의 개인 정보가 무방비로 노출될 수 있고, 어플리케이션 저작권이 침해되는 경우가 발생할 수 있다. 지난해 국내 인기 모바일게임의 소스코드를 해킹해 이를 바탕으로 불법복제한 사건이 발생했다. As the use of such applications increases, illegal forgery or alteration of applications is increasingly used. If such an application is forged or illegally altered, personal information of the user of the portable device may be exposed with no protection, and the copyright of the application may be infringed. Last year, the hacking of the source code of popular mobile games in Korea caused illegal copying.

또한, 어플리케이션을 불법으로 사용하기 위해, 스마트폰이나 태블릿 PC 등을 루팅(Rooting)하거나 탈옥(Jailbreak)하는 등 다양한 해킹 기술이 등장하고 있다. 특히, 모바일 뱅킹과 같은 금융 애플리케이션의 경우 금융당국 규제상 해킹 또는 루팅된 스마트폰에서는 사용할 수 없는데 이를 위변조한 앱을 통해 이러한 정책을 우회하고 있다. 이때 앱 안에 금융정보 유출과 같은 악의적인 기능을 삽입, 위변조해 배포한다면 심각한 2차 피해로 이어질 가능성이 있다.In addition, various hacking technologies are emerging such as rooting or jailbreaking of smartphones and tablet PCs to illegally use applications. In particular, financial applications such as mobile banking can not be used by hacked or routed smartphones because of financial authorities regulations. At this time, if malicious functions such as financial information leakage are inserted in the app and it is forged and distributed, it could lead to serious secondary damage.

따라서, 어플리케이션의 위조나 변조를 방지할 수 있고, 휴대용 기기의 해킹을 통해 불법적으로 어플리케이션을 사용하는 것을 방지할 수 있는 기술에 대한 연구가 필요한 실정이다.
Accordingly, there is a need for a technique that can prevent forgery or alteration of an application, and can prevent unauthorized use of an application through hacking of a portable device.

본 발명의 목적은 전술한 점들을 감안하여 안출된 것으로, 어플리케이션 빌드시 위변조가 되어서는 안되는 중요한 업무를 처리하는 클래스를 일반 클래스와 분리하여 관리하는 앱 위변조 방지시스템 및 그 방법을 제공함에 있다.It is an object of the present invention to provide an application forgery prevention system and method for managing a class for handling important business that should not be falsified when building an application, separately from a general class.

그리고 앱과 서버간 검증을 통해 위조되거나 변조된 어플리케이션을 BL 등록처리하여 연결을 종료시키는 앱 위변조 방지시스템 및 그 방법을 제공함에도 있다.
Also, there is provided a system for preventing forgery and falsification of an application and a method thereof for terminating a BL registration process of an application that has been falsified or altered through verification between an application and a server.

본 발명은 어플리케이션 앱을 제1 파일 및 상기 제1 파일을 실행하기 위한 제2 파일로 분리하는 분리부; 제1 파일의 위변조 여부를 검증하기 위한 검증코드를 생성하여 제1 파일에 추가하도록 하는 검증서버부; 및 검증코드가 추가된 제1 파일을 암호화하여 검증서버부에 저장하고, 제1 파일을 제외한 어플리케이션 앱을 외부로 배포하는 앱 생성부;를 포함한다.The present invention provides a data processing apparatus including: a separation unit that separates an application application into a first file and a second file for executing the first file; A verification server for generating a verification code for verifying whether the first file is falsified or not and adding the verification code to the first file; And an application generating unit for encrypting and storing the first file to which the verification code is added in the verification server unit and distributing the application application except for the first file to the outside.

바람직하게는 제1 파일은 위변조 방지 대상파일이다. 분리부는 어플리케이션 앱의 위변조를 방지하기 위한 제1 파일 및 상기 제1 파일을 실행하기 위한 제2 파일로 분리하여 dex파일을 생성하는 dex파일 생성모듈; 및 dex파일 생성시, 검증서버부로부터 수신하는 검증코드를 제1 파일에 추가하는 위변조 감지모듈;을 더 포함한다.Preferably, the first file is a file for forgery prevention. A dex file generation module for generating a dex file by separating a first file for preventing forgery and falsification of an application application and a second file for executing the first file; And a forgery and falsification detection module for adding the verification code received from the verification server to the first file when the dex file is generated.

검증서버부는 어플리케이션 앱 실행시, 일회용 위변조 검증코드를 생성하는 검증코드 생성모듈; 상기 일회용 위변조 검증코드에 해당하는 암호화된 제1 파일을 어플리케이션 앱을 실행하는 사용자 단말기로 전달하여 상기 제1 파일이 동적 로딩되도록 하는 제1 파일 전송모듈; 및 사용자 단말기의 어플리케이션 앱의 동적 로딩 과정에서 수신하는 일회용 위변조 검증코드를 기등록된 값과 비교하여 위변조를 검증하는 검증모듈;을 포함한다. 이때, 앱 생성부는 검증코드가 추가된 제1 파일을 암호화하여 상기 검증서버부에 저장하도록 하는 암호화모듈; 및 제2 파일로 구성된 어플리케이션 앱을 외부로 배포하는 앱 배포모듈;을 포함한다.The verification server unit includes: a verification code generation module that generates a one-time forgery verification code when the application program is executed; A first file transfer module for transferring the encrypted first file corresponding to the disposable forgery verification code to a user terminal that executes the application program to dynamically load the first file; And a verification module for comparing the one-time forgery verification code received in the dynamic loading process of the application app of the user terminal with a pre-registered value to verify forgery and falsification. In this case, the app generating unit encrypts the first file to which the verification code is added and stores the encrypted first file in the verification server unit. And an application distribution module for externally distributing an application application composed of a second file.

한편, 앱 위변조 방지시스템을 이용한 방법은 (a) 어플리케이션 앱을 제1 파일 및 상기 제1 파일을 실행하기 위한 제2 파일로 분리하는 단계; (b) 상기 제1 파일의 위변조 여부를 검증하기 위한 검증코드를 생성하여 상기 제1 파일에 추가하는 단계; 및 (c) 상기 검증코드가 추가된 제1 파일을 암호화하여 저장하고, 상기 제1 파일을 제외한 어플리케이션 앱을 외부로 배포하는 단계;를 포함한다.Meanwhile, a method using an app forgery prevention system includes the steps of: (a) separating an application application into a first file and a second file for executing the first file; (b) generating a verification code for verifying whether the first file is forged or falsified and adding the verification code to the first file; And (c) encrypting and storing the first file to which the verification code is added, and distributing the application application excluding the first file to the outside.

바람직하게 제1 파일은 위변조 방지 대상파일이고, 제 (a) 단계는 (a-1) 상기 어플리케이션 앱의 위변조를 방지하기 위한 제1 파일 및 상기 제1 파일을 실행하기 위한 제2 파일로 분리하여 dex파일을 생성하는 단계; 및 (a-2) 상기 dex파일 생성시, 검증서버부로부터 수신하는 검증코드를 상기 제1 파일에 추가하는 단계;를 더 포함하고, 제 (b) 단계는 (b-1) 상기 어플리케이션 앱 실행시, 일회용 위변조 검증코드를 생성하는 단계; (b-2) 상기 일회용 위변조 검증코드에 해당하는 암호화된 제1 파일을 상기 어플리케이션 앱을 실행하는 사용자 단말기로 전달하여 상기 제1 파일이 동적 로딩되도록 하는 단계; 및 (b-3) 상기 사용자 단말기의 어플리케이션 앱의 동적 로딩 과정에서 수신하는 일회용 위변조 검증코드를 기등록된 값과 비교하여 위변조를 검증하는 단계;를 더 포함한다.Preferably, the first file is a forgery-prevention object file, and the step (a) comprises the steps of (a-1) separating into a first file for preventing forgery and falsification of the application application and a second file for executing the first file dex file; And (a-2) adding the verification code received from the verification server unit to the first file when the dex file is generated, wherein step (b) further comprises: (b-1) Generating a one-time forgery verification code; (b-2) transmitting an encrypted first file corresponding to the disposable forgery verification code to a user terminal that executes the application program, so that the first file is dynamically loaded; And (b-3) verifying the forgery and falsification by comparing the one-time forgery verification code received during the dynamic loading of the application app of the user terminal with a pre-registered value.

상기 제 (c) 단계는 (c-1) 상기 검증코드가 추가된 제1 파일을 암호화하여 상기 검증서버부에 저장하도록 하는 단계; 및 (c-2) 상기 제2 파일로 구성된 어플리케이션 앱을 외부로 배포하는 단계;를 포함한다.
Wherein the step (c) comprises the steps of: (c-1) encrypting the first file to which the verification code is added and storing the encrypted first file in the verification server; And (c-2) distributing an application program composed of the second file to the outside.

본 발명은 어플리케이션 앱 빌드시 위변조가 되어서는 안되는 중요한 업무를 처리하는 클래스를 일반 클래스와 분리하여 관리하고, 앱과 서버간 검증을 통해 위조되거나 변조된 어플리케이션을 BL 등록처리하여 연결을 종료시켜 현재 연결의 정당성을 관리할 수 있는 효과가 있다.
The present invention separates and manages a class that handles important tasks that should not be falsified when building an application application, performs BL registration processing for falsified or modulated applications through verification between an application and a server, It is possible to manage the legitimacy of the system.

도 1은 종래기술의 위변조 차단기능을 구비한 시스템을 설명하는 도면이고,
도 2는 앱 빌드과정을 나타낸 도면이며,
도 3은 앱 위변조 과정설명을 위한 도면이고,
도 4는 본 발명의 일실시예에 따른 앱 위변조 방지시스템을 나타낸 도면이며,
도 5는 본 발명의 일실시예에 따른 앱 위변조 방지시스템의 위변조 방지를 위한 앱 빌드 절차를 나타낸 도면이고,
도 6은 본 발명의 일실시예에 따른 앱 위변조 방지시스템의 앱 위변조 검증 절차를 나타낸 도면이며,
도 7은 본 발명의 일실시예에 따른 앱 위변조 방지시스템을 이용한 방법에 대한 전체 흐름도이다.
FIG. 1 is a diagram illustrating a system having a forgery-and-fade blocking function according to the related art,
2 is a diagram illustrating an application building process,
3 is a diagram for explaining an app forgery process,
4 is a diagram illustrating an apparatus for forgery prevention according to an embodiment of the present invention,
5 is a diagram illustrating an app building procedure for preventing forgery and falsification of an app forgery prevention system according to an embodiment of the present invention,
6 is a diagram illustrating an app forgery verification procedure of an app forgery prevention system according to an embodiment of the present invention,
FIG. 7 is an overall flowchart of a method using an app forgery prevention system according to an embodiment of the present invention.

본 발명의 구체적 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다. 이에 앞서 본 발명에 관련된 공지 기능 및 그 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 구체적인 설명을 생략하였음에 유의해야 할 것이다.Specific features and advantages of the present invention will become more apparent from the following detailed description based on the accompanying drawings. It is to be noted that the detailed description of known functions and constructions related to the present invention is omitted when it is determined that the gist of the present invention may be unnecessarily blurred.

이하, 첨부된 도면을 참조하여 본 발명을 상세하게 설명한다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention will now be described in detail with reference to the accompanying drawings.

도 4는 본 발명의 일실시예에 따른 앱 위변조 방지시스템을 나타낸 도면이다.4 is a diagram illustrating an app forgery prevention system according to an embodiment of the present invention.

도 4에 도시된 바와 같이, 본 발명에 따른 앱 위변조 방지시스템은 분리부(100), 검증서버부(200), 앱 생성부(300)를 포함한다.4, the app forgery prevention system according to the present invention includes a separation unit 100, a verification server unit 200, and an application generation unit 300.

분리부(100)는 어플리케이션 앱을 제1 파일 및 상기 제1 파일을 실행하기 위한 제2 파일로 분리하는 구성이다. 여기서, 제1 파일은 위변조 방지 대상파일로, 어플리케이션 앱 개발시 위변조가 되어서는 안되는 중요한 업무를 처리하는 클래스들을 구반하여 구현한다. 이러한 제1 파일은 Core Class이고, 제2 파일은 Normal Class이다.The separating unit 100 separates the application file into a first file and a second file for executing the first file. Here, the first file is a file for forgery prevention and implements by classifying classes that handle important tasks that should not be falsified when an application is developed. The first file is Core Class, and the second file is Normal Class.

이러한 분리부(100)는 dex파일 생성모듈(110)과 위변조 감지모듈(120)을 포함할 수 있다.The separation unit 100 may include a dex file generation module 110 and a forgery and falsification detection module 120.

dex파일 생성모듈(110)은 어플리케이션 앱의 위변조를 방지하기 위한 제1 파일 및 상기 제1 파일을 실행하기 위한 제2 파일로 분리하여 dex파일을 생성하는 구성이다. 위변조 감지모듈(120)은 dex파일 생성시, 검증서버부로부터 수신하는 검증코드를 상기 제1 파일에 추가할 수 있다.
The dex file generation module 110 generates a dex file by separating the dex file into a first file for preventing forgery and falsification of an application application and a second file for executing the first file. When the dex file is generated, the forgery and alteration detection module 120 may add the verification code received from the verification server unit to the first file.

검증서버부(200)는 제1 파일의 위변조 여부를 검증하기 위한 검증코드를 생성하여 상기 제1 파일에 추가하도록 할 수 있다. 이러한 검증서버부(200)는 검증코드 생성모듈(210), 제1 파일 전송모듈(220), 검증모듈(230)을 포함할 수 있다.The verification server unit 200 may generate a verification code for verifying whether the first file is forged or falsified and add the verification code to the first file. The verification server unit 200 may include a verification code generation module 210, a first file transmission module 220, and a verification module 230.

검증코드 생성모듈(210)은 어플리케이션 앱 실행시, 일회용 위변조 검증코드를 생성할 수 있다.The verification code generation module 210 can generate a one-time forgery verification code when the application application is executed.

제1 파일 전송모듈(220)은 일회용 위변조 검증코드에 해당하는 암호화된 제1 파일을 상기 어플리케이션 앱을 실행하는 사용자 단말기로 전달하여 상기 제1 파일이 동적 로딩되도록 할 수 있다.The first file transfer module 220 may forward the encrypted first file corresponding to the one-time forgery verification code to the user terminal that executes the application program, so that the first file is dynamically loaded.

검증모듈(230)은 사용자 단말기의 어플리케이션 앱의 동적 로딩 과정에서 수신하는 일회용 위변조 검증코드를 기등록된 값과 비교하여 위변조를 검증할 수 있다.
The verification module 230 can verify the forgery and corruption by comparing the received one-time forgery verification code with the pre-registered value during the dynamic loading of the application app of the user terminal.

앱 생성부(300)는 검증코드가 추가된 제1 파일을 암호화하여 상기 검증서버부에 저장하고, 상기 제1 파일을 제외한 어플리케이션 앱을 외부로 배포할 수 있는 구성이다. 이러한 기능을 수행하기 위한 앱 생성부(300)는 암호화모듈(310), 앱 배포모듈(320)을 포함할 수 있다.The application generating unit 300 can encrypt the first file to which the verification code is added, store the encrypted first file in the verification server unit, and distribute the application program except for the first file to the outside. The application generation unit 300 for performing these functions may include an encryption module 310 and an application distribution module 320.

암호화모듈(310)은 검증코드가 추가된 제1 파일을 암호화하여 상기 검증서버부에 저장하도록 하는 구성이다.The encryption module 310 encrypts the first file to which the verification code is added and stores the encrypted first file in the verification server unit.

앱 배포모듈(320)은 제1 파일을 제외한 제2 파일로 구성된 어플리케이션 앱을 외부로 배포하는 구성이다.
The application distribution module 320 distributes the application application configured by the second file except for the first file to the outside.

도 5는 본 발명의 일실시예에 따른 앱 위변조 방지시스템의 위변조 방지를 위한 앱 빌드 절차를 나타낸 도면이다. 5 is a diagram illustrating an app building process for preventing forgery and falsification of an app forgery prevention system according to an embodiment of the present invention.

도 5에 도시된 바와 같이, 어플리케이션 앱 개발시 위변조가 되어서는 안되는 중요한 업무를 처리하는 클래스들을 구분하여 제1 파일인 Core Class로 구현한다.As shown in FIG. 5, classes for processing important tasks that should not be falsified during application application development are classified and implemented as Core Class, which is a first file.

빌드 과정에서 Normal Class와 Core Class들을 분리하여 dex파일을 생성하고, Core Class의 dex 파일 생성시 사전 컴파일된 Tamper Detection.class(검증코드와 인증프로세스가 구현된 위변조 검증용 클래스)가 추가된다.In the build process, the dex file is created by separating the normal class and the core class, and Tamplex Detection.class (the class for forgery verification implemented with the verification code and the authentication process) precompiled when generating the dex file of the core class is added.

이때, Core Classes.dex 파일은 JAR포맷으로 압축하여 별도 서버에 보관할 수 있다. 그리고 APK 파일은 Core Class들이 누락된 채로 생성되어 사용자들에게 배포된다.
At this time, the Core Classes.dex file can be compressed in the JAR format and stored on a separate server. The APK file is created with core classes missing and distributed to users.

도 6은 본 발명의 일실시예에 따른 앱 위변조 방지시스템의 앱 위변조 검증 절차를 나타낸 도면이다. 6 is a diagram illustrating an app forgery verification procedure of an app forgery prevention system according to an embodiment of the present invention.

도 6에 도시된 바와 같이, 앱과 서버간 앱 위변조 검증절차를 설명하면 다음과 같다. As shown in FIG. 6, the app forgery verification procedure between the app and the server will be described as follows.

사용자 단말기에서 어플리케이션 앱을 실행하면, 어플리케이션 앱의 사용자 정보 또는 사용자 단말기의 고유정보에 따라 Core Class를 요청하고, 서버에서는 Core Class제공 및 위변조 검증을 준비한다. When the application application is executed in the user terminal, the core class is requested according to the user information of the application application or the unique information of the user terminal, and the server provides Core Class and prepares forgery verification.

여기서, Core Class 전송시 OTP(일회용 검증코드 : One Time Password)를 요청한 앱정보와 함께 서버에 등록할 수 있다. Here, when transmitting the Core Class, it is possible to register the OTP (one-time verification code: One Time Password) together with the requested application information in the server.

다음으로 Core Class 다운로드 위치를 전송하면 사용자 단말기에 Core Class가 다운로드되어 Core Class 동적 로딩을 실행한다.Next, when the download location of the Core Class is transmitted, the Core Class is downloaded to the user terminal and the Core Class dynamic loading is executed.

다음으로 Core Class와 함께 동적 로딩된 위변조 검증 클래스는 Core Class파일을 삭제하고, 서버에 검증코드를 이용한 위변조 검증을 요청한다. 다음으로 서버에서는 위변조 검증을 판단하는데, 동적 로딩된 Core Class가 보내준 OTP를 등록된 값과 비교하여 현재 연결의 정당성을 관리한다. Next, the dynamically loaded forgery verification class together with the Core class deletes the Core class file and requests the server for forgery verification using the verification code. Next, the server judges the forgery verification, and manages the validity of the current connection by comparing the OTP sent from the dynamic loaded Core Class with the registered value.

이때, 위변조 검증에 실패하면 사용자 또는 USIM 또는 단말기에 대한 차단처리(BL, 블록처리)를 서버에 등록하고, 어플리케이션 앱 연결을 종료한다. At this time, if forgery verification fails, the blocking process (BL, block process) for the user or the USIM or the terminal is registered in the server and the application application connection is terminated.

그리고 위변조 검증에 성공하면 사용자 단말기의 어플리케이션 앱에서 검증결과를 확인하여 검증에 성공하면 어플리케이션 앱 연결을 유지하고, 위변조 검증 실패이거나 서버가 미응답인 경우 어플리케이션 앱 연결을 종료한다.
If the verification is successful, the application application of the user terminal verifies the verification result. If the verification is successful, the application application connection is maintained. If the forgery verification is unsuccessful or the server is not responded, the application application connection is terminated.

본 발명의 일실시예에 따른 앱 위변조 방지시스템 및 그 방법은 어플리케이션 앱 영역에서 살펴보면 다음과 같다.The app forgery prevention system and method according to an embodiment of the present invention will be described in the application app area as follows.

어플리케이션 앱을 Core Class(앱에서 보안성 유지와 중요한 업무 로직을 처리하는 핵심 클래스)와 이러한 Core Class를 실행하는 Launcher로 분리하여 빌드를 수행한다. Build applications by separating application apps into Core Class (the core class for maintaining security and critical business logic in the app) and launchers that run those core classes.

빌드 과정에서 Core Class 위변조 여부를 검증하기 위한 검증코드와 인증 프로세스를 제공하는 Tamper Detection Class를 추가하고, 분리한 Core Class들은 dex포맷으로 jar 압축하여 서버에서 관리하고 Launcher만 APK형태로 사용자에게 배포/설치된다. In the build process, Tamper Detection Class, which provides the verification code and authentication process to verify whether the Core Class is forged or modified, is added. The separated Core classes are managed by the server by jar compression in the dex format, and only the Launcher is distributed / Respectively.

Core Class는 앱 실행 후에 서버에서 다운로드 받아 단말기의 운영체제에 동적되고, 동적 로딩된 Core Class 내부에 저장된 위변조 검증코드(OTP)와 인증 프로세스를 이용하여 서버와 위변조 여부를 검증을 실시하고, 위변조 검증 실패시 해당 사용자 BL처리(사용 제한) 후 앱 강제 종료를 한다.
The Core Class is downloaded from the server after the application is executed, and is dynamic with the operating system of the terminal. The core class is used to verify whether it is falsified or not by using the forged verification code (OTP) and authentication process stored in the core class, The user is forced to terminate the application after BL processing (use restriction).

본 발명의 일실시예에 따른 앱 위변조 방지시스템 및 그 방법은 서버 영역에서 살펴보면 다음과 같다. 각 앱별로 위변조 검증코드의 수만큼 Core Classes.jar 파일을 관리할 수 있다. 여기서, Core Classes.jar은 Core Class들과 Tamper Detection Class를 포함한 dex파일을 JAR포맷으로 압축한 파일이다.The app forgery prevention system and method according to an embodiment of the present invention will be described in the server domain as follows. You can manage as many Core Classes.jar files as there are forged code verification codes for each app. Here, Core Classes.jar is a file that compresses dex file including Core Classes and Tamper Detection Class into JAR format.

어플리케이션 앱 실행시 마다 일회용 위변조 검증코드를 선택하고 선택된 검증코드에 해당하는 Core Classes.jar파일을 사용자 단말기에 다운로딩되도록 처리하고, 앱이 전송한 검증코드와 서버의 검증코드를 비교하여 Core Class 위변조 여부를 검증한다. 이때, 위변조 검증 실패시 해당 사용자 또는 USIM 또는 단말기에 대한 BL처리를 수행한다.
Whenever an application is executed, it selects a one-time forgery verification code, processes the Core Classes.jar file corresponding to the selected verification code to be downloaded to the user terminal, compares the verification code transmitted by the application with the verification code of the server, ≪ / RTI > At this time, if the forgery or falsification verification fails, the BL processing is performed for the corresponding user or the USIM or the terminal.

도 7은 본 발명의 일실시예에 따른 앱 위변조 방지시스템을 이용한 방법에 대한 전체 흐름도이다. 앱 위변조 방지시스템을 이용한 방법은 도 7을 참조하여 설명하면 다음과 같다.FIG. 7 is an overall flowchart of a method using an app forgery prevention system according to an embodiment of the present invention. A method using the app forgery prevention system will be described with reference to FIG.

우선, 각 단계는 앱 위변조 방지시스템의 제어수단을 이용한 단계로서, 우선, 어플리케이션 앱을 제1 파일 및 상기 제1 파일을 실행하기 위한 제2 파일로 분리한다(a). 여기서, 제 (a) 단계는 어플리케이션 앱의 위변조를 방지하기 위한 제1 파일 및 상기 제1 파일을 실행하기 위한 제2 파일로 분리하여 dex파일을 생성하는 단계(a-1)와, 상기 dex파일 생성시, 검증서버부로부터 수신하는 검증코드를 상기 제1 파일에 추가하는 단계(a-2)를 더 포함할 수 있다.First, each step is a step using a control means of an app forgery prevention system. First, the application application is divided into a first file and a second file for executing the first file (a). The step (a) includes: (a-1) generating a dex file by dividing the application file into a first file for preventing forgery and falsification of application application and a second file for executing the first file; (A-2) adding, to the first file, a verification code received from the verification server unit upon creation.

다음으로 제1 파일의 위변조 여부를 검증하기 위한 검증코드를 생성하여 제1 파일에 추가한다(b). 여기서, 제 (b) 단계는 어플리케이션 앱 실행시, 일회용 위변조 검증코드를 생성하는 단계(b-1)와, 일회용 위변조 검증코드에 해당하는 암호화된 제1 파일을 어플리케이션 앱을 실행하는 사용자 단말기로 전달하여 제1 파일이 동적 로딩되도록 하는 단계(b-2)와, 사용자 단말기의 어플리케이션 앱의 동적 로딩 과정에서 수신하는 일회용 위변조 검증코드를 기등록된 값과 비교하여 위변조를 검증하는 단계(b-3)를 더 포함할 수 있다.Next, a verification code for verifying whether or not the first file is forged or falsified is generated and added to the first file (b). The step (b) includes: (b-1) generating a one-time forgery verification code when the application program is executed, and transmitting the encrypted first file corresponding to the one-time forgery verification code to a user terminal (B-2) causing the first file to be dynamically loaded; and (b-3) verifying the forgery and falsification by comparing the disposable forgery verification code received in the dynamic loading process of the application app of the user terminal with a pre- ).

그리고 검증코드가 추가된 제1 파일을 암호화하여 저장하고, 제1 파일을 제외한 어플리케이션 앱을 외부로 배포하는 단계를 포함한다(c). 제 (c) 단계는 검증코드가 추가된 제1 파일을 암호화하여 상기 검증서버부에 저장하도록 하는 단계(c-1)와, 제2 파일로 구성된 어플리케이션 앱을 외부로 배포하는 단계(c-2)를 포함할 수 있다.
(C) encrypting and storing the first file to which the verification code is added, and distributing the application application except for the first file to the outside. (C-1) of encrypting the first file to which the verification code is added and storing the encrypted first file in the verification server unit, (c-2) distributing the application file composed of the second file to the outside ).

상술한 본 발명에 의하면, 어플리케이션 앱 빌드시 위변조가 되어서는 안되는 중요한 업무를 처리하는 클래스를 일반 클래스와 분리하여 관리하고, 앱과 서버간 검증을 통해 위조되거나 변조된 어플리케이션을 BL 등록처리하여 연결을 종료시켜 현재 연결의 정당성을 관리할 수 있는 효과가 있다.
According to the present invention described above, a class for handling important tasks that should not be falsified during application application building is managed separately from a general class, and a forged or altered application is registered through BL / The validity of the current connection can be managed.

100 : 분리부 110 : dex파일 생성모듈
120 : 위변조 감지모듈 200 : 검증서버부
210 : 검증코드 생성모듈 220 : 제1 파일 전송모듈
230 : 검증모듈 300 : 앱 생성부
310 : 암호화 모듈 320 : 앱 배포모듈
100: demultiplexer 110: dex file generation module
120: Falsification and tamper detection module 200:
210: verification code generation module 220: first file transmission module
230: verification module 300:
310: Encryption module 320: App distribution module

Claims (10)

어플리케이션 앱을 위변조 방지 대상파일인 제1 파일 및 상기 제1 파일을 실행하기 위한 제2 파일로 분리하는 분리부;
상기 제1 파일의 위변조 여부를 검증하기 위한 검증코드와 인증 프로세스를 제공하는 위변조 검증용 클래스를 상기 제1 파일에 추가하고, 상기 어플리케이션 앱을 실행하는 사용자 단말기로 전달하여 상기 제1 파일이 동적 로딩되도록 하는 검증서버부; 및
상기 검증코드가 추가된 제1 파일을 암호화하여 상기 검증서버부에 저장하고, 상기 제1 파일을 제외한 어플리케이션 앱을 외부로 배포하는 앱 생성부;를 포함하는 것을 특징으로 하는 앱 위변조 방지시스템.
A separation unit which separates the application program into a first file which is a forgery-prevention object file and a second file which executes the first file;
Adding a verification code for verifying whether the first file is forged or falsified and a forgery proofing class for providing an authentication process to the first file and delivering the same to a user terminal executing the application application, A verification server unit for enabling the verification server unit; And
And an application generating unit for encrypting the first file to which the verification code is added and storing the encrypted first file in the verification server unit, and distributing the application file except for the first file to the outside.
삭제delete 제 1 항에 있어서,
상기 분리부는,
상기 어플리케이션 앱의 위변조를 방지하기 위한 제1 파일 및 상기 제1 파일을 실행하기 위한 제2 파일로 분리하여 dex파일을 생성하는 dex파일 생성모듈; 및
상기 dex파일 생성시, 상기 검증서버부로부터 수신하는 검증코드를 상기 제1 파일에 추가하는 위변조 감지모듈;을 더 포함하는 것을 특징으로 하는 앱 위변조 방지시스템.
The method according to claim 1,
The separator may include:
A dex file generation module for generating a dex file by separating the application file into a first file for preventing forgery and falsification of the application app and a second file for executing the first file; And
And a forgery and falsification detection module for adding the verification code received from the verification server unit to the first file when the dex file is generated.
제 1 항에 있어서,
상기 검증서버부는,
상기 어플리케이션 앱 실행시, 일회용 위변조 검증코드를 생성하는 검증코드 생성모듈;
상기 일회용 위변조 검증코드에 해당하는 암호화된 제1 파일을 상기 어플리케이션 앱을 실행하는 사용자 단말기로 전달하여 상기 제1 파일이 동적 로딩되도록 하는 제1 파일 전송모듈; 및
상기 사용자 단말기의 어플리케이션 앱의 동적 로딩 과정에서 수신하는 일회용 위변조 검증코드를 기등록된 값과 비교하여 위변조를 검증하는 검증모듈;을 포함하는 것을 특징으로 하는 앱 위변조 방지시스템.
The method according to claim 1,
The verification server unit,
A verification code generation module that generates a one-time forgery verification code when the application program is executed;
A first file transfer module for transferring an encrypted first file corresponding to the disposable forgery verification code to a user terminal that executes the application program to dynamically load the first file; And
And a verification module for comparing the one-time forgery verification code received during dynamic loading of the application app of the user terminal with a pre-registered value to verify forgery and falsification.
제 1 항에 있어서,
상기 앱 생성부는,
상기 검증코드가 추가된 제1 파일을 암호화하여 상기 검증서버부에 저장하도록 하는 암호화모듈; 및
상기 제2 파일로 구성된 어플리케이션 앱을 외부로 배포하는 앱 배포모듈;을 포함하는 것을 특징으로 하는 앱 위변조 방지시스템.
The method according to claim 1,
Wherein the application generating unit comprises:
An encryption module for encrypting the first file to which the verification code is added and storing the encrypted first file in the verification server; And
And an application distribution module for externally distributing an application application composed of the second file.
앱 위변조 방지시스템을 이용한 방법에 있어서,
(a) 어플리케이션 앱을 위변조 방지 대상파일인 제1 파일 및 상기 제1 파일을 실행하기 위한 제2 파일로 분리하는 단계;
(b) 상기 제1 파일의 위변조 여부를 검증하기 위한 검증코드와 인증 프로세스를 제공하는 위변조 검증용 클래스를 상기 제1 파일에 추가하고, 상기 어플리케이션 앱을 실행하는 사용자 단말기로 전달하여 상기 제1 파일이 동적 로딩되도록 하는 단계; 및
(c) 상기 검증코드가 추가된 제1 파일을 암호화하여 저장하고, 상기 제1 파일을 제외한 어플리케이션 앱을 외부로 배포하는 단계;를 포함하는 것을 특징으로 하는 앱 위변조 방지방법.
A method using an app forgery prevention system,
(a) dividing an application app into a first file which is a forgery-inhibited object file and a second file which executes the first file;
(b) adding, to the first file, a verification code for verifying whether the first file is forged or falsified and a forgery proofing class for providing an authentication process to the user terminal that executes the application program, To be dynamically loaded; And
(c) encrypting and storing the first file to which the verification code is added, and distributing the application application except for the first file to the outside.
삭제delete 제 6 항에 있어서,
상기 제 (a) 단계는,
(a-1) 상기 어플리케이션 앱의 위변조를 방지하기 위한 제1 파일 및 상기 제1 파일을 실행하기 위한 제2 파일로 분리하여 dex파일을 생성하는 단계; 및
(a-2) 상기 dex파일 생성시, 검증서버부로부터 수신하는 검증코드를 상기 제1 파일에 추가하는 단계;를 더 포함하는 것을 특징으로 하는 앱 위변조 방지방법.
The method according to claim 6,
In the step (a)
(a-1) generating a dex file by separating a first file for preventing forgery and falsification of the application app and a second file for executing the first file; And
(a-2) adding the verification code received from the verification server unit to the first file when generating the dex file.
제 6 항에 있어서,
상기 제 (b) 단계는,
(b-1) 상기 어플리케이션 앱 실행시, 일회용 위변조 검증코드를 생성하는 단계;
(b-2) 상기 일회용 위변조 검증코드에 해당하는 암호화된 제1 파일을 상기 어플리케이션 앱을 실행하는 사용자 단말기로 전달하여 상기 제1 파일이 동적 로딩되도록 하는 단계; 및
(b-3) 상기 사용자 단말기의 어플리케이션 앱의 동적 로딩 과정에서 수신하는 일회용 위변조 검증코드를 기등록된 값과 비교하여 위변조를 검증하는 단계;를 더 포함하는 것을 특징으로 하는 앱 위변조 방지방법.
The method according to claim 6,
The step (b)
(b-1) generating a one-time forgery verification code when the application program is executed;
(b-2) transmitting an encrypted first file corresponding to the disposable forgery verification code to a user terminal that executes the application program, so that the first file is dynamically loaded; And
(b-3) comparing the one-time forgery verification code received during the dynamic loading of the application app of the user terminal with a pre-registered value to verify forgery and corruption.
제 6 항에 있어서,
상기 제 (c) 단계는,
(c-1) 상기 검증코드가 추가된 제1 파일을 암호화하여 검증서버부에에 저장하도록 하는 단계; 및
(c-2) 상기 제2 파일로 구성된 어플리케이션 앱을 외부로 배포하는 단계;를 포함하는 것을 특징으로 하는 앱 위변조 방지방법.
The method according to claim 6,
The step (c)
(c-1) encrypting the first file to which the verification code is added and storing the encrypted first file in the verification server unit; And
and (c-2) distributing an application program composed of the second file to the outside.
KR1020140168203A 2014-11-28 2014-11-28 System for preventing forgery of application and method therefor KR101642267B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140168203A KR101642267B1 (en) 2014-11-28 2014-11-28 System for preventing forgery of application and method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140168203A KR101642267B1 (en) 2014-11-28 2014-11-28 System for preventing forgery of application and method therefor

Publications (2)

Publication Number Publication Date
KR20160065261A KR20160065261A (en) 2016-06-09
KR101642267B1 true KR101642267B1 (en) 2016-08-01

Family

ID=56138606

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140168203A KR101642267B1 (en) 2014-11-28 2014-11-28 System for preventing forgery of application and method therefor

Country Status (1)

Country Link
KR (1) KR101642267B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101825402B1 (en) 2017-03-06 2018-02-06 올댓소프트 코. Mobile apparatus operating code splitting authorization of application code and mobile system having the mobile apparatus
KR20180089645A (en) 2017-02-01 2018-08-09 주식회사 에스씨테크원 Application forgery and modulation prevention system using security card and method thereof
KR20210083780A (en) 2019-12-27 2021-07-07 주식회사 린아레나 Method and system for improving android app security by DEX file segmentation and obfuscation

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101945738B1 (en) * 2016-11-29 2019-02-08 충남대학교산학협력단 Application server for verifying integrity of application and controlling method thereof
CN107506651B (en) * 2017-07-04 2021-10-22 环玺信息科技(上海)有限公司 Code encryption method and system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101328012B1 (en) 2013-08-12 2013-11-13 숭실대학교산학협력단 Apparatus for tamper protection of application code and method thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030075018A (en) * 2002-03-15 2003-09-22 주식회사 셈틀로미디어 Device for generating tamper-resistant software and methods for self-integrity checking the software file and server-aided integrity checking in client-server environment
KR20040027826A (en) * 2004-03-08 2004-04-01 최철 A method to protect computer software using file transformation
KR20140082408A (en) * 2012-12-24 2014-07-02 숭실대학교산학협력단 Method and apparatus for managing application

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101328012B1 (en) 2013-08-12 2013-11-13 숭실대학교산학협력단 Apparatus for tamper protection of application code and method thereof

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180089645A (en) 2017-02-01 2018-08-09 주식회사 에스씨테크원 Application forgery and modulation prevention system using security card and method thereof
KR101825402B1 (en) 2017-03-06 2018-02-06 올댓소프트 코. Mobile apparatus operating code splitting authorization of application code and mobile system having the mobile apparatus
KR20210083780A (en) 2019-12-27 2021-07-07 주식회사 린아레나 Method and system for improving android app security by DEX file segmentation and obfuscation

Also Published As

Publication number Publication date
KR20160065261A (en) 2016-06-09

Similar Documents

Publication Publication Date Title
US9270466B2 (en) System and method for temporary secure boot of an electronic device
CN111404696B (en) Collaborative signature method, security service middleware, related platform and system
JP2019505887A (en) Mobile device with reliable execution environment
KR101642267B1 (en) System for preventing forgery of application and method therefor
WO2013182155A1 (en) Firmware version upgrade method and system
CN106529218B (en) Application verification method and device
EP3206329B1 (en) Security check method, device, terminal and server
JP4226556B2 (en) Program execution control device, OS, client terminal, server, program execution control system, program execution control method, program execution control program
CN110096849A (en) A kind of License authorization and authentication method, device, equipment and readable storage medium storing program for executing
US10412079B2 (en) NFC device, software installation method, software uninstallation method, computer program and article of manufacture
Cheng et al. A secure and practical key management mechanism for NFC read-write mode
US9614671B2 (en) User access control based on a graphical signature
JP5781678B1 (en) Electronic data utilization system, portable terminal device, and method in electronic data utilization system
US9977907B2 (en) Encryption processing method and device for application, and terminal
CN104426865A (en) Method, device and system for controlling presentation of application
JP6517435B2 (en) How to manage the application
CN115795438B (en) Method, system and readable storage medium for authorizing application program
KR101630462B1 (en) Apparatus and Method for Securing a Keyboard
KR101711024B1 (en) Method for accessing temper-proof device and apparatus enabling of the method
KR20130100032A (en) Method for distributting smartphone application by using code-signing scheme
CN106603237B (en) Safe payment method and device
KR101906484B1 (en) Method for application security and system for executing the method
CN101571899B (en) Smart device software anti-theft version method and device
CN105046174A (en) Disk data protection method and system
CN105790931B (en) A kind of cryptographic key distribution method, the network equipment, terminal device and system

Legal Events

Date Code Title Description
A201 Request for 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: 20190719

Year of fee payment: 4